/* 《妓男的生活》作品站 · 夜班台账版式
   细横线 + 左侧竖发丝轨 + 桌面端页边槽；夜 / 纸 / 褐 三套底色。 */

:root {
  --fx-title: "Kaiti SC", STKaiti, KaiTi, "Noto Serif CJK SC", serif;
  --fx-text: "STSong", "Source Han Serif SC", "Songti TC", "Times New Roman", serif;
  --fx-ui: "Lantinghei SC", "Heiti SC", "Microsoft YaHei", Tahoma, sans-serif;
  --fx-num: Baskerville, "Iowan Old Style", Palatino, Georgia, serif;

  --bg: #0f1218;
  --surf: #171d26;
  --surf2: #1c232e;
  --line: #28303c;
  --line2: #3a4452;
  --fg: #ddd6c8;
  --dim: #93a0b0;
  --amber: #c98a3c;
  --teal: #5d8f93;
  --rust: #a8574a;

  /* 用 rem 而不是 ch：ch 随元素自身字号变化，会让 h1 的横线比正文列宽。 */
  --col: 39rem;
  --fsz: 1.0625rem;
  --lh: 1.9;
  --rad: 3px;
}

html[data-mode="paper"] {
  --bg: #e8e2d6; --surf: #f2ece0; --surf2: #e1dacb;
  --line: #cdc4b2; --line2: #b3a893; --fg: #2b2722; --dim: #6b6256;
  --amber: #96601c; --teal: #3c6a6d; --rust: #8c3b2f;
}
html[data-mode="sepia"] {
  --bg: #e3d6bd; --surf: #eee2cb; --surf2: #d9cab0;
  --line: #c3b091; --line2: #a89272; --fg: #3a2f22; --dim: #6f5f48;
  --amber: #8a5513; --teal: #42665c; --rust: #8a3a26;
}

html[data-fs="1"] { --fsz: .9375rem; }
html[data-fs="2"] { --fsz: 1.0625rem; }
html[data-fs="3"] { --fsz: 1.1875rem; }
html[data-fs="4"] { --fsz: 1.3125rem; }
html[data-lh="1"] { --lh: 1.68; }
html[data-lh="2"] { --lh: 1.9; }
html[data-lh="3"] { --lh: 2.15; }

* { box-sizing: border-box; }
/* 原生勾选框与滚动条跟随当前底色，否则夜色下会出现一块白底。 */
html { -webkit-text-size-adjust: 100%; color-scheme: dark; }
html[data-mode="paper"], html[data-mode="sepia"] { color-scheme: light; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--fx-text);
  font-size: var(--fsz);
  line-height: var(--lh);
  overflow-wrap: break-word;
}
img, svg { max-width: 100%; }
a { color: var(--fg); text-decoration-color: var(--line2); text-underline-offset: 3px; }
a:hover { color: var(--amber); text-decoration-color: var(--amber); }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }

.nb { white-space: nowrap; overflow-wrap: normal; }
.vh {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; overflow: hidden; clip-path: inset(50%); border: 0; white-space: nowrap;
}
.skip {
  position: absolute; left: -200vw; top: 0; width: 1px; height: 1px;
  overflow: hidden; background: var(--amber); color: var(--bg);
}
.skip:focus { left: .5rem; top: .5rem; width: auto; height: auto; padding: .4rem .7rem; z-index: 9; }

/* ── 顶部（不吸顶，避免遮挡控件） ── */
.top { border-bottom: 1px solid var(--line); background: var(--surf); }
.top__in {
  max-width: 78rem; margin: 0 auto; padding: .85rem 1rem .6rem;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: .55rem;
}
.brand { display: block; text-decoration: none; min-width: 0; }
.brand__n {
  display: block; font-family: var(--fx-title); font-size: 1.32rem;
  letter-spacing: .04em; line-height: 1.35; color: var(--fg);
}
.brand__s {
  display: block; font-family: var(--fx-ui); font-size: .72rem;
  letter-spacing: .22em; color: var(--dim); margin-top: .15rem;
}
.navwrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  border-top: 1px solid var(--line); background: var(--bg);
}
.nav {
  max-width: 78rem; margin: 0 auto; padding: 0 1rem;
  display: flex; gap: .15rem; white-space: nowrap;
}
.nav a {
  font-family: var(--fx-ui); font-size: .84rem; padding: .62rem .72rem;
  text-decoration: none; color: var(--dim); border-bottom: 2px solid transparent;
}
.nav a:hover { color: var(--fg); }
.nav a[aria-current] { color: var(--amber); border-bottom-color: var(--amber); }

