/*
 * 数值分析 · 定制教程 — mdBook 主题
 * ---------------------------------------------------------------------------
 * 设计规范：Academy / ink-warm / standard density / Ayu dark preset。
 * 侧栏以 RustWiki/mdBook 的连续目录流为基准：300px 宽、10px 内边距、
 * 1.5em 行高、0.6em 行间距、20px 子级缩进，hover 仅换色。
 * 字体角色：display serif = 章节层级；text serif = 长文阅读；
 *           sans = 导航与控件；mono = 编号、标签与证据。
 *
 * 本文件是唯一的视觉源。mdBook 变量映射在 §1，组件在 §2 之后。
 * 不要在这里写与内容相关的样式；内容语义由 tools/mathbook.py 生成的类名承载
 * （.box.def / .box.thm / .box.ex / .box.think / .box.errata / .box.method /
 *   .proof / details.sol-box / a.crossref / .meta-strip / .arena-*）。
 */

/* ======================================================================== *
 * §1  本书对 base.css 令牌层的覆盖
 * ------------------------------------------------------------------------
 * base.css（三本共用）已声明完整令牌层；这里只保留**本书与它不同**的块与行，
 * 由上面「逐块比对」得出。改令牌请优先改 base.css。
 * ======================================================================== */
/* 仅差异行 */
/* ---- §1.2 语义调色板（只分亮/暗）------------------------------------- */ :root, html.rust, html.light{
  /* 公式直觉盒（本书特有） */
  --intuition-bg:#eef3fc;--intuition-line:#3f6bb0;--intuition-ink:#2c4d80;
  /* 竞技场段位色（本书特有）：段位名要在两种明暗下都认得出来，故按亮/暗各一份 */
  --rank-bronze:#9c6b3f;--rank-silver:#6f7a88;--rank-gold:#8d6d14;
  --rank-platinum:#2f7a75;--rank-diamond:#2f5b9e;
}

/* 仅差异行 */
html.coal, html.navy, html.ayu{
  /* 公式直觉盒（本书特有） */
  --intuition-bg:#1b2437;--intuition-line:#7fa1d8;--intuition-ink:#b3c8ec;
  --rank-bronze:#c89463;--rank-silver:#aab4c1;--rank-gold:#d9b566;
  --rank-platinum:#6fbdb6;--rank-diamond:#7fa8e0;
}

/* ======================================================================== *
 * §2  mdBook 框架适配
 * ======================================================================== */
body{
  background:var(--page);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

#mdbook-menu-bar{
  border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  /* 不透明：半透明底会让滚动时正文从顶栏后透出（截图与低性能浏览器无
     backdrop-filter，模糊层失效后尤其明显） */
  background:var(--page);
}

@media (max-width:900px){
  #mdbook-menu-bar .portal-home{padding:0 var(--space-2)}
  #mdbook-menu-bar .portal-home-label{display:none}
}

.content p{margin:var(--space-3) 0;text-align:left;font-family:var(--sans);text-wrap:pretty}

/* balance 让长标题折行时两行长度接近，避免末行只剩一两个字（不支持则忽略） */
.content h1,.content h2,.content h3{text-wrap:balance}

/* 键帽：正文里的 <kbd>（搜索快捷键、翻页键）此前没有任何样式，
   与普通等宽文字无法区分。做成实体键帽，让「这是要按的键」一眼可辨。 */
.content kbd{
  display:inline-block;margin:0 2px;padding:1px 6px 2px;
  border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;
  background:var(--paper);color:var(--ink-2);
  font:600 .78em/1.5 var(--mono);
  box-shadow:inset 0 -1px 0 color-mix(in srgb,var(--line-strong) 35%,transparent);
}

/* 操作提示条：首页「本教材怎么读」末尾的一段提示，此前与正文无区别 */
.content .kbd-hint{
  margin:18px 0;padding:var(--space-3) var(--space-4);
  border:1px solid var(--line);border-left:3px solid var(--accent);
  background:var(--paper-soft);color:var(--ink-2);
  font:13.5px/1.75 var(--sans);
}

.content .kbd-hint b{color:var(--ink)}

.box.intuition{border-left-color:var(--intuition-line);background:var(--intuition-bg)}

.intuition .box-tag{color:var(--intuition-ink)}

