/* ═══════════════════════════════════════════════════════
   SPACESENSE 案例画廊 · 公共样式表 v4.0.7（浅色轨）
   gallery-common.css
   ★ 修改此文件 = 全站生效，无需逐页修改
   v4.0.8: 散文行宽阅读度量 38em（小K）+ 案例页/工具页长文本块 620px 上限（编程专家）——
           两者兼容并存：38em 相对字号×38（约38汉字/行）为主标准，620px 为绝对上限；
           覆盖 blockquote/callout/hero-bio/day-intro-card/day7-duo/tl-item/clean 清单/
           reading-route/pcard p/foot-src/理论页 th-wrap 等；档案表 table 限 860px；
           h1-h4 overflow-wrap:break-word（主人 20260921 排版反馈，双 Agent 协同）
   v4.0.7: 正文可读性行宽标准 — 长文本块统一 max-width 620px（blockquote p/footer、
           callout、ss-daily-q、day-intro-card、day7-duo-card、tour-feature、
           callout-box、steps li p、th-wrap p/ul/bq），档案表 table 限 860px，
           h1-h4 overflow-wrap:break-word 防长串溢出（主人 20260921 排版反馈）
   v4.0.6: 全站 footer 去品牌标识区块（logo+tagline+site-foot-top），footer
           仅留导航+分隔线+版权/法务；CSS 清理 site-foot-top/brand/logo/tag
           规则，移动端恢复 nav 显示（不再与顶部重复）
   v4.0.5: 首页「换一篇」按钮去除下划线（border-bottom），保留 hover 变色
   v4.0.4: 首页宽度对齐修复 — 今日拆解大卡 section 抵消全局 section!important
           水平 padding；知识点/引导卡 margin 改用 --page-x，桌面移动端双对齐
   v4.0.3: 移动端字号适配 — h2/h3 移动端缩小(17px/15px)，h2 改回 var(--font-h2)
   ═══════════════════════════════════════════════════════ */

/* ── 字体 ── */
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&display=swap');

/* ── CSS变量（浅色轨 Token） ── */
:root {
  --serif: 'Noto Serif SC', Georgia, 'Times New Roman', serif;
  --sans: -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB',
          'Microsoft YaHei', 'Noto Sans SC', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

  /* 颜色 · 浅色轨 */
  --bg: #FAFAF7;            /* 页面底色（米白） */
  --paper: #FFFFFF;         /* 卡片/表面 */
  --paper-soft: #F5F3EE;    /* 表头/微暖白块 */
  --ink: #151515;           /* 主文字 */
  --ink2: #4a4a4a;          /* 次要文字/正文 */
  --ink3: #77736B;          /* 弱化文字/图注 */
  --line: #E6E2DA;          /* 边框/分割线 */
  --line2: #D4D0C8;         /* 强分隔/固定列右边 */
  --accent: #8C6A4A;        /* 暖棕强调 */
  --accent-soft: rgba(140,106,74,.08);  /* 引用/发现底纹 */
  --info: #4A72A6;          /* 注释蓝 */
  --info-soft: rgba(74,114,166,.08);
  --green: #5B7A4A;         /* 正向绿 */
  --red: #B0524A;           /* 警示红 */
  --accent2: #D4B896;       /* Hero kicker 专用（压深色图） */

  /* 布局 */
  --maxw: 1180px;
  --page-x: 32px;
  --page-x-mobile: 16px;
  --grid-gap: 24px;

  /* 字号阶梯 · 1.25 比率：38/30/24/19/15/12 */
  --font-display: 38px;
  --font-h1: 30px;
  --font-h2: 24px;
  --font-h3: 19px;
  --font-body: 15px;
  --font-small: 12px;

  /* 圆角 */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 999px;

  /* 间距 · 4px 基准 */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;

  /* v2 §6 三级节奏变量 */
  --h3-gap-before: 48px;   /* L3 小节切换：h3 前间距 */
}

/* ── 基础重置 ── */
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  font-size: var(--font-body);   /* 15px 正文基准，移动端不缩小 */
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  /* 文字防变形（含中文避头尾） */
  overflow-wrap: break-word;
  word-break: normal;
  text-wrap: pretty;
  line-break: strict;
  hyphens: none;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
/* v4.0.8 封面满幅防御：index/tags 页面级全局 img{margin:var(--sp-4) 0} 曾把封面图整体下推 16px，
   容器 overflow:hidden 顶部露出米色底（桌面/移动同病）。组件内图片永不接受外间距。 */
.cover { position: relative; overflow: hidden; background: var(--paper); }
.cover img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; display: block; margin: 0; }
.cover-wide img { aspect-ratio: 21/6; }
.cover img, header.hero .hero-img { margin: 0; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
/* v4.0.4 触屏无 hover：tap 后 :hover 粘滞导致长链接整段下划线残留，触屏设备下去掉 */
@media (hover: none), (pointer: coarse) {
  a:hover { text-decoration: none; }
}
code, .url, .mono { word-break: break-all; }

/* ── 排版（字号阶梯 38/30/24/19/15/12） ── */
h1, h2, h3, h4 { font-family: var(--serif); color: var(--ink); overflow-wrap: anywhere; }
h1, h2, h3 { text-wrap: pretty; word-break: normal; }
h1 { font-size: var(--font-h1); font-weight: 700; line-height: 1.25; margin: var(--sp-6) 0 var(--sp-4); }
h2 { font-size: var(--font-h2); font-weight: 600; line-height: 1.3; margin: var(--sp-8) 0 var(--sp-4); font-family: var(--sans); }
/* v2 §6 三级节奏：h3 = 小节标题，serif，L3=48px 上 / L1=16px 下 */
h3 {
  font-size: var(--font-h3);
  font-weight: 600;
  line-height: 1.4;
  margin: var(--h3-gap-before, 48px) 0 var(--sp-4);
  font-family: var(--serif);
}
/* v2 §6 三级节奏：h4 = 组件内标题，sans，L2上/L1下 */
h4 {
  font-size: var(--font-body);
  font-weight: 600;
  line-height: 1.4;
  margin: var(--sp-4) 0 var(--sp-2);
  font-family: var(--sans);
}
p { margin: 0 0 var(--sp-4); }

/* 纯文字段落行宽 38em（≈38 字/行） */
main section > p { max-width: 38em; }
.prose {
  max-width: 38em;
  font-size: var(--font-body);
  line-height: 1.8;
}
.prose p { margin-bottom: var(--sp-6); }

/* ── 导航栏 ── */
.topnav {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--sp-3) var(--page-x);
  background: rgba(250,250,247,.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 100;
  flex-wrap: nowrap;
}
.topnav .brand { font-family: var(--serif); font-weight: 600; font-size: 15px; color: var(--ink); letter-spacing: .04em; white-space: nowrap; }
.topnav .brand small { font-size: 12px; letter-spacing: .1em; color: var(--ink3); font-family: inherit; margin-left: 8px; }
.topnav .navlinks { display: flex; gap: var(--sp-5); align-items: center; margin-left: auto; }
/* 桌面端禁横向滚动：overflow-x:auto 会隐式裁剪纵向溢出，导致下拉菜单被切 */
.topnav .navlinks a { font-size: 15px; color: var(--ink2); white-space: nowrap; flex: none; }
.topnav .navlinks a:hover { color: var(--accent); text-decoration: none; }

/* ── 导航下拉菜单 ── */
.nav-drop { position: relative; flex: none; }
.nav-drop-trigger {
  font-size: 15px; color: var(--ink2); background: none; border: none;
  cursor: pointer; padding: 0; white-space: nowrap; font-family: inherit;
  display: flex; align-items: center; gap: 2px;
}
.nav-drop-trigger .caret { font-size: 10px; opacity: .5; transition: transform .2s; }
.nav-drop-menu {
  display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  min-width: 90px; padding: 6px 0; margin-top: 8px;
  background: rgba(250,250,247,.98); backdrop-filter: blur(12px);
  border: 1px solid var(--line); border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,.08); z-index: 100;
}
.nav-drop-menu a {
  display: block; padding: 8px 16px; font-size: 14px; color: var(--ink2);
  text-align: center; white-space: nowrap;
}
.nav-drop-menu a:hover { color: var(--accent); background: rgba(140,106,74,.04); }
.nav-drop:hover .nav-drop-menu,
.nav-drop.open .nav-drop-menu { display: block; }
.nav-drop:hover .nav-drop-trigger .caret,
.nav-drop.open .nav-drop-trigger .caret { transform: rotate(180deg); }
/* hover 桥接：透明层填充 trigger 与菜单间 8px 间隙，鼠标过桥菜单不消失 */
.nav-drop-menu::before {
  content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px;
}
.ss-auth-menu::before {
  content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px;
}

/* ── Hamburger按钮（移动端） ── */
.topnav .hamburger {
  display: none; width: 32px; height: 32px; border: 1px solid var(--line);
  border-radius: 6px; background: transparent; cursor: pointer;
  flex-direction: column; align-items: center; justify-content: center; gap: 4px;
}
.topnav .hamburger span {
  display: block; width: 16px; height: 1.5px; background: var(--ink2);
  transition: all .3s ease;
}
.topnav .hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(4px, 4px); }
.topnav .hamburger.active span:nth-child(2) { opacity: 0; }
.topnav .hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(4px, -4px); }

/* ── Hero区块 ── */
header.hero {
  position: relative; overflow: hidden;
  min-height: 52vh; display: flex; align-items: flex-end;
  padding: 0; max-width: none; margin: 0; border-bottom: none;
}
header.hero .hero-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
header.hero .hero-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(21,19,17,.15) 0%, rgba(21,19,17,.10) 35%, rgba(21,19,17,.75) 100%);
  z-index: 1;
}
header.hero .wrap {
  position: relative; z-index: 2; width: 100%;
  max-width: var(--maxw); margin: 0 auto;
  padding: 48px var(--page-x) 40px;
}
header.hero .hero-kicker {
  font-size: 12px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--accent2) !important; font-weight: 600; margin: 0 0 16px;
}
header.hero h1.hero-title {
  font-family: var(--serif); font-size: var(--font-display);
  font-weight: 700; line-height: 1.2; letter-spacing: -0.02em;
  color: #FDF9F0 !important; margin: 0 0 20px;
}
header.hero p.hero-sub {
  font-size: 15px; line-height: 1.8;
  color: rgba(253,249,240,.88) !important; margin: 0 0 24px; max-width: 38em;
}
header.hero .hero-meta {
  display: flex; flex-wrap: wrap; gap: 8px 20px;
  font-size: 12px; color: rgba(253,249,240,.72) !important;
}

/* ── Section统一 ── */
section {
  border-bottom: 1px solid var(--line);
  padding: var(--sp-12) var(--page-x);
  max-width: var(--maxw);
  margin: 0 auto;
}
section .wrap { padding: 0; }
/* ── 手风琴折叠态：紧凑行距 ── */
section.ss-acc-folded {
  padding-top: var(--sp-3);
  padding-bottom: var(--sp-3);
  border-bottom-color: var(--line);
}
section.ss-acc-folded .sec-head {
  margin-bottom: 0;
  cursor: pointer;
}
section.ss-acc-folded h2 {
  font-size: 17px;
}
section.ss-acc-folded .sec-no,
section.ss-acc-folded .sec-note {
  font-size: 12px;
}
/* main 容器 */
main {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--page-x) 100px;
}

/* ── v4.0.1 容器归一：压回页面级内联歧义 ── */
body main { max-width: var(--maxw); margin: 0 auto; padding-left: var(--page-x); padding-right: var(--page-x); }
main > section.sec-sub { max-width: none; margin-left: auto; margin-right: auto; }
main section > p.sec-sub { max-width: 38em; }
/* token 钉桩：阻止页面级 :root 覆盖布局标尺（如 index/tags 内联 --page-x:24px） */
:root:root { --maxw: 1180px; --page-x: 32px; }
@media (max-width: 768px) { :root:root { --page-x: 20px; } }
@media (max-width: 480px) { :root:root { --page-x: 16px; } }

/* ── 数据表格 ── */
.table-scroll, .table-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  margin: var(--sp-6) 0; border-radius: var(--radius-md);
}
/* v2 表格：上下 2px 强调线分割，无外框 wrapper */
table { width: 100%; border-collapse: collapse; font-size: 15px;
  border-top: 2px solid var(--line); border-bottom: 2px solid var(--line); }
