/* 登录/注册页：纵深品牌背景 + iOS 玻璃表单。
   原站有 `#sourceLogin7101 … !important`，所以表单规则用 `.jg-auth-page:not(#_)` 抬高优先级。
   夜间配色在 display-mode.css 的 jg-night-materials 层，不写在这里（DarkReader 会改写本文件）。 */
.loginNew.jg-auth-page { --auth-banner: clamp(190px, 27vh, 240px); --auth-hero: calc(var(--auth-banner) + 156px); --auth-spring: cubic-bezier(.32, 1.28, .5, 1); background: var(--jb-bg, #eef2f7); color: #0b1a38; }
.jg-auth-page .loginBg, .jg-auth-page .login-close { display: none; }
.jg-auth-page .toptipscontent { position: fixed; }

.jg-auth-page:not(#_) .loginInner {
  float: none; width: 100%; max-width: none; margin: 0; box-sizing: border-box;
  padding: 0 max(14px, calc(50% - 280px)) max(24px, env(safe-area-inset-bottom));
  background-color: var(--jb-bg, #eef2f7);
  background-image:
    linear-gradient(180deg, transparent 66%, var(--jb-bg, #eef2f7) 97%),
    radial-gradient(90% 75% at 88% 12%, rgba(86, 163, 255, .62), transparent 68%),
    radial-gradient(70% 60% at 4% 92%, rgba(47, 134, 255, .34), transparent 72%),
    linear-gradient(168deg, #0a1c4b 0%, #0f3488 58%, #1560d4 100%);
  background-size: 100% calc(var(--auth-hero) + 2px), 100% var(--auth-hero), 100% var(--auth-hero), 100% var(--auth-hero);
  background-repeat: no-repeat;
  background-attachment: local;
}

/* 顶栏 */
.jg-auth-page .jg-auth-header { height: 56px; margin-top: env(safe-area-inset-top); display: flex; align-items: center; justify-content: center; position: relative; }
.jg-auth-page .jg-auth-header h1 { margin: 0; color: #fff; font-size: 17px; font-weight: 600; letter-spacing: .02em; }
.jg-auth-header button {
  position: absolute; left: 0; width: 38px; height: 38px; padding: 9px; border: 0; border-radius: 50%; color: #fff !important; cursor: pointer;
  background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
  -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%);
  transition: transform .28s var(--auth-spring), background-color .2s;
}
.jg-auth-header button:active { transform: scale(.9); background: rgba(255, 255, 255, .24); }
.jg-auth-header button[hidden] { display: none; }
.jg-auth-header svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* 品牌主视觉：默认文案和人物直接落在背景上，后台配置的推广图是内嵌圆角卡片 */
.jg-auth-banner { position: relative; height: var(--auth-banner); margin: 0 0 -18px; }
.jg-auth-banner__default { width: 100%; height: 100%; position: relative; display: flex; align-items: flex-start; flex: 0 0 100%; padding: 14px 4px 0; box-sizing: border-box; }
.jg-auth-banner__default > div { position: relative; z-index: 1; }
.jg-auth-banner__default strong { display: block; color: #fff; font-size: clamp(30px, 8.4vw, 38px); font-weight: 700; line-height: 1.24; letter-spacing: .05em; text-shadow: 0 1px 2px rgba(6, 18, 52, .35); }
.jg-auth-banner__default p { position: relative; color: rgba(255, 255, 255, .78); font-size: 13px; line-height: 1; margin: 24px 0 0 !important; letter-spacing: .04em; }
.jg-auth-banner__default p::before { content: ""; position: absolute; left: 0; top: -13px; width: 26px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #f1d595, #c79c4f); }
.jg-auth-banner__default img { position: absolute; right: -14px; bottom: 0; width: auto; max-width: 66%; height: 100%; object-fit: contain; object-position: right bottom; pointer-events: none; filter: drop-shadow(0 8px 22px rgba(4, 14, 44, .45)); -webkit-mask: linear-gradient(180deg, #000 calc(100% - 40px), transparent calc(100% - 14px)); mask: linear-gradient(180deg, #000 calc(100% - 40px), transparent calc(100% - 14px)); }
.jg-auth-banner__default { transition: opacity .28s ease; }
.jg-auth-banner.is-pending .jg-auth-banner__default { opacity: 0; }
.jg-auth-banner--configured { height: auto; aspect-ratio: 2.64; margin: 4px 0 14px; overflow: hidden; border-radius: 20px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .2), 0 14px 30px -18px rgba(4, 14, 44, .7); }
.jg-auth-banner--configured > .jg-auth-banner__default { display: none; }
.jg-auth-banner__track { display: flex; width: 100%; height: 100%; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
.jg-auth-banner__track::-webkit-scrollbar { display: none; }
.jg-auth-banner__track > * { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; }
.jg-auth-banner__dots { position: absolute; bottom: 6px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; padding: 0 4px; border-radius: 20px; background: rgba(10, 28, 75, .34); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.jg-auth-banner__dots[hidden] { display: none; }
.jg-auth-banner__dots button { width: 22px; height: 22px; padding: 0; border: 8px solid transparent; border-radius: 50%; background: rgba(255, 255, 255, .5); background-clip: padding-box; cursor: pointer; transition: background-color .2s; }
.jg-auth-banner__dots button[aria-current="true"] { background-color: #fff; }

/* 玻璃卡片 */
.jg-auth-page:not(#_) .loginPage {
  position: relative; z-index: 1; width: 100%; margin: 0; padding: 18px 18px 20px; box-sizing: border-box;
  border: 0; border-radius: 28px !important; background: rgba(255, 255, 255, .94) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .75), 0 0 0 1px rgba(15, 35, 80, .05), 0 22px 44px -26px rgba(11, 30, 80, .5) !important;
  -webkit-backdrop-filter: blur(30px) saturate(175%) !important; backdrop-filter: blur(30px) saturate(175%) !important;
  transition: none !important; animation: none !important;
}
.jg-auth-page:not(#_) .loginPage.is-morph { overflow: hidden; }
.jg-auth-page .loginPage .pageInner { width: 100%; }

/* 登录/注册页签：胶囊可按住拖动 */
.jg-auth-tabs { position: relative; display: flex; flex-shrink: 0; width: 100%; height: 44px; padding: 3px; margin: 0 0 18px; box-sizing: border-box; border-radius: 22px; background: rgba(15, 35, 80, .065); box-shadow: inset 0 0 0 1px rgba(15, 35, 80, .03); touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.jg-auth-tabs__thumb { position: absolute; top: 3px; bottom: 3px; left: 3px; width: calc(50% - 3px); border-radius: 19px; background: #fff; box-shadow: 0 0 0 .5px rgba(15, 35, 80, .06), 0 1px 2px rgba(15, 35, 80, .1), 0 5px 12px -6px rgba(15, 35, 80, .3); transition: transform .42s var(--auth-spring); will-change: transform; }
.jg-auth-tabs[data-i="1"] .jg-auth-tabs__thumb { transform: translateX(100%); }
.jg-auth-tabs.is-instant .jg-auth-tabs__thumb, .jg-auth-tabs.is-dragging .jg-auth-tabs__thumb { transition: none; }
.jg-auth-tabs:has(button[hidden]) .jg-auth-tabs__thumb { width: calc(100% - 6px); }
.jg-auth-tabs button { position: relative; z-index: 1; flex: 1; padding: 0; border: 0; border-radius: 19px; font-size: 14px !important; font-weight: 500 !important; color: #66738d !important; background: transparent; cursor: pointer; transition: color .22s; }
.jg-auth-tabs button[hidden] { display: none; }
.jg-auth-tabs button[aria-selected="true"], .jg-auth-tabs button.is-target { color: #0b1a38 !important; font-weight: 650 !important; }
.jg-auth-tabs.is-dragging button[aria-selected="true"]:not(.is-target) { color: #66738d !important; font-weight: 500 !important; }

/* 输入框 */
.jg-auth-page:not(#_) .loginPage .inputBox {
  position: relative; display: flex; align-items: center; flex: 0 0 52px; width: 100%; height: 52px; min-height: 52px; margin: 0 0 12px; padding: 0; box-sizing: border-box;
  border: 0; border-radius: 16px !important; color: #7b89a2; background: rgba(244, 247, 251, .9) !important;
  box-shadow: inset 0 0 0 1px rgba(15, 35, 80, .09) !important;
  transition: box-shadow .22s ease, background-color .22s ease, color .22s ease;
}
.jg-auth-page:not(#_) .loginPage .inputBox:focus-within { color: #1560d4; background: #fff !important; box-shadow: inset 0 0 0 1.5px #2f86ff, 0 0 0 4px rgba(47, 134, 255, .14) !important; }
.jg-auth-page .loginPage .inputBox .icos { display: none !important; }
.jg-auth-page .loginPage .inputBox::before { content: ""; position: absolute; left: 15px; top: 50%; width: 20px; height: 20px; margin-top: -10px; background: currentColor; pointer-events: none; -webkit-mask: var(--auth-icon) center / contain no-repeat; mask: var(--auth-icon) center / contain no-repeat; --auth-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 20.5c1-3.6 4-5.5 7.5-5.5s6.500 1.900 7.500 5.500'/%3E%3C/svg%3E"); }
.jg-auth-page .loginPage .inputBox:has(input[aria-label*="密码"])::before { --auth-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.500' y='10.500' width='15' height='10' rx='3'/%3E%3Cpath d='M8 10.500V7.500a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E"); }
.jg-auth-page .loginPage .inputBox:has(input[aria-label*="验证码"])::before { --auth-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7.500 2.800v5.400c0 4.600-3 8-7.500 9.800-4.500-1.800-7.500-5.200-7.500-9.800V5.800z'/%3E%3Cpath d='m8.800 12 2.300 2.300 4.200-4.400'/%3E%3C/svg%3E"); }
.jg-auth-page:not(#_) .loginPage .inputBox input { flex: 1 1 0 !important; width: 100% !important; min-width: 0; height: 100%; margin: 0 !important; padding: 0 46px 0 44px !important; box-sizing: border-box; font-size: 16px !important; font-weight: 500 !important; color: #0b1a38 !important; caret-color: #1560d4; background: transparent; border: 0; border-radius: 16px; }
.jg-auth-page:not(#_) .loginPage .inputBox input::placeholder { font-size: 14px !important; font-weight: 400 !important; color: #66738d !important; opacity: 1; }
.jg-auth-page:not(#_) .loginPage .inputBox input::-webkit-input-placeholder { font-size: 14px !important; font-weight: 400 !important; color: #66738d !important; opacity: 1; }
.jg-auth-page:not(#_) .loginPage .inputBox input:-webkit-autofill { -webkit-text-fill-color: #0b1a38; box-shadow: inset 0 0 0 40px #f4f7fb; transition: background-color 99999s; }
.jg-auth-page:not(#_) .loginPage .inputBox .eyes { position: absolute; right: 3px; top: 50%; width: 42px; height: 42px; margin: -21px 0 0; padding: 11px; box-sizing: border-box; cursor: pointer; }
.jg-auth-page .inputBox .eyes[src*="login_5209"] { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b89a2' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10c2.200 3.200 5.300 4.900 9 4.900s6.800-1.700 9-4.900'/%3E%3Cpath d='m5.800 13-1.700 2.300M18.200 13l1.700 2.300M12 15v2.800M9 14.600l-.8 2.700M15 14.600l.8 2.700'/%3E%3C/svg%3E"); }
.jg-auth-page .inputBox .eyes[src*="login_0713"] { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231560d4' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.800 12S6.200 5.800 12 5.800 21.200 12 21.200 12 17.800 18.200 12 18.200 2.800 12 2.800 12z'/%3E%3Ccircle cx='12' cy='12' r='2.800'/%3E%3C/svg%3E"); }
.jg-auth-page:not(#_) .loginPage .inputBox .yzm { position: absolute; right: 4px; top: 4px; width: 100px; height: 44px; border-radius: 12px; cursor: pointer; }
.jg-auth-page:not(#_) .loginPage .inputBox:has(.yzm) input { padding-right: 110px !important; }

/* 自动登录 / 忘记密码 */
.jg-auth-page:not(#_) .loginPage .bottomMenu { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 2px 0 0; padding: 0 2px; box-sizing: border-box; }
.jg-auth-page:not(#_) .loginPage .bottomMenu .b_item { font-size: 13px; font-weight: 400; color: #36435e !important; cursor: pointer; }
.jg-auth-page:not(#_) .loginPage .bottomMenu .b_item:not(.checkbox) { color: #1560d4 !important; font-weight: 500; }
.jg-auth-page:not(#_) .loginPage .bottomMenu .checkbox { display: flex; align-items: center; }
.jg-auth-page:not(#_) .loginPage .bottomMenu .checkbox_text { font-size: 13px; color: inherit; }
.jg-auth-page:not(#_) .loginPage .bottomMenu .checkbox img { width: 18px; height: 18px; margin: 0 7px 0 0; }
.jg-auth-page .bottomMenu .checkbox img[src*="login_8aa3"] { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%231560d4'/%3E%3Cpath d='m7.200 12.400 3.200 3.200 6.400-6.800' fill='none' stroke='%23fff' stroke-width='2.200' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.jg-auth-page .bottomMenu .checkbox img[src*="login_4f51"] { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10.200' fill='none' stroke='%239aa6ba' stroke-width='1.600'/%3E%3C/svg%3E"); }

/* 主按钮 */
.jg-auth-page:not(#_) .loginPage .loginbtn {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 52px; min-height: 52px; margin: 18px 0 0; border-radius: 26px !important;
  font-size: 16px; font-weight: 650; letter-spacing: .06em; color: #fff !important; opacity: 1; cursor: pointer;
  background: linear-gradient(180deg, #2f86f7 0%, #1459cc 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 1px 2px rgba(20, 89, 204, .35), 0 12px 22px -12px rgba(20, 89, 204, .75) !important;
  transition: transform .32s var(--auth-spring), box-shadow .22s ease, opacity .2s ease;
}
.jg-auth-page:not(#_) .loginPage .loginbtn:active { transform: scale(.975); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 1px 2px rgba(20, 89, 204, .35) !important; }
.jg-auth-page:not(#_) .loginPage .loginbtn[aria-busy="true"] { opacity: .65; }

.jg-auth-page:not(#_) .regPage .loginbtn { margin-top: 8px; }

/* 快捷登录 */
.jg-auth-quick { display: none; flex-direction: column; align-items: center; width: 100%; margin: 16px 0 0; }
.jg-auth-has-telegram .jg-auth-quick { display: flex; }
.jg-auth-quick__line { display: flex; align-items: center; width: 100%; gap: 12px; font-size: 12px; font-weight: 400; color: #66738d; }
.jg-auth-quick__line::before, .jg-auth-quick__line::after { content: ""; flex: 1; height: 1px; background: rgba(15, 35, 80, .1); }
.jg-auth-quick__tg {
  display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-top: 12px; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
  background: linear-gradient(180deg, #37aeee 0%, #1e91d6 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .34), 0 1px 2px rgba(20, 110, 180, .35), 0 8px 16px -9px rgba(20, 110, 180, .8);
  transition: transform .3s var(--auth-spring), box-shadow .2s ease;
}
.jg-auth-quick__tg:active { transform: scale(.92); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .24), 0 1px 2px rgba(20, 110, 180, .35); }
.jg-auth-quick__tg svg { width: 36px; height: 36px; margin: 1px 2px 0 0; fill: #fff; }

/* 绑定提示、全局提示 */
.jg-auth-page:not(#_) .jg-auth-bind-hint { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 40px; margin: 0 0 14px; padding: 8px 8px 8px 14px; box-sizing: border-box; border-radius: 14px; font-size: 13px; line-height: 1.4; color: #125099; background: rgba(47, 134, 255, .1); box-shadow: inset 0 0 0 1px rgba(47, 134, 255, .18); }
.jg-auth-page:not(#_) .jg-auth-bind-hint span { min-width: 0; overflow-wrap: anywhere; }
.jg-auth-page:not(#_) .jg-auth-bind-hint button { flex: none; height: 28px; padding: 0 10px; border: 0; border-radius: 14px; font-size: 12px !important; color: #125099 !important; background: rgba(255, 255, 255, .72); cursor: pointer; }
.jg-auth-notice { position: fixed; z-index: 100001; left: 50%; top: max(18px, env(safe-area-inset-top)); max-width: calc(100vw - 48px); padding: 10px 16px; box-sizing: border-box; border-radius: 20px; font-size: 13px; line-height: 1.4; text-align: center; color: #0b1a38; background: rgba(255, 255, 255, .86); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 0 0 1px rgba(15, 35, 80, .06), 0 14px 28px -16px rgba(11, 30, 80, .55); -webkit-backdrop-filter: blur(22px) saturate(170%); backdrop-filter: blur(22px) saturate(170%); transform: translateX(-50%); animation: jg-auth-notice .36s cubic-bezier(.32, 1.28, .5, 1) both; }
@keyframes jg-auth-notice { from { opacity: 0; transform: translate(-50%, -12px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Telegram 首次登录面板 */
.jg-tg-sheet { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: flex-end; justify-content: center; padding: 0 12px max(12px, env(safe-area-inset-bottom)); box-sizing: border-box; background: rgba(6, 14, 36, .42); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: jg-tg-fade .24s ease both; }
.jg-tg-sheet:not(#_) .jg-tg-sheet__panel { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 420px; padding: 22px 18px 12px; box-sizing: border-box; border-radius: 28px; background: rgba(255, 255, 255, .92); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .75), 0 24px 50px -24px rgba(6, 14, 36, .7); -webkit-backdrop-filter: blur(30px) saturate(175%); backdrop-filter: blur(30px) saturate(175%); animation: jg-tg-rise .42s cubic-bezier(.32, 1.2, .5, 1) both; }
.jg-tg-sheet__icon { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(180deg, #37aeee 0%, #1e91d6 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .34), 0 8px 16px -9px rgba(20, 110, 180, .8); }
.jg-tg-sheet__icon svg { width: 38px; height: 38px; margin: 1px 2px 0 0; fill: #fff; }
.jg-tg-sheet:not(#_) h2 { margin: 12px 0 0 !important; font-size: 17px; font-weight: 650; line-height: 1.3; color: #0b1a38; }
.jg-tg-sheet:not(#_) .jg-tg-sheet__name { min-height: 18px; margin: 4px 0 16px !important; font-size: 13px; line-height: 18px; color: #66738d; overflow-wrap: anywhere; text-align: center; }
.jg-tg-sheet:not(#_) button { width: 100%; height: 50px; margin: 0 0 8px; padding: 0 14px; border: 0; border-radius: 25px; font-size: 15px !important; font-weight: 600 !important; cursor: pointer; transition: transform .28s cubic-bezier(.32, 1.28, .5, 1), opacity .2s ease; }
.jg-tg-sheet:not(#_) button:active { transform: scale(.975); }
.jg-tg-sheet:not(#_) .jg-tg-sheet__primary { color: #fff !important; background: linear-gradient(180deg, #2f86f7 0%, #1459cc 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 1px 2px rgba(20, 89, 204, .35), 0 12px 22px -12px rgba(20, 89, 204, .75); }
.jg-tg-sheet:not(#_) .jg-tg-sheet__secondary { color: #0b1a38 !important; background: rgba(15, 35, 80, .065); box-shadow: inset 0 0 0 1px rgba(15, 35, 80, .05); }
.jg-tg-sheet:not(#_) .jg-tg-sheet__cancel { height: 40px; margin: 0; font-weight: 400 !important; font-size: 14px !important; color: #66738d !important; background: transparent; }
.jg-tg-sheet.is-busy button { opacity: .55; pointer-events: none; }
@keyframes jg-tg-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes jg-tg-rise { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: none; } }

/* 先去逛逛、客服 */
.jg-auth-page:not(#_) .loginPage .b_other_menu { display: flex; justify-content: center; width: 100%; margin: 14px 0 0; padding: 0; }
.jg-auth-page:not(#_) .loginPage .b_other_menu .item { padding: 4px 12px; font-size: 13px; color: #66738d !important; cursor: pointer; transition: opacity .2s; }
.jg-auth-page:not(#_) .loginPage .b_other_menu .item:active { opacity: .55; }
.jg-auth-page:not(#_) .loginPage .b_other_menu .blue, .jg-auth-page:not(#_) .regPage .b_other_menu2 { display: none; }
.jg-auth-page .loginPage .wechatLogin { position: static; order: 10; margin-top: 16px; width: auto; padding: 0 18px; height: 40px; border-radius: 20px; font-size: 13px; }
.jg-auth-page:not(#_) .b_kefu {
  position: static; display: flex; justify-content: center; align-items: center; width: fit-content; height: 40px; margin: 20px auto; padding: 0 16px; box-sizing: border-box; border-radius: 20px; cursor: pointer;
  background: rgba(255, 255, 255, .62); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7), 0 0 0 1px rgba(15, 35, 80, .05), 0 6px 14px -9px rgba(11, 30, 80, .4);
  -webkit-backdrop-filter: blur(16px) saturate(160%); backdrop-filter: blur(16px) saturate(160%);
  transition: transform .28s var(--auth-spring);
}
.jg-auth-page:not(#_) .b_kefu:active { transform: scale(.96); }
.jg-auth-page:not(#_) .b_kefu_img { width: 18px; height: 18px; margin: 0 7px 0 0; content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231560d4' stroke-width='1.900' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.500 14v-2.500a7.500 7.500 0 0 1 15 0V14'/%3E%3Crect x='3' y='12.500' width='4' height='6' rx='1.800'/%3E%3Crect x='17' y='12.500' width='4' height='6' rx='1.800'/%3E%3Cpath d='M19 18.500c0 1.700-2 2.800-5 2.800'/%3E%3C/svg%3E"); }
.jg-auth-page:not(#_) .b_kefu_span { font-size: 13px; font-weight: 500; color: #36435e; }

/* 动效：进场 + 切换 */
@keyframes jg-auth-rise { from { opacity: 0; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes jg-auth-fade { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes jg-auth-slide { from { opacity: 0; transform: translateX(var(--auth-dx, 14px)); } to { opacity: 1; transform: none; } }
.jg-auth-enter:not(#_) .loginPage { animation: jg-auth-rise .58s cubic-bezier(.2, .9, .3, 1) both !important; }
.jg-auth-enter .jg-auth-banner__default > div, .jg-auth-enter .jg-auth-header { animation: jg-auth-fade .5s ease both; }
.jg-auth-swap > :not(.jg-auth-tabs) { animation: jg-auth-slide .34s cubic-bezier(.2, .9, .3, 1) both; }
.jg-auth-swap > :nth-child(3) { animation-delay: 30ms; }
.jg-auth-swap > :nth-child(4) { animation-delay: 60ms; }
.jg-auth-swap > :nth-child(n+5) { animation-delay: 90ms; }
@media (prefers-reduced-motion: reduce) {
  .jg-auth-enter:not(#_) .loginPage, .jg-auth-enter .jg-auth-banner__default > div, .jg-auth-enter .jg-auth-header, .jg-auth-swap > :not(.jg-auth-tabs) { animation: none !important; }
  .jg-auth-tabs__thumb { transition: none; }
  .jg-auth-notice, .jg-tg-sheet, .jg-tg-sheet:not(#_) .jg-tg-sheet__panel { animation: none; }
}
@media (min-width: 620px) {
  .jg-auth-banner__default img { right: 0; -webkit-mask: linear-gradient(180deg, #000 calc(100% - 40px), transparent calc(100% - 14px)), linear-gradient(90deg, #000 90%, transparent); -webkit-mask-composite: source-in; mask: linear-gradient(180deg, #000 calc(100% - 40px), transparent calc(100% - 14px)), linear-gradient(90deg, #000 90%, transparent); mask-composite: intersect; }
}
@media (max-width: 360px) {
  .jg-auth-page:not(#_) .loginPage { padding: 16px 14px 18px; }
  .jg-auth-banner__default strong { font-size: 27px; }
}