/* —— 阅读分层（类名由 tools/mathbook.py 的盒子优先级生成）——
   全书约 400 个盒子，若视觉权重完全相同，读者无法判断「哪些必记、哪些可跳」。
   p-core = 必记骨架（定义、定理族、速查表、错误清单）：加重；
   p-main = 主体：正常样式；
   p-skip = 第一遍可跳（证明、课程预告）：减弱。
   skip 只是降低权重、不隐藏——要折叠请用页面的「只看核心」开关。 */
.box.p-core{border-left-width:var(--space-1)}

.box.p-core>.box-tag{font-size:var(--fs-xs);letter-spacing:.07em}

.proof.p-core{
  border-left:3px solid var(--thm-line);background:var(--thm-bg);
  color:var(--ink);
}

.proof.p-skip{color:var(--muted);font-size:var(--fs-lg);border-top-style:dashed}

.proof.p-skip .pf-label{color:var(--muted)}

.box.p-skip{
  border-left-color:var(--line);background:transparent;color:var(--ink-2);
}

.box.p-skip>.box-tag{color:var(--muted);font-weight:600}

.note.p-skip,.preview.p-skip{background:transparent;color:var(--muted)}

/* 「只看核心」：折叠全部可跳层（证明、预告、拓展思考） */
html.core-only .p-skip{display:none}

/* 打印时一律展开：纸面上没有开关可点，缺内容比多内容更糟 */
@media print{html.core-only .p-skip{display:block}}

/* 阅读分层图例（由 na.js 注入到正文开头）。
   此前是「标题 + 三条说明 + 开关」挤成一段的小字，折行后层级读不出来。
   改成：标题与开关占一行，下面三条各自成行（色块 / 名称 / 适用内容）。 */
.layer-legend{
  margin:var(--space-4) 0 22px;padding:13px var(--space-4) var(--space-3);
  border:1px solid var(--line);background:var(--paper-soft);
  font:var(--fs-md)/1.6 var(--sans);color:var(--ink-2);
}

.layer-legend-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-3);margin-bottom:9px;
}

.layer-legend-title{color:var(--ink);font-weight:700}

.layer-legend ul{display:grid;gap:var(--space-1);margin:0;padding:0;list-style:none}

.layer-legend ul li{
  display:grid;grid-template-columns:var(--space-4) max-content 1fr;
  align-items:center;gap:0 var(--space-2);margin:0;padding:0;border:0;
}

.layer-legend ul li b{color:var(--ink-2);font-weight:600}

.layer-legend ul li .desc{color:var(--muted);font-size:var(--fs-sm)}

.layer-legend .swatch{
  width:10px;height:10px;
  border:1px solid var(--line-strong);border-left:3px solid var(--line-strong);
}

.layer-legend .swatch.core{border-left-color:var(--thm-line);border-left-width:var(--space-1)}

.layer-legend .swatch.skip{border-left-color:var(--line);background:transparent}

.layer-legend button{
  flex:0 0 auto;padding:3px 10px;border:1px solid var(--line-strong);
  background:var(--paper);color:var(--ink-2);
  font:600 var(--fs-xs)/1.4 var(--sans);cursor:pointer;
}

.layer-legend button:hover{border-color:var(--ink);color:var(--ink)}

.layer-legend button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* 例题解答（可折叠） */
details.sol-box{
  margin:13px 0;border:1px solid var(--line);background:var(--paper);
}

/* 折叠态此前只有「> 解答」五个字，整条横栏看起来像空占位。
   补一个右对齐的动作提示，把「这里可以点」说清楚。 */
details.sol-box>summary::after{
  content:"展开";margin-left:auto;color:var(--muted);
  font:600 var(--fs-2xs)/1 var(--mono);letter-spacing:.09em;
}

/* 插图占满版心宽度：SVG 是矢量，放大不损失清晰度；
 * 小尺寸插图（如 330px 宽的手绘坐标系）若按原尺寸显示，标注会小到看不清。
 * 宽插图（viewBox 920）会等比略缩，与原设计在 820px 栏内的观感一致。
 *
 * 但「占满版心」只对宽图成立：窄图（viewBox 宽 ≈360）在 820px 栏内被拉伸
 * 2.2 倍，标注字号随之涨到正文的两倍多，且固定坐标的标注会互相压叠。
 * 这类图在源文件里加 class="fig-sm"，图版限宽到与标注相称的尺寸并居中；
 * 缩放比 ≈1.2，12px 标注落到 14px 左右，与正文、图注同一量级。 */
