/* ================= 信奥教练工作台 ================= */
:root{
  --ink:#0a1020; --ink-2:#131c33; --ink-3:#1c2742;
  --gold:#d9b26a; --gold-2:#f0cc8e; --gold-soft:rgba(217,178,106,.12);
  --gold-deep:#8a6a2c; --bg-soft:#fbf9f4;
  --blue:#3b6ef6; --blue-2:#6f9bff;
  --bg:#f7f6f2; --card:#fff; --text:#111a2e;
  --text-2:#2c3550; --muted:#5f6b86; --muted-2:#8a93a8;
  --line:#e6e3da; --line-2:#f0eee7;
  --ok:#1f8f63; --no:#c8563c;
  --radius:16px; --shadow:0 12px 34px -22px rgba(10,16,32,.32);
  --shadow-lg:0 26px 60px -28px rgba(10,16,32,.45);
  --ease:cubic-bezier(.4,0,.2,1);
  --nav-h:66px;
  --font:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,-apple-system,"Segoe UI",sans-serif;
}
/* ---------- 暗色主题 ---------- */
[data-theme="dark"]{
  --ink:#05080f; --ink-2:#0b101d; --ink-3:#151b2b;
  --gold:#e0bc74; --gold-2:#f4d9a4; --gold-soft:rgba(217,178,106,.14);
  --gold-deep:#e8c88e; --bg-soft:#1e222d;
  --bg:#0f1219; --card:#181c26; --text:#e9e7df;
  --text-2:#c9c7bf; --muted:#9aa1b0; --muted-2:#767d8d;
  --line:#2a2f3d; --line-2:#232836;
  --shadow:0 12px 34px -20px rgba(0,0,0,.55);
  --shadow-lg:0 26px 60px -28px rgba(0,0,0,.7);
}
[data-theme="dark"] pre,[data-theme="dark"] code{background:#11151f}
[data-theme="dark"] .hero-glow{opacity:.5}
[data-theme="dark"] .flash{background:#1d2a1e;border-color:rgba(107,190,138,.4)}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font); background:var(--bg); color:var(--text);
  font-size:14.5px; line-height:1.75; -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;letter-spacing:-.3px;line-height:1.35}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
code{background:var(--bg-soft);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:12.5px;font-family:Consolas,Menlo,monospace;color:#3a5a8a}
pre{background:#0e1730;color:#dfe6f5;border-radius:12px;padding:16px 18px;overflow:auto;font-size:13px;line-height:1.8;font-family:Consolas,Menlo,monospace;margin:0}
.ico{width:20px;height:20px;flex:0 0 20px}
.ico-sm{width:15px;height:15px;flex:0 0 15px}
.ico-lg{width:30px;height:30px;flex:0 0 30px}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 5vw}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 20px;border-radius:999px;border:1px solid transparent;
  font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;
  transition:all .18s var(--ease);white-space:nowrap;
}
.btn-lg{padding:13px 28px;font-size:15px}
.btn-sm{padding:7px 14px;font-size:13px}
.btn-block{width:100%}
.btn-gold{
  background:linear-gradient(135deg,var(--gold),#c39a52);color:#231703;
  box-shadow:0 12px 26px -12px rgba(217,178,106,.65);
}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 18px 34px -14px rgba(217,178,106,.8)}
.btn-soft{background:var(--gold-soft);color:var(--gold-deep);border-color:rgba(217,178,106,.38)}
.btn-soft:hover{background:rgba(217,178,106,.2)}
.btn-ghost{background:rgba(255,255,255,.08);color:#efe7d5;border-color:rgba(255,255,255,.3)}
.btn-ghost:hover{background:rgba(255,255,255,.16);color:#fff}
.btn:active{transform:translateY(0)}

/* ---------- 顶部导航 ---------- */
.top-nav{
  position:fixed;inset:0 0 auto;z-index:60;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:0 5vw;background:rgba(8,13,26,.78);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(217,178,106,.16);
}
.brand{display:flex;align-items:center;gap:11px;min-width:0}
.brand-logo{
  width:34px;height:34px;flex:0 0 34px;border-radius:11px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--gold),#b98f47);color:#1a1204;
  box-shadow:0 8px 18px -8px rgba(217,178,106,.7);
}
.brand-text{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.brand-text b{color:#f4ecda;font-size:15.5px;letter-spacing:.4px}
.brand-text small{color:#8e9ab5;font-size:10.5px;letter-spacing:1.2px}
.nav-links{
  display:flex;align-items:center;gap:clamp(10px,1.25vw,22px);
  flex:1 1 auto;min-width:0;justify-content:center;
}
.nav-links>a{color:#c9d2e4;font-size:clamp(12.6px,.92vw,14px);position:relative;padding:4px 0;white-space:nowrap}
.nav-links>a:hover{color:#fff}
.nav-links>a.on{color:var(--gold-2)}
.nav-links>a.on::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
/* 导航下拉分组 */
.nav-drop{position:relative}
.nd-label{display:flex;align-items:center;gap:5px;background:none;border:0;cursor:pointer;white-space:nowrap;
  color:#c9d2e4;font-size:clamp(12.6px,.92vw,14px);font-family:inherit;padding:4px 0;position:relative}
.nd-label:hover{color:#fff}
.nav-drop.on .nd-label{color:var(--gold-2)}
.nav-drop.on .nd-label::after{
  content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.nd-caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;
  border-top:4.5px solid currentColor;opacity:.75;transition:transform .18s var(--ease);margin-top:1px}
.nav-drop:hover .nd-caret,.nav-drop.open .nd-caret{transform:rotate(180deg)}
.nd-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,8px);min-width:236px;
  background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:0 16px 38px rgba(17,26,46,.16);
  padding:8px;opacity:0;visibility:hidden;transition:all .18s var(--ease);z-index:70}
.nav-drop:hover .nd-menu,.nav-drop.open .nd-menu{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nd-menu a{display:flex;flex-direction:column;gap:1px;padding:9px 13px;border-radius:10px;text-decoration:none;transition:background .14s var(--ease)}
.nd-menu a:hover{background:var(--gold-soft)}
.nd-menu a b{font-size:13.2px;color:var(--text);font-weight:700}
.nd-menu a span{font-size:11.4px;color:var(--muted-2)}
.nd-menu a.on{background:var(--gold-soft)}
.nd-menu a.on b{color:var(--gold-deep)}
.nd-menu .nav-badge{margin:0;align-self:center}
.nav-right{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-left:8px}
.nav-login{color:#c9d2e4;font-size:13.4px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);white-space:nowrap}
.nav-login:hover{color:#fff;border-color:rgba(217,178,106,.5);background:rgba(255,255,255,.06)}
.nav-user{
  display:inline-flex;align-items:center;gap:6px;max-width:150px;
  color:var(--gold-2);font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;
  background:rgba(217,178,106,.12);border:1px solid rgba(217,178,106,.3);white-space:nowrap;
}
.nav-user span{overflow:hidden;text-overflow:ellipsis}
.nav-user:hover{background:rgba(217,178,106,.2)}
.nav-exit{margin:0}
.nav-exit button{
  width:30px;height:30px;border-radius:999px;border:1px solid rgba(255,255,255,.2);
  background:transparent;color:#8e9ab5;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;
}
.nav-exit button:hover{color:#ff9d84;border-color:rgba(200,86,60,.5)}
.nav-cta{
  background:linear-gradient(135deg,var(--gold),#c39a52)!important;color:#231703!important;
  padding:7px 16px;border-radius:999px;font-weight:700;font-size:13.5px;
  flex:0 0 auto;white-space:nowrap;margin-right:2px;
}
.nav-toggle{
  display:none;width:40px;height:40px;border-radius:11px;border:1px solid rgba(217,178,106,.3);
  background:rgba(255,255,255,.06);color:#f0ead8;align-items:center;justify-content:center;cursor:pointer;
}

/* ---------- 英雄区 ---------- */
.hero,.page-hero{
  position:relative;padding:calc(var(--nav-h) + 72px) 0 66px;overflow:hidden;
  background:
    radial-gradient(900px 420px at 82% -8%,rgba(59,110,246,.28),transparent 62%),
    radial-gradient(700px 380px at 8% 110%,rgba(217,178,106,.22),transparent 62%),
    linear-gradient(165deg,#0a1020,#141d34 60%,#0d1428);
  color:#eef1f7;text-align:center;
}
.page-hero{padding:calc(var(--nav-h) + 56px) 0 44px}
.hero-glow{
  position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:56px 56px;mask-image:radial-gradient(700px 380px at 50% 30%,#000,transparent 75%);
}
.hero-inner,.page-hero .wrap{position:relative}
.hero-kicker{
  display:inline-flex;align-items:center;gap:7px;font-size:12px;letter-spacing:1.4px;font-weight:700;
  color:var(--gold-2);background:rgba(217,178,106,.12);border:1px solid rgba(217,178,106,.34);
  padding:5px 14px;border-radius:999px;margin-bottom:20px;
}
.hero h1,.page-hero h1{font-size:44px;letter-spacing:-1px;margin-bottom:18px;line-height:1.28}
.hero .grad{background:linear-gradient(120deg,var(--gold-2),#8fb4ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub,.page-hero p{color:#a9b6ce;font-size:15.5px;max-width:720px;margin:0 auto;line-height:2}
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.hero-stats{
  display:flex;align-items:center;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:38px;
  padding-top:26px;border-top:1px solid rgba(255,255,255,.1);
}
.hero-stats div{display:flex;flex-direction:column;line-height:1.3}
.hero-stats b{font-size:24px;color:var(--gold-2)}
.hero-stats span{font-size:12.5px;color:#8e9ab5}
.hero-stats i{width:1px;height:30px;background:rgba(255,255,255,.14)}

/* ---------- 区块通用 ---------- */
.section{padding:70px 0}
.section-soft{background:linear-gradient(180deg,var(--card),var(--bg-soft));border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.sec-head{text-align:center;max-width:720px;margin:0 auto 38px}
.sec-tag{
  display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:1.2px;
  color:var(--gold-deep);background:var(--gold-soft);border:1px solid rgba(217,178,106,.3);
  padding:4px 12px;border-radius:999px;margin-bottom:14px;
}
.sec-tag-light{color:var(--gold-2);background:rgba(217,178,106,.14);border-color:rgba(217,178,106,.3)}
.sec-head h2{font-size:28px;margin-bottom:10px}
.sec-head p{color:var(--muted);font-size:14.5px}
.main-wrap{padding:36px 0 70px}
/* 相邻卡片的通用垂直间距 */
.main-wrap > .card + .card,
.main-wrap > section + section,
.main-wrap > div + section,
.main-wrap > section + div{margin-top:16px}

.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 24px;box-shadow:var(--shadow);
}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.card-head b{display:flex;align-items:center;gap:8px;font-size:15.5px}
.card-head>span{font-size:12.5px;color:var(--muted-2)}
.card-foot{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-2)}

/* ---------- 四步法 ---------- */
.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 20px;
  position:relative;transition:all .2s var(--ease);
}
.step-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(217,178,106,.5)}
.sc-num{font-size:30px;font-weight:800;color:#ece5d3;line-height:1;margin-bottom:12px;letter-spacing:1px}
.step-card b{display:block;font-size:16px;margin-bottom:8px}
.step-card p{font-size:13.4px;color:var(--muted);line-height:1.9}

/* ---------- 功能卡 ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.feat-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;
  display:flex;flex-direction:column;transition:all .2s var(--ease);position:relative;overflow:hidden;
}
.feat-card::after{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--gold),rgba(217,178,106,.1));opacity:0;transition:opacity .2s}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:rgba(217,178,106,.5)}
.feat-card:hover::after{opacity:1}
.fc-ico{
  width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,#141d34,#26365c);color:var(--gold-2);margin-bottom:14px;
  box-shadow:0 10px 22px -12px rgba(10,16,32,.6);
}
.feat-card b{font-size:16px;margin-bottom:8px}
.feat-card p{font-size:13.4px;color:var(--muted);line-height:1.9;flex:1}
.fc-more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;color:var(--gold-deep);font-weight:600}

/* ---------- 段位表 ---------- */
.stage-table{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}
.stage-row{
  display:grid;grid-template-columns:200px 1fr auto;gap:18px;align-items:center;
  padding:16px 22px;border-bottom:1px solid var(--line-2);
}
.stage-row:last-child{border-bottom:0}
.stage-row:hover{background:var(--bg-soft)}
.sr-name{display:flex;flex-direction:column;line-height:1.5}
.sr-name b{font-size:15px}
.sr-name span{font-size:12.5px;color:var(--muted-2)}
.sr-focus{font-size:13.4px;color:var(--muted);line-height:1.8}
.sr-go{
  display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--gold-deep);
  background:var(--gold-soft);border:1px solid rgba(217,178,106,.34);padding:6px 14px;border-radius:999px;white-space:nowrap;
}
.sr-go:hover{background:rgba(217,178,106,.2)}

/* ---------- 规则横幅 ---------- */
.rule-band{
  background:linear-gradient(150deg,#0d1428,#1b2a4d 60%,#152142);color:#eef1f7;text-align:center;
}
.rule-inner{max-width:760px;margin:0 auto}
.rule-inner h2{font-size:28px;margin:14px 0 14px}
.rule-inner p{color:#a9b6ce;font-size:14.6px;line-height:2;margin-bottom:26px}

/* ---------- 表单 ---------- */
.field{margin-bottom:14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:13px;color:var(--muted);font-weight:600}
.field input,.field select,.field textarea{
  width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:11px;background:var(--bg-soft);
  font-family:inherit;font-size:14px;color:var(--text);transition:all .16s var(--ease);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,178,106,.18);background:var(--card)}
.field textarea{resize:vertical;line-height:1.8}
/* 全局输入控件基础样式（覆盖不在 .field 里的独立输入框） */
input[type=text],input[type=number],input[type=date],input[type=password],input[type=search],textarea,select{
  padding:10px 14px;border:1px solid var(--line);border-radius:11px;background:var(--bg-soft);
  font-family:inherit;font-size:14px;color:var(--text);transition:all .16s var(--ease);
}
input[type=text]:focus,input[type=number]:focus,input[type=date]:focus,input[type=password]:focus,input[type=search]:focus,textarea:focus,select:focus{
  outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(217,178,106,.18);background:var(--card)
}
input::placeholder,textarea::placeholder{color:#a8b0c2}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field-row.five{grid-template-columns:repeat(6,1fr)}
.field-btn{justify-content:flex-end}

/* ---------- 引导页 ---------- */
.guide-grid{display:grid;grid-template-columns:380px 1fr;gap:22px;align-items:start}
.form-card{position:sticky;top:calc(var(--nav-h) + 18px)}
.result-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.empty-card{text-align:center;padding:52px 24px}
.ec-ico{display:inline-flex;color:#cbc4b2;margin-bottom:14px}
.empty-card b{display:block;font-size:16px;margin-bottom:8px}
.empty-card p{color:var(--muted);font-size:13.6px;line-height:1.9}
.ec-tips{display:flex;flex-direction:column;gap:8px;align-items:center;margin-top:20px;font-size:12.8px;color:var(--muted)}
.ec-tips span{display:inline-flex;align-items:center;gap:7px}
.ec-tips .ico-sm{color:var(--gold)}
.tip-card{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(120deg,var(--bg-soft),var(--card));border-color:rgba(217,178,106,.4)}
.tip-card .ico-sm{color:var(--gold);margin-top:3px}
.tip-card b{display:block;font-size:14px;margin-bottom:4px}
.tip-card p{font-size:13.4px;color:var(--muted);line-height:1.85}

/* ---------- 复杂度预算 ---------- */
.budget-list{display:flex;flex-direction:column;gap:8px}
.bl-row{display:grid;grid-template-columns:96px 1fr 96px 52px;gap:12px;align-items:center;font-size:13.2px}
.bl-c{font-weight:700;color:var(--text)}
.bl-bar{height:8px;background:var(--line-2);border-radius:99px;overflow:hidden}
.bl-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b08d57,var(--gold))}
.bl-row.no .bl-bar i{background:linear-gradient(90deg,#c8563c,#e0896f)}
.bl-ops{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.bl-tag{font-size:11.5px;font-weight:700;padding:3px 0;text-align:center;border-radius:999px}
.bl-row.ok .bl-tag{color:var(--ok);background:rgba(31,143,99,.12)}
.bl-row.no .bl-tag{color:var(--no);background:rgba(200,86,60,.12)}
.budget-list.big .bl-row{font-size:13.6px;padding:6px 0;border-bottom:1px dashed var(--line-2)}
.budget-list.big .bl-row:last-child{border-bottom:0}
.tool-note{display:flex;gap:9px;align-items:flex-start;margin-top:14px;font-size:12.8px;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line-2);border-radius:11px;padding:11px 14px}
.tool-note .ico-sm{color:var(--gold);margin-top:3px;flex:0 0 15px}
.tool-form{margin-bottom:18px}

/* ---------- 提示卡（分级解锁） ---------- */
.hint-stack{display:flex;flex-direction:column;gap:14px}
.hint-card{transition:all .2s var(--ease)}
.hc-head{display:flex;align-items:center;gap:12px;margin-bottom:0}
.hc-badge{
  flex:0 0 auto;font-size:12px;font-weight:800;letter-spacing:.6px;padding:4px 10px;border-radius:8px;
  background:linear-gradient(135deg,var(--gold),#c39a52);color:#231703;
}
.hint-card.locked .hc-badge{background:var(--bg-soft);color:#9aa1b0}
.hc-head b{font-size:15px;flex:1}
.hc-state{font-size:11.8px;color:var(--muted-2);background:var(--bg-soft);border-radius:999px;padding:3px 10px}
.hint-card.open .hc-state{color:var(--ok);background:rgba(31,143,99,.12)}
.hc-body{margin-top:14px}
.hc-body p{font-size:13.8px;color:var(--text-2);line-height:2;white-space:pre-wrap}
.hint-card.locked .hc-real{display:none}
.hint-card.open .hc-lock{display:none}
.hc-lock{background:var(--bg-soft);border:1px dashed var(--line);border-radius:12px;padding:16px;text-align:center}
.hc-lock p{font-size:13px;color:var(--muted);margin-bottom:12px;line-height:1.85}

/* ---------- 自查清单 ---------- */
.check-list{display:flex;flex-direction:column;gap:9px}
.check-list li{display:flex;gap:9px;align-items:flex-start;font-size:13.4px;color:var(--text-2);line-height:1.8}
.check-list .ico-sm{color:var(--gold);margin-top:4px;flex:0 0 15px}
.check-list.cols{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}

/* ---------- 错误诊断 ---------- */
.err-nav{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:20px}
.en-chip{
  font-size:13px;font-weight:600;color:var(--gold-deep);background:var(--card);border:1px solid rgba(217,178,106,.34);
  padding:7px 15px;border-radius:999px;
}
.en-chip:hover{background:var(--gold-soft)}
.en-chip.on{background:linear-gradient(135deg,var(--gold),#c39a52);color:#231703;border-color:transparent}
.err-card{margin-bottom:14px;scroll-margin-top:calc(var(--nav-h) + 20px)}
.ec-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.ec-tag{
  width:42px;height:42px;flex:0 0 42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,#141d34,#26365c);color:var(--gold-2);
}
.ec-head b{display:block;font-size:16px;margin-bottom:4px}
.ec-symp{font-size:13.2px;color:var(--muted);line-height:1.8}
.ec-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:14px}
.ec-box{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:14px 16px}
.ec-box b{display:block;font-size:13.5px;margin-bottom:6px;color:var(--gold-deep)}
.ec-box p{font-size:13.2px;color:var(--muted);line-height:1.9}
.ec-fix ul{display:flex;flex-direction:column;gap:8px}
.ec-fix li{display:flex;gap:8px;align-items:flex-start;font-size:13.2px;color:var(--text-2);line-height:1.75}
.ec-fix .ico-sm{color:var(--ok);margin-top:4px;flex:0 0 15px}

/* ---------- 考点地图 ---------- */
.sy-bar{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 22px;margin-bottom:20px;
}
.sy-progress{flex:1;min-width:240px}
.syp-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.syp-top b{font-size:14px}
.syp-top span{font-size:12.6px;color:var(--muted-2);font-variant-numeric:tabular-nums}
.syp-bar{height:9px;background:var(--line-2);border-radius:99px;overflow:hidden}
.syp-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#b08d57,var(--gold));transition:width .3s var(--ease)}
.sy-legend{display:flex;align-items:center;gap:10px;font-size:12.6px;color:var(--muted)}
.lv{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;font-size:11.5px;font-weight:800}
.lv-j{background:rgba(59,110,246,.14);color:#2c55c9}
.lv-s{background:var(--gold-soft);color:var(--gold-deep)}
.lv-t{background:rgba(224,122,95,.16);color:#b0532f}
.sy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:18px}
.sy-card{padding:18px 20px}
.sy-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.sy-ico{width:40px;height:40px;flex:0 0 40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#141d34,#26365c);color:var(--gold-2)}
.sy-head b{display:block;font-size:15px}
.sy-count{font-size:12px;color:var(--muted-2);font-variant-numeric:tabular-nums}
.sy-count .done{color:var(--ok);font-weight:700;font-style:normal}
.sy-list{display:flex;flex-direction:column;gap:2px}
.sy-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;cursor:pointer;transition:background .15s}
.sy-item:hover{background:var(--bg-soft)}
.sy-check{position:absolute;opacity:0;pointer-events:none}
.sy-box{
  width:19px;height:19px;flex:0 0 19px;border-radius:6px;border:1px solid #d9d5ca;background:var(--card);
  display:flex;align-items:center;justify-content:center;color:transparent;transition:all .15s;
}
.sy-check:checked+.sy-box{background:linear-gradient(135deg,var(--gold),#c39a52);border-color:transparent;color:#231703}
.sy-box .ico-sm{width:12px;height:12px;flex:0 0 12px}
.sy-t{flex:1;font-size:13.5px;color:var(--text-2);min-width:0}
.sy-check:checked~.sy-t{color:var(--muted-2)}
.sy-t b{display:block;font-weight:600;line-height:1.45}
.sy-check:checked~.sy-t b{text-decoration:line-through}
.sy-t i{display:block;font-size:11.8px;color:var(--muted-2);line-height:1.5;margin-top:2px;font-style:normal}
.sy-card.focus{border-color:rgba(217,178,106,.55);box-shadow:0 4px 20px rgba(217,178,106,.14)}
.sy-focus-tag{display:inline-block;font-style:normal;font-size:10.6px;font-weight:800;color:var(--gold-deep);
  background:var(--gold-soft);border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:2px}
.sy-count.all .done{color:var(--gold)}

/* ========== 考点地图 v2：总览环 + 筛选 ========== */
.sy-top{display:flex;align-items:center;gap:22px;padding:18px 22px;flex-wrap:wrap;margin-bottom:16px}
.syt-ring{position:relative;width:104px;height:104px;flex:0 0 104px}
.syt-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.rr-bg{fill:none;stroke:#eee9dc;stroke-width:10}
.rr-fg{fill:none;stroke:var(--gold);stroke-width:10;stroke-linecap:round;stroke-dasharray:327;
  stroke-dashoffset:327;transition:stroke-dashoffset .5s var(--ease)}
.syt-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.syt-num b{font-size:21px;font-weight:800;color:var(--gold-deep)}
.syt-num span{font-size:10.6px;color:var(--muted-2)}
.syt-mid{display:flex;flex-direction:column;gap:8px;min-width:210px}
.sl-row{display:grid;grid-template-columns:24px 1fr 72px;align-items:center;gap:10px}
.sl-row .lv{justify-self:center}
.sl-track{height:9px;border-radius:99px;background:var(--bg-soft);overflow:hidden}
.sl-track i{display:block;height:100%;width:0;border-radius:99px;transition:width .3s var(--ease)}
.sl-row:nth-child(1) .sl-track i{background:linear-gradient(90deg,#7d9ef0,#2c55c9)}
.sl-row:nth-child(2) .sl-track i{background:linear-gradient(90deg,#e8cf9a,#c39a52)}
.sl-row:nth-child(3) .sl-track i{background:linear-gradient(90deg,#eba08a,#c05f3a)}
.sl-row b{font-size:12px;color:var(--muted-2);text-align:right;font-variant-numeric:tabular-nums}
.syt-tools{flex:1;min-width:260px;display:flex;flex-direction:column;gap:10px}
.syt-search{display:flex;align-items:center;gap:8px;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:11px;padding:9px 13px;color:var(--muted-2)}
.syt-search input{border:none;background:none;outline:none;flex:1;font-size:13.4px;color:var(--text)}
.syt-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.sf-btn{border:1px solid var(--line-2);background:var(--card);border-radius:999px;padding:5px 14px;cursor:pointer;
  font-size:12.4px;color:var(--muted);font-weight:600;transition:all .15s var(--ease);display:inline-flex;align-items:center;gap:5px}
.sf-btn:hover{border-color:rgba(217,178,106,.5);color:var(--gold-deep)}
.sf-btn.on{background:var(--gold);border-color:var(--gold);color:#fff}
.sf-sep{width:1px;height:18px;background:var(--line);margin:0 3px}
.sy-empty{text-align:center;color:var(--muted-2);font-size:13.2px;padding:26px 0}

/* ---------- 评估 ---------- */
.assess{margin-top:18px}
.as-top{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:14px;padding:18px 22px}
.as-score b{font-size:34px;line-height:1;color:var(--text)}
.as-score span{font-size:12.6px;color:var(--muted-2);margin-left:6px}
.as-stage{display:flex;flex-direction:column;line-height:1.7}
.as-stage b{font-size:15px}
.as-stage span{font-size:13px;color:var(--muted)}
.as-gap{text-align:right}
.as-gap b{display:block;font-size:18px}
.as-gap span{font-size:12.4px;color:var(--muted-2)}
.as-gap.ok b{color:var(--ok)}
.as-gap.no b{color:var(--no)}
.as-advice{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.as-advice li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--text-2);line-height:1.85}
.as-advice .ico-sm{color:var(--gold);margin-top:5px;flex:0 0 15px}
.cs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cs-item{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:13px 15px}
.cs-item b{display:block;font-size:14px;color:var(--gold-deep);margin-bottom:4px}
.cs-item span{font-size:12.8px;color:var(--muted);line-height:1.7}

/* ---------- 日志 ---------- */
.flash{display:flex;align-items:center;gap:9px;background:rgba(31,143,99,.1);border:1px solid rgba(31,143,99,.28);color:#17684a;border-radius:12px;padding:11px 16px;margin-bottom:18px;font-size:13.6px}
.flash .ico-sm{color:var(--ok)}
.log-grid{display:grid;grid-template-columns:400px 1fr;gap:22px;align-items:start}
.log-list-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.stat-card{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center;padding:16px}
.st-item b{display:block;font-size:22px;color:var(--text);line-height:1.3}
.st-item span{font-size:12.2px;color:var(--muted-2)}
.log-item{padding:18px 20px}
.li-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.li-head b{font-size:15px;flex:1;min-width:0}
.li-err{font-size:11.8px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--gold-soft);color:var(--gold-deep)}
.li-err.err-ce{background:rgba(59,110,246,.12);color:#2c55c9}
.li-err.err-perf{background:rgba(200,86,60,.12);color:var(--no)}
.li-err.err-careless{background:rgba(31,143,99,.12);color:var(--ok)}
.li-date{font-size:12px;color:var(--muted-2)}
.li-del{margin:0}
.btn-del{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--muted-2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.btn-del:hover{color:var(--no);border-color:rgba(200,86,60,.4)}
.li-score{font-size:12.8px;color:var(--muted);margin-bottom:10px}
.li-block{margin-top:10px}
.li-block b{display:block;font-size:12.6px;color:var(--gold-deep);margin-bottom:4px}
.li-block p{font-size:13.4px;color:var(--text-2);line-height:1.9}

/* ---------- 手册 ---------- */
.manual-wrap{display:grid;grid-template-columns:230px minmax(0,1fr);gap:26px;align-items:start}
.m-toc{position:sticky;top:calc(var(--nav-h) + 18px);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px 13px}
.m-toc b{display:block;font-size:12.5px;color:var(--muted-2);margin-bottom:8px;padding-left:8px}
.m-toc a{display:block;font-size:13.2px;color:var(--text-2);padding:7px 8px;border-radius:8px;line-height:1.5}
.m-toc a:hover{background:var(--gold-soft);color:var(--gold-deep)}
.m-body{display:flex;flex-direction:column;gap:16px;min-width:0}
.m-sec{scroll-margin-top:calc(var(--nav-h) + 20px)}
.m-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.m-num{font-size:12.5px;font-weight:800;color:var(--gold-deep);background:var(--gold-soft);border-radius:8px;padding:5px 10px}
.m-head h2{font-size:18px}
.m-sec p{font-size:14px;color:var(--muted);line-height:1.95;margin-bottom:12px}
.m-sec ul,.m-sec ol{display:flex;flex-direction:column;gap:7px;padding-left:20px;list-style:disc}
.m-sec ol{list-style:decimal}
.m-sec li{font-size:13.8px;color:var(--text-2);line-height:1.9;padding-left:2px}
.m-tip{margin-top:14px;background:var(--bg-soft);border:1px solid rgba(217,178,106,.36);border-left:3px solid var(--gold);border-radius:11px;padding:12px 16px;font-size:13.2px;color:#7a5f2a;line-height:1.85}

/* ---------- 一对一启发教练 ---------- */
.tutor-form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.code-input{
  font-family:Consolas,Menlo,monospace;font-size:12.8px;line-height:1.75;
  min-height:200px;white-space:pre;overflow-wrap:normal;overflow-x:auto;background:var(--bg-soft);
}
.code-input:focus{background:var(--card)}
.code-fold{margin-top:14px}
.code-fold summary{
  cursor:pointer;font-size:13px;color:var(--gold-deep);font-weight:600;padding:8px 0;list-style:none;
  display:flex;align-items:center;gap:7px;
}
.code-fold summary::-webkit-details-marker{display:none}
.code-fold summary::before{content:"▸";font-size:11px;transition:transform .15s}
.code-fold[open] summary::before{transform:rotate(90deg)}
.code-view{max-height:380px;overflow:auto;font-size:12.6px;line-height:1.75}

.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.loc-box{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:13px 16px}
.loc-box>b{display:block;font-size:12.6px;color:var(--gold-deep);font-weight:700;margin-bottom:5px}
.loc-box p{font-size:13.3px;color:var(--text-2);line-height:1.9}
.loc-fix{margin-top:14px}
.loc-fix .check-list{margin-top:4px}
.basis-box{margin-top:14px;background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:13px 16px}
.basis-box>b{display:block;font-size:12.6px;color:var(--gold-deep);font-weight:700;margin-bottom:7px}
.basis-list{display:flex;flex-direction:column;gap:7px}
.basis-list li{display:flex;gap:8px;align-items:flex-start;font-size:13.1px;color:var(--text-2);line-height:1.8}
.basis-list .ico-sm{color:var(--gold);margin-top:5px;flex:0 0 14px;width:14px}

.scan-list{display:flex;flex-direction:column;gap:8px}
.scan-list li{
  display:flex;gap:10px;align-items:flex-start;font-size:13.2px;color:var(--text-2);line-height:1.85;
  background:var(--bg-soft);border:1px solid var(--line-2);border-left:3px solid var(--gold);
  border-radius:11px;padding:10px 15px;
}
.scan-list li.lv-high{border-left-color:var(--no);background:rgba(200,86,60,.05)}
.scan-list li.lv-mid{border-left-color:#d9a13a}
.scan-list li.lv-low{border-left-color:rgba(31,143,99,.6)}
.scan-tag{
  flex:0 0 auto;font-size:11.4px;font-weight:800;padding:2px 8px;border-radius:6px;margin-top:2px;
  background:var(--card);border:1px solid var(--line);color:var(--muted);
}
.scan-list li.lv-high .scan-tag{color:var(--no);border-color:rgba(200,86,60,.34)}
.scan-list li.lv-mid .scan-tag{color:#a8761c;border-color:rgba(217,161,58,.4)}
.scan-list li.lv-low .scan-tag{color:var(--ok);border-color:rgba(31,143,99,.3)}

.quiz-list{display:flex;flex-direction:column;gap:13px}
.quiz-item{
  display:flex;gap:12px;align-items:flex-start;background:linear-gradient(120deg,var(--bg-soft),var(--card));
  border:1px solid rgba(217,178,106,.34);border-radius:13px;padding:14px 17px;
}
.qz-num{
  flex:0 0 26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:800;color:#231703;background:linear-gradient(135deg,var(--gold),#c39a52);
}
.quiz-item b{display:block;font-size:14px;line-height:1.8;color:var(--text)}
.qz-check{display:block;margin-top:6px;font-size:12.7px;color:var(--muted);line-height:1.8}

/* ---------- 注册 / 登录 ---------- */
.auth-wrap{display:grid;grid-template-columns:440px 1fr;gap:22px;align-items:start;max-width:960px;margin:0 auto}
.auth-card{padding:28px 30px}
.auth-err{
  display:flex;align-items:center;gap:9px;background:rgba(200,86,60,.08);border:1px solid rgba(200,86,60,.3);
  color:#a1442e;border-radius:12px;padding:11px 16px;margin-bottom:16px;font-size:13.4px;line-height:1.7;
}
.auth-err .ico-sm{color:var(--no);flex:0 0 15px;margin-top:2px}
.auth-alt{display:flex;align-items:center;gap:8px;margin-top:16px;font-size:13.4px;color:var(--muted)}
.auth-alt a{color:var(--gold-deep);font-weight:700}
.auth-alt a:hover{text-decoration:underline}
.auth-privacy{
  display:flex;gap:9px;align-items:flex-start;margin-top:18px;padding-top:14px;border-top:1px dashed var(--line);
  font-size:12.4px;color:var(--muted-2);line-height:1.8;
}
.auth-privacy .ico-sm{color:var(--ok);margin-top:3px;flex:0 0 15px}
.auth-side{display:flex;flex-direction:column;gap:14px}

/* ---------- 提问历史 ---------- */
.ask-hist{margin-top:18px}
.ah-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.ah-item{display:flex;flex-direction:column;gap:7px;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:11px 14px}
.ah-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ah-verdict{
  font-size:11px;font-weight:800;letter-spacing:.5px;padding:2px 9px;border-radius:999px;
  background:var(--gold-soft);color:var(--gold-deep);border:1px solid rgba(217,178,106,.3);
}
.ah-topic{font-size:11.6px;color:var(--muted-2)}
.ah-time{font-size:11.6px;color:var(--muted-2);margin-left:auto;font-variant-numeric:tabular-nums}
.ah-q{
  font-size:12.9px;color:var(--text-2);line-height:1.75;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ah-ops{display:flex;align-items:center;gap:10px;margin-top:2px}
.ah-ops form{margin:0}
.ah-btn{
  font-size:12.2px;font-weight:700;color:var(--gold-deep);background:var(--card);border:1px solid rgba(217,178,106,.36);
  border-radius:8px;padding:4px 11px;cursor:pointer;font-family:inherit;transition:all .15s;
}
.ah-btn:hover{background:var(--gold-soft)}
.ah-del{color:var(--muted-2);border-color:var(--line)}
.ah-del:hover{color:var(--no);border-color:rgba(200,86,60,.4);background:rgba(200,86,60,.05)}
.inline-form{display:inline-flex;margin:0}

.quiz-form{margin-top:16px;padding-top:15px;border-top:1px dashed var(--line)}
.quiz-form label{display:block;font-size:13px;font-weight:700;color:var(--gold-deep);margin-bottom:7px}
.quiz-form textarea{font-size:13px;line-height:1.8}
.qf-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:9px}
.quiz-fb{
  margin-top:12px;border-radius:12px;padding:12px 16px;font-size:13.2px;line-height:1.85;
  border:1px solid var(--line);background:var(--bg-soft);
}
.quiz-fb b{display:block;margin-bottom:4px;font-size:13.4px}
.quiz-fb.good{border-color:rgba(31,143,99,.34);background:rgba(31,143,99,.06)}
.quiz-fb.good b{color:var(--ok)}
.quiz-fb.mid{border-color:rgba(217,161,58,.4);background:rgba(217,178,106,.09)}
.quiz-fb.mid b{color:#a8761c}
.quiz-fb.bad{border-color:rgba(200,86,60,.32);background:rgba(200,86,60,.05)}
.quiz-fb.bad b{color:var(--no)}

/* ---------- 出题组卷 ---------- */
.wt-item.wt-dis{opacity:.45;cursor:not-allowed}
.wt-item.wt-dis:hover{border-color:var(--line);background:var(--bg-soft)}

.pq-item{padding:20px 24px}
.pq-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.pq-no{
  font-size:12.4px;font-weight:800;color:#231703;background:linear-gradient(135deg,var(--gold),#c39a52);
  border-radius:8px;padding:3px 9px;
}
.pq-head b{font-size:15.4px;color:var(--text)}
.pq-diff{font-size:11.8px;font-weight:700;border-radius:999px;padding:3px 10px;border:1px solid var(--line);background:var(--bg-soft);color:var(--muted)}
.pq-diff.lv-1,.pq-diff.lv-2{color:var(--ok);border-color:rgba(31,143,99,.3);background:rgba(31,143,99,.06)}
.pq-diff.lv-3{color:#a8761c;border-color:rgba(217,161,58,.38);background:rgba(217,178,106,.1)}
.pq-diff.lv-4,.pq-diff.lv-5{color:var(--no);border-color:rgba(200,86,60,.3);background:rgba(200,86,60,.06)}
.pq-tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.pq-var{
  display:flex;gap:9px;align-items:flex-start;font-size:12.8px;line-height:1.8;color:var(--gold-deep);
  background:var(--gold-soft);border:1px solid rgba(217,178,106,.34);border-radius:11px;padding:10px 14px;margin-bottom:12px;
}
.pq-var .ico-sm{margin-top:4px;flex:0 0 15px}
.pq-sec{margin-bottom:12px}
.pq-sec>b{display:block;font-size:12.4px;font-weight:700;color:var(--gold-deep);margin-bottom:5px}
.pq-sec p{font-size:13.4px;line-height:1.95;color:var(--text-2)}
.pq-io{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pq-sample{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:12px}
.pq-sample>div>span{display:block;font-size:12.2px;font-weight:700;color:var(--muted);margin-bottom:5px}
.pq-sample pre{
  background:var(--bg-soft);border:1px solid var(--line);border-radius:11px;padding:11px 14px;
  font-size:12.6px;line-height:1.8;white-space:pre-wrap;word-break:break-word;color:#2a2620;
}
.pq-range{
  display:flex;gap:10px;align-items:baseline;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:11px;padding:10px 15px;
}
.pq-range b{flex:0 0 auto;font-size:12.4px;color:var(--gold-deep)}
.pq-range span{font-size:13px;color:var(--text-2);line-height:1.8}
.pq-tip{
  display:flex;gap:9px;align-items:flex-start;margin-top:12px;font-size:12.6px;line-height:1.85;color:var(--muted);
}
.pq-tip .ico-sm{margin-top:3px;flex:0 0 14px}

/* ---------- 代码体检 ---------- */
.field-row.three{grid-template-columns:repeat(3,1fr)}
.code-area{
  font-family:Consolas,Menlo,monospace;font-size:12.9px;line-height:1.7;
  background:#0e1730;color:#dfe6f5;border-radius:13px;padding:14px 16px;
  min-height:300px;white-space:pre;overflow-x:auto;
}
.code-area::placeholder{color:#7d8bb0}
.pt-bad{color:var(--no) !important}
.pt-ok{color:var(--ok) !important}
.budget-bar{position:relative;height:26px;border-radius:99px;background:rgba(31,26,16,.07);overflow:hidden;margin-top:14px}
.budget-bar i{
  position:absolute;left:0;top:0;height:100%;border-radius:99px;
  background:linear-gradient(90deg,#1f8f63,#4bbd8c);transition:width .5s var(--ease);
}
.budget-bar i.bb-over{background:linear-gradient(90deg,#c8563c,#e0896f)}
.budget-bar span{
  position:relative;display:block;text-align:center;line-height:26px;font-size:12.3px;
  font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;
}
.scan-fix{display:block;margin-top:6px;font-style:normal;font-weight:700;color:var(--gold-deep)}
.scan-line{
  margin-top:7px;background:#0e1730;color:#dfe6f5;border-radius:8px;padding:7px 11px;
  font-size:12.2px;line-height:1.7;white-space:pre-wrap;word-break:break-all;
}

/* ---------- 一对一陪练 ---------- */
.coach-wrap{display:grid;grid-template-columns:290px 1fr;gap:16px;align-items:start}
.coach-side{display:flex;flex-direction:column;gap:16px}
.cs-list{display:flex;flex-direction:column;gap:6px}
.cs-list a{
  display:block;border:1px solid transparent;border-radius:11px;padding:8px 11px;transition:all .15s var(--ease);
}
.cs-list a:hover{background:var(--bg-soft)}
.cs-list a.on{background:var(--gold-soft);border-color:rgba(217,178,106,.36)}
.cs-list b{display:block;font-size:13.2px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-list span{font-size:11.6px;color:var(--muted-2)}

.coach-main{padding:22px 24px}
.coach-empty{text-align:center;padding:26px 10px}
.coach-empty .ico-xl{color:rgba(217,178,106,.5)}
.coach-empty h3{font-size:17px;margin:12px 0 8px}
.coach-empty p{font-size:13.4px;color:var(--muted);line-height:1.9}
.coach-empty ul{display:inline-block;text-align:left;margin:8px 0 12px;font-size:13.2px;color:var(--muted);line-height:2}
.coach-empty li{list-style:disc}
.coach-step{display:flex;align-items:center;gap:6px;margin-bottom:14px}
.cs-dot{width:9px;height:9px;border-radius:99px;background:rgba(31,26,16,.13)}
.cs-dot.done{background:var(--gold)}
.cs-dot.now{background:var(--ok);box-shadow:0 0 0 3px rgba(31,143,99,.16)}
.coach-step em{margin-left:6px;font-size:12.2px;font-style:normal;color:var(--muted-2)}

.coach-log{max-height:560px;overflow:auto;padding:4px 2px 8px;display:flex;flex-direction:column;gap:12px}
.cb-row{display:flex;gap:10px;align-items:flex-start}
.cb-row.me{justify-content:flex-end}
.cb-ava{
  flex:0 0 30px;width:30px;height:30px;border-radius:99px;display:flex;align-items:center;justify-content:center;
  background:var(--bg-soft);color:var(--gold-deep);margin-top:2px;
}
.cb-row.me .cb-ava{background:var(--gold-soft)}
.cb-bub{
  max-width:78%;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:14px;
  padding:11px 15px;font-size:13.4px;line-height:1.95;color:var(--text-2);white-space:pre-wrap;
}
.cb-row.me .cb-bub{background:var(--gold-soft);border-color:rgba(217,178,106,.32);color:var(--text)}
.cb-bub i{display:block;margin-top:5px;font-size:11.2px;font-style:normal;color:var(--muted-2);text-align:right}
.cb-sys{
  align-self:center;font-size:12.2px;color:var(--muted);background:#f7f6f2;
  border:1px dashed var(--line);border-radius:999px;padding:4px 14px;text-align:center;max-width:82%;line-height:1.7;
}
.coach-input{margin-top:16px;padding-top:15px;border-top:1px dashed var(--line)}
.coach-input textarea{font-size:13.2px;line-height:1.85}
.ci-foot{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px}

/* ---------- 训练看板 ---------- */
.dash-hero{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;padding:24px 26px}
.dh-level{display:flex;align-items:center;gap:16px}
.dh-ring{width:92px;height:92px;flex:0 0 92px;transform:rotate(-90deg)}
.dh-ring circle{fill:none;stroke-width:9;stroke-linecap:round}
.ring-bg{stroke:rgba(31,26,16,.09)}
.ring-fg{stroke:url(#g);stroke:var(--gold);transition:stroke-dasharray .6s var(--ease)}
.dh-mid b{display:block;font-size:19px;color:var(--text);margin-bottom:3px}
.dh-mid span{display:block;font-size:12.7px;color:var(--muted);line-height:1.7}
.dh-mid i{display:block;margin-top:5px;font-size:12px;font-style:normal;color:var(--gold-deep);font-weight:700}
.dh-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.dh-item{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:11px 12px;text-align:center}
.dh-item span{display:block;font-size:11.8px;color:var(--muted-2);margin-bottom:3px}
.dh-item b{font-size:21px;color:var(--text);line-height:1.2}
.dh-item b i{font-size:11.5px;font-style:normal;color:var(--muted-2);margin-left:2px}

.ck-form{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.ck-form .field{margin:0}
.ck-form .pf-note{font-size:12.4px;color:var(--muted-2);flex:1;min-width:220px;text-align:right}

.heat-wrap{margin-top:18px}
.heat{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:4px}
.hd{aspect-ratio:1;border-radius:3px;background:rgba(31,26,16,.07)}
.hd-empty{background:transparent}
.hd-ck{background:rgba(217,178,106,.45)}
.hd-act{background:rgba(31,143,99,.35)}
.hd-both{background:linear-gradient(135deg,#b08d57,var(--gold))}
.heat-legend{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:11.8px;color:var(--muted-2)}
.heat-legend span{margin-right:8px}
.heat-legend .hd{width:11px;height:11px;flex:0 0 11px}
.heat-legend em{font-style:normal;margin-right:8px}

.dash-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.bar-list{display:flex;flex-direction:column;gap:11px}
.bar-list li{display:grid;grid-template-columns:120px 1fr 74px;gap:11px;align-items:center;font-size:13px}
.bl-label{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bl-track{height:9px;border-radius:99px;background:rgba(31,26,16,.07);overflow:hidden}
.bl-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b08d57,var(--gold))}
.bl-track i.bad{background:linear-gradient(90deg,#c8563c,#e0896f)}
.bl-track i.ok{background:linear-gradient(90deg,#1f8f63,#4bbd8c)}
.bl-track i.mid{background:linear-gradient(90deg,#d9a13a,var(--gold))}
.bl-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}
.bl-num em{font-style:normal;font-size:11.6px;color:var(--muted-2);margin-left:5px}
.db-empty{font-size:13.2px;color:var(--muted);line-height:1.9}
.db-empty a{color:var(--gold-deep);font-weight:700}

.act-chart{display:flex;align-items:flex-end;gap:6px;height:132px;padding-top:8px}
.ac-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%}
.ac-bar{width:100%;max-width:26px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--gold),rgba(217,178,106,.35));min-height:3px}
.ac-col em{font-size:10.4px;color:var(--muted-2);font-style:normal;font-variant-numeric:tabular-nums}

.prof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.pg-item{
  display:grid;grid-template-columns:1fr 64px;grid-template-rows:auto auto;gap:2px 8px;align-items:center;
  background:var(--bg-soft);border:1px solid var(--line-2);border-left:3px solid var(--line);border-radius:11px;padding:9px 12px;
}
.pg-item b{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pg-meta{grid-column:1;font-size:11.2px;color:var(--muted-2)}
.pg-input{grid-row:1/3;grid-column:2;display:flex;align-items:center;gap:2px}
.pg-input input{
  width:100%;padding:5px 6px;text-align:center;font-size:12.8px;border:1px solid var(--line);
  border-radius:8px;background:var(--card);color:var(--text);
}
.pg-input i{font-size:11.4px;font-style:normal;color:var(--muted-2)}
.pg-item.lv-low{border-left-color:var(--no)}
.pg-item.lv-mid{border-left-color:#d9a13a}
.pg-item.lv-ok{border-left-color:rgba(31,143,99,.5)}
.pg-item.lv-hi{border-left-color:var(--ok)}

/* ---------- 控制台头部 ---------- */
.dash-head{display:grid;grid-template-columns:minmax(190px,1.1fr) 150px minmax(200px,1.2fr) 1fr;gap:20px;align-items:center}
.dh-user{display:flex;align-items:center;gap:14px}
.dh-avatar{
  width:52px;height:52px;flex:0 0 52px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  font-size:26px;background:linear-gradient(135deg,var(--gold),#c9a05a);color:#2a1c05;box-shadow:0 6px 16px rgba(176,141,87,.28);
}
.dh-avatar.lg{width:62px;height:62px;flex:0 0 62px;font-size:31px;border-radius:18px}
.dh-info b{display:block;font-size:17.5px;color:var(--text)}
.dh-info span{display:inline-block;margin-top:5px}
.dh-info i{display:block;margin-top:5px;font-size:11.9px;font-style:normal;color:var(--muted-2)}
.dh-count{text-align:center;padding:10px 8px;border-left:1px dashed var(--line);border-right:1px dashed var(--line)}
.dh-count b{display:block;font-size:34px;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}
.dh-count b em{font-size:13px;font-style:normal;color:var(--muted-2);margin-left:2px}
.dh-count span{display:block;margin-top:5px;font-size:12.6px;color:var(--text-2)}
.dh-count i{display:block;margin-top:2px;font-size:11.4px;font-style:normal;color:var(--muted-2)}
.dh-count.near b{color:var(--no)}
.dh-goal{display:flex;align-items:center;gap:13px}
.dh-ring2{width:76px;height:76px;flex:0 0 76px;transform:rotate(-90deg)}
.dh-ring2 circle{fill:none;stroke-width:8;stroke-linecap:round}
.ring-fg2{stroke:var(--gold);transition:stroke-dasharray .6s var(--ease)}
.dh-goal b{display:block;font-size:17px;color:var(--text)}
.dh-goal b em{font-size:12px;font-style:normal;color:var(--muted-2)}
.dh-goal span{display:block;font-size:12.4px;color:var(--muted);margin-top:3px}
.dh-goal i{display:block;font-size:11.9px;font-style:normal;color:var(--gold-deep);margin-top:2px}
.dh-stats4{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.dh-stats4>div{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:9px 11px;text-align:center}
.dh-stats4 span{display:block;font-size:11.6px;color:var(--muted-2)}
.dh-stats4 b{font-size:19px;color:var(--text)}
.dh-stats4 b i{font-size:11px;font-style:normal;color:var(--muted-2);margin-left:1px}

/* 待办清单 */
.todo-list{display:flex;flex-direction:column;gap:8px}
.todo-list li{display:flex;gap:10px;align-items:flex-start}
.todo-list li.done .td-text{color:var(--muted-2);text-decoration:line-through}
.td-toggle{margin:0}
.td-toggle button{
  width:22px;height:22px;flex:0 0 22px;border-radius:7px;border:1px solid var(--line);background:var(--card);color:var(--muted-2);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s var(--ease);
}
.td-toggle button:hover{border-color:var(--gold);color:var(--gold)}
.td-toggle button.td-box{color:transparent}
.td-toggle button.td-box.is-done{background:var(--gold);border-color:var(--gold);color:#fff}
.td-toggle button.td-box.is-done:hover{filter:brightness(1.06)}
.td-text{font-size:13.4px;line-height:1.85;color:var(--text-2)}
.td-go{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;color:var(--gold-deep)}
.td-add{display:flex;gap:9px;margin-top:13px;padding-top:13px;border-top:1px dashed var(--line)}
.td-add input{flex:1}

/* 环比 */
.cmp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.cmp-item{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:13px;padding:12px 14px;text-align:center}
.cmp-item span{display:block;font-size:11.9px;color:var(--muted-2)}
.cmp-item b{display:block;font-size:23px;color:var(--text);line-height:1.25;font-variant-numeric:tabular-nums}
.cmp-item b i{font-size:11.4px;font-style:normal;color:var(--muted-2);margin-left:2px}
.cmp-item em{display:block;font-size:12.4px;font-style:normal;font-weight:700;margin-top:2px}
.cmp-item u{display:block;font-size:11.4px;color:var(--muted-2);text-decoration:none;margin-top:2px}
.cmp-item.up em{color:var(--ok)}
.cmp-item.down em{color:var(--no)}
.cmp-item.up{border-color:rgba(31,143,99,.28);background:rgba(31,143,99,.05)}
.cmp-item.down{border-color:rgba(200,86,60,.24);background:rgba(200,86,60,.04)}

/* 趋势图 */
.trend-svg{width:100%;height:auto;display:block}
.tr-axis{stroke:var(--line);stroke-width:1}
.tr-bar{fill:url(#g);fill:rgba(217,178,106,.62)}
.tr-bar0{fill:rgba(31,26,16,.07)}
.tr-line{fill:none;stroke:#1f8f63;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.tr-dot{fill:#1f8f63}
.tr-lb{font-size:10.5px;fill:var(--muted-2);text-anchor:middle}

/* 雷达图 */
.radar-svg{width:100%;max-width:250px;margin:0 auto 8px;display:block}
.rd-ring{fill:none;stroke:var(--line-2);stroke-width:1}
.rd-axis{stroke:var(--line-2);stroke-width:1}
.rd-area{fill:rgba(217,178,106,.34);stroke:var(--gold);stroke-width:2;stroke-linejoin:round}
.rd-dot{fill:var(--gold)}
.rd-val{font-size:9px;fill:var(--gold-deep);text-anchor:middle;font-weight:700}

/* 成就墙 */
.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}
.bg-item{
  background:var(--bg-soft);border:1px solid var(--line-2);border-radius:13px;padding:12px 13px;text-align:center;opacity:.72;
  transition:all .2s var(--ease);
}
.bg-item.got{
  opacity:1;background:linear-gradient(160deg,rgba(255,255,255,.9),var(--gold-soft));
  border-color:rgba(217,178,106,.42);box-shadow:0 4px 14px rgba(176,141,87,.12);
}
.bg-ico{
  width:38px;height:38px;margin:0 auto 8px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:var(--card);border:1px solid var(--line);color:var(--muted-2);
}
.bg-item.got .bg-ico{background:linear-gradient(135deg,var(--gold),#c9a05a);color:#2a1c05;border-color:transparent}
.bg-item b{display:block;font-size:13.2px;color:var(--text)}
.bg-desc{display:block;font-size:11.4px;color:var(--muted-2);line-height:1.65;margin:3px 0 6px;min-height:34px}
.bg-track{display:block;height:5px;border-radius:99px;background:rgba(31,26,16,.08);overflow:hidden}
.bg-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#b08d57,var(--gold))}
.bg-num{display:block;margin-top:4px;font-size:11px;font-style:normal;color:var(--muted-2);font-variant-numeric:tabular-nums}
.bg-ok{display:block;font-size:11.6px;font-style:normal;font-weight:700;color:var(--ok)}

/* 账号中心 */
.acc-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.acc-mid{flex:1;min-width:200px}
.acc-mid b{display:block;font-size:19px;color:var(--text)}
.acc-mid span{display:block;font-size:12.6px;color:var(--muted);margin-top:3px}
.acc-mid em{display:block;font-size:12.4px;font-style:normal;color:var(--gold-deep);margin-top:3px}
.acc-tags{display:flex;gap:7px;flex-wrap:wrap}
.av-pick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.av-item{cursor:pointer}
.av-item input{position:absolute;opacity:0;pointer-events:none}
.av-item span{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:20px;
  border:1px solid var(--line);border-radius:12px;background:var(--card);transition:all .15s var(--ease);
}
.av-item span.av-txt{width:auto;padding:0 12px;font-size:12.4px;color:var(--muted)}
.av-item:hover span{border-color:var(--gold)}
.av-item.on span{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 0 3px rgba(217,178,106,.16)}
.danger-zone{border-color:rgba(200,86,60,.26);background:rgba(200,86,60,.025)}
.dz-form{margin-top:13px;padding-top:13px;border-top:1px dashed rgba(200,86,60,.24)}
.dz-form summary{cursor:pointer;font-size:12.8px;font-weight:700;color:var(--no)}
.dz-form form{margin-top:13px}
.btn-danger{background:linear-gradient(135deg,#b8472f,#c8563c);color:#fff;border-color:transparent}
.btn-danger:hover{background:linear-gradient(135deg,#a33d27,#b8472f);color:#fff}

/* ---------- 登录注册 & 账号中心 ---------- */
.pw-meter{height:6px;border-radius:99px;background:rgba(31,26,16,.08);overflow:hidden;margin-top:8px}
.pw-meter i{display:block;height:100%;width:0;border-radius:99px;transition:all .25s var(--ease)}
.pw-meter i.bad{background:linear-gradient(90deg,#c8563c,#e0896f)}
.pw-meter i.mid{background:linear-gradient(90deg,#d9a13a,var(--gold))}
.pw-meter i.good{background:linear-gradient(90deg,#1f8f63,#4bbd8c)}
.pw-hint{display:block;font-size:11.8px;color:var(--muted-2);margin-top:5px}
.pw-hint.bad{color:var(--no)}
.pw-hint.mid{color:#a8761c}
.pw-hint.good{color:var(--ok)}
.pw-remember{display:flex;align-items:center;gap:8px;margin:4px 0 16px;font-size:12.8px;color:var(--muted);cursor:pointer}
.pw-remember input{width:15px;height:15px;accent-color:#b08d57;cursor:pointer}
.acc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.acc-date{font-size:13.6px !important}

/* ---------- 导出页 ---------- */
.md-view{
  max-height:520px;overflow:auto;font-size:12.7px;line-height:1.85;white-space:pre-wrap;word-break:break-word;
  background:var(--bg-soft);border:1px solid var(--line);border-radius:13px;padding:16px 18px;color:#2a2620;
}

/* ---------- 学习规划 ---------- */
.field-row.four{grid-template-columns:repeat(4,1fr)}
.plan-sub{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin:20px 0 12px;padding-top:16px;border-top:1px dashed var(--line);
}
.plan-sub b{display:inline-flex;align-items:center;gap:7px;font-size:13.6px;color:var(--gold-deep)}
.plan-sub span{font-size:12.4px;color:var(--muted-2)}
.pf-note{font-size:12.4px;color:var(--muted-2)}

.wt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.wt-item{
  display:flex;align-items:center;gap:10px;background:var(--bg-soft);border:1px solid var(--line);
  border-radius:12px;padding:9px 12px;cursor:pointer;transition:all .16s var(--ease);
}
.wt-item:hover{border-color:rgba(217,178,106,.5);background:var(--bg-soft)}
.wt-item.on{background:var(--bg-soft);border-color:rgba(217,178,106,.55);box-shadow:0 0 0 3px rgba(217,178,106,.12)}
.wt-item input[type=checkbox]{width:17px;height:17px;flex:0 0 17px;accent-color:#b08d57;cursor:pointer}
.wt-main{min-width:0;flex:1;display:flex;flex-direction:column;line-height:1.45}
.wt-main b{font-size:13.4px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wt-meta{font-size:11.4px;color:var(--muted-2)}
.wt-acc{display:flex;align-items:center;gap:3px;flex:0 0 62px}
.wt-acc input{width:46px;padding:5px 6px;font-size:12.6px;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text)}
.wt-acc i{font-size:11.6px;color:var(--muted-2);font-style:normal}

.plan-top{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.pt-item{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:12px;padding:13px 16px;text-align:center}
.pt-item span{display:block;font-size:12.2px;color:var(--muted-2);margin-bottom:4px}
.pt-item b{font-size:23px;line-height:1.2;color:var(--text)}
.pt-item b i{font-size:12px;color:var(--muted-2);font-style:normal;margin-left:3px}
.goal-list{display:flex;flex-direction:column;gap:10px;padding-left:20px;list-style:decimal}
.goal-list li{display:flex;gap:9px;align-items:flex-start;font-size:13.8px;color:var(--text-2);line-height:1.85}
.goal-list .ico-sm{color:var(--ok);margin-top:5px;flex:0 0 15px}

.budget-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.chip{
  font-size:12.4px;font-weight:600;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line);
  border-radius:999px;padding:5px 13px;
}
.chip-gold{color:var(--gold-deep);background:var(--gold-soft);border-color:rgba(217,178,106,.36)}

.day-table{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.day-row{display:grid;grid-template-columns:76px 1.25fr 1fr 1.35fr .9fr;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line-2);font-size:12.9px;color:var(--text-2);line-height:1.75}
.day-row:last-child{border-bottom:0}
.day-row:nth-child(even){background:var(--bg-soft)}
.day-head{background:var(--bg-soft);font-size:12.4px;font-weight:700;color:var(--gold-deep)}
.day-row.rest{background:#f7f6f2;color:var(--muted-2)}
.dd-name{font-weight:700;color:var(--text)}
.dd-name i{display:block;font-size:11px;font-style:normal;font-weight:600;color:var(--muted-2)}
.dd-mock{color:var(--gold-deep)}

.plan-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.pt-box{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:13px;padding:15px 17px}
.pt-box>b{display:flex;align-items:center;gap:7px;font-size:13.6px;color:var(--gold-deep);margin-bottom:8px}
.pt-box p{font-size:13.1px;color:var(--muted);line-height:1.9}
.pt-dim{margin-top:9px;font-size:12.4px;color:var(--muted-2)}
.eb-row{display:flex;gap:7px;margin:11px 0 13px}
.eb-row span{
  font-size:12.2px;font-weight:700;color:var(--gold-deep);background:var(--card);border:1px solid rgba(217,178,106,.34);
  border-radius:8px;padding:4px 10px;
}
.adj-list{display:flex;flex-direction:column;gap:7px}
.adj-list li{position:relative;padding-left:14px;font-size:13.1px;color:var(--text-2);line-height:1.85}
.adj-list li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:99px;background:var(--gold)}

.phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.phase-card{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:14px;padding:16px 18px}
.pc-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px}
.pc-idx{font-size:11.6px;font-weight:800;color:#231703;background:linear-gradient(135deg,var(--gold),#c39a52);border-radius:7px;padding:3px 8px}
.pc-top b{font-size:15px}
.pc-week{font-size:11.8px;color:var(--muted-2);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:2px 9px}
.pc-goal{font-size:13.2px;color:var(--text-2);line-height:1.85;margin-bottom:12px}
.pc-accept>span{display:block;font-size:12px;color:var(--gold-deep);font-weight:700;margin-bottom:7px}
.pc-accept ul{display:flex;flex-direction:column;gap:6px}
.pc-accept li{display:flex;gap:7px;align-items:flex-start;font-size:12.7px;color:var(--muted);line-height:1.8}
.pc-accept .ico-sm{color:var(--ok);margin-top:4px;flex:0 0 13px;width:13px}

.risk-list{display:flex;flex-direction:column;gap:10px}
.risk-list li{display:flex;gap:10px;align-items:flex-start;font-size:13.3px;color:var(--text-2);line-height:1.85;background:var(--bg-soft);border:1px solid var(--line-2);border-left:3px solid var(--gold);border-radius:11px;padding:11px 15px}
.risk-list li.lv-high{border-left-color:var(--no);background:rgba(200,86,60,.05)}
.risk-list li.lv-mid{border-left-color:#d9a13a}
.risk-list li.lv-low{border-left-color:rgba(31,143,99,.6)}
.rl-tag{flex:0 0 auto;font-size:11.4px;font-weight:800;padding:2px 8px;border-radius:6px;background:var(--card);border:1px solid var(--line);color:var(--muted);margin-top:2px}
.lv-high .rl-tag{color:var(--no);border-color:rgba(200,86,60,.34)}
.lv-mid .rl-tag{color:#a8761c;border-color:rgba(217,161,58,.4)}
.lv-low .rl-tag{color:var(--ok);border-color:rgba(31,143,99,.3)}

.weak-table{margin-top:16px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.wt-row{display:grid;grid-template-columns:1fr 220px 150px;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line-2);font-size:13px}
.wt-row:last-child{border-bottom:0}
.wt-head{background:var(--bg-soft);font-size:12.3px;font-weight:700;color:var(--gold-deep)}
.wt-bar{display:flex;align-items:center;gap:9px}
.wt-bar i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,#b08d57,var(--gold));flex:1}
.wt-bar b{font-size:12.4px;color:var(--text);font-variant-numeric:tabular-nums;flex:0 0 38px;text-align:right}
.weak-table .lv-high .wt-bar i{background:linear-gradient(90deg,#c8563c,#e0896f)}
.weak-table .lv-mid .wt-bar i{background:linear-gradient(90deg,#d9a13a,var(--gold))}
.weak-table .lv-low .wt-bar i{background:linear-gradient(90deg,#1f8f63,#4bbd8c)}
.plan-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:22px}

/* ---------- 页脚 ---------- */
.site-foot{background:linear-gradient(180deg,#0d1428,#0a1020);color:#c9d2e4;padding:56px 0 26px;margin-top:20px}
.foot-inner{max-width:1180px;margin:0 auto;padding:0 5vw;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}
.foot-brand{display:flex;gap:12px}
.foot-brand b{color:#f4ecda;font-size:15.5px}
.foot-brand p{font-size:12.8px;color:#8e9ab5;line-height:1.8;margin-top:4px}
.foot-col{display:flex;flex-direction:column;gap:8px}
.foot-col b{color:#f4ecda;font-size:13.5px;margin-bottom:4px}
.foot-col a{font-size:12.9px;color:#a9b6ce}
.foot-col a:hover{color:var(--gold-2)}
.foot-note{font-size:12.2px;color:#6b7796}
.foot-bottom{max-width:1180px;margin:26px auto 0;padding:18px 5vw 0;border-top:1px solid rgba(255,255,255,.09);font-size:12.3px;color:#6b7796;text-align:center}

/* ================= 响应式 ================= */
@media (max-width:1080px){
  .step-grid{grid-template-columns:repeat(2,1fr)}
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .cs-grid{grid-template-columns:repeat(2,1fr)}
  .foot-inner{grid-template-columns:1fr 1fr;gap:26px}
  .wt-grid{grid-template-columns:repeat(2,1fr)}
  .phase-grid{grid-template-columns:1fr}
  .field-row.four{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  :root{--nav-h:60px}
  .nav-toggle{display:flex}
  .nav-links{
    position:fixed;inset:var(--nav-h) 0 auto;flex-direction:column;align-items:stretch;gap:0;
    background:rgba(8,13,26,.97);backdrop-filter:blur(14px);border-bottom:1px solid rgba(217,178,106,.16);
    padding:10px 5vw 18px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:all .2s var(--ease);
  }
  .nav-links.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-links>a{padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.07);font-size:15px}
  .nav-links>a.on::after{display:none}
  .nav-drop{width:100%}
  .nd-label{width:100%;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.07);font-size:15px;justify-content:space-between}
  .nav-drop.on .nd-label::after{display:none}
  .nd-menu{position:static;transform:none;opacity:1;visibility:hidden;display:none;box-shadow:none;
    border:0;background:rgba(255,255,255,.03);border-radius:10px;padding:5px;margin:4px 0 8px;min-width:0}
  .nav-drop.open .nd-menu{display:block;visibility:visible;opacity:1;transform:none}
  .nav-drop:hover .nd-menu{visibility:hidden;display:none}
  .nav-drop.open:hover .nd-menu{display:block;visibility:visible}
  .nd-menu a{flex-direction:row;align-items:center;gap:8px;padding:9px 12px}
  .nd-menu a b{color:#e7ecf5;font-size:14px}
  .nd-menu a span{flex:1;text-align:right}
  .nd-menu a.on b{color:var(--gold-2)}
  .nav-cta{margin-top:14px;justify-content:center}
  .hero h1,.page-hero h1{font-size:32px}
  .hero{padding:calc(var(--nav-h) + 56px) 0 52px}
  .page-hero{padding:calc(var(--nav-h) + 44px) 0 34px}
  .hero-sub,.page-hero p{font-size:14.5px}
  .hero-stats{gap:16px;margin-top:30px}
  .hero-stats i{display:none}
  .section{padding:52px 0}
  .guide-grid,.log-grid,.manual-wrap{grid-template-columns:1fr}
  .form-card{position:static}
  .m-toc{position:static;display:flex;gap:8px;overflow-x:auto;white-space:nowrap;padding:11px 12px;scrollbar-width:none}
  .m-toc::-webkit-scrollbar{display:none}
  .m-toc b{display:none}
  .m-toc a{display:inline-block;background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12.8px;flex:0 0 auto}
  .sy-grid{grid-template-columns:1fr}
  .sy-top{flex-direction:column;align-items:stretch}
  .syt-ring{align-self:center}
  .syt-tools{min-width:0}
  .ec-grid{grid-template-columns:1fr}
  .as-top{grid-template-columns:1fr;gap:14px;text-align:center}
  .as-gap{text-align:center}
  .stage-row{grid-template-columns:1fr;gap:8px}
  .sr-go{justify-self:start}
  .check-list.cols{grid-template-columns:1fr}
  .field-row.five{grid-template-columns:repeat(2,1fr)}
  .bl-row{grid-template-columns:78px 1fr 70px 44px;font-size:12.6px}
  .stat-card{grid-template-columns:repeat(2,1fr)}
  .m-sec{scroll-margin-top:calc(var(--nav-h) + 14px)}
  .plan-top{grid-template-columns:repeat(2,1fr)}
  .plan-two{grid-template-columns:1fr}
  .tutor-form{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .code-input{font-size:12px}
  .auth-wrap{grid-template-columns:1fr}
  .ah-list{grid-template-columns:1fr}
  .dash-two{grid-template-columns:1fr}
  .prof-grid{grid-template-columns:1fr 1fr}
  .pq-io,.pq-sample{grid-template-columns:1fr}
  .coach-wrap{grid-template-columns:1fr}
  .field-row.three{grid-template-columns:1fr}
  .cb-bub{max-width:88%}
  .dash-head{grid-template-columns:1fr;gap:14px}
  .dh-count{border:0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:12px 0}
  .cmp-grid{grid-template-columns:repeat(2,1fr)}
  .badge-grid{grid-template-columns:repeat(2,1fr)}
  .field-row{grid-template-columns:1fr}
  .dash-hero{grid-template-columns:1fr;gap:16px}
  .dh-stats{grid-template-columns:repeat(3,1fr)}
  .ck-form .pf-note{text-align:left}
  .nav-right{gap:7px}
  .nav-login{padding:5px 10px;font-size:12.4px}
  .nav-user{padding:5px 9px;max-width:none}
  .nav-user span{display:none}
  .nav-cta{padding:6px 12px;font-size:12.5px}
  .day-table{border:0;border-radius:0}
  .day-head{display:none}
  .day-row{
    grid-template-columns:1fr;gap:5px;background:var(--card);border:1px solid var(--line-2);
    border-radius:13px;padding:12px 15px;margin-bottom:10px;
  }
  .day-row.rest{background:#f7f6f2}
  .day-row>span:nth-child(2)::before{content:"新知识 · ";color:var(--gold-deep);font-weight:700}
  .day-row>span:nth-child(3)::before{content:"刷题 · ";color:var(--gold-deep);font-weight:700}
  .day-row>span:nth-child(4)::before{content:"复盘 · ";color:var(--gold-deep);font-weight:700}
  .day-row>span:nth-child(5)::before{content:"测评 · ";color:var(--gold-deep);font-weight:700}
  .weak-table .wt-row{grid-template-columns:1fr 130px}
  .weak-table .wt-row>span:last-child{grid-column:1/-1;font-size:12.4px;color:var(--muted-2)}
}
@media (max-width:640px){
  .wrap{padding:0 4.5vw}
  .hero h1,.page-hero h1{font-size:26px}
  .hero-sub,.page-hero p{font-size:13.6px;line-height:1.9}
  .hero-actions{margin-top:24px}
  .hero-actions .btn{width:100%;justify-content:center}
  .step-grid,.feat-grid,.cs-grid{grid-template-columns:1fr}
  .sec-head h2{font-size:22px}
  .rule-inner h2{font-size:22px}
  .card{padding:18px 16px;border-radius:14px}
  .field-row{grid-template-columns:1fr}
  .field-btn .btn{width:100%}
  .foot-inner{grid-template-columns:1fr;gap:22px}
  .site-foot{padding:42px 0 22px}
  .stat-card{grid-template-columns:repeat(2,1fr)}
  .sy-bar{padding:14px 16px}
  .sy-legend{font-size:12px;flex-wrap:wrap}
  .bl-row{grid-template-columns:66px 1fr 62px;gap:8px}
  .bl-tag{display:none}
  .wt-grid{grid-template-columns:1fr}
  .field-row.four{grid-template-columns:1fr}
  .plan-top{grid-template-columns:repeat(2,1fr);gap:9px}
  .prof-grid{grid-template-columns:1fr}
  .dh-stats{grid-template-columns:repeat(2,1fr)}
  .act-chart{gap:3px}
  .heat{gap:3px}
  .plan-actions .btn{width:100%}
  .step-card,.feat-card{padding:20px 18px}
  .hc-badge{font-size:11px;padding:3px 8px}
  .m-head h2{font-size:16.5px}
  pre{font-size:12.4px;padding:13px 14px}
}

/* ========== 同学聊天室 & 个人主页 ========== */
.hero-compact{padding:calc(var(--nav-h) + 34px) 0 26px !important}
.hero-compact h1{font-size:27px}
.hero-compact p{margin-top:6px}

.chat-shell{display:grid;grid-template-columns:200px 1fr 210px;gap:14px;align-items:start}
.chat-shell .card{padding:0;overflow:hidden}
.chat-shell .card-head{padding:13px 16px;border-bottom:1px solid var(--line);margin:0}

.chat-rooms{display:flex;flex-direction:column;padding:9px}
.cr-item{display:flex;flex-direction:column;gap:2px;border-radius:11px;padding:9px 12px;margin-bottom:3px;transition:background .15s var(--ease)}
.cr-item:hover{background:var(--gold-soft)}
.cr-item.on{background:var(--gold-soft);box-shadow:inset 3px 0 0 var(--gold)}
.cr-item b{font-size:13.4px;color:var(--text)}
.cr-item.on b{color:var(--gold-deep)}
.cr-item span{font-size:11.6px;color:var(--muted-2)}

.chat-main{display:flex;flex-direction:column;height:640px}
.chat-box{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:13px;background:var(--bg-soft)}
.chat-empty{margin:auto;color:var(--muted-2);font-size:13.2px;text-align:center;max-width:260px;line-height:1.9}
.chat-msg{display:flex;gap:9px;max-width:88%}
.chat-msg.mine{flex-direction:row-reverse;align-self:flex-end}
.cm-ava{flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:var(--gold-soft);border:1px solid rgba(217,178,106,.35);
  color:var(--gold-deep);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;text-decoration:none}
.cm-body{min-width:0}
.cm-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.chat-msg.mine .cm-meta{flex-direction:row-reverse}
.cm-name{font-size:12.6px;font-weight:700;color:var(--text-2);text-decoration:none}
.cm-name:hover{color:var(--gold-deep)}
.cm-meta time{font-size:11px;color:var(--muted-2)}
.cm-text{margin:0;background:var(--card);border:1px solid var(--line);border-radius:4px 13px 13px 13px;padding:8px 12px;
  font-size:13.4px;line-height:1.75;color:var(--text-2);word-break:break-word}
.chat-msg.mine .cm-text{background:var(--gold-soft);border-color:rgba(217,178,106,.4);border-radius:13px 4px 13px 13px}

.chat-form{display:flex;flex-direction:column;padding:0;border-top:1px solid var(--line);background:var(--card);position:relative}
.cf-row{display:flex;gap:9px;padding:12px 14px;align-items:flex-end}
.cf-row textarea{flex:1;resize:none;min-height:42px;max-height:150px;line-height:1.7;font-family:inherit}
.cf-emoji{flex:0 0 40px;height:40px;border:1px solid var(--line);border-radius:11px;background:var(--bg-soft);font-size:18px;cursor:pointer;transition:all .15s var(--ease)}
.cf-emoji:hover{background:var(--gold-soft);transform:scale(1.06)}
.emoji-panel{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;padding:10px 12px;border-top:1px dashed var(--line);background:var(--bg-soft)}
.emoji-panel[hidden]{display:none}
.emoji-panel button{border:0;background:transparent;font-size:19px;cursor:pointer;border-radius:8px;padding:4px 0;transition:transform .12s var(--ease),background .12s var(--ease)}
.emoji-panel button:hover{background:var(--gold-soft);transform:scale(1.25)}

/* 头像配色（按名字哈希） */
.cm-ava.a0{background:linear-gradient(135deg,#f4d9a8,#e0b06a);color:#5f431a;border:0}
.cm-ava.a1{background:linear-gradient(135deg,#a8d8e8,#5aa8cc);color:#123f52;border:0}
.cm-ava.a2{background:linear-gradient(135deg,#b8e6c4,#5cbf85);color:#1c4f30;border:0}
.cm-ava.a3{background:linear-gradient(135deg,#e6c1dd,#c986b8);color:#4f2140;border:0}
.cm-ava.a4{background:linear-gradient(135deg,#d3d6f0,#8f96d8);color:#272f5e;border:0}
.cm-ava.a5{background:linear-gradient(135deg,#f2c9b8,#dd8b64);color:#5c2c14;border:0}

/* 消息进入动画 & 日期分隔 */
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.chat-msg.msg-in{animation:msgIn .22s var(--ease)}
.chat-day{align-self:center;font-size:11px;color:var(--muted-2);background:var(--line-2);border:1px solid var(--line-2);border-radius:999px;padding:3px 14px;margin:2px 0}
.chat-box{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.chat-box::-webkit-scrollbar{width:8px}
.chat-box::-webkit-scrollbar-thumb{background:var(--bg-soft);border-radius:8px}
.chat-box::-webkit-scrollbar-thumb:hover{background:#c9c0a8}

/* 在线状态点 */
.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#1f8f63;margin-right:5px;animation:pu 1.8s infinite}
@keyframes pu{0%{box-shadow:0 0 0 0 rgba(31,143,99,.45)}70%{box-shadow:0 0 0 7px rgba(31,143,99,0)}100%{box-shadow:0 0 0 0 rgba(31,143,99,0)}}

/* 代码块 & 行内代码 & @提及 */
.cm-text .cm-code{position:relative;margin:6px 0 2px;background:#161c2c;color:#dbe2f0;border-radius:12px;padding:26px 14px 12px;overflow-x:auto;font-size:12.6px;line-height:1.75;max-width:520px}
.cm-code-tag{position:absolute;top:6px;left:12px;font-size:10px;font-weight:700;letter-spacing:.5px;color:#8f9ab5;background:rgba(255,255,255,.07);border-radius:6px;padding:1px 8px}
.cm-copy{position:absolute;top:5px;right:8px;border:0;background:rgba(255,255,255,.09);color:#aeb8d0;font-size:10.6px;
  border-radius:6px;padding:2px 9px;cursor:pointer;font-family:inherit;transition:all .14s var(--ease)}
.cm-copy:hover{background:rgba(255,255,255,.18);color:#fff}

/* 频道内搜索 */
.chat-tools{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px dashed var(--line);background:var(--bg-soft)}
.chat-tools input{flex:1;padding:7px 12px;font-size:12.8px;border-radius:9px}
.chat-tools span{font-size:11.6px;color:var(--muted-2);flex:0 0 auto}

/* 在线名单名字 hover 提示可插入 @ */
.online-list .ol-name{cursor:pointer;border-radius:4px;padding:0 2px;transition:color .14s var(--ease)}
.online-list .ol-name:hover{color:var(--gold-deep)}

/* 主页分享链接 */
.up-share{width:100%;margin-top:4px}
.up-share input{width:100%;font-size:12.2px;color:var(--muted);background:var(--bg-soft);padding:8px 12px;cursor:text}
.cm-text .cm-code code{font-family:ui-monospace,Consolas,"Courier New",monospace;white-space:pre}
.c-k{color:#7fb3ff;font-weight:600}
.c-s{color:#a5d6a7}
.c-c{color:#7c8699;font-style:italic}
.c-p{color:#e6b0a4}
.c-n{color:#f0cc8e}
.cm-inline{background:rgba(217,178,106,.16);border:1px solid rgba(217,178,106,.3);border-radius:6px;padding:0 5px;font-family:ui-monospace,Consolas,monospace;font-size:12.4px;color:#7a5a22}
.mention{color:var(--gold-deep);background:var(--gold-soft);border:1px solid rgba(217,178,106,.4);border-radius:6px;padding:0 5px;font-weight:700}

/* 频道侧栏：私信/提醒入口 */
.chat-dm-entry{display:flex;align-items:center;gap:8px;margin:4px 9px 3px;border-radius:11px;padding:9px 12px;font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none;transition:background .15s var(--ease)}
.chat-dm-entry:hover{background:var(--gold-soft);color:var(--gold-deep)}

/* 在线名单强化 */
.online-list li{display:flex;align-items:center;gap:2px;margin-bottom:2px}
.online-list li>a{flex:1;min-width:0}
.ol-ava{position:relative;flex:0 0 26px}
.ol-dot{position:absolute;right:-1px;bottom:-1px;width:8px;height:8px;border-radius:50%;background:#1f8f63;border:2px solid #fff}
.ol-dm{flex:0 0 26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;color:var(--muted-2);text-decoration:none;transition:all .15s var(--ease)}
.ol-dm:hover{background:var(--gold-soft);color:var(--gold-deep)}

/* 未读徽标 */
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 5px;margin-left:5px;border-radius:999px;background:#d6503f;color:#fff;font-size:10.4px;font-weight:800;font-style:normal;line-height:1;vertical-align:2px}
.nav-dm{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);text-decoration:none;font-size:12.8px;font-weight:600;padding:6px 11px;border-radius:10px;transition:background .15s var(--ease)}
.nav-dm:hover{background:var(--gold-soft);color:var(--gold-deep)}

/* 私信 */
.dm-talk-wrap{max-width:860px}
.dm-back{display:inline-flex;align-items:center;gap:5px;font-size:12.4px;color:var(--muted-2);text-decoration:none;transform:scaleX(-1)}
.dm-back:hover{color:var(--gold-deep)}
.dm-head-ava{width:26px;height:26px;font-size:12px;border-radius:8px;margin-right:7px;vertical-align:-8px}
.chat-main .card-head b{display:flex;align-items:center;gap:4px}
.dm-list,.men-list{list-style:none;margin:0;padding:8px}
.dm-list li,.men-list li{margin-bottom:4px}
.dm-item{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;text-decoration:none;transition:background .15s var(--ease);border:1px solid transparent}
.dm-item:hover{background:var(--gold-soft)}
.dm-item.unread{background:var(--bg-soft);border-color:var(--line-2)}
.dm-item .cm-ava{flex:0 0 38px;width:38px;height:38px;font-size:15px;border-radius:12px}
.dmi-body{flex:1;min-width:0}
.dmi-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.dmi-top b{font-size:13.6px;color:var(--text)}
.dmi-top time{font-size:11.2px;color:var(--muted-2)}
.dmi-body p{margin:3px 0 0;font-size:12.8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.men-list li.unread .dmi-body p{color:var(--text-2);font-weight:600}
.men-list a{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;text-decoration:none;transition:background .15s var(--ease)}
.men-list a:hover{background:var(--gold-soft)}
.men-list .cm-ava{flex:0 0 38px;width:38px;height:38px;font-size:15px;border-radius:12px}

/* 个人主页封面 */
.up-head{padding:0;overflow:hidden;position:relative}
.up-cover{height:76px;background:linear-gradient(115deg,#d9b26a 0%,#e8cf9a 30%,#8f96d8 70%,#5aa8cc 100%);opacity:.9}
.up-cover::after{content:"";display:block;height:100%;background:radial-gradient(circle at 18% 120%,rgba(255,255,255,.55),transparent 45%),radial-gradient(circle at 85% -30%,rgba(255,255,255,.4),transparent 40%)}
.up-body{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:0 22px 20px;margin-top:-26px;position:relative}
.up-ava.a0,.up-ava.a1,.up-ava.a2,.up-ava.a3,.up-ava.a4,.up-ava.a5{border:3px solid #fff;box-shadow:0 4px 14px rgba(17,26,46,.14)}

.chat-side2 .card-head span{font-size:11.6px}
.online-list{list-style:none;margin:0;padding:8px;overflow-y:auto;max-height:540px}
.online-list li a{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:10px;text-decoration:none;transition:background .15s var(--ease)}
.online-list li a:hover{background:var(--gold-soft)}
.online-list .cm-ava{flex:0 0 26px;width:26px;height:26px;font-size:12px;border-radius:8px}
.online-list b{font-size:12.8px;color:var(--text-2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.online-list i{font-size:10.6px;font-style:normal;color:var(--muted-2);flex:0 0 auto}
.chat-tip{padding:10px 14px;border-top:1px dashed var(--line);font-size:11.4px;color:var(--muted-2);background:var(--bg-soft)}

/* 个人主页 */
.up-ava{width:58px;height:58px;font-size:24px;border-radius:18px;background:var(--gold-soft);border:1px solid rgba(217,178,106,.4);
  color:var(--gold-deep);font-weight:800;display:flex;align-items:center;justify-content:center}
.up-actions{display:flex;gap:9px}
.up-stats4{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:4px}
.up-expbar{display:flex;align-items:center;gap:12px;margin-top:13px;font-size:12.4px;color:var(--muted-2)}
.up-expbar .bl-track{flex:1}
.up-badges{grid-template-columns:repeat(3,1fr)}
.up-logs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.up-logs li{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:11px;padding:10px 13px}
.up-logs li b{font-size:13.2px;color:var(--text-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-logs li span{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.up-logs time{font-size:11.4px;color:var(--muted-2)}
.up-bio{margin-top:15px;padding-top:14px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:9px}
.up-bio label{font-size:12.6px;font-weight:700;color:var(--muted)}
.up-bio input{width:100%}
.up-bio .btn{align-self:flex-start}

/* 排行榜 */
.rank-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.rank-tabs a{padding:7px 15px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:600;
  color:var(--muted);text-decoration:none;transition:all .15s var(--ease)}
.rank-tabs a:hover{border-color:var(--gold);color:var(--gold-deep)}
.rank-tabs a.on{background:var(--gold-soft);border-color:rgba(217,178,106,.5);color:var(--gold-deep)}
.rank-sub{margin:2px 0 14px;font-size:12.4px;color:var(--muted-2)}
.rank-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.rank-list li{display:flex;align-items:center;gap:12px;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:13px;padding:10px 15px;transition:all .15s var(--ease)}
.rank-list li:hover{border-color:rgba(217,178,106,.5);background:var(--gold-soft);transform:translateX(2px)}
.rank-list li.me{background:var(--gold-soft);border-color:rgba(217,178,106,.55)}
.rank-list li.rk-1{background:linear-gradient(90deg,rgba(217,178,106,.16),var(--bg-soft));border-color:rgba(217,178,106,.45)}
.rank-list li.rk-2,.rank-list li.rk-3{background:linear-gradient(90deg,rgba(143,150,216,.1),var(--bg-soft))}
.rk-no{flex:0 0 30px;font-size:15px;font-weight:800;color:var(--muted-2);font-style:normal;text-align:center}
.rk-ava{flex:0 0 34px;width:34px;height:34px;font-size:14px;border-radius:11px;text-decoration:none}
.rk-name{font-size:14px;font-weight:700;color:var(--text);text-decoration:none;flex:0 0 auto;max-width:130px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-name:hover{color:var(--gold-deep)}
.rk-lv{flex:0 0 auto}
.rk-meta{flex:1;min-width:0;font-size:11.8px;color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-v{font-size:17px;color:var(--text);font-variant-numeric:tabular-nums;flex:0 0 auto}
.rk-v i{font-size:11px;font-style:normal;color:var(--muted-2);margin-left:2px}

/* 消息撤回 */
.cm-recall{border:0;background:transparent;color:var(--muted-2);font-size:10.6px;cursor:pointer;padding:1px 6px;
  border-radius:6px;font-family:inherit;opacity:0;transition:opacity .15s var(--ease)}
.chat-msg:hover .cm-recall{opacity:1}
.cm-recall:hover{background:rgba(176,69,58,.1);color:#b0453a}
.cm-text.removed{font-style:italic;color:var(--muted-2);background:transparent;border:1px dashed var(--line-2)}

/* 主页：最近发言 / 排名徽章 */
.up-sec2{margin-top:16px;border-top:1px dashed var(--line);padding-top:13px}
.up-chats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.up-chats li{display:flex;align-items:center;gap:10px;background:var(--bg-soft);border:1px solid var(--line-2);border-radius:11px;padding:9px 13px}
.up-chats li .chip{flex:0 0 auto}
.up-chats li p{flex:1;min-width:0;margin:0;font-size:12.6px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-chats time{font-size:11.2px;color:var(--muted-2);flex:0 0 auto}
.up-rank{text-decoration:none;font-style:normal}
.up-rank:hover{filter:brightness(.92)}

/* ========== 头像图片 / 封面配色 / 热力图 / 关注 ========== */
.cm-ava img,.up-ava img,.rk-ava img,.dm-head-ava img,.fol-one img,.acc-ava-cur img,.coach-ava-img img{
  width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}
.up-ava,.acc-ava-cur,.coach-ava-img{overflow:hidden}
.cm-ava{overflow:hidden}

/* 头像上传 */
.acc-ava-row{padding:16px}
.acc-ava-form{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.acc-ava-cur{width:72px;height:72px;border-radius:22px;font-size:30px}
.acc-ava-mid{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.acc-ava-pick{position:relative;cursor:pointer;overflow:hidden}
.acc-ava-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.acc-ava-hint{font-size:12.4px;color:var(--muted-2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 封面色板 */
.cover-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cv-sw{cursor:pointer;padding:2px;border-radius:12px;border:2px solid transparent;transition:all .15s var(--ease)}
.cv-sw.on{border-color:var(--gold);box-shadow:0 3px 10px rgba(217,178,106,.35)}
.cv-sw i{display:block;width:44px;height:22px;border-radius:9px}
.cv-sw input{position:absolute;opacity:0;pointer-events:none}
.cv-tip{font-size:11.6px;color:var(--muted-2)}
.up-cover.c0,.cv-sw.c0 i{background:linear-gradient(115deg,#d9b26a 0%,#e8cf9a 30%,#8f96d8 70%,#5aa8cc 100%)}
.up-cover.c1,.cv-sw.c1 i{background:linear-gradient(115deg,#5aa8cc,#a8d8e8)}
.up-cover.c2,.cv-sw.c2 i{background:linear-gradient(115deg,#e07a5f,#f2cc8f)}
.up-cover.c3,.cv-sw.c3 i{background:linear-gradient(115deg,#81b29a,#f2cc8f)}
.up-cover.c4,.cv-sw.c4 i{background:linear-gradient(115deg,#8f96d8,#d3d6f0,#e6c1dd)}
.up-cover.c5,.cv-sw.c5 i{background:linear-gradient(115deg,#2d3142,#4f5d75,#8f96d8)}

/* 训练热力图 */
.heat-map{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,13px);grid-auto-columns:13px;gap:3px;
  overflow-x:auto;padding:4px 2px;justify-content:start}
.heat-map i{border-radius:3.5px;background:var(--line-2);transition:transform .12s var(--ease)}
.heat-map i:hover{transform:scale(1.35)}
.hl0{background:var(--line-2)}
.hl1{background:#ecd9ae}
.hl2{background:#dfba72}
.hl3{background:#cf9d3f}
.hl4{background:#b0812c}
.heat-legend{display:flex;align-items:center;gap:5px;justify-content:flex-end;margin-top:9px;font-size:11.4px;color:var(--muted-2)}
.heat-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}

/* 关注 */
.fol-form{display:inline}
.fol-row{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0}
.fol-one{display:flex;align-items:center;gap:8px;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:999px;padding:5px 14px 5px 6px;text-decoration:none;transition:all .15s var(--ease)}
.fol-one:hover{border-color:rgba(217,178,106,.5);background:var(--gold-soft);transform:translateY(-1px)}
.fol-one .cm-ava,.fol-one img{width:28px;height:28px;border-radius:999px;flex:0 0 28px}
.fol-one b{font-size:12.8px;color:var(--text-2)}
.dh-info .chp{margin-right:6px}

/* ========== 新手引导 / 三步上手 / 决策表 / 体验增强 ========== */
.nav-tour{width:30px;height:30px;border-radius:10px;border:1px solid var(--line-2);display:flex;align-items:center;
  justify-content:center;font-weight:800;font-size:15px;color:var(--muted);text-decoration:none;
  transition:all .15s var(--ease);margin-right:4px;flex:0 0 30px}
.nav-tour:hover{background:var(--gold-soft);border-color:var(--gold);color:var(--gold-deep);transform:translateY(-1px)}

/* Tour 遮罩与气泡（遮罩只做视觉暗化，绝不拦截点击 —— 引导永远不能锁死页面） */
.tour-mask{position:fixed;inset:0;z-index:900;pointer-events:none;display:none}
.tour-mask.show{display:block}
.tour-hl{position:fixed;border-radius:14px;box-shadow:0 0 0 4px rgba(217,178,106,.55),0 0 0 9999px rgba(24,26,38,.72);
  transition:all .3s var(--ease);pointer-events:none}
.tour-tip{position:fixed;z-index:901;display:none;background:var(--card);border-radius:18px;
  box-shadow:0 24px 70px rgba(20,25,45,.4);opacity:0;transform:translateY(8px);
  transition:opacity .25s var(--ease),transform .25s var(--ease)}
.tour-tip.show{display:block}
.tt-in{padding:20px 22px 16px}
.tt-step{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.tt-step i{font-style:normal;font-size:11.5px;font-weight:800;color:var(--gold-deep);background:var(--gold-soft);
  border-radius:999px;padding:3px 10px}
.tt-step b{font-size:16.5px}
.tt-html{font-size:13.6px;color:var(--text-2);line-height:1.85}
.tt-html p{margin:0 0 6px}
.tt-html b{color:var(--text)}
.tt-foot{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}
.tt-skip{border:none;background:none;font-size:12.6px;color:var(--muted-2);cursor:pointer;padding:6px 4px}
.tt-skip:hover{color:#a85a44}
.tt-dots{display:flex;gap:5px;flex:1;justify-content:center}
.tt-dots i{width:7px;height:7px;border-radius:99px;background:#e5e1d5}
.tt-dots i.on{background:var(--gold);width:18px}
.nav-drop.tour-open .nd-menu{display:block;opacity:1;visibility:visible;pointer-events:none}

/* 新同学三步上手 */
.quick-start .sec-head{margin-bottom:18px}
.qs-track{display:flex;align-items:stretch;gap:8px}
.qs-step{flex:1;position:relative;background:var(--card);border:1px solid var(--line-2);border-radius:18px;
  padding:20px 20px 16px;text-decoration:none;transition:all .2s var(--ease);display:flex;flex-direction:column}
.qs-step:hover{border-color:rgba(217,178,106,.6);box-shadow:0 12px 32px rgba(217,178,106,.16);transform:translateY(-3px)}
.qs-num{position:absolute;top:-14px;left:18px;width:34px;height:34px;border-radius:12px;
  background:linear-gradient(140deg,var(--gold),#c39a52);color:#fff;font-size:17px;font-weight:800;
  display:flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(195,154,82,.4)}
.qs-step b{font-size:15.5px;margin:6px 0 8px;color:var(--text)}
.qs-step p{font-size:12.8px;color:var(--muted);line-height:1.75;flex:1;margin:0}
.qs-go{font-size:12.6px;font-weight:700;color:var(--gold-deep);margin-top:12px;display:inline-flex;align-items:center;gap:5px}
.qs-arrow{align-self:center;flex:0 0 28px;width:28px;height:28px;color:#cfc9b8;display:flex;align-items:center;justify-content:center}
.qs-note{display:flex;align-items:center;gap:9px;margin-top:20px;background:var(--bg-soft);border:1px dashed var(--line-2);
  border-radius:12px;padding:11px 16px;font-size:13px;color:var(--muted)}
.qs-note a{color:var(--gold-deep);font-weight:700}
.qs-note svg{color:var(--gold);flex:0 0 auto}

/* 60 秒决策表 */
.dec-table{display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:14px;overflow:hidden;margin:12px 0}
.dt-row{display:grid;grid-template-columns:1fr 220px;gap:12px;align-items:center;padding:11px 16px;
  text-decoration:none;background:var(--card);border-top:1px solid var(--line-2);font-size:13.4px;color:var(--text-2);
  transition:background .15s var(--ease)}
.dt-row:first-child{border-top:none}
.dt-row:not(.dt-head):hover{background:var(--gold-soft)}
.dt-row span{color:var(--muted)}
.dt-row b{font-size:12.8px;color:var(--gold-deep);text-align:right}
.dt-head{background:#2d3142;color:#e8e6df;font-weight:700;font-size:12.6px}
.dt-head span{color:#e8e6df}
.dt-head b{color:var(--gold-2);text-align:right;font-weight:700}
.toc-hot{color:var(--gold-deep);font-weight:800}

/* 滚动渐入 & 返回顶部（.anim 由内联脚本尽早添加，无 JS 时内容正常显示） */
.anim .card,.anim .feat-card,.anim .step-card,.anim .stage-row{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.anim .card.in,.anim .feat-card.in,.anim .step-card.in,.anim .stage-row.in{opacity:1;transform:none}
.back-top{position:fixed;right:22px;bottom:24px;z-index:800;width:42px;height:42px;border-radius:14px;border:1px solid var(--line-2);
  background:var(--card);color:var(--gold-deep);font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 8px 22px rgba(30,35,60,.16);
  opacity:0;visibility:hidden;transform:translateY(10px);transition:all .25s var(--ease)}
.back-top.show{opacity:1;visibility:visible;transform:none}
.back-top:hover{background:var(--gold);border-color:var(--gold);color:#fff}

@media (max-width:860px){
  .qs-track{flex-direction:column}
  .qs-arrow{transform:rotate(90deg);margin:-2px auto}
  .dt-row{grid-template-columns:1fr;gap:3px;padding:10px 14px}
  .dt-row b{text-align:left}
}

/* ========== 裂变邀请中心 ========== */
.ref-banner{margin-top:14px;display:inline-flex;align-items:center;gap:8px;background:rgba(217,178,106,.16);
  border:1px solid rgba(217,178,106,.45);border-radius:999px;padding:8px 18px;font-size:13.4px;color:#f4ead2}
.ref-banner b{color:#f0d9a8}
.inv-hero{border-color:rgba(217,178,106,.5)}
.inv-link-row{display:flex;gap:10px;padding:4px 16px 0}
.inv-link-row input{flex:1;min-width:0;border:1px solid var(--line-2);border-radius:12px;background:var(--bg-soft);
  padding:11px 14px;font-size:13.6px;color:var(--text);font-family:inherit}
.inv-link-row input:focus{outline:none;border-color:var(--gold)}
.inv-share{display:flex;align-items:center;gap:12px;padding:14px 16px 16px;flex-wrap:wrap}
.inv-share-tag{font-size:12.6px;color:var(--muted-2);flex:0 0 auto}
.inv-share textarea{flex:1;min-width:220px;border:1px dashed var(--line-2);border-radius:12px;background:var(--bg-soft);
  padding:10px 12px;font-size:12.8px;color:var(--muted);font-family:inherit;line-height:1.7;resize:none}
.inv-share textarea:focus{outline:none;border-color:var(--gold)}
.inv-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:14px;margin-top:14px}
.inv-big{display:flex;align-items:baseline;gap:10px;padding:10px 16px 4px}
.inv-big b{font-size:44px;color:var(--gold-deep);line-height:1}
.inv-big span{font-size:12.6px;color:var(--muted-2);line-height:1.5}
.inv-badge{padding:6px 16px}
.ib-name{display:inline-block;background:linear-gradient(135deg,var(--gold),#c39a52);color:#fff;font-weight:800;
  font-size:13px;border-radius:999px;padding:5px 16px;box-shadow:0 4px 12px rgba(195,154,82,.35)}
.ib-desc{margin-left:8px;font-size:12.4px;color:var(--muted-2)}
.inv-prog{display:flex;align-items:center;gap:10px;padding:8px 16px 4px;font-size:12.6px;color:var(--muted)}
.inv-prog .bl-track{flex:1}
.inv-rank-line{padding:8px 16px 16px;font-size:13px;color:var(--muted)}
.inv-rank-line b{color:var(--gold-deep);font-size:15px}
.inv-rules{list-style:none;padding:6px 16px 8px;margin:0}
.inv-rules li{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line-2)}
.inv-rules li:last-child{border-bottom:none}
.inv-rules i{font-style:normal;flex:0 0 22px;width:22px;height:22px;border-radius:8px;background:var(--gold-soft);
  color:var(--gold-deep);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;transform:translateY(4px)}
.inv-rules b{font-size:13.4px;flex:0 0 auto}
.inv-rules span{font-size:12.6px;color:var(--muted);line-height:1.7}
.inv-tip{margin:4px 16px 16px;background:var(--bg-soft);border:1px dashed var(--line-2);border-radius:10px;
  padding:9px 13px;font-size:12.4px;color:var(--muted)}
.inv-rank-list{display:flex;flex-direction:column;padding:4px 0}
.ir-row{display:flex;align-items:center;gap:11px;padding:9px 16px;text-decoration:none;border-top:1px solid var(--line-2);
  transition:background .14s var(--ease)}
.ir-row:first-child{border-top:none}
.ir-row:hover{background:var(--gold-soft)}
.ir-row.me{background:rgba(217,178,106,.1)}
.ir-no{flex:0 0 24px;font-size:13px;font-weight:800;color:var(--muted-2);text-align:center}
.ir-no.ir-top1{color:#d4a017}.ir-no.ir-top2{color:#9aa2b1}.ir-no.ir-top3{color:#b87333}
.ir-row .cm-ava,.ir-row img{width:32px;height:32px;border-radius:999px;flex:0 0 32px}
.ir-row b{font-size:13.6px;color:var(--text);flex:1}
.ir-badge{font-size:11.6px;color:var(--gold-deep);background:var(--gold-soft);border-radius:999px;padding:3px 10px}
.ir-c{font-size:12.6px;color:var(--muted)}
.ir-c b{color:var(--gold-deep);font-size:15px;flex:none}
.inv-empty{padding:26px 16px;text-align:center;font-size:13.4px;color:var(--muted-2)}

/* 海报下载行 / 裂变漏斗 / 里程碑 */
.inv-poster-row{display:flex;align-items:center;gap:12px;padding:12px 16px 16px;border-top:1px dashed var(--line-2);flex-wrap:wrap}
.inv-poster-row span{font-size:12.4px;color:var(--muted-2)}
.funnel{display:flex;align-items:center;gap:8px;padding:14px 16px 6px;flex-wrap:wrap}
.fn-stage{flex:1;min-width:110px;text-align:center;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:14px;padding:14px 10px;transition:all .15s var(--ease)}
.fn-stage b{display:block;font-size:26px;color:var(--gold-deep);line-height:1.1}
.fn-stage span{font-size:12.2px;color:var(--muted-2)}
.fn-arrow{font-style:normal;font-size:11.8px;color:var(--gold);font-weight:800;flex:0 0 auto;
  display:flex;align-items:center;gap:3px}
.inv-boost{margin:6px 16px;display:flex;align-items:center;gap:7px;background:linear-gradient(120deg,rgba(217,178,106,.2),rgba(143,150,216,.14));
  border:1px solid rgba(217,178,106,.5);border-radius:11px;padding:9px 13px;font-size:12.8px;color:var(--gold-deep);font-weight:700}
.inv-milestones{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px 16px}
.im-item{display:inline-flex;align-items:center;gap:6px;font-size:11.8px;color:var(--muted-2);
  border:1px solid var(--line-2);border-radius:999px;padding:4px 12px 4px 5px}
.im-item i{font-style:normal;width:20px;height:20px;border-radius:99px;background:#eee9dc;color:var(--muted-2);
  font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center}
.im-item.got{border-color:rgba(217,178,106,.55);color:var(--gold-deep);background:var(--gold-soft)}
.im-item.got i{background:linear-gradient(140deg,var(--gold),#c39a52);color:#fff}

/* ========== v2.9 整体体验升级 ========== */
/* 选中文字 / 滚动条 / 焦点 */
::selection{background:rgba(217,178,106,.4);color:inherit}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}

/* 主题切换按钮 */
.nav-theme{width:30px;height:30px;border-radius:10px;border:1px solid var(--line);display:flex;align-items:center;
  justify-content:center;cursor:pointer;background:var(--card);color:var(--gold-deep);font-size:14px;line-height:1;
  transition:all .15s var(--ease);margin-right:4px;flex:0 0 30px;padding:0}
.nav-theme:hover{background:var(--gold-soft);border-color:var(--gold);transform:translateY(-1px)}
[data-theme="dark"] .nav-theme{background:rgba(255,255,255,.06);border-color:var(--line);color:var(--gold-2)}

/* 按钮扫光 */
.btn-gold{position:relative;overflow:hidden}
.btn-gold::after{content:"";position:absolute;top:0;left:-80%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);transition:none;pointer-events:none}
.btn-gold:hover::after{animation:btnShine .7s var(--ease)}
@keyframes btnShine{to{left:130%}}

/* Hero 光晕呼吸 */
.hero-glow{animation:glowPulse 9s ease-in-out infinite}
@keyframes glowPulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}
@media (prefers-reduced-motion: reduce){
  .hero-glow{animation:none}
  .anim .card,.anim .feat-card,.anim .step-card,.anim .stage-row{transition:none}
}

/* 页面加载进度条 */
.pbar{position:fixed;top:0;left:0;height:2.5px;width:0;z-index:999;
  background:linear-gradient(90deg,var(--gold),var(--gold-2));border-radius:0 99px 99px 0;
  box-shadow:0 0 12px rgba(217,178,106,.8);pointer-events:none;
  transition:width .3s var(--ease),opacity .4s var(--ease)}
.pbar.done{opacity:0}

/* 数字滚动 */
.num-roll{font-variant-numeric:tabular-nums}

/* Ctrl+K 命令面板 */
.cmdk-mask{position:fixed;inset:0;background:rgba(10,14,26,.55);backdrop-filter:blur(3px);z-index:950;
  display:flex;justify-content:center;padding-top:12vh;opacity:0;transition:opacity .18s var(--ease);pointer-events:none}
.cmdk-mask.show{opacity:1;pointer-events:auto}
.cmdk{width:min(560px,92vw);height:fit-content;max-height:64vh;background:var(--card);border:1px solid var(--line);
  border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;
  transform:translateY(10px) scale(.98);transition:transform .18s var(--ease)}
.cmdk-mask.show .cmdk{transform:none}
.cmdk-input{width:100%;border:none;border-bottom:1px solid var(--line-2);background:transparent;
  padding:16px 20px;font-size:15.5px;font-family:inherit;color:var(--text)}
.cmdk-input:focus{outline:none}
.cmdk-list{overflow-y:auto;padding:8px}
.cmdk-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:11px;cursor:pointer}
.cmdk-item b{font-size:14px;color:var(--text);flex:0 0 auto}
.cmdk-item span{font-size:12.2px;color:var(--muted-2);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-item .ck{font-size:10.5px;color:var(--gold-deep);background:var(--gold-soft);border-radius:6px;padding:2px 7px;flex:0 0 auto}
.cmdk-item.sel{background:var(--gold-soft)}
.cmdk-item.sel b{color:var(--gold-deep)}
.cmdk-empty{padding:26px;text-align:center;font-size:13.2px;color:var(--muted-2)}
.cmdk-hint{display:flex;gap:14px;padding:9px 16px;border-top:1px solid var(--line-2);font-size:11.4px;color:var(--muted-2)}
.cmdk-hint kbd{background:var(--bg-soft);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-family:inherit;font-size:10.5px}
[data-theme="dark"] .cmdk-mask{background:rgba(0,0,0,.6)}

@media (max-width:860px){
  .cmdk-mask{padding-top:6vh}
}

@media (max-width:860px){
  .inv-grid{grid-template-columns:1fr}
  .inv-link-row{flex-direction:column}
  .ir-badge{display:none}
}

/* ========== AI 助手升级：陪练步骤条 / 统计 / 自检器 ========== */
.coach-track{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:14px 16px 6px}
.ct-step{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0}
.ct-dot{width:26px;height:26px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-style:normal;font-size:12px;font-weight:800;color:var(--muted-2);background:var(--bg-soft);border:1px solid var(--line-2)}
.ct-step em{font-style:normal;font-size:10.6px;color:var(--muted-2);line-height:1.4;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-step.done .ct-dot{background:var(--gold-soft);border-color:rgba(217,178,106,.5);color:var(--gold-deep)}
.ct-step.done em{color:var(--gold-deep)}
.ct-step.now .ct-dot{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 0 4px rgba(217,178,106,.22)}
.ct-step.now em{color:var(--text-2);font-weight:700}
.coach-mini{display:flex;flex-wrap:wrap;gap:7px;padding:4px 16px 12px}
.cm-chip{font-size:11.6px;font-weight:700;border-radius:999px;padding:4px 12px;background:var(--bg-soft);color:var(--muted-2)}
.cm-chip.ok{background:rgba(129,178,154,.16);color:#4d7a63}
.cm-chip.hint{background:rgba(143,150,216,.16);color:#5c639b}
.cm-chip.skip{background:rgba(224,122,95,.14);color:#a85a44}
.cm-chip.redo{background:rgba(217,178,106,.18);color:var(--gold-deep)}
.cm-chip.ind{background:#2d3142;color:#e6c1dd}
.cm-chip.ind.hi{background:var(--gold);color:#fff}
.cs-ind{font-size:11px;font-style:normal;margin-top:3px;color:#a85a44;font-weight:700}
.cs-ind.mid{color:var(--gold-deep)}
.cs-ind.hi{color:#4d7a63}
.cs-del{position:absolute;top:10px;right:10px;display:none}
.cs-list li{position:relative}
.cs-list li:hover .cs-del{display:block}
.cs-del button{border:none;background:rgba(224,122,95,.12);color:#a85a44;border-radius:8px;
  width:22px;height:22px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cb-sys.lv-pass{background:rgba(129,178,154,.13);color:#3f6a55}
.cb-sys.lv-partial{background:rgba(217,178,106,.16);color:var(--gold-deep)}
.cb-sys.lv-redo{background:rgba(224,122,95,.12);color:#a85a44}

/* 症状自检器 */
.tg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;padding:14px 16px 4px}
.tg-grid label{display:flex;align-items:center;gap:8px;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:10px;padding:9px 12px;cursor:pointer;transition:all .15s var(--ease);font-size:12.8px;color:var(--text-2)}
.tg-grid label:hover{border-color:rgba(217,178,106,.5)}
.tg-grid input{accent-color:var(--gold);flex:0 0 auto}
.tg-grid label:has(input:checked){background:var(--gold-soft);border-color:rgba(217,178,106,.55);font-weight:700}
.tg-result{margin:10px 16px 16px;border-radius:12px;background:#2d3142;color:#e8e6df;padding:16px 18px;
  display:flex;flex-direction:column;gap:8px}
.tg-result .tg-idle{font-size:13px;color:#aeb1bd}
.tg-result b{font-size:15px}
.tg-result b i{font-style:normal;color:#e6c1dd}
.tg-result span{font-size:13px;line-height:1.8;color:#cfd2da}
.tg-result em{font-style:normal;font-size:12px;color:#9aa0b5}
.tg-result .btn{align-self:flex-start;margin-top:4px}
.err-card.tg-hit{border-color:rgba(217,178,106,.6);box-shadow:0 4px 18px rgba(217,178,106,.16)}
.en-chip.tg-hit{background:var(--gold);color:#fff}

/* 考场急救 */
.ec-quick{margin:0 16px 16px;border-top:1px dashed var(--line);padding-top:12px}
.ec-quick b{font-size:12.8px;color:#a85a44;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.ec-quick ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.ec-quick li{display:flex;align-items:flex-start;gap:8px;font-size:12.8px;color:var(--text-2)}
.ec-quick li svg{color:#a85a44;flex:0 0 auto;margin-top:2px}

/* ========== 体检健康分 / 错误画像 ========== */
.scan-health{display:flex;align-items:center;gap:18px;padding:16px;flex-wrap:wrap}
.sh-score{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 92px;
  width:92px;height:92px;border-radius:50%;border:5px solid var(--line);background:var(--bg-soft)}
.sh-score b{font-size:27px;line-height:1;font-weight:800}
.sh-score span{font-size:11px;color:var(--muted-2);margin-top:3px}
.sh-score.hi{border-color:#81b29a}.sh-score.hi b{color:#4d7a63}
.sh-score.mid{border-color:#d9b26a}.sh-score.mid b{color:var(--gold-deep)}
.sh-score.low{border-color:#e0a06b}.sh-score.low b{color:#b0732c}
.sh-score.bad{border-color:#e07a5f}.sh-score.bad b{color:#c0502f}
.sh-detail{flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px}
.sh-grade{align-self:flex-start;font-style:normal;font-size:13.4px;font-weight:800;border-radius:999px;padding:4px 14px}
.sh-grade.hi{background:rgba(129,178,154,.18);color:#4d7a63}
.sh-grade.mid{background:rgba(217,178,106,.2);color:var(--gold-deep)}
.sh-grade.low{background:rgba(224,160,107,.2);color:#b0732c}
.sh-grade.bad{background:rgba(224,122,95,.18);color:#c0502f}
.sh-detail p{font-size:13.2px;color:var(--text-2);line-height:1.75;margin:0}
.sh-bars{display:flex;gap:8px;flex-wrap:wrap}
.sh-bar{font-size:12px;font-weight:700;border-radius:999px;padding:4px 12px;background:var(--bg-soft);color:var(--muted-2)}
.sh-bar.bad.on{background:rgba(224,122,95,.16);color:#c0502f}
.sh-bar.mid.on{background:rgba(217,178,106,.2);color:var(--gold-deep)}
.sh-bar.low.on{background:var(--bg-soft);color:var(--muted)}

/* 错误画像（启发教练） */
.ep-bars{display:flex;flex-direction:column;gap:9px;padding:14px 16px 4px}
.ep-row{display:grid;grid-template-columns:110px 1fr 56px;align-items:center;gap:12px}
.ep-name{font-size:12.6px;color:var(--muted);text-align:right}
.ep-row.cur .ep-name{color:var(--gold-deep);font-weight:800}
.ep-track{height:10px;border-radius:999px;background:var(--bg-soft);overflow:hidden}
.ep-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#e8cf9a,#d9b26a)}
.ep-row.cur .ep-track i{background:linear-gradient(90deg,#d9b26a,#b0812c)}
.ep-n{font-size:12px;color:var(--muted-2)}

@media (max-width:960px){
  .chat-shell{grid-template-columns:1fr}
  .chat-side,.chat-side2{order:2}
  .chat-main{order:1;height:56vh;min-height:420px}
  .up-stats4{grid-template-columns:repeat(3,1fr)}
  .up-badges{grid-template-columns:repeat(2,1fr)}
}

/* ========== v2.9.2 一对一陪练 · 美化与体验升级 ========== */
/* 聊天气泡：差异化圆角 + 渐变 + 入场动画 */
@keyframes bubIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cb-row{animation:bubIn .34s var(--ease) both}
.cb-ava{
  background:linear-gradient(135deg,rgba(143,150,216,.22),rgba(31,26,16,.06));
  border:1px solid rgba(143,150,216,.25);transition:transform .2s var(--ease);
}
.cb-row.coach:hover .cb-ava{transform:rotate(-6deg) scale(1.08)}
.cb-row.me .cb-ava{
  background:linear-gradient(135deg,rgba(217,178,106,.34),rgba(217,178,106,.14));
  border-color:rgba(217,178,106,.4);
}
.cb-bub{
  border-radius:16px 16px 16px 6px;box-shadow:0 1px 2px rgba(31,26,16,.04);
  transition:box-shadow .2s var(--ease),transform .2s var(--ease);
}
.cb-row.me .cb-bub{
  border-radius:16px 16px 6px 16px;
  background:linear-gradient(135deg,rgba(217,178,106,.22),rgba(217,178,106,.1));
}
.cb-bub:hover{box-shadow:0 4px 14px rgba(31,26,16,.08)}
.cb-bub i{letter-spacing:.3px}
/* 系统分层提示：分级配色 */
.cb-sys{background:linear-gradient(90deg,rgba(217,178,106,.1),rgba(217,178,106,.04));border-color:rgba(217,178,106,.34);color:var(--gold-deep);font-weight:600}
.cb-sys.lv-1,.cb-sys.lv-2{border-color:rgba(143,150,216,.4);color:#5c639b;background:linear-gradient(90deg,rgba(143,150,216,.1),rgba(143,150,216,.03))}
.cb-sys.lv-5{border-color:rgba(224,122,95,.36);color:#a85a44;background:linear-gradient(90deg,rgba(224,122,95,.1),rgba(224,122,95,.03))}
/* 步骤条：呼吸灯 + hover 反馈 */
@keyframes ctPulse{0%,100%{box-shadow:0 0 0 4px rgba(217,178,106,.22)}50%{box-shadow:0 0 0 7px rgba(217,178,106,.1)}}
.ct-step.now .ct-dot{animation:ctPulse 2s var(--ease) infinite}
.ct-step{padding:4px 2px;border-radius:10px;transition:background .18s var(--ease)}
.ct-step:hover{background:var(--bg-soft)}
.ct-step.done em{font-weight:600}
/* 历史会话列表：悬浮抬升 + 当前项金条 */
@keyframes listIn{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
.cs-list li{animation:listIn .3s var(--ease) both}
.cs-list li:nth-child(2){animation-delay:.04s}
.cs-list li:nth-child(3){animation-delay:.08s}
.cs-list li:nth-child(4){animation-delay:.12s}
.cs-list li:nth-child(5){animation-delay:.16s}
.cs-list a{position:relative;transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.cs-list li:hover a{transform:translateX(2px)}
.cs-list a.on::before{content:'';position:absolute;left:-1px;top:8px;bottom:8px;width:3px;border-radius:99px;background:var(--gold)}
/* 输入区：卡片化 + 聚焦光晕 + 字数 */
.coach-input{margin-top:16px;padding:14px;border:1px solid var(--line-2);border-radius:16px;background:var(--card);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.coach-input:focus-within{border-color:rgba(217,178,106,.55);box-shadow:0 0 0 4px rgba(217,178,106,.12)}
.coach-input textarea{border:none;background:transparent;padding:4px 6px;resize:vertical}
.coach-input textarea:focus{box-shadow:none}
.ci-meta{display:flex;align-items:center;gap:10px;margin-top:8px}
.ci-count{font-size:11.6px;color:var(--muted-2);margin-left:auto;font-variant-numeric:tabular-nums;transition:color .2s}
.ci-count.warn{color:#a8761c}
.ci-keys{font-size:11.4px;color:var(--muted-2);display:inline-flex;align-items:center;gap:4px}
.ci-keys kbd{background:var(--bg-soft);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;
  font-family:inherit;font-size:10.6px;color:var(--muted)}
.ci-draft{font-size:11.4px;color:var(--ok);display:none}
.ci-draft.show{display:inline}
.ci-foot{margin-top:10px}
.ci-foot .btn{transition:transform .16s var(--ease),box-shadow .16s var(--ease)}
.ci-foot .btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(217,178,106,.25)}
/* 空态：七层流程预览 */
.coach-stages{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:16px auto 6px;max-width:560px}
.ostage{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 2px 7px;border-radius:11px;
  background:var(--bg-soft);border:1px solid var(--line-2);transition:transform .18s var(--ease),border-color .18s var(--ease)}
.ostage:hover{transform:translateY(-3px);border-color:rgba(217,178,106,.5)}
.ostage i{font-style:normal;font-size:10.4px;font-weight:800;color:var(--gold-deep);
  background:rgba(217,178,106,.16);border-radius:99px;padding:1px 8px}
.ostage b{font-size:11px;color:var(--text-2);line-height:1.35;text-align:center}
.coach-empty{padding:30px 10px 34px}
.coach-empty .ico-xl{animation:floaty 3.2s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media (max-width:760px){.coach-stages{grid-template-columns:repeat(4,1fr)}}

/* ========== v2.9.2 注册 / 登录 · 美化与体验升级 ========== */
/* 卡片：顶部金色饰带 + 入场 */
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.auth-card{position:relative;overflow:hidden;animation:cardIn .4s var(--ease) both}
.auth-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--gold),#f0d9a8 45%,rgba(217,178,106,.2))}
.auth-card .card-head{padding-bottom:14px;border-bottom:1px dashed var(--line);margin-bottom:18px}
.auth-card .field input{transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.auth-card .field input:focus{border-color:rgba(217,178,106,.6);box-shadow:0 0 0 4px rgba(217,178,106,.13)}
/* 密码可见切换 */
.pw-field{position:relative}
.pw-eye{position:absolute;right:9px;top:50%;transform:translateY(-50%);border:none;background:transparent;
  width:30px;height:30px;border-radius:9px;cursor:pointer;color:var(--muted-2);
  display:flex;align-items:center;justify-content:center;font-size:15px;transition:all .18s var(--ease)}
.pw-eye:hover{background:var(--bg-soft);color:var(--gold-deep)}
/* 校验提示行 */
.auth-tip{display:flex;align-items:center;gap:6px;font-size:11.8px;margin-top:6px;min-height:16px;color:var(--muted-2)}
.auth-tip::before{content:'●';font-size:8px;color:var(--line-2)}
.auth-tip.ok{color:var(--ok)}.auth-tip.ok::before{color:var(--ok)}
.auth-tip.bad{color:var(--no)}.auth-tip.bad::before{color:var(--no)}
.auth-tip.warn{color:#a8761c}.auth-tip.warn::before{color:#a8761c}
/* 提交按钮：hover 抬升 + 提交中态 */
.auth-card .btn-lg{transition:transform .16s var(--ease),box-shadow .16s var(--ease),opacity .2s}
.auth-card .btn-lg:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(217,178,106,.35)}
.auth-card .btn-lg:active{transform:translateY(0)}
.auth-card .btn-lg.busy{opacity:.75;pointer-events:none}
/* 右侧卖点卡：错落入场 + hover 抬升 */
.auth-side .tip-card{animation:cardIn .45s var(--ease) both;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.auth-side .tip-card:nth-child(2){animation-delay:.08s}
.auth-side .tip-card:nth-child(3){animation-delay:.16s}
.auth-side .tip-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(31,26,16,.1)}
.auth-side .tip-card .ico-sm{background:rgba(217,178,106,.14);border-radius:10px;padding:5px}
/* 邀请横幅微光 */
@keyframes refGlow{0%,100%{box-shadow:0 0 0 0 rgba(217,178,106,.25)}50%{box-shadow:0 0 0 6px rgba(217,178,106,0)}}
.ref-banner{animation:refGlow 2.4s var(--ease) infinite}
/* 暗色模式补充 */
[data-theme="dark"] .cb-sys{background:linear-gradient(90deg,rgba(217,178,106,.12),rgba(217,178,106,.04))}
[data-theme="dark"] .ci-keys kbd{background:#1d2333;border-color:#2c3448}
[data-theme="dark"] .ostage{background:#141a2b;border-color:#2c3448}
[data-theme="dark"] .auth-side .tip-card:hover{box-shadow:0 10px 26px rgba(0,0,0,.4)}

/* ========== v2.9.3 Bug 修复 + 陪练/登录功能升级 ========== */
/* 修复：ico-xl 从未定义尺寸导致空态图标巨大化撑爆卡片 */
.ico-xl{width:58px;height:58px;flex:0 0 58px}
/* 修复：auth-tip 空态显示孤点 */
.auth-tip:empty{display:none}
.auth-tip{min-height:0}
/* 修复：眼睛按钮遮挡输入内容 */
.pw-field input{padding-right:42px}
/* 陪练工具条：导出 / 复制全部 */
.coach-tools{display:flex;justify-content:flex-end;gap:8px;padding:2px 0 10px}
.ct-btn{font-size:12px;font-weight:700;color:var(--muted);background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:9px;padding:5px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;
  transition:color .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}
.ct-btn:hover{color:var(--gold-deep);border-color:rgba(217,178,106,.5);background:rgba(217,178,106,.08)}
/* 历史会话搜索 */
.cs-search{position:relative;margin-top:10px}
.cs-search input{width:100%;font-size:12.8px;padding:8px 12px 8px 32px;border-radius:10px;
  border:1px solid var(--line-2);background:var(--bg-soft);color:var(--text);transition:border-color .2s,box-shadow .2s}
.cs-search input:focus{outline:none;border-color:rgba(217,178,106,.55);box-shadow:0 0 0 3px rgba(217,178,106,.12)}
.cs-search::before{content:'⌕';position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted-2);font-size:15px;pointer-events:none}
.cs-list li.hidden{display:none}
.cs-empty{font-size:12.4px;color:var(--muted-2);text-align:center;padding:10px 0 4px;display:none}
.cs-empty.show{display:block}
/* 消息悬浮复制 */
.cb-bub{position:relative}
.cb-copy{position:absolute;top:-9px;right:8px;opacity:0;border:1px solid var(--line-2);background:var(--card);
  border-radius:8px;font-size:10.6px;font-weight:700;padding:2px 9px;cursor:pointer;color:var(--muted);
  transition:opacity .16s var(--ease),color .16s,border-color .16s;box-shadow:0 2px 8px rgba(31,26,16,.08)}
.cb-row:hover .cb-copy,.cb-copy:focus{opacity:1}
.cb-copy:hover{color:var(--gold-deep);border-color:rgba(217,178,106,.5)}
.cb-copy.ok{color:var(--ok);border-color:rgba(31,143,99,.4)}
/* Caps Lock 提示 */
.caps-warn{color:#a8761c}
/* textarea 自适应增高 */
#coachSay{min-height:64px;max-height:220px;overflow:hidden}

/* ========== v2.9.4 登录 / 注册输入框精致化 ========== */
/* 带图标的输入框 */
.fi-box{position:relative;display:flex;align-items:center}
.fi-ico{position:absolute;left:13px;display:flex;align-items:center;color:var(--muted-2);
  pointer-events:none;transition:color .2s var(--ease),transform .2s var(--ease)}
.fi-box input{padding-left:42px}
.fi-box:focus-within .fi-ico{color:var(--gold-deep);transform:scale(1.12)}
/* 登录注册卡内输入框：更大更柔和 */
.auth-card .field input{
  padding-top:12px;padding-bottom:12px;border-radius:12px;
  border-color:var(--line-2);background:var(--bg-soft);
  box-shadow:inset 0 1px 2px rgba(31,26,16,.04);
}
.auth-card .field input:hover{border-color:#c9bfa8}
.auth-card .field input:focus{
  border-color:var(--gold);background:var(--card);
  box-shadow:0 0 0 4px rgba(217,178,106,.14),inset 0 1px 2px rgba(31,26,16,.02);
}
.auth-card .field:focus-within>label{color:var(--gold-deep)}
.auth-card .field>label{transition:color .2s var(--ease);letter-spacing:.2px}
/* 眼睛按钮：定位到输入框内、更精致 */
.pw-field .pw-eye{right:8px;width:32px;height:32px;border-radius:9px;font-size:14px}
/* 记住我：自定义金色复选框 */
.pw-remember{user-select:none}
.pw-remember input{
  appearance:none;-webkit-appearance:none;width:17px;height:17px;border:1.5px solid var(--line-2);
  border-radius:6px;background:var(--card);position:relative;cursor:pointer;
  transition:all .18s var(--ease);flex:0 0 17px;
}
.pw-remember input:hover{border-color:var(--gold)}
.pw-remember input:checked{background:var(--gold);border-color:var(--gold)}
.pw-remember input:checked::after{
  content:'';position:absolute;left:4.5px;top:1.5px;width:5px;height:9px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(43deg);
}
.pw-remember input:checked~span{color:var(--text-2)}
.pw-remember span{transition:color .2s var(--ease)}
/* 卡片头图标徽标化 */
.auth-card .card-head>b{display:flex;align-items:center;gap:8px}
.auth-card .card-head>b .ico-sm{
  background:linear-gradient(135deg,rgba(217,178,106,.2),rgba(217,178,106,.08));
  border-radius:9px;padding:5px;width:24px;height:24px;flex:0 0 24px;color:var(--gold-deep);
}
/* 强度条更精致 */
.pw-meter{height:7px;border-radius:99px;background:rgba(31,26,16,.07);overflow:hidden;margin-top:9px;
  box-shadow:inset 0 1px 1px rgba(31,26,16,.05);opacity:0;transition:opacity .25s var(--ease)}
.pw-meter.live{opacity:1}
[data-theme="dark"] .auth-card .field input{box-shadow:inset 0 1px 2px rgba(0,0,0,.25)}
[data-theme="dark"] .pw-meter{background:rgba(255,255,255,.07)}

/* ========== v2.9.6 个人主页 + 登录注册 · 动效升级 ========== */
/* 主页封面：更高更大气 + 光斑漂移动画 */
@keyframes coverDrift{0%,100%{transform:translateX(0)}50%{transform:translateX(6%)}}
.up-cover{height:96px}
.up-cover::after{animation:coverDrift 9s ease-in-out infinite}
/* 头像：双层金环光环 */
.up-ava{box-shadow:0 0 0 3px var(--card),0 0 0 5px rgba(217,178,106,.45),0 6px 18px rgba(17,26,46,.18)}
/* 主页卡片错落入场 */
@keyframes cardIn2{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.main-wrap>.card{animation:cardIn2 .45s var(--ease) both}
.main-wrap>.card:nth-child(2){animation-delay:.07s}
.main-wrap>.card:nth-child(3){animation-delay:.14s}
.main-wrap>.dash-two{animation:cardIn2 .45s var(--ease) .2s both}
/* 统计格：悬浮抬升 + 数字变金 */
.up-stats4>div{border-radius:12px;padding:4px 6px;transition:transform .18s var(--ease),background .18s var(--ease)}
.up-stats4>div:hover{transform:translateY(-3px);background:rgba(217,178,106,.07)}
.up-stats4>div b{transition:color .2s var(--ease)}
.up-stats4>div:hover b{color:var(--gold-deep)}
/* 热力图格子：悬浮放大 */
.heat-map i{position:relative;border-radius:3px;transition:transform .15s var(--ease)}
.heat-map i:hover{transform:scale(1.4);z-index:2;box-shadow:0 3px 10px rgba(31,26,16,.22)}
/* 已解锁勋章：周期性扫光 */
.bg-item.got{position:relative;overflow:hidden}
.bg-item.got::after{
  content:'';position:absolute;top:0;left:-80%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.4),transparent);
  animation:badgeShine 3.8s var(--ease) infinite;
}
@keyframes badgeShine{0%,55%{left:-80%}100%{left:135%}}
/* 复盘 / 发言列表：悬浮平移 */
.up-logs li,.up-chats li{transition:transform .16s var(--ease),border-color .16s var(--ease)}
.up-logs li:hover,.up-chats li:hover{transform:translateX(4px);border-color:rgba(217,178,106,.45)}
/* 登录注册：金色按钮流光扫过 */
.auth-card .btn-gold{position:relative;overflow:hidden}
.auth-card .btn-gold::after{
  content:'';position:absolute;top:0;left:-90%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);
}
.auth-card .btn-gold:hover::after{animation:btnShine .85s var(--ease)}
@keyframes btnShine{to{left:140%}}
/* 卖点卡：图标悬浮弹跳 */
.auth-side .tip-card .ico-sm{transition:transform .2s var(--ease)}
.auth-side .tip-card:hover .ico-sm{animation:icoPop .5s var(--ease)}
@keyframes icoPop{0%{transform:scale(1)}40%{transform:scale(1.28) rotate(-8deg)}100%{transform:scale(1)}}
/* 暗色补充 */
[data-theme="dark"] .up-stats4>div:hover{background:rgba(217,178,106,.1)}

/* ========== v2.9.7 主页分享链接修复 ========== */
.up-share-note{display:block;font-style:normal;font-size:11.4px;color:var(--muted-2);margin-top:5px;line-height:1.6}

/* ========== v2.10.0 个人主页豪华版 ========== */
/* 头部摘要 chips */
.up-hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.up-hero-chips .chip{display:inline-flex;align-items:center;gap:5px}
/* 获奖墙：金色渐变荣誉卡 */
.pf-award-card{background:linear-gradient(160deg,rgba(217,178,106,.08),var(--card) 55%)}
.pf-awards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:6px 0 2px}
.pf-award{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,rgba(217,178,106,.16),rgba(217,178,106,.04));
  border:1px solid rgba(217,178,106,.34);border-radius:14px;padding:13px 15px;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease);position:relative;overflow:hidden}
.pf-award::after{content:'';position:absolute;top:0;left:-80%;width:45%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.35),transparent);
  animation:badgeShine 4.2s var(--ease) infinite}
.pf-award:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(217,178,106,.25)}
.pf-award:nth-child(2)::after{animation-delay:1.2s}
.pf-award:nth-child(3)::after{animation-delay:2.4s}
.pf-award-cup{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--gold),#c39a52);
  color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 38px;
  box-shadow:0 4px 12px rgba(195,154,82,.4)}
.pf-award-cup .ico{width:19px;height:19px;flex:0 0 19px}
.pf-award-info{min-width:0}
.pf-award-info b{display:block;font-size:14px;color:var(--text);margin-bottom:3px;line-height:1.4}
.pf-award-info span{display:flex;align-items:center;gap:7px}
.pf-year{font-style:normal;font-size:11.4px;font-weight:800;color:var(--gold-deep);background:rgba(217,178,106,.16);
  border-radius:6px;padding:1px 7px}
.pf-rank{font-style:normal;font-size:12px;font-weight:700;color:#b0732c}
/* 独家资料 */
.pf-docs{display:flex;flex-direction:column;gap:10px;padding:4px 0 2px}
.pf-doc{border:1px solid var(--line-2);border-radius:13px;background:var(--bg-soft);overflow:hidden;
  transition:border-color .18s var(--ease)}
.pf-doc:hover{border-color:rgba(217,178,106,.4)}
.pf-doc[open]{border-color:rgba(217,178,106,.5);background:var(--card)}
.pf-doc summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;
  cursor:pointer;list-style:none;user-select:none}
.pf-doc summary::-webkit-details-marker{display:none}
.pf-doc summary::before{content:'▸';color:var(--gold-deep);font-size:13px;transition:transform .2s var(--ease);flex:0 0 auto}
.pf-doc[open] summary::before{transform:rotate(90deg)}
.pf-doc summary b{flex:1;min-width:0;font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-doc-meta{font-size:11.6px;color:var(--muted-2);flex:0 0 auto}
.pf-doc-body{padding:2px 18px 15px;font-size:13.6px;color:var(--text-2);line-height:2;white-space:pre-wrap;
  border-top:1px dashed var(--line);padding-top:12px;margin:0 0 0 0}
/* 加密解锁表单 */
.pf-unlock{padding:4px 18px 16px;border-top:1px dashed var(--line)}
.pf-lock-tip{display:flex;align-items:center;gap:7px;font-size:12.6px;color:var(--muted);margin:11px 0 9px}
.pf-unlock-row{display:flex;gap:9px}
.pf-unlock-row input{flex:1;min-width:0}
/* 相册 */
.pf-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;padding:4px 0 2px}
.pf-photo{margin:0;position:relative;border-radius:13px;overflow:hidden;border:1px solid var(--line-2);
  aspect-ratio:4/3;background:var(--bg-soft);cursor:zoom-in;transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.pf-photo:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 10px 24px rgba(31,26,16,.16)}
.pf-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s var(--ease)}
.pf-photo:hover img{transform:scale(1.06)}
.pf-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 11px 8px;font-size:12px;color:#fff;
  background:linear-gradient(transparent,rgba(17,26,46,.72));pointer-events:none}
/* 灯箱 */
.pf-lightbox{position:fixed;inset:0;z-index:999;background:rgba(13,17,28,.9);backdrop-filter:blur(6px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  opacity:0;pointer-events:none;transition:opacity .22s var(--ease);cursor:zoom-out;padding:5vh 5vw}
.pf-lightbox.show{opacity:1;pointer-events:auto}
.pf-lightbox img{max-width:92vw;max-height:82vh;border-radius:14px;box-shadow:0 24px 80px rgba(0,0,0,.55);
  animation:bubIn .3s var(--ease)}
.pf-lightbox-cap{font-size:13.4px;color:rgba(255,255,255,.85)}
/* 编辑页 */
.pf-order{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:7px}
.pf-order li{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-soft);
  border:1px solid var(--line-2);border-radius:11px;padding:9px 9px 9px 15px;transition:opacity .2s}
.pf-order li.off{opacity:.5}
.pf-order li b{font-size:13.4px;color:var(--text-2)}
.pf-order-btns form{display:flex;gap:5px}
.pf-order-btns button{width:29px;height:29px;border-radius:8px;border:1px solid var(--line-2);background:var(--card);
  color:var(--muted);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;
  transition:all .15s var(--ease)}
.pf-order-btns button:hover:not(:disabled){border-color:rgba(217,178,106,.5);color:var(--gold-deep);background:rgba(217,178,106,.08)}
.pf-order-btns button:disabled{opacity:.35;cursor:default}
.pf-form{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.pf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.pf-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg-soft);
  border:1px solid var(--line-2);border-radius:11px;padding:9px 13px}
.pf-list li b{font-size:13.2px;color:var(--text-2);display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
.pf-list li b em{font-style:normal;font-size:11.4px;color:var(--gold-deep);background:rgba(217,178,106,.15);
  border-radius:6px;padding:1px 7px}
.pf-tag{font-style:normal;font-size:11.2px;color:var(--muted-2);font-weight:400}
.pf-list form button{border:none;background:rgba(224,122,95,.12);color:#a85a44;border-radius:8px;width:24px;height:24px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;flex:0 0 24px}
.pf-list form button:hover{background:rgba(224,122,95,.22)}
.pf-photo-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:6px}
.pf-photo-cell{position:relative;border-radius:11px;overflow:hidden;border:1px solid var(--line-2);aspect-ratio:4/3}
.pf-photo-cell img{width:100%;height:100%;object-fit:cover;display:block}
.pf-photo-cell span{position:absolute;left:0;right:0;bottom:0;padding:16px 9px 6px;font-size:11.4px;color:#fff;
  background:linear-gradient(transparent,rgba(17,26,46,.75))}
.pf-photo-cell form{position:absolute;top:6px;right:6px}
.pf-photo-cell form button{border:none;background:rgba(224,122,95,.85);color:#fff;border-radius:8px;width:24px;height:24px;
  cursor:pointer;display:flex;align-items:center;justify-content:center}
/* 暗色模式 */
[data-theme="dark"] .pf-award{background:linear-gradient(135deg,rgba(217,178,106,.14),rgba(217,178,106,.03))}
[data-theme="dark"] .pf-doc{background:#141a2b;border-color:#2c3448}
[data-theme="dark"] .pf-doc[open]{background:#182036}
[data-theme="dark"] .pf-photo{background:#141a2b}
@media (max-width:760px){
  .pf-awards{grid-template-columns:1fr}
  .pf-gallery{grid-template-columns:repeat(2,1fr)}
  .pf-unlock-row{flex-direction:column}
}

/* ========== v2.11.0 资料专栏化 + 相册批量上传 ========== */
/* 分类 Tab */
.pf-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:2px 0 14px;border-bottom:1px dashed var(--line);margin-bottom:12px}
.pf-tabs button{border:1px solid var(--line-2);background:var(--bg-soft);color:var(--muted);border-radius:999px;
  padding:5px 15px;font-size:12.6px;font-weight:700;cursor:pointer;transition:all .16s var(--ease)}
.pf-tabs button:hover{border-color:rgba(217,178,106,.5);color:var(--gold-deep)}
.pf-tabs button.on{background:linear-gradient(135deg,var(--gold),#c39a52);border-color:transparent;color:#fff;
  box-shadow:0 3px 10px rgba(195,154,82,.35)}
/* 新闻式文章列表 */
.pf-news{display:flex;flex-direction:column;gap:9px;padding:2px 0}
.pf-news-item{display:flex;align-items:center;gap:12px;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:13px;padding:13px 16px;text-decoration:none;
  transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}
.pf-news-item:hover{transform:translateX(4px);border-color:rgba(217,178,106,.5);box-shadow:0 6px 16px rgba(31,26,16,.07)}
.pf-news-item.locked{background:repeating-linear-gradient(-45deg,var(--bg-soft),var(--bg-soft) 12px,rgba(217,178,106,.05) 12px,rgba(217,178,106,.05) 24px)}
.pf-news-main{flex:1;min-width:0}
.pf-news-main b{display:block;font-size:14.2px;color:var(--text);margin-bottom:4px;line-height:1.45}
.pf-news-main p{margin:0 0 6px;font-size:12.8px;color:var(--muted);line-height:1.7;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pf-news-meta{display:flex;align-items:center;gap:9px;font-size:11.4px;color:var(--muted-2);flex-wrap:wrap}
.pf-news-cat{font-style:normal;font-weight:700;color:var(--gold-deep);background:rgba(217,178,106,.14);
  border-radius:6px;padding:1px 8px}
.pf-news-meta em{font-style:normal}
.pf-news-arrow{flex:0 0 auto;color:var(--muted-2);transition:transform .16s var(--ease),color .16s}
.pf-news-item:hover .pf-news-arrow{transform:translateX(3px);color:var(--gold-deep)}
/* 文章阅读页 */
.docread{max-width:860px;margin:0 auto;padding:34px 40px 30px}
.docread-head .chip{margin-bottom:14px;display:inline-block}
.docread-head h1{font-size:26px;line-height:1.4;margin:10px 0 14px;color:var(--text)}
.docread-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.6px;color:var(--muted-2);
  padding-bottom:18px;border-bottom:1px solid var(--line)}
.docread-meta a{color:var(--gold-deep);font-weight:700}
.docread-body{padding:24px 4px 10px;font-size:15px;line-height:2.2;color:var(--text-2);white-space:pre-wrap;
  word-break:break-word}
.docread-unlock{border:none;padding:30px 4px}
.docread-foot{margin-top:10px;border-top:1px dashed var(--line);padding-top:16px}
/* 编辑页：分类 chips */
.pf-cats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:14px;border-bottom:1px dashed var(--line)}
.pf-cat{display:inline-flex;align-items:center;gap:4px;background:rgba(217,178,106,.13);border:1px solid rgba(217,178,106,.3);
  color:var(--gold-deep);font-size:12.4px;font-weight:700;border-radius:999px;padding:4px 6px 4px 12px}
.pf-cat form button{border:none;background:transparent;color:inherit;cursor:pointer;font-size:14px;
  width:18px;height:18px;border-radius:99px;display:flex;align-items:center;justify-content:center;line-height:1}
.pf-cat form button:hover{background:rgba(200,86,60,.18);color:#a1442e}
.pf-cat-add{display:inline-flex;align-items:center;gap:7px}
.pf-cat-add input{width:110px;padding:5px 11px;font-size:12.4px;border-radius:999px}
.pf-list-btns{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.pf-mini-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;
  background:var(--bg-soft);border:1px solid var(--line-2);color:var(--muted);text-decoration:none;font-size:12px;
  transition:all .15s var(--ease)}
.pf-mini-btn:hover{border-color:rgba(217,178,106,.5);color:var(--gold-deep)}
/* 拖拽上传区 */
.pf-drop{border:2px dashed var(--line-2);border-radius:14px;background:var(--bg-soft);padding:22px 16px;
  text-align:center;cursor:pointer;transition:all .18s var(--ease);margin-bottom:12px}
.pf-drop:hover,.pf-drop.over{border-color:var(--gold);background:rgba(217,178,106,.08);
  box-shadow:0 0 0 4px rgba(217,178,106,.1)}
.pf-drop b{display:block;font-size:13.6px;color:var(--text-2);margin-bottom:4px}
.pf-drop span{font-size:12px;color:var(--muted-2)}
.pf-up-progress{display:none;font-size:12.6px;color:var(--gold-deep);font-weight:700;
  background:rgba(217,178,106,.1);border-radius:10px;padding:9px 14px;margin-bottom:10px}
.pf-up-progress.on{display:block}
[data-theme="dark"] .pf-news-item{background:#141a2b;border-color:#2c3448}
[data-theme="dark"] .pf-tabs button{background:#141a2b;border-color:#2c3448}
@media (max-width:760px){
  .docread{padding:24px 20px}
  .docread-head h1{font-size:21px}
}

/* ========== v2.12.0 账号中心 · 编辑资料与换头像升级 ========== */
/* 头像区：拖拽落区高亮 */
.acc-ava-row{border:2px dashed transparent;border-radius:16px;transition:all .2s var(--ease)}
.acc-ava-row.over{border-color:var(--gold);background:rgba(217,178,106,.06);box-shadow:0 0 0 4px rgba(217,178,106,.1)}
/* 大头像：金环光环 + 悬浮抬升 */
.acc-ava-cur{position:relative;width:92px;height:92px;flex:0 0 92px;border-radius:26px;font-size:38px;cursor:pointer;
  box-shadow:0 0 0 3px var(--card),0 0 0 5px rgba(217,178,106,.5),0 8px 22px rgba(17,26,46,.16);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.acc-ava-cur:hover{transform:translateY(-2px) scale(1.03);
  box-shadow:0 0 0 3px var(--card),0 0 0 6px rgba(217,178,106,.72),0 12px 28px rgba(17,26,46,.22)}
/* 预览态角标 */
.acc-ava-cur.preview::after{content:'预览';position:absolute;left:50%;bottom:9px;transform:translateX(-50%);
  background:rgba(17,26,46,.85);color:#fff;font-size:10.5px;font-weight:800;border-radius:99px;padding:2px 9px;z-index:3}
/* 旋转虚线金环 */
.acc-ava-ring{position:absolute;inset:-8px;border-radius:32px;border:1.5px dashed rgba(217,178,106,.55);
  opacity:0;transition:opacity .2s var(--ease);pointer-events:none;animation:avaSpin 16s linear infinite}
.acc-ava-cur:hover .acc-ava-ring{opacity:1}
@keyframes avaSpin{to{transform:rotate(360deg)}}
/* 相机角标（点击换图暗示） */
.acc-ava-cam{position:absolute;right:-8px;bottom:-8px;width:30px;height:30px;border-radius:11px;
  background:linear-gradient(135deg,var(--gold),#c39a52);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px rgba(195,154,82,.45);z-index:2;transition:transform .2s var(--ease)}
.acc-ava-cam .ico-sm{width:14px;height:14px;flex:0 0 14px}
.acc-ava-cur:hover .acc-ava-cam{transform:scale(1.12) rotate(-6deg)}
/* 提示与文件信息 */
.acc-ava-side{flex:1;min-width:230px}
.acc-ava-tip{display:flex;align-items:flex-start;gap:7px;font-size:12.6px;color:var(--muted);line-height:1.7;margin:0}
.acc-ava-tip::before{content:'💡';font-size:13px;flex:0 0 auto}
.acc-ava-tip.bad{color:var(--no);font-weight:700}
.acc-ava-tip.bad::before{content:'✕'}
.acc-ava-tip.ok{color:var(--ok);font-weight:700}
.acc-ava-tip.ok::before{content:'✓'}
.acc-ava-meta{font-size:11.6px;color:var(--muted-2);margin:6px 0 0;line-height:1.6;word-break:break-all}
/* emoji 头像选择器：虚线框容器 + 弹跳选中打勾 */
.av-pick{gap:7px;padding:9px;border:1px dashed var(--line-2);border-radius:14px}
.av-item span{position:relative}
.av-item span{transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}
.av-item:hover span{transform:translateY(-3px) scale(1.08)}
.av-item.on span{animation:avPop .35s var(--ease)}
@keyframes avPop{0%{transform:scale(1)}45%{transform:scale(1.28)}100%{transform:scale(1)}}
.av-item.on span::after{content:'✓';position:absolute;right:-5px;top:-5px;width:16px;height:16px;border-radius:99px;
  background:var(--gold);color:#fff;font-size:10px;font-weight:900;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(195,154,82,.5);z-index:2}
/* 封面色块：悬浮放大 */
.cv-sw{transition:transform .16s var(--ease),border-color .16s var(--ease),box-shadow .16s var(--ease)}
.cv-sw:hover{transform:translateY(-2px) scale(1.05)}
/* 比赛倒计时徽章 */
.exam-count{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:11.8px;font-weight:800;
  color:var(--gold-deep);background:rgba(217,178,106,.14);border:1px solid rgba(217,178,106,.32);
  border-radius:999px;padding:2px 11px}
.exam-count.hot{color:#b03a24;background:rgba(224,122,95,.14);border-color:rgba(224,122,95,.4);animation:examPulse 1.6s ease-in-out infinite}
.exam-count.warm{color:#a8761c;background:rgba(217,161,58,.14);border-color:rgba(217,161,58,.4)}
@keyframes examPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
.exam-preview{margin:9px 0 0;font-size:12.8px;color:var(--muted);line-height:1.7}
/* 资料脏检测提示条 */
.pf-dirty{display:none;align-items:center;gap:8px;font-size:12.4px;font-weight:700;color:#a8761c;
  background:rgba(217,161,58,.1);border:1px solid rgba(217,161,58,.3);border-radius:11px;padding:9px 13px;margin:0 0 14px}
.pf-dirty.on{display:flex;animation:cardIn2 .3s var(--ease)}
.pf-dirty .ico-sm{width:15px;height:15px;flex:0 0 15px;color:#a8761c}
/* 修改密码强度条对齐字段 */
.acc-pass-meter{margin-top:8px}
/* 暗色补充 */
[data-theme="dark"] .acc-ava-row.over{background:rgba(217,178,106,.08)}
[data-theme="dark"] .acc-ava-tip{color:var(--muted)}
[data-theme="dark"] .pf-dirty{background:rgba(217,161,58,.12)}
@media (max-width:760px){
  .acc-ava-cur{width:78px;height:78px;flex:0 0 78px;font-size:32px;border-radius:22px}
  .acc-ava-ring{inset:-6px;border-radius:27px}
  .acc-ava-side{min-width:100%}
}

/* ========== v2.13.0 独家资料代码块 + 教练团队 ========== */
/* ---- 阅读页排版 ---- */
.docread-body{font-size:14.6px}
.docread-body .doc-p{margin:0 0 13px;line-height:2.05;color:var(--text-2);word-break:break-word}
.docread-body .doc-h{margin:22px 0 10px;color:var(--text);line-height:1.5}
.docread-body h2.doc-h{font-size:20px;border-left:4px solid var(--gold);padding-left:11px}
.docread-body h3.doc-h{font-size:17px}
.docread-body h4.doc-h{font-size:15.4px;color:var(--gold-deep)}
.docread-body .doc-list{margin:0 0 14px;padding-left:22px;color:var(--text-2);line-height:2.05}
.docread-body .doc-list li{margin-bottom:4px}
.docread-body .doc-quote{
  margin:0 0 14px;padding:11px 15px;border-left:4px solid var(--gold);background:rgba(217,178,106,.08);
  border-radius:0 12px 12px 0;color:var(--text-2);line-height:1.95}
.docread-body .doc-hr{border:none;border-top:1.5px dashed var(--line-2);margin:20px 0}
.docread-body .icode{
  font-family:'Cascadia Code','JetBrains Mono',Consolas,monospace;font-size:.9em;
  background:rgba(31,26,16,.07);border:1px solid var(--line-2);border-radius:6px;padding:1px 7px;color:#a1442e}
[data-theme="dark"] .docread-body .icode{background:#141a2b;border-color:#2c3448;color:#e8b98a}
/* ---- C++ 代码块 ---- */
.dcode-wrap{margin:0 0 16px;border-radius:13px;overflow:hidden;border:1px solid #232946;
  box-shadow:0 6px 20px rgba(17,26,46,.12)}
.dcode-bar{display:flex;align-items:center;justify-content:space-between;background:#1b2038;padding:7px 13px}
.dcode-lang{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.06em;color:#8fa3d8;text-transform:uppercase}
.dcode-copy{border:1px solid #3a4468;background:transparent;color:#b9c6ea;font-size:11.6px;border-radius:8px;
  padding:3px 11px;cursor:pointer;transition:all .16s var(--ease)}
.dcode-copy:hover{border-color:#d9b26a;color:#d9b26a}
.dcode{margin:0;background:#141830;padding:15px 17px;overflow-x:auto}
.dcode code{font-family:'Cascadia Code','JetBrains Mono',Consolas,monospace;font-size:13px;line-height:1.85;
  color:#dce3f5;white-space:pre;display:block;tab-size:4}
.tok-kw{color:#c792ea;font-style:normal}
.tok-str{color:#a5d6a7;font-style:normal}
.tok-com{color:#5b6488;font-style:italic}
.tok-num{color:#f2a06b;font-style:normal}
.tok-pre{color:#82aaff;font-style:normal}
.tok-fn{color:#7fd4c4;font-style:normal}
/* ---- 编辑器工具栏 ---- */
.doc-tool{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.doc-tool button{border:1px solid var(--line-2);background:var(--bg-soft);color:var(--text-2);border-radius:9px;
  padding:5px 11px;font-size:12.2px;font-weight:700;cursor:pointer;transition:all .15s var(--ease)}
.doc-tool button:hover{border-color:var(--gold);color:var(--gold-deep);background:rgba(217,178,106,.08)}
.doc-tool-tip{font-size:11.4px;color:var(--muted-2)}
.doc-count{display:block;text-align:right;font-size:11.4px;color:var(--muted-2);margin-top:5px}
/* ---- 教练团队 ---- */
.coach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:16px}
.coach-card{display:flex;flex-direction:column;gap:11px}
.coach-card-top{display:flex;align-items:center;gap:14px}
.coach-card-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.coach-card-id>b{font-size:17px;color:var(--text)}
.coach-title{font-style:normal;font-size:12.8px;font-weight:700;color:var(--gold-deep)}
.coach-badge-lg{display:inline-flex;align-items:center;gap:5px;font-size:11.4px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--gold),#c39a52);border-radius:999px;padding:3px 11px;
  box-shadow:0 3px 9px rgba(195,154,82,.4)}
.coach-badge-lg .ico-sm{width:12px;height:12px;flex:0 0 12px}
.coach-badge-lg.gray{background:linear-gradient(135deg,#8b93a8,#a8b0c4);box-shadow:none}
.coach-tags{display:flex;gap:6px;flex-wrap:wrap}
.coach-tags .chip{font-size:11.4px}
.coach-record{margin:0;font-size:13px;color:var(--text-2);line-height:1.85;background:rgba(217,178,106,.07);
  border:1px dashed rgba(217,178,106,.35);border-radius:11px;padding:10px 13px}
.coach-record b{color:var(--gold-deep)}
.coach-bio{margin:0;font-size:13.2px;color:var(--muted);line-height:1.9}
.coach-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11.8px;color:var(--muted-2)}
.coach-students{display:flex;flex-direction:column;align-items:center;background:rgba(217,178,106,.09);
  border-radius:13px;padding:9px 17px}
.coach-students b{font-size:20px;color:var(--gold-deep);line-height:1.2}
.coach-students i{font-style:normal;font-size:11px;color:var(--muted-2)}
.coach-cta{text-align:center;padding:30px 20px}
.coach-cta b{display:block;font-size:17px;color:var(--text);margin-bottom:7px}
.coach-cta p{margin:0 0 15px;font-size:13px;color:var(--muted);line-height:1.8}
/* 管理审核 */
.coach-admin-card{border-color:rgba(217,178,106,.4)}
.coach-pend{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg-soft);
  border:1px solid var(--line-2);border-radius:12px;padding:12px 15px;margin-bottom:9px}
.coach-pend-main{min-width:0}
.coach-pend-main b{display:block;font-size:13.8px;color:var(--text);margin-bottom:3px}
.coach-pend-main span{display:block;font-size:11.8px;color:var(--gold-deep);font-weight:700;margin-bottom:3px}
.coach-pend-main p{margin:0;font-size:12.4px;color:var(--muted)}
.coach-pend-btns{display:flex;gap:7px;flex:0 0 auto}
.coach-me-card{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.coach-me-card b{flex:1;min-width:180px;font-size:14.2px;color:var(--text)}
.coach-me-card.pending{border-color:rgba(217,161,58,.4)}
/* 教练主页档案卡 */
.hero-coach-badge{display:inline-flex;align-items:center;gap:6px;font-style:normal;font-size:.42em;vertical-align:middle;
  color:#fff;background:linear-gradient(135deg,var(--gold),#c39a52);border-radius:999px;padding:4px 15px;
  margin-left:10px;box-shadow:0 4px 12px rgba(195,154,82,.45);letter-spacing:.04em}
.hero-coach-badge .ico-sm{width:12px;height:12px;flex:0 0 12px}
.coach-ava-ring{box-shadow:0 0 0 3px var(--card),0 0 0 5px rgba(217,178,106,.55),0 8px 22px rgba(17,26,46,.18)}
.coach-tag-pick{display:flex;gap:7px;flex-wrap:wrap}
.coach-tag-pick .av-item span.av-txt{width:auto;padding:0 13px;font-size:12.4px;color:var(--muted)}
.coach-tabs{flex-wrap:wrap}
/* 暗色补充 */
[data-theme="dark"] .dcode-wrap{border-color:#2c3448;box-shadow:0 6px 20px rgba(0,0,0,.4)}
[data-theme="dark"] .coach-record{background:rgba(217,178,106,.06)}
/* ========== v2.14.0 教练档案：区域 / 联系方式 / 模板导入 ========== */
.req{color:#e07a5f;font-style:normal;font-weight:900;margin-left:3px}
.coach-region{display:inline-flex;align-items:center;gap:5px;font-style:normal;font-size:12.4px;color:var(--muted);font-weight:600}
.coach-region .ico-sm{width:13px;height:13px;flex:0 0 13px;color:var(--gold-deep)}
.coach-tpl-row{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:14px;padding:11px 14px;
  background:linear-gradient(135deg,rgba(217,178,106,.1),rgba(127,212,196,.07));border:1px dashed rgba(217,178,106,.45);
  border-radius:13px}
.coach-contact{display:flex;gap:10px;flex-wrap:wrap;margin:2px 0}
.coach-contact span{display:inline-flex;align-items:center;gap:7px;background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:10px;padding:6px 12px}
.coach-contact span i{font-style:normal;font-size:11px;color:var(--muted-2);font-weight:700}
.coach-contact span b{font-size:12.8px;color:var(--gold-deep);letter-spacing:.02em}
.coach-contact-lock{display:inline-flex;align-items:center;gap:6px;font-size:12.2px;color:var(--muted);
  border:1px dashed var(--line-2);border-radius:10px;padding:6px 13px;text-decoration:none;transition:all .15s var(--ease)}
.coach-contact-lock:hover{border-color:var(--gold);color:var(--gold-deep)}
#cfPhone.ok{border-color:rgba(95,160,110,.5)}
#cfPhone.bad{border-color:rgba(224,122,95,.55);background:rgba(224,122,95,.06)}
[data-theme="dark"] .coach-contact span{background:#141a2b}
[data-theme="dark"] .coach-tpl-row{background:rgba(217,178,106,.08)}
/* ========== v2.15.0 教练档案：姓名 / 头像 / 资质证书 ========== */
.coach-cname{display:block;font-size:16.5px;color:var(--text)}
.coach-ava-img{position:relative}
.qual-form{margin-bottom:6px}
.qual-up-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.qual-up-row .acc-ava-tip{margin:0;flex:1;min-width:200px}
.qual-empty{margin:4px 0 0}
.qual-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;margin-top:14px}
.qual-item{position:relative;margin:0;border:1px solid var(--line-2);border-radius:13px;overflow:hidden;
  background:var(--bg-soft);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.qual-item:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(17,26,46,.14)}
.qual-item a{display:block;height:96px;background:#f4efe6}
.qual-item img{width:100%;height:100%;object-fit:cover;display:block}
.qual-item figcaption{font-size:11.4px;color:var(--muted-2);text-align:center;padding:5px 4px;font-weight:700}
.qual-del{position:absolute;right:6px;top:6px}
.qual-del .btn{padding:5px 7px;border-radius:9px;background:rgba(255,255,255,.9);border-color:rgba(17,26,46,.1)}
.qual-del .btn:hover{background:#f3ded6;border-color:rgba(224,122,95,.45)}
.qual-del .ico-sm{color:#c05640}
.qual-grid.admin{margin-top:10px;display:flex;gap:9px;flex-wrap:wrap}
.qual-grid.admin a{width:74px;height:56px;border-radius:9px;overflow:hidden;border:1px solid var(--line-2);display:block}
.qual-grid.admin img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s var(--ease)}
.qual-grid.admin a:hover img{transform:scale(1.08)}
[data-theme="dark"] .qual-item a{background:#141a2b}
[data-theme="dark"] .qual-del .btn{background:rgba(20,26,43,.92);border-color:#2c3448}
[data-theme="dark"] .qual-del .btn:hover{background:#2a1d22;border-color:rgba(224,122,95,.4)}
@media (max-width:760px){
  .qual-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:9px}
  .qual-item a{height:76px}
}
@media (max-width:760px){
  .coach-grid{grid-template-columns:1fr}
  .coach-pend{flex-direction:column;align-items:flex-start}
}
