/* V2 Prototype Design System · 对齐 prototype-web-v2/index.html */

/* ============ 设计令牌（Design Tokens） ============ */
:root{
  --brand:#00BEBD;           /* PC 统一品牌青绿（与 app.css 主色一致） */
  --brand-legacy:#00B4AD;    /* 历史小程序色，新代码请用 var(--brand) */
  --brand-2:#00A6A7;
  --brand-deep:#00857F;
  --brand-soft:#E3F5F2;      /* 青绿浅底 */
  --brand-mist:#F0FAF8;
  --accent:#FC6C38;          /* 辅助强调 暖橙 */
  --accent-soft:#FFEDE5;
  --gold:#F2B33D;
  --ink:#0F2623;             /* 主文字 深墨绿 */
  --ink-2:#3D514C;           /* 次级文字 */
  --muted:#6C7B76;           /* 弱文字 */
  --bg:#F4F7F5;              /* 页面底色 */
  --surface:#FFFFFF;
  --line:#E2EAE6;
  --line-strong:#C8D8D2;
  --danger:#E5484D;
  --success:#12A572;
  --info:#3B82F6;
  --radius-sm:10px;
  --radius:14px;
  --radius-lg:20px;
  --shadow-sm:0 1px 2px rgba(15,38,35,.05),0 1px 3px rgba(15,38,35,.04);
  --shadow:0 6px 20px rgba(15,38,35,.07);
  --shadow-lg:0 18px 48px rgba(15,38,35,.14);
  --font:"DM Sans","Noto Sans SC",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none}
input,textarea,select{font:inherit}
img{display:block;max-width:100%}
::selection{background:var(--brand-soft);color:var(--brand-deep)}
/* 滚动条 */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#cfdad5;border-radius:99px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}

