/* ============================================================
   PC 新版公共顶部导航
   与左侧 side-rail 同一套毛玻璃 + 渐变光晕设计语言。
   ============================================================ */
.global-topbar {
    position: relative; z-index: 90;
    height: 52px; flex: 0 0 52px; display: flex; align-items: center; justify-content: space-between;
    gap: 20px; padding: 0 20px;
    border-bottom: 1px solid rgba(46,108,236,.08);
    background: rgba(255,255,255,.82);
    backdrop-filter: blur(20px) saturate(1.4);
    -webkit-backdrop-filter: blur(20px) saturate(1.4);
    box-shadow: inset 18px 0 26px -18px rgba(74,130,240,.22), inset -18px 0 26px -18px rgba(138,92,246,.16);
}
/* 与侧栏一致的渐变光晕层 */
.global-topbar::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
        radial-gradient(120% 160% at 15% 0%, rgba(74,130,240,.14), transparent 55%),
        radial-gradient(120% 160% at 85% 100%, rgba(138,92,246,.12), transparent 55%);
    filter: blur(3px);
}
.global-topbar-left, .global-topbar-right { display: flex; align-items: center; min-width: 0; }
.global-topbar-left { gap: 10px; }
.global-topbar-right { flex: 1 1 auto; justify-content: flex-end; gap: 8px; }
.global-topbar-brand {
    display: inline-flex; align-items: center; gap: 12px; min-width: 0;
    padding: 6px 12px; border-radius: 12px; cursor: pointer;
    transition: background .3s cubic-bezier(.4,0,.2,1), transform .3s cubic-bezier(.4,0,.2,1);
}
.global-topbar-brand:hover { background: rgba(0,0,0,.03); transform: translateX(2px); }
.global-topbar-brand:hover .global-topbar-logo { transform: scale(1.05) rotate(-5deg); }
.global-topbar-brand:active .global-topbar-logo { transform: scale(.97) rotate(0); }
.global-topbar-logo {
    position: relative; width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center;
    border-radius: 10px; color: #fff; font-size: 20px; overflow: hidden;
    background: linear-gradient(135deg,#2E6CEC 0%,#3B74ED 50%,#1A58E8 100%);
    box-shadow: 0 4px 12px rgba(46,108,236,.30), inset 0 0 0 1px rgba(0,0,0,.05);
    transition: transform .3s ease, box-shadow .3s ease;
}
.global-topbar-logo::before {
    content: ""; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,.20) 0%, transparent 60%);
    opacity: 0; transition: opacity .3s; pointer-events: none;
}
.global-topbar-brand:hover .global-topbar-logo { box-shadow: 0 6px 20px rgba(46,108,236,.40), inset 0 0 0 1px rgba(0,0,0,.08); }
.global-topbar-brand:hover .global-topbar-logo::before { opacity: 1; }
.global-topbar-logo > i { position: relative; z-index: 1; color: #fff; font-size: 20px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.20)); }
.global-topbar-logo img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; border-radius: 10px; display: block; }
.global-topbar-logo.has-img { background: none; box-shadow: 0 4px 12px rgba(46,108,236,.25), inset 0 0 0 1px rgba(255,255,255,.6); }
.global-topbar-logo.has-img::before { display: none; }
.global-topbar-site {
    max-width: 250px; overflow: hidden; text-overflow: clip; white-space: nowrap;
    font-size: 18px; font-weight: 700; letter-spacing: -.3px;
    background: linear-gradient(135deg,#18181b 0%,#3f3f46 100%);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    transition: filter .3s ease;
}
.global-topbar-brand:hover .global-topbar-site { background-image: linear-gradient(135deg,#18181b 0%,#2E6CEC 100%); filter: drop-shadow(0 1px 6px rgba(46,108,236,.25)); }
.global-topbar-divider { width: 1px; height: 18px; margin: 0 8px; background: rgba(46,108,236,.14); }
.global-topbar-item {
    position: relative; height: 36px; display: inline-flex; align-items: center; justify-content: center;
    gap: 6px; padding: 0 12px; border: 0; border-radius: 11px;
    color: #4B5563; background: transparent; font-size: 13px; font-weight: 600;
    cursor: pointer; transition: .16s ease; white-space: nowrap;
}
.global-topbar-item:hover, .global-topbar-item.open { color: var(--primary, #2E6CEC); background: rgba(74,130,240,.12); }
.global-topbar-item i { font-size: 17px; }
.global-topbar-item.points { gap: 6px; color: #4B5563; }
.global-topbar-item.points i { color: #F2A20C; }
.global-topbar-item.points [data-role="points"] { display: inline-block; min-width: 5ch; text-align: center; font-size: 14px; font-weight: 700; color: #4B5563; }
.global-topbar-item.primary {
    position: relative;
    height: 30px; padding: 0 11px; font-size: 12px; border-radius: 9px;
    color: #fff;
    background: linear-gradient(135deg, #5A8EF2 0%, #4A82F0 45%, #0A48E6 100%);
    box-shadow: 0 2px 8px rgba(46,108,236,.28), inset 0 1px 0 rgba(255,255,255,.22);
    overflow: hidden;
}
/* 顶部高光，增加质感 */
.global-topbar-item.primary::after {
    content: ''; position: absolute; left: 10%; right: 10%; top: 1px; height: 45%;
    background: linear-gradient(180deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,0) 100%);
    border-radius: 8px; pointer-events: none;
}
.global-topbar-item.primary:hover {
    color: #fff;
    background: linear-gradient(135deg, #6d9df6 0%, #5A8EF2 45%, #2f6ff0 100%);
    box-shadow: 0 4px 14px rgba(46,108,236,.4), inset 0 1px 0 rgba(255,255,255,.25);
    transform: translateY(-1px);
}
.global-topbar-item.primary i { color: #fff; font-size: 15px; }
.global-topbar-item[data-action="user"] { gap: 8px; }
.global-topbar-item[data-action="user"] .global-topbar-avatar { flex: 0 0 32px; }
[data-role="user-name"] { min-width: 42px; max-width: 96px; overflow: hidden; text-overflow: ellipsis; }
.global-topbar-avatar {
    width: 32px; height: 32px; display: grid; place-items: center; overflow: hidden;
    border-radius: 50%; color: #fff; background: linear-gradient(135deg,#4F6BFF,#7C5CFF);
    font-size: 13px; font-weight: 700; box-shadow: 0 3px 10px rgba(79,107,255,.28);
}
.global-topbar-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
/* 用户下拉菜单（账号信息 / 绑定 / 协议 / 清除缓存 / 退出登录） */
.global-topbar-user-menu {
    position: absolute; top: calc(100% + 10px); right: 0; z-index: 220;
    width: 268px; padding: 8px; border-radius: 14px;
    background: #fff; border: 1px solid #eef0f5;
    box-shadow: 0 18px 48px rgba(24,32,52,.16), 0 2px 8px rgba(24,32,52,.06);
}
/* 悬停热区向下延伸，覆盖按钮与弹窗之间的空隙 */
.global-topbar-item[data-action="user"]::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 10px; }
.gt-um-head { display: flex; align-items: center; gap: 11px; padding: 10px 10px 12px; }
.gt-um-avatar {
    width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; overflow: hidden;
    border-radius: 50%; color: #fff; font-size: 17px; font-weight: 700;
    background: linear-gradient(135deg,#4F6BFF,#7C5CFF);
}
.gt-um-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }
.gt-um-info { min-width: 0; flex: 1; }
.gt-um-name { font-size: 15px; font-weight: 700; color: #1f2329; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-um-phone { font-size: 12px; color: #9aa3b2; margin-top: 3px; }
.gt-um-body { padding: 2px 0; }
.gt-um-divider { height: 1px; margin: 6px 8px; background: #f0f2f6; }
.gt-um-item {
    display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px;
    color: #3a4356; font-size: 13px; cursor: pointer; transition: background .15s;
}
.gt-um-item:hover { background: #f5f7fb; }
.gt-um-item i { font-size: 16px; color: #7a8498; }
.gt-um-item .gt-um-label { flex: 1; }
.gt-um-item .gt-um-val { font-size: 12px; color: #9aa3b2; }
.gt-um-item .gt-um-arrow { font-size: 15px; color: #c3c9d4; }
.gt-um-item.danger { color: #e5484d; }
.gt-um-item.danger i { color: #e5484d; }
.gt-um-foot { padding-top: 2px; }
/* AI 生成水印开关 */
.gt-um-item.watermark-item { cursor: pointer; }
.gt-um-item.watermark-item .gt-um-arrow { display: none; }
.gt-um-switch {
    position: relative; width: 38px; height: 22px; flex: 0 0 38px;
    border-radius: 999px; background: #e3e6ee; cursor: pointer; transition: background .2s;
}
.gt-um-switch i {
    position: absolute; top: 2px; left: 2px; width: 18px; height: 18px;
    border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: left .2s;
}
.gt-um-switch.on { background: #2E6CEC; }
.gt-um-switch.on i { left: 18px; }
.gt-um-switch.disabled { opacity: .45; cursor: not-allowed; }
/* 合规确认弹窗 */
.gt-wm-overlay {
    position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center;
    background: rgba(15,20,32,.55); backdrop-filter: blur(2px);
}
.gt-wm-modal {
    width: 460px; max-width: 92vw; border-radius: 16px; overflow: hidden;
    background: #fff; box-shadow: 0 24px 64px rgba(15,20,32,.28);
}
.gt-wm-head { display: flex; align-items: center; gap: 9px; padding: 18px 22px 14px; }
.gt-wm-head i { font-size: 22px; color: #F2A20C; }
.gt-wm-head h3 { font-size: 16px; font-weight: 700; color: #1f2329; margin: 0; }
.gt-wm-body { padding: 4px 22px 16px; font-size: 13px; color: #4b5563; line-height: 1.8; }
.gt-wm-body p { margin: 0 0 10px; }
.gt-wm-body .gt-wm-note { padding: 10px 12px; border-radius: 8px; background: #fff7e6; color: #b45309; font-size: 12px; line-height: 1.7; }
.gt-wm-foot { display: flex; gap: 10px; padding: 14px 22px 18px; border-top: 1px solid #f0f2f6; }
.gt-wm-btn { flex: 1; height: 40px; border: 0; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; font-family: inherit; }
.gt-wm-btn.cancel { background: #f2f4f8; color: #4b5563; }
.gt-wm-btn.cancel:hover { background: #e8ebf1; }
.gt-wm-btn.confirm { background: linear-gradient(135deg,#FFB84C,#F59E0B); color: #fff; }
.gt-wm-btn.confirm:hover { opacity: .92; }
/* 通用协议弹窗（隐私政策/用户协议/会员充值协议，大弹窗） */
.gt-article-overlay {
    position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center;
    background: rgba(15,20,32,.55); backdrop-filter: blur(2px);
}
.gt-article-modal {
    position: relative; width: 780px; max-width: 92vw; height: 82vh; max-height: 860px;
    display: flex; flex-direction: column; border-radius: 16px; overflow: hidden;
    background: #fff; box-shadow: 0 24px 64px rgba(15,20,32,.28);
}
.gt-article-head {
    display: flex; align-items: center; gap: 10px; padding: 18px 24px;
    border-bottom: 1px solid #f0f2f6;
}
.gt-article-icon {
    width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center;
    border-radius: 10px; color: #fff; background: linear-gradient(135deg,#4A82F0,#5A8EF2);
}
.gt-article-icon i { font-size: 18px; }
.gt-article-head h3 { margin: 0; font-size: 16px; font-weight: 700; color: #1f2329; }
.gt-article-close {
    position: absolute; top: 14px; right: 16px; width: 32px; height: 32px; border: 0; border-radius: 8px;
    display: grid; place-items: center; background: #f2f4f8; color: #6b7280; cursor: pointer; font-size: 16px;
}
.gt-article-close:hover { background: #e8ebf1; color: #1f2329; }
.gt-article-body {
    flex: 1; overflow-y: auto; padding: 20px 28px 28px; font-size: 14px; color: #3a4356; line-height: 1.9;
}
.gt-article-loading { color: #9aa3b2; text-align: center; padding: 60px 0; }
.gt-article-body.article-html h1, .gt-article-body.article-html h2,
.gt-article-body.article-html h3, .gt-article-body.article-html h4 { color: #1f2329; }
.gt-article-body.article-html p { margin: 0 0 12px; }
/* 「手机访问」统一面板：tab 切换 + 单列二维码展示 */
.global-topbar-mobile-panel {
    position: absolute; top: calc(100% + 14px); right: 0; z-index: 200;
    display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 24px 28px 28px;
    border: 1px solid #e3e9f5; border-radius: 20px;
    background: linear-gradient(160deg, #ffffff 0%, #f5f8ff 100%);
    box-shadow: 0 28px 70px rgba(15,23,42,.24), 0 4px 12px rgba(15,23,42,.06);
    opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.98); transition: .18s ease;
    max-width: calc(100vw - 24px);
}
.global-topbar-item[data-entry="mobile"]:hover .global-topbar-mobile-panel,
.global-topbar-item[data-entry="mobile"].open .global-topbar-mobile-panel { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
/* 悬停热区向下延伸，覆盖按钮与弹窗之间的空隙，鼠标移入弹窗时不闪烁 */
.global-topbar-item[data-entry="mobile"]::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 14px; }
/* 面板标题「扫码访问」 */
.global-topbar-mobile-title {
    display: flex; align-items: center; gap: 7px;
    font-size: 16px; font-weight: 800; color: #1f2937; letter-spacing: .5px;
}
.global-topbar-mobile-title i { font-size: 20px; color: #2E6CEC; }
/* 二维码列：默认隐藏，激活列显示 */
.global-topbar-mobile-col { display: none; flex-direction: column; align-items: center; gap: 12px; }
.global-topbar-mobile-col.active { display: flex; }
.global-topbar-mobile-desc { display: inline-flex; align-items: center; gap: 6px; max-width: 196px; color: #6b7280; font-size: 13px; font-weight: 400; line-height: 1.5; text-align: center; }
.global-topbar-mobile-desc i { font-size: 15px; color: #2E6CEC; }
/* 二维码卡片：主色渐变描边 + 光晕，更精致醒目 */
.global-topbar-qr-box {
    width: 196px; height: 196px; display: grid; place-items: center; overflow: hidden;
    border-radius: 16px; background: #fff; padding: 8px; box-sizing: border-box;
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    box-shadow: 0 8px 20px rgba(46,108,236,.14);
}
.global-topbar-qr-box::before {
    content: ''; position: absolute; inset: -2px; border-radius: 18px; z-index: -1;
    background: linear-gradient(135deg, #4A82F0 0%, #8fb0f5 50%, #2E6CEC 100%);
    opacity: .55;
}
.global-topbar-mobile-col:hover .global-topbar-qr-box::before { opacity: .9; }
.global-topbar-qr-box img, .global-topbar-qr-box canvas { max-width: 180px; max-height: 180px; display: block; border-radius: 8px; }
/* tab 切换按钮 */
.global-topbar-mobile-tab {
    height: 38px; padding: 0 16px; border: 0; border-radius: 999px;
    background: #eef2fb; color: #4b5563; font-size: 13px; font-weight: 600; cursor: pointer;
    display: inline-flex; align-items: center; gap: 5px;
    transition: all .16s ease; white-space: nowrap;
}
.global-topbar-mobile-tab i { font-size: 15px; }
.global-topbar-mobile-tab:hover { background: #e2e9fb; color: #2E6CEC; }
.global-topbar-mobile-tab.active { background: linear-gradient(135deg,#4A82F0,#0A48E6); color: #fff; box-shadow: 0 5px 14px rgba(46,108,236,.3); }
.global-topbar-mobile-tabs { display: flex; gap: 8px; }
@media (max-width: 1180px) {
    .global-topbar { padding: 0 13px; }
    .global-topbar-site { max-width: 150px; }
    .global-topbar-item span.global-topbar-text { display: none; }
    .global-topbar-item { width: 36px; padding: 0; }
    .global-topbar-item.points { width: auto; padding: 0 8px; }
}
/* ============================================================
   积分弹窗（概览卡 + Tab 筛选 + 明细列表）
   ============================================================ */
.global-topbar-lock { overflow: hidden; }
.global-topbar-points-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.global-topbar-points-mask { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(5px); }
.global-topbar-points-dialog {
    position: relative; width: 860px; max-width: 100%; height: 720px; max-height: calc(100vh - 80px);
    display: flex; flex-direction: column; overflow: hidden;
    background: #f5f5f7; border-radius: 18px; padding: 32px 36px 24px;
    box-shadow: 0 32px 80px rgba(0,0,0,.55);
    animation: globalTopbarPointsIn .25s ease;
}
@keyframes globalTopbarPointsIn { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: none; } }
.global-topbar-points-close {
    position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border: 0; border-radius: 8px;
    background: #e9ebf0; color: #6b7280; font-size: 18px; cursor: pointer; display: grid; place-items: center;
    transition: all .15s; z-index: 5;
}
.global-topbar-points-close:hover { background: #dde0e7; color: #18181b; }
.global-topbar-points-head { text-align: center; margin-bottom: 20px; flex-shrink: 0; }
.global-topbar-points-title { display: inline-flex; align-items: center; gap: 8px; font-size: 24px; font-weight: 800; color: #18181b; letter-spacing: -.5px; }
.global-topbar-points-title i { font-size: 24px; color: #2E6CEC; }
.global-topbar-points-sub { margin: 8px 0 0; font-size: 13px; color: #6b7280; }
.global-topbar-points-overview {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    background: #fff; border-radius: 12px; padding: 16px 22px; margin-bottom: 16px;
    box-shadow: 0 1px 4px rgba(0,0,0,.04); flex-shrink: 0;
}
.global-topbar-points-stat { display: flex; align-items: center; gap: 10px; }
.global-topbar-points-stat i { font-size: 24px; color: #3b82f6; }
.global-topbar-points-stat .l { font-size: 14px; color: #6b7280; }
.global-topbar-points-stat .v { font-size: 28px; font-weight: 800; color: #3b82f6; line-height: 1; font-variant-numeric: tabular-nums; }
.global-topbar-points-btn {
    display: inline-flex; align-items: center; gap: 7px;
    background: linear-gradient(135deg, #4A82F0 0%, #5A8EF2 50%, #0A48E6 100%);
    color: #fff; border: 0; border-radius: 8px; padding: 11px 24px;
    font-size: 14px; font-weight: 600; cursor: pointer;
    box-shadow: 0 6px 16px rgba(46,108,236,.35); transition: all .2s;
}
.global-topbar-points-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(46,108,236,.42); }
.global-topbar-points-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.global-topbar-points-btn.ghost {
    background: #fff; color: #2E6CEC; border: 1.5px solid #2E6CEC; box-shadow: none; padding: 10px 22px;
}
.global-topbar-points-btn.ghost:hover { background: #eef2ff; box-shadow: none; }
/* 卡密兑换区 */
.global-topbar-points-redeem{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,#f3f6ff,#eef2fe);border:1px dashed #b9c6f5;flex-shrink:0}
.global-topbar-points-redeem-row{display:flex;align-items:center;gap:8px}
.global-topbar-points-redeem-row>i{font-size:16px;color:#2E6CEC;flex:none}
.global-topbar-points-redeem-row input{flex:1;min-width:0;height:36px;padding:0 12px;border:1px solid #d8e0f0;border-radius:8px;font-size:13px;outline:none;background:#fff;color:#18181b}
.global-topbar-points-redeem-row input:focus{border-color:#2E6CEC;box-shadow:0 0 0 3px rgba(46,108,236,.12)}
.global-topbar-points-redeem-row input:disabled{background:#f3f4f6;cursor:not-allowed}
.global-topbar-points-redeem-row button{height:36px;padding:0 18px;border:0;border-radius:8px;background:linear-gradient(135deg,#4A82F0,#0A48E6);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}
.global-topbar-points-redeem-row button:hover{opacity:.9}
.global-topbar-points-redeem-row button:disabled{opacity:.55;cursor:not-allowed}
.global-topbar-points-redeem-tip{margin:8px 2px 0;font-size:11px;color:#8a93a6}
.global-topbar-points-tabs { display: flex; gap: 10px; margin-bottom: 14px; flex-shrink: 0; }
.global-topbar-points-tabs button {
    padding: 9px 22px; background: #fff; border: 1.5px solid #e4e4e7; border-radius: 8px;
    color: #374151; font-size: 14px; font-weight: 500; cursor: pointer; transition: all .2s;
}
.global-topbar-points-tabs button:hover { border-color: #b9c6f5; color: #2E6CEC; }
.global-topbar-points-tabs button.active {
    background: linear-gradient(135deg, #4A82F0 0%, #5A8EF2 50%, #0A48E6 100%);
    border-color: #2E6CEC; color: #fff;
}
.global-topbar-points-body { flex: 1; min-height: 200px; overflow-y: auto; }
.global-topbar-points-body::-webkit-scrollbar { width: 5px; }
.global-topbar-points-body::-webkit-scrollbar-thumb { background: #d4d4d8; border-radius: 3px; }
.global-topbar-points-row { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: #fff; border-radius: 10px; margin-bottom: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.03); }
.global-topbar-points-row:last-child { margin-bottom: 0; }
.global-topbar-points-ic { flex: none; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; font-size: 18px; background: transparent !important; }
.global-topbar-points-ic.recharge { color: #2E6CEC; }
.global-topbar-points-ic.consume { color: #f0702c; }
.global-topbar-points-ic.refund { color: #12b57a; }
.global-topbar-points-ic.redeem { color: #8b5cf6; }
.global-topbar-points-ic.empty { color: #9ca3af; }
.global-topbar-points-info { flex: 1; min-width: 0; }
.global-topbar-points-remark { font-size: 14px; font-weight: 600; color: #18181b; word-break: break-all; }
.global-topbar-points-time { margin-top: 3px; font-size: 12px; color: #9ca3af; }
.global-topbar-points-change { font-size: 17px; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; }
.global-topbar-points-change.plus { color: #2E6CEC; }
.global-topbar-points-change.minus { color: #ef4444; }
.global-topbar-points-foot { text-align: center; padding: 12px 0 4px; font-size: 12px; color: #9ca3af; }
@media (max-width: 640px) {
    .global-topbar-points-modal { padding: 0; }
    .global-topbar-points-dialog { width: 100vw; max-width: 100vw; max-height: 100vh; border-radius: 0; padding: 26px 16px 16px; }
    .global-topbar-points-title { font-size: 20px; }
    .global-topbar-points-overview { padding: 14px 16px; }
    .global-topbar-points-redeem { padding: 10px 12px; }
    .global-topbar-points-redeem-row input { height: 34px; font-size: 12px; }
    .global-topbar-points-actions { gap: 8px; }
    .global-topbar-points-btn { padding: 9px 14px; font-size: 13px; }
    .global-topbar-points-btn.ghost { padding: 8px 14px; }
    .global-topbar-points-stat .v { font-size: 22px; }
    .global-topbar-points-tabs button { padding: 8px 16px; font-size: 13px; }
}

/* ========== 积分充值弹窗（PC 版，参照 plans 功能 + ai-chat 白色设计系统） ========== */
.recharge-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.6);z-index:10000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.recharge-modal-overlay.active{display:flex}
.recharge-modal{width:920px;max-width:94vw;max-height:88vh;overflow-y:auto;background:#f6f7fb;border-radius:18px;box-shadow:0 32px 80px rgba(16,42,110,.22);position:relative;padding:34px 38px 26px;animation:authSlideUp .3s ease both}
.recharge-modal::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#60a5fa,#3b82f6,#60a5fa);border-radius:18px 18px 0 0;z-index:2}
.recharge-modal-close{position:absolute;top:16px;right:16px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#e6ebf5;color:#4b5563;font-size:20px;cursor:pointer;transition:all .2s;z-index:2}
.recharge-modal-close:hover{background:#d7dfee;color:#18181b}
.recharge-modal-header{text-align:center;margin-bottom:18px;position:relative;overflow:hidden;border-radius:16px;padding:26px 20px 22px;background:linear-gradient(135deg,#4A82F0 0%,#5A8EF2 45%,#0A48E6 100%)}
.recharge-modal-header::before{content:'';position:absolute;top:-40px;right:-30px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28) 0%,transparent 70%)}
.recharge-modal-header::after{content:'';position:absolute;bottom:-50px;left:-30px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16) 0%,transparent 70%)}
.recharge-modal-title-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:6px;position:relative;z-index:1}
.recharge-modal-header h3{font-size:27px;font-weight:800;color:#fff;margin:0;letter-spacing:-.5px}
.recharge-modal-tag{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-weight:700;padding:5px 10px;border-radius:16px;vertical-align:middle;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.recharge-modal-header p{font-size:14px;color:rgba(255,255,255,.9);margin:0;position:relative;z-index:1}

/* 尊享特权 */
.recharge-perks{display:flex;gap:10px;margin-bottom:16px}
.recharge-perk{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:11px 8px;background:#fff;border:1px solid #eceef4;border-radius:12px;font-size:13px;color:#2b3350;font-weight:600;box-shadow:0 2px 6px rgba(16,24,40,.05)}
.recharge-perk i{font-size:19px}
.recharge-perk:nth-child(1) i{color:#F59E0B}
.recharge-perk:nth-child(2) i{color:#8B5CF6}
.recharge-perk:nth-child(3) i{color:#10B981}
.recharge-perk:nth-child(4) i{color:#3B82F6}
.recharge-perk span{font-weight:600}

/* 套餐卡片 */
.recharge-packages{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:4px}
.recharge-pkg{border-radius:14px;padding:22px 16px 18px;text-align:center;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:232px;background:#fff;border:1.5px solid #e7eaf1;box-shadow:0 2px 8px rgba(16,24,40,.04)}
.recharge-pkg:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(16,24,40,.1);border-color:#cfd6e6}
.recharge-pkg.selected{border-color:#3b82f6;box-shadow:0 12px 30px rgba(59,130,246,.2);background:linear-gradient(160deg,#f5f9ff 0%,#eaf1fe 100%)}
.recharge-pkg.selected::after{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#60a5fa,#3b82f6);border-radius:0 0 8px 8px}
.recharge-pkg.selected .pkg-icon{color:#3b82f6}
.recharge-pkg.selected .pkg-name{color:#18181b}
.recharge-pkg.selected .pkg-subtitle{color:#3b82f6}
.recharge-pkg.selected .pkg-points-num{color:#18181b}
.recharge-pkg.selected .pkg-points em{color:#6b7280}
.recharge-pkg.selected .pkg-desc{color:#4b5563}
.recharge-pkg.selected .pkg-desc i{color:#3b82f6}
.recharge-pkg.selected .pkg-price{color:#2563eb}
.recharge-pkg.selected .pkg-original-price{color:#a1a1aa}
.pkg-top-tag{position:absolute;top:0;left:0;right:0;background:linear-gradient(90deg,#60a5fa,#3b82f6);color:#fff;font-size:11px;font-weight:700;padding:5px 0;text-align:center;border-radius:14px 14px 0 0;box-shadow:0 2px 8px rgba(59,130,246,.28)}
.pkg-icon{font-size:24px;color:#3b82f6;margin-bottom:6px}
.pkg-icon i{font-size:30px}
.pkg-name{font-size:15px;font-weight:700;color:#18181b;margin-bottom:3px}
.pkg-subtitle{font-size:11px;color:#3b82f6;font-weight:700;margin-bottom:6px}
.pkg-points{display:flex;align-items:baseline;justify-content:center;gap:5px;margin-bottom:4px}
.pkg-points-num{font-size:32px;font-weight:800;color:#18181b;letter-spacing:-.5px}
.pkg-points em{font-style:normal;font-size:12px;color:#6b7280}
.pkg-desc{font-size:11px;color:#4b5563;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:4px;min-height:15px}
.pkg-desc i{color:#3b82f6;font-size:10px}
.pkg-price-row{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:auto;padding:6px 0 14px}
.pkg-price{font-size:20px;font-weight:800;color:#2563eb}
.pkg-original-price{font-size:12px;color:#a1a1aa;text-decoration:line-through}
.pkg-radio{position:absolute;top:14px;right:14px;width:19px;height:19px;border-radius:50%;border:2px solid #d3d8e4;background:#fff;display:flex;align-items:center;justify-content:center;transition:all .2s}
.pkg-radio-inner{width:9px;height:9px;border-radius:50%;background:transparent;transition:all .2s}
.recharge-pkg.selected .pkg-radio{border-color:#3b82f6;background:#3b82f6}
.recharge-pkg.selected .pkg-radio-inner{background:#fff}

/* 套餐卡片主题配色（按顺序轮换，让卡片更丰富） */
.recharge-pkg.pkg-theme-blue .pkg-icon i{color:#3B82F6}
.recharge-pkg.pkg-theme-violet .pkg-icon i{color:#8B5CF6}
.recharge-pkg.pkg-theme-gold .pkg-icon i{color:#F59E0B}
.recharge-pkg.pkg-theme-green .pkg-icon i{color:#10B981}
.recharge-pkg.pkg-theme-pink .pkg-icon i{color:#EC4899}
.recharge-pkg.pkg-theme-cyan .pkg-icon i{color:#06B6D4}
.recharge-pkg.pkg-theme-blue.pkg-top-tag,
.recharge-pkg.pkg-theme-blue .pkg-top-tag{background:linear-gradient(90deg,#60A5FA,#3B82F6)}
.recharge-pkg.pkg-theme-violet .pkg-top-tag{background:linear-gradient(90deg,#A78BFA,#8B5CF6)}
.recharge-pkg.pkg-theme-gold .pkg-top-tag{background:linear-gradient(90deg,#FBBF24,#F59E0B)}
.recharge-pkg.pkg-theme-green .pkg-top-tag{background:linear-gradient(90deg,#34D399,#10B981)}
.recharge-pkg.pkg-theme-pink .pkg-top-tag{background:linear-gradient(90deg,#F472B6,#EC4899)}
.recharge-pkg.pkg-theme-cyan .pkg-top-tag{background:linear-gradient(90deg,#22D3EE,#06B6D4)}

/* 支付方式 */
.recharge-pay-section{border-top:1px solid #e6e9f2;padding-top:14px;margin-top:2px}
.recharge-pay-label{font-size:12px;color:#374151;font-weight:600;margin-bottom:8px}
.recharge-pay-methods{display:flex;gap:8px;margin-bottom:12px}
.recharge-pay-method{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:#fff;border:1.5px solid #e7eaf1;border-radius:10px;cursor:pointer;transition:all .2s;font-size:13px;color:#2b3350;font-weight:600;box-shadow:0 1px 4px rgba(16,24,40,.03)}
.recharge-pay-method:hover{border-color:#cfd6e6;transform:translateY(-1px)}
.recharge-pay-method.active{border-color:#2E6CEC;background:#f0f5ff;color:#1D56D8;box-shadow:0 4px 14px rgba(46,108,236,.14)}
.recharge-pay-method.active i{color:#2E6CEC !important}
.recharge-pay-method i{font-size:18px}
.recharge-agree{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#4b5563;margin:0 0 12px}
.recharge-agree-box{width:17px;height:17px;border:1.5px solid #d3d8e4;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s;flex:none}
.recharge-agree-box.checked{background:#3b82f6;border-color:#3b82f6;box-shadow:0 2px 6px rgba(59,130,246,.3)}
.recharge-agree-box i{display:none;font-size:11px}
.recharge-agree-box.checked i{display:block}
.recharge-agree a{color:#2E6CEC;cursor:pointer;font-weight:600}
.recharge-agree a:hover{text-decoration:underline}
.recharge-submit-btn{width:100%;height:46px;background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 100%);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .3s;box-shadow:0 8px 22px rgba(59,130,246,.32)}
.recharge-submit-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(59,130,246,.42)}
.recharge-submit-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.recharge-modal-footer-note{font-size:11px;color:#6b7280;text-align:center;margin-top:14px}

/* 卡密兑换 */
.recharge-redeem{margin:14px 0 2px;text-align:center}
.recharge-redeem>a{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#4b5563;cursor:pointer;text-decoration:none}
.recharge-redeem>a:hover{color:#3b82f6}
.recharge-redeem>a i{font-size:14px}
.recharge-redeem-panel{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:12px}
.recharge-redeem-panel input{flex:0 1 340px;height:38px;padding:0 14px;border:1px solid #e7eaf1;border-radius:9px;font-size:13px;outline:none;background:#fff;color:#18181b}
.recharge-redeem-panel input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.recharge-redeem-panel button{height:38px;padding:0 20px;border:0;border-radius:9px;background:#2E6CEC;color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}
.recharge-redeem-panel button:hover{opacity:.9}
.recharge-redeem-panel button:disabled{opacity:.55;cursor:not-allowed}

/* 二维码支付 */
.pay-qr-container{text-align:center;padding:10px 0}
.pay-qr-info{margin-bottom:16px}
.pay-qr-pkg{font-size:15px;color:#1f2a4a;font-weight:600;margin-bottom:4px}
.pay-qr-amount{font-size:32px;font-weight:800;color:#3b82f6}
.pay-qr-code{margin:0 auto 14px;padding:16px;background:#fff;border-radius:12px;display:flex;justify-content:center;align-items:center;width:232px;box-shadow:0 2px 10px rgba(16,42,110,.08)}
.pay-qr-code canvas,.pay-qr-code img{border-radius:4px}
.pay-qr-tip{font-size:13px;color:#4b5563;margin-bottom:10px;display:flex;align-items:center;justify-content:center}
.pay-qr-status{font-size:13px;color:#2563eb;display:flex;align-items:center;justify-content:center;gap:6px}

/* 会员服务说明弹窗 */
.recharge-agreement-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.5);z-index:10001;display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.recharge-agreement-overlay.active{display:flex}
.recharge-agreement-dialog{width:560px;max-width:92vw;max-height:82vh;overflow-y:auto;background:#fff;border-radius:16px;box-shadow:0 24px 64px rgba(16,42,110,.22);position:relative;padding:30px 32px 24px;animation:authSlideUp .3s ease both}
.recharge-agreement-close{position:absolute;top:14px;right:14px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:#f1f3f8;color:#7c86a0;font-size:18px;cursor:pointer;transition:all .2s;z-index:2}
.recharge-agreement-close:hover{background:#e3e8f2;color:#18181b}
.recharge-agreement-head{text-align:center;margin-bottom:18px}
.recharge-agreement-icon{width:52px;height:52px;margin:0 auto 10px;border-radius:14px;background:linear-gradient(135deg,#4A82F0,#0A48E6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;box-shadow:0 6px 16px rgba(46,108,236,.3)}
.recharge-agreement-head h3{font-size:20px;font-weight:800;color:#18181b;margin:0 0 4px}
.recharge-agreement-head p{font-size:12px;color:#8a93a6;margin:0}
.recharge-agreement-body{max-height:48vh;overflow-y:auto;padding-right:4px}
.recharge-agreement-loading{text-align:center;padding:36px 0;color:#8a93a6;font-size:13px}
/* 后台文章富文本内容（article-html） */
.recharge-agreement-body.article-html{padding:2px 2px 2px 0;font-size:13px;color:#5b6478;line-height:1.9;word-break:break-word}
.recharge-agreement-body.article-html h1,.recharge-agreement-body.article-html h2,.recharge-agreement-body.article-html h3,.recharge-agreement-body.article-html h4,.recharge-agreement-body.article-html h5{color:#18181b;font-weight:700;margin:16px 0 8px;line-height:1.5}
.recharge-agreement-body.article-html h1{font-size:17px;border-bottom:1px solid #eef0f6;padding-bottom:8px}
.recharge-agreement-body.article-html h2{font-size:15px}
.recharge-agreement-body.article-html h3,.recharge-agreement-body.article-html h4,.recharge-agreement-body.article-html h5{font-size:14px}
.recharge-agreement-body.article-html p{font-size:13px;color:#5b6478;line-height:1.9;margin:0 0 8px;white-space:pre-wrap}
.recharge-agreement-body.article-html ul,.recharge-agreement-body.article-html ol{margin:0 0 8px;padding-left:20px;color:#5b6478;font-size:13px;line-height:1.9}
.recharge-agreement-body.article-html li{margin-bottom:4px}
.recharge-agreement-body.article-html img{max-width:100%;border-radius:8px;margin:6px 0}
.recharge-agreement-body.article-html a{color:#2E6CEC}
.recharge-agreement-body.article-html strong,.recharge-agreement-body.article-html b{color:#18181b}
.recharge-agreement-body.article-html blockquote{border-left:3px solid #2E6CEC;background:#f6f8fc;margin:8px 0;padding:8px 12px;color:#5b6478;font-size:13px;border-radius:0 8px 8px 0}
.recharge-agreement-body.article-html table{width:100%;border-collapse:collapse;margin:8px 0;font-size:12.5px}
.recharge-agreement-body.article-html table td,.recharge-agreement-body.article-html table th{border:1px solid #eef0f6;padding:6px 10px;color:#5b6478}
.recharge-agreement-body.article-html table th{background:#f8f9fc;color:#18181b;font-weight:600}
.recharge-agreement-item{background:#f8f9fc;border:1px solid #eef0f6;border-radius:12px;padding:14px 16px;margin-bottom:10px}
.recharge-agreement-item-title{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;color:#18181b;margin-bottom:8px}
.recharge-agreement-item-title i{color:#2E6CEC;font-size:16px}
.recharge-agreement-item p{font-size:12.5px;color:#5b6478;line-height:1.8;margin:0 0 4px}
.recharge-agreement-item p:last-child{margin-bottom:0}
.recharge-agreement-foot{text-align:center;margin-top:16px}
.recharge-agreement-btn{width:100%;height:42px;background:linear-gradient(135deg,#4A82F0,#0A48E6);border:none;border-radius:11px;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .3s;box-shadow:0 6px 16px rgba(46,108,236,.28)}
.recharge-agreement-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(46,108,236,.35)}

/* 简洁小提示 - layer.msg 皮肤（对齐首页 #toast：深色胶囊条 + 小图标） */
.layui-layer-msg{border:none !important;background:#20232A !important;border-radius:10px !important;box-shadow:0 14px 40px rgba(24,24,27,.20) !important}
.layui-layer-msg .layui-layer-content{color:#fff !important;font-size:12px !important;font-weight:500 !important;line-height:1.5 !important;padding:11px 17px !important;display:flex;align-items:center;gap:7px}
.layui-layer-msg .layui-layer-content .layui-layer-ico{background:none !important;border:none !important;width:auto !important;height:auto !important;margin:0 !important;float:none !important;flex:none;display:inline-flex !important;align-items:center;font-size:14px !important;font-weight:700 !important;line-height:1 !important;font-family:Verdana,sans-serif}
.layui-layer-msg .layui-layer-content .layui-layer-ico1{color:#73DEA1}
.layui-layer-msg .layui-layer-content .layui-layer-ico1::after{content:'✓'}
.layui-layer-msg .layui-layer-content .layui-layer-ico2{color:#FF8E8E}
.layui-layer-msg .layui-layer-content .layui-layer-ico2::after{content:'✕'}
.layui-layer-msg .layui-layer-content .layui-layer-ico0{color:#FFB24C}
.layui-layer-msg .layui-layer-content .layui-layer-ico0::after{content:'!'}

/* 新版确认/内容弹窗 - layer 通用皮肤 */
.layui-layer{border-radius:14px;box-shadow:0 24px 64px rgba(16,42,110,.24) !important}
.layui-layer-title{background:#fff !important;color:#18181b !important;border-bottom:1px solid #eef0f6 !important;border-radius:14px 14px 0 0 !important;font-size:15px !important;height:50px !important;line-height:50px !important;padding:0 16px 0 18px !important}
.layui-layer-page .layui-layer-content,.layui-layer-dialog .layui-layer-content{color:#4b5563 !important}
.layui-layer-dialog .layui-layer-content{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13.5px !important}
.layui-layer-dialog .layui-layer-ico{width:26px;height:26px;line-height:26px;border-radius:50%;background-repeat:no-repeat;background-size:16px;background-position:center}
.layui-layer-dialog .layui-layer-btn{border:none !important;background:transparent !important;padding:0 18px 16px !important;display:flex;justify-content:center;gap:10px}
.layui-layer-dialog .layui-layer-btn a{height:34px;line-height:34px;border-radius:9px;font-size:13px;font-weight:600;padding:0 26px;border:none !important;color:#4b5563;background:#eef1f6}
.layui-layer-dialog .layui-layer-btn a:hover{opacity:.85;color:#4b5563}
.layui-layer-dialog .layui-layer-btn a.layui-layer-btn0{background:linear-gradient(135deg,#2E6CEC,#0A48E6) !important;color:#fff !important;box-shadow:0 4px 12px rgba(46,108,236,.3)}
.layui-layer-dialog .layui-layer-btn a.layui-layer-btn0:hover{opacity:.9;color:#fff}
.layui-layer-dialog .layui-layer-btn a.layui-layer-btn1{border-color:transparent !important;background:#eef1f6}
.layui-layer-dialog .layui-layer-btn a.layui-layer-btn1:hover{background:#e2e7f0}
.layui-layer-close{transition:all .2s}
.layui-layer-close:hover{transform:rotate(90deg)}

/* 移动端 - 充值弹窗 */
@media(max-width:640px){
.recharge-agreement-dialog{padding:22px 18px 18px}
.recharge-modal{padding:18px 12px 14px;max-height:86vh}
.recharge-modal-header{margin-bottom:12px}
.recharge-modal-header h3{font-size:19px}
.recharge-modal-header p{font-size:12px}
.recharge-perks{flex-wrap:wrap;gap:6px;margin-bottom:12px}
.recharge-perk{flex:1 1 calc(50% - 6px);padding:8px 4px;font-size:12px}
.recharge-packages{grid-template-columns:repeat(2,1fr);gap:8px}
.recharge-pkg{padding:14px 10px 12px;min-height:150px;border-radius:12px}
.recharge-pkg:hover{transform:none}
.pkg-icon{font-size:18px;margin-bottom:4px}
.pkg-icon i{font-size:22px}
.pkg-name{font-size:13px}
.pkg-subtitle{font-size:10px;margin-bottom:4px}
.pkg-points-num{font-size:24px}
.pkg-desc{font-size:10px;margin-bottom:8px;min-height:12px}
.pkg-price{font-size:17px}
.pkg-original-price{font-size:11px}
.recharge-pay-methods{gap:6px}
.recharge-pay-method{padding:8px 8px;font-size:12px}
.recharge-submit-btn{height:40px;font-size:14px}
.recharge-redeem{margin:12px 0 2px}
.recharge-redeem-panel{flex-direction:column;align-items:stretch;gap:6px}
.recharge-redeem-panel input{flex:1 1 auto;width:100%}
}

/* ========== 登录/注册弹窗（浅色版，供未引入 common.css 的新版页面使用） ========== */
.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.55);z-index:2147483003;display:none;align-items:center;justify-content:center;backdrop-filter:blur(6px);animation:authFadeIn .25s ease}
.auth-modal-overlay.active{display:flex}
@keyframes authFadeIn{from{opacity:0}to{opacity:1}}
@keyframes authSlideUp{from{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.auth-modal{width:400px;max-width:94vw;max-height:90vh;overflow-y:auto;background:#fff;border-radius:20px;border:1px solid #eef0f6;box-shadow:0 30px 80px rgba(16,42,110,.28);position:relative;padding:32px 30px 26px;animation:authSlideUp .3s ease both}
.auth-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:#f1f3f8;color:#7c86a0;font-size:20px;cursor:pointer;transition:all .2s;z-index:2}
.auth-modal-close:hover{background:#e3e8f2;color:#18181b}
.auth-modal-top{text-align:center;margin-bottom:22px}
.auth-modal-logo{width:56px;height:56px;background:linear-gradient(135deg,#4A82F0 0%,#0A48E6 100%);border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;box-shadow:0 8px 22px rgba(46,108,236,.3)}
.auth-modal-logo i{font-size:28px;color:#fff}
.auth-modal-logo.has-logo{background:none;box-shadow:none;overflow:hidden}
.auth-modal-logo.has-logo > i{display:none}
.auth-modal-logo.no-custom-logo i{visibility:visible}
.auth-modal-title{font-size:22px;font-weight:800;color:#18181b;margin-bottom:6px;letter-spacing:-.3px}
.auth-modal-desc{font-size:13px;color:#7c86a0}
.auth-main-content{width:100%}
.auth-form-panel{display:none}
.auth-form-panel.active{display:block;animation:authSlideUp .25s ease both}
/* 微信扫码登录面板 */
.wx-login-container{text-align:center}
.wx-login-header h4{font-size:18px;font-weight:700;color:#18181b;margin-bottom:6px}
.wx-login-header p{font-size:13px;color:#7c86a0;margin-bottom:16px}
/* 分隔线 */
.auth-divider{display:flex;align-items:center;justify-content:center;margin:20px 0 16px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:#eef0f6}
.auth-divider span{padding:0 14px;font-size:12px;color:#a1a9bc}
/* 账号登录/短信登录按钮 */
.auth-account-buttons{display:flex;gap:10px;margin-top:16px}
.auth-switch-btn{flex:1;padding:13px 16px;border-radius:11px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}
.auth-switch-btn:hover{opacity:.92;transform:translateY(-1px)}
/* 协议说明 */
.auth-agreement{font-size:12px;color:#a1a9bc;line-height:1.6}
.auth-agreement a{color:#2E6CEC;text-decoration:none}
.auth-agreement a:hover{text-decoration:underline}
/* 登录表单 */
.auth-field{margin-bottom:16px}
.auth-input-wrap{display:flex;align-items:center;background:#f7f8fb;border:1px solid #e7eaf1;border-radius:11px;padding:0 14px;transition:all .2s}
.auth-input-wrap:focus-within{border-color:#2E6CEC;box-shadow:0 0 0 3px rgba(46,108,236,.12);background:#fff}
.auth-input-wrap i{font-size:17px;color:#a1a9bc;margin-right:10px;flex-shrink:0}
.auth-input-wrap:focus-within i{color:#2E6CEC}
.auth-input-wrap input{flex:1;height:46px;background:transparent;border:none;outline:none;color:#18181b;font-size:14px}
.auth-input-wrap input::placeholder{color:#b6bdcb}
.auth-submit-btn{width:100%;height:48px;background:linear-gradient(135deg,#4A82F0 0%,#0A48E6 100%);border:none;border-radius:12px;color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s;box-shadow:0 6px 18px rgba(46,108,236,.28);margin-top:4px}
.auth-submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(46,108,236,.38)}
.auth-submit-btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
/* 图片验证码 / 短信验证码 */
.captcha-field,.sms-code-field{display:flex;align-items:center;gap:8px}
.captcha-field .auth-input-wrap,.sms-code-field .auth-input-wrap{flex:1}
.captcha-img{width:100px;height:40px;border-radius:8px;cursor:pointer;background:#f4f5f9;border:1px solid #e7eaf1}
.auth-send-code-btn{padding:0 16px;height:46px;background:rgba(46,108,236,.08);border:1px solid rgba(46,108,236,.2);border-radius:11px;color:#2E6CEC;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}
.auth-send-code-btn:hover{background:rgba(46,108,236,.15);border-color:rgba(46,108,236,.4)}
.auth-send-code-btn:disabled{opacity:.5;cursor:not-allowed}
/* 微信一键登录按钮 */
.auth-wechat-btn{width:100%;padding:14px 20px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;background:#07c160;color:#fff;margin-top:14px}
.auth-wechat-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 8px 22px rgba(7,193,96,.3)}
/* 移动端登录弹窗 */
@media(max-width:480px){
.auth-modal{padding:26px 20px 22px;border-radius:16px}
.auth-modal-logo{width:50px;height:50px;border-radius:14px}
.auth-modal-title{font-size:20px}
.auth-account-buttons{flex-direction:column}
}
