/* 阿土仔的种地手册 · 网页版 —— 设计系统基座（§41.2 面 1~12 单源；明暗两套）
   · 令牌 = 面 5（19 枚 —— 含 7 枚新令牌）；字号 = 面 3（阶梯 8 档 + 移动输入 16 特例）；
   · 行高 = 面 4（列表 56 / 48 / 44；表头行 40；表格密行 36；控件 44 / 36 / 28）；
   · 圆角 = 卡 12 / 控件 8 / 胶囊 999 / 弹层顶角 16；零外链字体（系统栈）；
   · 组件补全 = `ui.css`（同批加载，类名归口 = 面 6）；壳 = `shell.html`（面 7）；断点与版心 = `layout.css`（面 1 / 面 2）。
   数字族 = 等宽栈 + tabular-nums（零布局位移）。本件 ≤500 行（帽纪律 —— 页级样式随各页轮次归口）。 */

:root {
  --bg: #f5f6f7;
  --surface: #ffffff;
  --surface-2: #f0f2f3;
  --text: #1b1d1f;
  --text-2: #5c6166;
  --text-3: #6b7178;
  --line: #e6e9eb;
  --brand: #7ba79b;
  --brand-ink: #3e6b5e;
  --brand-soft: rgba(123, 167, 155, 0.12);
  --brand-strong: #375e53;
  --on-fill: #ffffff;
  --up: #e5484d;
  --up-ink: #c42b2f;
  --down: #30a46c;
  --down-ink: #1f7a4d;
  --flat: #9398a0;
  --warn: #b45309;
  --overlay: rgba(0, 0, 0, 0.35);
  --chart-price: #70a3eb; /* 分时价格线（Mac chartBlue 0.44/0.64/0.92 逐值 —— mac-parity 案 A 呈核通过）*/
  --chart-avg: #eda847;   /* 分时均价线（Mac chartOrange 0.93/0.66/0.28 逐值 —— 同上）*/
  --fs-xs: 12px;
  --fs-s: 13px;
  --fs-m: 15px;
  --fs-l: 17px;
  --fs-xl: 20px;
  --fs-2xl: 24px;
  --fs-3xl: 28px;
  --fs-4xl: 32px;
  --fs-input-m: 16px; /* 移动端输入框（iOS 聚焦缩放门 —— 平台硬要求，非阶梯成员） */
  --radius: 12px;
  --radius-ctl: 8px;
  --shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 8px 24px rgba(0, 0, 0, 0.06); /* 明面仅浮层用（面 5 规则④） */
  --font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Segoe UI", "Microsoft YaHei", sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

/* 主题三态（面 5）：auto（默认 —— 随系统）/ light / dark（根元素 data-theme 覆盖 —— SSR 直出防闪烁） */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #121416; --surface: #1c1f22; --surface-2: #23272b;
    --text: #edeff1; --text-2: #a6acb2; --text-3: #8a9098; --line: #2a2e32;
    --brand-ink: #9cc7ba; --brand-strong: #a4ccc0; --on-fill: #121416;
    --up: #f2555a; --up-ink: #f2555a; --down: #3dbe7e; --down-ink: #3dbe7e;
    --flat: #9aa0a6; --warn: #f5b04c; --overlay: rgba(0, 0, 0, 0.5);
    --brand-soft: rgba(123, 167, 155, 0.16); --shadow: none;
  }
}
:root[data-theme="dark"] {
  --bg: #121416; --surface: #1c1f22; --surface-2: #23272b;
  --text: #edeff1; --text-2: #a6acb2; --text-3: #8a9098; --line: #2a2e32;
  --brand-ink: #9cc7ba; --brand-strong: #a4ccc0; --on-fill: #121416;
  --up: #f2555a; --up-ink: #f2555a; --down: #3dbe7e; --down-ink: #3dbe7e;
  --flat: #9aa0a6; --warn: #f5b04c; --overlay: rgba(0, 0, 0, 0.5);
  --brand-soft: rgba(123, 167, 155, 0.16); --shadow: none;
}

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--fs-m);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* 底栏预留（面 2）—— 仅壳页（`body.shell` 带底栏；入口族 / 手机族无）*/
body.shell { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }

/* 链接（面 5 规则②：--brand 禁用于 <20px 文本 ⇒ 一律 --brand-ink） */
a { color: var(--brand-ink); text-decoration: none; }

/* 元素级标题层级（面 3 —— 每页唯一 h1） */
h1 { margin: 0 0 12px; font-size: var(--fs-xl); line-height: 1.3; font-weight: 600; }
h2 { margin: 0 0 8px; font-size: var(--fs-l); line-height: 1.4; font-weight: 600; }
h3 { margin: 0 0 8px; font-size: var(--fs-m); line-height: 1.5; font-weight: 600; }

.mono, .num {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}

.muted { color: var(--text-2); font-size: var(--fs-s); }

/* 股票区子导航（面 7 二级 · 页内选项卡制 —— 41.2.7 / 41.23 D773）：段控体例（`.seg`）落页头之下
   （页头 → 子导航 → 工具行 → 内容）；仅股票区页呈现；项级 aria-current = 当前路由。 */
.subnav { margin: 0 0 12px; max-width: 100%; overflow-x: auto; }

.tabbar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  min-height: 56px;
  align-items: center;
  justify-content: space-around;
  background: var(--surface);
  border-top: 1px solid var(--line);
  z-index: 10;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
}

.tabbar a {
  color: var(--text-2); font-size: var(--fs-s); min-height: 44px; min-width: 44px;
  padding: 8px 12px; display: inline-flex; align-items: center; justify-content: center; text-align: center;
}
.tabbar a.active { color: var(--brand-ink); font-weight: 600; }

.foot {
  display: flex; flex-wrap: wrap; gap: 12px; justify-content: center;
  padding: 24px 0 calc(8px + env(safe-area-inset-bottom));
  font-size: var(--fs-xs); color: var(--text-3);
}
.foot a { color: var(--text-3); }

/* ── 卡片族（面 6#4）：内距 16 / 20；圆角 12；卡间 12 ───────────────────────────── */
.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 16px;
  margin-bottom: 12px;
} /* 零阴影（面 5 规则④：明面 `--shadow` 仅浮层；层次由描边承担） */
.card.flush { padding: 0; } /* 变体：无内距 —— 行自行撑内距 */
.card.stat { display: flex; flex-direction: column; gap: 4px; } /* 变体：值 `--fs-2xl` + 标签 `--fs-xs` */
.card.stat .stat-value { font-size: var(--fs-2xl); font-weight: 600; }
.card.stat .stat-label { font-size: var(--fs-xs); color: var(--text-2); }
.card.stat .stat-note { font-size: var(--fs-xs); color: var(--text-3); } /* 卡内独立注（Mac 四数卡「不含交易费用」—— 沿 .totals-grid .stat-note 单制）*/

/* 卡级三档（51.5② —— 写死）：① 页卡 `.card`（上段：底 `--surface` + 描边 `--line` + 圆角 12）
   ② 内嵌面 `.inset`（底 `--surface-2`、无描边、圆角 8 —— 输入底 / 表头 / 代码块 / 卡内嵌段）
   ③ 浮层（`.shadow` 仅浮层 —— 面 5 规则④）。**卡内禁再套卡** —— 套卡 = 自动降为内嵌面（需要 = `.inset`）。 */
.inset, .card .card {
  background: var(--surface-2);
  border: 0;
  border-radius: var(--radius-ctl);
  padding: 12px;
}

.card-title { margin: 0 0 8px; font-size: var(--fs-l); font-weight: 600; }
/* 卡题与页题分档（51.5② —— 写死）：页题 h1 = 20/600（元素级；`--fs-xl`）· 卡题 h2 = 17/600 · 子块 h3 = 15/600 */
.card-title h2, h2.card-title { font-size: var(--fs-l); }