.content figure svg{display:block;width:100%;height:auto;margin:2px auto}

.content figure.fig-sm{max-width:470px;margin-left:auto;margin-right:auto}

.chapter-cover h1{
  max-width:760px;margin:0 0 14px;padding:0;border:0;
  font-family:var(--sans);font-weight:700;
  font-size:clamp(36px,4vw,48px);line-height:1.16;letter-spacing:0;
  text-wrap:balance;
}

/* ======================================================================== *
 * §6  页内目录（theme/js/na.js 在 H2 ≥ 3 的页面注入）与阅读进度条
 * ======================================================================== */
.page-toc{
  display:grid;grid-template-columns:repeat(2,1fr);gap:2px 22px;
  margin:26px 0 30px;padding:13px 17px 11px;
  border:1px solid var(--line);background:var(--paper-soft);
}

/* §6.6 搜索面板与主题弹层的样式统一收进 theme/css/framework.css（三本共用）；
   主题弹层已还原为 mdBook 原生外观，不再自加皮肤。 */

/* ======================================================================== *
 * §7  响应式
 * ======================================================================== */
@media(max-width:900px) and (min-width:701px){
  /* 同上：不写 --sidebar-width，只改 target，否则窄屏下把手同样拖不动 */
  :root{--page-padding:var(--space-5);--sidebar-target-width:250px}
  .content h1{font-size:30px}
  .chapter-cover h1{font-size:42px}
  .chapter-cover::after{font-size:160px}
  .lesson-brief>div{padding:var(--space-4) 14px}
  .box{padding:18px var(--space-4) 14px}
}

