:root{
  --bg:#0f1115; --panel:#171a21; --panel2:#1d212a; --line:#272c38;
  --ink:#e6e9ef; --ink2:#a3abbb; --ink3:#6f7889;
  --acc:#5b9dff; --acc2:#7c6cff;
  --ok:#3fb984; --warn:#e0a33e; --bad:#e26b6b;
  --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--ink);
  font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB",
       "Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0 0 .5em;line-height:1.3}
h1{font-size:19px;font-weight:650}
h2{font-size:17px;font-weight:650}
h3{font-size:14px;font-weight:650;letter-spacing:.02em}
p{margin:0 0 .8em}
button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid transparent}
.hidden{display:none !important}

/* ── header ── */
.top{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 22px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#151922,#12151c);position:sticky;top:0;z-index:20;
}
.brand{display:flex;gap:12px;align-items:center}
.logo{
  width:34px;height:34px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;font-weight:700;font-size:13px;
}
.sub{font-size:11px;color:var(--ink3);font-weight:500;vertical-align:middle;
  border:1px solid var(--line);padding:1px 6px;border-radius:20px;margin-left:6px}
.tagline{margin:0;font-size:12px;color:var(--ink3)}
.badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.badge{font-size:11.5px;color:var(--ink2);border:1px solid var(--line);
  background:var(--panel);padding:4px 9px;border-radius:20px;white-space:nowrap}
.badge.warn{color:var(--warn);border-color:#4a3a1c;background:#251d0e}

/* 手机（B7 走查，2026-08-15）。
   实测 375×812 下 header 高 209px —— 占掉屏幕的 26%，因为面包屑
   「US CPA · FAR｜诊断 → 路径 → 刷题 → 苏格拉底讲解 → 通过概率」
   在窄屏上折成 5 行。这一行在手机上是纯装饰（它说明的是产品结构，
   不是当前状态），所以直接收起来，把屏幕还给题目本身。 */
@media (max-width:560px){
  .top{padding:10px 14px;gap:10px;align-items:flex-start;flex-wrap:wrap}
  .tagline{display:none}
  .logo{width:28px;height:28px;font-size:12px}
  .badges{gap:6px}
  .badge{font-size:10.5px;padding:3px 7px}
  /* 粘顶的 header 在手机上会跟着键盘一起挤压视口；答题时不需要它一直在 */
  .top{position:static}
}

/* ── layout ── */
main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;
  max-width:1200px;margin:0 auto;padding:20px 22px 60px}
@media (max-width:960px){main{grid-template-columns:1fr}}
.flow{display:flex;flex-direction:column;gap:16px;min-width:0}
.dash{display:flex;flex-direction:column;gap:14px;min-width:0}

.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}
.card.thin{padding:14px 16px}
.lead{color:var(--ink2)}
.notes{margin:0 0 14px;padding-left:18px;color:var(--ink2);font-size:13.5px}
.notes li{margin:.3em 0}
.hint{font-weight:400;font-size:11px;color:var(--ink3)}