caption {
  font-size: 13px; font-weight: 600; color: var(--ink);
  text-align: left; padding: 12px 16px;
  background: var(--paper); border-bottom: 1px solid var(--line);
}
th {
  background: var(--paper-soft); font-weight: 600; text-align: left;
  padding: 12px 16px; font-size: 12px; color: var(--ink2);
  text-transform: uppercase; letter-spacing: 0.06em;
  border-bottom: 2px solid var(--line); white-space: nowrap;
}
/* sticky 表头：长表滚动常驻 */
thead th { position: sticky; top: 0; z-index: 2; background: var(--paper-soft); }
td {
  padding: 12px 16px; border-bottom: 1px solid var(--line);
  font-size: 15px; color: var(--ink2); vertical-align: top; line-height: 1.6;
  font-variant-numeric: tabular-nums;
}
tr:last-child td { border-bottom: none; }
/* 首列 = 比较锚点 */
th:first-child, td:first-child { font-weight: 600; color: var(--ink); }
/* 数字列右对齐 + 等宽数字 */
.num, td.num, .num-cell { text-align: right; font-variant-numeric: tabular-nums; }
/* 行悬停辅助扫视 */
tbody tr:hover td { background: var(--paper-soft); }
/* 卡片内嵌表格：内层去框去影，避免双层边框 */
.pcard .table-wrap, .card .table-wrap,
.pcard .table-scroll, .card .table-scroll { border: none; box-shadow: none; }

/* ═══════════════════════════════════════════════════════
   v4.0.3 .dark-sec 深色区域适配
   调色板沿用各页 .dark-sec 既有定义（不发明新色）：
   底 var(--dark)↔#151311 · 面 #1e1b17 · 边 #3a352d · 强调 #b89b6f
   标题 #f5f1e8/#e6dcc8 · 正文 #e8e4dc · 次文 #b3ab9c
   ═══════════════════════════════════════════════════════ */

/* 深色区表格：表头/表体/边框/hover 暗色反转 */
.dark-sec table { color: #e8e4dc; border-top-color: #3a352d; border-bottom-color: #3a352d; }
.dark-sec caption {
  background: #1e1b17; color: #f5f1e8; border-bottom-color: #3a352d;
}
.dark-sec th, .dark-sec thead th {
  background: #1e1b17; color: #b89b6f; border-bottom-color: #3a352d;
}
.dark-sec td { color: #e8e4dc; border-bottom-color: #3a352d; }
.dark-sec th:first-child, .dark-sec td:first-child { color: #f5f1e8; }
.dark-sec tbody tr:hover td { background: #1e1b17; }
/* 迁移遗留内联浅色边框/表头底纹（content 不改）：作用域内压回暗色板 */
.dark-sec th, .dark-sec td { border-color: #3a352d !important; }
.dark-sec thead tr, .dark-sec tbody tr { background: transparent !important; }
.dark-sec a { color: #b89b6f; }

/* 深色区裸标题（h2 各页已适配，补 h3/h4） */
.dark-sec h3, .dark-sec h4 { color: #f5f1e8; }

/* 深色区时间轴 .tl 节点暗色反转 */
.dark-sec .tl { border-left-color: #3a352d; }
.dark-sec .tl-item::before { background: var(--dark, #151311); border-color: #b89b6f; }
.dark-sec .tl-item.hot::before { background: #b89b6f; }
.dark-sec .tl-when { color: #b89b6f; }
.dark-sec .tl-item h4 { color: #e6dcc8; }
.dark-sec .tl-item p { color: #b3ab9c; }

/* ── 卡片 ── */
.card {
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius-md); padding: var(--sp-6);
  transition: box-shadow .2s;
}
.card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.06); }

/* ── 外链卡片 ── */
.pcard {
  display: block; background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius-md); padding: var(--sp-5); text-decoration: none;
  transition: border-color .2s, box-shadow .2s;
}
.pcard p { max-width: 620px; }
.pcard:hover { border-color: var(--accent); box-shadow: 0 2px 12px rgba(0,0,0,.06); text-decoration: none; }

/* ── 外链卡片网格 ── */
.pcard-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin: var(--sp-6) 0;
}
@media (max-width: 768px) {
  .pcard-grid { grid-template-columns: 1fr; }
}
.pcard .pcard-title { font-weight: 600; font-size: 15px; color: var(--ink); margin-bottom: 4px; }
.pcard .pcard-desc { font-size: 13px; color: var(--ink3); line-height: 1.6; }

/* ── 徽标（badge / chip / tag / seal 统一：白底 + 彩色描边 + 彩字） ── */
.badge, .km-chip, .seal, .seal-chip, .tag, .ss-tag, .cap-tag, .ftag, .src-tag {
  display: inline-flex; align-items: center; gap: 6px;
  line-height: 1.2; /* v4.0.5 对齐修复：收紧行盒，中文字形墨盒才能在框内真正居中（实测偏上 8px 根因） */
  font-size: 12px; font-weight: 500;
  padding: 6px 14px; border-radius: var(--radius-sm);
  white-space: nowrap; min-height: 32px;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis;
  background: var(--paper);
  border: 1px solid rgba(140,106,74,.35);
  color: var(--accent);
}
/* 颜色变体 */
.badge--amber { background: var(--paper); border: 1px solid rgba(140,106,74,.35); color: var(--accent); }
.badge--blue, .km-chip { background: var(--paper); border: 1px solid rgba(74,114,166,.35); color: var(--info); }
.badge--green { background: var(--paper); border: 1px solid rgba(91,122,74,.35); color: var(--green); }
.badge--gray { background: var(--paper); border: 1px solid rgba(119,115,107,.40); color: var(--ink3); }
.badge--seal, .seal, .seal-chip { border: 1px solid rgba(140,106,74,.35); color: var(--accent); }
/* 可点击标签触控区域 */
.badge--clickable, .tag-filter { cursor: pointer; min-height: 44px; padding: 10px 14px; }

/* ── ss-net Knowledge Network 区域 ── */
.ss-row-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink2);
  margin: 20px 0 12px;
}
.ss-tags-row {
  margin-top: 12px;
}
.ss-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

/* ── ss-net 相关案例卡片（移动端基础：单列 + 卡片框） ─── */
.ss-rel-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 12px;
}
.ss-rel-card {
  display: block;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  text-decoration: none;
  background: var(--paper);
}
.ss-rel-card:hover {
  border-color: var(--accent);
}
.ss-rel-name {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 8px;
}
.ss-rel-note {
  display: block;
  font-size: 13px;
  color: var(--sub);
  line-height: 1.7;
  margin-bottom: 8px;
}
.ss-rel-shared {
  display: block;
  font-size: 12px;
  color: var(--sub);
  letter-spacing: .04em;
}

/* ── 引用块（琥珀左线 · 他者声音；中文不设伪斜体） ── */
blockquote, .bq {
  margin: var(--sp-6) 0; margin-left: var(--sp-6);
  padding: 16px 24px;
  border-left: 3px solid var(--accent);
  background: var(--accent-soft);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: normal;
  color: var(--ink);
  font-size: 15px; line-height: 1.75;
}
blockquote { max-width: 620px; }
blockquote p, .bq__text { margin: 0; font-style: normal; max-width: 620px; }
blockquote > footer { max-width: 620px; }
/* 仅拉丁文保留斜体 */
blockquote:lang(en), blockquote .lat,
.bq__text:lang(en), .bq__text .lat { font-style: italic; }
blockquote cite, .bq__cite {
  display: block; font-size: 13px; color: var(--ink2);
  margin-top: 8px; font-style: normal;
}
/* 长引用变体：行宽 38em */
.bq--long, blockquote.long { padding: 24px 28px; max-width: 38em; }
.bq--long .bq__text { font-size: 15px; line-height: 1.8; }
/* 双语译文 */
.bq__trans { font-size: 13px; color: var(--ink2); line-height: 1.6; margin-top: 6px; font-style: normal; }

/* ── 注释框（注释蓝左线 · 作者补充，与引用块色相+结构双重区分） ── */
.note, .note-box {
  border-left: 3px solid var(--info);
  background: var(--info-soft);
  padding: 14px 18px;
  margin: 20px 0; margin-left: 24px;
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-size: 13px; color: var(--ink2); line-height: 1.6;
}
.note--finding, .note-finding, .finding {
  border-left-color: var(--accent);
  background: var(--accent-soft);
}
.note__label, .note-label {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.06em;
  margin-bottom: 4px; display: block; color: var(--info);
}
.note--finding .note__label, .note-finding .note__label { color: var(--accent); }
.note__body { font-size: 13px; color: var(--ink2); line-height: 1.6; margin: 0; }

/* ── 事实数据展示 ── */
/* 变体A：键值对 */
.kv { display: grid; grid-template-columns: auto 1fr; gap: 0 16px; }
.kv dt {
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--ink3); padding: 10px 0;
}
.kv dd {
  font-size: 15px; color: var(--ink); padding: 10px 0; margin: 0;
  border-bottom: 1px solid var(--line);
  font-variant-numeric: tabular-nums;
}
.kv dd:last-of-type { border-bottom: none; }
/* 变体B：大数字网格 */
.stat-grid, .stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
  gap: 16px; margin: 20px 0;
}
.stat-card, .stat {
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius-md); padding: 16px; text-align: center;
}
.stat-card__num, .stat-num {
  font-size: 30px; font-weight: 700; color: var(--accent);
  line-height: 1.2; font-variant-numeric: tabular-nums;
}
.stat-card__label, .stat-label { font-size: 12px; color: var(--ink3); margin-top: 4px; }

/* ── 外链 ── */
a.ext {
  color: var(--accent);
  border-bottom: 1px solid rgba(140,106,74,0.4);
  text-decoration: none;
}
a.ext::after { content: ' ↗'; font-size: 10px; vertical-align: super; }
a.ext:hover { border-bottom-color: var(--accent); }

/* ── 对比栏 ── */
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 20px 0; }
.compare__col {
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--radius-md); padding: 20px;
  border-top: 3px solid var(--accent);
}

/* ── 网格布局 ── */
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--grid-gap); }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); }

/* ── 间距工具类 ── */
.mt-0 { margin-top: 0; }
.mt-2 { margin-top: var(--sp-2); }
.mt-4 { margin-top: var(--sp-4); }
.mt-6 { margin-top: var(--sp-6); }
.mt-8 { margin-top: var(--sp-8); }
.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: var(--sp-2); }
.mb-4 { margin-bottom: var(--sp-4); }
.mb-6 { margin-bottom: var(--sp-6); }
.pt-4 { padding-top: var(--sp-4); }
.pt-6 { padding-top: var(--sp-6); }
.pb-4 { padding-bottom: var(--sp-4); }
.pb-6 { padding-bottom: var(--sp-6); }

/* ═══════════════════════════════════════════════════════
   v2 波一 · 组件标准（§3 + §5 + §6）
   向后兼容：新增类名不覆盖现有 .pcard/.principles/.masonry/.shot 等；
   现有组件样式保留，波二 content 归并后启用。
   ═══════════════════════════════════════════════════════ */

/* ── v2 §6 三级节奏 · h3/h4 视觉区分（修复 #18） ── */
/* h3 已改为 serif（上方排版区），h4 保持 sans；字号/字重/间距均已不同 */

