/* 芝麻智能 · 教师端 共享样式（token 见 brand-spec.md） */
:root{
  --bg: oklch(0.992 0.002 250);
  --surface: oklch(0.972 0.004 250);
  --fg: oklch(0.24 0.012 255);
  --muted: oklch(0.50 0.012 255);
  --border: oklch(0.90 0.006 255);
  --border-strong: oklch(0.80 0.008 255);
  --accent: oklch(0.60 0.185 38);
  --accent-ink: oklch(0.52 0.17 38);
  --accent-wash: oklch(0.965 0.025 45);
  --old: oklch(0.80 0.006 255);
  --bar: oklch(0.62 0.01 255);
  --font-display: "Noto Serif SC","Source Han Serif SC","Songti SC","STSong",serif;
  --font-body: "PingFang SC","Noto Sans SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
  --font-num: "DIN Alternate","Bahnschrift","Roboto Mono",ui-monospace,monospace;
  --font-hand: "Kaiti SC","STKaiti","KaiTi",serif;
  --nav-w: 232px;
  --panel-w: 440px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--fg)}
body{font:14px/1.6 var(--font-body);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
input,textarea,select{font:inherit;color:inherit}
.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:0}
.serif{font-family:var(--font-display)}
.muted{color:var(--muted)}
.hot{color:var(--accent-ink)}
.small{font-size:12px;letter-spacing:.01em}

/* ---------- 左栏 ---------- */
.app{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}
.nav{position:sticky;top:0;height:100vh;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;padding:20px 0}
.nav-brand{padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:12px}
.nav-brand b{font-family:var(--font-display);font-size:18px;font-weight:600;letter-spacing:.02em}
.nav-brand span{display:block;font-size:12px;color:var(--muted);letter-spacing:.02em}
.nav a{display:block;padding:9px 20px;font-size:14px;color:var(--muted);border-left:2px solid transparent}
.nav a:hover{color:var(--fg);background:var(--bg)}
.nav a.on{color:var(--fg);font-weight:600;border-left-color:var(--accent);background:var(--bg)}
.nav-sub{padding:2px 20px 8px 34px;font-size:12px;color:var(--muted)}
.nav-foot{margin-top:auto;padding:14px 20px 0;border-top:1px solid var(--border);font-size:13px}
.nav-foot b{display:block;font-weight:600}
.nav-foot span{color:var(--muted);font-size:12px}

/* ---------- 通用 ---------- */
.page-head{padding:28px 0 18px;border-bottom:1px solid var(--fg)}
.crumb{font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.02em}
.crumb a:hover{color:var(--fg);text-decoration:underline}
h1{font-family:var(--font-display);font-size:28px;line-height:1.25;font-weight:600;letter-spacing:-.01em}
h2{font-family:var(--font-display);font-size:20px;line-height:1.3;font-weight:600}
h3{font-family:var(--font-display);font-size:16px;font-weight:600}
.meta{font-size:13px;color:var(--muted);margin-top:6px}
.meta i{font-style:normal;margin:0 8px;color:var(--border-strong)}

.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;font-size:13px;letter-spacing:.02em;border:1px solid var(--border-strong);background:var(--bg);white-space:nowrap}
.btn:hover{border-color:var(--fg)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:oklch(0.99 0 0);font-weight:600}
.btn.primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.link{font-size:13px;color:var(--fg);text-decoration:underline;text-decoration-color:var(--border-strong);text-underline-offset:3px;white-space:nowrap}
.link:hover{text-decoration-color:var(--fg)}
.link.on{color:var(--accent-ink);text-decoration-color:var(--accent)}
.acts{display:flex;gap:16px;align-items:center}

.tag{display:inline-block;font-size:12px;line-height:20px;padding:0 6px;border:1px solid var(--border-strong);color:var(--muted);letter-spacing:.02em;white-space:nowrap}
.tag.hot{border-color:var(--accent);color:var(--accent-ink)}
.tag.solid{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.tag.ai{border-style:dashed}

.delta{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:13px;margin-left:6px;color:var(--muted)}
.delta.down{color:var(--accent-ink)}

/* 可核对的数字 */
.ref{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:600;border-bottom:1px dotted var(--fg);padding:0 1px;cursor:pointer}
.ref.name{font-family:var(--font-body)}
.ref:hover{background:var(--accent-wash)}
.flash{animation:flash 1.8s ease-out}
@keyframes flash{0%,40%{background:var(--accent-wash);outline:2px solid var(--accent);outline-offset:4px}100%{background:transparent;outline-color:transparent}}

/* 数据表 */
.table{width:100%;border-collapse:collapse}
.table th{font-size:12px;font-weight:500;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border-strong);letter-spacing:.02em;white-space:nowrap}
.table td{padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:middle}
.table tr.x-row td,.table tr.q-x td{vertical-align:top}
.table .r{text-align:right}
.table tr.row-link{cursor:pointer}
.table tr.row-link:hover td{background:var(--surface)}

/* 比例条 */
.meter{display:inline-block;width:72px;height:6px;background:var(--border);vertical-align:middle;margin-right:8px;position:relative}
.meter b{position:absolute;inset:0 auto 0 0;background:var(--bar)}
.meter.hot b{background:var(--accent)}

/* 来源标注 */
.src{font-size:12px;color:var(--muted);letter-spacing:.01em}
.src::before{content:"来源 ";color:var(--fg);font-weight:500}

/* 对话框 */
.scrim{position:fixed;inset:0;background:oklch(0.24 0.012 255 / .35);display:none;align-items:center;justify-content:center;z-index:50}
.scrim.on{display:flex}
.dialog{width:440px;background:var(--bg);border:1px solid var(--fg);padding:24px}
.dialog h3{font-size:18px;margin-bottom:10px}
.dialog p{color:var(--fg);margin-bottom:8px}
.dialog .acts{justify-content:flex-end;margin-top:20px;gap:10px}

/* Toast */
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;font-size:13px;display:none;gap:16px;align-items:center;z-index:60}
.toast.on{display:flex}
.toast button{color:var(--bg);text-decoration:underline;text-underline-offset:3px}