@media(max-width:700px){
  :root{--page-padding:var(--space-4)}
  #mdbook-sidebar .sidebar-scrollbox{padding-top:68px}
  .content h1{font-size:var(--fs-h2)}
  .chapter-cover{padding:34px 0 30px}
  .chapter-cover::after{font-size:140px}
  .chapter-cover .kicker{margin-bottom:30px}
  .chapter-cover h1{font-size:36px}
  .cover-chips{grid-template-columns:1fr;margin-top:var(--space-6)}
  .cover-chips span:nth-child(odd){border-right:0}
  .cover-chips span:nth-child(even){padding-left:0}
  .index-cards{padding-left:25px}
  .index-cards a{display:block;padding:var(--space-3) 9px}
  .index-cards .no,.index-cards .t,.index-cards .d,.index-cards .go{display:block;margin-bottom:5px}
  .study-paths{grid-template-columns:1fr;gap:var(--space-3)}
  .study-path{min-height:0}
  .lesson-brief{grid-template-columns:1fr;border-radius:var(--radius-sm)}
  .lesson-brief>div{padding:15px var(--space-4);border-right:0;border-bottom:1px solid var(--line)}
  .lesson-brief>div:last-child{border-bottom:0}
  .page-toc{grid-template-columns:1fr}
  .box{padding:var(--space-4) 15px var(--space-3)}
  .content table{display:block;overflow-x:auto}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ======================================================================== *
 * §8  打印
 * ======================================================================== */
@media print{
  :root,html.light,html.rust,html.navy,html.coal,html.ayu{
    --page:#fefefe;--paper:#fefefe;--paper-soft:#f6f6f4;
    --ink:#000;--ink-2:#333;--muted:#666;--line:#ccc;--line-strong:#999;
    --def-bg:#f4f6f7;--thm-bg:#f6f4f7;--ex-bg:#f4f7f4;
    --think-bg:#f8f5ee;--err-bg:#faf1ef;--method-bg:#f2f6f6;
    --intuition-bg:#eef3fc;
    /* 与《矩阵论》§8 同一套纪律：打印必须重设**全部**颜色令牌。默认主题是
       ayu（暗色），只重设底色时，强调色与盒标签文字仍沿用暗色值——白纸上实测
       1.6–2.3:1（形同虚设）。下面取值沿用亮色主题已验收的档位（≈5.7:1）。 */
    --control-line:#8f806d;
    --accent:#b96543;--accent-strong:#9f5033;--accent-text:#9f5033;
    --links:var(--accent-strong);--inline-code-color:var(--accent-strong);
    --accent-soft:rgba(185,101,67,.10);
    --sage:#4f6f62;--shadow-ink:rgba(50,40,29,.86);
    --surface-card:#ffffff;--surface-soft:#f6f6f4;
    /* 语义盒子：底色 + 标签文字色 + 边框色三者都要给 */
    --def-ink:#284f5b;--def-line:#456f7c;
    --thm-ink:#55425f;--thm-line:#705d79;
    --ex-ink:#3c5740;--ex-line:#58735b;
    --think-ink:#73551f;--think-line:#967331;
    --err-ink:#87342d;--err-line:#a7473d;
    --method-ink:#2e615d;--method-line:#447a75;
    --table-alternate-bg:#f6f6f4;
    /* 插图配色必须一并回落到亮色值：从暗色主题打印时，若沿用暗色令牌，
       浅色线条会印在白纸上，等于消失。 */
    --fig-blue:#2456a6;--fig-purple:#4c3d99;--fig-green:#1f6b3a;
    --fig-gold:#8a5a00;--fig-red:#9c2b25;--fig-neutral:#5b544a;
  }
  body{background:#fefefe;font-size:11.5pt}
  #mdbook-sidebar,#mdbook-menu-bar,#progress,.nav-wrapper,#mdbook-search-wrapper{display:none!important}
  /* 纸面上点不动：隐藏「只看核心」开关与折叠解答的展开/收起提示 */
  .layer-legend button,details.sol-box>summary::after{display:none}
  .content{padding:0;max-width:none}
  .chapter-cover::after{display:none}
  .box,details.sol-box,table,figure,ul.objlist li{break-inside:avoid}
  a.crossref{border:0;color:#000;text-decoration:underline}
}

/* ======================================================================== *
 * §9  特训 · 竞技与考场（theme/js/arena.js）
 *   竞技场是「可降级增强」：题库（.arena-bank）默认就是一份普通的问答清单，
 *   打印、搜索、关 JS 都能读；脚本在它上方另起一块交互舞台，把题目克隆进去
 *   做限时答题。因此所有交互态类名都只加在克隆体上，原始题库不受影响。
 * ======================================================================== */
.arena-shell{
  margin:var(--space-6) 0 var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius);
  background:var(--surface-card);overflow:hidden;
}

html.navy .arena-shell,html.coal .arena-shell,html.ayu .arena-shell{box-shadow:0 var(--space-6) var(--space-12) var(--shadow-deep)}

.arena-head{
  display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;
  padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line);
  background:var(--paper-soft);
}

.arena-head .arena-title{font:700 15px/1.3 var(--serif-display)}

.arena-head .arena-sub{color:var(--muted);font:var(--fs-xs)/1.4 var(--mono)}

.arena-head .arena-spacer{margin-left:auto}

.arena-a11y-help{color:var(--muted);font:10.5px/1.5 var(--mono)}

/* —— HUD —— */
.arena-hud{
  display:none;grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--line);
}

.arena-hud.is-on{display:grid}

.arena-stat{padding:11px var(--space-4);border-right:1px solid var(--line)}

.arena-stat:last-child{border-right:0}

.arena-stat .k{display:block;color:var(--muted);font:700 9.5px/1.5 var(--mono);letter-spacing:.09em}

.arena-stat .v{font:700 20px/1.25 var(--mono);color:var(--ink)}

.arena-stat .v small{font:600 var(--fs-xs)/1 var(--mono);color:var(--muted);margin-left:3px}

.arena-stat.is-hot .v{color:var(--accent-text)}

.arena-bar{
  grid-column:1/-1;height:3px;background:var(--line);
}

.arena-bar>i{display:block;height:100%;width:100%;background:var(--accent);transition:width .25s linear}

.arena-bar.is-danger>i{background:var(--err-line)}

/* —— 开始面板 / 关卡 —— */
.arena-panel{padding:var(--space-5)}

.arena-panel[hidden]{display:none}

.arena-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:var(--space-3)}

.arena-level{
  position:relative;display:flex;flex-direction:column;gap:6px;
  padding:15px var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--paper);cursor:pointer;text-align:left;color:inherit;
  font:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;
}

.arena-level:hover:not(:disabled){border-color:var(--ink);box-shadow:3px 3px 0 var(--shadow-ink);transform:translateY(-1px)}

.arena-level:disabled{cursor:not-allowed;opacity:.55}

.arena-level .lv-no{color:var(--accent-text);font:700 var(--fs-2xs)/1.4 var(--mono);letter-spacing:.1em}