/* ── 阅读设置 ── */
.prefs {
  border: 1px solid var(--line); border-radius: var(--rad);
  background: var(--bg); font-family: var(--fx-ui);
}
.prefs > summary {
  cursor: pointer; padding: .45rem .7rem; font-size: .8rem;
  color: var(--dim); list-style: none;
}
.prefs > summary::-webkit-details-marker { display: none; }
.prefs > summary::after { content: "＋"; float: right; }
.prefs[open] > summary::after { content: "－"; }
.prefs > summary:hover { color: var(--fg); }
.prefs__body { padding: .2rem .7rem .7rem; border-top: 1px solid var(--line); }
/* 关闭时必须真正不渲染：Chrome 对已折叠 details 的子节点仍给出非零矩形，
   那些按钮会被当成「被遮挡的控件」。 */
.prefs:not([open]) .prefs__body { display: none; }
.prow { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .5rem 0; }
.plab { font-size: .76rem; color: var(--dim); min-width: 2.6rem; }
.pgrp { display: flex; flex-wrap: wrap; gap: .3rem; }
.pb {
  font-family: var(--fx-ui); font-size: .78rem; padding: .3rem .6rem;
  background: var(--surf2); color: var(--fg); border: 1px solid var(--line);
  border-radius: var(--rad); cursor: pointer;
}
.pb:hover { border-color: var(--line2); }
.pb[aria-pressed="true"] { background: var(--amber); color: var(--bg); border-color: var(--amber); }
.prefs__note, .small { font-size: .74rem; line-height: 1.7; color: var(--dim); font-family: var(--fx-ui); }
.ls-warn {
  font-size: .78rem; line-height: 1.7; color: var(--bg); background: var(--rust);
  padding: .45rem .6rem; border-radius: var(--rad); margin: .5rem 0;
}
.btn {
  font-family: var(--fx-ui); font-size: .82rem; padding: .45rem .9rem;
  background: var(--surf2); color: var(--fg);
  border: 1px solid var(--line2); border-radius: var(--rad); cursor: pointer;
}
.btn:hover { border-color: var(--amber); color: var(--amber); }
.btn--warn:hover { border-color: var(--rust); color: var(--rust); }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.state { font-family: var(--fx-ui); font-size: .76rem; color: var(--teal); }
.state--bad { color: var(--rust); }
.lnk { font-family: var(--fx-ui); font-size: .76rem; color: var(--dim); }

/* ── 台账骨架 ── */
.ledger {
  max-width: 78rem; margin: 0 auto; padding: 1.4rem 1rem 2.5rem;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.6rem;
}
.ledger > * { min-width: 0; }
.doc { min-width: 0; }
.doc > * { max-width: var(--col); }
.doc > .hero, .doc > .figure--w, .doc > .vol, .doc > .cards, .doc > .tw,
.doc > .idx, .doc > .prog, .doc > .pits, .doc > .pager { max-width: none; }

.bc { font-family: var(--fx-ui); font-size: .76rem; color: var(--dim); margin-bottom: .9rem; }
.bc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem; }
.bc li + li::before { content: "／"; margin-right: .3rem; color: var(--line2); }
.bc a { color: var(--dim); }

.h1 {
  font-family: var(--fx-title); font-weight: 400; font-size: clamp(1.5rem, 5.6vw, 2.3rem);
  line-height: 1.42; margin: 0 0 .7rem; letter-spacing: .01em;
  padding-bottom: .7rem; border-bottom: 2px solid var(--line2);
}
.lead { font-size: 1.02em; color: var(--fg); margin: 0 0 1rem; }
.sub { font-family: var(--fx-ui); font-size: .8rem; color: var(--dim); margin: 0 0 1.2rem; }