.kv { margin: 0; }
.kv-row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 6px 0; }
.kv-row dt { color: var(--text-2); font-size: var(--fs-s); }
.kv-row dd { margin: 0; font-size: var(--fs-m); }

/* 行族（面 6#5）：三档行高 56 主行 / 48 次行 / 44 密行（修饰类 `.row-56` / `.row-48`）；可点行整行可点 + chev
   行内聚集制（51.5① —— 写死 · 共性①「行内左右极点分离」）：左信息组（min 240）+ 右数值 / 动作组（auto）
   + 尾空白（1fr 吸收）；组间 24 —— 数值组不甩到行最右（视觉极点 ≤ 900px）。宽档不另写（`.w-1120` / `.w-1440` 同规则）。 */
.row-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; } /* 按钮组间距 8（面 4 / 面 6-1 组合）*/
.row, .row-link {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  column-gap: 24px;
  row-gap: 4px;
  color: var(--text);
  font-size: var(--fs-m);
  min-height: 44px;
}
@media (min-width: 600px) {
  .row, .row-link { grid-template-columns: minmax(240px, auto) auto 1fr; }
}
/* 尾列归属（写死）：chev = 末列首缘（贴内容组 —— 不甩到行最右）；动作组 = 次列起向右展开 */
.row > .chev, .row-link > .chev { grid-column: 3; justify-self: start; }
.row > .row-actions, .row-link > .row-actions { grid-column: 2 / -1; justify-self: start; margin-top: 0; }
.row-56, .row-link.row-56 { min-height: 56px; }
.row-48, .row-link.row-48 { min-height: 48px; }
.row-link .muted { font-size: var(--fs-xs); }
.chev { color: var(--text-3); font-size: var(--fs-xl); }

/* ── 表单族（面 6#6）：label 上置 13；控件 44（<600）/ 36；输入底 --surface-2 ───────── */
.form { display: flex; flex-direction: column; gap: 12px; }
.form label { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-s); color: var(--text-2); }
/* 字段分组题（51.3-P02 I-05 —— 组题 13 `--text-2`；与 `.form` gap 12 合算 = 组间 24）*/
.form-group-title { margin: 12px 0 0; font-size: var(--fs-s); color: var(--text-2); }
/* 字段两列栅格（51.3-P02 I-06 —— 字段 ≥6 且 ≥1024 才启用；行级元素恒跨列）*/
@media (min-width: 1024px) {
  .form-2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
  .form-2col > .form-group-title, .form-2col > .banner, .form-2col > .form-error,
  .form-2col > button { grid-column: 1 / -1; }
}
.form input,
.form select,
.form textarea {
  min-height: 44px;
  padding: 0 12px;
  font-size: var(--fs-input-m); /* <600 输入 16（iOS 缩放门） */
  color: var(--text);
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--radius-ctl);
  font-family: inherit;
}
.form textarea { padding: 8px 12px; line-height: 1.5; }
.form input::placeholder, .form textarea::placeholder { color: var(--text-2); } /* 面 5 规则⑦ */
/* 日期 = 日历选择（41.24.2）：指示钮**禁隐藏**（本仓无 `::-webkit-calendar-picker-indicator` 隐藏规则 ——
   `display:none` / `opacity:0` / `visibility:hidden` / `appearance:none` 四值禁入本段）+ `cursor:pointer` + 点域 ≥24×24 */
.form input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; width: 24px; height: 24px; }
/* 只读字段（印花税 —— 41.24.2）：字色 `--text-2`（面 5 规则⑦：`--text-3` 禁落 `--surface-2`） */
.form input[readonly] { color: var(--text-2); }

/* 焦点环（面 11）：2px --brand-ink + offset 2；禁 outline:none 无替代 */
:focus-visible { outline: 2px solid var(--brand-ink); outline-offset: 2px; }