/* ── v2 §3.1 图组 .gallery > figure ── */
.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--grid-gap);
  margin: var(--sp-6) 0;
}
/* 跨栏档位（桌面） */
.gallery .span7 { grid-column: span 7; }
.gallery .span5 { grid-column: span 5; }
/* 带连字符别名（Ritz 等页面使用）+ span6 提升至公共层 */
.gallery .span-7 { grid-column: span 7; }
.gallery .span-6 { grid-column: span 6; }
.gallery .span-5 { grid-column: span 5; }
.gallery .span-4 { grid-column: span 4; }
.gallery .span6 { grid-column: span 6; }
/* 跨栏栅格基础（12 列）：仅在含 span 子元素时切换 */
.gallery:has(.span7),
.gallery:has(.span5),
.gallery:has(.span-7),
.gallery:has(.span-6),
.gallery:has(.span-5),
.gallery:has(.span-4),
.gallery:has(.span6) {
  grid-template-columns: repeat(12, 1fr);
}
/* 竖图 */
.gallery .portrait img { aspect-ratio: 3/4; object-fit: cover; }
/* 图→注间距 8px（L1 组内紧） */
.gallery figure { margin: 0; }
.gallery figure img { margin: 0; border-radius: var(--radius-sm); }
.gallery figure figcaption {
  margin-top: var(--sp-2);    /* L1: 图→注 8px */
  font-size: var(--font-small);
  line-height: 1.6;
  color: var(--ink3);
}
/* figcaption 三段式内部间距（L1） */
.gallery figure figcaption > * + * { margin-top: var(--sp-1); }
/* 编号 .fnum（v2 §5.3） */
.gallery figure figcaption .fnum {
  font-size: 11px;
  letter-spacing: .1em;
  color: var(--ink3);
  font-weight: 500;
  display: block;
}
.gallery figure figcaption b {
  display: block;
  font-size: var(--font-small);
  font-weight: 600;
  color: var(--ink);
  line-height: 1.5;
}
.gallery figure figcaption .src {
  font-size: 11px;
  color: var(--ink3);
  display: block;
}

/* ── v2 §3.2 特征/方法卡 .cards > .card ── */
.cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--grid-gap);
  margin: var(--sp-6) 0;
}
/* 卡内间距 L1 */
.cards > .card > * + * { margin-top: var(--sp-2); }
.cards > .card > *:first-child { margin-top: 0; }
/* 卡内 h4（组件内标题，不占小节节奏） */
.cards > .card h4 {
  font-size: var(--font-body);
  font-weight: 600;
  font-family: var(--sans);
  margin: 0 0 var(--sp-2);
  line-height: 1.4;
}
.cards > .card p {
  font-size: var(--font-body);
  line-height: 1.7;
  color: var(--ink2);
  margin: 0;
}
/* 末行残卡处理：仅 mod4=2 居中，mod4=1/3 守左轴 */
.cards > .card:nth-child(4n+1):nth-last-child(2) {
  grid-column-start: 2;
}

/* ── v2 §3.3 表格增强 ── */
/* table-layout:fixed 公共化 */
.table-scroll > table,
.table-wrap > table {
  table-layout: fixed;
  max-width: 860px;
}
/* 列宽档位（v2 §3.3） */
.table-scroll .col-num,
.table-wrap .col-num { width: 56px; text-align: center; }
.table-scroll .col-name,
.table-wrap .col-name { width: 200px; }
.table-scroll .col-short,
.table-wrap .col-short { width: 120px; text-align: center; }
.table-scroll .col-mid,
.table-wrap .col-mid { width: 220px; }
.table-scroll .col-flex,
.table-wrap .col-flex { width: auto; }
/* 短对照表不满宽（v2 §3.3，≤6 行且每格 ≤15 字时使用） */
.table-scroll.table-short {
  max-width: 760px;
  margin-left: 0;
}

/* ── v2 §3.4 时间轴 .tl ── */
/* 基础结构（桌面几何在 gallery-desktop.css） */
.tl, .timeline {
  position: relative;
  padding-left: 0;
  margin: var(--sp-6) 0;
}
.tl-item {
  position: relative;
  padding-left: 120px;
  margin-bottom: var(--sp-6);
}
.tl-item p { max-width: 620px; }
.tl-when, .tl-item .yr {
  position: absolute;
  left: 0;
  top: 0;
  width: 96px;
  text-align: right;
  font-weight: 600;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
/* 兼容过渡期：两个类名都生效 */
.timeline { /* alias, 波二 content 归并后废弃 */ }
.tl-item .yr { /* alias for .tl-when */ }

/* ── v2 §3.5 引文网格 .quote-grid ── */
.quote-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--grid-gap);
  margin: var(--sp-6) 0;
}
.quote-grid > blockquote {
  margin: 0;
  padding: var(--sp-5);
  background: var(--paper-soft);
  border-left: 3px solid var(--accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: var(--font-body);
  line-height: 1.75;
  max-width: 100%;
}
.quote-grid > blockquote p { margin: 0 0 var(--sp-2); }
.quote-grid > blockquote cite,
.quote-grid > blockquote footer {
  display: block;
  font-size: 11px;
  color: var(--ink3);
  margin-top: var(--sp-2);
  font-style: normal;
}

/* ── v2 §3.8 研究价值块 .callout ── */
.callout,
.note.callout,
.pull.callout {
  background: #F2EDE2;
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-md);
  padding: var(--sp-5) var(--sp-6);
  margin: var(--sp-6) 0;
  font-size: var(--font-body);
  line-height: 1.8;
  color: var(--ink2);
  /* v4.0.7：正文行宽上限 620px（可读性标准，覆盖旧"满宽"决策） */
  max-width: 620px;
}
.callout p { margin: 0; color: inherit; }
.callout strong { color: var(--ink); }

/* ── v2 §3.9 标签 .tag letter-spacing ── */
.tag, .seal-chip, .cap-tag, .ftag, .src-tag {
  letter-spacing: .05em;
}

/* ── v2 §5.3 字距细则 ── */
/* 英文 kicker 大写：letter-spacing .15em */
.hero-kicker, .sec-kicker {
  letter-spacing: .15em;
  text-transform: uppercase;
}
/* 图注编号 .fnum：letter-spacing .1em（已在 §3.1 定义） */
figcaption .fnum {
  letter-spacing: .1em;
}
/* 正文/标题：0（显式声明） */
p, h1, h2, h3, h4 {
  letter-spacing: 0;
}

/* ── 品牌方法论卡片（桌面端） ── */
.principles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
/* v4.0.7b：grid item min-width 修复——标题长串（如 2022-2024）不再撑破卡片列宽 */
.principles > * { min-width: 0; }


/* ── 层级列表（Ritz 等页面使用） ── */
.layer-list {
  counter-reset: layer;
  margin: 1.6rem 0;
  list-style: none;
  padding: 0;
}
.layer-list > li {
  counter-increment: layer;
  position: relative;
  padding-left: 2.4em;
  margin-bottom: .8rem;
}
.layer-list > li::before {
  content: counter(layer);
  position: absolute;
  left: 0;
  font-weight: 600;
  color: var(--ink3);
  font-size: var(--font-small);
}
@media (max-width: 768px) {
  .layer-list { margin: 1rem 0; }
  .layer-list > li { padding-left: 2em; margin-bottom: .5rem; }
}

/* ═══════════════ Tablet ≤768px ═══════════════ */
@media (max-width: 768px) {
  :root { --page-x: 20px; --grid-gap: 16px; --font-display: 30px; --font-h1: 24px; --font-h2: 19px; --font-h3: 15px; }

  /* ── 全局防溢出 ── */
  body { overflow-x: hidden; }
  /* v4.0.4 round3：keep-all 禁 CJK 断行，19字无空格长标题 min-content 超容器，
     flex 项(min-width:auto)无法收缩致页面横滚9px（vanduysen 03节实测）。
     anywhere 仅溢出时才断且计入 min-content，短标题不受影响 */
  h1, h2, h3 { overflow-wrap: anywhere; }
  /* v4.0.4 round3：页面级 td:first-child{white-space:nowrap} 在 common 之后加载，
     同特异性后加载胜出 → 长中文首列不换行撑破页面（katsura 865px 实证）。
     用 0-2-1 更高特异性在移动端统一重置；桌面端首列 nowrap 设计不动 */
  .table-scroll td:first-child, .table-wrap td:first-child { white-space: normal; }
  .table-scroll, .table-wrap, .card, .pcard, figure, .shot { max-width: 100%; box-sizing: border-box; }
  img, video, iframe, svg { max-width: 100%; height: auto !important; }

  section { padding: 36px var(--page-x); }

  /* ── 表格平板档：横向滚动 + 首列固定 + 触控行高≥44px ── */
  .table-scroll table, .table-wrap table { min-width: 500px; }
  .table-scroll th, .table-scroll td,
  .table-wrap th, .table-wrap td {
    padding: 12px 14px;   /* 行高约 44px，触控下限 */
    font-size: 13px;
    min-height: 44px;
  }
  .table-scroll th:first-child, .table-scroll td:first-child,
  .table-wrap th:first-child, .table-wrap td:first-child {
    position: sticky; left: 0;
    background: var(--paper);
    z-index: 1;
    border-right: 2px solid var(--line2);
    min-width: 120px;
  }
  /* v4.0.3 深色区首列固定格：白底压回暗面 */
  .dark-sec .table-scroll th:first-child, .dark-sec .table-scroll td:first-child,
  .dark-sec .table-wrap th:first-child, .dark-sec .table-wrap td:first-child {
    background: #1e1b17; border-right-color: #3a352d;
  }

  /* ── 网格降为 2 列 ── */
  .grid-3 { grid-template-columns: repeat(2, 1fr); }

  /* 品牌/摄影师页面常见组件 → 单列 */
  .stats, .quote-grid, .quotes, .phase-grid, .arc, .findings,
  .move-grid, .vids, .cards, .facts, .src-list, .two-col,
  .pos-grid, .triple, .learn, .concl, .vs-grid, .fig-grid,
  .chapters, .colls-quotes, .point-grid, .km-cases,
  .grid, .fact-grid, .principles, .ss-rel-grid { grid-template-columns: 1fr !important; }

  /* v2 §3.1 图组平板档：2 列 */
  .gallery { grid-template-columns: repeat(2, 1fr) !important; }
  .gallery .span7, .gallery .span5,
  .gallery .span-7, .gallery .span-6, .gallery .span-5, .gallery .span-4,
  .gallery .span6 { grid-column: span 1; }
  /* v2 §3.5 引文平板档：2 列 */
  .quote-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* 固定宽度列 → 堆叠 */
  .layout, .layer, .gap-item, .step, .spec-row, .item, .img-text,
  .grid12 { grid-template-columns: 1fr !important; }
  .layer, .gap-item, .step, .spec-row { gap: .5rem !important; }
  .grid12 { gap: 1rem !important; }

  /* TOC sticky → 普通定位 */
  .toc { position: static !important; }
}