.doc h2 {
  font-family: var(--fx-title); font-weight: 400; font-size: 1.32rem; line-height: 1.5;
  margin: 2.2rem 0 .8rem; padding-bottom: .35rem; border-bottom: 1px solid var(--line);
}
.doc h3 { font-family: var(--fx-ui); font-size: .98rem; margin: 1.5rem 0 .5rem; color: var(--amber); }
.prose p { margin: 0 0 1.05em; text-indent: 1.9em; }
.prose p:first-child, .prose blockquote p, .prose h2 + p { text-indent: 1.9em; }
.prose blockquote {
  margin: 1.4em 0; padding: .1rem 0 .1rem 1.1rem;
  border-left: 2px solid var(--amber); color: var(--dim);
}
.prose blockquote p { text-indent: 0; font-size: .96em; }
.lst { margin: 0 0 1.1em; padding-left: 1.3em; }
.lst li { margin: .35em 0; }
.lst--n { list-style: decimal; }
.defs { margin: 0 0 1.2em; }
.defs dt { font-family: var(--fx-ui); font-size: .88rem; color: var(--amber); margin-top: .9em; }
.defs dd { margin: .2em 0 0; padding-left: 0; }
.sidenote {
  margin: 1.3em 0; padding: .75rem .9rem; background: var(--surf);
  border-left: 3px solid var(--teal); border-radius: 0 var(--rad) var(--rad) 0;
}
.sidenote p { margin: 0; text-indent: 0; font-size: .92em; color: var(--dim); }

.fict {
  font-family: var(--fx-ui); font-size: .78rem; line-height: 1.7; color: var(--fg);
  background: var(--surf); border: 1px dashed var(--line2); border-radius: var(--rad);
  padding: .55rem .7rem; margin: 0 0 1.2rem;
}
.fict__k {
  display: inline-block; background: var(--rust); color: #fff;
  font-size: .7rem; padding: .08rem .4rem; border-radius: 2px; margin-right: .4rem;
  letter-spacing: .08em;
}

/* 表格降级为横向滚动 */
.tw { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1.3em; }
.tbl { border-collapse: collapse; min-width: 28rem; font-family: var(--fx-ui); font-size: .84rem; }
.tbl th, .tbl td { border: 1px solid var(--line); padding: .45rem .6rem; text-align: left; }
.tbl thead th { background: var(--surf2); color: var(--amber); white-space: nowrap; }

/* ── 首页主视觉 ── */
.hero { margin: 0 0 1.4rem; border: 1px solid var(--line); border-radius: var(--rad); overflow: hidden; background: var(--surf); }
.art { display: block; width: 100%; height: auto; }
.hero__cap, .figure__c {
  font-family: var(--fx-ui); font-size: .74rem; color: var(--dim);
  margin: 0; padding: .5rem .7rem; border-top: 1px solid var(--line);
}
.sk-sky { fill: var(--surf); }
.sk-blk { fill: none; stroke: var(--line2); stroke-width: 1.2; }
.sk-lit { fill: var(--amber); }
.sk-dim { fill: var(--line); }
.sk-ground { stroke: var(--line2); stroke-width: 1.4; fill: none; }
.sk-road { fill: var(--surf2); stroke: none; }
.sk-route { fill: none; stroke: var(--teal); stroke-width: 2; stroke-dasharray: 7 5; }
.sk-stop { fill: var(--bg); stroke: var(--teal); stroke-width: 2; }

.figure { margin: 0 0 1.4rem; border: 1px solid var(--line); border-radius: var(--rad); background: var(--surf); }
.figure .art { padding: .9rem; max-width: 15rem; margin: 0 auto; }
.figure--w .art { max-width: 100%; }

/* 时刻徽记 */
.chmeta {
  display: grid; grid-template-columns: minmax(0, 5.5rem) minmax(0, 1fr);
  gap: 1rem; align-items: center; margin: 0 0 1.5rem;
  padding: .9rem; border: 1px solid var(--line); border-radius: var(--rad); background: var(--surf);
}
.chmeta .art--clock { width: 100%; }
.chmeta__d { margin: 0; font-family: var(--fx-ui); font-size: .8rem; }
.chmeta__d dt { color: var(--dim); font-size: .72rem; letter-spacing: .1em; }
.chmeta__d dd { margin: 0 0 .5rem; color: var(--fg); }
.chmeta__d dd:last-child { margin-bottom: 0; }
.cl-ring { fill: none; stroke: var(--line); stroke-width: 1.4; }
.cl-night { fill: none; stroke: var(--line2); stroke-width: 6; stroke-linecap: round; }
.cl-tick { stroke: var(--line2); stroke-width: 1.2; }
.cl-hand { stroke: var(--amber); stroke-width: 2; stroke-linecap: round; }
.cl-hub { fill: var(--amber); }
.cl-now { fill: var(--bg); stroke: var(--amber); stroke-width: 2; }
.cl-txt { fill: var(--dim); font-family: var(--fx-num); font-size: 13px; }