/* ── 按钮族（面 6#1 + 41.2.6-1：五态 × 四变体 × 三档；全族零阴影）
   层次由底与描边承担；圆角 8 全档统一；按压 scale .98；过渡仅 background-color 120ms / transform 80ms。 */
.btn {
  min-height: 44px; /* <600 一律 44（触控门） */
  padding: 0 20px;
  min-width: 64px;
  font-size: var(--fs-m);
  font-family: inherit;
  font-weight: 500;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-ctl);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background-color 120ms ease-out, transform 80ms ease-out;
}
.btn.primary { background: var(--brand-ink); border-color: transparent; color: var(--on-fill); font-weight: 600; }
.btn.secondary { background: var(--surface); border-color: var(--line); color: var(--text); } /* 默认变体（无类名 = 此）*/
.btn.ghost { background: transparent; border-color: transparent; color: var(--brand-ink); }
.btn.danger { background: var(--surface); border-color: var(--up-ink); color: var(--up-ink); }
/* danger 悬停 = 同帧换面（唯一零过渡态 —— 防过渡窗内 --on-fill 骑浅底） */
.btn.danger { transition: transform 80ms ease-out; }
.btn:active { transform: scale(0.98); }
.btn[disabled], .btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn[disabled]:active, .btn:disabled:active { transform: none; }
@media (hover: hover) and (pointer: fine) {
  .btn:not([disabled]):not(:disabled):hover { background: var(--brand-soft); }
  .btn.primary:not([disabled]):not(:disabled):hover { background: var(--brand-strong); }
  .btn.ghost:not([disabled]):not(:disabled):hover { background: var(--brand-soft); }
  .btn.danger:not([disabled]):not(:disabled):hover { background: var(--up-ink); color: var(--on-fill); }
}
/* 按压（41.2.6-1「按压」列逐值 —— 触屏以按压为准）：底色同悬停档 + scale .98 */
.btn:not([disabled]):not(:disabled):active { background: var(--brand-soft); }
.btn.primary:not([disabled]):not(:disabled):active { background: var(--brand-strong); color: var(--on-fill); }
.btn.ghost:not([disabled]):not(:disabled):active { background: var(--brand-soft); }
.btn.danger:not([disabled]):not(:disabled):active { background: var(--up-ink); color: var(--on-fill); }

