/* 贯通经纬学史增智 · 高三历史复习平台 —— 手写样式，无框架
   设计：竖屏单手可读优先；正文用宋体（史书气质），站名用手写体，界面用无衬线；两档主题。 */
:root{
  --bg:#f7f4ee; --panel:#fffdf9; --ink:#241f1c; --ink2:#5c534c; --line:#e3dcd0;
  --accent:#7a2e2b; --accent2:#0f5c52; --warn:#a1641a; --tag:#efe7da;
  --fs:17px; --lh:1.85; --maxw:44rem; --radius:10px; --brand-fs:1.75rem;
  --serif:"Songti SC","SimSun","Source Han Serif SC",serif;
  --sans:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  /* 手写体：优先行楷/毛笔风格，再退到楷体（Windows / macOS 均自带其一） */
  --hand:"STXingkai","华文行楷","Xingkai SC","KaiTi","楷体","STKaiti","Kaiti SC","LiSu","隶书",cursive,serif;
}
[data-theme="dark"]{
  --bg:#17151a; --panel:#211e24; --ink:#eae4dc; --ink2:#a99f95; --line:#37323a;
  --accent:#d08b7f; --accent2:#6fb3a5; --warn:#d0a05a; --tag:#2e2932;
}
[data-fs="2"]{--fs:19px;--brand-fs:1.95rem}
[data-fs="3"]{--fs:21px;--lh:1.95;--brand-fs:2.15rem}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs)/var(--lh) var(--sans)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:6px 10px;z-index:99}
h1{font-size:1.5rem;line-height:1.35;margin:18px 0 8px}
h2{font-size:1.15rem;margin:22px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--line)}
h3{font-size:1.02rem;margin:18px 0 6px}
p{margin:10px 0}
.lead{color:var(--ink2)}
.muted{color:var(--ink2);font-size:.9em}
.note{background:var(--tag);border-left:4px solid var(--accent2);padding:10px 12px;border-radius:6px}
.note.warn{border-left-color:var(--warn)}
.tight{margin:8px 0;padding-left:1.2em}
.tight li{margin:4px 0}

/* 顶部导航：站名手写体居中、副标题右对齐、两级导航居中并带热区反馈 */
.top{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top .wrap{padding-top:10px;padding-bottom:10px}
.brand{display:block;text-align:center;color:var(--ink);text-decoration:none;padding:2px 0 0}
.brand b{display:block;font-family:var(--hand);font-weight:700;font-size:var(--brand-fs);
  letter-spacing:.10em;line-height:1.25}
.brand span{display:block;text-align:right;font-size:.78rem;letter-spacing:.18em;color:var(--accent2);
  margin-top:2px;padding-right:2px}
.brand:hover b,.brand:focus-visible b{color:var(--accent)}
.menu-btn{display:none;margin:8px auto 0;background:var(--tag);border:1px solid var(--line);
  color:var(--ink);border-radius:8px;padding:6px 12px;font-size:.9rem}
.nav{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:12px auto 0}
.nav a{padding:8px 14px;border-radius:10px;font-size:1rem;color:var(--ink);border:1px solid transparent;
  min-height:2.4em;display:inline-flex;align-items:center;
  transition:background .12s ease,border-color .12s ease,transform .12s ease,color .12s ease}
.nav a:hover,.nav a:focus-visible{background:var(--tag);border-color:var(--accent2);color:var(--accent);transform:translateY(-1px)}
.nav a:active{transform:scale(.98)}
.nav a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:#fff}
.nav-sub{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;width:100%;
  font-size:.9rem;color:var(--ink2);margin:6px auto 2px}
.nav-sub a{padding:6px 12px;border-radius:999px;color:var(--ink2);border:1px solid transparent;
  transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}
.nav-sub a:hover,.nav-sub a:focus-visible{background:var(--tag);border-color:var(--line);color:var(--accent)}
.nav-sub a:active{transform:scale(.98)}
@media (max-width:640px){
  .menu-btn{display:block}
  .nav{display:none;width:100%;margin:8px 0 0}
  .nav.open{display:flex}
  .nav-sub{display:none}
  .nav-sub.open{display:flex}
  .nav a{padding:7px 10px;font-size:.95rem}
  .nav-sub a{padding:5px 9px;font-size:.86rem}
  .brand span{text-align:center;padding-right:0}
}
/* 滚动后收起站名，避免粘性头部吃掉屏幕（由 app.js 切换 .compact） */
.top.compact .brand{display:none}
.top.compact .nav{margin-top:0}
.top.compact .wrap{padding-top:6px;padding-bottom:6px}

/* 面包屑与关联 */
.crumb{font-size:.85rem;color:var(--ink2);margin:14px 0 4px;display:flex;flex-wrap:wrap;gap:6px}
.crumb i{font-style:normal;color:var(--line)}
.rel{margin:34px 0 40px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.rel h2{font-size:1rem;border:0;margin:0 0 8px;color:var(--ink2)}
.rel ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rel li a{border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:.88rem;display:inline-block}

/* 首页 */
.hero{padding:22px 0 6px}
.hero h1{font-size:1.6rem}
.cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:18px 0}
.card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px;color:var(--ink)}
.card h2{margin:0 0 6px;font-size:1.05rem;border:0;padding:0}
.card p{margin:0 0 8px;color:var(--ink2);font-size:.92rem}
.card .meta{font-size:.8rem;color:var(--accent2)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;margin:18px 0}
.panel.mini{padding:10px 14px;background:transparent}
.three{margin:8px 0;padding-left:1.2em}
.three li{margin:8px 0}
.lanes{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin:14px 0}
.lane{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px;color:var(--ink)}
.lane h2{margin:0;font-size:1rem;border:0;padding:0}