/* ═══════════════ Mobile ≤480px ═══════════════ */
@media (max-width: 480px) {
  :root { --page-x: var(--page-x-mobile); --grid-gap: 12px; --font-display: 24px; --font-h1: 19px; --font-h2: 17px; --font-h3: 15px; }
  body { overflow-x: hidden; }   /* 正文字号保持 15px 不缩小 */

  /* ── 移动端 section 节奏重构：三级间距体系 ── */
  section { padding: 40px var(--page-x); }

  /* 手风琴折叠态：加大行距让标题之间有呼吸 */
  section.ss-acc-folded { padding-top: 18px; padding-bottom: 18px; }

  /* 导航 → 汉堡菜单下拉 */
  .topnav { position: sticky; }
  .topnav-in { justify-content: space-between !important; gap: 8px; }
  .topnav .hamburger { display: flex; flex-shrink: 0; margin-left: 0; }
  .topnav .brand small { display: none; }
  /* p68：长品牌名（James Turrell 等案例页）在移动端省略号，避免把
     theme-toggle / hamburger 顶出视口；账号 chip 已由 navRebuild 收进面板 */
  .topnav .brand { min-width: 0; max-width: 46%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topnav .navback { flex-shrink: 0; }
  /* 双保险：任何残留在 navlinks 外的账号容器在移动端不占位 */
  .topnav-in > .ss-auth { display: none; }
  .topnav .navlinks {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    background: rgba(250,250,247,.98); backdrop-filter: blur(12px);
    flex-direction: column; padding: var(--sp-2) 0;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
    max-height: 70vh; overflow-y: auto; gap: 0;
    z-index: 99;
  }
  .topnav .navlinks.open { display: flex; }
  .topnav .navlinks a {
    padding: var(--sp-3) var(--page-x); border-bottom: 1px solid var(--line);
    font-size: 15px; text-align: center; justify-content: center;
  }
  .topnav .navlinks a:last-child { border-bottom: none; }
  .topnav .navlinks a:active { background: rgba(140,106,74,.06); }
  /* 移动端下拉 */
  .nav-drop { width: 100%; }
  .nav-drop-trigger { width: 100%; padding: var(--sp-3) var(--page-x); justify-content: center; font-size: 15px; border-bottom: 1px solid var(--line); text-align: center; }
  .nav-drop-menu {
    position: static; transform: none; border: none; border-radius: 0;
    box-shadow: none; margin: 0; padding: 0; background: rgba(140,106,74,.03);
  }
  .nav-drop-menu a { padding-left: calc(var(--page-x) + 12px); font-size: 14px; }
  .nav-drop:hover .nav-drop-menu { display: none; }
  .nav-drop.open .nav-drop-menu { display: block; }

  /* 移动端账号区：navRebuild 后 .ss-auth-zone 在 navlinks 内部，
     桌面规则 margin-left:auto 在 column 面板里会把它吸到右下角，
     这里重置为整行居中，和菜单项同一节奏（p48 修复，2026-09-06） */
  .topnav .navlinks .ss-auth-zone {
    margin: 0 auto; width: 100%; justify-content: center;
    border-bottom: 1px solid var(--line);
    padding: var(--sp-3) var(--page-x);
  }
  .topnav .navlinks .ss-auth-zone > a[href$="auth.html"] {
    text-align: center; justify-content: center;
    border-bottom: none; font-size: 15px; padding: 0;
  }
  /* 已登录：chip 下拉在面板内改为静态展开（同档案库子菜单范式） */
  .topnav .navlinks .ss-auth-zone .ss-auth-menu {
    position: static; transform: none; box-shadow: none;
    border: none; background: rgba(140,106,74,.03);
    margin: 8px 0 0;
  }

  /* Hero */
  header.hero { min-height: 40vh; }
  header.hero .wrap { padding: 32px var(--page-x-mobile) 28px; }
  /* v4.0.4 移动端 hero 标题→引言间距呼吸感（round2 复验 4 页观感过近） */
  header.hero h1.hero-title { margin-bottom: 24px; }

  /* ── 表格 → 卡片化重排（data-label 作键名） ── */
  .table-scroll, .table-wrap { border: none; background: transparent; overflow: visible; }
  .table-scroll table, .table-wrap table { min-width: 0; }
  .table-scroll thead, .table-wrap thead { display: none; }
  table, tbody, th, td, tr { display: block; }
  .table-scroll tbody tr, .table-wrap tbody tr {
    background: var(--paper); border: 1px solid var(--line);
    border-radius: var(--radius-md); margin-bottom: 12px; padding: 12px 16px;
  }
  /* v4.0.4：td 改块级、键名居上。flex 键值同行会把单元格内的 <b>/<br>/<a>
     拆成多个 flex 项互不折行，长内容被挤成 1ch 竖排并溢出（katsura 实证） */
  .table-scroll td, .table-wrap td {
    display: block; padding: 8px 0;
    border-bottom: 1px solid var(--line);
    text-align: left; font-size: 15px;
  }
  .table-scroll tr td:last-child, .table-wrap tr td:last-child { border-bottom: none; }
  /* 超长词防撑破卡片 */
  .table-scroll td, .table-wrap td { overflow-wrap: anywhere; word-break: break-word; }
  .table-scroll td::before, .table-wrap td::before {
    content: attr(data-label);
    display: block; margin-bottom: 3px;
    font-weight: 600; font-size: 12px; color: var(--ink3);
    text-transform: uppercase; letter-spacing: 0.04em;
  }
  /* v4.0.3 深色区表格卡片化：卡面/边框/键名暗色反转 */
  .dark-sec .table-scroll tbody tr, .dark-sec .table-wrap tbody tr {
    background: #1e1b17; border-color: #3a352d;
  }
  .dark-sec .table-scroll td::before, .dark-sec .table-wrap td::before { color: #b3ab9c; }
  caption { display: block !important; width: 100%; writing-mode: horizontal-tb !important; text-align: left !important; white-space: normal !important; }

  /* 通用网格 → 单列 */
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .compare { grid-template-columns: 1fr; gap: 12px; }

  /* 引用块/注释框：全宽不缩进 */
  blockquote, .bq { margin-left: 0; padding: 14px 16px; margin: 16px 0; }
  .bq--long, blockquote.long { padding: 20px 16px; max-width: none; }
  .note, .note-box { margin-left: 0; padding: 12px 16px; margin: 16px 0; }

  /* 事实数据展示 */
  .kv { display: flex; flex-direction: column; gap: 2px; }
  .kv dt { padding: 8px 0 0; }
  .kv dd { padding: 2px 0 8px; }
  .stat-grid, .stats { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .stat-card__num, .stat-num { font-size: 24px; }
}

.topnav-in { display: flex; align-items: center; width: 100%; justify-content: space-between; gap: 14px; /* v4.0.7 顶栏修复：返回链接与品牌名粘连（原无间距） */ }
.topnav .navback { font-size: 13px; color: var(--ink3); white-space: nowrap; flex: none; letter-spacing: .02em; }
.topnav .navback:hover { color: var(--accent); text-decoration: none; }
/* ── v4.0.9 hero 封面文字四端不可见修复（2026-09-01，主人授权） ──
   病灶（banlan 实证）：无 .wrap 的遗留 hero 结构中，kicker/h1/lead/meta 是
   header.hero 的直接子元素——header.hero 是 flex 行容器，文字项被压成竖排单字列；
   且文字 position:static 层级低于 z-index:1 的遮罩、文字色为深色 → 四端全部不可见。
   修复仅作用于「无 .wrap」的 hero（:not(:has) 圈定），标准 .wrap 结构 21 页零影响；
   移动端同规则生效属修复本意（原本就是坏的），无移动端断点内改动。 */
header.hero:has(> .hero-img):not(:has(> .wrap)) {
  flex-direction: column;
  justify-content: flex-end;
  align-items: stretch;
  padding: 48px var(--page-x) 40px;
}
header.hero:has(> .hero-img):not(:has(> .wrap)) > :not(.hero-img):not(.hero-scrim) {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--maxw);
  margin-left: auto;
  margin-right: auto;
}
header.hero:has(> .hero-img):not(:has(> .wrap)) > h1,
header.hero:has(> .hero-img):not(:has(> .wrap)) > .kicker,
header.hero:has(> .hero-img):not(:has(> .wrap)) > .lead,
header.hero:has(> .hero-img):not(:has(> .wrap)) > .hero-meta {
  color: #FDF9F0;
  text-shadow: 0 1px 12px rgba(0,0,0,.45);
}
header.hero:has(> .hero-img):not(:has(> .wrap)) > h1 em {
  color: inherit;
}
header.hero:has(> .hero-img):not(:has(> .wrap)) > .kicker {
  font-size: 12px;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent2);
}
header.hero:has(> .hero-img):not(:has(> .wrap)) > .hero-meta {
  border-top-color: rgba(253,249,240,.28);
}
header.hero:has(> .hero-img):not(:has(> .wrap)) > .hero-meta b {
  color: #FDF9F0;
}

/* ═══════════════════════════════════════════════════════
   wave2 · P3 方位系统（全端，流动零占用）
   阅读进度条 + 当前章节高亮 + 节序地标
   移动冻结资产保护：全部 position:fixed / 纯色彩变化，
   不进文档流、不改 scrollWidth；进度条与地标默认零视觉
   （scaleX(0)/opacity:0），滚动后才显现。
   ═══════════════════════════════════════════════════════ */

/* 阅读进度条：视口顶 3px，覆盖吸顶栏上缘 */
.ss-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px;
  z-index: 300; pointer-events: none; background: transparent;
}
.ss-progress-bar {
  height: 100%; background: var(--accent);
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .12s linear;
}

/* 节序地标：右下角胶囊，"第X节 · 共N节"，滚动超过一屏后浮现 */
.ss-pos {
  position: fixed; right: 12px; bottom: 12px; z-index: 300;
  pointer-events: none;
  font-family: var(--sans); font-size: 11px; font-weight: 500;
  letter-spacing: .06em; color: var(--ink3); white-space: nowrap;
  background: rgba(250,250,247,.94); border: 1px solid var(--line);
  border-radius: 999px; padding: 6px 11px;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  opacity: 0; transform: translateY(6px);
  transition: opacity .25s ease, transform .25s ease;
}
.ss-pos.show { opacity: 1; transform: none; }
.ss-pos b { color: var(--accent); font-weight: 700; }