/* ── 段控（面 6#2）：高 36（<600 = 44）；圆角 8；项内距 12；选中 --brand-soft + ink ──
   项载具 = button（表单类）/ a（导航类 —— 股票区子导航 —— 41.2.7）；全宽变体 `.seg.fill` 见本段末。 */
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: var(--radius-ctl); overflow: hidden; }
.seg button,
.seg a {
  min-height: 44px;
  padding: 0 12px;
  font-size: var(--fs-s);
  color: var(--text-2);
  background: var(--surface);
  border: none;
  border-right: 1px solid var(--line);
  font-family: inherit;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.seg button:last-child, .seg a:last-child { border-right: none; }
.seg button.on, .seg a.on { color: var(--brand-ink); font-weight: 600; background: var(--brand-soft); }

/* 全宽变体（`.seg.fill` —— 41.24.2 表单方向选择）：全宽 · 子项等分（flex:1 1 0 —— 与文字宽度解耦）；
   内缝 = 1px `--line` 单线（首段 border-right / 末段 none —— 与外框同色同宽 ⇒ 中线成线；禁双线）；
   未选中悬停 = `--surface-2`（与选中可区分 —— 不取 `--brand-soft`）；焦点环内缩（不被 overflow 裁切）。 */
.seg.fill { display: flex; width: 100%; }
.seg.fill button, .seg.fill a { flex: 1 1 0; }
.seg.fill button:focus-visible, .seg.fill a:focus-visible { outline-offset: -2px; }
@media (hover: hover) and (pointer: fine) {
  .seg.fill button:not(.on):hover { background: var(--surface-2); }
}

.form-error { color: var(--up-ink); font-size: var(--fs-s); margin: 0; }
/* 字段级错误（面 6#6 —— 校验失败字段边框 `--up-ink` + `aria-invalid="true"`；重开弹层清除 —— 41.24.2）*/
.form [aria-invalid="true"] { border-color: var(--up-ink); }
.pre { white-space: pre-line; }

/* 入口族版式（P01~P05）归口 `ui.css`（41.4-P01 差异处置② —— 入口装配 = app.css + ui.css +
   layout.css；app.css 500 硬帽）。 */

/* ── 成员族（P20 —— 主行 56）────────────────────────────────────────────────── */
.member-list { list-style: none; margin: 0; padding: 0; }

.member-row { display: flex; align-items: center; gap: 12px; min-height: 56px; }
.member-slot { color: var(--text-3); font-size: var(--fs-s); width: 20px; }
.member-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.member-name {
  font-size: var(--fs-m); font-weight: 500;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 96px;
}
.member-sub { color: var(--text-2); font-size: var(--fs-xs); }
.member-status { font-size: var(--fs-xs); color: var(--down-ink); }
.member-status.is-off { color: var(--text-3); } /* 面 11：`--flat` 禁落 12/13px 正文（明面 2.9 不达）*/
.member-ops { display: flex; gap: 8px; }

.switch-row { display: flex; align-items: center; gap: 8px; font-size: var(--fs-m); min-height: 44px; cursor: pointer; }
.switch-row input { width: 20px; height: 20px; accent-color: var(--brand-ink); }
/* 组内开关行归位（P07 费用弹层 / P10「持仓与费用」组两处同源 —— 41.24.3）：`.form label` 的列向与
   `.form input` 的 44 档 / 框底 / 内距按特异性压过 `.switch-row` 族 ⇒ 开关行（复选 + 文案同行）与复选盒
   显式归位（面 6#6 例外；后两件 = 表单族普通字段不适用复选盒）。 */
.form label.switch-row { flex-direction: row; align-items: center; gap: 8px; }
.form .switch-row input[type="checkbox"] { min-height: 20px; padding: 0; border: none; background: none; }

.code { font-size: var(--fs-l); letter-spacing: 0.06em; margin: 4px 0 12px; }

/* ── 行情板页级样式（P06）已归口 = `board.css`（随 A2 轮次归口；本件 500 硬帽——页级样式不再入本件）── */

/* 空态（面 6#11）：居中（说明 13 + CTA） */
.empty-state { padding: 24px 0; text-align: center; } /* CTA 位见 `ui.css`（面 6#11 单点）*/

/* 添加流（弹层 —— 二制 = 面 6#7；样式主体见 ui.css） */
.sheet {
  position: fixed;
  inset: 0;
  background: var(--overlay);
  display: flex;
  align-items: flex-end;
  z-index: 30;
}
.sheet[hidden] { display: none; }
.sheet-inner {
  width: 100%;
  margin: 0;
  border-radius: 16px 16px 0 0;
  padding-bottom: calc(16px + env(safe-area-inset-bottom));
  max-height: 86vh;
  overflow: auto;
  box-shadow: var(--shadow); /* 浮层 —— 明面阴影唯一用途（面 5 规则④）*/
}
.sheet-inner input {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  font-size: var(--fs-input-m);
  border: 1px solid var(--line);
  border-radius: var(--radius-ctl);
  background: var(--surface-2);
  color: var(--text);
  font-family: inherit;
}
.search-results { list-style: none; margin: 8px 0; padding: 0; max-height: 40vh; overflow-y: auto; }
.search-results button {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 4px;
  background: none;
  border: none;
  border-bottom: 1px solid var(--line);
  font-size: var(--fs-m);
  color: var(--text);
  font-family: inherit;
  cursor: pointer;
}
.search-results button[disabled] { color: var(--text-3); }

/* ── 个股页（P11 —— 页级：随各页轮次归口）────────────────────────────────────── */
.stock-head-row { display: flex; align-items: center; gap: 12px; }
.back {
  font-size: var(--fs-2xl);
  color: var(--text-2);
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.stock-title { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.stock-name { margin: 0; font-size: var(--fs-xl); font-weight: 600; }
.stock-quote { display: flex; flex-direction: column; align-items: flex-end; }
.stock-price { font-size: var(--fs-3xl); }
.stock-change { font-size: var(--fs-s); color: var(--text-2); }
.up { color: var(--up-ink); }   /* 面 5 规则③：小字涨跌一律 ink 档 */
.down { color: var(--down-ink); }
.chip-status {
  margin-top: 2px;
  font-size: var(--fs-xs);
  color: var(--text-3);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 1px 8px;
}
/* 图表族与图域版式：SVG 元素规格 / 进度条 / 缩放钮 = `ui.css`（面 10 + 面 6#14） */
.chart-card { position: relative; }
.chart-box { min-height: 240px; position: relative; user-select: none; touch-action: pan-y; }
.chart-bar { display: flex; align-items: center; justify-content: space-between; }
.week52-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: var(--fs-s); }

/* ── 触控门机械段（51.5③ —— 写死 · I-43）：<600 全部可点元素 `min-height: 44px`
     （视觉尺寸不动 —— padding 撑，沿面 11）；判据 = 机械扫描。────────────────────────── */
@media (max-width: 599px) {
  .btn,
  .seg button, .seg a,
  .tabs a, .tabs button,
  .row button, .row-link button, .row a, .row-link a,
  .topnav a, .tabbar a,
  .list-domain button, .list-domain a,
  .search-results button,
  input[type="submit"], input[type="button"],
  input, select, textarea,
  label.switch-row, .switch-row,
  summary,
  .chart-svg .hit, .chart-svg .zoom-hit,
  input[type="file"] + .btn, .file-btn {
    min-height: 44px;
  }
}

/* ── 触控门与档位（面 4 / 面 11）：<600 = 44 档；≥600 = 默认档与密致档 ─────────────── */
@media (min-width: 600px) {
  body.shell { padding-bottom: calc(28px + env(safe-area-inset-bottom)); } /* ≥600 = 桌面：页尾间距 = 备案条（fixed —— 41.27.14）预留 28（<600 档 68 保持 —— 面 2）*/
  .form input, .form select, .form textarea { min-height: 36px; font-size: var(--fs-m); }
  .form textarea { min-height: 72px; }
  .btn { min-height: 36px; padding: 0 16px; }
  .btn.large { min-height: 44px; padding: 0 20px; }
  .btn.small { min-height: 28px; padding: 0 12px; min-width: 56px; font-size: var(--fs-s); }
  .seg button, .seg a { min-height: 36px; }
  /* 备案行固定底部（41.27.14 —— ICP 备案「始终保持在页面底部中央，不能随页面而动」；**仅 ≥600 档**，
     <600 逐值零改〔用户令 10:43〕）。定位覆写（fixed / 左右归零 / 底 0 / **z-index 5** = 低于 tabbar 10 /
     toast 20 / `.sheet` 30 / `.msheet` 40 ⇒ 弹层与提示恒在其上 —— 就地编辑框与底部弹层零遮挡）；
     内距 6px 0（条高 ≈ 25）+ 底 `--surface` + 顶描边 `--line`（零新色）；既有 display:flex / flex-wrap /
     gap 12 / justify-content:center（居中面）/ 字号 / 字色 **逐值保持**。 */
  .foot {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    margin: 0;
    padding: 6px 0;
    background: var(--surface);
    border-top: 1px solid var(--line);
  }
}

/* 备案行打印回归（41.27.14 —— 打印预览回退流内：防固定条逐页压字）。 */
@media print {
  .foot { position: static; border-top: 0; background: none; }
}