/* ============ 通用组件 ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:14px;border-radius:12px;padding:10px 18px;transition:.18s ease;white-space:nowrap;border:1px solid transparent}
.btn:active{transform:scale(.98)}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;box-shadow:0 8px 20px rgba(0,180,173,.28)}
.btn-primary:hover{box-shadow:0 10px 26px rgba(0,180,173,.36);transform:translateY(-1px)}
.btn-accent{background:linear-gradient(135deg,var(--accent),#FF8A5C);color:#fff;box-shadow:0 8px 20px rgba(252,108,56,.25)}
.btn-accent:hover{box-shadow:0 10px 26px rgba(252,108,56,.34);transform:translateY(-1px)}
.btn-ghost{background:#fff;border-color:var(--line-strong);color:var(--ink-2)}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand-deep)}
.btn-soft{background:var(--brand-soft);color:var(--brand-deep)}
.btn-soft:hover{background:var(--brand);color:#fff}
.btn-danger-soft{background:#FDECEC;color:var(--danger)}
.btn-sm{padding:7px 13px;font-size:13px;border-radius:10px}
.btn-lg{padding:13px 24px;font-size:15px;border-radius:14px}
.btn-block{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}

.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.pill-brand{background:var(--brand-soft);color:var(--brand-deep)}
.pill-accent{background:var(--accent-soft);color:#D95323}
.pill-gray{background:#EEF2F0;color:var(--muted)}
.pill-gold{background:#FDF3DF;color:#B07B10}
.pill-green{background:#E4F6EE;color:#0E8A5F}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.sec-title{font-size:17px;font-weight:700;letter-spacing:-.01em}
.sec-sub{color:var(--muted);font-size:13px}
.tag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:500;color:var(--muted);background:#F2F6F4;padding:3px 8px;border-radius:7px}
.icon{width:20px;height:20px;flex:none}
.muted{color:var(--muted)}
.gap-8{display:flex;gap:8px}
.gap-12{display:flex;gap:12px}
.gap-16{display:flex;gap:16px}
.col{display:flex;flex-direction:column}

/* ============ 登录页 ============ */
.login-page{position:fixed;inset:0;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}
.login-brand{position:relative;overflow:hidden;background:linear-gradient(160deg,#062A2C 0%,#0B3D3B 45%,#0E4F49 100%);color:#EAF7F3;padding:56px 60px;display:flex;flex-direction:column}
.login-brand::before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;right:-180px;top:-160px;background:radial-gradient(circle,rgba(0,180,173,.34),transparent 62%)}
.login-brand::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;left:-160px;bottom:-180px;background:radial-gradient(circle,rgba(252,108,56,.18),transparent 62%)}
.lb-inner{position:relative;z-index:2;display:flex;flex-direction:column;height:100%}
.lb-logo{display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px}
.lb-logo small{display:block;font-weight:500;font-size:11px;letter-spacing:.18em;color:rgba(234,247,243,.6)}
.lb-mid{margin:auto 0;padding:48px 0}
.lb-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--brand);background:rgba(0,180,173,.12);border:1px solid rgba(0,180,173,.35);padding:6px 14px;border-radius:999px;margin-bottom:22px}
.lb-mid h1{font-size:40px;line-height:1.22;letter-spacing:-.02em;font-weight:800;margin-bottom:16px}
.lb-mid h1 em{font-style:normal;color:var(--brand);background:linear-gradient(90deg,#21D4CC,#7FE0CF);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.lb-mid p{color:rgba(234,247,243,.72);font-size:15.5px;max-width:420px;line-height:1.75}
.lb-feats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:34px;max-width:460px}
.lb-feat{display:flex;gap:11px;align-items:flex-start;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px}
.lb-feat .ic{width:34px;height:34px;border-radius:10px;background:rgba(0,180,173,.2);color:#37E0D6;display:grid;place-items:center;flex:none}
.lb-feat b{display:block;font-size:13.5px;margin-bottom:2px}
.lb-feat span{font-size:12px;color:rgba(234,247,243,.62);line-height:1.5}
.lb-foot{font-size:12px;color:rgba(234,247,243,.45)}
.login-form{padding:56px 60px;display:flex;align-items:center;justify-content:center}
.lf-card{width:min(400px,100%)}
.lf-card h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.lf-card>p{color:var(--muted);font-size:14px;margin-bottom:30px}
.field{margin-bottom:16px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.field .ctrl{display:flex;gap:8px}
.field input{width:100%;border:1.5px solid var(--line-strong);border-radius:12px;padding:11px 14px;font-size:14px;background:#FBFDFC;transition:.18s;outline:none}
.field input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px var(--brand-soft)}
.code-ok{color:var(--success)}
.divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:20px 0}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.btn-wechat{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;border:1.5px solid var(--line-strong);border-radius:12px;padding:11px;font-weight:600;font-size:14px;background:#fff;transition:.18s}
.btn-wechat:hover{border-color:#07C160;color:#07C160;background:#F4FBF7}
.agree{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--muted);margin-top:16px}
.agree input{accent-color:var(--brand);margin-top:2px}
.agree a{color:var(--brand-deep);font-weight:600}
.login-dev{margin-top:18px;text-align:center;font-size:12.5px;color:var(--muted)}
.login-dev a{color:var(--brand-deep);font-weight:600}

/* ============ App 壳 ============ */
.app{display:none;min-height:100vh}
.app.show{display:block}
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}

/* 侧边栏 */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:248px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;padding:0 14px}
.sidebar-logo{display:flex;align-items:center;gap:11px;padding:20px 10px 16px;border-bottom:1px solid var(--line)}
.logo-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(140deg,var(--brand),var(--brand-deep));display:grid;place-items:center;color:#fff;box-shadow:0 6px 14px rgba(0,180,173,.32);flex:none}
.logo-mark svg{width:22px;height:22px}
.sidebar-logo b{font-size:16px;font-weight:800;letter-spacing:-.01em;display:block;line-height:1.2}
.sidebar-logo small{font-size:11px;color:var(--muted);letter-spacing:.06em;font-weight:500}
.nav-group{padding:18px 6px 6px;font-size:11px;font-weight:700;letter-spacing:.14em;color:#9AA8A3;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10.5px 12px;border-radius:12px;color:var(--ink-2);font-weight:600;font-size:14px;margin-bottom:3px;transition:.16s;position:relative}
.nav-item:hover{background:var(--bg);color:var(--ink)}
.nav-item.active{background:var(--brand-soft);color:var(--brand-deep)}
.nav-item.active::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:4px;border-radius:99px;background:var(--brand)}
.nav-item .badge{background:var(--accent);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;padding:0 5px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
.sidebar-foot{margin-top:auto;padding:14px 4px 16px;border-top:1px solid var(--line)}
.kx-official-label{margin-left:4px;font-size:12px;font-weight:600}
.user-card{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:var(--bg);margin-bottom:10px}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(140deg,var(--brand),var(--brand-2));color:#fff;display:grid;place-items:center;font-weight:700;font-size:15px;flex:none;position:relative}
.avatar .dot{position:absolute;right:0;bottom:0;width:10px;height:10px;border-radius:50%;background:var(--success);border:2px solid #fff}
.user-card b{display:block;font-size:13.5px}
.user-card span{font-size:11.5px;color:var(--muted)}
.member-chip{font-size:10.5px;font-weight:700;background:linear-gradient(135deg,#F5B73F,#F59E0B);color:#fff;padding:2px 8px;border-radius:99px;margin-left:auto}

/* 主区域 */
.main{grid-column:2;min-width:0}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 32px;background:rgba(244,247,245,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar .crumb{font-size:12.5px;color:var(--muted)}
.topbar .crumb b{color:var(--ink);font-size:16px;font-weight:800;letter-spacing:-.01em;display:block}
.top-actions{display:flex;align-items:center;gap:10px}
.search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line-strong);border-radius:12px;padding:8px 14px;width:230px;color:var(--muted);font-size:13px}
.search-box input{border:0;outline:0;flex:1;font-size:13px;background:transparent;color:var(--ink)}
.top-icon-btn{position:relative;width:40px;height:40px;border-radius:12px;border:1.5px solid var(--line-strong);background:#fff;display:grid;place-items:center;color:var(--ink-2);transition:.16s}
.top-icon-btn:hover{border-color:var(--brand);color:var(--brand-deep)}
.top-icon-btn .red{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid #fff}

.content{padding:26px 32px 60px;max-width:1280px;margin:0 auto}

/* ============ 首页 ============ */
.hero-banner{position:relative;overflow:hidden;border-radius:24px;background:linear-gradient(120deg,#0B3B39 0%,#0E5550 55%,#117C70 100%);color:#fff;padding:36px 40px;display:flex;justify-content:space-between;align-items:center;gap:24px;box-shadow:var(--shadow-lg)}
.hero-banner::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;top:-180px;background:radial-gradient(circle,rgba(0,180,173,.4),transparent 60%)}
.hero-banner::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:120px;bottom:-180px;background:radial-gradient(circle,rgba(252,108,56,.22),transparent 60%)}
.hb-left{position:relative;z-index:2;max-width:640px}
.hb-greet{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(255,255,255,.75);margin-bottom:10px}
.hb-greet .today-chip{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);padding:3px 10px;border-radius:99px;font-size:11.5px}
.hero-banner h1{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.3;margin-bottom:8px}
.hero-banner p{color:rgba(255,255,255,.78);font-size:14.5px;max-width:520px;line-height:1.7;margin-bottom:20px}
.hb-cta{display:flex;gap:12px;flex-wrap:wrap}
.hb-cta .btn-primary{background:#fff;color:var(--brand-deep);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.hb-cta .btn-primary:hover{background:var(--brand-mist);transform:translateY(-1px)}
.hb-cta .btn-glass{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff}
.hb-cta .btn-glass:hover{background:rgba(255,255,255,.2)}
.hb-mascot{position:relative;z-index:2;flex:none;width:150px;height:150px;display:grid;place-items:center}
.hb-mascot .tree{width:132px;height:132px;border-radius:34px;background:linear-gradient(150deg,#0E6A60,#0A554E);border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 40px rgba(0,0,0,.3);display:grid;place-items:center;animation:float 4s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* NBA 下一步行动 */
.nba-wrap{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px 24px;display:flex;align-items:center;gap:22px;box-shadow:var(--shadow-sm)}
.nba-icon{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--accent),#FF8A5C);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 8px 18px rgba(252,108,56,.3)}
.nba-body{flex:1;min-width:0}
.nba-body .nba-label{font-size:11.5px;font-weight:700;letter-spacing:.12em;color:var(--accent);text-transform:uppercase;margin-bottom:3px}
.nba-body .nba-text{font-size:15px;font-weight:700}
.nba-body .nba-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.nba-cta{flex:none}

/* 宫格 */
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.quick-tile{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;gap:14px;align-items:flex-start;transition:.2s;cursor:pointer}
.quick-tile:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-2px)}
.quick-tile .qt-ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;flex:none}
.qt-1 .qt-ic{background:var(--brand-soft);color:var(--brand-deep)}
.qt-2 .qt-ic{background:#EAF0FF;color:#3B5BD9}
.qt-3 .qt-ic{background:#FDF3DF;color:#B07B10}
.qt-4 .qt-ic{background:#E4F6EE;color:#0E8A5F}
.qt-5 .qt-ic{background:#F3EAFB;color:#7C3AED}
.qt-6 .qt-ic{background:var(--accent-soft);color:#D95323}
.quick-tile b{font-size:15px;font-weight:700;display:block;margin-bottom:3px}
.quick-tile p{font-size:12.5px;color:var(--muted);line-height:1.55}
.quick-tile .go{position:absolute;top:18px;right:16px;color:#B9C6C1;font-size:16px;font-weight:700}
.quick-tile:hover .go{color:var(--brand)}
.quick-tile .tile-progress{position:absolute;left:0;bottom:0;height:3px;background:var(--brand);border-radius:99px}

/* 双栏 */
.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-top:16px}
.section-block{margin-top:26px}
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.sec-head .more{font-size:13px;color:var(--brand-deep);font-weight:600}

/* 权益概览 */
.ent-banner{background:linear-gradient(120deg,#FFFDF7,#FFF7EC);border:1px solid #F4E3C8;border-radius:20px;padding:22px 24px;display:flex;align-items:center;gap:24px}
.ent-ring{flex:none;width:96px;height:96px;position:relative;display:grid;place-items:center}
.ent-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.ent-ring b{position:relative;font-size:22px;font-weight:800}
.ent-ring span{position:relative;display:block;font-size:10.5px;color:var(--muted)}
.ent-right{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ent-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px}
.ent-stat b{font-size:19px;font-weight:800;color:var(--brand-deep);display:block;line-height:1.2}
.ent-stat span{font-size:12px;color:var(--muted)}
.ent-stat .bar{height:5px;background:#EDF2EF;border-radius:99px;margin-top:8px;overflow:hidden}
.ent-stat .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),#35D0C5)}

/* 助理卡 */
.assistant-card{background:linear-gradient(150deg,#F3FBF9,#E7F6F2);border:1px solid #CFEBE4;border-radius:20px;padding:24px;position:relative;overflow:hidden}
.assistant-card::after{content:"";position:absolute;width:200px;height:200px;border-radius:50%;right:-60px;bottom:-80px;background:radial-gradient(circle,rgba(0,180,173,.16),transparent 65%)}
.assistant-card .as-head{display:flex;gap:14px;align-items:center;margin-bottom:14px;position:relative;z-index:2}
.assistant-card .as-mascot{width:52px;height:52px;border-radius:16px;background:#fff;border:1px solid #CFEBE4;display:grid;place-items:center;color:var(--brand-deep);box-shadow:var(--shadow-sm)}
.assistant-card b{font-size:15.5px}
.assistant-card .as-sub{font-size:12px;color:var(--muted)}
.as-msg{background:#fff;border:1px solid #D8EFEA;border-radius:14px 14px 14px 4px;padding:12px 14px;font-size:13px;color:var(--ink-2);line-height:1.6;position:relative;z-index:2}
.as-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;position:relative;z-index:2}
.as-chip{font-size:12px;font-weight:600;color:var(--brand-deep);background:#fff;border:1px solid #CFEBE4;border-radius:999px;padding:5px 12px;transition:.15s;cursor:pointer}
.as-chip:hover{background:var(--brand);color:#fff;border-color:var(--brand)}

/* 问签卡 */
.fortune-card{background:linear-gradient(150deg,#FFF8EC,#FDF1DC);border:1px solid #F2E3C0;border-radius:20px;padding:24px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.fortune-card::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-60px;top:-60px;background:radial-gradient(circle,rgba(242,179,61,.2),transparent 65%)}
.fortune-card b{font-size:15.5px;position:relative;z-index:2}
.fortune-card .fc-sub{font-size:12.5px;color:var(--muted);margin:4px 0 14px;position:relative;z-index:2}
.fortune-quota{font-size:12px;color:var(--muted);position:relative;z-index:2;margin-bottom:12px}
.fortune-card .fc-btn{position:relative;z-index:2}

/* ============ 通用页面骨架 ============ */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.page-head h1{font-size:23px;font-weight:800;letter-spacing:-.02em}
.page-head .ph-sub{color:var(--muted);font-size:13px;margin-top:3px}
.page-head .ph-actions{display:flex;gap:10px}

/* ============ 简历页 ============ */
.resume-overview{display:grid;grid-template-columns:300px 1fr;gap:16px}
.ro-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
.completeness{display:flex;flex-direction:column;align-items:center;text-align:center;padding:6px 0 18px}
.ring-big{width:150px;height:150px;position:relative;display:grid;place-items:center;margin-bottom:14px}
.ring-big svg{position:absolute;inset:0;transform:rotate(-90deg)}
.ring-big b{font-size:34px;font-weight:800;letter-spacing:-.03em}
.ring-big b small{font-size:14px;color:var(--muted);font-weight:600}
.completeness .cp-label{font-size:15px;font-weight:700}
.completeness .cp-sub{font-size:12.5px;color:var(--muted);margin-top:3px}
.ro-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.module-check{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:2px}
.module-check li{display:flex;align-items:center;gap:10px;padding:9px 6px;border-radius:10px;font-size:13px;color:var(--ink-2)}
.module-check li.done{color:var(--ink)}
.module-check .st{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;font-size:11px}
.module-check .st.ok{background:var(--success);color:#fff}
.module-check .st.half{background:#FDF3DF;color:#B07B10}
.module-check .st.no{background:#EDF2EF;color:#98A6A1}
.module-check .mm{font-weight:600}
.module-check .ml{margin-left:auto;font-size:12px;color:var(--muted)}
.resume-editor{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.editor-tabs{display:flex;border-bottom:1px solid var(--line);overflow-x:auto;background:#FBFDFC}
.ed-tab{display:flex;align-items:center;gap:8px;padding:13px 18px;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2.5px solid transparent;white-space:nowrap;cursor:pointer;transition:.15s}
.ed-tab:hover{color:var(--ink)}
.ed-tab.active{color:var(--brand-deep);border-bottom-color:var(--brand);background:#fff}
.ed-tab .dot{width:7px;height:7px;border-radius:50%}
.ed-tab .dot.ok{background:var(--success)}
.ed-tab .dot.half{background:var(--gold)}
.ed-tab .dot.no{background:#C6D1CC}
.editor-body{padding:24px}
.editor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.editor-head h3{font-size:16px;font-weight:700}
.editor-head .hint{font-size:12.5px;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .full{grid-column:1/-1}
.f-item label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.f-item input,.f-item textarea,.f-item select{width:100%;border:1.5px solid var(--line-strong);border-radius:11px;padding:10px 13px;font-size:13.5px;background:#FBFDFC;outline:none;transition:.16s}
.f-item input:focus,.f-item textarea:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px var(--brand-soft)}
.f-item textarea{min-height:88px;resize:vertical;line-height:1.6}
.exp-card{border:1.5px solid var(--line);border-radius:16px;padding:18px;margin-bottom:14px;background:#fff;transition:.18s}
.exp-card:hover{border-color:#C2D8D1;box-shadow:var(--shadow-sm)}
.exp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.exp-title{display:flex;gap:12px;align-items:flex-start}
.exp-avatar{width:42px;height:42px;border-radius:12px;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:700;flex:none}
.exp-title b{font-size:14.5px;display:block}
.exp-title span{font-size:12.5px;color:var(--muted)}
.exp-body{display:block;width:100%}
.exp-body .form-grid,.exp-body .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}
.exp-body .f-item label{font-size:12px}
.ai-polish{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--brand-deep);background:var(--brand-soft);padding:6px 11px;border-radius:9px;cursor:pointer;transition:.15s}
.ai-polish:hover{background:var(--brand);color:#fff}
.ai-polish .spark{display:inline-flex}

/* ============ 快询页 ============ */
.consult-step{display:flex;gap:8px;margin-bottom:20px}
.cs-item{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted)}
.cs-item .n{width:24px;height:24px;border-radius:50%;background:#EDF2EF;color:#8B9A95;display:grid;place-items:center;font-size:12px}
.cs-item.active{color:var(--ink)}
.cs-item.active .n{background:var(--brand);color:#fff}
.cs-item.done .n{background:var(--success);color:#fff}
.cs-arrow{color:#C6D1CC}
.topic-pick h3{font-size:15px;font-weight:700;margin-bottom:12px}
.topic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.topic-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px;text-align:left;transition:.16s;cursor:pointer}
.topic-card:hover{border-color:#B8D3CB}
.topic-card.active{border-color:var(--brand);background:var(--brand-mist);box-shadow:0 0 0 3px var(--brand-soft)}
.topic-card .tc-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;margin-bottom:10px;font-size:18px}
.topic-card b{font-size:13.5px;display:block;margin-bottom:2px}
.topic-card span{font-size:12px;color:var(--muted);line-height:1.5}
.consultant-list{display:flex;flex-direction:column;gap:12px;margin-top:6px}
.consultant-card{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:20px;display:flex;gap:16px;transition:.18s;cursor:pointer}
.consultant-card:hover{border-color:#B8D3CB;box-shadow:var(--shadow)}
.consultant-card.sel{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.consultant-avatar{width:60px;height:60px;border-radius:18px;background:linear-gradient(145deg,#0B3B39,#117C70);display:grid;place-items:center;font-size:22px;flex:none;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.25);box-shadow:0 4px 12px rgba(11,59,57,.25);position:relative}
.cc-main{flex:1;min-width:0}
.cc-head{display:flex;align-items:center;gap:10px;margin-bottom:5px;flex-wrap:wrap}
.cc-head b{font-size:15.5px;font-weight:700}
.cc-title{font-size:12.5px;color:var(--muted)}
.cc-reason{margin-top:10px;background:var(--brand-mist);border-left:3px solid var(--brand);border-radius:10px;padding:9px 12px;font-size:12.5px;color:var(--ink-2);line-height:1.6}
.cc-reason b{color:var(--brand-deep)}
.cc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cc-right{flex:none;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px}
.cc-price b{font-size:20px;font-weight:800;color:var(--ink)}
.cc-price span{font-size:11.5px;color:var(--muted)}
.cc-quota{font-size:11.5px;color:var(--muted);background:#F2F6F4;padding:2px 8px;border-radius:99px}
.sku-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.sku-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px;position:relative;text-align:left;transition:.16s;cursor:pointer}
.sku-card:hover{border-color:#B8D3CB}
.sku-card.hot{border-color:var(--accent);background:linear-gradient(160deg,#FFFBF8,#FFF3EC)}
.sku-card.hot .hot-tag{position:absolute;top:-9px;right:12px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:99px}
.sku-card b{font-size:14px;display:block}
.sku-card .pr{font-size:22px;font-weight:800;margin:6px 0 2px;color:var(--ink)}
.sku-card .pr small{font-size:12px;color:var(--muted);font-weight:600}
.sku-card span{font-size:12px;color:var(--muted)}

/* ============ 日历页 ============ */
.calendar-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.calendar-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;overflow:hidden}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.cal-head b{font-size:16.5px;font-weight:800}
.cal-nav{display:flex;gap:6px}
.cal-nav button{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink-2);display:grid;place-items:center}
.cal-nav button:hover{border-color:var(--brand);color:var(--brand-deep)}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
.week span{text-align:center;font-size:11.5px;font-weight:700;color:var(--muted);padding:6px 0}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.day{min-height:86px;border:1px solid transparent;border-radius:12px;padding:7px 8px;font-size:12.5px;color:var(--ink-2);transition:.15s;position:relative;cursor:pointer}
.day:hover{background:var(--bg)}
.day.out{color:#B9C6C1}
.day.today{background:var(--brand-soft);border-color:var(--brand);font-weight:700}
.day .dnum{font-weight:600}
.day .dot-events{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px}
.day .dot-events i{width:14px;height:14px;border-radius:4px;display:grid;place-items:center;font-size:8.5px;font-style:normal;color:#fff}
.day .dot-events i.interview{background:#3B82F6}
.day .dot-events i.work{background:var(--brand)}
.day .dot-events i.review{background:var(--accent)}
.cal-side{display:flex;flex-direction:column;gap:16px}
.day-tasks{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px}
.task-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.task-item:last-child{border-bottom:0}
.task-type{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}
.task-item b{font-size:13.5px;display:block}
.task-item span{font-size:12px;color:var(--muted)}
.task-time{font-size:11.5px;color:var(--muted);margin-left:auto;white-space:nowrap}
.review-card{background:linear-gradient(150deg,#E9F7F3,#D9F0EA);border:1px solid #C2E5DC;border-radius:18px;padding:18px}
.review-card b{font-size:14.5px}
.review-card p{font-size:12.5px;color:var(--ink-2);margin:6px 0 12px;line-height:1.6}
.review-card .btn{width:100%}

/* ============ 助理页 ============ */
.assistant-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;height:calc(100vh - 190px);min-height:520px}
.as-left{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:6px;overflow:auto}
.as-left .al-head{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:8px}
.al-item{display:flex;gap:11px;align-items:flex-start;padding:11px;border-radius:12px;cursor:pointer;transition:.15s;border:1.5px solid transparent}
.al-item:hover{background:var(--bg)}
.al-item.active{background:var(--brand-mist);border-color:#CFEBE4}
.al-item .chk{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--line-strong);flex:none;display:grid;place-items:center;color:#fff;margin-top:1px}
.al-item.done .chk{background:var(--success);border-color:var(--success)}
.al-item b{font-size:13px;display:block;line-height:1.4}
.al-item span{font-size:11.5px;color:var(--muted)}
.as-chat{background:#fff;border:1px solid var(--line);border-radius:20px;display:flex;flex-direction:column;overflow:hidden}
.chat-scroll{flex:1;padding:22px;overflow:auto;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#FBFFFE,#F6FBFA)}
.msg{display:flex;gap:12px;max-width:82%}
.msg .msg-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;flex:none}
.msg.bot .msg-avatar{background:var(--brand-soft);color:var(--brand-deep)}
.msg.user{flex-direction:row-reverse;margin-left:auto}
.msg.user .msg-avatar{background:linear-gradient(135deg,#9DB5B0,#6E8F88);color:#fff}
.msg-bubble{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 15px;font-size:13.5px;line-height:1.7;box-shadow:var(--shadow-sm)}
.msg.user .msg-bubble{background:var(--brand);color:#fff;border-color:var(--brand);border-radius:14px 14px 4px 14px}
.msg-bubble .mb-tag{font-size:11.5px;font-weight:700;color:var(--brand-deep);display:block;margin-bottom:4px}
.msg-actions{display:flex;gap:8px;margin-top:10px}
.chat-input{padding:14px 18px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:flex-end}
.chat-input textarea{flex:1;border:1.5px solid var(--line-strong);border-radius:13px;padding:11px 14px;font-size:13.5px;resize:none;height:46px;outline:none;transition:.16s}
.chat-input textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.chat-send{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;display:grid;place-items:center;flex:none}
.chat-send:hover{box-shadow:0 8px 18px rgba(0,180,173,.3)}

/* ============ 问签页 ============ */
.fortune-hero{background:linear-gradient(150deg,#FFF9EF,#FDF1DC);border:1px solid #F2E3C0;border-radius:24px;padding:40px;text-align:center;position:relative;overflow:hidden}
.fortune-hero::after{content:"";position:absolute;width:380px;height:380px;border-radius:50%;right:-120px;top:-120px;background:radial-gradient(circle,rgba(242,179,61,.25),transparent 60%)}
.fortune-hero::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;left:-100px;bottom:-140px;background:radial-gradient(circle,rgba(0,180,173,.18),transparent 60%)}
.fh-inner{position:relative;z-index:2;max-width:560px;margin:0 auto}
.fortune-hero h1{font-size:27px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.fortune-hero h1 em{font-style:normal;color:#D97B1F}
.fortune-hero p{color:var(--muted);font-size:14px;margin-bottom:22px}
.fortune-quota-chip{display:inline-flex;gap:8px;align-items:center;background:#fff;border:1px solid #F0DFBB;border-radius:999px;padding:6px 14px;font-size:12.5px;color:var(--muted);margin-bottom:20px}
.fortune-quota-chip b{color:var(--ink);font-size:14px}
.scene-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:26px}
.scene-card{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:18px;text-align:center;transition:.18s;cursor:pointer}
.scene-card:hover{border-color:#E9C87E;transform:translateY(-2px);box-shadow:var(--shadow)}
.scene-card.active{border-color:var(--gold);background:#FFFDF6;box-shadow:0 0 0 3px #FDF3DF}
.scene-card .sc-ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;margin:0 auto 10px;font-size:22px;background:#FDF5E5}
.scene-card b{font-size:13.5px;display:block;margin-bottom:2px}
.scene-card span{font-size:11.5px;color:var(--muted)}
.shake-zone{margin-top:24px;text-align:center;padding:36px 0 10px}
.shake-zone .shake-btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--accent),#FF8A5C);color:#fff;font-size:16px;font-weight:700;padding:15px 44px;border-radius:999px;box-shadow:0 14px 32px rgba(252,108,56,.35);transition:.18s}
.shake-zone .shake-btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(252,108,56,.42)}
.shake-zone .shake-sub{color:var(--muted);font-size:12.5px;margin-top:14px}
.fortune-result{display:none;margin-top:26px;text-align:center}
.fortune-result.show{display:block;animation:pop .4s ease}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.result-card{background:linear-gradient(160deg,#FFFDF8,#FFF5E3);border:1px solid #F0DFBB;border-radius:24px;padding:36px;max-width:520px;margin:0 auto;position:relative}
.result-card .rc-emoji{font-size:52px;margin-bottom:10px}
.result-card .rc-title{font-size:22px;font-weight:800;color:#B96A12;margin-bottom:6px}
.result-card .rc-slogan{font-size:14px;color:var(--muted);margin-bottom:18px}
.result-card .rc-body{background:#fff;border:1px solid #F0E3C6;border-radius:14px;padding:18px;text-align:left;margin-bottom:16px}
.result-card .rc-body b{color:var(--ink);font-size:13.5px;display:block;margin-bottom:8px}
.result-card .rc-body p{font-size:13px;color:var(--ink-2);line-height:1.75}
.result-card .rc-actions{display:flex;gap:10px;justify-content:center}
.rc-disclaimer{font-size:11.5px;color:#B8A88C;margin-top:14px}

/* ============ 我的/权益 ============ */
.member-hero{background:linear-gradient(130deg,#0B3B39,#0E5550 60%,#117C70);border-radius:24px;padding:32px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;overflow:hidden}
.member-hero::after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;right:-100px;top:-140px;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 60%)}
.mh-left{position:relative;z-index:2}
.mh-left .mh-tier{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);padding:5px 13px;border-radius:999px;font-size:12px;font-weight:700;margin-bottom:14px}
.mh-left h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.mh-left p{font-size:13.5px;color:rgba(255,255,255,.75)}
.mh-right{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.mh-exp{font-size:12.5px;color:rgba(255,255,255,.72)}
.plan-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.plan-card{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:22px;position:relative;transition:.18s;cursor:pointer}
.plan-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.plan-card.hot{border-color:var(--brand);box-shadow:0 10px 30px rgba(0,180,173,.16)}
.plan-card .hot-tag{position:absolute;top:-10px;left:20px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:11px;font-weight:700;padding:3px 11px;border-radius:99px}
.plan-card .pc-name{font-size:14.5px;font-weight:700}
.plan-card .pc-price{margin:10px 0 4px}
.plan-card .pc-price b{font-size:30px;font-weight:800;letter-spacing:-.03em}
.plan-card .pc-price span{font-size:12px;color:var(--muted)}
.plan-card .pc-original{font-size:12px;color:#B9C6C1;text-decoration:line-through}
.plan-card .pc-feats{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:8px}
.plan-card .pc-feats li{display:flex;gap:8px;font-size:12.5px;color:var(--ink-2);align-items:flex-start}
.plan-card .pc-feats li .ok{color:var(--success);flex:none}
.ent-table{width:100%;border-collapse:collapse;margin-top:6px;font-size:13px}
.ent-table th,.ent-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
.ent-table th{font-size:12px;color:var(--muted);font-weight:600;background:#FAFCFB}
.ent-table td b{font-size:14px}
.ent-table .cur{background:var(--brand-mist)}
.ent-table .cur td{font-weight:700;color:var(--brand-deep)}

/* ============ 首页面试资产横幅 ============ */
.interview-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 24px;box-shadow:var(--shadow-sm);cursor:pointer;transition:.2s}
.interview-banner:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-1px)}
.ib-left{display:flex;gap:14px;align-items:center;min-width:0}
.ib-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 14px rgba(0,180,173,.3)}
.ib-left b{font-size:16px;font-weight:800;display:block}
.ib-left span{font-size:12.5px;color:var(--muted);display:block}
.ib-right{display:flex;gap:10px;flex:none}

/* ============ 面试资产页 ============ */
.interview-hero{background:linear-gradient(130deg,#F4FCFB,#E4F5F1);border:1px solid #C6E7DF;border-radius:22px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;overflow:hidden}
.interview-hero::after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-80px;top:-120px;background:radial-gradient(circle,rgba(0,180,173,.16),transparent 60%)}
.ih-left{position:relative;z-index:2}
.ih-left .ih-kicker{font-size:11.5px;font-weight:700;letter-spacing:.12em;color:var(--brand-deep);text-transform:uppercase;margin-bottom:6px}
.ih-left h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.ih-left p{font-size:13.5px;color:var(--muted);max-width:520px}
.ih-right{position:relative;z-index:2;display:flex;gap:10px;flex:none}
.ih-stats{position:relative;z-index:2;display:flex;gap:26px;margin-top:18px}
.ih-stat b{font-size:20px;font-weight:800;color:var(--brand-deep);display:block}
.ih-stat span{font-size:12px;color:var(--muted)}
.ih-divider{width:1px;background:var(--line-strong);align-self:stretch}

.int-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:5px;margin-top:18px;width:fit-content}
.int-tab{padding:9px 20px;font-size:13.5px;font-weight:600;color:var(--muted);border-radius:10px;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:7px}
.int-tab:hover{color:var(--ink)}
.int-tab.active{background:var(--brand);color:#fff}
.int-pane{display:none;margin-top:16px}
.int-pane.show{display:block;animation:fadeUp .25s ease}
.expense-list{display:flex;flex-direction:column;gap:12px}
.expense-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;display:flex;gap:16px;align-items:flex-start;transition:.16s}
.expense-card:hover{border-color:#B8D3CB;box-shadow:var(--shadow-sm)}
.ec-avatar{width:44px;height:44px;border-radius:13px;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:700;flex:none}
.ec-main{flex:1;min-width:0}
.ec-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.ec-head b{font-size:14.5px}
.ec-meta{font-size:12px;color:var(--muted);margin-bottom:6px}
.ec-q{font-size:12.5px;color:var(--ink-2);background:#F6F9F8;border-radius:9px;padding:7px 11px;display:inline-block;margin:2px 4px 2px 0;line-height:1.5}
.ec-right{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.share-form{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;max-width:820px}
.share-form .sf-title{font-size:15px;font-weight:700;margin-bottom:4px}
.share-form .sf-sub{font-size:12.5px;color:var(--muted);margin-bottom:18px}
.ques-block{border:1.5px dashed var(--line-strong);border-radius:14px;padding:14px;margin-top:12px;background:#FBFDFC}
.ques-block .qb-head{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:10px}
.desen-box{margin-top:16px;background:var(--brand-mist);border:1px solid #CFEBE4;border-radius:14px;padding:14px}
.desen-box b{font-size:13px;color:var(--brand-deep);display:block;margin-bottom:6px}
.desen-box .db-preview{font-size:12.5px;color:var(--ink-2);line-height:1.7;background:#fff;border-radius:10px;padding:10px 12px;border:1px solid #E0F0EC}
.practice-setup{display:grid;grid-template-columns:280px 1fr;gap:16px}
.practice-side{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;height:fit-content}
.bank-hit{margin-top:14px;background:#FDF3DF;border:1px solid #F0DFBB;border-radius:12px;padding:12px}
.bank-hit b{color:#B07B10;font-size:12.5px;display:block;margin-bottom:4px}
.bank-hit p{font-size:12px;color:var(--muted)}
.bank-bar{height:7px;background:#F2E7C9;border-radius:99px;margin-top:8px;overflow:hidden}
.bank-bar i{display:block;height:100%;width:80%;background:linear-gradient(90deg,#F2B33D,#F59E0B);border-radius:99px}
.practice-room{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column}
.pr-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;background:#FBFDFC}
.pr-body{padding:22px;display:flex;flex-direction:column;gap:14px;min-height:300px}
.pr-q{background:var(--brand-mist);border:1px solid #CFEBE4;border-radius:14px 14px 14px 4px;padding:16px 18px}
.pr-q .pq-tag{font-size:11px;font-weight:700;color:var(--brand-deep);letter-spacing:.06em;margin-bottom:6px;display:block}
.pr-q b{font-size:15px;line-height:1.6}
.pr-q .pq-bank{display:inline-block;margin-top:8px;font-size:11px;color:#B07B10;background:#FDF3DF;border-radius:99px;padding:2px 9px;font-weight:600}
.pr-answer{background:#fff;border:1.5px solid var(--line-strong);border-radius:14px 14px 4px 14px;padding:14px 16px;color:var(--ink-2);font-size:13.5px;line-height:1.7}
.pr-input{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--line);align-items:center}
.pr-input input{flex:1;border:1.5px solid var(--line-strong);border-radius:11px;padding:10px 13px;font-size:13px;outline:none}
.pr-input input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}

/* ============ 简历托管页 ============ */
.hosting-layout{display:grid;grid-template-columns:300px 1fr;gap:16px}
.hosting-side{display:flex;flex-direction:column;gap:14px}
.hs-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}
.hs-status{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.hs-status .hs-ic{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#7C3AED,#9F67F5);color:#fff;display:grid;place-items:center;flex:none}
.hs-status b{font-size:14.5px;display:block}
.hs-status span{font-size:12px;color:var(--muted)}
.auth-level{margin-top:12px}
.auth-level .al-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.auth-level .al-row:last-child{border-bottom:0}
.auth-level .al-row span{color:var(--ink-2)}
.auth-level .al-row .on{color:var(--success);font-weight:700}
.auth-level .al-row .off{color:#B9C6C1}
.hs-gift{background:linear-gradient(150deg,#FFF8EC,#FDF1DC);border:1px solid #F2E3C0;border-radius:18px;padding:18px}
.hs-gift > b{font-size:13.5px;display:block;margin-bottom:6px}
.hs-gift p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:10px}
.feed-list{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column}
.feed-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);position:relative}
.feed-item:last-child{border-bottom:0}
.feed-rail{display:flex;flex-direction:column;align-items:center;flex:none}
.feed-dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:13px;flex:none;color:#fff}
.feed-rail .fline{width:2px;flex:1;background:var(--line);margin:4px 0}
.feed-item:last-child .feed-rail .fline{display:none}
.feed-main{flex:1;min-width:0}
.feed-main .fm-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.feed-main .fm-head b{font-size:13.5px}
.feed-main .fm-time{font-size:11px;color:var(--muted);margin-left:auto}
.feed-main p{font-size:12.5px;color:var(--ink-2);line-height:1.65}
.feed-main .fm-actions{display:flex;gap:8px;margin-top:8px}

/* ============ 顾问工作台页 ============ */
.cons-head{background:linear-gradient(130deg,#0B3B39,#0E5550 60%,#117C70);border-radius:22px;padding:26px 28px;color:#fff;display:flex;align-items:center;gap:18px;position:relative;overflow:hidden}
.cons-head::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-80px;top:-120px;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 60%)}
.cons-avatar{width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;font-size:26px;font-weight:800;color:#7FE0CF;flex:none}
.cons-info{position:relative;z-index:2;flex:1}
.cons-info h2{font-size:19px;font-weight:800}
.cons-info .ci-meta{font-size:12.5px;color:rgba(255,255,255,.72);margin-top:3px}
.cons-stats{position:relative;z-index:2;display:flex;gap:24px}
.cons-stat b{font-size:20px;font-weight:800;display:block}
.cons-stat span{font-size:11.5px;color:rgba(255,255,255,.68)}
.cons-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:5px;margin-top:16px;width:fit-content}
.cons-tab{padding:9px 18px;font-size:13.5px;font-weight:600;color:var(--muted);border-radius:10px;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:7px}
.cons-tab:hover{color:var(--ink)}
.cons-tab.active{background:var(--brand);color:#fff}
.cons-pane{display:none;margin-top:16px}
.cons-pane.show{display:block;animation:fadeUp .25s ease}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.kpi-card b{font-size:22px;font-weight:800;display:block;letter-spacing:-.02em}
.kpi-card span{font-size:12px;color:var(--muted)}
.kpi-card .trend{font-size:11px;font-weight:600;color:var(--success)}
.todo-list{background:#fff;border:1px solid var(--line);border-radius:16px;padding:6px 0}
.todo-item{display:flex;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);align-items:center}
.todo-item:last-child{border-bottom:0}
.todo-item .t-state{width:9px;height:9px;border-radius:50%;flex:none}
.todo-item .ts-pending{background:var(--accent)}
.todo-item .ts-doing{background:var(--info)}
.todo-item b{font-size:13px;flex:1}
.todo-item span{font-size:12px;color:var(--muted)}
.consult-table{width:100%;border-collapse:collapse;font-size:13px}
.consult-table th,.consult-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
.consult-table th{font-size:12px;color:var(--muted);background:#FAFCFB;font-weight:600}
.cand-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;gap:14px;align-items:center;margin-bottom:12px;transition:.16s;cursor:pointer}
.cand-card:hover{border-color:#B8D3CB;box-shadow:var(--shadow-sm)}
.cand-avatar{width:46px;height:46px;border-radius:14px;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:700;flex:none}
.cand-main{flex:1;min-width:0}
.cand-main b{font-size:14px;display:block}
.cand-main span{font-size:12px;color:var(--muted);display:block;margin-top:2px}
.ref-list{display:flex;flex-direction:column;gap:10px}
.ref-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 17px;display:flex;gap:12px;align-items:flex-start}
.ref-card .rf-freq{font-size:11.5px;font-weight:700;color:#B07B10;background:#FDF3DF;border-radius:99px;padding:2px 9px;flex:none}
.ref-card b{font-size:13.5px;display:block;margin-bottom:3px}
.ref-card p{font-size:12.5px;color:var(--muted);line-height:1.6}

/* ============ 通知面板 ============ */
.nc-panel{position:fixed;top:64px;right:32px;width:360px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);z-index:60;display:none;overflow:hidden}
.nc-panel.show{display:block;animation:pop .2s ease}
.nc-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;background:#FBFDFC}
.nc-head b{font-size:14px}
.nc-list{max-height:380px;overflow:auto}
.nc-item{display:flex;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);align-items:flex-start}
.nc-item:last-child{border-bottom:0}
.nc-item .nc-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none;font-size:14px}
.nc-item b{font-size:13px;display:block;margin-bottom:2px}
.nc-item p{font-size:12px;color:var(--muted);line-height:1.5}
.nc-item .nc-time{font-size:11px;color:#B9C6C1}

/* ============ 空/动效 ============ */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.page{animation:fadeUp .3s ease}
.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%) translateY(20px);background:#0F2623;color:#fff;padding:11px 20px;border-radius:99px;font-size:13px;opacity:0;pointer-events:none;transition:.25s;z-index:100;box-shadow:var(--shadow-lg)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.dim{opacity:.45;pointer-events:none}

/* ============ 响应式 ============ */
@media (max-width:1080px){
  .quick-grid{grid-template-columns:repeat(2,1fr)}
  .two-col{grid-template-columns:1fr}
  .topic-grid{grid-template-columns:repeat(3,1fr)}
  .resume-overview{grid-template-columns:1fr}
  .calendar-layout{grid-template-columns:1fr}
  .assistant-layout{grid-template-columns:1fr;height:auto}
  .as-left{max-height:260px}
  .practice-setup{grid-template-columns:1fr}
  .hosting-layout{grid-template-columns:1fr}
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .cons-head{flex-wrap:wrap}
  .cons-stats{flex-wrap:wrap;gap:14px}
  .ih-stats{flex-wrap:wrap}
}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .sidebar{display:none}
  .main{grid-column:1}
  .search-box{display:none}
  .hb-mascot{display:none}
  .hero-banner{padding:26px}
  .ent-right{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .topic-grid{grid-template-columns:repeat(2,1fr)}
  .login-page{grid-template-columns:1fr}
  .login-brand{display:none}
  .sku-strip{grid-template-columns:1fr 1fr}
  .plan-cards{grid-template-columns:1fr}
  .interview-hero{flex-direction:column;align-items:flex-start}
  .ih-right{width:100%}
  .ih-right .btn{flex:1}
  .nc-panel{right:12px;left:12px;width:auto}
  .int-tabs{width:100%;overflow-x:auto}
  .int-tab{flex:1;justify-content:center;padding:9px 10px}
  .expense-card{flex-direction:column}
  .ec-right{flex-direction:row;align-items:center}
  .cons-tabs{width:100%;overflow-x:auto}
  .cons-tab{flex:1;justify-content:center;padding:9px 8px}
}
/* ============ 现网类名别名映射（让现网吃到原型样式） ============ */

/* 壳 / 侧栏 / 主区 / 顶栏 — 对齐 .shell / .sidebar / .main / .topbar / .content */
.kx-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--bg)}
.kx-side{position:fixed;top:0;left:0;bottom:0;width:248px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;padding:0 14px}
.kx-main{grid-column:2;min-width:0}
.kx-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 32px;background:rgba(244,247,245,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.kx-main > *:not(.kx-top){padding:26px 32px 60px;max-width:1280px;margin:0 auto}
.kx-nav-btn{display:flex;align-items:center;gap:12px;width:100%;padding:10.5px 12px;border-radius:12px;color:var(--ink-2);font-weight:600;font-size:14px;margin-bottom:3px;transition:.16s;position:relative}
.kx-nav-btn:hover{background:var(--bg);color:var(--ink)}
.kx-nav-btn.active{background:var(--brand-soft);color:var(--brand-deep)}
.kx-nav-btn.active::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:4px;border-radius:99px;background:var(--brand)}
.kx-nav-btn .badge{background:var(--accent);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;padding:0 5px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
.kx-side-foot{margin-top:auto;padding:14px 4px 16px;border-top:1px solid var(--line)}
.kx-top-actions{display:flex;align-items:center;gap:10px}

/* 面试资产 ib- → interview */
.ib-page,.ib-home-entry{display:block}
.ib-hero{background:linear-gradient(130deg,#F4FCFB,#E4F5F1);border:1px solid #C6E7DF;border-radius:22px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;overflow:hidden}
.ib-hero-copy h2{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.ib-hero-copy p{font-size:13.5px;color:var(--muted);max-width:520px}
.ib-left{display:flex;gap:14px;align-items:center;min-width:0}
.ib-icon{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 14px rgba(0,180,173,.3)}
.ib-right{display:flex;gap:10px;flex:none}

/* 简历托管 rh- → hosting */
.rh-page,.rh-layout{display:grid;grid-template-columns:300px 1fr;gap:16px}
.rh-side{display:flex;flex-direction:column;gap:14px}
.rh-card,.rh-status-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}
.rh-status-row{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.rh-feed{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column}

/* 我的/权益 mem- → member */
.mem-page .mem-hero,.mem-hero{background:linear-gradient(130deg,#0B3B39,#0E5550 60%,#117C70);border-radius:24px;padding:32px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;overflow:hidden}
.mem-quota-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mem-table-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.mem-table{width:100%;border-collapse:collapse;margin-top:6px;font-size:13px}
.mem-table th,.mem-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
.mem-table th{font-size:12px;color:var(--muted);font-weight:600;background:#FAFCFB}

/* 助理 ast- → assistant */
.ast-page{display:grid;grid-template-columns:280px 1fr;gap:16px;height:calc(100vh - 190px);min-height:520px}
.ast-sidebar,.ast-left{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:6px;overflow:auto}
.ast-main,.ast-chat{background:#fff;border:1px solid var(--line);border-radius:20px;display:flex;flex-direction:column;overflow:hidden}
.ast-home-section{background:linear-gradient(150deg,#F3FBF9,#E7F6F2);border:1px solid #CFEBE4;border-radius:20px;padding:24px;position:relative;overflow:hidden}
.ast-msg-list{flex:1;padding:22px;overflow:auto;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#FBFFFE,#F6FBFA)}
.ast-send-btn{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;display:grid;place-items:center;flex:none}

/* 日历 sched- → calendar */
.sched-shell,.sched-shell-desktop{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
.sched-left{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;overflow:hidden}
.sched-right{display:flex;flex-direction:column;gap:16px}
.sched-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.sched-nav{display:flex;gap:6px}
.sched-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.sched-cell{min-height:86px;border:1px solid transparent;border-radius:12px;padding:7px 8px;font-size:12.5px;color:var(--ink-2);transition:.15s;position:relative;cursor:pointer}
.sched-cell:hover{background:var(--bg)}
.sched-cell.today{background:var(--brand-soft);border-color:var(--brand);font-weight:700}
.sched-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.sched-item:last-child{border-bottom:0}

/* 顾问台 cdesk- → cons */
.cdesk-head,.cdesk-hero{background:linear-gradient(130deg,#0B3B39,#0E5550 60%,#117C70);border-radius:22px;padding:26px 28px;color:#fff;display:flex;align-items:center;gap:18px;position:relative;overflow:hidden}
.cdesk-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:5px;margin-top:16px;width:fit-content}
.cdesk-tab{padding:9px 18px;font-size:13.5px;font-weight:600;color:var(--muted);border-radius:10px;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:7px}
.cdesk-tab:hover{color:var(--ink)}
.cdesk-tab.active{background:var(--brand);color:#fff}
.cdesk-kpi,.cdesk-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.cdesk-notice{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.cdesk-notice-title{font-size:14px;font-weight:700}

/* 响应式别名 */
@media (max-width:1080px){
  .sched-shell,.sched-shell-desktop{grid-template-columns:1fr}
  .ast-page{grid-template-columns:1fr;height:auto}
  .rh-page,.rh-layout{grid-template-columns:1fr}
  .cdesk-kpi,.cdesk-kpi-row{grid-template-columns:repeat(2,1fr)}
  .mem-quota-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .kx-shell{grid-template-columns:1fr}
  .kx-side{display:none}
  .kx-main{grid-column:1}
  .kx-main > *:not(.kx-top){padding:20px 16px 48px}
  .cdesk-tabs{width:100%;overflow-x:auto}
  .cdesk-tab{flex:1;justify-content:center;padding:9px 8px}
}