.arena-level .lv-name{font:700 16px/1.3 var(--serif-display)}

.arena-level .lv-desc{color:var(--muted);font:var(--fs-sm)/1.6 var(--sans)}

.arena-level .lv-meta{margin-top:auto;padding-top:var(--space-2);color:var(--muted);font:10.5px/1.5 var(--mono);display:flex;gap:10px;flex-wrap:wrap}

.arena-level .lv-best{color:var(--accent-text);font-weight:700}

.arena-level .lv-flag{position:absolute;top:var(--space-3);right:13px;font:700 var(--fs-2xs)/1 var(--mono);letter-spacing:.06em}

.arena-level.is-cleared{border-color:var(--sage)}

.arena-level.is-cleared .lv-flag{color:var(--sage)}

/* —— 舞台 —— */
.arena-stage{padding:var(--space-5)}

.arena-stage[hidden]{display:none}

.arena-progress{color:var(--muted);font:700 10.5px/1.5 var(--mono);letter-spacing:.08em;margin-bottom:10px}

.arena-qview .aq-prompt{margin:0 0 14px;font:16px/1.75 var(--sans)}

.arena-qview .aq-prompt p:first-child{margin-top:0}

.arena-opts{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}

.arena-opts li{
  display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;
  padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--paper);cursor:pointer;font:14.5px/1.65 var(--sans);
  transition:border-color .12s,background .12s;
}

.arena-opts li .opt-key{
  color:var(--muted);font:700 var(--fs-sm)/1.7 var(--mono);
}

.arena-opts li:hover:not(.is-locked){border-color:var(--ink);background:var(--paper-soft)}

.arena-opts li .katex{font-size:1em}

.arena-opts li.is-picked{border-color:var(--accent-strong)}

.arena-opts li.is-correct{
  border-color:var(--ex-line);background:var(--ex-bg);
}

.arena-opts li.is-correct .opt-key{color:var(--ex-ink)}

.arena-opts li.is-wrong{
  border-color:var(--err-line);background:var(--err-bg);
}

.arena-opts li.is-wrong .opt-key{color:var(--err-ink)}

.arena-opts li.is-locked{cursor:default}

.arena-opts li.is-dim{opacity:.6}

.arena-feedback{
  margin-top:14px;padding:var(--space-3) 15px;border-left:3px solid var(--line);
  background:var(--paper-soft);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  font:13.5px/1.75 var(--sans);
}

.arena-feedback.is-correct{border-left-color:var(--ex-line);background:var(--ex-bg)}

.arena-feedback.is-wrong{border-left-color:var(--err-line);background:var(--err-bg)}

.arena-feedback .fb-verdict{display:block;margin-bottom:var(--space-1);font:700 var(--fs-sm)/1.4 var(--mono);letter-spacing:.05em}

.arena-feedback.is-correct .fb-verdict{color:var(--ex-ink)}

.arena-feedback.is-wrong .fb-verdict{color:var(--err-ink)}

.arena-feedback .fb-src{display:block;margin-top:7px;color:var(--muted);font:var(--fs-xs)/1.5 var(--mono)}

.arena-actions{margin-top:var(--space-4);display:flex;gap:10px;flex-wrap:wrap}

.arena-btn{
  padding:9px 18px;border:1px solid var(--ink);border-radius:999px;
  background:var(--ink);color:var(--paper);cursor:pointer;
  font:700 var(--fs-md)/1 var(--sans);letter-spacing:.02em;
}

.arena-btn:hover{background:var(--accent-strong);border-color:var(--accent-strong)}

.arena-btn.ghost{background:transparent;color:var(--ink)}

.arena-btn.ghost:hover{background:var(--paper-soft);color:var(--ink);border-color:var(--ink)}

/* —— 结算 —— */
.arena-result{padding:var(--space-6) 22px}

.arena-result .rs-score{font:700 46px/1 var(--mono);color:var(--accent-text)}

.arena-result .rs-tier{margin:6px 0 var(--space-4);font:600 var(--fs-h4)/1.4 var(--serif-display)}

.arena-tally{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}

.arena-tally>div{padding:11px 14px;border-right:1px solid var(--line)}

.arena-tally>div:last-child{border-right:0}

.arena-tally .k{display:block;color:var(--muted);font:700 9.5px/1.5 var(--mono);letter-spacing:.08em}

.arena-tally .v{font:700 18px/1.3 var(--mono)}

