/* 芝麻智能 · 教师端 共享样式。token 唯一来源：colors_and_type.css（间距 v2 放松版） */
@import url("colors_and_type.css");
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color:var(--fg)}
body{font:var(--fs-body)/var(--lh-body) 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}
mark{background:var(--accent-wash);color:var(--accent-ink);padding:0 2px}

/* ---------- 左栏 ---------- */
.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:28px 0 24px}
.nav-brand{padding:0 24px 24px;border-bottom:1px solid var(--border);margin-bottom:16px}
.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:11px 24px;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:0 24px 12px 38px;font-size:12px;color:var(--muted)}
.nav-foot{margin-top:auto;padding:20px 24px 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:var(--page-pad-top) 0 var(--sp-7);border-bottom:1px solid var(--fg)}
.crumb{font-size:12px;color:var(--muted);margin-bottom:var(--sp-3);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:var(--sp-3)}
.meta i{font-style:normal;margin:0 8px;color:var(--border-strong)}

.btn{display:inline-flex;align-items:center;gap:8px;height:var(--ctl-h);padding:0 18px;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:var(--gap-inline);align-items:center}

.tag{display:inline-block;font-size:12px;line-height:22px;padding:0 8px;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:8px;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:var(--th-pad-y) var(--cell-pad-x);border-bottom:1px solid var(--border-strong);letter-spacing:.02em;white-space:nowrap}
.table td{padding:var(--row-pad-y) var(--cell-pad-x);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:12px;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:460px;background:var(--bg);border:1px solid var(--fg);padding:var(--sp-8)}
.dialog h3{font-size:18px;margin-bottom:var(--sp-4)}
.dialog p{color:var(--fg);margin-bottom:var(--sp-3)}
.dialog .acts{justify-content:flex-end;margin-top:var(--sp-8);gap:var(--sp-3)}

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