/* 表格 */
table.grid{width:100%;border-collapse:collapse;font-size:.9rem;margin:8px 0}
table.grid th,table.grid td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
table.grid th{background:var(--tag)}
.blank{color:var(--line)}

/* 课页 */
.lesson-body{margin:16px 0}
.lesson-body p{font-family:var(--serif);text-indent:2em;margin:12px 0}
.lesson-body h3.sec{font-family:var(--sans);font-size:1rem;color:var(--accent2);
  border-left:4px solid var(--accent2);padding-left:8px;margin:22px 0 8px}
.aside{background:var(--tag);border:1px solid var(--line);border-left:4px solid var(--accent);
  border-radius:6px;padding:10px 12px;margin:14px 0;font-size:.94rem}
.aside b{display:block;color:var(--accent);font-size:.85rem;letter-spacing:.08em;margin-bottom:4px}
.aside div{font-family:var(--serif)}
.cap{font-size:.85rem;color:var(--ink2);text-indent:0;font-family:var(--sans)}
.player{margin:14px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.player audio{width:100%;max-width:420px}
.tag{display:inline-block;background:var(--tag);border-radius:999px;padding:1px 8px;font-size:.78rem;color:var(--ink2)}
.tag.hot{background:var(--accent);color:#fff}
.tag.warn{background:var(--warn);color:#fff}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li a{border:1px solid var(--line);border-radius:8px;padding:5px 10px;display:inline-block;font-size:.88rem}
.mini-axis{list-style:none;padding:0;margin:6px 0}
.mini-axis li{padding:3px 0;font-size:.92rem}
.mini-axis .yr{display:inline-block;min-width:5.5em;color:var(--accent2);font-variant-numeric:tabular-nums}
.lesson-list{padding-left:1.4em}
.lesson-list li{margin:5px 0}

/* 检索 */
.searchbar{display:flex;gap:8px;margin:14px 0}
.searchbar input{flex:1;padding:10px 12px;font-size:1rem;border:1px solid var(--line);
  border-radius:8px;background:var(--panel);color:var(--ink)}
.btn{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:9px 14px;font-size:.95rem;cursor:pointer}
.btn.danger{background:var(--warn)}
.results{margin:10px 0 40px}
.hit{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:8px 0}
.hit .k{font-size:.75rem;color:var(--accent2);border:1px solid var(--line);border-radius:4px;padding:0 6px;margin-right:6px}
.hit .c{font-size:.85rem;color:var(--ink2)}
.hit mark{background:#ffe9a8;color:inherit}
.checkout{margin:12px 0 30px;font-family:ui-monospace,Consolas,monospace;font-size:.88rem}
.checkout .row{padding:3px 0;border-bottom:1px dashed var(--line)}
.ok{color:var(--accent2)} .bad{color:#c0392b;font-weight:700}

/* 图谱与时间线 */
.graphwrap{position:relative;margin:12px 0}
canvas.graph{width:100%;height:60vh;min-height:340px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);touch-action:none;display:block}
.gtoolbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.gtoolbar button{border:1px solid var(--line);background:var(--panel);color:var(--ink);
  border-radius:999px;padding:5px 11px;font-size:.86rem;cursor:pointer}
.gtoolbar button[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.statusline{min-height:1.6em;font-size:.88rem;color:var(--ink2);margin:6px 0}
.roster{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin:14px 0}
.roster a{border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:.86rem;display:block}
.axis{position:relative;margin:16px 0 30px}
.axis ul{list-style:none;padding:0;margin:0}
.axis li{position:relative;padding:8px 0 8px 118px;border-bottom:1px dashed var(--line)}
.axis li .yr{position:absolute;left:0;top:8px;width:104px;text-align:right;
  color:var(--accent2);font-variant-numeric:tabular-nums;font-size:.9rem}
.axis .who{font-size:.78rem;color:var(--ink2);display:block}
.lane-h{position:sticky;top:52px;background:var(--bg);padding:6px 0;font-weight:700;color:var(--accent)}

/* 页脚 */
.foot{margin-top:40px;border-top:1px solid var(--line);padding:16px 0 30px;
  background:var(--panel);color:var(--ink2);font-size:.85rem}
.foot p{margin:5px 0}
code{background:var(--tag);padding:1px 5px;border-radius:4px;font-size:.9em}

/* ================================================================
   新版结构（2026 改版）新增组件
   —— 一至七各块与三条横轴共用，命名与 sitecore/pages_*.py 一致
   ================================================================ */

/* 数字条 */
.kpis{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin:16px 0}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;text-align:center}
.kpi b{display:block;font-size:1.35rem;color:var(--accent);font-variant-numeric:tabular-nums}
.kpi span{font-size:.8rem;color:var(--ink2)}

/* 纯 CSS 条形图 */
.bars{margin:8px 0}
.bar{display:flex;align-items:center;gap:8px;margin:3px 0;font-size:.86rem}
.bar .bl{flex:0 0 9.5em;color:var(--ink2);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .bv{background:linear-gradient(90deg,var(--accent),var(--accent2));color:#fff;
  border-radius:4px;padding:1px 6px;min-width:2.2em;text-align:right;font-variant-numeric:tabular-nums}

/* 知识编码列表 */
ul.codes{list-style:none;padding-left:0}
ul.codes li{margin:5px 0;padding-left:2px}
ul.codes ul{list-style:none;padding-left:1.6em;margin:4px 0}
ul.codes code{font-size:.85em}
.celltext{display:block;max-width:46em;font-size:.95em}

/* 素养 / 难度 标签 */
.tag.lit{background:#e8eef7;color:#2d4a72}
.tag.na{background:var(--line);color:var(--ink2)}
.tag.d-easy{background:#e6f4ea;color:#1e6b3a}
.tag.d-mid{background:#fdf3d8;color:#8a6d1a}
.tag.d-hard{background:#fbe4e2;color:#a3312a}
.tag.d-na{background:var(--line);color:var(--ink2)}

/* 题目卡片 */
.item{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px 14px;margin:14px 0}
.item .imeta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.item .istem p{margin:8px 0}
.item .mat{margin:8px 0;padding:8px 10px;border-left:3px solid var(--accent2);
  background:var(--tag);font-family:var(--serif);border-radius:0 6px 6px 0}
.item .mat p{margin:4px 0}
.item .iq{margin:8px 0;font-weight:600}
.item .iq p{font-weight:400;margin:4px 0}
.item details.ans{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}
.item details.ans summary{cursor:pointer;color:var(--accent);font-weight:600}
.item .ansbox,.item .anabox{margin:8px 0;padding:8px 10px;background:var(--tag);border-radius:6px}
.item .ansbox b,.item .anabox b{color:var(--accent);margin-right:6px}
.item .ansbox p,.item .anabox p{margin:4px 0}
.item .why{font-size:.82rem;color:var(--ink2);margin:6px 0 0}
.item .ifoot{font-size:.78rem;color:var(--ink2);margin-top:8px;border-top:1px dashed var(--line);padding-top:6px}

/* 答题标准自检清单 */
ul.checks{list-style:none;padding-left:0}
ul.checks li{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
ul.checks label{flex:1 1 24em;cursor:pointer}
ul.checks input{margin-right:6px}
ul.checks .hb{font-size:.78rem;color:var(--accent2);white-space:nowrap}

/* 课标原文引用 */
blockquote.quote{margin:10px 0;padding:10px 12px;background:var(--tag);border-left:4px solid var(--accent);
  border-radius:0 6px 6px 0;font-family:var(--serif)}

/* 学业质量矩阵：单元格内长文本 */
table.grid.matrix td{max-width:22em;line-height:1.6}
table.grid td ul{margin:4px 0;padding-left:1.2em}

/* 听书列表 */
ul.audiolist{list-style:none;padding-left:0}
ul.audiolist li{margin:8px 0;padding-bottom:8px;border-bottom:1px dashed var(--line)}
ul.audiolist .player{margin:6px 0 0}

/* 折叠面板（真题库、结构表等长清单） */
details.fold{margin:10px 0;border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px;background:var(--panel)}
details.fold summary{cursor:pointer;font-weight:600;color:var(--accent)}

/* 打印：把折叠的答案与清单全部展开，方便印成纸质题单 */
@media print{
  .top,.foot,.rel,.gtoolbar,.searchbar,.toc,.totop{display:none!important}
  details{display:block}
  details>summary{list-style:none}
  .item{break-inside:avoid}
  table.grid{font-size:.8rem}
}

/* ================================================================
   2026 改版 · 视觉统一与下钻组件
   ================================================================ */

/* 站名与标题层 */
.hero h1{font-size:1.9rem;letter-spacing:.02em;margin:0 0 2px}
.hero .sub{color:var(--accent);font-weight:700;letter-spacing:.12em;margin:0 0 10px;font-size:1rem}
.hero{background:linear-gradient(180deg,var(--panel),transparent);border-radius:var(--radius);padding:22px 18px 8px}
h2{scroll-margin-top:70px} h3{scroll-margin-top:70px}

/* 可点数字（KPI） */
.kpi.link{text-decoration:none;color:inherit;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.kpi.link:hover,.kpi.link:focus-visible{border-color:var(--accent);box-shadow:0 6px 18px rgba(0,0,0,.10);transform:translateY(-2px)}
.kpi .go{display:block;font-size:.72rem;color:var(--accent2);margin-top:4px;opacity:.85}

/* 卡片：轻微悬浮反馈 */
.card{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.card:hover,.card:focus-visible{border-color:var(--accent);box-shadow:0 8px 22px rgba(0,0,0,.10);transform:translateY(-2px)}
.card h2 .meta{font-weight:400}
.stage-cards .stage-card h2{font-size:1.08rem}
.stage-cards .stage-card .span{color:var(--accent);font-weight:600;margin:0 0 6px}

/* 表格：斑马纹 + 表头吸顶 */
table.grid tbody tr:nth-child(even){background:rgba(0,0,0,.018)}
table.grid thead th{position:sticky;top:0;z-index:2}
table.grid tbody tr:hover{background:rgba(122,46,43,.05)}

/* 页内目录 */
nav.toc{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:10px 14px;margin:14px 0 18px}
nav.toc b{font-size:.9rem;color:var(--accent)}
nav.toc ol{list-style:none;margin:6px 0 0;padding:0;columns:2;column-gap:22px}
nav.toc li{margin:3px 0;font-size:.88rem;break-inside:avoid}
nav.toc li.l3{padding-left:14px;font-size:.84rem;color:var(--ink2)}
@media (max-width:640px){nav.toc ol{columns:1}}

/* 回到顶部 */
.totop{position:fixed;right:14px;bottom:16px;z-index:30;background:var(--accent);color:#fff;
  border-radius:999px;padding:8px 14px;font-size:.85rem;opacity:0;pointer-events:none;
  transition:opacity .18s ease;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.totop.show{opacity:.94;pointer-events:auto}

/* 阶段梳理 · 事件清单 */
ul.nodes{list-style:none;padding-left:0}
ul.nodes li{padding:7px 0;border-bottom:1px dashed var(--line);line-height:1.7}
ul.nodes .yr{display:inline-block;min-width:7.2em;color:var(--accent);font-weight:600;
  font-variant-numeric:tabular-nums}
ul.nodes .src{font-size:.8rem;color:var(--accent2);margin-left:8px;white-space:nowrap}
ul.nodes .muted{font-size:.86em}

/* 知识图谱：画布 + 信息面板 + 下钻名单 */
.graphwrap{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) 300px;align-items:start;margin:12px 0}
@media (max-width:900px){.graphwrap{grid-template-columns:1fr}}
.graphbox{position:relative}
canvas.graph{height:66vh;min-height:380px}
aside.gpanel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px 14px;max-height:66vh;overflow:auto}
aside.gpanel h2{font-size:1rem;margin:0 0 6px;border:0;padding:0}
aside.gpanel h3{font-size:.86rem;color:var(--accent);margin:10px 0 4px}
aside.gpanel .gk{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 6px}
aside.gpanel ul{list-style:none;padding-left:0;margin:0}
aside.gpanel ul li{margin:4px 0;font-size:.88rem}
aside.gpanel .gact{margin:12px 0 0;display:flex;gap:8px;flex-wrap:wrap}
.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}
p.crumb.drill{font-size:.88rem;color:var(--ink2);background:var(--tag);border-radius:8px;
  padding:6px 10px;margin:6px 0 10px}
.drill-list .drill-sec{margin:14px 0}
.drill-list .drill-sec h3{margin:0 0 6px;font-size:1rem}
.drill-list ul{margin:0}

/* 简介块 */
.panel.intro{border-left:4px solid var(--accent);padding-left:16px}