.arena-newbest{margin-top:var(--space-3);color:var(--accent-text);font:700 var(--fs-sm)/1.5 var(--mono)}

/* —— 段位徽章 —— */
.rank-badge{
  display:inline-flex;align-items:center;gap:7px;padding:var(--space-1) var(--space-3) var(--space-1) 10px;
  border-radius:999px;border:1px solid currentColor;font:700 var(--fs-sm)/1 var(--sans);
}

.rank-badge::before{content:"";width:var(--space-2);height:var(--space-2);border-radius:50%;background:currentColor}

.rank-bronze{color:var(--rank-bronze)}

.rank-silver{color:var(--rank-silver)}

.rank-gold{color:var(--rank-gold)}

.rank-platinum{color:var(--rank-platinum)}

.rank-diamond{color:var(--rank-diamond)}

.rank-king{color:var(--accent-strong)}

/* —— 错题本 —— */
.arena-wrongbook{margin-top:18px;border-top:1px dashed var(--line-strong);padding-top:14px}

.arena-wrongbook .wb-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}

.arena-wrongbook .wb-head b{font:700 var(--fs-md)/1.4 var(--sans)}

.arena-wrongbook .wb-head span{color:var(--muted);font:var(--fs-xs)/1.4 var(--mono)}

.arena-wrongbook ol{margin:0;padding-left:var(--space-5)}

.arena-wrongbook li{margin:0 0 7px;font:12.5px/1.6 var(--sans)}

.arena-wrongbook li .wb-tag{color:var(--accent-text);font:700 10.5px/1.4 var(--mono);margin-right:7px}

.arena-wrongbook li a{color:var(--ink-2)}

.arena-wrongbook .wb-empty{color:var(--muted);font:var(--fs-sm)/1.6 var(--sans)}

/* —— 题库底色与打印 —— */
.arena-bank-note{margin:34px 0 var(--space-1);color:var(--muted);font:var(--fs-sm)/1.7 var(--sans)}

.arena-bank .arena-q{
  margin:0 0 14px;padding:15px 18px 14px;border:1px solid var(--line);
  border-left:3px solid var(--ex-line);border-radius:var(--radius-sm);
  background:var(--surface-card);
}

.arena-bank .aq-hd{display:flex;gap:9px;flex-wrap:wrap;align-items:baseline;margin-bottom:var(--space-2)}

.arena-bank .aq-id{color:var(--accent-text);font:700 10.5px/1.5 var(--mono);letter-spacing:.06em}

.arena-bank .aq-tag{color:var(--muted);font:10.5px/1.5 var(--mono)}

.arena-bank .aq-prompt{font:14.5px/1.7 var(--sans)}

.arena-bank .aq-prompt p:first-child{margin-top:0}

.arena-bank .aq-opts{margin:9px 0 0;padding-left:1.35em;font:13.5px/1.7 var(--sans)}

.arena-bank .aq-opts li{margin:2px 0}

.arena-bank .aq-exp{margin-top:9px;border-top:1px dashed var(--line);padding-top:7px}

.arena-bank .aq-exp>summary{cursor:pointer;color:var(--muted);font:700 var(--fs-xs)/1.6 var(--mono)}

.arena-bank .aq-exp[open]>summary{color:var(--ink-2)}

.arena-bank .aq-exp .exp-body{padding:5px 2px 2px;font:var(--fs-md)/1.7 var(--sans)}

.arena-bank .aq-exp .exp-body p:first-child{margin-top:0}

.arena-bank .aq-src{display:block;margin-top:6px;color:var(--muted);font:var(--fs-xs)/1.5 var(--mono)}

.arena-bank .aq-key{color:var(--ex-ink);font-weight:700}

@media(max-width:700px){
  .arena-hud.is-on{grid-template-columns:repeat(2,1fr)}
  .arena-stat{border-bottom:1px solid var(--line)}
  .arena-stat:nth-child(2n){border-right:0}
  .arena-tally{grid-template-columns:1fr}
  .arena-tally>div{border-right:0;border-bottom:1px solid var(--line)}
  .arena-tally>div:last-child{border-bottom:0}
}

@media print{
  .arena-shell,.arena-wrongbook,.arena-a11y-help{display:none!important}
  .arena-bank .aq-exp>summary{color:#000}
  .arena-bank .arena-q{break-inside:avoid}
}