.bd-card { fill: var(--surf2); stroke: var(--line2); stroke-width: 1.4; }
.bd-clip, .bd-rule { fill: none; stroke: var(--line2); stroke-width: 1.4; }
.bd-hole { fill: var(--bg); stroke: var(--line2); stroke-width: 1.2; }
.bd-head, .bd-body { fill: none; stroke: var(--teal); stroke-width: 1.6; }
.bd-tag { fill: var(--amber); }
.bd-txt { fill: var(--dim); font-family: var(--fx-ui); font-size: 13px; }

.pl-out { fill: var(--surf2); stroke: var(--line2); stroke-width: 1.4; }
.pl-room, .pl-hall { fill: none; stroke: var(--line2); stroke-width: 1.2; }
.pl-hall { stroke-dasharray: 4 3; }
.pl-wall, .pl-col, .pl-arch { fill: none; stroke: var(--line2); stroke-width: 1.8; }
.pl-door { stroke: var(--amber); stroke-width: 2.2; fill: none; }
.pl-dash, .pl-shelf { stroke: var(--line); stroke-width: 1.1; fill: none; stroke-dasharray: 5 4; }
.pl-win { fill: var(--teal); }
.pl-dot { fill: var(--teal); }
.pl-t { fill: var(--dim); font-family: var(--fx-ui); font-size: 11px; }

.br-track { fill: var(--surf2); }
.br-seg { stroke: var(--bg); stroke-width: 1; }
.br-seg--0 { fill: var(--amber); }
.br-seg--1 { fill: var(--teal); }
.br-seg--2 { fill: var(--rust); }
.br-seg--3 { fill: var(--line2); }
.br-in { fill: var(--bg); font-family: var(--fx-num); font-size: 14px; }
.br-lg { fill: var(--dim); font-family: var(--fx-ui); font-size: 12px; }

.ob-l { fill: none; stroke: var(--line2); stroke-width: 1.6; }
.ob-f { fill: var(--amber); stroke: none; }
.ob-r { stroke: var(--line); stroke-width: 1.1; fill: none; }
.ob-d { stroke: var(--teal); stroke-width: 1.4; fill: none; stroke-dasharray: 4 3; }

/* ── 卷与章列表 ── */
.vol { margin: 0 0 1.8rem; }
.vol__h {
  font-family: var(--fx-title); font-weight: 400; font-size: 1.16rem; margin: 0 0 .3rem;
  display: flex; flex-wrap: wrap; gap: .6rem; align-items: baseline;
  padding-bottom: .3rem; border-bottom: 1px solid var(--line);
}
.vol__s { font-family: var(--fx-num); font-size: .82rem; color: var(--amber); }
.vol__n { font-size: .9rem; color: var(--dim); margin: 0 0 .7rem; }
.chl, .trk { list-style: none; margin: 0; padding: 0; }
.chl__i { border-bottom: 1px solid var(--line); }
.chl__i a {
  display: grid; grid-template-columns: 2.1rem minmax(0, 1fr) auto;
  gap: .6rem; align-items: baseline; padding: .55rem .2rem; text-decoration: none;
}
.chl__i a:hover { background: var(--surf); }
.chl__n { font-family: var(--fx-num); font-size: 1.05rem; color: var(--amber); font-weight: 400; }
.chl__t { min-width: 0; }
.chl__m { font-family: var(--fx-num); font-size: .82rem; color: var(--dim); }

.trk__i {
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  gap: .1rem .6rem; padding: .55rem 0; border-bottom: 1px solid var(--line);
  align-items: start;
}
.trk__c { display: flex; align-items: center; padding-top: .25rem; cursor: pointer; }
.trk__k { width: 1.05rem; height: 1.05rem; accent-color: var(--amber); cursor: pointer; margin: 0; }
.trk__a { grid-column: 2; display: grid; grid-template-columns: 2.1rem minmax(0, 1fr) auto; gap: .6rem; align-items: baseline; text-decoration: none; }
.trk__n { font-family: var(--fx-num); color: var(--amber); font-weight: 400; }
.trk__t { min-width: 0; }
.trk__m { font-family: var(--fx-num); font-size: .82rem; color: var(--dim); }
.trk__x { grid-column: 2; font-size: .84rem; color: var(--dim); }

