:root{
  --bg:#f6f7f8; --panel:#ffffff; --ink:#1c2733; --ink2:#5a6a7a; --line:#dde3e9;
  --accent:#2563a8; --ok:#2e7d43; --warn:#b26a00; --bad:#b23a2e; --weak:#d9a441;
  --f0:#c3ccd5; --f1:#8fa6bd; --f2:#4f7ea8; --f3:#1f4e79;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:14px/1.65 "Microsoft YaHei","PingFang SC",system-ui,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
header.site{background:#16324a;color:#fff;padding:10px 24px;display:flex;align-items:center;gap:16px}
header.site .brand{font-weight:700;font-size:16px;color:#fff}
header.site .crumb{color:#b8c9da;font-size:13px}
header.site .spacer{flex:1}
header.site .back{color:#dbe6f0;font-size:13px}
main{max-width:1240px;margin:0 auto;padding:20px 24px 64px}
h1{font-size:22px;margin:4px 0 2px}
h2{font-size:16px;margin:26px 0 10px;color:#22384e}
h3{font-size:14px;margin:18px 0 8px;color:#2c4358}
.sub{color:var(--ink2);font-size:13px}
.subnote{background:#fdf6e7;border:1px solid #ecd9a8;border-radius:6px;padding:8px 12px;font-size:13px;color:#6b5514;margin:10px 0}

/* 科目卡片首页 */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;margin-top:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.card:hover{border-color:#b9c7d4;box-shadow:0 1px 4px rgba(20,40,60,.08)}
.card .t{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700}
.card .dot{width:10px;height:10px;border-radius:50%}
.card .row{font-size:12.5px;color:var(--ink2)}
.card .row b{color:var(--ink);font-weight:600}
.card .go{margin-top:auto;align-self:flex-start;font-size:13px;padding:5px 12px;border:1px solid var(--accent);border-radius:6px}

/* 分段控件 */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--panel);margin:14px 0 4px}
.seg button{border:0;background:transparent;padding:7px 18px;font-size:13.5px;cursor:pointer;color:var(--ink2)}
.seg button.on{background:var(--accent);color:#fff}

/* 目录表格 */
.bookblock{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:14px 0;overflow:hidden}
.bookhead{padding:9px 16px;background:#eef2f6;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;color:#24405c}
table.kp{width:100%;border-collapse:collapse;font-size:13.5px}
table.kp td{padding:7px 10px;border-bottom:1px solid #edf1f4;vertical-align:top}
table.kp tr:last-child td{border-bottom:0}
table.kp .id{width:86px;color:#7c8b99;font-family:Consolas,monospace;font-size:12.5px;white-space:nowrap}
table.kp .pre{width:190px;font-size:12.5px;color:var(--ink2)}
table.kp .note{color:var(--ink2);font-size:12.5px}
.dots{white-space:nowrap;letter-spacing:2px;font-size:12px}
.d3{color:var(--f3)}.d2{color:var(--f2)}.d1{color:var(--f1)}.d0{color:var(--f0)}

/* 图谱 */
.graphbar{display:flex;gap:10px;align-items:center;margin:10px 0}
.graphbar select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:13px}
#graph{height:640px;background:var(--panel);border:1px solid var(--line);border-radius:8px;cursor:grab}
#graph:active{cursor:grabbing}
#detail{margin-top:12px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 16px;display:none}
#detail .chain{margin:6px 0;padding-left:20px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--ink2);margin:8px 0}
.legend i{display:inline-block;width:10px;height:10px;border-radius:5px;margin-right:5px}
.graphbar .zbar{display:inline-flex;gap:6px;margin-left:auto}
.graphbar .zbar .btn{padding:4px 10px;font-size:12.5px}
.kplink{cursor:pointer}
table.kp tr.hlrow td{background:#fff6e2}

/* 诊断 */
.diagbar{display:flex;gap:12px;align-items:center;margin:12px 0;flex-wrap:wrap}
.btn{border:1px solid var(--accent);background:#fff;color:var(--accent);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer}
.btn.primary{background:var(--accent);color:#fff}
.btn:disabled{opacity:.45;cursor:default}
.mrow{display:flex;align-items:center;gap:10px;padding:5px 16px;border-bottom:1px solid #edf1f4}
.mrow:last-child{border-bottom:0}
.mrow .nm{flex:1}
.mrow .mid{width:84px;color:#7c8b99;font-family:Consolas,monospace;font-size:12.5px}
.scale{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.scale label{padding:4px 10px;font-size:12px;cursor:pointer;color:var(--ink2);border-left:1px solid var(--line);user-select:none}
.scale label:first-child{border-left:0}
.scale input{display:none}
.scale .s0.sel{background:#e7ebef;color:#39505f}
.scale .s1.sel{background:#f6dfc4;color:#7a4a10}
.scale .s2.sel{background:#d9ead9;color:#22602f}
.scale .s3.sel{background:#bcd9c0;color:#14481f}
.evtag{display:inline-block;margin-left:8px;padding:1px 8px;border:1px solid var(--line);border-radius:10px;background:#eef2f6;color:var(--ink2);font-size:11.5px;vertical-align:middle;white-space:nowrap}
#diagout{margin-top:16px}
.planrow{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--bad);border-radius:6px;padding:8px 14px;margin:8px 0}
.planrow.mid{border-left-color:var(--warn)}
.planrow .why{color:var(--ink2);font-size:12.5px;margin-top:2px}
.oknote{background:#eaf4ea;border:1px solid #bcd9c0;border-radius:6px;padding:10px 14px;color:#22602f;font-size:13px}
footer{max-width:1240px;margin:0 auto;padding:0 24px 40px;color:var(--ink2);font-size:12px}
@media (max-width:760px){ table.kp .pre{width:120px} #graph{height:480px} }

/* 年级 / 复习阶段 */
.stageseg{margin:12px 0 0}
.stageseg button.on{background:#16324a}
.stagedesc{background:#eef3f8;border:1px solid #cfdde9;border-left:4px solid var(--accent);border-radius:6px;
  padding:8px 12px;font-size:13px;color:#2c4358;margin:8px 0 4px}
.gtag{display:inline-block;font-size:11px;font-weight:400;padding:1px 7px;border-radius:4px;margin-right:8px;vertical-align:middle}
.gG1{background:#e7f0e7;color:#22602f;border:1px solid #bcd9c0}
.gG2{background:#e9eef5;color:#25507c;border:1px solid #c3d5e6}
.gG3,.gRE{background:#f6ece0;color:#7a4a10;border:1px solid #ecd9a8}
.paperlink{text-decoration:none}
.paperlink:hover{text-decoration:none;opacity:.9}

/* 分年级 / 阶段自评总览 */
.stagegrid{grid-template-columns:repeat(auto-fill,minmax(262px,1fr))}
.sumbar{display:flex;gap:26px;align-items:center;flex-wrap:wrap;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:12px 0}
.sumbar .num b{display:block;font-size:20px;line-height:1.3}
.sumbar .num .k{font-size:12px;color:var(--ink2)}
.pbar{height:6px;background:#e7ebef;border-radius:3px;overflow:hidden}
.pbar i{display:block;height:100%;background:var(--accent)}
.sumbar .pbar{flex:1;min-width:180px;height:8px}
.card .acts{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}
.card .acts .go{margin-top:0}
.card .go.alt{border-color:var(--line);color:var(--ink2)}