/* 当前章节高亮：颜色+下划线，不改字重（避免导航宽度抖动） */
.topnav .navlinks a.active {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
@media (hover: none), (pointer: coarse) {
  .topnav .navlinks a.active:hover { text-decoration: underline; }
}

/* 锚点跳转不被吸顶栏遮挡（纯滚动偏移，无布局影响） */
section[id], div[id], header[id] { scroll-margin-top: 72px; }

/* v2 统一页脚 */
footer { padding: 32px 16px 24px; text-align: center; }
.foot-src { font-size: 13px; color: var(--ink2); line-height: 1.7; margin-bottom: 16px; max-width: 620px; }
.foot-src a { color: var(--accent); text-decoration: none; border-bottom: 1px solid var(--line); }
.foot-nav { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; margin-bottom: 8px; }
.foot-nav a { color: var(--ink2); text-decoration: none; }
.foot-nav a:hover { color: var(--ink1); }
.foot-site { text-align: center; font-size: 11px; color: var(--ink3); letter-spacing: .08em; margin-bottom: 8px; }
.foot-site a { color: var(--ink3); text-decoration: none; border-bottom: 1px solid var(--line); margin-left: 8px; }
.foot-legal { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
.foot-legal a { color: var(--ink3); text-decoration: none; }
.foot-legal a:hover { color: var(--ink2); }

/* ─ 底部固定提问栏 ── */
/* 仅注入了固定提问栏的页面（JS 给 body 加 ss-has-askbar 类）才让出底部空间；
   首页不注入固定栏，不做空位 */
body.ss-has-askbar { padding-bottom: 64px; }
.ss-ask-bottombar {
  position: fixed; bottom: 0; left: 0; right: 0;
  display: flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.97); border-top: 1px solid #E5E2DA;
  padding: 10px 16px 14px; z-index: 9000;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  padding-bottom: calc(14px + env(safe-area-inset-bottom, 0));
}
.ss-ask-bb-input { flex: 1; min-width: 0; border: 1px solid #E5E2DA; border-radius: 20px; padding: 9px 16px; font-size: 14px; outline: none; background: #FAFAF7; }
.ss-ask-bb-input:focus { border-color: #8C6A4A; }
.ss-ask-bb-btn { flex-shrink: 0; background: #151515; color: #fff; border: none; border-radius: 20px; padding: 9px 20px; font-size: 14px; cursor: pointer; }
.ss-ask-bb-btn:hover { background: #333; }

/* ── 首页动态区块（JS 生成） ── */
/* 左右 margin 跟页面页边距变量走（桌面 32 / 平板 20 / 手机 16），
   与今日拆解大卡 .ss-daily-wrap 的 padding 对齐，避免一宽一窄 */
.ss-daily {
  margin: 0 var(--page-x, 32px);
  padding: 24px 20px;
  background: var(--accent-soft, rgba(140,106,74,.06));
  border-left: 3px solid var(--accent, #8C6A4A);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
}
.ss-daily-k {
  font-size: 11px; letter-spacing: .18em; color: var(--ink3, #77736B);
  text-transform: uppercase; margin-bottom: 10px;
}
.ss-daily-q {
  font-size: 15px; line-height: 1.8; color: var(--ink, #151515);
  margin: 0 0 10px; font-style: normal;
  border: none; padding: 0; max-width: 620px;
}
.ss-daily-src { font-size: 12px; color: var(--ink3, #77736B); text-align: right; }
.ss-daily-src a { color: var(--accent, #8C6A4A); text-decoration: none; border-bottom: 1px solid var(--line); }

/* 进阶引导卡片 */
.ss-home-promo {
  margin: 0 var(--page-x, 32px);
  padding: 28px 20px;
  text-align: center;
  background: var(--paper, #fff);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
}
.ss-home-promo .ss-lock-ico { font-size: 24px; margin-bottom: 12px; }
.ss-home-promo-t { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.ss-home-promo-d { font-size: 13px; color: var(--ink3, #77736B); line-height: 1.7; margin-bottom: 16px; }
.ss-lock-btn {
  display: inline-block; padding: 10px 24px; font-size: 13px; font-weight: 600;
  background: var(--ink, #151515); color: #fff; border-radius: var(--radius-full);
  text-decoration: none;
}
.ss-lock-btn:hover { background: #333; }

/* 登录分级锁：内容模糊不可读 */
section.ss-locked {
  position: relative;
  overflow: hidden;
}
section.ss-locked > *:not(.ss-lock-veil) {
  filter: blur(8px);
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}
/* 首页独立锁卡：知识点下方，内容全部隐藏 */
.ss-home-lock {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 36px 20px 24px;
}

.ss-lock-veil {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(250,250,247,0.85);
}
.ss-lock-card {
  text-align: center;
  max-width: 320px;
  padding: 28px 20px;
}
.ss-lock-card .ss-lock-ico { font-size: 24px; margin-bottom: 12px; }
.ss-lock-card .ss-lock-title { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.ss-lock-card .ss-lock-desc { font-size: 13px; color: var(--ink3, #77736B); line-height: 1.7; margin-bottom: 16px; }

/* 768px 平板档 section 间距 */
@media (max-width: 768px) {
  section { padding: 36px var(--page-x-mobile, 20px) !important; }
  section.ss-acc-folded { padding: 18px var(--page-x-mobile, 20px) !important; }
  /* 今日拆解大卡的 section 例外：wrap 自带页边距，水平 padding 必须清零，
     否则与 wrap 的 16px 叠加，大卡比知识点卡窄一圈 */
  section.ss-daily-hero { padding: 28px 0 6px !important; }
}

/* ═══════════════ 人物页精简 Hero 卡片 ══════════════ */
.dark-sec .hero-cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 860px;
  margin: 0 auto;
  padding: 0 24px;
}
.dark-sec .hero-card {
  background: #1e1b17;
  border: 1px solid #3a352d;
  border-radius: 12px;
  padding: 28px 32px;
  overflow: hidden;
  min-width: 0;
}
.dark-sec .hero-card p,
.dark-sec .hero-card span {
  overflow-wrap: break-word;
  word-break: break-word;
}
.dark-sec .hero-card .hero-cat {
  display: block;
  font-size: 13px;
  letter-spacing: .12em;
  color: #b89b6f;
  margin-bottom: 6px;
}
.dark-sec .hero-card .hero-tag {
  display: block;
  font-size: 14px;
  color: #b3ab9c;
  letter-spacing: .04em;
}
.dark-sec .hero-main h2 {
  font-size: 28px;
  font-weight: 700;
  color: #f5f1e8;
  margin: 0 0 16px 0;
  letter-spacing: .02em;
}
.dark-sec .hero-main .hero-bio,
.dark-sec .hero-main .hero-style {
  font-size: 15px;
  line-height: 1.7;
  margin: 0 0 10px 0;
  color: #e8e4dc;
}
.dark-sec .hero-main .hero-achieve {
  color: #b89b6f;
  font-size: 14px;
  margin: 14px 0 0 0;
  padding-top: 12px;
  border-top: 1px solid #3a352d;
}
/* 移动端 hero-cards */
@media (max-width: 768px) {
  .dark-sec .hero-cards { gap: 12px; padding: 0 16px; }
  .dark-sec .hero-card { padding: 18px 16px; }
  .dark-sec .hero-main h2 { font-size: 22px; }
  .dark-sec .hero-main .hero-bio,
  .dark-sec .hero-main .hero-style { font-size: 14px; }
  .dark-sec .hero-main .hero-achieve { font-size: 13px; }
}


/* ═══════════════════════════════════════════════════════
   深色模式 Token（data-theme="dark"）
   v4.1.0: 全站深色变量覆盖
   ═══════════════════════════════════════════════════════ */
html[data-theme="dark"] {
  --bg: #141412;
  --paper: #1E1E1C;
  --paper-soft: #262624;
  --ink: #E8E4DC;
  --ink2: #C4BFB5;
  --ink3: #8E897E;
  --line: #333330;
  --line2: #444440;
  --accent: #C8A87C;
  --accent-soft: rgba(200,168,124,.12);
  --info: #7A9EC4;
  --info-soft: rgba(122,158,196,.12);
  --green: #8AB07A;
  --red: #D08078;
  --accent2: #D4B896;
}

/* 深色模式下的 body 背景 & 卡片微调（html 前缀提权，压制页面内联 body{} 规则） */
html[data-theme="dark"] body {
  background: var(--bg) !important;
  color: var(--ink) !important;
}
html[data-theme="dark"] .card { background: var(--paper); border-color: var(--line); }
html[data-theme="dark"] .body,
html[data-theme="dark"] .card .body { background: transparent; color: var(--ink2); }
html[data-theme="dark"] .card h3,
html[data-theme="dark"] .card h2 { color: var(--ink); }
html[data-theme="dark"] .card .desc { color: var(--ink2); }
html[data-theme="dark"] header,
html[data-theme="dark"] section { border-color: var(--line); }
html[data-theme="dark"] .kicker,
html[data-theme="dark"] .lead,
html[data-theme="dark"] .meta-row { color: var(--ink3); }
html[data-theme="dark"] h1, html[data-theme="dark"] h2, html[data-theme="dark"] h3, html[data-theme="dark"] h4 { color: var(--ink); }
html[data-theme="dark"] .tag { background: rgba(30,30,28,.92); border-color: var(--line); color: var(--ink3); }
html[data-theme="dark"] .foot { border-color: var(--line); color: var(--ink3); }
html[data-theme="dark"] .go { color: var(--ink); }
html[data-theme="dark"] .coming { border-color: var(--line2); }
html[data-theme="dark"] .coming p { color: var(--ink3); }
html[data-theme="dark"] footer { border-color: var(--line); color: var(--ink3); }
html[data-theme="dark"] .ss-daily, html[data-theme="dark"] .ss-ask-box { background: var(--paper); border-color: var(--line); }
[data-theme="dark"] .card,
[data-theme="dark"] .panel,
[data-theme="dark"] .gate,
[data-theme="dark"] .stat {
  background: var(--paper);
  border-color: var(--line);
}
[data-theme="dark"] .body { background: transparent; }
[data-theme="dark"] .topnav { background: rgba(20,20,18,.92); border-color: var(--line); }
[data-theme="dark"] .topnav a,
[data-theme="dark"] .topnav .brand { color: var(--ink2); }
[data-theme="dark"] .topnav .brand b { color: var(--ink); }
[data-theme="dark"] footer { border-color: var(--line); color: var(--ink3); }
[data-theme="dark"] .badge { background: var(--paper-soft); border-color: var(--line); color: var(--ink3); }
[data-theme="dark"] .badge.b-admin { background: var(--ink); color: var(--bg); border-color: var(--ink); }
[data-theme="dark"] .badge.b-advanced { background: rgba(200,168,124,.15); border-color: rgba(200,168,124,.3); color: var(--accent); }
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background: var(--paper-soft);
  color: var(--ink);
  border-color: var(--line2);
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color: var(--ink3); }
[data-theme="dark"] .btn { background: var(--paper); color: var(--ink); border-color: var(--line2); }
[data-theme="dark"] .btn-primary { background: var(--accent); color: #141412; border-color: var(--accent); }
[data-theme="dark"] .btn-primary:hover { background: #D4B896; border-color: #D4B896; }
[data-theme="dark"] details.fold { background: var(--paper); border-color: var(--line); }
[data-theme="dark"] details.fold > summary { color: var(--ink); }
[data-theme="dark"] th { color: var(--ink3); border-color: var(--line); }
[data-theme="dark"] td { border-color: var(--line); }
[data-theme="dark"] .tag { background: rgba(30,30,28,.92); border-color: var(--line); color: var(--ink3); }
[data-theme="dark"] .tag.t-brand { color: var(--accent); }
[data-theme="dark"] .sec-note,
[data-theme="dark"] .sub,
[data-theme="dark"] .hint,
[data-theme="dark"] .empty,
[data-theme="dark"] .online { color: var(--ink3); }
[data-theme="dark"] .foot { border-color: var(--line); color: var(--ink3); }
[data-theme="dark"] .go { color: var(--ink); }
[data-theme="dark"] .case-no { color: var(--accent); }
[data-theme="dark"] header { border-color: var(--line); }
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3, [data-theme="dark"] h4 { color: var(--ink); }
[data-theme="dark"] .lead { color: var(--ink3); }
[data-theme="dark"] .kicker { color: var(--ink3); }
[data-theme="dark"] .meta-row { color: var(--ink3); }
[data-theme="dark"] .meta-row b { color: var(--ink); }
[data-theme="dark"] section { border-color: var(--line); }

/* 主题切换按钮：极简纯图标，无边框无底色，hover 淡圆形反馈 */
.theme-toggle {
  background: none; border: none; border-radius: var(--radius-full);
  width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--ink3); font-size: 15px; line-height: 1; padding: 0;
  transition: color .2s, background .2s;
  flex-shrink: 0; -webkit-tap-highlight-color: transparent;
}
.theme-toggle:hover { color: var(--accent); background: var(--paper-soft); }
.theme-toggle:active { color: var(--accent); }

/* 深色模式 · 首页提问框 / FAQ / 输入栏（硬编码白底组件覆盖） */
html[data-theme="dark"] .ssask-hero,
html[data-theme="dark"] .ssask-box,
html[data-theme="dark"] .ssask-field,
html[data-theme="dark"] .ssask-qa-item,
html[data-theme="dark"] .ssask-hint {
  background: var(--paper) !important;
  border-color: var(--line) !important;
  color: var(--ink2) !important;
}
html[data-theme="dark"] .ssask-input {
  background: var(--paper-soft) !important;
  color: var(--ink) !important;
}
html[data-theme="dark"] .ssask-input::placeholder { color: var(--ink3) !important; }
html[data-theme="dark"] .ssask-submit {
  background: var(--accent) !important;
  color: #141412 !important;
}
html[data-theme="dark"] .ssask-qa-text { color: var(--ink) !important; }
html[data-theme="dark"] .ssask-qa-rank { color: var(--accent) !important; }
html[data-theme="dark"] .ssask-qa-tag {
  background: var(--paper-soft) !important;
  border-color: var(--line2) !important;
  color: var(--ink3) !important;
}
html[data-theme="dark"] .ssask-qa-go { color: var(--ink3) !important; }
html[data-theme="dark"] .ss-daily,
html[data-theme="dark"] .ssask-tier-hook {
  background: var(--paper) !important;
  border-color: var(--line) !important;
  color: var(--ink2) !important;
}

/* 深色模式 · 分割线 + 底部固定输入栏收尾 */
html[data-theme="dark"] .ssask-qa-item { border-color: var(--line) !important; box-shadow: none !important; }
html[data-theme="dark"] .ssask-qa-list { border-color: var(--line) !important; }
html[data-theme="dark"] .ssask-bar,
html[data-theme="dark"] .ssask-dock,
html[data-theme="dark"] .ask-dock,
html[data-theme="dark"] .ss-dock {
  background: var(--bg) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .ssask-bar .ssask-input,
html[data-theme="dark"] .ssask-dock .ssask-input {
  background: var(--paper) !important;
}

/* ═══ 深色模式补漏 v4.1.1（主人实拍反馈：FAQ 白线刺眼 + 底部提问栏白底） ═══
   根因1：.ssask-qa-list 硬编码 background:#fff，深色下容器白底从条目间隙透出成"白线"
   根因2：底部固定栏真实类名为 .ss-ask-bottombar（此前覆盖的 .ssask-dock 等均不匹配） */
html[data-theme="dark"] .ssask-qa-list {
  background: var(--paper) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .ssask-qa-list li + li { border-top-color: var(--line) !important; }
html[data-theme="dark"] .ssask-results {
  background: var(--paper) !important;
  border-color: var(--line) !important;
  color: var(--ink2) !important;
}
html[data-theme="dark"] .ssask-result {
  color: var(--ink2) !important;
  border-top-color: var(--line) !important;
}
html[data-theme="dark"] .ssask-result small,
html[data-theme="dark"] .ssask-result .ssask-none { color: var(--ink3) !important; }
html[data-theme="dark"] .ssask-result:hover,
html[data-theme="dark"] .ssask-result.is-active { background: var(--paper-soft) !important; }
html[data-theme="dark"] .ssask-modes { border-bottom-color: var(--line) !important; }
html[data-theme="dark"] .ssask-mode { color: var(--ink3) !important; }
html[data-theme="dark"] .ssask-mode.is-active { color: var(--ink) !important; border-bottom-color: var(--accent) !important; }
html[data-theme="dark"] .ssask-hint { border-top-color: var(--line) !important; }

/* 底部固定提问栏（真实类名 .ss-ask-bottombar） */
html[data-theme="dark"] .ss-ask-bottombar {
  background: rgba(20,20,18,.97) !important;
  border-top-color: var(--line) !important;
}
html[data-theme="dark"] .ss-ask-bb-input {
  background: var(--paper-soft) !important;
  border-color: var(--line2) !important;
  color: var(--ink) !important;
}
html[data-theme="dark"] .ss-ask-bb-input::placeholder { color: var(--ink3) !important; }
html[data-theme="dark"] .ss-ask-bb-input:focus { border-color: var(--accent) !important; }
html[data-theme="dark"] .ss-ask-bb-btn {
  background: var(--accent) !important;
  color: #141412 !important;
}
html[data-theme="dark"] .ss-ask-bb-btn:hover { background: var(--accent2) !important; }

/* ═══ 深色模式补漏 v4.1.2（无头全站审查：登录卡/内页header/搜索/标签云/收藏钮/封面亮带） ═══ */

/* 1. 登录注册卡（auth.html 内联样式 + auth.css 硬编码白底） */
html[data-theme="dark"] .ssauth-card {
  background: var(--paper) !important;
  border-color: var(--line) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.4) !important;
}
html[data-theme="dark"] .ssauth-title { color: var(--ink) !important; }
html[data-theme="dark"] .ssauth-kicker { color: var(--ink3) !important; }
html[data-theme="dark"] .ssauth-tabs { border-bottom-color: var(--line) !important; }
html[data-theme="dark"] .ssauth-tab { color: var(--ink3) !important; }
html[data-theme="dark"] .ssauth-tab[aria-selected="true"] { color: var(--ink) !important; border-bottom-color: var(--accent) !important; }
html[data-theme="dark"] .ssauth-field label { color: var(--ink2) !important; }
html[data-theme="dark"] .ssauth-field input {
  background: var(--paper-soft) !important;
  border-color: var(--line2) !important;
  color: var(--ink) !important;
}
html[data-theme="dark"] .ssauth-field input:focus { background: var(--paper-soft) !important; border-color: var(--accent) !important; }
html[data-theme="dark"] .ssauth-submit { background: var(--accent) !important; color: #141412 !important; }
html[data-theme="dark"] .ssauth-submit:hover:not(:disabled) { background: var(--accent2) !important; }
html[data-theme="dark"] .ssauth-send { color: var(--accent) !important; background: var(--accent-soft) !important; border-color: var(--line2) !important; }
html[data-theme="dark"] .ssauth-links button { color: var(--accent) !important; }

/* 2. 内页自带 header（account 等内联白底 header，!important 压内联样式） */
html[data-theme="dark"] header[style] {
  background: var(--bg) !important;
  border-bottom-color: var(--line) !important;
}
html[data-theme="dark"] header[style] a { color: var(--ink2) !important; }

/* 3. 搜索页：输入框白底 + 推荐词白胶囊 */
html[data-theme="dark"] .search-input-wrap {
  background: var(--paper) !important;
  border-color: var(--line2) !important;
}
html[data-theme="dark"] .search-input-wrap input { color: var(--ink) !important; }
html[data-theme="dark"] .search-input-wrap input::placeholder { color: var(--ink3) !important; }
html[data-theme="dark"] .search-input-wrap .search-icon { color: var(--ink3) !important; }
html[data-theme="dark"] .initial-state .sug-btn {
  background: var(--paper-soft) !important;
  color: var(--ink2) !important;
  border-color: var(--line2) !important;
}
html[data-theme="dark"] .initial-state .sug-btn:hover { border-color: var(--accent) !important; color: var(--accent) !important; }
html[data-theme="dark"] .result-tag { background: var(--paper-soft) !important; border-color: var(--line2) !important; color: var(--ink3) !important; }
html[data-theme="dark"] .result-tag mark { background: var(--accent-soft) !important; color: var(--accent) !important; }

/* 4. 标签页 .km-chip 标签云白胶囊 + 硬编码 #ccc 边框 */
html[data-theme="dark"] .km-chip,
html[data-theme="dark"] .km-case,
html[data-theme="dark"] .km-fei a {
  background: var(--paper) !important;
  color: var(--ink2) !important;
  border-color: var(--line2) !important;
}
html[data-theme="dark"] .km-chip:hover,
html[data-theme="dark"] .km-fei a:hover { border-color: var(--accent) !important; color: var(--accent) !important; }
html[data-theme="dark"] .km-chip-n { background: var(--paper-soft) !important; color: var(--ink3) !important; }
html[data-theme="dark"] .km-chip:hover .km-chip-n { color: var(--accent) !important; }

/* 5. 详情页收藏按钮（.ss-fav-btn 原本无样式裸按钮） */
html[data-theme="dark"] .ss-fav-btn {
  background: var(--paper) !important;
  color: var(--ink2) !important;
  border: 1px solid var(--line2) !important;
  border-radius: 999px;
  padding: 6px 16px;
  font: inherit;
  cursor: pointer;
}
html[data-theme="dark"] .ss-fav-btn.marked {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
  border-color: rgba(200,168,124,.4) !important;
}

/* 6. 封面缩略图深色观感：微压亮度 + 顶部渐变收掉图片亮部横带
   （浅色下亮带融入米白底无碍；深色下天空/白墙亮部跳眼。渐变仅深色生效，
   详情页大图不受影响——只作用于卡片 .cover / .cover-wide） */
html[data-theme="dark"] .cover img,
html[data-theme="dark"] .cover-wide img {
  filter: brightness(.9) saturate(.94);
}
html[data-theme="dark"] .cover::after,
html[data-theme="dark"] .cover-wide::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(20,20,18,.42) 0%, rgba(20,20,18,.12) 14%, rgba(20,20,18,0) 30%);
}

/* 收藏按钮基础样式（浅色+深色共用，原本为无样式原生按钮） */
.ss-fav-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--paper, #fff); color: var(--ink2, #555);
  border: 1px solid var(--line, #E6E2DA); border-radius: 999px;
  padding: 7px 18px; font: inherit; font-size: 13.5px; cursor: pointer;
  transition: border-color .2s, color .2s;
}
.ss-fav-btn:hover { border-color: var(--accent, #8C6A4F); color: var(--accent, #8C6A4F); }
.ss-fav-btn.marked { border-color: var(--accent, #8C6A4F); color: var(--accent, #8C6A4F); }
html[data-theme="dark"] input[type="checkbox"] { accent-color: var(--accent); }
/* 触屏设备 hover 粘滞：切换后淡圆底常驻，去掉（v4.0.4 同类处理） */
@media (hover: none) {
  .theme-toggle:hover { background: none; }
}

/* ═══ 深色模式补漏 v4.1.4：移动端汉堡下拉导航 + 头像/站内信下拉菜单 ═══ */

/* 汉堡展开的移动端导航抽屉（原硬编码 rgba(250,250,247,.98)） */
html[data-theme="dark"] .topnav .navlinks {
  background: rgba(20,20,18,.98) !important;
  border-bottom-color: var(--line) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.5) !important;
}
html[data-theme="dark"] .topnav .navlinks a {
  color: var(--ink2) !important;
  border-bottom-color: var(--line) !important;
}
html[data-theme="dark"] .topnav .navlinks a:hover,
html[data-theme="dark"] .topnav .navlinks a.active { color: var(--accent) !important; }
html[data-theme="dark"] .topnav .navlinks a:active { background: var(--accent-soft) !important; }
/* 导航下拉子菜单（案例库手风琴展开区） */
html[data-theme="dark"] .nav-drop-trigger {
  color: var(--ink2) !important;
  border-bottom-color: var(--line) !important;
}
html[data-theme="dark"] .nav-drop-menu { background: rgba(200,168,124,.05) !important; }
html[data-theme="dark"] .nav-drop-menu a { color: var(--ink3) !important; border-bottom-color: var(--line) !important; }
html[data-theme="dark"] .nav-drop-menu a:hover { color: var(--accent) !important; background: var(--accent-soft) !important; }

/* 头像/账号下拉菜单（含站内信条目；auth.css 硬编码白底） */
html[data-theme="dark"] .ss-auth-chip {
  color: var(--ink2) !important;
  border-color: var(--line2) !important;
}
html[data-theme="dark"] .ss-auth-chip:hover { color: var(--accent) !important; border-color: var(--accent) !important; }
html[data-theme="dark"] .ss-auth-chip .ss-auth-caret { color: var(--ink3) !important; }
html[data-theme="dark"] .ss-auth-menu {
  background: var(--paper) !important;
  border-color: var(--line2) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.5) !important;
}
html[data-theme="dark"] .ss-auth-menu .ss-auth-mail {
  color: var(--ink3) !important;
  border-bottom-color: var(--line) !important;
}
html[data-theme="dark"] .ss-auth-menu button,
html[data-theme="dark"] .ss-auth-menu .ss-auth-item { color: var(--ink2) !important; }
html[data-theme="dark"] .ss-auth-menu button:hover,
html[data-theme="dark"] .ss-auth-menu .ss-auth-item:hover {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
}
html[data-theme="dark"] .ss-auth-menu .ss-auth-logout { border-top-color: var(--line) !important; }

/* ═══ 深色模式补漏 v4.1.5：ask.html 提问页（消息白卡/输入框/提问按钮） + --sub 变量缺失 ═══ */
/* --sub 在浅色体系广泛使用（role 标签/页脚/芯片计数等），深色变量块漏定义，统一映射 ink3 */
html[data-theme="dark"] { --sub: var(--ink3); }

/* 问答消息卡片 */
html[data-theme="dark"] .msg {
  background: var(--paper) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .msg-text { color: var(--ink2) !important; }
html[data-theme="dark"] .msg.assistant { border-left-color: var(--ink2) !important; }
html[data-theme="dark"] .msg.user .msg-role,
html[data-theme="dark"] .msg.assistant .msg-role { color: var(--accent) !important; }
html[data-theme="dark"] .loading-dots span { background: var(--ink3) !important; }

/* 提问输入栏 */
html[data-theme="dark"] .input-bar {
  background: var(--bg) !important;
  border-top-color: var(--line) !important;
}
html[data-theme="dark"] .input-wrap input {
  background: var(--paper-soft) !important;
  color: var(--ink) !important;
  border-color: var(--line2) !important;
}
html[data-theme="dark"] .input-wrap input::placeholder { color: var(--ink3) !important; }
html[data-theme="dark"] .input-wrap input:focus { border-color: var(--accent) !important; }
html[data-theme="dark"] .input-wrap button {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  color: #141412 !important;
}
html[data-theme="dark"] .input-wrap button:hover { background: var(--accent2) !important; border-color: var(--accent2) !important; }
html[data-theme="dark"] .input-wrap button:disabled { background: var(--paper-soft) !important; border-color: var(--line2) !important; color: var(--ink3) !important; opacity: 1 !important; }

/* ═══ 栏目标题中英双语 v4.1.6：中文主标题下挂小号大写英文副题 ═══ */
.sec-head h2 { display: flex; flex-direction: column; gap: 5px; }
.sec-head .sec-en {
  font-size: 10px; font-weight: 400; letter-spacing: .28em;
  color: var(--ink3); text-transform: uppercase; line-height: 1;
}

/* ── v4.1.7 页脚重构：杂志式同轴布局 ── */
.site-foot{max-width:var(--maxw);margin:0 auto;padding:28px var(--page-x) 40px;border-top:1px solid var(--line);text-align:left}
.site-foot-nav{display:grid;grid-template-columns:repeat(4,auto);gap:12px 28px;justify-content:start}
.site-foot-nav a{font-size:13px;color:var(--ink2);text-decoration:none;letter-spacing:.02em;white-space:nowrap;transition:color .2s ease}
.site-foot-nav a:hover{color:var(--accent)}
.site-foot-rule{height:1px;background:var(--line);margin:16px 0 16px}
.site-foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.site-foot-copy{font-size:11px;color:var(--ink3);letter-spacing:.06em}
.site-foot-legal{display:flex;gap:20px;flex-wrap:wrap}
.site-foot-legal a{font-size:11px;color:var(--ink3);text-decoration:none;letter-spacing:.04em;transition:color .2s ease}
.site-foot-legal a:hover{color:var(--ink2)}
@media(max-width:720px){
  /* 移动端 footer 精简：导航与顶部导航重复，整块隐藏；只留品牌+版权+法务，
     间距收紧，避免一屏五行平铺的累赘感 */
  .site-foot{padding:20px var(--page-x-mobile) 18px;text-align:center;border-top:none;margin-top:20px}
  .site-foot-nav{display:grid;grid-template-columns:repeat(4,auto);gap:8px 16px;justify-content:center}
  .site-foot-rule{margin:10px 0 10px}
  .site-foot-bottom{flex-direction:column;align-items:center;gap:10px}
  .site-foot-legal{justify-content:center;gap:16px}
}

/* ── v4.1.8 卡片底部只留进入按钮；ask 小K拟人化状态语 ── */
.card .foot > span:not(.go){display:none}
.card .foot .go{margin-left:auto}
.ss-status{font-size:13px;color:var(--sub);letter-spacing:.02em;font-style:normal}

/* ── v4.1.9 移动端抽屉：分类钮分隔线与普通项统一为居中短线 ── */
@media(max-width:720px){
  .topnav .navlinks .nav-drop-trigger{position:relative;border-bottom:none}
  .topnav .navlinks .nav-drop-trigger::after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:72px;height:1px;background:var(--line)}
  .topnav .navlinks .nav-drop.open .nav-drop-trigger::after{display:none}
  .topnav .navlinks .nav-drop-menu a:last-child{border-bottom:none}
}

@media(max-width:720px){
  .topnav .navlinks .nav-drop-menu a{position:relative;border-bottom:none}
  .topnav .navlinks .nav-drop-menu a::after{content:'';position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:72px;height:1px;background:var(--line)}
  .topnav .navlinks .nav-drop-menu a:last-child::after{display:none}
}

/* ═══ 深色模式补漏 v4.2.0：ask 答案评价条（有用/没用 拇指钮） ═══ */
html[data-theme="dark"] .msg-rate { border-top-color: var(--line) !important; }
html[data-theme="dark"] .rate-btn { color: var(--ink3) !important; }
html[data-theme="dark"] .rate-btn:hover { color: var(--ink) !important; }
html[data-theme="dark"] .rate-btn.rated { color: var(--accent) !important; }
html[data-theme="dark"] .rate-thanks { color: var(--accent) !important; }

/* ═══ 深色模式补漏 v4.2.1：报错气泡「重新提问」按钮 ═══ */
html[data-theme="dark"] .retry-btn { border-color: var(--line2) !important; color: var(--ink) !important; background: none !important; }
html[data-theme="dark"] .retry-btn:hover { border-color: var(--accent) !important; color: var(--accent) !important; }

/* ═══ 深色模式补漏 v4.2.2：ask 页 textarea 输入框 / 空状态芯片 / 流式回答正文 ═══ */
html[data-theme="dark"] .msg-content { color: var(--ink2) !important; }
html[data-theme="dark"] .input-wrap textarea {
  background: var(--paper-soft) !important;
  color: var(--ink) !important;
  border-color: var(--line2) !important;
}
html[data-theme="dark"] .input-wrap textarea::placeholder { color: var(--ink3) !important; }
html[data-theme="dark"] .input-wrap textarea:focus { border-color: var(--accent) !important; }
html[data-theme="dark"] .ss-chip { border-color: var(--line2) !important; color: var(--ink2) !important; background: none !important; }
html[data-theme="dark"] .ss-chip:hover { border-color: var(--accent) !important; color: var(--accent) !important; }

/* ═══════════════════════════════════════════════════════
   v4.3 · IA v2 单篇编辑模式（2026-09-05）
   组件：新导航账号区 / 首页今日大卡 / 文章页下一篇条 /
         账号 chip 下拉「个人中心」
   深色覆盖紧跟其后（html[data-theme="dark"] 前缀 + !important）
   ═══════════════════════════════════════════════════════ */

/* ── 新导航：账号区固定最右 ── */
.topnav .navlinks.ss-nav-new { align-items: center; }
.ss-auth-zone { margin-left: 10px; display: inline-flex; align-items: center; gap: 6px; }
.ss-auth-zone .ss-auth-login {
  font-size: 12px; letter-spacing: .14em; color: var(--ink);
  border: 1px solid var(--line); padding: 7px 16px; border-radius: var(--radius-sm);
  text-decoration: none; transition: border-color .2s, color .2s;
}
.ss-auth-zone .ss-auth-login:hover { border-color: var(--accent); color: var(--accent); }
.ss-auth-zone .ss-auth-chip { margin: 0; }
.topnav .navlinks a.active { color: var(--accent); }
.topnav .navlinks .nav-drop-trigger.active { color: var(--accent); }
.ss-acct-link {
  display: block; width: 100%; text-align: left;
  font: inherit; font-size: 13px; color: var(--ink2);
  background: none; border: none; border-bottom: 1px solid var(--line);
  padding: 9px 4px; cursor: pointer; text-decoration: none;
}
.ss-acct-link:hover { color: var(--accent); }

/* ── 首页「今日拆解」大卡 ── */
/* 水平 padding 为 0：.ss-daily-wrap 自带页边距；移动端需带 !important 才能
   抵消 768px 断点那条 `section { padding ... !important }` 全局强压规则，
   否则大卡比上方知识点卡左右各窄 16px（2026-09-05 实测根因） */
.ss-daily-hero { padding: 40px 0 8px; }
.ss-daily-wrap { max-width: var(--maxw, 1180px); margin: 0 auto; padding: 0 var(--page-x, 32px); }
.ss-daily-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
  overflow: hidden; transition: box-shadow .3s ease;
}
.ss-daily-card:hover { box-shadow: 0 24px 60px -30px rgba(21,21,21,.3); }
.ssdc-kicker {
  font-size: 11px; letter-spacing: .28em; color: var(--accent);
  text-transform: uppercase; padding: 18px 28px 0;
}
.ssdc-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 0; }
.ssdc-cover { position: relative; display: block; overflow: hidden; background: var(--paper-soft); min-height: 280px; }
.ssdc-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.ss-daily-card:hover .ssdc-cover img { transform: scale(1.03); }
.ssdc-body { padding: 28px 30px 30px; display: flex; flex-direction: column; }
.ssdc-title { font-family: Georgia, "Songti SC", serif; font-size: 27px; font-weight: 600; line-height: 1.35; margin: 0 0 10px; }
.ssdc-sub { font-size: 13.5px; color: var(--sub); margin-bottom: 18px; line-height: 1.6; }
.ssdc-pick { font-size: 14.5px; line-height: 1.85; color: #3d3d3a; margin: 0; flex: 1; }
.ssdc-pick-k {
  display: inline-block; font-size: 11px; letter-spacing: .2em; color: var(--accent);
  border: 1px solid var(--accent); border-radius: 2px; padding: 2px 8px; margin-right: 10px;
  vertical-align: 2px; white-space: nowrap;
}
.ssdc-actions { display: flex; align-items: center; gap: 14px; margin-top: 24px; }
.ssdc-read {
  appearance: none; border: 1px solid var(--ink); background: var(--ink); color: var(--bg);
  font: inherit; font-size: 13.5px; letter-spacing: .12em; padding: 12px 28px; cursor: pointer;
  white-space: nowrap; flex: none;
  transition: background .2s, border-color .2s;
}
.ssdc-read:hover { background: var(--accent); border-color: var(--accent); }
.ssdc-fav {
  appearance: none; background: none; border: 1px solid var(--line2);
  font: inherit; font-size: 13px; color: var(--sub); letter-spacing: .08em;
  padding: 11px 18px; cursor: pointer; display: inline-flex; align-items: center; gap: 7px;
  transition: border-color .2s, color .2s;
}
.ssdc-fav:hover { border-color: var(--accent); color: var(--accent); }
.ssdc-fav.marked { border-color: var(--accent); color: var(--accent); }
.ssdc-fav:disabled { opacity: .55; cursor: default; }
.ssdc-fav-ico { font-size: 16px; line-height: 1; }
.ss-daily-more { text-align: center; padding: 22px 0 0; }
.ss-daily-more button {
  appearance: none; background: none; border: none; font: inherit;
  font-size: 13.5px; color: var(--sub); letter-spacing: .08em; cursor: pointer;
  padding: 4px 2px; transition: color .2s;
}
.ss-daily-more button:hover { color: var(--accent); }

/* 首页问答条→问小K 引导（大卡与 FAQ 之间的分隔引导） */
.ss-ask-cta { text-align: center; padding: 36px 0 8px; font-size: 14px; color: var(--sub); }
.ss-ask-cta a { color: var(--accent); font-weight: 600; letter-spacing: .06em; text-decoration: none; border-bottom: 1px solid var(--accent); padding-bottom: 2px; }

/* ── 文章页底部「下一篇」导航条 ── */
.ss-next-bar {
  max-width: 820px; margin: 56px auto 0; padding: 0 var(--page-x, 32px);
  border-top: 1px solid var(--line); padding-top: 28px;
}
.ss-next-k { display: block; font-size: 11px; letter-spacing: .28em; color: var(--sub); text-transform: uppercase; margin-bottom: 10px; }
.ss-next-link {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  text-decoration: none; padding: 8px 0;
}
.ss-next-cat { font-size: 12px; color: var(--accent); letter-spacing: .12em; flex: none; }
.ss-next-title { font-family: Georgia, "Songti SC", serif; font-size: 19px; font-weight: 600; color: var(--ink); line-height: 1.5; }
.ss-next-go { margin-left: auto; font-size: 12.5px; color: var(--sub); letter-spacing: .14em; flex: none; }
.ss-next-link:hover .ss-next-title { color: var(--accent); }
.ss-next-link:hover .ss-next-go { color: var(--accent); }

@media (max-width: 720px) {
  /* 纵向间距微调；水平 padding 由 768px 块的 !important 规则统一清零 */
  .ss-daily-hero { padding: 20px 0 4px !important; }
  .ss-daily-wrap { padding: 0 var(--page-x-mobile, 16px); }
  /* 移动端 main 底部呼吸收紧（固定提问栏不注入时无需 100px 让位，
     且今日拆解是首页最后一块，避免换一篇到 footer 之间大空白） */
  main { padding-bottom: 24px; }
  .ss-daily-more { padding-top: 16px; }
  .ss-daily-more button { font-size: 13px; color: var(--ink3); }
  .ssdc-kicker { padding: 16px 18px 0; }
  .ssdc-grid { grid-template-columns: 1fr; }
  .ssdc-cover { min-height: 0; }
  .ssdc-cover img { aspect-ratio: 4/3; }
  .ssdc-body { padding: 20px 18px 22px; }
  .ssdc-title { font-size: 21px; margin-bottom: 8px; }
  .ssdc-sub { margin-bottom: 12px; }
  /* 移动端主编推荐语限 2 行，避免卡片信息推挤 */
  .ssdc-pick {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .ssdc-actions { gap: 10px; margin-top: 16px; }
  .ssdc-read { flex: 1; padding: 12px 14px; }
  .ssdc-fav { white-space: nowrap; padding: 11px 16px; }
  .ss-next-go { margin-left: 0; width: 100%; }
}

/* ═══ 深色模式 v4.3：IA v2 组件 ═══ */
html[data-theme="dark"] .ss-auth-zone .ss-auth-login {
  color: var(--ink) !important; border-color: var(--line2) !important;
}
html[data-theme="dark"] .ss-auth-zone .ss-auth-login:hover { border-color: var(--accent) !important; color: var(--accent) !important; }
html[data-theme="dark"] .ss-acct-link { color: var(--ink2) !important; border-bottom-color: var(--line) !important; }
html[data-theme="dark"] .ss-acct-link:hover { color: var(--accent) !important; }
html[data-theme="dark"] .ss-daily-card { background: var(--paper) !important; border-color: var(--line) !important; }
html[data-theme="dark"] .ssdc-cover { background: var(--paper-soft) !important; }

html[data-theme="dark"] .ssdc-title { color: var(--ink) !important; }
html[data-theme="dark"] .ssdc-sub { color: var(--ink3) !important; }
html[data-theme="dark"] .ssdc-pick { color: var(--ink2) !important; }
html[data-theme="dark"] .ssdc-read { background: var(--ink) !important; border-color: var(--ink) !important; color: var(--bg) !important; }
html[data-theme="dark"] .ssdc-read:hover { background: var(--accent) !important; border-color: var(--accent) !important; color: #1a1a1a !important; }
html[data-theme="dark"] .ssdc-fav { border-color: var(--line2) !important; color: var(--ink3) !important; }
html[data-theme="dark"] .ssdc-fav:hover, html[data-theme="dark"] .ssdc-fav.marked { border-color: var(--accent) !important; color: var(--accent) !important; }
html[data-theme="dark"] .ss-daily-more button { color: var(--ink3) !important; }
html[data-theme="dark"] .ss-daily-more button:hover { color: var(--accent) !important; }
html[data-theme="dark"] .ss-ask-cta { color: var(--ink3) !important; }
html[data-theme="dark"] .ss-next-bar { border-top-color: var(--line) !important; }
html[data-theme="dark"] .ss-next-k { color: var(--ink3) !important; }
html[data-theme="dark"] .ss-next-title { color: var(--ink) !important; }
html[data-theme="dark"] .ss-next-link:hover .ss-next-title, html[data-theme="dark"] .ss-next-link:hover .ss-next-go { color: var(--accent) !important; }
html[data-theme="dark"] .ss-next-go { color: var(--ink3) !important; }

/* ═══════════════════════════════════════════════════════
   v4.0.7 · 7 天新学员引导组件（审计报告 4.0 骨架）
   - .day-intro-card  今日导语卡（米白纸感，左侧 3px 墨色竖条，无色块填充）
   - .reading-route   新手阅读路线折叠卡（默认展开）
   - .next-day-hook   明日钩子窄条卡
   - .day7-duo-card   D7 双篇导航卡（双栏 + 当前篇高亮）
   - .duo-link        D7 文末"另一极"互链卡
   视觉：--paper 白底 + 1px --line 细边 + 留白；不使用色块填充
   ═══════════════════════════════════════════════════════ */

/* ── 组件 A：今日导语卡 ── */
.day-intro-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 3px solid var(--ink);
  border-radius: var(--radius-md);
  padding: 22px 26px;
  margin: var(--sp-6) 0;
}
.day-intro-card .day-tag {
  display: block;
  font-size: var(--font-small);
  letter-spacing: .12em;
  color: var(--ink3);
  margin-bottom: 10px;
  max-width: 620px;
}
.day-intro-card .day-hook {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.85;
  color: var(--ink);
  margin: 0 0 10px;
  max-width: 620px;
}
.day-intro-card .day-learn {
  max-width: 620px;
  margin: 8px 0 12px;
  padding-left: 1.2em;
  color: var(--ink2);
  font-size: var(--font-body);
  line-height: 1.9;
}
.day-intro-card .day-learn li { margin-bottom: 2px; }
.day-intro-card .day-meta {
  /* v4.0.8b：正文类下限 13px（小K 20260921 口径），不继承 --font-small(12px) */
  font-size: 13px;
  color: var(--ink3);
  border-top: 1px solid var(--line);
  padding-top: 10px;
  margin: 0;
  max-width: 38em;  /* 13px×38≈494px，避免620px@13px=48字超行长 */
}
.day-intro-card a { color: var(--accent); }

/* ── 组件 C：新手阅读路线（嵌在导语卡之后） ── */
.reading-route {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 14px 20px;
  margin: -8px 0 var(--sp-6);
  font-size: var(--font-body);
  color: var(--ink2);
}
.reading-route summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--ink);
  font-size: 14px;
  list-style: none;
  user-select: none;
}
.reading-route summary::-webkit-details-marker { display: none; }
.reading-route summary::before {
  content: "▸ ";
  color: var(--accent);
  font-size: 12px;
}
.reading-route[open] summary::before { content: "▾ "; }
.reading-route ol {
  margin: 10px 0 6px;
  padding-left: 1.4em;
  line-height: 1.9;
}
.reading-route ol li { max-width: 620px; }
.reading-route a { color: var(--accent); text-decoration: none; border-bottom: 1px solid var(--line); }
.reading-route a:hover { border-bottom-color: var(--accent); }
.reading-route .route-note {
  margin: 8px 0 0;
  max-width: 620px;
  font-size: 13px;
  color: var(--ink3);
  line-height: 1.7;
}

/* ── 组件 B：明日钩子（窄条卡） ── */
.next-day-hook {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: 2px solid var(--ink);
  border-radius: var(--radius-md);
  padding: 16px 22px;
  margin: var(--sp-7, 32px) 0 var(--sp-6, 24px);
}
.next-day-hook .next-tag {
  flex: 0 0 auto;
  font-size: var(--font-small);
  letter-spacing: .12em;
  color: var(--ink3);
  border: 1px solid var(--line2);
  border-radius: var(--radius-sm);
  padding: 4px 10px;
  white-space: nowrap;
}
.next-day-hook .next-text {
  flex: 1 1 280px;
  margin: 0;
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink2);
  max-width: 620px;
}
.next-day-hook .next-link {
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  white-space: nowrap;
}
.next-day-hook .next-link:hover { border-bottom: 1px solid var(--accent); }
@media (max-width: 768px) {
  .next-day-hook { padding: 14px 16px; gap: 10px; }
}

/* ── 组件 D：D7 双篇导航卡 ── */
.day7-duo-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-left: 3px solid var(--ink);
  border-radius: var(--radius-md);
  padding: 22px 26px;
  margin: var(--sp-6) 0;
}
.day7-duo-card .day7-tag {
  display: block;
  max-width: 620px;
  font-size: var(--font-small);
  letter-spacing: .12em;
  color: var(--ink3);
  margin-bottom: 10px;
}
.day7-duo-card .day7-axis,
.day7-duo-card .day7-readtip {
  font-family: var(--serif);
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink2);
  margin: 0 0 14px;
  max-width: 620px;
}
.day7-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.day7-col {
  display: block;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  text-decoration: none;
  color: var(--ink2);
  background: var(--paper);
  transition: border-color .2s, box-shadow .2s;
  font-size: 13px;
  line-height: 1.7;
}
.day7-col b {
  display: block;
  font-family: var(--serif);
  font-size: 16px;
  color: var(--ink);
  margin-bottom: 6px;
  font-weight: 700;
}
.day7-col:hover { border-color: var(--accent); box-shadow: 0 2px 12px rgba(0,0,0,.06); text-decoration: none; }
.day7-col.current {
  border-color: var(--ink);
  border-left: 3px solid var(--ink);
  background: var(--paper-soft);
}
.day7-col .day7-rows { display: block; margin-top: 4px; color: var(--ink3); font-size: 12.5px; }
.day7-col .day7-rows span { display: block; }
.day7-readtip {
  margin: 14px 0 0;
  font-size: 13px;
  color: var(--ink3);
  line-height: 1.7;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}
@media (max-width: 768px) {
  .day7-cols { grid-template-columns: 1fr; }
}

/* ── D7 文末「另一极」互链卡 ── */
.duo-link {
  display: block;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 16px 22px;
  margin: var(--sp-6, 24px) 0;
  text-decoration: none;
  color: var(--ink2);
  transition: border-color .2s, box-shadow .2s;
}
.duo-link:hover { border-color: var(--accent); box-shadow: 0 2px 12px rgba(0,0,0,.06); text-decoration: none; }
.duo-link .duo-link-tag {
  display: block;
  font-size: var(--font-small);
  letter-spacing: .12em;
  color: var(--ink3);
  margin-bottom: 6px;
}
.duo-link .duo-link-text {
  display: block;
  font-size: 14px;
  line-height: 1.8;
  margin-bottom: 8px;
}
.duo-link .duo-link-go { font-weight: 600; color: var(--accent); font-size: 14px; }

/* ── 引导组件所在 section：收紧行距、去底部分隔线 ── */
section.day-band { padding: var(--sp-6) var(--page-x); border-bottom: none; }
section.day-band + section { border-top: none; }

/* ── 移动端：引导卡内边距与字号收紧，保证小屏可读 ── */
@media (max-width: 768px) {
  .day-intro-card { padding: 16px 18px; margin: var(--sp-5, 20px) 0; }
  .day-intro-card .day-hook { font-size: 15px; line-height: 1.8; }
  .day-intro-card .day-learn { padding-left: 1.1em; }
  .day7-duo-card { padding: 16px 18px; }
  .day7-duo-card .day7-axis { font-size: 14px; line-height: 1.8; }
  .day7-col { padding: 14px 15px; }
  .reading-route { padding: 12px 16px; }
  .duo-link { padding: 14px 16px; }
  .duo-link .duo-link-text { font-size: 13.5px; line-height: 1.75; }
  section.day-band { padding: var(--sp-5, 20px) var(--page-x); }
}

/* ── v4.0.8 散文行宽阅读度量：38em = 自身字号×38（整数倍，≈38汉字/行）──
   覆盖此前满宽的研究页散文块（ss-sub/关联卡/阅读路线/D7互链/研究hero），
   窄栏、表格td、标题不加；移动端本就满宽，规则无害。 */
.ss-sub,
.ss-rel-note,
.reading-route .route-note,
.duo-link .duo-link-text,
.day7-duo-card .day7-axis,
.day7-duo-card .day7-readtip,
.dark-sec .hero-main .hero-bio,
.dark-sec .hero-main .hero-style,
.dark-sec .hero-main .hero-achieve {
  max-width: 38em;
}

/* v4.0.8 续：研究页 section 直接散文（sec-sub/裸p/li）行宽上限38em；
   .pcard p、表格td、卡片内部不受影响（各自已有度量）。 */
main section > p.sec-sub,
main section > p:not([class]),
main section > ul:not([class]) > li,
main section > ol:not([class]) > li {
  max-width: 38em;
}

/* v4.0.8 续2：研究页时间轴条目、clean清单、新手卡元数据/学习清单行宽 */
.tl-item p,
ul.clean > li,
.day-meta,
.day-learn li,
.reading-route ol li {
  max-width: 38em;
}

/* ── v4.0.9 中文断行与盘古之白（防御性全局，20260921 排版审计轻微⑤⑥）── */
html {
  line-break: strict;          /* 避头尾禁则，Chromium 默认已 strict，显式声明作防御 */
  text-autospace: normal;      /* 盘古之白：自动补中英/中数间空隙；不支持浏览器自动降级 */
}

/* ── v4.0.9 字号档位定稿（审计清单明显级 8 项 + 轻微①②档位决策）──
   .sec-sub = 15px（正文导读性质，非辅助）
   .pcard p / .node-card p = 维持 13.5px（卡片辅助描述）
   next-text 15px+620px；space-card p 14px；
   bt-intro .text p / tmpl-body 15px；steps li p 15px；
   tour-card p / tour-feature p 15px；katsura/water-church callout 15px。 */

/* ── p72：十日篇 prev/next 双向导航（.day-nav-hook，小健文案/编程专家 DOM）──
   位置：main 尾部（footer 前）；Day10 毕业页只有 prev；纯文字+←→，零 emoji */
.day-nav-hook{display:flex;gap:14px;flex-wrap:wrap;margin:40px 0 0}
.day-nav-hook a{flex:1 1 260px;display:block;background:#fff;border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:8px;padding:18px 22px;text-decoration:none;transition:border-color .25s ease,transform .25s ease}
.day-nav-hook a:hover{border-top-color:var(--accent-deep);transform:translateY(-1px)}
.day-nav-hook .dn-dir{display:block;font-size:11.5px;letter-spacing:.14em;color:var(--sub);margin-bottom:8px}
.day-nav-hook .dn-title{display:block;font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink);line-height:1.5}
.day-nav-hook .dn-sub{display:block;font-size:13.5px;color:var(--ink3);line-height:1.7;margin-top:6px;max-width:620px}
.day-nav-hook .day-nav-next{text-align:right}
.day-nav-hook .day-nav-next .dn-sub{margin-left:auto}
@media (max-width:640px){
  .day-nav-hook{flex-direction:column}
  .day-nav-hook .day-nav-next{text-align:left}
  .day-nav-hook .day-nav-next .dn-sub{margin-left:0}
}