.prog { margin: 0 0 1.3rem; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: var(--rad); background: var(--surf); }
.prog__l { margin: 0 0 .5rem; font-family: var(--fx-ui); font-size: .86rem; }
.prog__l b { font-family: var(--fx-num); font-size: 1.15rem; color: var(--amber); padding: 0 .15rem; }
.prog__bar { height: 6px; background: var(--bg); border: 1px solid var(--line2); border-radius: 3px; overflow: hidden; }
.prog__bar span { display: block; height: 100%; background: var(--amber); transition: width .2s; }
.prog__n { margin: .5rem 0 0; font-family: var(--fx-ui); font-size: .72rem; color: var(--dim); }

.resume {
  margin: 0 0 1.4rem; padding: .7rem .9rem; border-left: 3px solid var(--teal);
  background: var(--surf); font-family: var(--fx-ui); font-size: .86rem;
}
.resume p { margin: 0; }
.resume b { color: var(--amber); font-weight: 400; }

/* ── 卡片 ── */
.cards { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; }
.card { min-width: 0; }
.card__a {
  display: grid; gap: .25rem; padding: .8rem .9rem; text-decoration: none;
  border: 1px solid var(--line); border-radius: var(--rad); background: var(--surf);
  min-width: 0;
}
.card__a:hover { border-color: var(--amber); }
.card__k { font-family: var(--fx-ui); font-size: .68rem; letter-spacing: .16em; color: var(--teal); }
.card__t { font-family: var(--fx-title); font-size: 1.08rem; line-height: 1.5; }
.card__n { font-family: var(--fx-ui); font-size: .78rem; line-height: 1.65; color: var(--dim); }

.pits { display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem; margin: 0 0 1.5rem; }
.pit { min-width: 0; padding: .9rem; border-top: 2px solid var(--line2); background: var(--surf); }
.pit h3 { margin: 0 0 .35rem; }
.pit p { margin: 0; font-size: .92rem; }