button.primary{background:var(--acc);color:#08101f;font-weight:650;padding:9px 16px}
button.primary:hover{filter:brightness(1.08)}
button.ghost{background:transparent;color:var(--ink2);border-color:var(--line);padding:7px 12px}
button.ghost:hover{color:var(--ink);border-color:#39405180;background:#1e222c}
button.small{font-size:12.5px;padding:5px 10px}
button:disabled{opacity:.45;cursor:default}

/* ── question ── */
.qmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.pill{font-size:11.5px;padding:3px 9px;border-radius:20px;background:#20304d;color:#a8c8ff}
.pill.soft{background:#1e2129;color:var(--ink2)}
.qprog{margin-left:auto;font-size:12px;color:var(--ink3)}
.stem{font-size:15.5px;line-height:1.72;margin:6px 0 16px}
.options{display:flex;flex-direction:column;gap:9px}
.opt{display:flex;gap:11px;align-items:flex-start;text-align:left;width:100%;
  background:var(--panel2);border:1px solid var(--line);color:var(--ink);
  padding:11px 14px;border-radius:10px;line-height:1.55}
.opt:hover:not(:disabled){border-color:#3d63a8;background:#1f2532}
.opt .k{flex:none;width:22px;height:22px;border-radius:6px;background:#262b36;color:var(--ink2);
  display:grid;place-items:center;font-size:12px;font-weight:650}
.opt.picked{border-color:var(--acc)}
.opt.picked .k{background:var(--acc);color:#08101f}
.opt.wrong{border-color:#5b3030;background:#211618}
.opt.wrong .k{background:var(--bad);color:#160b0b}
.opt.right{border-color:#2c5e46;background:#152220}
.opt.right .k{background:var(--ok);color:#06140e}

.verdict{margin-top:14px;padding:12px 14px;border-radius:10px;font-size:13.5px;line-height:1.6}
.verdict.ok{background:#132520;border:1px solid #2c5e46;color:#9fe0c2}
.verdict.no{background:#241618;border:1px solid #5b3030;color:#f0b6b6}
.verdict b{color:#fff}
.whybox{margin:-2px 0 14px;padding:10px 13px;border-left:3px solid var(--acc);
  background:#161d29;border-radius:0 8px 8px 0;font-size:13px;color:#bcd0ee}

/* ── socratic ── */
.socratic{border-color:#2c3550}
.tutorhead{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.tutorhead h3{margin:0}
.stage{font-size:11.5px;color:var(--ink3)}
.thread{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow:auto;padding-right:4px}
.msg{padding:10px 13px;border-radius:10px;font-size:14px;line-height:1.65;white-space:pre-wrap}
.msg.tutor{background:#191f2c;border:1px solid #263049}
.msg.learner{background:#1d212a;border:1px solid var(--line);color:var(--ink2);align-self:flex-end;max-width:82%}
.guardline{margin-top:10px;padding:9px 12px;border-radius:8px;font-size:12.5px;
  background:#2a1f10;border:1px solid #55401a;color:#e8c07a}
.composer{display:flex;gap:8px;margin-top:12px}
.composer input{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--ink);
  border-radius:8px;padding:9px 12px;font:inherit;outline:none}
.composer input:focus{border-color:#3d63a8}
.tutorfoot{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.tutorfoot #tuNext{margin-left:auto}

/* ── report / path ── */
.pathlist{margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.pathlist li{color:var(--ink2);font-size:13.5px;line-height:1.6}
.pathlist b{color:var(--ink)}
.gain{color:#8fd6b3;font-variant-numeric:tabular-nums}

/* ── gauge ── */
.gauge svg{width:100%;height:auto;display:block}
.g-track{fill:none;stroke:#232936;stroke-width:14;stroke-linecap:round}
.g-band{fill:none;stroke:#2a3a58;stroke-width:14;stroke-linecap:round}
.g-fill{fill:none;stroke:url(#x);stroke:var(--acc);stroke-width:14;stroke-linecap:round;
  transition:stroke-dasharray .5s ease}
.g-base{stroke:var(--warn);stroke-width:2;stroke-dasharray:3 3}
.g-num{fill:var(--ink);font-size:30px;font-weight:700;text-anchor:middle;
  font-variant-numeric:tabular-nums}
.g-cap{fill:var(--ink3);font-size:10.5px;text-anchor:middle}
.evidence{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 6px}
.evidence span{font-size:11.5px;color:var(--ink2);background:var(--panel2);
  border:1px solid var(--line);padding:3px 8px;border-radius:20px}
.caveat{font-size:11.5px;color:var(--ink3);line-height:1.55;margin:0}

/* ── heat ── */
.heat{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:9px}
.cell{aspect-ratio:1;border-radius:6px;background:#242833;border:1px solid transparent;
  display:grid;place-items:center;font-size:9.5px;color:#00000055;cursor:default}
.cell.unknown{background:#242833}
.cell.low{background:#5a2b2b}
.cell.mid{background:#5a4a24}
.cell.high{background:#255743}
.legend{display:flex;gap:11px;flex-wrap:wrap;font-size:11px;color:var(--ink3)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;
  vertical-align:-1px}
.sw.unknown{background:#242833}.sw.low{background:#5a2b2b}
.sw.mid{background:#5a4a24}.sw.high{background:#255743}

/* ── misc ── */
.misc{display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:var(--ink2)}
.misc .row{display:flex;justify-content:space-between;gap:10px;
  background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 10px}
.misc .n{color:var(--bad);font-weight:650;font-variant-numeric:tabular-nums}
.empty{color:var(--ink3);font-size:12.5px}

.redlines{margin:0;padding-left:16px;font-size:12.5px;color:var(--ink2);line-height:1.65}
.redlines b{color:var(--ink)}

/* ── bank ── */
details.card summary{cursor:pointer;font-size:14px;font-weight:650;list-style:none}
details.card summary::-webkit-details-marker{display:none}
details.card summary::before{content:"▸ ";color:var(--ink3)}
details.card[open] summary::before{content:"▾ "}
.bankbody{margin-top:12px;font-size:12.5px;color:var(--ink2);line-height:1.7}
.bankbody code{background:var(--panel2);border:1px solid var(--line);
  padding:1px 5px;border-radius:4px;font-size:11.5px}

/* ══════════════ TBS ══════════════ */
.btnrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}
.btnrow .hint{font-size:12px;color:var(--ink3)}

/* 通过概率卡片上的 TBS 提示 */
.tbsflag{font-size:12.5px;line-height:1.6;border-radius:8px;padding:9px 11px;margin:10px 0 8px}
.tbsflag.warn{background:#3a2d16;border:1px solid #6b5320;color:#f0d6a3}
.tbsflag.ok{background:#16332a;border:1px solid #24614a;color:#a8dcc4}
.tbsflag b{color:#fff}
.tbsflag button{margin-left:6px}

/* 列表 */
.simlist{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.simrow{display:flex;gap:12px;align-items:center;justify-content:space-between;
  background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.siminfo b{font-size:14px}
.simmeta{font-size:11.5px;color:var(--ink3);margin-top:3px}
.pill.good{background:#1d4a3a;color:#8fdcbb}
.pill.bad{background:#4a2222;color:#f0a9a9}

/* 作答 */
.tbshead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.tbssub{font-size:12px;color:var(--ink3);margin:0}
.timer{text-align:right;flex-shrink:0}
.tnum{display:block;font-size:26px;font-weight:650;font-variant-numeric:tabular-nums;
  color:var(--ink);letter-spacing:.02em}
.tnum.over{color:var(--bad)}
.tcap{font-size:11px;color:var(--ink3)}
.scenario{font-size:13px;color:var(--ink2);background:var(--panel2);border:1px solid var(--line);
  border-radius:8px;padding:11px 13px;line-height:1.65}

/* minmax(0,·) 让两栏能收缩到内容宽度以下，否则分录行会把右栏顶出卡片 */
.tbsbody{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;margin-top:14px}
@media (max-width:1100px){.tbsbody{grid-template-columns:1fr}}

.exhibit{background:var(--panel2);border:1px solid var(--line);border-radius:9px;
  padding:10px 12px;margin-bottom:9px}
.exhibit summary{cursor:pointer;font-size:12.5px;font-weight:650;color:var(--ink);
  list-style:none}
.exhibit summary::-webkit-details-marker{display:none}
.exhibit summary::before{content:"▸ ";color:var(--ink3)}
.exhibit[open] summary::before{content:"▾ "}
.exhibit pre{margin:9px 0 0;font:11.5px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--ink2);white-space:pre-wrap;word-break:break-word}

.cells{display:flex;flex-direction:column;gap:9px}
.cell-in{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;
  background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:10px 12px}
.cell-in:focus-within{border-color:var(--acc)}
.cl-n{width:22px;height:22px;border-radius:50%;background:var(--panel);color:var(--ink3);
  display:grid;place-items:center;font-size:11px;font-weight:650}
.cl-label{display:block;font-size:12.5px;color:var(--ink);line-height:1.45}
.cl-meta{display:block;font-size:10.5px;color:var(--ink3);margin-top:3px}
.cl-input{display:flex;align-items:center;gap:5px}
.cl-input .unit{color:var(--ink3);font-size:12px}
.cl-input input{width:110px;background:var(--bg);border:1px solid var(--line);border-radius:7px;
  padding:7px 9px;color:var(--ink);font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
  text-align:right;outline:none}
.cl-input input:focus{border-color:var(--acc)}

/* 结果 */
.tbsscore{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.bignum{font-size:34px;font-weight:700;font-variant-numeric:tabular-nums}
.bignum span{font-size:15px;color:var(--ink3);font-weight:500;margin-left:4px}
.bignum.good{color:var(--ok)}.bignum.bad{color:var(--bad)}
.scnote{font-size:12px;color:var(--ink3);flex:1;min-width:220px}

.pacebox{border-radius:9px;padding:12px 14px;font-size:13px;line-height:1.7}
.pacebox p{margin:6px 0 0;color:inherit;opacity:.92}
.pacebox.ok{background:#16332a;border:1px solid #24614a;color:#a8dcc4}
.pacebox.warn{background:#3a2d16;border:1px solid #6b5320;color:#f0d6a3}
.pacebox.bad{background:#3a1d1d;border:1px solid #6b2d2d;color:#f0b8b8}
.pacebox b{color:#fff}

.pacetable{width:100%;border-collapse:collapse;margin-top:14px;font-size:12.5px}
.pacetable th{text-align:left;font-weight:650;color:var(--ink3);font-size:11px;
  padding:6px 8px;border-bottom:1px solid var(--line);text-transform:uppercase;
  letter-spacing:.04em}
.pacetable td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top;
  color:var(--ink2)}
.pacetable td b{color:var(--ink);font-weight:600}
.pacetable .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pacetable .ok{color:var(--ok)}.pacetable .bad{color:var(--bad)}
.pacetable .warn{color:var(--warn)}.pacetable .muted{color:var(--ink3)}
.cellnode{font-size:10.5px;color:var(--ink3);margin-top:2px}
.trap{font-size:11.5px;color:var(--warn);margin-top:5px}
.tag{font-size:10px;padding:1px 6px;border-radius:5px;margin-left:6px;vertical-align:1px}
.tag.bad{background:#4a2222;color:#f0a9a9}
.tag.warn{background:#4a3a1a;color:#e8c98a}

/* ── TBS：分录 / 选择 / 检索 三种作答形态 ── */
.cell-in.je, .cell-in.choice{display:grid;grid-template-columns:22px minmax(0,1fr);
  gap:10px;align-items:start}
/* minmax(0,1fr) 而不是 1fr：否则下拉框不肯收缩到内容宽度以下，把贷方列挤出卡片 */
.cell-in.je .je-row{grid-column:1/-1;display:grid;
  grid-template-columns:minmax(0,1fr) 88px 88px;gap:8px;margin-top:8px}
.cell-in.je select,.cell-in.je input{min-width:0;background:var(--bg);
  border:1px solid var(--line);border-radius:7px;padding:7px 9px;color:var(--ink);
  font-size:12.5px;outline:none}
.cell-in.je select{font-family:inherit}
.cell-in.je input{text-align:right;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.cell-in.je select:focus,.cell-in.je input:focus{border-color:var(--acc)}

.ch-list{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ch-opt{display:grid;grid-template-columns:16px 42px 1fr;gap:8px;align-items:start;
  background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:8px 10px;
  font-size:12.5px;color:var(--ink2);cursor:pointer;line-height:1.55}
.ch-opt:hover{border-color:var(--ink3)}
.ch-opt input{margin:3px 0 0;accent-color:var(--acc)}
.ch-opt:has(input:checked){border-color:var(--acc);background:#1a2536}
.ch-k{font-size:10.5px;font-weight:650;color:var(--ink3);letter-spacing:.04em;
  padding-top:1px}
input.cite{width:150px;text-align:center;letter-spacing:.06em}