.chips { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.chips a {
  display: inline-flex; gap: .4rem; align-items: baseline;
  font-family: var(--fx-ui); font-size: .8rem; padding: .32rem .6rem;
  border: 1px solid var(--line); border-radius: var(--rad); text-decoration: none; background: var(--surf);
}
.chips a:hover { border-color: var(--amber); }
.chips time { font-family: var(--fx-num); color: var(--amber); }

/* ── 章节工具区 ── */
.tools { margin: 2rem 0 1.5rem; padding: .95rem; border: 1px solid var(--line); border-radius: var(--rad); background: var(--surf); }
.tools__r { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin: .5rem 0; }
.tools__nl { display: block; font-family: var(--fx-ui); font-size: .8rem; color: var(--dim); margin: .9rem 0 .3rem; }
.ta {
  width: 100%; max-width: 100%; font-family: var(--fx-text); font-size: .94rem; line-height: 1.7;
  padding: .55rem .65rem; background: var(--bg); color: var(--fg);
  border: 1px solid var(--line2); border-radius: var(--rad); resize: vertical;
}

.pager { display: grid; grid-template-columns: minmax(0, 1fr); gap: .6rem; margin: 1.6rem 0 1rem; }
.pager__p, .pager__n {
  display: grid; gap: .15rem; padding: .7rem .85rem; min-width: 0;
  border: 1px solid var(--line); border-radius: var(--rad); background: var(--surf); text-decoration: none;
}
.pager a:hover { border-color: var(--amber); }
.pager span { font-family: var(--fx-ui); font-size: .72rem; letter-spacing: .12em; color: var(--dim); }
.pager b { font-weight: 400; font-family: var(--fx-title); font-size: 1rem; }
.pager__n { text-align: right; }
.pager__p--off { opacity: .55; }
.kbd { font-family: var(--fx-ui); font-size: .74rem; color: var(--dim); }

/* ── 索引 ── */
.find { margin: 0 0 1.2rem; }
.find__l { display: block; font-family: var(--fx-ui); font-size: .8rem; color: var(--dim); margin-bottom: .35rem; }
.find__i {
  width: 100%; max-width: 100%; font-family: var(--fx-ui); font-size: 1rem;
  padding: .6rem .7rem; background: var(--surf); color: var(--fg);
  border: 1px solid var(--line2); border-radius: var(--rad);
}
.find__c { margin: .45rem 0 0; font-family: var(--fx-ui); font-size: .78rem; color: var(--teal); }
.idx { list-style: none; margin: 0 0 1.2rem; padding: 0; }
.idx__i { border-bottom: 1px solid var(--line); }
.idx__i a {
  display: grid; grid-template-columns: 3.1rem minmax(0, 1fr); gap: .2rem .7rem;
  padding: .6rem .2rem; text-decoration: none; align-items: baseline;
}
.idx__i a:hover { background: var(--surf); }
.idx__k { font-family: var(--fx-ui); font-size: .68rem; letter-spacing: .1em; color: var(--teal); }
.idx__t { font-family: var(--fx-title); font-size: 1.04rem; min-width: 0; }
.idx__n { grid-column: 2; font-family: var(--fx-ui); font-size: .77rem; color: var(--dim); }
.idx__empty { font-family: var(--fx-ui); font-size: .86rem; color: var(--rust); }

/* ── 侧栏与页边槽 ── */
.rail { display: none; }
.side { border-top: 2px solid var(--line2); padding-top: .9rem; min-width: 0; }
.side__h { font-family: var(--fx-ui); font-size: .76rem; letter-spacing: .14em; color: var(--dim); margin: 1.1rem 0 .45rem; }
.side__h:first-child { margin-top: 0; }
.side__l { list-style: none; margin: 0 0 .9rem; padding: 0; font-family: var(--fx-ui); font-size: .84rem; }
.side__l li { border-bottom: 1px solid var(--line); }
.side__l li b { display: block; font-weight: 400; }
.side__l li span { color: var(--dim); font-size: .78rem; }
.side__l a { display: block; padding: .4rem .1rem; text-decoration: none; }
.side__l a:hover { background: var(--surf); }
.side__l a[aria-current] { color: var(--amber); }
.side__l--t a { display: grid; grid-template-columns: 3.1rem minmax(0, 1fr); gap: .5rem; align-items: baseline; }
.side__l--t time { font-family: var(--fx-num); font-size: .8rem; color: var(--amber); }
.side__l--c li { display: flex; justify-content: space-between; gap: .5rem; padding: .35rem .1rem; }
.side__l--c b { font-family: var(--fx-num); color: var(--amber); font-weight: 400; }
.side__p { font-family: var(--fx-ui); font-size: .76rem; color: var(--dim); }

/* ── 页脚 ── */
.foot { border-top: 1px solid var(--line); background: var(--surf); margin-top: 1rem; }
.foot__nav ul {
  max-width: 78rem; margin: 0 auto; padding: 1.1rem 1rem .4rem; list-style: none;
  display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; font-family: var(--fx-ui); font-size: .82rem;
}
.foot__note, .foot__meta {
  max-width: 78rem; margin: 0 auto; padding: 0 1rem .4rem;
  font-family: var(--fx-ui); font-size: .76rem; line-height: 1.75; color: var(--dim);
}
.foot__meta { padding-bottom: 1.4rem; }

/* ── 响应式 ── */
@media (min-width: 640px) {
  .cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pager { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .top__in { grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); align-items: center; }
}

@media (min-width: 1080px) {
  .ledger {
    grid-template-columns: minmax(0, 5rem) minmax(0, 1fr) minmax(0, 16rem);
    column-gap: 2.2rem; padding-top: 2rem;
  }
  .ledger > .doc { grid-column: 2; grid-row: 1; }
  .ledger > .rail { grid-column: 1; grid-row: 1; }
  .ledger > .side { grid-column: 3; grid-row: 1; }
  .ledger:has(> .doc:only-child) { grid-template-columns: minmax(0, 1fr); }
  .ledger:has(> .doc:only-child) > .doc { grid-column: 1; }
  .side { border-top: 0; border-left: 1px solid var(--line); padding: 0 0 0 1.2rem; }
  .rail {
    display: block; text-align: right; border-right: 1px solid var(--line);
    padding-right: .9rem; font-family: var(--fx-ui);
  }
  .rail__n { display: block; font-family: var(--fx-num); font-size: 2.6rem; line-height: 1; color: var(--amber); font-weight: 400; }
  .rail__v { display: block; font-size: .74rem; color: var(--dim); margin-top: .35rem; }
  .rail__t { display: block; font-family: var(--fx-num); font-size: .9rem; color: var(--fg); margin-top: .2rem; }
  .rail__r { display: block; height: 1px; background: var(--line2); margin-top: .7rem; }
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chmeta { grid-template-columns: minmax(0, 6.5rem) minmax(0, 1fr); }
  .chmeta__d { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .2rem .8rem; align-items: baseline; }
  .chmeta__d dd { margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}
