/* ============================================================
孤灿 · 官网全站样式（移动端优先 / 纯静态 / 无外链）
视觉体系：色块 + Meta 风（2026-10-17 方向定稿 B 版 · Meta 蓝紫）
色板（WCAG 实测对比度，白底 / 白字）：
主锚点 var(--brand)  15.54:1 ✅正文     正文墨 var(--sun-ink)  17.53:1 ✅
正文链接 var(--link)  7.28:1 ✅         次级文字 var(--muted)  5.77:1 ✅
Meta 蓝 var(--blue)  5.15:1 ✅白字可作按钮底
紫深   var(--purple-deep)  7.36:1 ✅白字可作按钮底
紫     var(--purple)  4.74:1 ✅白字仅大字
亮青   var(--cyan)  2.00:1 ❌仅装饰（深底上 7.78:1 可作强调字）
珊瑚   var(--sun)  2.82:1 ❌仅装饰（深底上 5.52:1 可作强调字）
Hero / 深色块渐变刻意避开 var(--cyan) 起手，保证白字最低 5.15:1。
字体：思源黑体（Noto Sans SC 同源），自托管子集，SIL OFL 1.1，见 fonts/OFL.txt
© 赣州孤灿科技有限公司
============================================================ */

/* ------------------------------------------------------------
   2026-10-26 老板令：放弃自托管中文字体，改用系统字体栈（省 519 KB）
   理由：DeepSeek／腾讯／华为三家的官网都没自托管中文字体——西文用品牌字体，
   中文交给系统。我们 20 页的文字量，加上「每片 160 KB 承载 800 来个字」的性价比，
   不如把体积让给内容。
   代价：Windows 与 macOS 会各自选中文字体，跨平台字宽略有差异
   （协议页那种靠「每行 40 字」控版面的地方，行数可能差 1–2 行，可接受）。
   栈内只写通用族与跨平台通用名，不写任何单一厂商专有字体。
   ------------------------------------------------------------ */

*{ box-sizing: border-box; }
h1, h2, h3{ text-wrap: balance; }
p{ text-wrap: pretty; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  /* 全站唯一字体栈：先本站自托管思源，再退到本机已装思源，最后通用无衬线。
     按《品牌视觉规范》§3.1，栈内不写任何专有字体（清单见规范），避免版权争议。 */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;
  letter-spacing: .04em;
  -webkit-font-smoothing: antialiased;
}
/* 窄屏以内边距收紧，≥360px 可用 */
body{ padding: 0; }
a{ color: var(--link); text-decoration: none; }
a:hover, a:focus{ text-decoration: underline; }
img, svg{ max-width: 100%; height: auto; }
/* ---------- 布局容器 ---------- */
.wrap{ max-width: var(--maxw); margin: 0 auto; padding: 0 18px; }
/* ---------- 页头（明亮：白 → 极浅青 ＋ 青蓝渐变细带） ---------- */
.site-header{ color: var(--brand); }
.site-header::after{ content: ""; height: 3px; background: var(--grad-cool); }
.site-header .wrap{ justify-content: space-between; }
.brand{ color: var(--brand); }
.brand:hover{ text-decoration: none; }
.brand-mark{ color: #fff; place-items: center; font-weight: 700; font-size: 18px; }
/* 极窄屏（≤480px，含 360px）：品牌副标题让位，避免撑宽与横向滚动 */
@media (max-width: 480px){
  .brand-text small { display: none; }
}
/* ---------- 主内容 ---------- */
main{ display: block; }
section{ padding: 30px 0; }  /* v2.0（J3 ①）：全站删分割线，层次靠留白与色带 */
section:last-of-type{ border-bottom: 0; }
h1{ font-size: clamp(26px, 4.6vw, 34px); font-weight: 800; line-height: 1.18; letter-spacing: -.02em; margin: 22px 0 6px; }  /* v2.0 内页 h1 收敛为 800 */
h2{ font-size: clamp(24px, 2.8vw, 36px); font-weight: 800; line-height: 1.25; letter-spacing: -.02em; margin: 28px 0 12px; color: var(--brand); }  /* v2.0 拉开与正文级差 */
h3{ font-size: 18px; font-weight: 600; line-height: 1.5; margin: 20px 0 8px; }
p{ margin: 12px 0; font-weight: 400; }
/* 结论式摘要段（每页首段） */
.summary{ position: relative; overflow: hidden; margin: 18px 0; }
.summary strong{ color: var(--brand); }
/* 面包屑 */
/* ---------- 要点列表 ---------- */
ul.pts{ list-style: none; margin: 14px 0; }
ul.pts > li{ position: relative; }
/* ---------- 卡片网格 ---------- */
.grid{ display: grid; gap: 24px; grid-template-columns: 1fr; }  /* v2.0：gap 18→24 */
@media (min-width: 760px){
  .grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
}
@media (hover: hover) {
}
/* ---------- 目录表 ---------- */
table{ width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 15px; }
caption{ text-align: left; color: var(--muted); font-size: 13px; padding: 4px 0; }
th, td{ border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; }
th{ background: var(--tint-blue); color: var(--ink); font-weight: 500; }  /* v2.0：表头改浅蓝底深字（16.15:1） */
/* 宽表溢出：外层可横向滚动，避免撑破 360px 视口 */
.table-scroll{ overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* 长串（如统一社会信用代码）强制断行 */
.code{ word-break: break-all; }
/* ---------- 按钮 ---------- */
.btn{
  display: inline-block;
  background: var(--blue);   /* v2.0 主填充改 Meta 蓝 */
  color: #fff;
  font-weight: 500;
  border: 1px solid transparent;
  box-shadow: none;
  transition: background var(--ease), border-color var(--ease), transform var(--ease);
}
.btn:hover, .btn:focus{ background: var(--link); text-decoration: none; box-shadow: none; }
.btn.ghost{ box-shadow: none; }
.btn.ghost:hover, .btn.ghost:focus{ background: #F1F4FA; border-color: rgba(10,37,64,.28); color: var(--brand); }
.btn-row{ display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
/* 首屏主 CTA 唯一，其余入口降为次要文字链接（M3） */
.cta-sub{ font-size: 15px; color: var(--muted); margin: 8px 0 0; }
/* ---------- 表单 ---------- */
form.layform{ margin: 14px 0; }
.field{ margin: 16px 0; }
.field label{ display: block; font-weight: 600; margin-bottom: 6px; font-size: 15px; }
.field .req{ color: var(--alert); font-weight: 400; font-size: 13px; }
.field input, .field select, .field textarea{
  width: 100%;
  padding: 12px 14px;
  font-size: 16px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
  font-family: inherit;
}
.field small{ display: block; color: var(--muted); font-size: 13px; margin-top: 6px; }
/* 表单提交状态（2026-10-22）：蜜罐藏出视口，结果行用 aria-live 播报 */
.hp{ position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form-status{ margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: var(--muted); }
.form-consent{ margin: 10px 0 0; font-size: 13px; line-height: 1.7; color: var(--muted); }
.form-consent a{ color: var(--link); text-decoration: underline; }
.form-status.ok{ color: var(--brand); font-weight: 500; }
.form-status.err{ color: var(--alert); }
.notice{ background: var(--tint); border: 1px solid rgba(10,37,64,.10); border-radius: var(--radius-sm); padding: 16px 18px; font-size: 14px; line-height: 1.75; color: var(--brand); }
.notice a{ color: var(--brand); text-decoration: underline; }
/* ---------- FAQ（原生折叠） ---------- */
details.faq summary{ cursor: pointer; font-weight: 600; color: var(--brand); list-style: none; padding: 8px 0; }
details.faq summary::-webkit-details-marker{ display: none; }
details.faq summary::before{ content: "＋ "; color: var(--brand); font-weight: 700; }
details.faq[open] summary::before{ content: "－ "; }
details.faq p{ margin: 8px 0 2px; font-size: 15px; }
/* ---------- 考纲三级图谱索引（M3：篇 → 章 → 节，纯 <details> 折叠） ---------- */
details.node{ background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 16px; margin: 10px 0; }
details.node > summary{ cursor: pointer; font-weight: 600; color: var(--brand); list-style: none; padding: 8px 0; }
details.node > summary::-webkit-details-marker{ display: none; }
details.node > summary::before{ content: "＋ "; color: var(--brand); font-weight: 700; }
details.node[open] > summary::before{ content: "－ "; }
/* ---------- 占位块 ---------- */
.placeholder{
  display: grid;
  place-items: center;
  min-height: 140px;
  padding: 20px;
  border: 1px solid rgba(10,37,64,.12);
  border-radius: var(--radius-sm);
  background: repeating-linear-gradient(45deg,#F5F8FF,#F5F8FF 12px,#E8EEFF 12px,#E8EEFF 24px);
  color: var(--muted);
  font-size: 14px;
  text-align: center;
}
/* ---------- 法律页草稿条 ---------- */
/* ---------- 页脚（深底收束 ＋ 顶部渐变细带） ---------- */
.site-footer{ font-size: 14px; }
.site-footer a:hover{ color: var(--link); }
.site-footer .cols{ display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 760px) {
  .site-footer .cols{ grid-template-columns: repeat(3, 1fr); }
}
.site-footer ul{ list-style: none; margin: 0; padding: 0; }
.site-footer li{ margin: 6px 0; }
/* ---------- 交互态（M2：焦点可见 ＋ 按下反馈；升级为克制微动效 .2s） ---------- */
a, .btn, summary, input, select, textarea, button, details.faq, details.node{ transition: background-color var(--ease), color var(--ease), border-color var(--ease), box-shadow var(--ease), transform var(--ease), opacity var(--ease); }
a:focus-visible, .btn:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible{
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
.site-header a:focus-visible{ outline-color: var(--focus); }
.site-footer a:focus-visible{ outline-color: var(--focus); }
a:active, .btn:active{ transform: translateY(1px); }
a:not(.btn):active{ opacity: .8; }
.btn:active{ background: var(--link); }
.btn.ghost:active{ background: var(--tint); color: var(--brand); }
details.faq summary:active{ opacity: .85; }
/* ---------- 无障碍 ---------- */
.skip-link{
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--surface);
  color: var(--brand);
  padding: 8px 14px;
  border-radius: 0 0 8px 0;
  z-index: 10;
  box-shadow: var(--shadow-sm);
}
.skip-link:focus{ left: 0; }
/* 尊重「减少动效」偏好（禁滚动劫持/视差/自动播放） */
@media (prefers-reduced-motion: reduce){
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
/* ============================================================
色块 + Meta 版式层（2026-10-17 · B 版落地）
原则：分区靠色差，不靠阴影与描边；圆角统一 24 / 18；形状只留圆与圆角矩形
============================================================ */
body{ overflow-x: hidden; }
/* —— 满铺色块：容器内元素打破 wrap 撑到视口 —— */
.band{ margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding-left: calc(50vw - 50%); padding-right: calc(50vw - 50%); }
.band > section:first-child{ padding-top: 0; }
.band > section:last-child{ padding-bottom: 0; }
.band section{ border-bottom: 0; }
/* —— Hero 深色块（每页顶部） —— */
.hero-block{ margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); background: var(--wash-hero); color: var(--ink); position: relative; overflow: hidden; }
.hero-block > *{ position: relative; z-index: 2; }
.hero-block h1{ color: var(--ink); margin: 0 0 8px; }
.hero-block .summary{ border-color: var(--line); box-shadow: none; margin-top: 18px; }
.hero-block .summary::before{ background: var(--blue); }

.hero-block .cta-sub{ color: var(--muted); }
.hero-block .cta-sub a{ color: var(--link); text-decoration: underline; }
/* —— 章节标题：左色块记号 —— */
main > .wrap > section > h2, .band > section > h2{ position: relative; }
/* —— 卡片：大圆角、弱阴影、色块面 —— */
.card{ transition: transform var(--ease), box-shadow var(--ease), border-color var(--ease); }
/* —— 摘要块：色块左边条加粗 —— */
.summary::before{ width: 6px; background: var(--grad-meta); }
/* —— 按钮：胶囊 + Meta 蓝底 —— */
.btn{ border-radius: var(--radius-pill); }
.btn:hover{ filter: brightness(1.06); }
.btn.ghost{ background: var(--paper-2); color: var(--brand); border: 1px solid rgba(10,37,64,.16); }
/* —— 页脚：深色块 —— */
.site-footer{ color: var(--muted); }
.site-footer a{ color: var(--ink); }.site-footer strong{ color: var(--ink); }
/* —— 窄屏收敛 —— */
@media (max-width: 760px){
  .band, .hero-block { border-radius: 24px; }
  .hero-block { border-radius: 0 0 28px 28px; padding-top: 34px; }
}
/* 色块块自身不描边 */
section.band{ border-bottom: 0; }
section.band + section{ border-top: 0; }
/* ============================================================
内容体系页：四篇做成四块色块（色块风的落点）
============================================================ */
/* ============================================================
品牌徽章（海豚徽章 · 蓝紫渐变矢量）
取代原 CSS 文字方块；尺寸 44px，页脚 40px
============================================================ */
.brand-mark{ border-radius: 0; background: none; box-shadow: none; object-fit: contain; }
/* ============================================================
高级简约化改造层（2026-10-18）
原则：大留白 / 少装饰 / 强字阶 / 收敛色数 / 去贴纸感
保留：Meta 蓝紫色系与色块分区逻辑
============================================================ */
:root{
  /* —— 文字 —— */
  --brand: #0A2540;
  --brand-deep: #06182B;
  --ink: #0B1A2E;
  /* 2026-10-26 修：此处原为 `--muted: var(--muted)` 自引用 → 变量失效，
     全站 171 处「次要文字」实际都继承正文墨色（--ink），三级层级根本看不出来。
     现给出真值 #4C5C73：底 #FBFCFE 上 6.63、最浅底 #EEF3FB 上 6.11，均过 WCAG AA；
     比 --meta(#616F88, 4.56–5.08) 深一档，「元信息 < 次要正文 < 正文」的层级成立。
     高对比偏好下由下方 @media (prefers-contrast: more) 覆盖为 #3D4C63。 */
  --muted: #4C5C73;
  /* v8.0：元信息专用灰。原 #8C99AD(2.81) / #9AA6B8(2.40) 不达 WCAG AA，
     此处取 #616F88：#FBFCFE 上 4.94、#F2F6FF 上 4.69，两底均过 4.5，
     又比 --muted 略浅，保留「元信息 < 次要正文」的层级。 */
  --meta: #616F88;
  --link: #0B4FBF;
  /* —— 强调色（只作小面积与文字链接） —— */
  --blue: #0668E1;
  --purple: #A334FA;
  --purple-deep: #7A22C4;
  --cyan: #00C6FF;
  --teal: var(--link);
  --sun: #FF6B4A;
  --sun-deep: #F2552F;
  --alert: #C43A22;
  /* —— 面 —— */
  --paper: #FBFCFE;      /* v2.0 页面底近白 */
  --paper-2: #FFFFFF;
  --surface: var(--paper-2);
  --surface-2: #F9FBFE;
  --tint: #F2F6FF;       /* v2.0 区块底带蓝 */
  --tint-blue: #EBF3FD;
  --sun-soft: #FFEDE9; 
  --blue-30: rgba(6,104,225,.30);    
  --tl-line: #E3EBF9;                
  --hairline: rgba(10,37,64,.06);    
  --on-deep: var(--paper-2);                
  --on-deep-2: rgba(255,255,255,.84);
  --on-deep-3: rgba(255,255,255,.64);
  --line: #EDF0F5;       /* v2.0 弱化 */
  --line-strong: #8C99AD;
  /* —— 渐变：只留三种用途 —— */
  /* --wash-hero 于 v2.0 废弃 */
  /* 2026-10-25：首屏光斑彻底去掉。
     它原来是右上角一块 480px 径向渐变（76% 16%），衰减边缘铺不到最右侧，
     右上角留出一条「没染色的纸白」，在浅蓝旁边就是老板截图上圈的白块；
     改成线性渐变后横向虽均匀，但页头（88px）没有渐变、hero 有，交界处又出现一条横线。
     与其反复调参，不如去掉：整页纯纸色，任何色块与横线都不会再有。 */
  --glow: none;
  --grad-meta: linear-gradient(160deg, var(--blue), var(--purple-deep));       /* 仅作细装饰 */
  --grad-cool: linear-gradient(90deg, var(--blue), var(--purple-deep));
  --grad-brand: linear-gradient(135deg, var(--brand), var(--brand-deep));
  --grad-deep: linear-gradient(180deg, #08182B, #061422);
  /* —— 尺度 —— */
  --radius: 20px;        /* v2.0 24→20 */
  --radius-xs: 12px;   /* 2026-10-25：卡片/输入框最常用的一档，原来散写 17 处 */
  --radius-sm: 14px;     /* v2.0 16→14 */
  --radius-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(11,26,46,.03), 0 1px 1px rgba(11,26,46,.02);
  --shadow-md: 0 2px 6px rgba(11,26,46,.05), 0 14px 28px rgba(11,26,46,.07);
  --ease: .15s ease;
  --focus: var(--link);
  --focus-dark: #7FD8FF;
  --maxw: 1120px;
}
/* —— 顶部：收紧，去重阴影 —— */
/* —— Hero：去光斑，纯深色，大字，大留白 —— */
.hero-block{ border-radius: 0; padding: 88px calc(50vw - 50%) 80px; background: var(--paper); margin-bottom: 0; }  /* v2.0：去洗色 */
.hero-block::after, .hero-block::before{ display: none; }
.hero-block h1{ font-size: clamp(30px, 3.6vw, 44px); font-weight: 800; letter-spacing: -.02em; line-height: 1.18; margin-bottom: 20px; }
.hero-block .summary{
  background: transparent;
  border: 0;
  border-left: 2px solid var(--blue-30);
  border-radius: 0;
  padding: 2px 0 2px 22px;
  max-width: 60ch;
  font-size: 17px;
  line-height: 1.75;
  color: var(--muted);
}
.hero-block .summary::before{ display: none; }
.hero-block .summary strong{ color: var(--ink); font-weight: 600; }
.hero-block .btn-row{ margin-top: 34px; }
.hero-block .btn{ padding: 14px 30px; font-size: 15px; }
/* —— 色块：去圆角去贴纸感，改通栏大留白 —— */
.band{ margin-top: 0; margin-bottom: 0; border-radius: 0; padding-top: 96px; padding-bottom: 96px; }
.band-soft{ background: var(--paper-2); border-radius: 0; }
.band::after{ display: none; }
/* —— 章节标题：强字阶，去色条，加序号感 —— */
main > .wrap > section, .band > section{ padding-top: 0; padding-bottom: 0; }
main > .wrap > section > h2, .band > section > h2{ padding-left: 0; font-weight: 600; letter-spacing: -.01em; line-height: 1.35; margin-bottom: 22px; }
main > .wrap > section > h2::before, .band > section > h2::before{
  content: "";
  position: absolute;
  left: 0;
  top: .34em;
  width: 6px;
  height: 1.02em;
  border-radius: 3px;
  background: var(--grad-meta);
  display: none;
}
/* —— 卡片：去边框，极浅底，靠留白区分 —— */
.card{ border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--paper-2); box-shadow: var(--shadow-sm); }  /* v2.0 边框 .10→.06 */
.band-tint .card{ box-shadow: none; }
/* —— 摘要块：去线框 —— */
.summary{
  border: 0;
  border-left: 2px solid var(--blue);
  border-radius: 0;
  padding: 2px 0 2px 20px;
  box-shadow: none;
  background: transparent;
  font-size: 17px;
  line-height: 1.75;
}
.summary::before{ display: none; }
/* —— 正文与列表：放松行距 —— */
ul.pts > li{ margin: 14px 0; }
ul.pts > li::before{ width: 6px; height: 6px; top: 0.72em; background: var(--blue); }
/* —— FAQ：去每行描边，改细线分隔 —— */
details.faq{ border: 0; border-radius: 0; background: transparent; margin: 0; }
details.faq[open]{ background: transparent; }
/* —— 按钮：更克制 —— */
.btn{ padding: 14px 30px; font-size: 15px; letter-spacing: .04em; }
.btn.ghost{ border-width: 1px; }
/* —— 页脚：去圆角，纯平深色，收紧 —— */
.site-footer{ border-radius: 0; margin-top: 0; padding: 72px 0 48px; background: var(--paper); border-top: 1px solid rgba(10,37,64,.16); }
.site-footer p, .site-footer li{ font-size: 14px; line-height: 1.75; }
/* —— 内容体系：四篇去大色块，改细线分隔 —— */
@media (max-width: 760px) {
  .hero-block{ padding: 44px calc(50vw - 50%) 52px; }
  .band{ padding-top: 64px; padding-bottom: 64px; border-radius: 0; }  /* v2.0：移动端 56→64 */
}
/* ============================================================
精修层（第二轮）：解决第一版暴露的层次与断行问题
============================================================ */
/* 1) 导航与品牌并一行，头部收紧 */
.site-header .wrap{ gap: 32px; padding-top: 14px; padding-bottom: 14px; }
/* 2) Hero 标题不被硬断行 */
.hero-block h1{ max-width: none; }
.hero-block{ padding-top: 76px; padding-bottom: 72px; }
/* 3) 卡片：白底区也要有浅底承托，否则去掉边框就散了 */
main > .wrap > section .card, .band-soft .card{ background: var(--surface-2); }  /* v2.0：走令牌，不再硬编码 */
.band-tint .card{ background: var(--paper-2); }  /* v2.0 */
.card h3{ font-size: 19px; }
/* 4) 章节之间给足呼吸，白底连片时用细线轻分 */
main > .wrap > section + section{ padding-top: 96px; margin-top: 96px; }  /* v2.0：去线，间距 72→96 */
main > .wrap > section{ padding-bottom: 4px; }
/* 5) 字阶再抬一档 */
main > .wrap > section > h2, .band > section > h2{ font-size: clamp(24px, 2.6vw, 32px); }
body{ font-size: 17px; line-height: 1.75; }
ul.pts > li{ font-size: 17px; line-height: 1.75; }
/* 6) FAQ 细线加强，展开态有底色 */
details.faq{ border-bottom: 0; padding: 22px 24px; margin: 10px 0; background: var(--surface-2); border-radius: var(--radius-sm); }  /* v2.0 改圆角浅底卡 */
/* 最后一条 FAQ 不收底边：否则会与页脚上边框叠成双线（间隔仅 5px） */
details.faq:last-of-type{ border-bottom: 0; }
details.faq > summary{ font-weight: 600; font-size: 17px; }
details.faq[open] > summary{ color: var(--blue); }
details.faq[open]{ background: var(--tint-blue); }
/* 7) 页脚上沿加一道极细高光，收口更利落 */
.site-footer{ position: relative; }
.site-footer::before{ display: none; }
/* 8) 内容体系：章节标题与折叠项再拉开 */
@media (max-width: 1024px) {
  .site-header .wrap{ flex-wrap: wrap; gap: 10px; }
  main > .wrap > section + section{ padding-top: 52px; margin-top: 52px; }
}
/* ============================================================
第三层：把「简约」拉回「大气」——加秩序与品牌锚点
纯白会显得空，靠序号与细竖线建立节奏
============================================================ */
/* 四篇：左侧大序号 + 蓝色细竖线 */
main{ counter-reset: pian; }
/* 章节标题：加一条极短基线，稳住重心 */
main > .wrap > section > h2, .band > section > h2{ padding-bottom: 0; }  /* v2.0：h2 去下边线 */
/* 列表项：左竖线替代圆点，更有秩序 */
ul.pts{ border-left: 1px solid var(--line); padding-left: 22px; }
ul.pts > li::before{ display: none; }
ul.pts > li{ padding-left: 0; }
/* 卡片：加左上角细标 */
.card{ position: relative; }
@media (max-width: 760px) {
  ul.pts{ padding-left: 16px; }
}
/* ============================================================
2026-10-18 重构：顶部极简 + 页脚三栏（8 板块 + 关于）
============================================================ */
/* 顶部：仅 图标 + 名称 + 一行定位 —— 贴视口左侧，不随版心居中 */
.site-header{ background: rgba(255,255,255,.82); -webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px); border-bottom: 1px solid rgba(10,37,64,.08); box-shadow: none; height: 80px; display: flex; align-items: center; }
.site-header::after{ display: none; }
.site-header .wrap{
  display: flex; align-items: center; justify-content: flex-start; flex-wrap: nowrap;
  height: 100%; width: 100%;
  max-width: none;              /* 解除 --maxw 约束，宽屏下不再被推到版心左缘 */
  padding: 0 32px;
}
.brand{ display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.brand-mark{ width: 44px; height: 44px; display: block; flex: 0 0 auto; }
.brand-text{ display: flex; flex-direction: column; line-height: 1.3; }
.brand-text strong{ font-size: 22px; font-weight: 700; letter-spacing: .16em; color: var(--brand); transition: color .18s; }
.brand:hover .brand-text strong{ color: var(--blue); }
.brand-text small{ font-size: 13px; font-weight: 400; letter-spacing: .04em; color: var(--muted); white-space: nowrap; }
/* 页脚三栏 */
@media (max-width: 1024px) {
}
@media (max-width: 480px) {
  .site-header{ height: 72px; }
  .site-header .wrap{ padding: 0 16px; }
  .brand-mark{ width: 36px; height: 36px; }
  .brand-text strong{ font-size: 19px; }
  .brand-text small{ font-size: 12px; }
}
/* ============================================================
2026-10-18 重构：频道页三型版式
A 目录型 / B 路径型 / C 议题型
============================================================ */
/* —— 频道页 Hero —— */
.ch-hero{ background: var(--paper); color: var(--ink); position: relative; overflow: hidden; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 56px calc(50vw - 50%) 64px; }
.ch-hero::before{ content: ""; position: absolute; inset: 0; background: var(--glow); pointer-events: none; }
/* --glow 已置 none（见 :root 注释），伪元素留着只会多一个空合成层，直接不生成 */
.home-hero::before, .ch-hero::before{ display: none; }
.ch-hero > *{ position: relative; z-index: 1; }
.ch-hero .ch-num{
  font-size: clamp(40px, 5.6vw, 72px);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--blue-30);   /* v2.0 灰→蓝 */
  margin-bottom: 14px;
}
.ch-hero h1{ font-size: clamp(32px, 4.4vw, 52px); font-weight: 800; letter-spacing: -.02em; line-height: 1.08; margin: 0 0 18px; color: var(--ink); }  /* v2.0 */
.ch-hero .slogan{ font-size: clamp(17px, 2vw, 21px); font-weight: 500; color: var(--brand); margin: 0 0 18px; }
.ch-hero .lead{
  border-left: 2px solid var(--blue-30);
  padding-left: 20px;
  max-width: 62ch;
  font-size: 17px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
}
/* —— A 目录型 —— */
.sec-block{ margin: 0 0 88px; }
.sec-block > h2{
  position: relative;
  font-size: clamp(24px, 2.8vw, 36px);
  font-weight: 800;
  letter-spacing: -.02em;
  padding-left: 20px;
  padding-bottom: 0;
  margin: 0 0 8px;
}
/* v2.0 h2 短条起手 */
.sec-block > h2::before{ content: ""; position: absolute; left: 0; top: .26em; width: 3px; height: 1.02em; border-radius: 2px; background: var(--blue); }
.sec-block > .desc{ font-size: 15px; color: var(--muted); margin: 14px 0 6px; }
.entry{ display: flex; gap: 14px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.entry:last-child{ border-bottom: 0; }
.entry .dt{ width: 6px; height: 6px; flex: 0 0 auto; margin-top: .66em; border: 0; background: var(--blue); border-radius: 50%; }  /* v2.0：描边圆→实心点 */
.entry .et b{ display: block; font-size: 17px; font-weight: 600; letter-spacing: 0; margin-bottom: 4px; }
.entry .et span{ display: block; font-size: 15px; line-height: 1.75; color: var(--muted); }
/* —— B 路径型 —— */
.tl{ border-left: 2px solid var(--tl-line); padding-left: 34px; margin-top: 8px; }  /* v2.0：竖线带蓝 */
.tl-item{ position: relative; padding-bottom: 44px; }
.tl-item:last-child{ padding-bottom: 0; }
.tl-item::before{ content: ""; position: absolute; left: -42px; top: 7px; width: 12px; height: 12px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--tl-line); }  /* v2.0 12px + 白环 */
.tl-item .step{ font-size: 12px; font-weight: 500; letter-spacing: .16em; color: var(--link); text-transform: uppercase; margin-bottom: 8px; }  /* v2.0 */
.tl-item h3{ font-size: 19px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 8px; }
.tl-item p{ font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0; }
/* —— C 议题型 —— */
.topics{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 10px; }
.topic{ background: var(--surface); border: 1px solid var(--hairline); box-shadow: var(--shadow-sm); border-radius: var(--radius); padding: 32px 28px; transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease); }
.topic:hover{ border-color: rgba(10,37,64,.10); box-shadow: var(--shadow-md); transform: translateY(-3px); }
.topic .bar{ width: 20px; height: 3px; border-radius: 2px; background: var(--blue); margin-bottom: 18px; }
.topic h3{ font-size: 18px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 10px; }
.topic p{ font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0; }
.topic .see{ display: block; margin-top: 14px; font-size: 14px; font-weight: 600; color: var(--blue); }
/* —— 其他板块宫格 —— */
.other{ margin-top: 76px; padding-top: 56px; border-top: 1px solid var(--line); }
@media (max-width: 1024px) {
  .topics{ grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .ch-hero{ padding: 44px calc(50vw - 50%) 44px; }
  .tl{ padding-left: 26px; }
  .tl-item::before{ left: -33px; }
}
/* 频道页主体区留白 */
.ch-body{ padding-top: 64px; padding-bottom: 8px; }
.ch-body > .sec-block:last-of-type{ margin-bottom: 0; }
@media (max-width: 760px) {
  .ch-body{ padding-top: 48px; }
}
/* ============================================================
2026-10-18 重构：首页 8 板块宫格 + 平台说明
============================================================ */
.home-hero{ background: var(--paper); color: var(--ink); position: relative; overflow: hidden; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 96px calc(50vw - 50%) 88px; }
/* v2.0 首屏光斑：纯 CSS 径向渐变，零图片零请求（R4 对策：不用大半径 box-shadow） */
.home-hero::before{ content: ""; position: absolute; inset: 0; background: var(--glow); pointer-events: none; }
.home-hero > *{ position: relative; z-index: 1; }
.home-hero h1{
  font-size: clamp(38px, 5.2vw, 66px);   /* v2.0（J2 ①）58→66 */
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: 1.08;
  color: var(--ink);
  margin: 0 0 24px;
  max-width: 20ch;
}
.home-hero .lead{
  border-left: 2px solid var(--blue-30);
  padding-left: 20px;
  max-width: 62ch;
  font-size: 17px;
  line-height: 1.75;
  color: var(--muted);
  margin: 0;
}
.home-hero .btns{ display: flex; gap: 12px; flex-wrap: wrap; margin-top: 36px; }
.boards-wrap{ padding: 104px 0 64px; }
.boards-wrap > .eyebrow{ font-size: 13px; font-weight: 700; letter-spacing: .16em; color: var(--muted); text-transform: uppercase; margin-bottom: 26px; }
.boards{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }  /* v2.0：gap 18→24 */
.bcard{
  display: flex;
  flex-direction: column;
  min-height: 240px;
  padding: 28px 26px 24px;
  border: 1px solid var(--hairline);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  position: relative;
  transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease);
}
.bcard:hover{ background: var(--surface); border-color: rgba(10,37,64,.10); box-shadow: var(--shadow-md); transform: translateY(-3px); text-decoration: none; }
.bcard .bn{ font-size: clamp(26px, 2.4vw, 34px); font-weight: 800; line-height: 1; letter-spacing: -.02em; color: var(--blue-30); font-variant-numeric: tabular-nums; transition: color var(--ease); }  /* v2.0：序号改蓝 30% */
.bcard:hover .bn{ color: var(--blue); }
.bcard .bt{ display: block; margin-top: 18px; font-size: 19px; font-weight: 600; letter-spacing: -.01em; color: var(--ink); }
.bcard .bd{ display: block; margin-top: 8px; font-size: 14px; line-height: 1.75; color: var(--muted); }
.bcard .ba{ margin-top: auto; padding-top: 14px; font-size: 13px; font-weight: 500; color: var(--blue); transition: transform var(--ease), color var(--ease); }  /* v2.0：「进入 →」常显蓝 */
.bcard:hover .ba{ transform: translateX(4px); color: var(--link); }
/* 平台是什么：三段 */
/* 2026-10-18：背景同步全站全局背景 var(--paper)（原深色块收口），文字与强调回默认浅底体系 */
.platform:not(.platform-once){ background: var(--paper); padding-top: 72px; padding-bottom: 8px; }
.platform h2{ font-size: clamp(24px, 2.8vw, 34px); font-weight: 800; letter-spacing: -.02em; margin: 0 0 40px; }
.p3{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.p3 > div h3{ font-size: 16px; font-weight: 800; margin: 0 0 12px; color: var(--ink); }  /* v2.0 字重升 800 */
.p3 > div p{ font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0; }
.p3 > div::before{ content: ""; display: block; width: 20px; height: 3px; border-radius: 2px; background: var(--blue); margin-bottom: 18px; }
@media (max-width: 1024px) {
  .boards{ grid-template-columns: repeat(2, 1fr); }
  .p3{ grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 480px) {
  .home-hero{ padding: 56px calc(50vw - 50%) 52px; }
  .boards-wrap{ padding-top: 56px; }
  .boards{ grid-template-columns: 1fr; }
  .bcard{ min-height: 180px; }
  .platform{ padding-top: 56px; padding-bottom: 56px; }
}

.boards-wrap[aria-labelledby="faq-h"]{ padding-top: 64px; }

/* ============================================================
   P1 收口件（2026-10-18）：同级板块横条 / 站内搜索 / 页脚附注
   ============================================================ */

/* ============================================================
   二级导航（2026-10-18 · 依《二级导航优化方案 v1.0》重写）
   顺序：header → 面包屑条 32px → 同级横条 48px → main
   · 当前项为 <span class="on" aria-current="page">，不可点（消自链接）
   · 三组竖线分隔，让「职业时间轴」可见
   · 移动端 14px + 右侧渐隐，提示可横滑
   · 不吸顶（守住「顶部仅图标 + 名称」）
   ============================================================ */

/* —— 面包屑条 —— */
/* 与同级横条同组：不画自身下边线，由 .subnav 的下边线统一收口，
   避免两条带子叠成「三线」观感 */
.crumb-bar{ background: rgba(255,255,255,.72); }
.crumb-bar .wrap{ display: flex; align-items: center; height: 32px; }
.crumb-bar .breadcrumb{
  font-size: 13px; line-height: 1; color: var(--muted);
  margin: 0; letter-spacing: .04em;
}
.crumb-bar .breadcrumb a{ color: var(--muted); text-decoration: none; }
.crumb-bar .breadcrumb a:hover, .crumb-bar .breadcrumb a:focus-visible{
  color: var(--link); text-decoration: underline;
}
.crumb-sep{ margin: 0 3px; color: #A9B4C7; }

/* —— 同级横条 —— */

/* 当前项：非链接、不可点，仅作位置指示
   字重只抬一档（400→500），靠深色 + 下划线建立区分，
   不靠加粗——横条整体保持「常规字重」的克制感 */

/* 分组竖线：实习·工作·考试 ｜ 考研·学习·继续 ｜ 前沿·交流 */

@media (max-width: 760px) {
  .crumb-bar .wrap{ height: 30px; }
  .crumb-bar .breadcrumb{ font-size: 12px; }
}

/* 面包屑（浅色首屏内的样式） */

/* 站内搜索 */
.search-box{ margin: 22px 0 12px; }
.search-box input{
  width: 100%; box-sizing: border-box;
  padding: 15px 18px; font-size: 17px; font-family: inherit;
  color: var(--ink); background: var(--surface);
  border: 1px solid rgba(10,37,64,.14); border-radius: var(--radius-sm);
  outline: none; transition: border-color var(--ease), box-shadow var(--ease);
}
.search-box input::placeholder{ color: #93A0B5; }
.search-box input:focus{ border-color: var(--focus); box-shadow: 0 0 0 3px rgba(11,79,191,.14); }
.search-hint{ font-size: 14px; color: var(--muted); margin: 0 0 8px; }
.search-list{ list-style: none; margin: 0; padding: 0; }
.search-list li{ border-bottom: 1px solid var(--line); }
.search-list a{ display: block; padding: 20px 0; text-decoration: none; transition: padding-left var(--ease); }
.search-list a:hover, .search-list a:focus-visible{ padding-left: 6px; text-decoration: none; }
.search-list b{ display: block; font-size: 17px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.search-list span{ display: block; font-size: 15px; line-height: 1.75; color: var(--muted); }
.sr-only{
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 页脚附注 */
.footer-icp{ font-size: 13px; color: var(--muted); }

/* ============================================================
   板块深度内容（2026-10-18）：四个关键判断 + 这条路怎么走
   目的：把八个并列栏目连成一条职业链路，并给出可判断的实质内容
   ============================================================ */

/* —— 四个关键判断 —— */
.judge{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 40px;
  margin-top: 8px;
}
.judge .jd{
  padding: 22px 0 22px 18px;
  border-top: 1px solid var(--line);
  position: relative;
}
.judge .jd::before{
  content: "";
  position: absolute; left: 0; top: 27px;
  width: 3px; height: 1.05em; border-radius: 2px;
  background: var(--blue);
}
.judge .jd b{
  display: block;
  font-size: 16px; font-weight: 600; letter-spacing: -.01em;
  color: var(--ink); margin-bottom: 7px;
}
.judge .jd span{
  display: block;
  font-size: 15px; line-height: 1.75; color: var(--muted);
}

/* —— 这条路怎么走：八段进度 —— */

/* —— 上一站 / 下一站 —— */

@media (max-width: 760px) {
  .judge{ grid-template-columns: 1fr; gap: 0; }
  .judge .jd{ padding: 18px 0 18px 16px; }
  /* 单列时一律左对齐；:only-child 的右对齐特异性更高，须显式覆盖 */
}

/* ============================================================
   首页「一站式体现在哪」四段（2026-10-18）
   两列 × 两行：比 p3 多一条，但列宽仍够读
   ============================================================ */
.p4{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 64px;
}
.p4 > div::before{
  content: "";
  display: block; width: 20px; height: 3px;
  border-radius: 2px; background: var(--blue); margin-bottom: 18px;
}
.p4 > div h3{
  font-size: 16px; font-weight: 600; letter-spacing: -.01em;
  color: var(--ink); margin: 0 0 10px;
}
.p4 > div p{
  font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0;
}

@media (max-width: 760px) {
  .p4{ grid-template-columns: 1fr; gap: 30px; }
}

/* 考试页「三类考试」对照表：短列不换行，窄屏整体横向滚动 */
#exam-types table{ min-width: 620px; }
#exam-types td:nth-child(2){ white-space: nowrap; }

/* 首页 hero 在校／在职分流（2026-10-18） */
.fork{
  margin: 26px 0 0;
  font-size: 14px;
  line-height: 1.75;
  color: var(--muted);
}
.fork a{ color: var(--link); text-decoration: none; border-bottom: 1px solid rgba(11,79,191,.28); }
.fork a:hover{ border-bottom-color: var(--link); }
@media (max-width: 480px) {
  .fork{ font-size: 14px; }
}

/* ============================================================
   工具页（2026-10-18）：职称年限推算 + 继续学习学分台账
   纯原生 JS、无依赖、数据只存本机 localStorage
   ============================================================ */

/* 推算结果 */

/* 操作行 */

/* 学分记录 */

@media (max-width: 760px) {
}

/* ============================================================
   v2.0 收口层（2026-10-18 · 依《官网视觉年轻化改版方案 v1.0》）
   J1 ②：深色块只留一处——首页「这个平台是什么」；页脚 2026-10-18 二次裁定改浅底
   J2 ①：首页 H1 66px  J3 ①：全站删分隔线
   本层必须位于文件末尾：页足迹（.flinks a 等）在此处覆盖前序浅色定义
   ============================================================ */
/* —— 页脚：浅底收束（2026-10-18 二次裁定：与页面同色，靠 1px 细线分界） —— */
.site-footer{
  background: var(--paper);
  border-top: 1px solid var(--line);
  color: var(--muted);
  padding: 72px 0 48px;
}.site-footer strong{ color: var(--ink); font-weight: 500; }
.site-footer p, .site-footer li{ color: var(--muted); }.site-footer a:hover{ color: var(--link); text-decoration: underline; }
.site-footer a{ color: var(--ink); }.footer-icp{ color: var(--muted); }
.site-footer a:focus-visible{ outline-color: var(--focus); }
/* —— 首页模块底色：统一浅底 var(--paper)，节奏差异靠浅蓝区块与暖色点缀 —— */
/* —— 页面底部收口：末段与页脚之间不留双细线 —— */
main > .wrap:last-child > section:last-of-type{ padding-bottom: 8px; }

/* ============================================================
   页脚浅底改版的对齐收口（2026-10-18）
   实测偏差：孤灿标题带 10px 上边距、八个板块列首项被多列布局顶下 11px
   规则：三列标题同基线、首项同起点
   ============================================================ */

/* —— 小程序入口（2026-10-25）：全站页脚一块，内容页看完即可扫码 —— */
/* 小程序码（2026-10-26 改造）：由右下角悬浮按钮改为正文内嵌
   为什么改：全站只有这一处浮层，与「无弹窗、无浮层、无自动播放」的版式原则冲突；
   内容页读完自然滚到这里，比角标更贴近阅读节奏，也不会挡住页脚「返回顶部」。 */
.mp-inline{
  display: flex; align-items: center; gap: 22px;
  max-width: 560px; margin: 26px 0 44px; padding: 18px 20px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--surface);
}
.mp-inline-code{
  flex: 0 0 auto; display: block;
  width: 148px; height: 148px; border-radius: var(--radius-xs);
  background: var(--tint); object-fit: cover;
}
.mp-inline h2{ font-size: 16px; font-weight: 600; line-height: 1.4; margin: 0 0 6px; color: var(--ink); }
.mp-inline p{ margin: 0; font-size: 13.5px; line-height: 1.8; color: var(--muted); }
.mp-inline p + p{ margin-top: 6px; color: var(--meta); font-size: 12.5px; }
@media (max-width: 600px){
  .mp-inline{ flex-direction: column; align-items: flex-start; gap: 14px; padding: 16px; }
  .mp-inline-code{ width: 132px; height: 132px; }
}
@media print{ .mp-inline{ display: none !important; } }

/* ==== v2.1 悬浮动效层 2026-10-18：抬起≤3px／着色／箭头右移，160ms；仅指针设备，减弱动效全关 ==== */
:root{
  --hover-ease: cubic-bezier(.22, .61, .36, 1);
  --hover-t: 200ms;
}

/* 统一过渡：颜色、底色、描边、投影、位移同一节奏 */
a, button, summary, label, .topic, .bcard, .entry, .judge .jd, .tl-item, .search-list a, .rs, tbody tr, .breadcrumb a{
  transition:
    color var(--hover-t) var(--hover-ease),
    background-color var(--hover-t) var(--hover-ease),
    border-color var(--hover-t) var(--hover-ease),
    box-shadow var(--hover-t) var(--hover-ease),
    transform var(--hover-t) var(--hover-ease),
    padding-left var(--hover-t) var(--hover-ease);
}

@media (hover: hover) and (pointer: fine) {
  /* ① 卡片：抬 3px ＋ 影深 ＋ 描边实 */
.card:hover, .topic:hover, .bcard:hover, .judge .jd:hover{
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: rgba(10, 37, 64, .12);
  }

  /* ② 按钮：抬 1px ＋ 品牌影 */
  .btn:hover, .btn:focus-visible{
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(6, 104, 225, .20);
  }
  .btn:active{ transform: translateY(0); box-shadow: none; }

  /* ③ 条目：8px 光晕＋圆点放大＋标题转色 */
  .entry{ border-radius: 8px; }
  .entry:hover{
    box-shadow: 0 0 0 8px var(--tint-blue);
    background: var(--tint-blue);
    transform: translateX(2px);
  }
  .entry .dt{ transition: transform var(--hover-t) var(--hover-ease); }
  .entry:hover .dt{ transform: scale(1.4); }
  .entry:hover .et b{ color: var(--link); }

  /* ④ 时间轴：节点放大＋标题转色 */
  .tl-item::before{ transition: transform var(--hover-t) var(--hover-ease); }
  .tl-item:hover::before{ transform: scale(1.3); }
  .tl-item:hover h3{ color: var(--link); }

  /* ⑤ 表格行：浅蓝底 */
  tbody tr:hover{ background: var(--tint-blue); }

  /* ⑥ FAQ：浮起＋问句转色 */
  details.faq:hover{ background: var(--tint-blue); }
  details.faq > summary:hover{ color: var(--blue); }

  /* ⑦ 箭头「进入」右移 */
  .bcard .ba, .rl{ transition: transform var(--hover-t) var(--hover-ease); }
  .bcard:hover .ba{ transform: translateX(4px); }

  /* ⑧ 文字入口：细下划线，不位移 */
.breadcrumb a:hover, .site-footer a:hover{
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* ⑨ 搜索条目：底色＋内距 */
  .search-list a:hover{ background: var(--tint-blue); padding-left: 10px; }
}

/* 减弱动效：位移与过渡全关 */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
  .card:hover, .topic:hover, .bcard:hover, .other-grid a:hover,
  .judge .jd:hover, .btn:hover, .entry:hover, .tool-field:hover {
    transform: none !important;
  }
  .tl-item:hover::before, .entry:hover .dt { transform: none !important; }
}

/* ============================================================
   首页九站路线图（2026-10-18 v2.2）
   —— 把八个板块 + 工具串成一条 S 形路线：01→05 正向、06←04 反向、07→09 正向
   线材：2px 虚线 --tl-line，穿过站点圆盘（圆盘以 paper 底遮线）
   站间竖段由行末／行首站点伪元素补，两段在 gap 内相接
   移动端降级为单列竖向时间轴（一条竖线贯穿九站）
   ============================================================ */
.journey{ --jgap: 26px; --jdot: 42px; --jcenter: 29px; position: relative; margin-top: 4px; }
.boards-wrap > .eyebrow{ margin-bottom: 10px; }
.journey-h{ font-size: clamp(22px, 2.4vw, 30px); font-weight: 800; letter-spacing: -.02em; line-height: 1.25; margin: 0 0 10px; color: var(--ink); }
.journey-note{ font-size: 15px; line-height: 1.75; color: var(--muted); margin: 0 0 34px; max-width: 60ch; }

/* 横向路线：从首站圆盘中心到末站圆盘中心（两行同一规则） */
.jd{ font-size: 13px; line-height: 1.6; color: var(--muted); margin-top: 4px; }

/* 行间竖段：上一行末站向下、下一行首站向上，两段在 gap 内相接 */

@media (hover: hover) and (pointer: fine) {
}

@media (max-width: 760px) {
  /* 单列时改由容器画一条竖线贯穿九站 */
  .journey::before{
    content: ""; position: absolute; z-index: 0;
    left: calc(var(--jdot) / 2 - 1px); top: var(--jcenter); bottom: var(--jcenter);
    border-left: 2px dashed var(--tl-line);
  }
}

/* 路线图例：补右下留白，说明怎么用 */

/* ============================================================
   v3.0 朝气层（2026-10-18）
   定位：面向青年从业者的交流社区 —— 在 v2.0 克制底子上加温度、加动静
   纪律：
   1) 珊瑚（--sun）只做标签底/热点标记/进度环/焦点环，底上必压深字 --sun-ink（6.24:1）；
      单页珊瑚面积 ≤8%，禁作正文与大底。
   2) 紫（--purple/--purple-deep）只做渐变尾色与序号描边，禁作大面积底色。
   3) 动效白名单：位移 ≤8px、缩放 ≤1.06、透明度、描边/底色、dash 偏移；
      禁弹跳、旋转、模糊过渡。全部在 prefers-reduced-motion 下关闭。
   ============================================================ */

:root{
  --sun-ink: #0A1930;          /* 珊瑚底上的深字 */
  --coral-ring: rgba(255,107,74,.55);
  --t-rise: .52s;
  --t-stagger: 80ms;
  --toc-h: 44px;
}

/* —— 1. 标签组件（唯一两种） —— */
.tag{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 10px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 500; line-height: 1.6; white-space: nowrap;
}
.tag-warm{ background: var(--sun); color: var(--sun-ink); }          /* 6.24:1 */
.tag-cool{ background: var(--tint-blue); color: var(--link); }        /* 7.09:1 */
.tag-ghost{ background: transparent; color: var(--muted); border: 1px solid var(--hairline); }
.tag-dot{ width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .55; }

/* —— 2. 吸顶目录（长页统一组件 · 各尺寸通用） —— */
.toc{
  position: sticky; top: 0; z-index: 6;
  display: flex; gap: 8px; align-items: center;
  margin: 0 0 8px; padding: 8px 0;
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid var(--hairline);
  overflow-x: auto; scrollbar-width: none;
}
.toc::-webkit-scrollbar{ display: none; }
.toc a{
  flex: 0 0 auto; padding: 6px 12px; border-radius: var(--radius-pill);
  font-size: 13px; font-weight: 500; color: var(--muted);
  text-decoration: none; white-space: nowrap;
  transition: background-color var(--hover-t) var(--hover-ease), color var(--hover-t) var(--hover-ease);
}
.toc a:hover{ background: var(--tint-blue); color: var(--link); }
.toc a.on{ background: var(--tint-blue); color: var(--link); }

/* —— 3. 表格：可横滑 + 首列吸附 + 滑动提示 —— */
.table-scroll{ position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius-sm); }
.table-scroll table{ margin: 0; }
.table-scroll th:first-child, .table-scroll td:first-child{
  position: sticky; left: 0; z-index: 1;
  background: var(--surface); box-shadow: 1px 0 0 var(--hairline);
}
.table-scroll thead th:first-child{ background: var(--tint-blue); }
.scroll-hint{
  display: none; margin: 6px 0 0; font-size: 13px; color: var(--muted);
}
@media (max-width: 760px){
  .scroll-hint{ display: block; }
  .table-scroll::after{
    content: ""; position: sticky; right: 0; float: right;
    width: 28px; height: 100%; margin-left: -28px; pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(251,252,254,.9));
  }
}

/* —— 4. 卡片网格 / 任务卡 / 统计条 —— */
.cardgrid{ display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.cardgrid.g3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 1024px){ .cardgrid, .cardgrid.g3{ grid-template-columns: 1fr; } }
.tcard{
  display: block; padding: 22px 22px 20px; background: var(--surface);
  border: 1px solid var(--hairline); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); text-decoration: none;
}
.tcard b{ display: block; font-size: 16px; font-weight: 800; color: var(--ink); margin-bottom: 8px; letter-spacing: -.01em; }
.tcard span{ display: block; font-size: 15px; line-height: 1.75; color: var(--muted); }
.tcard .tag{ margin-top: 12px; }

.stat-row{ display: flex; flex-wrap: wrap; gap: 28px 44px; margin: 22px 0 0; }
.stat-row div{ min-width: 120px; }
.stat-row b{ display: block; font-size: 30px; font-weight: 800; letter-spacing: -.02em; color: var(--brand); line-height: 1.1; }
.stat-row span{ display: block; margin-top: 4px; font-size: 13px; color: var(--muted); }

/* —— 5. 权重条 / 进度环 / 差距标记 —— */
.wbar{ display: grid; grid-template-columns: 84px minmax(0,1fr) 46px; align-items: center; gap: 12px; margin: 0 0 10px; }
.wbar i{ font-style: normal; font-size: 14px; color: var(--ink); }
.wbar u{ display: block; height: 8px; border-radius: 99px; background: var(--tint-blue); overflow: hidden; text-decoration: none; }
.wbar u::before{ content: ""; display: block; height: 100%; width: var(--w, 50%); border-radius: 99px; background: var(--grad-cool); }
.wbar em{ font-style: normal; font-size: 13px; color: var(--muted); text-align: right; }

.ring{ --p: 0; --sz: 96px; width: var(--sz); height: var(--sz); border-radius: 50%;
  background: conic-gradient(var(--sun) calc(var(--p) * 1%), var(--tint-blue) 0);
  display: grid; place-items: center; }
.ring::before{ content: ""; position: absolute; }
.ring span{ width: calc(var(--sz) - 20px); height: calc(var(--sz) - 20px); border-radius: 50%;
  background: var(--surface); display: grid; place-items: center; font-size: 15px; font-weight: 800; color: var(--brand); }

/* —— 6. 筛选 chips —— */
.chips{ display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 18px; }
.chips button{
  font: inherit; font-size: 14px; padding: 7px 14px; border-radius: var(--radius-pill);
  border: 1px solid var(--hairline); background: var(--surface); color: var(--muted); cursor: pointer;
  transition: background-color var(--hover-t) var(--hover-ease), color var(--hover-t) var(--hover-ease), border-color var(--hover-t) var(--hover-ease);
}
.chips button[aria-pressed="true"]{ background: var(--tint-blue); color: var(--link); border-color: var(--blue-30); }

/* —— 7. 章节树（details 嵌套） —— */
.tree{ border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.tree details{ border-top: 1px solid var(--hairline); }
.tree details:first-child{ border-top: 0; }
.tree summary{
  display: flex; align-items: center; gap: 10px; padding: 14px 18px;
  font-size: 15px; font-weight: 500; color: var(--ink); cursor: pointer; list-style: none;
}
.tree summary::-webkit-details-marker{ display: none; }
.tree summary::before{ content: "＋"; color: var(--blue); font-weight: 800; width: 14px; }
.tree details[open] summary::before{ content: "－"; }
.tree summary .tag{ margin-left: auto; }
.tree .tr-body{ padding: 0 18px 16px 42px; font-size: 14px; line-height: 1.75; color: var(--muted); }

/* —— 8. 线路图电流（hover 时虚线沿路径流动） —— */
@media (hover:hover) and (pointer:fine){
  .jrow:hover::before{ animation: flowline 1.2s linear infinite; }
}
@keyframes flowline{ to{ background-position: 12px 0; } }

/* —— 8b. 上次到访标记 —— */

/* —— 9. 入场动效（首屏分层） —— */
@keyframes rise{ from{ opacity: 0; transform: translateY(8px); } to{ opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference){
  .enter{ animation: rise var(--t-rise) var(--hover-ease) both; animation-delay: var(--d, 0ms); }
}

/* —— 10. 滚动联动（渐进增强，不支持则静态） —— */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    /* 只用位移，不用透明度：任何情况下内容都可见（截图 / 打印 / 旧引擎都安全） */
    .reveal{ animation: riseSoft linear both; animation-timeline: view(); animation-range: entry 10% cover 24%; }
  }
}
@keyframes riseSoft{ from{ transform: translateY(10px); } to{ transform: none; } }

/* —— 11. 跨页转场 —— */
@view-transition{ navigation: auto; }
.brand{ view-transition-name: brand; }
::view-transition-old(brand), ::view-transition-new(brand){ animation-duration: .28s; }

/* —— 12. 阅读进度条（长页） —— */
.scroll-progress{
  position: fixed; inset: 0 0 auto 0; height: 2px; z-index: 9;
  background: var(--grad-cool); transform-origin: 0 50%; transform: scaleX(0);
  pointer-events: none;
}
@supports (animation-timeline: scroll()){
  @media (prefers-reduced-motion: no-preference){
    .scroll-progress{ animation: grow linear both; animation-timeline: scroll(root); }
  }
}
@keyframes grow{ to{ transform: scaleX(1); } }

/* —— 13. 复制按钮 + 轻提示 —— */
.copy-row{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.copy-btn{
  font: inherit; font-size: 13px; padding: 6px 12px; border-radius: var(--radius-pill);
  border: 1px solid var(--hairline); background: var(--surface); color: var(--link); cursor: pointer;
}
.copy-btn:hover{ background: var(--tint-blue); }
.toast{
  position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(8px);
  background: var(--brand); color: #fff; padding: 10px 18px; border-radius: var(--radius-pill);
  font-size: 14px; opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s; z-index: 20;
}
.toast.on{ opacity: 1; transform: translateX(-50%); }

/* —— 14. 提问模板 / 热点清单 —— */
.tmpl{
  margin: 0; padding: 18px 20px; background: var(--surface-2); border: 1px dashed var(--blue-30);
  border-radius: var(--radius-sm); font-size: 14px; line-height: 1.75; color: var(--ink); white-space: pre-wrap;
}

/* —— 15. 相邻站三卡 —— */
.nb{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 16px; }
@media (max-width: 760px){ .nb{ grid-template-columns: 1fr; } }
.nb a{
  display: block; padding: 16px 18px; border: 1px solid var(--hairline); border-radius: var(--radius-sm);
  background: var(--surface); text-decoration: none;
}
.nb a .k{ display: block; font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.nb a b{ font-size: 15px; font-weight: 800; color: var(--ink); }
.nb a.cur{ background: var(--tint-blue); border-color: var(--blue-30); }
.nb a.cur b{ color: var(--link); }

/* —— 16. 深色带内的暖色标签 —— */
.platform:not(.platform-once) .tag-warm{ background: var(--sun); color: var(--sun-ink); }

/* —— 17. 焦点环（键盘）—— */
:focus-visible{ outline: 2px solid var(--focus); outline-offset: 2px; }
.tag-warm:focus-visible, .ring:focus-visible{ outline-color: var(--sun-deep); }

/* —— 18. 内联样式替代（清 inline 后回归语义类） —— */
.mt-16{ margin-top: 16px; }
.mt-20{ margin-top: 20px; }
.mt-22{ margin-top: 22px; }
.mt-24{ margin-top: 24px; }
.muted-s{ color: var(--muted); font-weight: 400; }

/* —— 19. 入场延迟档位（替 inline style） —— */
.d0{ --d: 0ms; } .d1{ --d: 80ms; } .d2{ --d: 160ms; } .d3{ --d: 240ms; }
.plat-tag{ margin: -28px 0 30px; }
.plat-tag .tag{ font-size: 12px; }

/* —— 20. 搜索页增强 —— */
mark{ background: var(--sun); color: var(--sun-ink); padding: 0 2px; border-radius: 3px; }
.search-list .grp-h{
  display: flex; align-items: center; gap: 8px; margin: 22px 0 4px;
  font-size: 13px; font-weight: 800; letter-spacing: .04em; color: var(--brand);
  text-transform: none;
}
.search-list .grp-h::after{ content: ""; flex: 1; height: 1px; background: var(--hairline); }
.search-list .grp-h span{ color: var(--muted); font-weight: 500; }
.search-list .grp-more{ padding: 8px 0 4px; font-size: 13px; color: var(--muted); }
.search-list a.on{ background: var(--tint-blue); }

/* —— 21. 404 搜索条 —— */
.hero-search{ display: flex; gap: 10px; max-width: 520px; }
.hero-search input{
  flex: 1 1 auto; min-width: 0; padding: 12px 16px; font: inherit; font-size: 16px;
  color: var(--ink); background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius-sm);
}
.hero-search input:focus{ outline: 2px solid var(--focus); outline-offset: 1px; }

/* —— 22. 表单错误提示 —— */
input[aria-invalid="true"]{ border-color: var(--alert); box-shadow: 0 0 0 3px rgba(196,58,34,.10); }

/* —— 23. 间距工具类（替内联 margin-top） —— */
.mt-14{ margin-top: 14px; } .mt-18{ margin-top: 18px; }

/* —— 24. 高亮与工具类（v3.0 收口） —— */
.hl{ background: var(--tint-blue); border-radius: var(--radius-xs); }
.entry.hl{ padding-left: 10px; margin-left: -10px; }
.hl-next td, .hl-next th{ background: rgba(255,107,74,.10); } .w30{ --w: 30%; } .w15{ --w: 15%; } .w10{ --w: 10%; }
.doc-status{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }

/* —— 25. 可读性下限：11–12px 规则抬到 ≥13px —— */
.tl-item .step{ font-size: 13px; }
.crumb-bar .breadcrumb{ font-size: 13px; }
@media (max-width: 760px){ .brand-text small{ font-size: 13px; } }.step, .jd, .bd, .entry .et span, .tcard span, .notice{ font-size: max(13px, 0.92em); }

/* —— 26. 品牌区触达 ≥40px —— */
.brand{ min-height: 44px; }

/* —— 27. 标题层级收敛：首页 66，其余统一 48 —— */
.hero-block h1, .ch-hero h1{ font-size: clamp(30px, 4.2vw, 48px); }

/* —— 28. 卡片内标签不被 .tcard span 块化 —— */
.tcard .tag, .nb .tag{ display: inline-flex; width: auto; }
.tcard .tag{ margin-top: 12px; }

/* —— 29. 打印与截图：关闭滚动联动，避免内容空白 —— */
@media print{ .reveal, .enter{ animation: none !important; opacity: 1 !important; transform: none !important; } }

/* —— 30. 移动端目录：右侧渐隐提示可横滑 —— */
@media (max-width: 760px){
  .toc{ -webkit-mask-image: linear-gradient(90deg, #000 82%, transparent); mask-image: linear-gradient(90deg, #000 82%, transparent); }
  .toc a{ font-size: 13px; padding: 6px 10px; }
}

/* —— 31. 前沿议题卡：hover 左侧渐变条 —— */
@media (hover:hover) and (pointer:fine){
  .topic{ position: relative; overflow: hidden; }
  .topic::before{
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
    background: var(--grad-cool); opacity: 0; transition: opacity 160ms var(--hover-ease);
  }
  .topic:hover::before{ opacity: 1; }
}
/* —— 32. 表格数据条（A-3 性能表） —— */
.tbar{ display: block; height: 6px; margin-top: 6px; border-radius: 99px; background: var(--tint-blue); overflow: hidden; }
.tbar i{ display: block; height: 100%; border-radius: 99px; background: var(--grad-cool); }

/* —— 33. 阶段标签字号补到 13px —— */
.tl-item .step{ font-size: 13px; letter-spacing: .04em; }

/* —— 34. 小字统一到 13px（品牌副标除外：属标识锁定字号） —— */
.field small, .tag, .scroll-hint, .nb a .k{ font-size: 13px; }.plat-tag .tag{ font-size: 13px; }

/* —— 35. 横向晋升轴 —— */
.path{ display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 6px 0 18px; }
.path span{
  padding: 7px 14px; border: 1px solid var(--hairline); border-radius: var(--radius-pill);
  background: var(--surface); font-size: 14px; color: var(--ink);
}
.path i{ color: var(--blue); font-style: normal; }
.path span.cur{ background: var(--tint-blue); border-color: var(--blue-30); color: var(--link); font-weight: 500; }

/* —— 36. 考点库：考点要点 / 易错点 —— */
.kp-t{ margin: 12px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--blue); }
.kp{ margin: 0; padding: 0; list-style: none; }
.kp li{ position: relative; padding-left: 18px; margin: 5px 0; font-size: 14px; line-height: 1.75; color: var(--ink); }
.kp li::before{ content: ""; position: absolute; left: 2px; top: .7em; width: 5px; height: 5px; border-radius: 50%; background: var(--blue); opacity: .5; }
.kpw{ margin: 14px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--sun-ink); }
.kp.err li{ color: var(--sun-ink); }
.kp.err li::before{ background: var(--sun); opacity: .75; }

/* —— 37. 考点自测（工具页） —— */
.qcard{ background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius); padding: 20px 20px 16px; box-shadow: var(--shadow-sm); }
.qcard .q-q{ font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.7; margin: 0 0 12px; }
.qcard .q-q em{ font-style: normal; font-size: 12px; color: var(--muted); font-weight: 500; margin-left: 8px; }

/* —— 38. 链接列表（首页最近更新 / 考试资讯条目） —— */
.linklist{ list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.linklist li{ display: flex; align-items: baseline; gap: 14px; padding: 15px 4px; border-bottom: 1px solid var(--line); }
.linklist li:last-child{ border-bottom: 0; }
.linklist a{ flex: 0 0 auto; font-weight: 600; color: var(--link); text-decoration: none; }
.linklist a:hover{ text-decoration: underline; }
.linklist span{ color: var(--muted); font-size: 14px; line-height: 1.7; }
@media (max-width: 560px){
  .linklist li{ flex-direction: column; gap: 3px; }
}

/* —— 39. 首页最近更新区 —— */
.update-band{ padding: 8px 0 88px; }
.update-band .eyebrow{ margin-bottom: 18px; }

/* ============================================================
   v4.0 全站改造（2026-10-18 · 全局样式层）
   范围：G2/G13 站点导航、G5 珊瑚扩位、G6 reveal 兜底、G7 scroll-hint、
        G8 方向感知转场、G9 hero 装饰层、G12 ICP、第 6 节类名契约。
   纪律：珊瑚 ≤8%、底上必压 --sun-ink、零外部依赖、尊重 prefers-reduced-motion。
   ============================================================ */

/* ---------- G2/G13 全局站点导航（替代旧 .subnav） ---------- */
/* 与旧 .subnav 并存：旧页未改造前继续用，新模板统一用 .site-nav。 */
.site-nav{
  position: relative;
  border-bottom: 1px solid rgba(10,37,64,.08);
  background: rgba(255,255,255,.72);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  backdrop-filter: saturate(1.2) blur(8px);
}
/* checkbox 屏幕阅读器专属：视觉隐藏但可聚焦可勾选 */
.nav-toggle{
  position: absolute; width: 1px; height: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap; border: 0;
}
.nav-inner{
  display: flex; align-items: center; gap: 22px;
  min-height: 48px;
}
.site-nav a{
  flex: 0 0 auto;
  font-size: 14px; font-weight: 400; line-height: 48px;
  color: var(--muted); text-decoration: none; white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color var(--ease), border-color var(--ease), background-color var(--ease);
}
.site-nav a:hover, .site-nav a:focus-visible{ color: var(--ink); text-decoration: none; }
/* 当前站高亮：沿用 subnav 语义（深字 + 下划线），不靠加粗 */
.site-nav a.on{
  /* 2026-10-21：取消下划线指示器，仅用颜色与字重表示当前页 */
  color: var(--ink); font-weight: 500;
  border-bottom-color: transparent;
}
.site-nav .sep{
  flex: 0 0 auto; width: 1px; height: 15px;
  background: rgba(10,37,64,.16);
}
/* 移动端汉堡（桌面端隐藏） */
.nav-burger{ display: none; }

/* ---------- 「发现」下拉菜单（2026-11-04） ---------- */
.nav-drop{ position: relative; flex: 0 0 auto; }
.nav-drop-btn{
  appearance: none; -webkit-appearance: none;
  background: none; border: 0; padding: 0; margin: 0; cursor: pointer;
  font: inherit; font-size: 14px; font-weight: 400; line-height: 48px;
  color: var(--muted); white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color var(--ease);
}
.nav-drop-btn:hover,
.nav-drop-btn:focus-visible,
.nav-drop:focus-within .nav-drop-btn{ color: var(--ink); }
.nav-drop-menu{
  display: none; position: absolute; top: 100%; left: -16px;
  /* 宽度按最长文章标题自适应，避免「…四种补法」被断成孤字（2026-11-04） */
  min-width: 300px; max-width: none; padding: 10px;
  background: var(--paper-2); border: 1px solid rgba(10,37,64,.08);
  border-radius: 14px; box-shadow: var(--shadow-md);
  z-index: 60;
}
/* 2026-11-04：一级「发现」改为点击展开，悬停不触发（避免划过就弹） */
.nav-drop.is-open .nav-drop-menu{ display: block; }
.nav-drop-menu .nav-group{
  margin: 8px 10px 4px; font-size: 11px; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--muted);
}
.nav-drop-menu .nav-group:first-child{ margin-top: 2px; }
.nav-drop-menu a{
  display: block; line-height: 36px; padding: 0 10px;
  border-radius: 9px; border-bottom: 0;
  font-size: 14px; color: var(--muted); white-space: nowrap;
}
.nav-drop-menu a:hover,
.nav-drop-menu a:focus-visible{
  background: var(--tint-blue); color: var(--ink); text-decoration: none;
}
.nav-drop-menu a.on{ color: var(--ink); font-weight: 500; background: var(--tint-blue); }
/* 尚未建页的栏目：不可点的占位项（2026-11-04） */
.nav-drop-menu .nav-ph{
  display: block; line-height: 36px; padding: 0 10px;
  border-radius: 9px; font-size: 14px; white-space: nowrap;
  color: var(--muted); opacity: .62; cursor: default;
}

/* ---------- 三级菜单：点击二级标题展开，右侧飞出（2026-11-04） ---------- */
.nav-sub{ position: relative; }
.nav-sub-title{
  display: flex; align-items: center; justify-content: space-between;
  line-height: 36px; padding: 0 10px; border-radius: 9px;
  font-size: 14px; color: var(--muted); cursor: pointer; white-space: nowrap;
  transition: background-color var(--ease), color var(--ease);
}
.nav-sub-title::after{
  content: none;   /* 2026-11-04 老板令：移除右箭头 */
}
/* 2026-11-04 老板令：悬停不要色块，只让文字变深 */
.nav-sub:hover .nav-sub-title,
.nav-sub.is-open .nav-sub-title{ color: var(--ink); }
/* 当前板块：与导航项统一的选中胶囊（2026-11-04） */
.nav-sub-title.on{
  background: rgba(6,104,225,.10);
  color: var(--brand);
  font-weight: 500;
}
/* 板块页锚点跳转时，别被吸顶页头挡住（2026-11-04） */
main section[id]{ scroll-margin-top: 84px; }
.nav-sub-menu{
  /* 2026-11-04 老板令：去掉白色浮层（背景 / 描边 / 阴影全部去掉），只留文字列表。
     位置仍为向下居中，避免遮住相邻板块。 */
  display: none; position: absolute; left: 50%; transform: translateX(-50%);
  top: calc(100% + 2px);
  min-width: 148px; padding: 4px 0;
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
  z-index: 61;
}
/* 二级：桌面只认「悬停」与「键盘焦点」；点击态 .is-open 只留给移动端，
   否则悬停中再点一下会把菜单「钉住」，移开鼠标也不消失（2026-11-04） */
.nav-sub:hover .nav-sub-menu,
.nav-sub:focus-within .nav-sub-menu{ display: block; }
.nav-sub-menu .nav-ph,
.nav-sub-menu a{
  display: block; line-height: 32px; padding: 0 10px;
  border-radius: 8px; font-size: 13px; white-space: nowrap;
}
.nav-sub-menu a{ color: var(--muted); }
.nav-sub-menu a:hover,
.nav-sub-menu a:focus-visible{ color: var(--ink); text-decoration: none; }
.nav-sub-menu .nav-ph{ color: var(--muted); opacity: .62; cursor: default; }

/* 移动端／窄平板（≤939px）：汉堡 + 纵向抽屉
   2026-10-21 v8.1：原断点 760。导航加到 10 项、并加入搜索图标与语言胶囊后，
   761–880 这一档放不下（实测 768 宽时语言胶囊右溢到 825，被裁掉），改为 880 折叠。
   v8.2：英文导航更长，v7.1 单独把英文改到 939；两款断点不一致会在 881–939 出现
   「汉堡与导航同时不显示」的空档，故中英统一到 939。 */
@media (max-width: 939px){
  .site-nav{ min-height: 48px; display: flex; align-items: center; }
  .nav-burger{
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 44px; height: 44px; padding: 11px; margin-left: auto; margin-right: 4px;
    cursor: pointer; flex: 0 0 auto;
    -webkit-tap-highlight-color: transparent;
  }
  .nav-burger span{
    display: block; height: 2px; border-radius: 1px;
    background: var(--brand);
    transition: transform .2s ease, opacity .2s ease;
  }
  /* 勾选后三横线变 × */
  #nav-toggle:checked ~ .nav-burger span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
  #nav-toggle:checked ~ .nav-burger span:nth-child(2){ opacity: 0; }
  #nav-toggle:checked ~ .nav-burger span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
  /* 抽屉默认隐藏 */
  .nav-inner{
    display: none;
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    padding: 8px 0;
    background: var(--paper-2);
    border-bottom: 1px solid rgba(10,37,64,.08);
    box-shadow: var(--shadow-md);
    z-index: 5;
  }
  #nav-toggle:checked ~ .nav-inner{ display: flex; }
  .site-nav a{
    line-height: 48px; padding: 0 18px;
    border-bottom: 1px solid var(--line);
    border-bottom-color: var(--line);
  }
  .site-nav a:last-child{ border-bottom: 0; }
  .site-nav a.on{
    border-bottom-color: transparent;
    background: var(--tint-blue);
    color: var(--link); font-weight: 500;
  }
  .site-nav .sep{ display: none; }
  /* 「发现」下拉在移动端改为平铺：包裹盒消失，子项直接进入纵向流 */
  .nav-drop{ display: contents; }
  .nav-drop-btn{ display: none; }
  .nav-drop-menu{
    display: block; position: static; min-width: 0; max-width: none;
    margin: 0; padding: 0; border: 0; border-radius: 0; box-shadow: none;
    background: transparent;
  }
  .nav-drop-menu .nav-group{
    margin: 0; padding: 10px 18px 2px;
    border-top: 1px solid var(--line);
  }
  .nav-drop-menu a{
    line-height: 44px; padding: 0 18px; border-radius: 0;
    border-bottom: 1px solid var(--line);
    white-space: normal;
  }
  .nav-drop-menu a:last-child{ border-bottom: 0; }
  .nav-drop-menu .nav-ph{
    line-height: 44px; padding: 0 18px; border-radius: 0;
    border-bottom: 1px solid var(--line);
  }
  /* 三级在移动端平铺（缩进一级），不做折叠 */
  .nav-sub{ position: static; }
  .nav-sub-title{
    line-height: 44px; padding: 0 18px; border-radius: 0;
    border-bottom: 1px solid var(--line);
  }
  /* 移动端保留箭头，表示可点开；展开时旋转 90° 朝下 */
  .nav-sub-title::after{ margin-left: auto; }
  .nav-sub-title{ cursor: pointer; }
  .nav-sub.is-open .nav-sub-title{ background: transparent; color: var(--ink); }
  .nav-sub.is-open .nav-sub-title::after{ transform: rotate(90deg); }
  .nav-sub-menu{
    display: none; position: static; min-width: 0;
    padding: 0 0 0 14px; border: 0; border-radius: 0; box-shadow: none;
    background: transparent;
  }
  /* 移动端没有真正的悬停：一律用点击（.is-open），并压掉可能残留的 hover 态 */
  .nav-sub:hover .nav-sub-menu{ display: none; }
  .nav-sub.is-open .nav-sub-menu{ display: block; }
  .nav-sub-menu .nav-ph,
  .nav-sub-menu a{
    line-height: 40px; padding: 0 18px; border-radius: 0;
    border-bottom: 1px solid var(--line); font-size: 13px;
  }
}

/* ---------- G5 珊瑚扩位（纪律内：≤8% 面积） ---------- */
/* ch-num：珊瑚圆角标（替代原浅蓝大数字） */
.ch-hero .ch-num{
  display: inline-block;
  background: var(--sun); color: var(--sun-ink);
  border-radius: 10px; padding: 3px 14px;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.3; letter-spacing: -.02em;
  margin-bottom: 16px;
  box-shadow: none;
}
/* chips 选中态：珊瑚 soft 底 + 深字，与 [aria-pressed="true"] 并存兼容 */
.chips button.on, .chips .on{
  background: var(--sun-soft); color: var(--sun-ink);
  border-color: rgba(255,107,74,.35);
}
/* route-bar 当前段：珊瑚高亮（覆盖原 var(--ink)） */

/* ---------- G6 reveal 兜底（site.js IntersectionObserver 用） ---------- */
/* 现有 @supports (animation-timeline: view()) 动画只做位移、不锁透明度，
   任何不触发动画的环境（截图/打印/旧引擎）内容本就可见。
   .reveal.is-in 与动画终态一致，供 site.js 标记「已进入视口」。
   不触发 = 直接显示。 */
.reveal.is-in{ transform: none; }

/* ---------- G7 scroll-hint：默认隐藏，.overflow 由 site.js 添加 ---------- */
@media (max-width: 760px){
  /* 覆盖 v3 第 3 条：移动端不再默认全显，改为按溢出检测触发 */
  .table-scroll .scroll-hint{ display: none; }
}
.table-scroll.overflow .scroll-hint{ display: block; }

/* ---------- G8 页面转场增强（CSS only，方向感知） ---------- */
/* 旧浏览器不识别 @view-transition / :active-view-transition-type，自动忽略。 */
.ch-hero h1, .home-hero h1{ view-transition-name: hero; }
@media (prefers-reduced-motion: no-preference){
  ::view-transition-old(root){ animation: vt-out .24s ease both; }
  ::view-transition-new(root){ animation: vt-in .24s ease both; }
  :root:active-view-transition-type(reverse)::view-transition-old(root){ animation: vt-out-rev .24s ease both; }
  :root:active-view-transition-type(reverse)::view-transition-new(root){ animation: vt-in-rev .24s ease both; }
}
@keyframes vt-in{ from{ opacity: 0; transform: translateY(10px); } }
@keyframes vt-out{ to{ opacity: 0; transform: translateY(-10px); } }
@keyframes vt-in-rev{ from{ opacity: 0; transform: translateY(-10px); } }
@keyframes vt-out-rev{ to{ opacity: 0; transform: translateY(10px); } }

/* ---------- G9 板块页 hero 装饰层（纯 CSS 几何，aria-hidden 由页面加） ---------- */

/* ---------- G12 footer-icp：已存在（约 752 行），保持不变 ---------- */
/* .footer-icp{ font-size: 13px; color: var(--muted); } */

/* ---------- 第 6 节类名契约 ---------- */

/* tag-pulse：tag-dot 珊瑚呼吸光晕（尊重 reduced-motion） */
.tag-pulse{ position: relative; }
.tag-pulse .tag-dot{ animation: tagPulse 2.4s ease-in-out infinite; }
@keyframes tagPulse{
  0%, 100%{ box-shadow: 0 0 0 0 rgba(255,107,74,.45); }
  50%{ box-shadow: 0 0 0 6px rgba(255,107,74,0); }
}
@media (prefers-reduced-motion: reduce){
  .tag-pulse .tag-dot{ animation: none; box-shadow: none; }
}

/* wbar u.is-in：宽度填充 transition（终态取 --w；未加 is-in 保持立即满格，不破坏旧页） */
.wbar u::before{ transition: width .8s cubic-bezier(.2,.7,.3,1); }
.wbar u.is-in::before{ width: var(--w, 50%); }

/* count-up：数字滚动样式（JS 在 site.js/页内，仅样式） */
.count-up{ font-variant-numeric: tabular-nums; letter-spacing: -.01em; }

/* bd-sticky：篇首 sticky 定位标签 */
.bd-sticky{
  position: sticky; top: calc(var(--toc-h, 44px) + 8px);
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: var(--radius-pill);
  background: var(--surface); border: 1px solid var(--hairline);
  font-size: 13px; font-weight: 600; color: var(--brand);
  box-shadow: var(--shadow-sm); z-index: 4;
}

/* art-card：资讯卡片（标题 + 摘要 + 类型 tag + 阅读时长） */
.art-card{
  display: block; padding: 22px 22px 20px;
  background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
  text-decoration: none; color: var(--ink);
  transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease);
}
.art-card:hover{ border-color: rgba(10,37,64,.12); box-shadow: var(--shadow-md); transform: translateY(-2px); text-decoration: none; }
.art-card h3{ font-size: 17px; font-weight: 700; letter-spacing: -.01em; margin: 0 0 8px; color: var(--ink); }
.art-card p{ font-size: 14px; line-height: 1.75; color: var(--muted); margin: 0 0 12px; }
.art-card .art-meta{ display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 13px; color: var(--muted); }
.art-card .art-meta .tag{ margin-right: 2px; }

/* todos：待办清单 */

/* qr-real：真实二维码卡（白底圆角带说明） */
.qr-real{
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 24px 22px; background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius); box-shadow: var(--shadow-sm); text-align: center;
}
.qr-real img{ width: 200px; height: auto; border-radius: var(--radius-sm); }
.qr-real p{ margin: 0; font-size: 14px; color: var(--muted); line-height: 1.7; }
.qr-real .qr-note{ font-size: 13px; color: var(--meta); }

/* kfilter：关键词过滤输入框 */

/* review-8：无结果态 8 卡推荐（复用 bcard 风格） */
.review-8{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 16px; }
@media (max-width: 1024px){ .review-8{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px){ .review-8{ grid-template-columns: 1fr; } }
.review-8 a{
  display: block; padding: 18px 18px 16px;
  border: 1px solid var(--hairline); border-radius: var(--radius-sm);
  background: var(--surface); box-shadow: var(--shadow-sm); text-decoration: none;
  transition: border-color var(--ease), box-shadow var(--ease), transform var(--ease);
}
.review-8 a:hover{ border-color: rgba(10,37,64,.12); box-shadow: var(--shadow-md); transform: translateY(-2px); text-decoration: none; }
.review-8 b{ display: block; font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.review-8 span{ display: block; font-size: 13px; color: var(--muted); line-height: 1.6; }

/* countdown-bar：考试倒计时动态条 */

/* hl-next td：C3 行高亮平滑过渡（背景已设，补 transition） */
.hl-next td, .hl-next th{ transition: background-color .3s ease; }

/* jstop.last .jdot：已存在（约 1345 行），保持不变 */

/* ============================================================
   v3.1 首页路线图 · 恢复站名入口（2026-10-19）
   背景：路线图曾被替换为纯装饰 SVG（只有编号、无站名、无链接），
        八板块入口在首屏只剩顶栏。此处补一条与图形同序的文字入口，
        图形保持装饰（aria-hidden），可访问性由链接列表承担。
   ============================================================ */
@media (max-width: 760px){
}
@media (hover:hover) and (pointer:fine){
}
.is-hidden{ display: none !important; }

/* ============================================================
   v3.1 内联样式归零（2026-10-19）
   豆包改版引入 12 处 inline style，此处收敛为语义类，值一一对应。
   ============================================================ */
.panel-soft{ border: 1px solid var(--hairline); border-radius: var(--radius); padding: 18px 18px 8px; background: var(--surface); }
.mt-0{ margin-top: 0; }
.mt-10{ margin-top: 10px; }
.mt-12{ margin-top: 12px; }
.ml-6{ margin-left: 6px; }
.fs-16-ink{ font-size: 16px; color: var(--ink); }
.w-340-center{ max-width: 340px; margin-inline: auto; }
.btn-plain{ border: 0; cursor: pointer; padding: 10px 18px; border-radius: 99px; font-size: 14px; }
.note-13{ margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.my-6-4{ margin: 6px 0 4px; }
.my-6-22{ margin: 6px 0 22px; }
.hidden-muted{ display: none; color: var(--muted); font-size: 14px; }

/* ============================================================
   v3.2 全站深化层（2026-10-19）
   对应《官网 19 页深度优化清单 v2.0》68 条。
   纪律：
   1) 珊瑚只做：顶部 3px 暖带 / 标签底 / 角标 / 进度 / 焦点；底上必压 --sun-ink（6.24:1）。
   2) 紫只做渐变尾色与描边，不进大面积底色。
   3) 位移 ≤10px、缩放 ≤1.04、时长 160–520ms；全部受 prefers-reduced-motion 与 hover 能力门控。
   4) 新增类一律加 v32- 前缀或语义前缀（now-/meta-/kcard-/tool-/fig-），不与 v3.0/v3.1 冲突。
   ============================================================ */

:root{
  --readw: 44em;          /* 正文行宽：16px 下约 44 汉字（G4） */
  --gap-sec: 56px;        /* 区块下距 88 → 56（G1） */
  --sun-line: linear-gradient(90deg, var(--sun) 0 96px, rgba(255,107,74,0) 96px);
}

/* —— 1. 正文排版基线（G4） —— */
.sec-block p,
.sec-block li,
.ch-body > p,
.entry .et span,
.art-card p,
.tcard span,
.kp li,
.tr-body,
.tl-item p{
  font-size: 16px;
  line-height: 1.75;
}
.sec-block p,
.sec-block li,
.entry .et span,
.tl-item p{ max-width: var(--readw); }
.sec-block .notice{ max-width: none; }
.desc{ font-size: 16px; line-height: 1.75; color: var(--muted); max-width: var(--readw); }
.entry .et b{ font-size: 17px; }

/* —— 2. 首屏节奏：把「空」收掉（G1） —— */
.ch-body{ padding-top: 24px; }
.sec-block{ margin-bottom: var(--gap-sec); }
.hero-block{ margin-bottom: 0; }
.hero-block h1{ margin-bottom: 14px; }
.hero-block .summary{ margin: 14px 0 0; }
.home-hero{ padding-bottom: 6px; }
.plat-tag{ margin: -4px 0 18px; }
.toc{ margin-bottom: 4px; }

/* —— 3. 顶部暖带：2026-10-21 老板令移除（原为 fixed 3px 珊瑚渐变条，观感等同进度指示器） —— */
body::before{ display: none !important; }

/* —— 4. 元信息行：更新时间 / 编辑 / 你上次看（G2） —— */
.meta-line{
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  margin: 12px 0 0; font-size: 14px; color: var(--muted);
}
.meta-line .m-item{ display: inline-flex; align-items: center; gap: 6px; }
.meta-line .m-dot{ width: 3px; height: 3px; border-radius: 50%; background: var(--line-strong); opacity: .7; }
.meta-line b{ font-weight: 500; color: var(--ink); }
.meta-line .live-dot{
  width: 6px; height: 6px; border-radius: 50%; background: var(--sun);
  box-shadow: 0 0 0 0 rgba(255,107,74,.45); animation: livePulse 2.4s ease-out infinite;
}
@keyframes livePulse{ 0%{ box-shadow: 0 0 0 0 rgba(255,107,74,.40);} 70%{ box-shadow: 0 0 0 7px rgba(255,107,74,0);} 100%{ box-shadow: 0 0 0 0 rgba(255,107,74,0);} }

/* —— 5. 插画容器（G3） —— */
.fig{ margin: 20px 0 0; }
.fig svg, .fig img{ display: block; width: 100%; height: auto; border-radius: var(--radius-sm); }
.fig figcaption{ margin-top: 8px; font-size: 13px; line-height: 1.7; color: var(--muted); }
.fig-inline{ margin: 14px 0 0; }
@media (max-width: 760px){ .fig{ margin-top: 16px; } }

/* —— 6. 「最近在发生」条（1-1） —— */

/* —— 7. 视觉反馈（G6） —— */
.btn:active{ transform: translateY(1px); }
.btn[disabled]{ opacity: .55; cursor: not-allowed; }
.btn.is-busy{ pointer-events: none; opacity: .7; }
.chips button:active{ transform: translateY(1px); }
.is-flash{ animation: flashBg .6s ease; }
@keyframes flashBg{ 0%{ background: rgba(255,107,74,.18);} 100%{ background: transparent;} }
.toast{ font-size: 14px; }

/* —— 8. 页脚留呼吸（G8） —— */

/* —— 9. 工具页：吸顶切换条 + 面板 + 结果卡（G9 / 12-1 / 12-2） —— */
@keyframes panelIn{ from{ opacity: 0; transform: translateY(6px);} to{ opacity: 1; transform: none;} }
@media (prefers-reduced-motion: reduce){ }

/* —— 10. 考点：考点卡 / 易错分级 / 章自测 / 章信息（G10 / 5-1 / 5-2 / 5-3 / 5-5） —— */
.qrate{
  display: inline-flex; align-items: center; gap: 5px;
  padding: 1px 8px; border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 500; line-height: 1.7; white-space: nowrap;
}
.qrate-hi{ background: var(--sun); color: var(--sun-ink); }
.qrate-md{ background: var(--tint-blue); color: var(--link); }
.ch-meta{
  display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center;
  margin: 2px 0 10px; font-size: 13px; color: var(--muted);
}
.ch-meta .cm{ display: inline-flex; align-items: center; gap: 5px; }
.ch-actions{ display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 2px; }
.ch-link{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 13px; border-radius: var(--radius-pill);
  border: 1px solid var(--hairline); background: var(--surface);
  font-size: 13px; color: var(--link); text-decoration: none;
}
.ch-link:hover{ background: var(--tint-blue); border-color: var(--blue-30); }
.ch-link .arw{ transition: transform 160ms ease; }
.ch-link:hover .arw{ transform: translateX(3px); }

/* —— 11. 数字锚 / 统计条（1-4） —— */

/* —— 12. 轮转图 / 岗位矩阵 / 决策三问（2-2 / 3-1 / 4-2） —— */
.rotate-grid{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin: 16px 0 0; }
@media (max-width: 760px){ .rotate-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
.rotate-grid a{
  display: block; padding: 16px 14px; border: 1px solid var(--hairline);
  border-radius: var(--radius-sm); background: var(--surface); text-decoration: none;
}
.rotate-grid a b{ display: block; font-size: 15px; font-weight: 800; color: var(--ink); }
.rotate-grid a span{ display: block; margin-top: 4px; font-size: 13px; color: var(--muted); line-height: 1.7; }
.rotate-grid a:hover{ border-color: var(--blue-30); background: var(--tint); }
.chips button .cnt{
  display: inline-block; margin-left: 5px; padding: 0 5px;
  border-radius: 6px; background: var(--tint-blue); color: var(--link);
  font-size: 12px; font-variant-numeric: tabular-nums;
}
.q-box{ margin: 18px 0 0; padding: 18px 18px 14px; border: 1px solid var(--hairline); border-radius: var(--radius); background: var(--surface); }
.q-box .q-step{ margin: 0 0 10px; font-size: 13px; font-weight: 800; color: var(--brand); }
.q-opts{ display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.q-opts button{ font: inherit; font-size: 14px; padding: 7px 14px; border-radius: var(--radius-pill);
  border: 1px solid var(--hairline); background: var(--surface); color: var(--muted); cursor: pointer; }
.q-opts button[aria-pressed="true"]{ background: var(--tint-blue); color: var(--link); border-color: var(--blue-30); }
.q-result{
  margin: 6px 0 0; padding: 14px 16px; border-radius: var(--radius-sm);
  background: var(--tint); border-left: 3px solid var(--sun);
  font-size: 15px; line-height: 1.75; color: var(--ink);
}
.q-result b{ color: var(--brand); }

/* —— 13. 议题墙（G7 / 10-1 / 10-2） —— */
@media (max-width: 760px){ }
.topic-impact{ margin: 10px 0 0; padding: 10px 0 0; border-top: 1px dashed var(--hairline); }
.topic-impact span{ display: block; font-size: 14px; line-height: 1.75; color: var(--muted); }
.topic-impact b{ color: var(--ink); font-weight: 500; }
.arch-quarter{ margin: 18px 0 0; }
.arch-quarter > h3{ margin: 0 0 8px; font-size: 14px; font-weight: 800; color: var(--brand); }
.arch-quarter ul{ margin: 0; padding: 0; list-style: none; }
.arch-quarter li{ display: flex; gap: 10px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.arch-quarter li time{ flex: 0 0 84px; font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }

/* —— 14. 章节树打勾（8-1） —— */
.tree details.is-done > summary{ color: var(--muted); }
.tree details.is-done > summary::before{ content: "✓"; color: var(--sun-deep); }
.prog-line{ display: flex; align-items: center; gap: 10px; margin: 10px 0 0; font-size: 14px; color: var(--muted); }
.prog-line .bar{ flex: 1 1 auto; height: 6px; border-radius: 99px; background: var(--tint-blue); overflow: hidden; }
.prog-line .bar i{ display: block; height: 100%; width: 0; border-radius: 99px; background: var(--grad-cool); transition: width .4s ease; }

/* —— 15. 差距清单（9-1） —— */
.gap-list{ margin: 14px 0 0; padding: 0; list-style: none; }
.gap-list li{ display: flex; gap: 10px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 15px; line-height: 1.75; }
.gap-list li .gi{ flex: 0 0 auto; width: 18px; height: 18px; margin-top: 4px; border-radius: 50%; background: var(--tint-blue); color: var(--link);
  font-size: 12px; font-weight: 800; display: grid; place-items: center; }
.gap-list li.ok .gi{ background: var(--sun); color: var(--sun-ink); }

/* —— 16. 资讯：三件套（6-1） —— */
.art-meta{ display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: 10px; font-size: 13px; color: var(--muted); }
.art-meta .sep{ width: 3px; height: 3px; border-radius: 50%; background: var(--line-strong); opacity: .7; }
.art-date{ font-variant-numeric: tabular-nums; }

/* —— 17. 二维码（11-1 / 15-1） —— */
.qr-real{
  width: 200px; max-width: 100%; aspect-ratio: 1/1; padding: 10px;
  background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-sm);
}
.qr-real img{ width: 100%; height: 100%; object-fit: contain; display: block; }
.qr-wrap{ display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.qr-wrap .qr-txt{ flex: 1 1 240px; }

/* —— 18. 表单：多选 / 预览（14-1 / 15-2） —— */
.checks{ display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 8px 0 0; }
.checks label{ display: inline-flex; align-items: center; gap: 7px; font-size: 14px; color: var(--ink); cursor: pointer; }
.checks input{ width: 16px; height: 16px; accent-color: var(--blue); }
.mail-preview{
  margin: 12px 0 0; padding: 14px 16px; border-radius: var(--radius-sm);
  background: var(--surface-2); border: 1px dashed var(--blue-30);
  font-size: 14px; line-height: 1.75; color: var(--ink); white-space: pre-wrap;
}

/* —— 19. 404 最近看过（17-1 / 17-2） —— */
.recent-list{ margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.recent-list a{ display: flex; gap: 10px; align-items: baseline; padding: 9px 12px; border: 1px solid var(--hairline);
  border-radius: var(--radius-sm); background: var(--surface); text-decoration: none; font-size: 15px; color: var(--ink); }
.recent-list a:hover{ border-color: var(--blue-30); background: var(--tint); }
.recent-list a time{ margin-left: auto; font-size: 13px; color: var(--muted); white-space: nowrap; }

/* —— 20. 数据流向图（19-2） —— */
.flow{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin: 14px 0 0; }
@media (max-width: 760px){ .flow{ grid-template-columns: 1fr; } }
.flow div{ position: relative; padding: 14px 16px; border: 1px solid var(--hairline); border-radius: var(--radius-sm); background: var(--surface); }
.flow div b{ display: block; font-size: 15px; color: var(--ink); }
.flow div span{ display: block; margin-top: 4px; font-size: 13px; line-height: 1.7; color: var(--muted); }
@media (min-width: 761px){
  .flow div:not(:last-child)::after{
    content: "→"; position: absolute; right: -10px; top: 50%; transform: translateY(-50%);
    color: var(--sun); font-size: 15px; background: var(--paper); padding: 0 2px;
  }
}

/* —— 21. 变更历史小表（18-2） —— */
.ver-table{ margin: 12px 0 0; }
.ver-table th, .ver-table td{ font-size: 14px; }

/* —— 22. 首页路线图节点浮层（1-2） —— */
/* v4.1（2026-10-20 键盘走查）：路线图 8 个热区原先只有 1.12 缩放，键盘用户几乎看不出焦点；
   改为「描边 + 外环」双保险（SVG 元素在 Chrome/Safari 下 outline 可靠性一般，故补 stroke）。 */

/* —— 23. 视频区信息（1-3） —— */
.video-meta{ display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin: 10px 0 0; font-size: 14px; color: var(--muted); }
.video-meta button{
  font: inherit; font-size: 13px; padding: 5px 11px; border-radius: var(--radius-pill);
  border: 1px solid var(--hairline); background: var(--surface); color: var(--link); cursor: pointer;
}
.video-meta button:hover{ background: var(--tint-blue); }

/* —— 24. 移动端细化 —— */
@media (max-width: 760px){
  .sec-block{ margin-bottom: 44px; }
  .ch-body{ padding-top: 18px; }
  .sec-block p, .sec-block li, .entry .et span{ font-size: 16px; }
  .now-strip{ padding: 10px 12px; }
  .now-strip a{ font-size: 13px; }
  .anchors b{ font-size: 26px; }
  .tool-out .to-v{ font-size: 28px; }
  body::before{ height: 3px; }
  .footer-recent{ font-size: 13px; }
}

/* —— 25. 打印 —— */
@media print{
  body::before, .route-tip, .scroll-progress{ display: none !important; }
  .sec-block{ margin-bottom: 24px; }
}

/* —— 26. 板块页首屏迷你进度条（2-3 等） —— */
/* —— 27. 周记/清单类表单的小状态 —— */
.j-state{ display: inline-flex; align-items: center; gap: 8px; margin: 0 0 0 4px; font-size: 13px; color: var(--muted); }
.j-state input{ width: 16px; height: 16px; accent-color: var(--sun); }
.j-state.on{ color: var(--brand); font-weight: 500; }

/* —— 28. 考试页倒计时条（4-1）与三问决策（4-2） —— */
/* —— 29. 打印：只留质控表 —— */
@media print{
  body.printing-qc .site-header,
  body.printing-qc .site-nav,
  body.printing-qc .site-footer,
  body.printing-qc .crumb-bar,
  body.printing-qc .toc,
  body.printing-qc .scroll-progress,
  body.printing-qc .ch-hero,
  body.printing-qc .meta-line,
  body.printing-qc .fig,
  body.printing-qc .nb{ display: none !important; }
  body.printing-qc .sec-block:not(#qc){ display: none !important; }
  body.printing-qc #qc .tl,
  body.printing-qc #qc .ch-actions,
  body.printing-qc #qc .scroll-hint{ display: none !important; }
  body.printing-qc #qc .table-scroll{ overflow: visible !important; }
}

/* —— 30. 考点页：卡片化与阅读量（G10 / 5-3 / 5-5） —— */
.kcard-err{ border-left: 3px solid var(--sun); }
.kcard-err > h4{ display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ch-read{ margin-left: 8px; font-size: 12px; color: var(--muted); font-weight: 400; }
.tree .tr-body{ padding: 4px 18px 16px 42px; }
.tree .tr-body .ch-meta{ margin: 8px 0 2px; }
.kfilter-row{ display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin: 10px 0 0; }
.kfilter-row .kf-count{ font-size: 13px; color: var(--muted); }

/* —— 31. 学习页：章级清单与打勾（8-1 / 8-3） —— */
.ch-list{ margin: 0; padding: 0; list-style: none; }
.ch-list li{
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px;
  padding: 9px 0; border-bottom: 1px solid var(--line);
}
.ch-list li:last-child{ border-bottom: 0; }
.ch-list label{ display: inline-flex; align-items: center; gap: 8px; flex: 1 1 240px; font-size: 15px; color: var(--ink); cursor: pointer; }
.ch-list input{ width: 16px; height: 16px; accent-color: var(--blue); flex: 0 0 auto; }
.ch-list .ch-h{ font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; }
.ch-list li.done label{ color: var(--muted); text-decoration: line-through; text-decoration-color: var(--hairline); }
.ch-list a{ font-size: 13px; color: var(--link); text-decoration: none; }
.ch-list a:hover{ text-decoration: underline; }
/* —— 32. 考研：开始月份与指引（7-1 / 7-2） —— */
.month-tabs{ margin: 10px 0 6px; }
.wbar u{ transition: width .35s ease; }
.pick-next{
  margin: 12px 0 0; padding: 12px 14px; border-radius: var(--radius-sm);
  background: var(--tint); border-left: 3px solid var(--sun); font-size: 15px; line-height: 1.75;
}
.pick-next a{ color: var(--link); }

/* —— 33. 前沿：投票与往期轴（10-1 / 10-2 / 10-3） —— */
.vote-btn{
  margin-left: 8px; font: inherit; font-size: 13px; padding: 3px 10px;
  border-radius: var(--radius-pill); border: 1px solid var(--hairline);
  background: var(--surface); color: var(--muted); cursor: pointer; vertical-align: 1px;
}
.vote-btn[aria-pressed="true"]{ background: var(--sun); color: var(--sun-ink); border-color: var(--sun); }
/* —— 34. 继续学习：差距清单输出（9-1） —— */
.gap-out{ margin: 14px 0 0; padding: 16px 18px; border-radius: var(--radius); background: var(--surface); border: 1px solid var(--hairline); }
.gap-out h4{ margin: 0 0 8px; font-size: 15px; font-weight: 800; color: var(--brand); }
.gap-out .gap-list{ margin-top: 6px; }

/* —— 35. 二维码容器：按真实图片比例，不裁切（11-1 / 15-1） —— */
.qr-real{ width: 220px; max-width: 100%; aspect-ratio: auto; padding: 10px; }
.qr-real img{ width: 100%; height: auto; object-fit: contain; }
.qr-txt{ flex: 1 1 260px; }
.qr-txt b{ display: block; font-size: 16px; font-weight: 800; color: var(--ink); margin-bottom: 6px; }
.qr-txt p{ margin: 0 0 8px; font-size: 15px; line-height: 1.75; color: var(--muted); }
.qr-txt .qr-note{ font-size: 13px; color: var(--meta); }

/* —— 36. 资料卡预览缩略（14-3） —— */
.tcard .prev{ display: block; width: 100%; height: auto; margin: -6px 0 12px; border-radius: 8px; border: 1px solid var(--hairline); }

/* —— 37. 收口工具类（清零内联样式） —— */
.span-full{ grid-column: 1 / -1; }
.mt-8{ margin-top: 8px; }
.pick-line{ display: block; }

/* —— 38. 工具页与法律页配图位置 —— */
.fig-tight{ margin: 18px 0 0; }
.fig-tight figcaption{ margin-top: 6px; }

/* —— 39. 修正：hidden 被 flex 覆盖 / 插画尺寸（2026-10-19） —— */
.meta-line .m-item[hidden],
.meta-line [hidden]{ display: none !important; }
.fig img{ width: 100%; max-width: 720px; height: auto; margin: 0 auto; }
.fig{ margin: 12px 0 0; }
.fig figcaption{ max-width: 720px; margin-left: auto; margin-right: auto; }
.hero-block .plat-tag{ margin: -2px 0 10px; }

/* —— 40. 首屏内距收紧（G1 收尾）＋ 图示卡底 —— */
.hero-block{ padding-top: 56px; padding-bottom: 24px; }
.ch-hero{ padding-top: 48px; padding-bottom: 28px; }
.home-hero{ padding-bottom: 0; }
.fig{
  background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius-sm); padding: 14px 14px 10px;
}
.fig figcaption{ margin-top: 8px; }

/* —— 41. 插画收敛到 640 宽，减少首屏占位 —— */
.fig img{ max-width: 640px; }

/* ============================================================
   v3.3 插画与玻璃层（2026-10-19 19:20）
   来源：从 19:13 备份的下午版中挑出两样保留——
   ① 9 张扁平插画（原 2730×1536 / 2.12 MB，本层按 1680×945 / q82 重压至 0.91 MB）
   ② 液态玻璃：只用在「吸顶导航」这一处叠层，不做大面积玻璃，守住 v2.0 的克制基调
   纪律：插画为装饰性内容（alt 留空），语义由 figcaption 承担；玻璃底仍 ≥ .72 不透明度，正文不受影响
   ============================================================ */

/* —— 1. 插画：21:9 横幅，移动 16:9 —— */
.hero-fig, .ch-hero-fig{ margin: 20px 0 4px; }
.hero-fig img, .ch-hero-fig img{
  display: block; width: 100%; height: auto;
  aspect-ratio: 21 / 9; object-fit: cover;
  border-radius: var(--radius);
  box-shadow: 0 10px 28px rgba(10, 37, 64, .14);
  background: var(--tint);
}
.hero-fig figcaption, .ch-hero-fig figcaption{
  margin-top: 10px; font-size: 13px; line-height: 1.7; color: var(--muted);
  max-width: 720px;
}
@media (max-width: 760px){
  .hero-fig img, .ch-hero-fig img{ aspect-ratio: 16 / 9; border-radius: 14px; }
  .hero-fig, .ch-hero-fig{ margin: 16px 0 2px; }
}

/* —— 2. 液态玻璃：吸顶导航（唯一玻璃面） —— */
.site-nav{
  position: sticky; top: 0; z-index: 12;
  background: rgba(255, 255, 255, .74);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid rgba(10, 37, 64, .08);
  transition: background-color .2s ease, box-shadow .2s ease;
}
.site-nav::after{
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .95) 22%, rgba(255, 255, 255, .95) 78%, transparent);
  pointer-events: none;
}
@supports (backdrop-filter: blur(1px)){ .site-nav{ background: rgba(255, 255, 255, .66); } }
@media (prefers-reduced-transparency: reduce){ .site-nav{ background: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; } }

/* —— 3. 吸顶层级让位：导航 48px 之下再接目录与工具条 —— */
.toc{ top: 48px; }
@media (max-width: 760px){
  .toc{ top: 48px; }
}

/* —— 4. 长页回到顶部时的呼吸（玻璃导航下方不留白） —— */
section[id], article[id], h2[id]{ scroll-margin-top: 64px; }

/* —— 44. 吸顶接缝微调（实测导航高 51px，目录让到 52px） —— */
.toc{ top: 52px; }
@media (max-width: 760px){.toc{ top: 52px; } }

/* —— 45. 移动端元信息换行：去掉分隔点，避免行首孤立「·」 —— */
@media (max-width: 760px){
  .meta-line{ gap: 4px 12px; }
  .meta-line .m-dot{ display: none; }
  .meta-line .m-item{ gap: 5px; }
}

/* ================================================================
   v4.0 收口层（2026-10-20）
   1) picture 包裹的 hero 图布局 2) 页脚更新行 3) 移动端点击区 ≥44px
   4) 语义层级镜像：h4→h3 后的卡片标题、h3→h2 的正文小标题
   ================================================================ */
figure picture{ display: block; }
.hero-fig picture, .ch-hero-fig picture{ margin: 0; }
.hero-fig picture img, .ch-hero-fig picture img{ width: 100%; height: auto; }

/* 语义层级镜像：视觉不变，只把标签层级改对 */
.kcard-err > h3{ display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
h2.h-3like{ font-size: 18px; font-weight: 600; line-height: 1.5; margin: 20px 0 8px; letter-spacing: 0; color: inherit; }

/* 移动端点击区：导航与页脚链接纵向补到 ≥44px（只作用于触屏宽度） */
@media (max-width: 768px){
  .site-nav .nav-inner > a{ padding: 12px 10px; min-height: 44px; display: inline-flex; align-items: center; }
  .site-footer .flinks a{ display: inline-flex; align-items: center; min-height: 44px; padding: 6px 0; }
  .site-footer .footer-recent a{ display: inline-flex; align-items: center; min-height: 44px; }
  .site-footer .flinks li{ margin: 0; }
}

/* v4.1：考点页章节跳转（18 章，页面 7,000 字，篇级 toc 之外补章级入口） */
@media (max-width: 768px){
}

/* ================================================================
   v4.2 无障碍收口（2026-10-20 · axe-core 4.10.2 WCAG2AA 实测后修）
   1) 珊瑚标签文字对比 1.91 → 6.24  2) 板块序号 1.55 → 3.10
   3) 正文内联链接补下划线（区分不只靠颜色） 4) 汉堡改 button 后的样式重置与焦点环
   ================================================================ */
.tag-warm{ color: #0A1930; }               /* 规范：珊瑚底必须压深字，禁止白字/灰字 */
.tag-warm .tag-dot{ background: #0A1930; }
.bcard .bn{ color: #5B90E8; }              /* 大号装饰数字，3.10:1 ≥ 3:1（大文本阈值） */

/* 正文内联链接：不只靠颜色区分（axe link-in-text-block） */
main :where(p, li, .notice, .pts, .tr-body, .kcard) a:not(.btn):not(.ch-link):not(.art-card):not(.bcard):not(.rnode){
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
main :where(p, li, .notice, .pts, .tr-body, .kcard) a:not(.btn):not(.ch-link):not(.art-card):not(.bcard):not(.rnode):hover{
  text-decoration-thickness: 2px;
}

/* 汉堡：原生 <button> 重置（原为 <label>），保留原有尺寸与三段线动画 */
.nav-burger{
  background: none; border: 0; padding: 0; margin: 0;
  color: inherit; font: inherit; cursor: pointer;
  -webkit-appearance: none; appearance: none;
}
.nav-burger:focus-visible{ outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 8px; }

/* v4.2 补：三处对比度实测失败点的定点修复（axe color-contrast） */
.tag-warm, .tcard .tag-warm, .tcard span.tag-warm{ color: #0A1930; }   /* .tcard span 曾以 0,2,0 覆盖 */
.what{ color: var(--muted); }        /* 原 #8C99AD = 4.20:1，13px 需 ≥4.5 */
.qr-note{ color: var(--muted); }     /* 原误用边框色 --line-strong 作正文色，仅 1.9:1 */
/* 正文内联链接扩到 span 容器（二维码说明、备注行等） */
main :where(p, li, span, .notice, .pts, .tr-body, .kcard) a:not(.btn):not(.ch-link):not(.art-card):not(.bcard):not(.rnode){
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px;
}

/* v4.3：按选择器权重补齐（.tcard span 与 .qr-txt .qr-note 均为 0,2,0，单类选择器赢不了） */
.tcard .what{ color: var(--muted); }
.qr-real .qr-note, .qr-txt .qr-note{ color: var(--muted); }
/* 正文链接下划线：改为「main 内除组件链接外全量」，避免逐容器遗漏 */
main a:not(.btn):not(.ch-link):not(.art-card):not(.bcard):not(.search-list a):not(.review-8 a):not(.rnode):not(.tool-tab):not(.toc a):not(.exam-quick a):not(.role-pick a):not(.sig-chip):not(.sig-next a):not(.pick3 a):not(.qwall-topics a):not(.ob):not(.week-pills a):not(.ask-box a):not(.role-cards a):not(.board):not(.tcard):not(.sig-chip-q){
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px;
}
main a:not(.btn):not(.ch-link):not(.art-card):not(.bcard):not(.rnode):hover{ text-decoration-thickness: 2px; }

/* ================================================================
   v5.0 导航与页脚重构（2026-10-20 · 老板确认版）
   1) 顶部：首页在最左 + 13 项 + 右侧「订阅更新」按钮
   2) 页脚：删除品牌块与「八个板块」重复入口，改单行导航 + 版权免责
   ================================================================ */
@media (min-width: 761px){
  .nav-inner{ gap: 14px; overflow-x: auto; scrollbar-width: none; padding-right: 4px; }
  .nav-inner::-webkit-scrollbar{ display: none; }
  .site-nav a{ font-size: 13px; }
  .site-nav a.nav-cta{
    margin-left: auto; flex: 0 0 auto;
    display: inline-flex; align-items: center; height: 32px; line-height: 1;
    padding: 0 14px; border: 1px solid var(--blue); border-radius: 999px;
    color: var(--blue); font-weight: 500; border-bottom: 0;
  }
  .site-nav a.nav-cta:hover,
  .site-nav a.nav-cta:focus-visible{ background: var(--tint-blue); color: var(--blue); border-bottom-color: transparent; }
}
@media (max-width: 1180px) and (min-width: 761px){
  .nav-inner{ gap: 9px; }
  .site-nav a{ font-size: 13px; }
}
@media (max-width: 760px){
  /* 抽屉 14 项超出屏高：限高可滚动，保证末项可达 */
  .nav-inner{ max-height: calc(100vh - 120px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
}

/* 页脚：单行导航 */
@media (max-width: 760px){
}

/* v5.1：FAQ 行距纠偏（全局 summary{margin:18px 0} 误伤折叠问答，行间被撑到 ~85px） */
@media all{
  .faq > summary{ margin: 0; }
  .faq + .faq{ margin-top: 0; }
  .faq p{ margin: 10px 0 6px; }
}

/* ================================================================
   v5.2 打印样式（2026-10-20）
   场景：考点库/继教这类长页，用户会打印成纸质复习材料。
   原则：只留正文，去掉一切交互与外链装饰，强制黑白友好。
   ================================================================ */
@media print{
  @page{ margin: 16mm 14mm; }
  html, body{ background: var(--surface) !important; color: #000 !important; }
  .site-header, .site-nav, .crumb-bar, .site-footer, .scroll-progress,
  .skip-link, .toc, .toc-ch, .route-wrap, .qr-wrap, .qr-real, .btns,
  .ch-link, .search-box, .tool-tabs, .breadcrumb, video, iframe{ display: none !important; }
  main{ margin: 0 !important; padding: 0 !important; }
  .wrap{ max-width: none !important; padding: 0 !important; }
  h1{ font-size: 20pt; margin: 0 0 6pt; }
  h2{ font-size: 14pt; margin: 12pt 0 4pt; page-break-after: avoid; }
  h3{ font-size: 11.5pt; margin: 9pt 0 3pt; page-break-after: avoid; }
  p, li{ font-size: 10.5pt; line-height: 1.6; orphans: 3; widows: 3; }
  a{ color: #000 !important; text-decoration: none !important; }
  /* 打印时把链接地址跟出来（内部链接不跟，避免噪声） */
  a[href^="http"]::after{ content: " (" attr(href) ")"; font-size: 8.5pt; color: #444; }
  details{ border: 0 !important; }
  details > summary{ font-weight: 700; color: #000 !important; }
  /* 折叠加粗且不断页 */
  .kcard, .tcard, .entry, .tr-body{ break-inside: avoid; box-shadow: none !important; border: 1px solid #bbb !important; }
  .kcard{ padding: 6pt 8pt; margin: 4pt 0; }
  table{ width: 100% !important; border-collapse: collapse; font-size: 9.5pt; }
  th, td{ border: 1px solid #999 !important; padding: 3pt 5pt !important; }
  .band, .hero-block, .sec-block{ background: none !important; padding: 0 !important; }
  /* 交互控件不打印（章节选择器、展开/收起、筛选、搜索框） */
  button, input, select, textarea, .chips, .tool-bar, .tree-tools, .filter-row{ display: none !important; }
}

/* ===== 页内样式并入（v5.3 · 2026-10-20）===== */
/* —— 原 404.html —— */
[data-page="404"] .n404{ display:inline-block; animation: n404float 3.2s ease-in-out infinite; }
@keyframes n404float{
  0%, 100%{ transform: translateY(0); }
  50%{ transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce){[data-page="404"] .n404{ animation: none; }}

/* —— 原 免费资料.html —— */

/* —— 原 frontier.html —— */

/* —— contact.html —— */
[data-page="contact"] .qr-pending{ width:220px; padding:22px 18px; background:var(--surface); border:1px solid var(--hairline); border-radius:var(--radius); box-shadow:var(--shadow-sm); text-align:center; }
[data-page="contact"] .qr-pending .qr-box{ width:168px; aspect-ratio:1/1; margin:0 auto 12px; border:1.5px dashed var(--blue-30); border-radius:var(--radius-sm); background:var(--surface-2); display:grid; place-items:center; color:var(--muted); font-size: 13px; }
[data-page="contact"] .qr-pending .qr-badge{ display:inline-block; padding:3px 10px; border-radius:var(--radius-pill); background:var(--sun-soft); color:var(--sun-ink); font-size: 13px; font-weight:600; }
[data-page="contact"] .addr-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; }
[data-page="contact"] .addr-row .copy-row{ flex:0 0 auto; }

/* —— 原 study.html —— */
@media (prefers-reduced-motion: reduce){}

/* —— 原 career.html —— */
@media (prefers-reduced-motion: reduce){}

/* —— 原 工具.html —— */

/* —— 原 terms.html —— */
[data-page="terms"] .legal-narrow{ max-width:68ch; margin-inline:auto; }
@media (max-width: 760px){[data-page="terms"] .legal-narrow{ max-width:none; }}

/* —— 原 continuing.html —— */

/* —— 原 postgraduate.html —— */

/* —— 原 privacy.html —— */
[data-page="privacy"] .legal-narrow{ max-width:68ch; margin-inline:auto; }
@media (max-width: 760px){[data-page="privacy"] .legal-narrow{ max-width:none; }}

/* v5.4（2026-10-20 下线工具页）：原「晋升条件对照」标题下是学分进度条+说明句，
   移除后标题与职称筛选按钮只剩 8px，补一点呼吸。全局仅影响紧跟 h2 的 chips。 */
.sec-block > h2 + .chips{ margin-top: 14px; }

/* ================================================================
   v6.0 顶部一体化（2026-10-21 老板令）
   品牌标记 + 名称 + 全部导航标题并入同一横排，整组水平居中、垂直居中；
   桌面不换行、间距均匀；≤760px 仍走「品牌居左 + 汉堡 + 抽屉」原行为。
   不改配色/字号/下划线语义，只改容器排布。
   ================================================================ */
.site-header{ position: relative; z-index: 20; }

/* ---- 桌面/平板横排 ---- */
@media (min-width: 940px){
  .site-header{ height: auto; min-height: 88px; }
  .site-header .wrap.masthead{
    display: flex; align-items: center; justify-content: center;
    flex-wrap: nowrap; gap: 40px;
    height: auto; min-height: 88px; padding: 8px 24px;
  }
  .site-header .brand{ margin: 0; }
  /* 导航不再自成一条，去掉它原来的底色、分隔线与粘性上下文 */
  .site-header .site-nav{
    position: static; display: flex; align-items: center;
    min-height: 0; background: none; border-bottom: 0;
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .site-header .nav-inner{
    max-width: none; width: auto; margin: 0; padding: 0;
    min-height: 0; overflow: visible;
  }
}

/* ---- 939 及以下：品牌居左、汉堡居右，抽屉挂在 header 下沿 ---- */
@media (max-width: 939px){
  .site-header{ height: auto; min-height: 64px; }
  .site-header .wrap.masthead{
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: nowrap; gap: 12px;
    height: auto; min-height: 64px; padding: 6px 16px;
  }
  .site-header .site-nav{
    position: static; display: flex; align-items: center;
    min-height: 0; background: none; border-bottom: 0;
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .site-header .site-nav .nav-burger{ margin-left: 0; margin-right: 0; }
  .site-header .nav-inner{
    display: none;                 /* 默认收起；勾选后由 #nav-toggle 规则打开 */
    position: absolute; top: 100%; left: 0; right: 0;
    width: auto; max-width: none; margin: 0; padding: 8px 0;
  }
  #nav-toggle:checked ~ .site-header .nav-inner,
  #nav-toggle:checked ~ .nav-inner{ display: flex; }
}

/* 窄桌面（940–1200）收紧间距：品牌 + 10 项 + 搜索 + 语言胶囊仍须一行、不产生横向滚动 */
@media (min-width: 940px) and (max-width: 1200px){
  .site-header .wrap.masthead{ gap: 16px; padding: 8px 14px; }
  .site-header .nav-inner{ gap: 10px; }
  .site-header .site-nav a{ font-size: 13px; }
  .site-header .site-nav .sep{ display: none; }
}

/* v6.1（2026-10-21）：导航改一级并列、去分组竖线后，靠间距建立节奏
   —— 无分隔符时 gap 14 偏挤，文字块之间看不出分组，故加大到 26；窄桌面 12。 */
@media (min-width: 1201px){
  .site-header .nav-inner{ gap: 26px; }
}
@media (min-width: 761px) and (max-width: 900px){
  .site-header .nav-inner{ gap: 12px; }
}

/* ================================================================
   v7.0 布局收口（2026-10-21）
   1) 顶部搜索：图标常驻，点击展开输入框（不再进页脚）
   2) 页脚重排：品牌 + 导航 / 说明 / 底线 三段，栅格对齐、留白统一
   3) 首页节奏：区块留白与标题层级统一，FAQ 行距收紧
   ================================================================ */

/* ---------- 1. 顶部搜索 ---------- */
.masthead{ position: relative; }
/* v7.1（2026-10-21）：搜索按钮不再贴右边缘悬空，与导航并入同一横排，紧跟最后一项 */
.search-wrap{ position: relative; display: flex; align-items: center; }
.search-btn{
  width: 40px; height: 40px; display: grid; place-items: center;
  border: 1px solid transparent; border-radius: 50%;
  background: transparent; color: var(--muted); cursor: pointer;
  transition: color .16s, background-color .16s, border-color .16s;
}
.search-btn:hover{ color: var(--ink); background: var(--surface); border-color: var(--line); }
.search-btn:focus-visible{ outline: 3px solid var(--blue); outline-offset: 2px; }
.search-btn[aria-expanded="true"]{ color: var(--link); background: var(--tint-blue); border-color: var(--blue-30); }
/* v7.3（2026-10-21）：搜索弹窗重做——从「白卡片＋实心按钮」改为填充式输入 + 结果行带板块标签 */
.search-pop{
  position: absolute; right: 0; top: calc(100% + 26px);
  width: min(412px, calc(100vw - 32px));
  padding: 16px; background: var(--surface);
  border: 1px solid var(--hairline); border-radius: var(--radius);
  box-shadow: 0 20px 48px rgba(11, 26, 46, .14), 0 3px 10px rgba(11, 26, 46, .05);
  z-index: 30;
  animation: spIn .18s cubic-bezier(.22, .61, .36, 1) both;
}
@keyframes spIn{ from{ opacity: 0; transform: translateY(-6px) scale(.985); } to{ opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce){ .search-pop{ animation: none; } }
.search-form{ display: block; }
.search-field{ position: relative; display: flex; align-items: center; }
.search-field-ico{ position: absolute; left: 13px; color: var(--muted); pointer-events: none; }
.search-form input{
  width: 100%; height: 46px; padding: 0 52px 0 38px;
  border: 1px solid transparent; border-radius: var(--radius-xs);
  background: #F2F5FA; font: inherit; font-size: 14px; color: var(--ink);
  transition: background-color .16s, box-shadow .16s;
}
.search-form input::placeholder{ color: var(--meta); }
.search-form input:hover{ background: #EDF1F8; }
.search-form input:focus{
  outline: none; background: var(--surface);
  box-shadow: 0 0 0 1.5px var(--blue), 0 0 0 4px rgba(6, 104, 225, .12);
}
/* 浏览器自带的搜索图标与清除键会和左侧图标打架，去掉 */
.search-form input::-webkit-search-decoration,
.search-form input::-webkit-search-cancel-button{ -webkit-appearance: none; }
.search-submit{
  position: absolute; right: 5px;
  width: 36px; height: 36px; display: grid; place-items: center;
  border: 0; border-radius: 9px; background: var(--blue); color: #fff; cursor: pointer;
  transition: background-color .16s, transform .12s;
}
.search-submit:hover{ background: #0557BE; }
.search-submit:active{ transform: scale(.96); }
.search-submit:focus-visible{ outline: 3px solid var(--blue-30); outline-offset: 2px; }
.search-tip{ margin: 12px 4px 2px; font-size: 13px; line-height: 1.6; color: var(--meta); }

/* v7.2（2026-10-21）：顶部搜索就地出结果，不必先跳页再看有没有 */
.search-hits{
  margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line);
  max-height: min(336px, 52vh); overflow-y: auto; overscroll-behavior: contain;
}
.search-hits[hidden]{ display: none; }
.search-hit{
  position: relative; display: flex; align-items: center; gap: 10px;
  padding: 9px 28px 9px 10px; border-radius: 10px;
  color: var(--ink); text-decoration: none;
  transition: background-color .14s;
}
.search-hit:hover, .search-hit:focus-visible{ background: var(--tint-blue); text-decoration: none; }
.search-hit .h-t{
  flex: 1 1 auto; min-width: 0;
  font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-hit .h-b{
  flex: none; max-width: 88px; padding: 1px 7px;
  font-size: 12px; line-height: 1.6; color: var(--muted);
  background: #F1F4F9; border: 1px solid transparent; border-radius: 999px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-hit .h-a{
  position: absolute; right: 9px; top: 50%;
  color: var(--blue); opacity: 0;
  transform: translateY(-50%) translateX(-3px);
  transition: opacity .14s, transform .14s;
}
.search-hit:hover .h-a, .search-hit:focus-visible .h-a{ opacity: 1; transform: translateY(-50%); }
.search-hit mark{
  background: rgba(6, 104, 225, .14); color: var(--link);
  font-weight: 700; border-radius: 3px; padding: 0 1px;
}
.search-more{
  display: flex; align-items: center; justify-content: space-between;
  margin-top: 4px; padding: 10px 10px 8px;
  border-top: 1px solid var(--line); border-radius: 0 0 10px 10px;
  font-size: 13px; font-weight: 600; color: var(--blue); text-decoration: none;
}
.search-more:hover{ background: var(--tint-blue); text-decoration: none; }
.search-more .m-a{ transition: transform .14s; }
.search-more:hover .m-a{ transform: translateX(3px); }
.search-none{ margin: 0; padding: 12px 10px 6px; font-size: 13px; line-height: 1.65; color: var(--muted); }
.search-none b{ color: var(--ink); font-weight: 600; }
/* 没输入时给几个常见词，省得对着空框想搜什么；出结果后自动收起 */
.search-hot{ display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; }
.search-hot button{
  padding: 5px 11px; border: 1px solid var(--line); border-radius: 999px;
  background: var(--surface); font: inherit; font-size: 13px; color: var(--muted);
  cursor: pointer; transition: color .14s, border-color .14s, background-color .14s;
}
.search-hot button:hover, .search-hot button:focus-visible{
  color: var(--blue); border-color: var(--blue-30); background: var(--tint-blue);
}
/* 一旦出结果，下方那句用法提示就收起来，省出高度给结果本身 */
.search-hits:not([hidden]) ~ .search-tip,
.search-hits:not([hidden]) ~ .search-hot{ display: none; }
@media (max-width: 760px){
  .search-pop{ padding: 12px; border-radius: var(--radius-sm); top: calc(100% + 12px); }
  .search-form input{ height: 48px; }
  .search-hit{ padding: 11px 28px 11px 10px; }          /* 拇指点按高度 ≥44px */
  .search-more{ padding: 12px 10px 8px; }
}

/* v7.1（2026-10-21 老板令）：桌面把搜索图标并入导航横排，紧跟最后一项，不再贴右边缘悬空 */
@media (min-width: 940px){
  .site-header .search-wrap{ margin-left: -8px; }
  .site-header .search-pop{ right: -4px; }
}
/* 资讯页沿用 ch-hero 后，更新标签与上方导读之间留出呼吸 */
.ch-hero .plat-tag{ margin: 8px 0 0; }

/* ---------- 2. 页脚 ---------- */
.site-footer{ margin-top: 64px; padding: 0; background: var(--paper); border-top: 1px solid var(--line); }
.footer-top{
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px 32px; flex-wrap: wrap; padding: 26px 0 20px;
  border-bottom: 1px solid var(--line);
}
.footer-nav{ display: flex; flex-wrap: wrap; gap: 8px 28px; }
.footer-nav a{
  font-size: 14px; color: var(--muted); text-decoration: none;
  display: inline-flex; align-items: center; min-height: 32px;
}
.footer-nav a:hover, .footer-nav a:focus-visible{ color: var(--ink); }
.footer-bottom{
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px 24px; flex-wrap: wrap;
  padding: 14px 0 22px;
  font-size: 13px; color: var(--muted);
}
.footer-copy{ margin: 0; }
/* 返回顶部（2026-10-25 老板令）：文字链接改为一枚圆形图标按钮，40px 命中区；
   图标用 16px 线性箭头，随主题色走 currentColor，不额外引资源 */
.footer-backtop{
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: var(--radius-pill);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--meta); background: var(--paper-2); border: 1px solid var(--line);
  text-decoration: none;
}
.footer-backtop svg{ display: block; }
.footer-backtop:hover, .footer-backtop:focus-visible{
  color: var(--ink); border-color: var(--line-strong);
  transform: translateY(-2px); box-shadow: var(--shadow-sm);
}
.footer-backtop:focus-visible{ outline: 2px solid var(--focus); outline-offset: 3px; }
@media (max-width: 760px){
  .footer-bottom{ position: relative; flex-direction: column; align-items: flex-start; gap: 6px; padding-right: 56px; }
  .footer-backtop{ position: absolute; right: 0; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce){
  .footer-backtop:hover{ transform: none; }
}
/* 一键回顶走平滑滚动；用户若声明减少动态效果则保持瞬时跳转 */
@media (prefers-reduced-motion: no-preference){
  html{ scroll-behavior: smooth; }
}

/* ---------- 3. 首页节奏 ---------- */
body[data-page="index"] .home-hero{ padding-top: 72px; padding-bottom: 36px; }
body[data-page="index"] .home-hero .lead{ max-width: 62ch; }
body[data-page="index"] .btns{ margin-top: 30px; }
body[data-page="index"] .fork{ margin-top: 20px; }
body[data-page="index"] .meta-line{ margin-top: 14px; }
body[data-page="index"] .boards-wrap{ margin-top: 0; padding: 80px 0 56px; }
body[data-page="index"] .platform{ padding: 64px 0 56px; border-top: 1px solid var(--line); }
body[data-page="index"] .boards-wrap:last-of-type{ padding-top: 56px; padding-bottom: 44px; }
body[data-page="index"] .site-footer{ margin-top: 0; }
body[data-page="index"] .eyebrow{ margin-bottom: 12px; }
body[data-page="index"] .journey-h{ margin-bottom: 12px; }
body[data-page="index"] .journey-note{ margin-bottom: 8px; }
body[data-page="index"] .journey{ margin-top: 18px; }
body[data-page="index"] .p4{ gap: 32px 56px; }
body[data-page="index"] .p4 h3{ margin-bottom: 8px; }
body[data-page="index"] details.faq{ padding: 12px 16px; margin: 6px 0; }
body[data-page="index"] .faq > summary{ padding: 4px 0; }
body[data-page="index"] .faq p{ margin: 8px 0 2px; }

/* ---------- 4. 断点 ---------- */
@media (max-width: 900px){
  body[data-page="index"] .anchors{ grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px 20px; }
  body[data-page="index"] .boards-wrap{ padding: 64px 0 44px; }
  body[data-page="index"] .platform{ padding: 48px 0 44px; }
}
/* 搜索/导航在折叠档（≤939）的排布：图标与汉堡同排右侧，面板横向铺满 */
@media (max-width: 939px){
  .search-wrap{ order: 2; margin-left: auto; position: static; }
  .search-btn{ width: 44px; height: 44px; }
  .site-nav{ order: 3; }
  .search-pop{
    left: -4px; right: -4px; top: calc(100% + 6px); width: auto;
    padding: 12px; border-radius: var(--radius-xs);
  }
}
@media (max-width: 760px){
  .footer-top{ flex-direction: column; align-items: flex-start; gap: 14px; padding: 30px 0 18px; }
  .footer-nav{ gap: 4px 20px; }
  .footer-nav a{ min-height: 40px; }
  .footer-bottom{ padding-bottom: 26px; }
  body[data-page="index"] .home-hero{ padding-top: 44px; padding-bottom: 26px; }
  body[data-page="index"] .boards-wrap{ padding: 52px 0 36px; }
  body[data-page="index"] .platform{ padding: 40px 0 36px; }
  body[data-page="index"] .journey{ margin-top: 14px; }
}

/* ============================================================
   v7.0（2026-10-21）官网 v4.2 执行层 —— 板块优先，页面变薄
   原则：只增不改。全部为新增选择器或更高权重覆盖，旧规则一条不删，
        便于按块回滚（删掉本段即回到 v6.1）。
   对应方案：20261021_孤灿官网v4.2设计方案.docx 第四～七章
   ============================================================ */

/* —— 1. 首页 · 宣传片改「左文右片」：820px → 约 380px —— */
.ms-copy{ min-width: 0; }
.ms-h{
  margin: 10px 0 0; font-size: 26px; line-height: 1.35;
  font-weight: 800; letter-spacing: -.01em; color: var(--brand);
}
.ms-list{ list-style: none; margin: 14px 0 0; padding: 0; }
.ms-list li{ font-size: 14px; line-height: 1.75; color: var(--muted); }
.ms-list b{ color: var(--ink); font-weight: 600; }
@media (max-width: 900px){
  /* 窄屏不重复：三条要点与折叠里的「摘要」同义，留摘要即可，避免首屏后再多出 200px */
}

/* —— 2. 首页 · 八板块改 4×2 网格（替代 S 形三行 + 虚线路径） —— */
.boardgrid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.board{
  display: flex; flex-direction: column; gap: 6px;
  padding: 18px 18px 20px; background: var(--surface);
  border: 1px solid var(--hairline); border-radius: var(--radius-sm); text-decoration: none;
  transition: border-color var(--hover-t) var(--hover-ease),
              box-shadow var(--hover-t) var(--hover-ease),
              transform var(--hover-t) var(--hover-ease);
}
.board:hover, .board:focus-visible{
  text-decoration: none; border-color: rgba(6, 104, 225, .28);
  box-shadow: 0 6px 20px rgba(10, 37, 64, .07); transform: translateY(-1px);
}
.board .bnum{ font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); font-variant-numeric: tabular-nums; }
.board .bt{ font-size: 19px; font-weight: 800; letter-spacing: -.01em; color: var(--brand); }
.board .bd{ font-size: 12px; line-height: 1.7; color: var(--muted); }
@media (max-width: 1024px){ .boardgrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px){
  .boardgrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .board{ padding: 14px 14px 16px; }
  .board .bt{ font-size: 17px; }
}

/* —— 3. 频道页 · 站头 841 → ≤520：插图移到右列 320×180 —— */
@media (min-width: 960px){
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero{ display: grid; grid-template-columns: minmax(0, 1fr) 320px; column-gap: 48px; align-items: start; }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .ch-num,
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > h1,
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .slogan,
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .lead{ grid-column: 1; }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .ch-num{ justify-self: start; width: max-content; }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .ch-hero-fig{ grid-column: 2; grid-row: 1 / span 4; align-self: start; margin: 6px 0 0; }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .ch-hero-fig img{ aspect-ratio: 16 / 9; border-radius: 14px; box-shadow: 0 8px 22px rgba(10, 37, 64, .10); }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-hero > .ch-hero-fig figcaption{ display: none; }
}

/* —— 4. 频道页 · 正文左侧常驻目录 + 行宽 720 —— */
@media (min-width: 960px){
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body{ display: grid; grid-template-columns: 180px minmax(0, 1fr); column-gap: 48px; align-items: start; }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body > .toc{
    grid-column: 1; grid-row: 1 / span 200;
    position: sticky; top: 24px;
    display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
    margin: 0; padding: 0; background: none; border: 0; box-shadow: none;
    -webkit-backdrop-filter: none; backdrop-filter: none; overflow: visible;
  }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body > .toc::before{
    content: "本页目录"; display: block; margin-bottom: 10px;
    font-size: 12px; font-weight: 500; letter-spacing: .16em; color: var(--muted);
  }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body > .toc a{
    display: block; width: 100%; padding: 6px 0; border-radius: 6px;
    font-size: 13px; line-height: 1.55; color: var(--muted); white-space: normal;
  }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body > .toc a:hover{ background: none; color: var(--link); }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body > .toc a.on{
    background: none; color: var(--blue); font-weight: 600;
    box-shadow: inset 2px 0 0 var(--blue); padding-left: 10px;
  }
  body:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .ch-body > *:not(.toc){ grid-column: 2; max-width: 720px; }
}

/* —— 5. 页头 · 导航 14px、品牌与导航之间加一条竖线 ——
   v8.2：断点由 901 提到 940。939 及以下走汉堡抽屉，品牌右侧没有导航了，
   竖线留着会变成一根孤立的 1px 竖条（截图已确认）。 */
@media (min-width: 940px){
  body .site-header .wrap.masthead{ gap: 28px; }
  body .site-header .site-nav a{ font-size: 14px; }
  body .site-header .brand::after{
    content: ""; flex: 0 0 auto; width: 1px; height: 18px; margin-left: 8px;
    background: rgba(10, 37, 64, .14);
  }
}

/* —— 6. 首页 · 首屏第三行动降为文字链、插图收窄到 900 —— */
body[data-page="index"] .hero-fig{ max-width: 900px; margin-left: auto; margin-right: auto; }

/* ============================================================
   v7.1（2026-10-21）分页差异化组件层
   一页一个签名组件：本段只放组件，谁用谁加类，不自动作用于任何页面。
   ============================================================ */

/* —— 首屏功能块（替代插图）：三条/四条速览 —— */
.sig-chips{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 24px; }
.sig-chips.cols2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.sig-chip{
  display: flex; gap: 10px; align-items: flex-start;
  padding: 13px 15px; background: var(--surface);
  border: 1px solid var(--hairline); border-radius: var(--radius-xs);
  text-decoration: none; transition: border-color var(--hover-t) var(--hover-ease), box-shadow var(--hover-t) var(--hover-ease);
}
.sig-chip:hover, .sig-chip:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.28); box-shadow: 0 6px 18px rgba(10,37,64,.06); }
.sig-chip b{ flex: 0 0 auto; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); font-variant-numeric: tabular-nums; padding-top: 2px; }
.sig-chip span{ font-size: 13px; line-height: 1.7; color: var(--ink); }
.sig-chip em{ font-style: normal; font-size: 12px; font-weight: 500; color: #0B4FBF; background: var(--tint-blue); border-radius: 4px; padding: 1px 6px; margin-right: 6px; white-space: nowrap; }

/* 首屏改用功能块时，取消 v7.0 的 320 右列 */
@media (min-width: 960px){
  body .ch-hero.sig{ display: block; }
  body .ch-hero.sig .sig-chips{ max-width: 100%; }
}

/* —— 前沿：信号行 —— */
.sig-signal{ list-style: none; margin: 18px 0 0; padding: 0; border-top: 1px solid var(--hairline); }
.sig-row{
  display: grid; grid-template-columns: 132px 74px minmax(0,1fr) auto;
  gap: 16px; align-items: start; padding: 18px 0;
  border-bottom: 1px solid var(--hairline);
}
.sig-name h3{ margin: 0 0 6px; font-size: 16px; font-weight: 800; letter-spacing: -.01em; color: var(--brand); }
.sig-name .tag{ display: inline-block; }
.sig-stage{ padding-top: 2px; }
.sig-meter{ display: flex; gap: 3px; }
.sig-meter i{ flex: 1 1 0; height: 6px; border-radius: 3px; background: #EDF0F5; }
.sig-meter i.on{ background: var(--blue); }
.sig-stage small{ display: block; margin-top: 6px; font-size: 12px; color: var(--muted); letter-spacing: .04em; }
.sig-note p{ margin: 0 0 6px; font-size: 13px; line-height: 1.75; color: var(--ink); }
.sig-note span{ display: block; font-size: 12px; line-height: 1.7; color: var(--muted); }
.sig-note b{ color: var(--brand); font-weight: 500; }
.sig-row .see{ align-self: center; font-size: 12px; color: var(--link); text-decoration: none; white-space: nowrap; }
.sig-row .see:hover{ text-decoration: underline; }

/* —— 前沿：行业变化简报行 —— */
.sig-brief{ list-style: none; margin: 14px 0 0; padding: 0; }
.sig-brief li{
  display: grid; grid-template-columns: 120px minmax(0,1fr) 190px;
  gap: 14px; align-items: baseline; padding: 13px 0;
  border-bottom: 1px solid var(--hairline); font-size: 13px;
}
.sig-brief b{ font-weight: 800; color: var(--brand); font-size: 14px; }
.sig-brief span{ color: var(--ink); line-height: 1.7; }
.sig-brief small{ font-size: 12px; color: var(--muted); line-height: 1.6; }

/* —— 前沿：编号规则 —— */
.sig-rules{ counter-reset: sr; list-style: none; margin: 14px 0 0; padding: 0; }
.sig-rules li{ position: relative; padding-left: 36px; margin: 16px 0; font-size: 14px; line-height: 1.75; color: var(--ink); }
.sig-rules li b{ display: block; font-weight: 800; color: var(--brand); margin-bottom: 2px; }
.sig-rules li small{ display: block; font-size: 12px; color: var(--muted); }
.sig-rules li::before{
  counter-increment: sr; content: counter(sr, decimal-leading-zero);
  position: absolute; left: 0; top: 2px; font-size: 12px; font-weight: 500;
  color: var(--blue); letter-spacing: .08em;
}

@media (max-width: 760px){
  .sig-chips, .sig-chips.cols2{ grid-template-columns: 1fr; }
  .sig-row{ grid-template-columns: minmax(0,1fr) auto; gap: 10px 12px; }
  .sig-name{ grid-column: 1; }
  .sig-stage{ grid-column: 2; text-align: right; }
  .sig-note{ grid-column: 1 / -1; }
  .sig-row .see{ grid-column: 1 / -1; }
  .sig-brief li{ grid-template-columns: 1fr; gap: 4px; }
}

/* —— 考研：决策问句卡（首屏） —— */
.sig-chip-q span{ display: block; }
.sig-chip-q .q{ display: block; font-size: 13px; font-weight: 800; color: var(--brand); line-height: 1.5; }
.sig-chip-q .a{ display: block; margin-top: 3px; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* —— 考研：三阶段横排 —— */
.sig-steps{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 18px; }
.sig-step{ padding: 18px 18px 20px; background: var(--surface); border: 1px solid var(--hairline); border-radius: 14px; }
.sig-step .m{ margin: 0; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); font-variant-numeric: tabular-nums; }
.sig-step h3{ margin: 8px 0 6px; font-size: 17px; font-weight: 800; color: var(--brand); }
.sig-step p{ margin: 0; font-size: 13px; line-height: 1.75; color: var(--muted); }
@media (max-width: 760px){ .sig-steps{ grid-template-columns: 1fr; } }

/* —— 页尾：三段去路（替代四判断 + FAQ） —— */
.sig-next{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.sig-next a{
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 15px 16px; background: var(--tint); border-radius: var(--radius-xs);
  font-size: 13px; font-weight: 500; color: var(--brand); text-decoration: none;
  transition: background-color var(--hover-t) var(--hover-ease);
}
.sig-next a:hover, .sig-next a:focus-visible{ background: var(--tint-blue); text-decoration: none; }
.sig-next span{ font-size: 12px; color: var(--muted); font-weight: 400; }
@media (max-width: 760px){ .sig-next{ grid-template-columns: 1fr; } }

/* ============================================================
   v7.2（2026-10-21）B2–B4 六页签名组件
   考试＝分类矩阵 · 继教＝年度清单+季度环 · 工作＝岗位卡
   实习＝轮转表 · 学习＝左树右文 · 社区＝问题墙
   仍然只放组件：谁用谁加类，不自动作用于任何页面。
   ============================================================ */

/* —— 考试 ①：首屏三段速查（替代插图） —— */
.exam-quick{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 24px; }
.exam-quick a{
  display: block; padding: 15px 16px 16px; background: var(--surface);
  border: 1px solid var(--hairline); border-radius: var(--radius-xs);
  text-decoration: none; transition: border-color var(--hover-t) var(--hover-ease), box-shadow var(--hover-t) var(--hover-ease);
}
.exam-quick a:hover, .exam-quick a:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.28); box-shadow: 0 6px 18px rgba(10,37,64,.06); }
.exam-quick .k{ display: block; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); }
.exam-quick b{ display: block; margin: 6px 0 4px; font-size: 15px; font-weight: 800; color: var(--brand); }
.exam-quick span{ display: block; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* —— 考试 ②：分类矩阵（表格皮肤，行首为考试类别） —— */
.exam-matrix{ margin-top: 18px; }
.exam-matrix table{
  width: 100%; border-collapse: collapse; font-size: 13px;
  background: var(--surface); border: 1px solid var(--hairline); border-radius: 14px; overflow: hidden;
}
.exam-matrix thead th{
  background: var(--brand); color: #fff; font-weight: 500; font-size: 12px;
  letter-spacing: .04em; text-align: left; padding: 11px 14px; border: 0;
}
.exam-matrix tbody th{
  width: 200px; text-align: left; padding: 14px; vertical-align: top;
  font-weight: 800; color: var(--brand); font-size: 13px;
  background: var(--tint); border-top: 1px solid var(--hairline);
}
.exam-matrix tbody td{ padding: 14px; vertical-align: top; line-height: 1.75; color: var(--ink); border-top: 1px solid var(--hairline); }
.exam-matrix tbody tr:hover td, .exam-matrix tbody tr:hover th{ background: var(--tint-blue); }
.exam-matrix thead th:first-child{ background: var(--brand); color: #fff; }
.exam-matrix .muted-s{ display: block; margin-top: 3px; font-size: 12px; font-weight: 400; color: var(--muted); }

/* —— 考试 ③：四科目矩阵（4 列等宽） —— */
.exam-cols{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.exam-col{ padding: 14px 15px 16px; background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-xs); }
.exam-col .n{ display: block; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); font-variant-numeric: tabular-nums; }
.exam-col b{ display: block; margin: 5px 0 5px; font-size: 14px; font-weight: 800; color: var(--brand); }
.exam-col span{ display: block; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* —— 继教 ①：首屏年度环（四个季度刻度，当前季度高亮） —— */
.ring-plan{ display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 22px; align-items: center; margin-top: 24px; padding: 18px 20px; background: var(--surface); border: 1px solid var(--hairline); border-radius: 14px; }
.ring-plan .ring{ position: relative; width: 112px; height: 112px; }
.ring-plan .ring svg{ display: block; width: 112px; height: 112px; }
.ring-plan .ring b{ position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 19px; font-weight: 800; color: var(--brand); letter-spacing: -.02em; }
.ring-plan .ring small{ font-size: 12px; font-weight: 400; color: var(--muted); letter-spacing: .04em; margin-top: 2px; }
.ring-plan .rp-t{ margin: 0 0 8px; font-size: 14px; font-weight: 800; color: var(--brand); }
.ring-plan ul{ list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.ring-plan li{ position: relative; padding-left: 15px; font-size: 12px; line-height: 1.7; color: var(--ink); }
.ring-plan li::before{ content: ""; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--blue); }
.ring-plan li.now::before{ background: var(--coral, #FF6B4A); }
.ring-plan .rp-n{ margin: 8px 0 0; font-size: 12px; color: var(--muted); }

/* —— 继教 ②：勾选清单（学什么 / 为什么学） —— */
.yp-list{ list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 0; }
.yp-list li{ display: grid; grid-template-columns: 20px 132px minmax(0,1fr); gap: 12px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid var(--hairline); }
.yp-list .box{ width: 14px; height: 14px; border: 1.5px solid #C8D2E0; border-radius: 4px; align-self: center; }
.yp-list b{ font-size: 14px; font-weight: 800; color: var(--brand); }
.yp-list span.t{ font-size: 13px; line-height: 1.75; color: var(--ink); }
.yp-list a.see{ font-size: 12px; color: var(--link); text-decoration: none; white-space: nowrap; }
.yp-list a.see:hover{ text-decoration: underline; }

/* —— 继教 ③：季度节奏（Q1–Q4 横排） —— */
.yp-quarts{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.yp-q{ padding: 13px 14px 15px; background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-xs); }
.yp-q .q{ display: block; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); }
.yp-q b{ display: block; margin: 5px 0 4px; font-size: 13px; font-weight: 800; color: var(--brand); }
.yp-q span{ display: block; font-size: 12px; line-height: 1.7; color: var(--muted); }
.yp-q.now{ border-color: rgba(6,104,225,.35); background: var(--tint-blue); }
.yp-rules{ margin: 18px 0 0; padding: 14px 16px; background: var(--tint); border-radius: var(--radius-xs); list-style: none; display: grid; gap: 6px; }
.yp-rules li{ font-size: 12px; line-height: 1.7; color: var(--ink); }
.yp-rules b{ color: var(--brand); font-weight: 500; }

/* —— 工作 ①：首屏方向选择器 —— */
.role-pick{ display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 8px; margin-top: 24px; }
.role-pick a{
  display: block; padding: 12px 13px 13px; background: var(--surface); border: 1px solid var(--hairline);
  border-radius: 11px; text-decoration: none; transition: border-color var(--hover-t) var(--hover-ease), background-color var(--hover-t) var(--hover-ease);
}
.role-pick a:hover, .role-pick a:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.3); background: var(--tint-blue); }
.role-pick b{ display: block; font-size: 13px; font-weight: 800; color: var(--brand); }
.role-pick span{ display: block; margin-top: 3px; font-size: 12px; color: var(--muted); line-height: 1.55; }

/* —— 工作 ②：岗位卡矩阵（保留 .entry[data-tag] 供筛选脚本使用） —— */
.role-cards{ display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.role-cards .entry{
  display: block; margin: 0; padding: 14px 16px 15px; background: var(--surface);
  border: 1px solid var(--hairline); border-radius: var(--radius-xs); transition: border-color var(--hover-t) var(--hover-ease);
}
.role-cards .entry:hover{ border-color: rgba(6,104,225,.26); }
.role-cards .entry .dt{ display: none; }
.role-cards .entry .et{ display: block; }
.role-cards .entry .et b{ display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 800; color: var(--brand); }
.role-cards .entry .et span{ display: block; margin-top: 5px; font-size: 12px; line-height: 1.7; color: var(--muted); }
.role-cards .entry .rc-tag{ flex: 0 0 auto; font-size: 12px; font-weight: 500; color: #0B4FBF; background: var(--tint-blue); border-radius: 4px; padding: 1px 6px; }

/* —— 实习 ①：首屏轮转胶囊 —— */
.week-pills{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.week-pills a{
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px;
  background: var(--surface); border: 1px solid var(--hairline); border-radius: 999px;
  font-size: 12px; color: var(--brand); text-decoration: none; font-weight: 500;
}
.week-pills a:hover, .week-pills a:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.3); background: var(--tint-blue); }
.week-pills i{ font-style: normal; font-size: 12px; color: var(--blue); font-variant-numeric: tabular-nums; letter-spacing: .08em; }

/* —— 实习 ②：轮转表（左列轮转序号，右侧任务清单） —— */
.week-sheet{ margin-top: 18px; border-top: 1px solid var(--hairline); }
.ws-row{ display: grid; grid-template-columns: 108px minmax(0,1fr); gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--hairline); }
.ws-w{ position: sticky; top: 24px; align-self: start; }
.ws-w b{ display: block; font-size: 12px; font-weight: 800; color: var(--brand); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.ws-w span{ display: block; margin-top: 4px; font-size: 12px; color: var(--muted); }
.ws-body h3{ margin: 0 0 5px; font-size: 16px; font-weight: 800; color: var(--brand); letter-spacing: -.01em; }
.ws-body > p{ margin: 0 0 10px; font-size: 13px; line-height: 1.75; color: var(--muted); }
.ws-body ul{ list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ws-body li{ position: relative; padding-left: 22px; font-size: 13px; line-height: 1.7; color: var(--ink); }
.ws-body li::before{
  content: ""; position: absolute; left: 0; top: 5px; width: 11px; height: 11px;
  border: 1.5px solid #C8D2E0; border-radius: 3px;
}

/* —— 学习 ①：首屏四篇进度带 —— */
.ob{ padding: 13px 14px 14px; background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-xs); text-decoration: none; display: block; }
.ob:hover, .ob:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.28); }
.ob b{ display: block; font-size: 13px; font-weight: 800; color: var(--brand); }
.ob .bar{ display: block; height: 5px; margin: 9px 0 6px; border-radius: 3px; background: #EDF0F5; overflow: hidden; }
.ob .bar i{ display: block; height: 100%; background: var(--blue); border-radius: 3px; }
.ob .bar i.w26{ width: 26%; } .ob .bar i.w25{ width: 25%; } .ob .bar i.w22{ width: 22%; } .ob .bar i.w23{ width: 23%; }
.ob span{ display: block; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }

/* —— 学习 ②：左树右文（左栏常驻，自身可滚） —— */
[data-toc="map"] .om-h{ display: block; font-size: 12px; font-weight: 500; letter-spacing: .12em; color: var(--muted); margin: 14px 0 6px; }
[data-toc="map"] .om-h:first-child{ margin-top: 0; }
[data-toc="map"] a{ display: block; padding: 4px 0; font-size: 12px; line-height: 1.55; color: var(--ink); text-decoration: none; }
[data-toc="map"] a:hover{ color: var(--link); text-decoration: none; }
[data-toc="map"] a .n{ display: inline-block; min-width: 26px; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
[data-toc="map"] a.on{ color: var(--blue); font-weight: 500; }

/* —— 社区 ①：首屏提问框 —— */
.ask-box{ display: flex; align-items: center; gap: 10px; margin-top: 24px; padding: 9px 10px 9px 16px; background: var(--surface); border: 1px solid rgba(10,37,64,.18); border-radius: 999px; }
.ask-box .ph{ flex: 1 1 auto; font-size: 13px; color: var(--muted); }
.ask-box a{ flex: 0 0 auto; display: inline-flex; align-items: center; height: 34px; padding: 0 16px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 13px; font-weight: 500; text-decoration: none; }
.ask-box a:hover{ text-decoration: none; opacity: .92; }
.ask-note{ margin: 8px 0 0 4px; font-size: 12px; color: var(--muted); }

/* —— 社区 ②：话题砖 —— */
.qwall-topics{ display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.qwall-topics a{ display: block; padding: 14px 15px 16px; background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-xs); text-decoration: none; }
.qwall-topics a:hover, .qwall-topics a:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.28); background: var(--tint-blue); }
.qwall-topics b{ display: block; font-size: 13px; font-weight: 800; color: var(--brand); }
.qwall-topics span{ display: block; margin-top: 4px; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* —— 社区 ③：问题墙卡片（问题 + 标签 + 已答） —— */
.qwall{ display: grid; gap: 12px; margin-top: 16px; }
.qcard{ padding: 16px 18px 17px; background: var(--surface); border: 1px solid var(--hairline); border-radius: 14px; }
.qcard-h{ display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.qcard-h .idx{ font-size: 12px; font-weight: 500; color: var(--blue); font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.qcard-h .tag{ font-size: 12px; }
.qcard-q{ margin: 0 0 10px; font-size: 15px; font-weight: 800; line-height: 1.55; color: var(--brand); letter-spacing: -.01em; }
.qcard-a{ position: relative; margin: 0; padding: 12px 14px 12px 15px; background: var(--tint); border-radius: 10px; font-size: 12px; line-height: 1.75; color: var(--ink); }
.qcard-a .lb{ display: block; margin-bottom: 4px; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--muted); }
.qcard-f{ display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; }
.qcard-f small{ font-size: 12px; color: var(--muted); }

/* —— 社区 ④：参与三步（横排） —— */
.qflow{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.qflow .qf{ padding: 15px 16px 17px; background: var(--tint); border-radius: var(--radius-xs); }
.qflow .qf .s{ display: block; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); }
.qflow .qf b{ display: block; margin: 5px 0 4px; font-size: 14px; font-weight: 800; color: var(--brand); }
.qflow .qf p{ margin: 0; font-size: 12px; line-height: 1.7; color: var(--ink); }

/* —— 社区 ⑤：提问四条（页尾清单） —— */
.qcheck{ display: grid; gap: 0; margin-top: 12px; border-top: 1px solid var(--hairline); }
.qcheck li{ display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--hairline); list-style: none; }
.qcheck .no{ font-size: 12px; font-weight: 500; color: var(--blue); font-variant-numeric: tabular-nums; padding-top: 2px; }
.qcheck b{ display: block; font-size: 13px; font-weight: 800; color: var(--brand); }
.qcheck span{ display: block; margin-top: 2px; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* 页尾通用：小节标题 + 一句说明 */
.tail-note{ margin: 6px 0 0; font-size: 13px; line-height: 1.75; color: var(--muted); }

/* —— 继教补：清单序号列（无勾选框时） —— */
.yp-list .no{ font-size: 12px; font-weight: 500; color: var(--blue); font-variant-numeric: tabular-nums; letter-spacing: .08em; align-self: start; padding-top: 3px; }
.yp-quarts.c3{ grid-template-columns: repeat(3, minmax(0,1fr)); }

/* —— 工作页尾：投递检查（2×N 检查卡） —— */
.check2{ display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 14px; }
.check2 li{ list-style: none; padding: 14px 16px 15px; background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-xs); }
.check2 .no{ display: block; font-size: 12px; font-weight: 500; letter-spacing: .08em; color: var(--blue); font-variant-numeric: tabular-nums; }
.check2 b{ display: block; margin: 5px 0 4px; font-size: 14px; font-weight: 800; color: var(--brand); }
.check2 span.d{ display: block; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* —— 实习页尾：出科清单（单列勾选） —— */
.ticklist{ list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--hairline); }
.ticklist li{ position: relative; padding: 13px 0 13px 26px; border-bottom: 1px solid var(--hairline); }
.ticklist li::before{ content: ""; position: absolute; left: 0; top: 17px; width: 12px; height: 12px; border: 1.5px solid #C8D2E0; border-radius: 3px; }
.ticklist b{ display: block; font-size: 13px; font-weight: 800; color: var(--brand); }
.ticklist span{ display: block; margin-top: 2px; font-size: 12px; line-height: 1.7; color: var(--muted); }

/* —— 学习页尾：三选一（适合谁 + 从哪看） —— */
.pick3{ display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.pick3 a{ display: block; padding: 16px 17px 18px; background: var(--surface); border: 1px solid var(--hairline); border-radius: 14px; text-decoration: none; transition: border-color var(--hover-t) var(--hover-ease); }
.pick3 a:hover, .pick3 a:focus-visible{ text-decoration: none; border-color: rgba(6,104,225,.3); }
.pick3 b{ display: block; font-size: 15px; font-weight: 800; color: var(--brand); }
.pick3 em{ display: block; margin: 5px 0 0; font-style: normal; font-size: 12px; color: var(--blue); letter-spacing: .04em; }
.pick3 span{ display: block; margin-top: 7px; font-size: 12px; line-height: 1.7; color: var(--muted); }
@media (max-width: 900px){ .check2{ grid-template-columns: 1fr; } }
@media (max-width: 760px){ .pick3{ grid-template-columns: 1fr; } }

/* —— 八板块页：内容变薄后收一节间距（88 → 64），其它页保持原节奏 —— */
:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .sec-block{ margin-bottom: 64px; }
@media (max-width: 760px){
  :is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .sec-block{ margin-bottom: 44px; }
}

/* —— 学习页：三条路径表首列不被压成竖排 —— */

/* —— 工作首屏：方向卡给足呼吸 —— */
.role-pick a{ padding: 13px 14px 15px; }
.role-pick b{ font-size: 14px; }

/* —— 移动端长节折叠（site.js 注入 .is-folded 与按钮；桌面不生效） —— */
@media (max-width: 760px){
  .sec-block.is-folded{ position: relative; max-height: 620px; overflow: hidden; }
  .sec-block.is-folded::after{
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 112px;
    background: linear-gradient(rgba(251, 252, 254, 0), var(--paper));
    pointer-events: none;
  }
  .sec-fold{
    display: block; width: 100%; margin: 0 0 40px; padding: 12px 14px;
    border: 1px dashed rgba(10, 37, 64, .22); border-radius: 10px;
    background: var(--surface); color: var(--link);
    font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
  }
  .sec-fold:hover{ border-color: rgba(6, 104, 225, .45); }
  .sec-fold:focus-visible{ outline: 3px solid var(--blue); outline-offset: 2px; }
}
@media (min-width: 761px){ .sec-fold{ display: none; } }

@media (max-width: 1023px){
  .exam-cols, .yp-quarts, .qwall-topics{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .role-pick{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 760px){
  .exam-quick, .role-cards, .qflow{ grid-template-columns: 1fr; }
  .ring-plan{ grid-template-columns: 92px minmax(0,1fr); gap: 16px; padding: 16px; }
  .ring-plan .ring, .ring-plan .ring svg{ width: 84px; height: 84px; }
  .yp-list li{ grid-template-columns: 18px minmax(0,1fr); gap: 4px 10px; }
  .yp-list .box{ grid-row: span 2; }
  .yp-list b{ grid-column: 2; }
  .yp-list span.t, .yp-list a.see{ grid-column: 2; }
  .ws-row{ grid-template-columns: 1fr; gap: 8px; }
  .ws-w{ position: static; display: flex; align-items: baseline; gap: 8px; }
  .exam-matrix tbody th{ width: auto; }
}
@media (max-width: 560px){.exam-cols, .yp-quarts, .qwall-topics{ grid-template-columns: 1fr; }
  .role-pick{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* ============================================================
   v8.0（2026-10-21）排印与质感收口
   只吸收「布局原则」：字号阶梯收敛、行高统一、字距收紧、留白按 8pt、
   单一强调色、hover 只动一个属性、动效可关闭。
   不引入任何第三方字体、图标、图片、文案或渐变方案。
   ============================================================ */

/* —— 1. 排印：阶梯只落 8 档，标题可平衡换行，正文避免孤字 —— */
h1, h2, h3, .ch-hero h1, .sec-block > h2{
  text-wrap: balance;
}
.lead, .desc, .sec-block > .desc, .entry .et span, .qa-block .entry .et span{
  text-wrap: pretty;
}
/* 数字统一等宽，避免日期/计数跳动 */
.meta-line, .prog-line b, .sig-chip b, .qcard-h .idx, .check2 .no, .qcheck .no{
  font-variant-numeric: tabular-nums;
}

/* —— 2. 层级：正文灰阶只留两档（正文 ink / 次要 muted），弱化色仅用于元信息 —— */
body{ color: var(--ink); }
.desc, .sec-block > .desc, .entry .et span{ color: var(--muted); }
.tail-note, .ask-note, .note-13, .muted-s, figcaption{ color: var(--meta); }

/* —— 3. 交互：hover 只动一个属性，按下有回弹，焦点环统一 —— */
.btn, .copy-btn, .ch-link, .role-pick a, .sig-chip, .sig-next a, .pick3 a, .exam-quick a, .qwall-topics a, .ask-box a, .week-pills a, .role-cards .entry{
  transition:
    color var(--hover-t) var(--hover-ease),
    background-color var(--hover-t) var(--hover-ease),
    border-color var(--hover-t) var(--hover-ease),
    box-shadow var(--hover-t) var(--hover-ease),
    transform var(--hover-t) var(--hover-ease);
}.btn:active, .copy-btn:active, .role-pick a:active, .sig-chip:active, .sig-next a:active, .pick3 a:active, .exam-quick a:active, .qwall-topics a:active, .week-pills a:active{
  transform: translateY(1px) scale(.995);
}
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline: 3px solid var(--blue);
  outline-offset: 2px;
  border-radius: 4px;
}
::selection{ background: rgba(6, 104, 225, .16); color: var(--brand); }

/* —— 4. 留白：区块头与正文之间按 8pt 收口；行宽控制在 62–68 字 —— */
.sec-block > h2{ margin-bottom: 12px; }
.sec-block > .desc{ margin: 0 0 20px; max-width: 68ch; }
.ch-hero .lead, .home-hero .lead{ max-width: 62ch; }
.sec-block > .desc + .cardgrid, .sec-block > .desc + .table-scroll,
.sec-block > .desc + .exam-cols, .sec-block > .desc + .yp-list{ margin-top: 4px; }

/* —— 5. 卡片质感：边框更轻、hover 只提边框与 1px 上浮（不加投影堆积） —— */
.role-cards .entry:hover, .sig-chip:hover, .exam-quick a:hover, .qwall-topics a:hover, .pick3 a:hover{
  transform: translateY(-1px);
}

/* —— 6. 动效可关闭（系统设置优先） —— */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .role-cards .entry:hover, .sig-chip:hover, .exam-quick a:hover,
  .qwall-topics a:hover, .outline-bars .ob:hover, .pick3 a:hover{ transform: none; }
}

/* —— 7. 首页首屏分层：CTA 收为两枚，分流与元信息合并成一条定位带 —— */
body[data-page="index"] .home-hero .lead{ margin: 18px 0 0; }
body[data-page="index"] .home-hero .btns{ margin-top: 26px; }
@media (max-width: 760px){
}

/* —— 8. 中文标题不收紧字距（西文的 negative tracking 不适用于汉字） —— */
h1, .home-hero h1, .ch-hero h1{ letter-spacing: 0; }
h2, .sec-block > h2, .ms-h{ letter-spacing: -.01em; }

/* ================================================================
   v8.0（2026-10-21）：中英文切换
   1) 右上角胶囊语言开关（中文 / EN），中英两版共用同一组件
   2) 英文版导航单词比中文长，窄桌面（≤880）提前折叠成汉堡
   ================================================================ */
.lang-switch{
  flex: none; display: inline-flex; align-items: center; gap: 2px;
  padding: 3px; border: 1px solid var(--line); border-radius: 999px;
  background: #F2F5FA;
}
.lang-opt{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 28px; padding: 0 10px;
  border-radius: 999px; text-decoration: none; white-space: nowrap;
  font-size: 13px; font-weight: 600; letter-spacing: 0;
  color: var(--muted); transition: background-color .16s, color .16s;
}
.lang-opt:hover{ color: var(--ink); text-decoration: none; }
.lang-opt.on{ background: var(--surface); color: var(--brand); box-shadow: 0 1px 2px rgba(11, 26, 46, .10); }
.lang-opt:focus-visible{ outline: 2px solid var(--blue); outline-offset: 1px; }

/* 英文版：导航条目更长，940–1200 先收紧，939 以下折叠（与中文同一断点，见下方统一块） */
@media (min-width: 940px) and (max-width: 1200px){
  body[data-lang="en"] .site-header .nav-inner{ gap: 10px; }
  body[data-lang="en"] .site-header .site-nav a{ font-size: 13px; }
  body[data-lang="en"] .site-header .wrap.masthead{ gap: 12px; }
}
@media (max-width: 939px){
  body[data-lang="en"] .site-header .nav-inner{ display: none; }
  body[data-lang="en"] .site-header .nav-burger{ display: flex; }
  body[data-lang="en"] .site-header .wrap.masthead{ justify-content: space-between; gap: 10px; padding: 8px 14px; }
}
/* 折叠档（≤939）：品牌左，右侧依次为 语言 / 搜索 / 汉堡（中英同序） */
@media (max-width: 939px){
  .site-header .lang-switch{ order: 2; margin-left: auto; }
  .site-header .search-wrap{ order: 3; margin-left: 0; }
  .site-header .site-nav{ order: 4; }
  .lang-opt{ min-width: 36px; height: 30px; padding: 0 9px; font-size: 12px; }
}

/* 英文版排印：中文的 .04em 字距放到西文会显松，标题也需要收紧 */
body[data-lang="en"]{ letter-spacing: 0; }
body[data-lang="en"] .home-hero h1{
  font-size: clamp(30px, 3.4vw, 52px); letter-spacing: -.025em; line-height: 1.12;
}
body[data-lang="en"] .ch-hero h1{ letter-spacing: -.025em; }
body[data-lang="en"] h2, body[data-lang="en"] h3{ letter-spacing: -.015em; }
body[data-lang="en"] .brand-text strong{ letter-spacing: .06em; }
body[data-lang="en"] .slogan{ letter-spacing: -.005em; }
body[data-lang="en"] .board .bt{ letter-spacing: -.01em; }
body[data-lang="en"] .ch-body > nav.toc::before{ content: "On this page"; }

/* ================================================================
   v8.2（2026-10-21）：v7.0 诊断 12 项收口
   A 英文排印（标题宽度口径 / 行宽 / 行高）
   C 令牌回归（语言胶囊回 --tint、12px、200ms）
   D 顶栏余量
   说明：中文侧排印与骨架一律不动，本段只作用于 [data-lang="en"] 与语言胶囊
   ================================================================ */

/* —— C1. 语言胶囊回归令牌：底色用 --tint、字号 12、过渡回到 200ms —— */
.lang-switch{ background: var(--tint); }
.lang-opt{
  font-size: 12px;
  transition: background-color var(--hover-t) var(--hover-ease),
              color var(--hover-t) var(--hover-ease);
}
.lang-opt[aria-current="page"]{ cursor: default; }
.lang-opt[aria-current="page"]:hover{ color: var(--brand); }

/* —— A1. 英文首屏标题：中文 20ch 是「20 个汉字宽」，同一数值套到西文只剩一半 —— */
body[data-lang="en"] .home-hero h1{
  max-width: min(920px, 100%);
  font-size: clamp(30px, 4.5vw, 58px);
  line-height: 1.06;
  letter-spacing: -.028em;
}
body[data-lang="en"] .ch-hero h1{
  max-width: min(820px, 100%);
  font-size: clamp(30px, 4.2vw, 52px);
  line-height: 1.08;
}

/* —— A2. 英文行宽：段落实测 566px（约 76 字符），容器 720 是给表格与卡片用的，
   不动容器；只把导语从 62ch 收到 56ch，避免首段一行过长 —— */
body[data-lang="en"] .ch-hero .lead,
body[data-lang="en"] .home-hero .lead{ max-width: 56ch; }

/* —— A3. 英文行高：15px 字号保留，行高 1.75 → 1.62
   试过同时升到 16px（行高 26.25 → 25.92，理论上等距），实测字符变宽 6.7%，
   窄列（实习轮转表、继教清单）折行暴增，实习页 +218px，故只换行高不换字号。 —— */
body[data-lang="en"] .sec-block p,
body[data-lang="en"] .ch-body p,
body[data-lang="en"] .ch-body li,
body[data-lang="en"] .ch-body dd,
body[data-lang="en"] .desc,
body[data-lang="en"] .home-hero .lead,
body[data-lang="en"] .ch-hero .lead{ line-height: 1.62; }

/* —— A4. 英文行宽：720px 在 16px 下约 85 字符，超过西文 65–75 的舒适区，
   收到 680（约 72 字符）。CDP 实测 8 个英文页总高 −0.4%（不是变高，是折行更整齐）。 —— */
body[data-lang="en"] .ch-body p,
body[data-lang="en"] .sec-block p,
body[data-lang="en"] .desc{ max-width: 680px; }

/* —— D2b. 英文页脚语言切换：与页头同一组件，只补间距 —— */
.site-footer .lang-switch{ background: var(--surface); }
.site-footer .footer-bottom .lang-switch{ margin-left: auto; }

/* ================================================================
   v8.0（2026-10-21）：首页内联 <style> 外置到此（原仅 index / en-index 各一份，
   两者内容不一致 → 取中文版为超集合并）。外置后 CSP 不再需要 style-src 'unsafe-inline'。
   ================================================================ */
/* 首页专属组件（样式契约未覆盖，页内自包含）：宣传视频框 / 首页动效 */
.video-note{ margin-top:12px; text-align:center; color:var(--muted); font-size:13.5px; }
.update-band .tag{ flex:0 0 auto; transform:translateY(-1px); }
@media (max-width:640px){
}

/* ============================================================
v8.3（2026-10-21）· 页面元信息 + 适老化 + 弱网
背景：GEO 要求「谁说的、什么时候、依据什么」在**页面上看得见**，
      只写在 JSON-LD 里等于只给机器看。此段只加一个信息带，不改版式。
============================================================ */
/* —— G-4 可见元信息带（由 site/geo.py 注入，勿手写） —— */
.page-meta{
  padding: 22px 0 26px;
  margin-top: 8px;
  background: var(--tint);
  border-top: 1px solid rgba(10,37,64,.07);
}
.page-meta p{
  margin: 0;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--meta);
  letter-spacing: 0;
}
.page-meta .pm-k{
  display: inline-block;
  margin-right: 6px;
  color: var(--ink);
  font-weight: 600;
  font-size: 12.5px;
}
.page-meta time{ font-variant-numeric: tabular-nums; }
.page-meta .pm-dot{
  margin: 0 12px;
  color: #9AA7BD;
}
/* 英文：标签词更长，收紧两侧间距，避免窄屏折成三行 */
body[data-lang="en"] .page-meta .pm-dot{ margin: 0 9px; }
@media (max-width: 720px){
  .page-meta{ padding: 18px 0 22px; }
  .page-meta p{ font-size: 13px; line-height: 1.65; }
  .page-meta .pm-k{ display: block; margin: 0 0 2px; font-size: 12px; }
  .page-meta .pm-dot{ display: none; }
  .page-meta p > time,
  .page-meta p > .pm-k + time{ display: inline-block; }
}

/* —— 适老化一：系统「增强对比度」偏好 ——
   不换色相，只把三级文字压深、把分隔线做实。--meta 4.69 → 7.4。 */
@media (prefers-contrast: more){
  :root{
    --muted: #3D4C63;
    --meta: #3D4C63;
    --hairline: rgba(10,37,64,.22);
  }
  .page-meta{ background: #E9EFFB; border-top-color: rgba(10,37,64,.22); }
  .page-meta .pm-dot{ color: var(--muted); }
  a:focus-visible,
  button:focus-visible,
  summary:focus-visible,
  input:focus-visible{ outline-width: 4px !important; }
  .card, .tcard, .bcard, .qcard{ border-color: rgba(10,37,64,.22) !important; }
}

/* —— 适老化二：不依赖 hover 也能看出这是可点的 —— */
@media (hover: none){
  main a:not(.btn):not(.card):not(.tcard):not(.bcard):not(.qcard):not(.art-card){ text-decoration: underline; }
  .lang-opt, .sig-chip, .role-card, .week-pills a{ text-decoration: none; }
}

/* —— 适老化三：iOS 横竖屏切换时不要擅自放大正文 —— */
html{ -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

/* —— 弱网 / 省流：动效全部停掉，内容立即到位 ——
   与 prefers-reduced-motion 并存：那条管「晕动」，这条管「流量与算力」。 */
@media (prefers-reduced-data: reduce), (update: slow){
  *, *::before, *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal, .reveal.in{ opacity: 1 !important; transform: none !important; }
  .video-frame video{ display: none; }
  .video-frame::after{
    content: "当前网络较慢或已开启省流模式，宣传片已暂停加载";
    display: block; padding: 56px 20px; text-align: center;
    color: rgba(255,255,255,.82); font-size: 14px;
  }
}
/* 极窄屏（≤359px）：页脚与元信息带不再左右顶边 */
@media (max-width: 359px){
  .page-meta .wrap{ padding-left: 14px; padding-right: 14px; }
}

/* ============================================================
   吸顶页头（2026-10-25）
   页头本身透明；液态玻璃只做在「图标 + 标题」那枚胶囊上（见文件末尾）。
   ============================================================ */
.site-header{ position: sticky; top: 0; z-index: 70; }
/* 阅读进度条压在页头之上，不被遮住 */
.scroll-progress{ z-index: 80; }

/* ============================================================
   首页紧凑化（2026-10-25）：同一屏能多看见一节，总长度压 ~30%
   ============================================================ */
body[data-page="index"] .home-hero{ padding-top: 52px; padding-bottom: 30px; }
body[data-page="index"] .home-hero h1{ font-size: clamp(32px, 4.6vw, 56px); margin-bottom: 18px; }
body[data-page="index"] .home-hero .lead{ font-size: 16px; line-height: 1.7; }
body[data-page="index"] .btns{ margin-top: 22px; }
body[data-page="index"] .boards-wrap{ padding: 44px 0 30px; }
body[data-page="index"] .boards-wrap > .eyebrow{ margin-bottom: 14px; }
body[data-page="index"] .journey-h{ margin: 0 0 6px; }
body[data-page="index"] .boardgrid{ gap: 12px; margin-top: 18px; }
body[data-page="index"] .board{ padding: 14px 14px 16px; }
body[data-page="index"] .p4{ gap: 22px 44px; }
body[data-page="index"] .p4 > div::before{ margin-bottom: 12px; }
body[data-page="index"] .p4 > div h3{ margin-bottom: 6px; }
body[data-page="index"] .faq{ margin: 6px 0; }
/* 页脚整体收紧（全站） */
.site-footer{ margin-top: 40px; }
.footer-top{ padding: 24px 0 16px; }
@media (max-width: 760px){
  body[data-page="index"] .home-hero{ padding-top: 34px; padding-bottom: 22px; }
  body[data-page="index"] .boards-wrap{ padding: 32px 0 24px; }
  body[data-page="index"] .p4{ gap: 16px; }
  body[data-page="index"] .board{ padding: 12px 12px 14px; }
  body[data-page="index"] .home-hero h1{ font-size: clamp(30px, 8.4vw, 40px); }
}
/* 吸顶页头会盖住锚点标题：全站加滚动预留（2026-10-25） */
html{ scroll-padding-top: 92px; }
@media (max-width: 939px){ html{ scroll-padding-top: 74px; } }

/* 首页移动端：两个主按钮并排，省一行高度（2026-10-25） */
@media (max-width: 600px){
  body[data-page="index"] .btns{ display: flex; gap: 10px; }
  body[data-page="index"] .btns .btn{
    flex: 1 1 0; min-width: 0;
    padding-left: 8px; padding-right: 8px;
    font-size: 14px; text-align: center;
  }
}

/* 首页 FAQ 更紧凑：移动端每条约 90px → 60px（2026-10-25） */
body[data-page="index"] details.faq{ padding: 14px 16px; margin: 8px 0; }
body[data-page="index"] details.faq > summary{ font-size: 16px; }

/* ============================================================
   一体化胶囊导航（2026-10-25）
   图标 + 品牌名 + 10 项导航 + 搜索 + 语言切换 → 同一枚玻璃胶囊
   页头本身透明，只有这枚胶囊是玻璃；滚动时胶囊加深、投影变实。
   ============================================================ */
.site-header{
  position: sticky; top: 0; z-index: 70;
  height: auto;
  background: transparent;
  -webkit-backdrop-filter: none; backdrop-filter: none;
  border-bottom: 0; box-shadow: none;
}
.site-header.is-stuck{ background: transparent; box-shadow: none; border-bottom: 0; }
.site-header .wrap.masthead{ justify-content: center; padding: 10px 20px; }

.nav-capsule{
  position: relative;
  /* 2026-11-04 老板令：去掉胶囊背景（白底 / 毛玻璃 / 1px 描边 / 三层阴影 / 内高光），
     只保留「品牌左 · 导航居中 · 中英切换右」的三段式布局。
     选中态 .site-nav a.on 原样保留。 */
  display: grid;
  /* 品牌左 · 8 个板块整体居中 · 语言右（2026-11-04 老板令：居中设计） */
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  width: 100%;
  max-width: 100%;
  padding: 0;
}
.nav-capsule .brand{ justify-self: start; }
.nav-capsule .site-nav{ justify-self: center; }
.nav-capsule .lang-switch{ justify-self: end; }

/* —— 胶囊内：品牌 —— */
.nav-capsule .brand{ margin: 0; padding: 3px 10px 3px 3px; border-radius: 999px; }
.nav-capsule .brand::after{ display: none; }

/* —— 胶囊内：导航（横排圆角条目） —— */
.nav-capsule .site-nav{
  /* 全部 !important：旧版“吸顶玻璃导航”的定位/滤镜会残留成独立合成层，
     在胶囊内二次叠加出白色方块，必须按死 */
  position: static !important; z-index: auto !important;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  transform: none; filter: none; contain: none;
}
.nav-capsule .site-nav::after{ display: none; }
/* 8 个板块整体居中，项间固定间距（2026-11-04 老板令：居中设计） */
.nav-capsule .nav-inner{
  min-height: 0;
  display: flex; align-items: center; justify-content: center; gap: 26px;
}
.nav-capsule .nav-inner > *{ flex: 0 0 auto; text-align: center; }
.nav-capsule .nav-sub-title{ justify-content: center; position: relative; }
.nav-capsule .nav-sub-title::after{ position: absolute; right: 4px; margin: 0; }
/* 桌面端导航条不能有底色（白色实底只属于 ≤939 的抽屉） */
@media (min-width: 940px){
  .nav-capsule .nav-inner{
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0;
  }
}
.nav-capsule .site-nav a{
  line-height: 36px; padding: 0 14px;
  border-bottom: 0; border-radius: 999px;
  font-size: 14px; color: var(--muted);
}
/* 「发现」是 <button>，不会被上面的 a 规则命中，这里对齐同高同距（2026-11-04） */
.nav-capsule .nav-drop-btn{
  line-height: 36px; padding: 0 14px; border-radius: 999px;
  font-size: 14px; color: var(--muted);
}
.nav-capsule .nav-drop-btn:hover,
.nav-capsule .nav-drop-btn:focus-visible{
  background: rgba(10,37,64,.055); color: var(--ink);
}
/* 二级页（社区 / 关于 / 文章）时，顶级「发现」也要高亮，否则看不出所属栏目 */
.nav-capsule .nav-drop-btn.on{
  background: rgba(6,104,225,.10); color: var(--brand); font-weight: 500;
}
.nav-capsule .site-nav a:hover,
.nav-capsule .site-nav a:focus-visible{ color: var(--ink); }
.nav-capsule .site-nav a.on{ background: rgba(6,104,225,.10); color: var(--brand); font-weight: 500; }

/* —— 胶囊内：搜索与语言 —— */
.nav-capsule .search-btn{ width: 36px; height: 36px; }
.nav-capsule .lang-switch{ margin-left: 2px; }

/* —— 940–1200：10 项 + 搜索 + 语言仍须一行 —— */
@media (min-width: 940px) and (max-width: 1200px){
  .site-header .wrap.masthead{ padding: 10px 14px; }
  .nav-capsule{ gap: 2px; padding-right: 6px; }
  .nav-capsule .nav-inner{ gap: 0; }
  .nav-capsule .site-nav a{ padding: 0 7px; font-size: 13px; }
}

/* —— ≤939：胶囊撑满一行；品牌左，语言 + 搜索 + 汉堡右；抽屉从胶囊下缘展开 —— */
@media (max-width: 939px){
  .site-header .wrap.masthead{ padding: 8px 12px; }
  .nav-capsule{
    display: flex; width: 100%; justify-content: space-between;
    gap: 6px; padding: 5px 6px; border-radius: 20px;
  }
  .nav-capsule .brand{ padding: 2px 4px 2px 2px; }
  .nav-capsule .brand-mark{ width: 34px; height: 34px; }
  .nav-capsule .brand-text strong{ font-size: 17px; }
  .nav-capsule .search-wrap{ order: 2; }
  .nav-capsule .lang-switch{ order: 1; }
  .nav-capsule .site-nav{ order: 3; }
  .nav-capsule .search-btn{ width: 34px; height: 34px; }
  .nav-capsule .nav-inner{
    position: absolute; top: calc(100% + 8px); left: 0; right: 0;
    display: none;
    flex-direction: column; align-items: stretch; gap: 2px;
    padding: 6px; border-radius: var(--radius);
    /* 实底：父级 .nav-capsule 已有 backdrop-filter，子级再叠一层会被浏览器拍平、变半透明 */
    background: var(--paper-2);
    border: 1px solid rgba(10,37,64,.06);
    box-shadow: 0 20px 44px -24px rgba(10,37,64,.55), 0 2px 10px -6px rgba(10,37,64,.15);
  }
  .nav-capsule .nav-inner a{
    line-height: 44px; padding: 0 14px;
    border-bottom: 0; border-radius: var(--radius-xs);
  }
  .nav-capsule .nav-inner a:hover{ background: transparent; }
  .nav-capsule .nav-inner a.on{ background: rgba(6,104,225,.10); }
  /* 移动端不做等宽均分：纵向列表，左对齐，箭头靠右（2026-11-04） */
  .nav-capsule .nav-inner > *{ flex: 0 0 auto; text-align: left; }
  .nav-capsule .nav-sub-title{ justify-content: space-between; }
  .nav-capsule .nav-sub-title::after{ position: static; right: auto; margin-left: auto; }
}

/* 英文在 940–1040 放不下 10 项 + 搜索 + 语言：只在这个区间把英文条目再压一档（中文不受影响） */
@media (min-width: 940px) and (max-width: 1040px){
  body[data-lang="en"] .nav-capsule .site-nav a{ font-size: 12px; padding: 0 4px; }
  body[data-lang="en"] .nav-capsule .nav-inner{ gap: 0; }
  body[data-lang="en"] .nav-capsule .brand{ padding-right: 6px; }
  body[data-lang="en"] .nav-capsule .brand-text strong{ letter-spacing: .02em; }
  body[data-lang="en"] .nav-capsule .lang-opt{ min-width: 32px; padding: 0 6px; font-size: 11px; }
}

/* 页头透明后，滚动时给一条极淡的上实下虚底色，避免页面图片/按钮从胶囊左右两侧穿过时打架。
   它不是玻璃卡：无模糊、无描边、无投影，只在顶部渐隐。（2026-10-25） */
.site-header::before{
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 100%;
  background: linear-gradient(180deg,
    rgba(251,252,254,.93) 0%, rgba(251,252,254,.80) 58%, rgba(251,252,254,0) 100%);
  opacity: 0; transition: opacity .3s ease; pointer-events: none;
}
.site-header.is-stuck::before{ opacity: 1; }
.site-header .wrap.masthead{ position: relative; z-index: 1; }

/* ============================================================
   板块页「下一步」区块（2026-10-25）
   方案 v2.0 §3.2/§9：每页固定出口 + 这一步在小程序里怎么做。
   ============================================================ */
.next-step{
  margin-top: 6px; padding: 26px 24px 22px;
  border: 1px solid var(--line); border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(6,104,225,.035), rgba(6,104,225,0) 72%);
}
.next-step > h2:first-child{ margin-top: 0; }
.mp-guide{
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  margin-top: 18px; padding: 16px 18px;
  border: 1px solid var(--line); border-radius: 14px; background: var(--surface);
}
.mp-guide p{ margin: 0; max-width: 62ch; font-size: 14px; line-height: 1.7; color: var(--muted); }
.mp-guide p strong{ color: var(--ink); }
.mp-guide .btn{ flex: none; }
@media (max-width: 720px){
  .next-step{ padding: 20px 15px 18px; }
  .mp-guide{ flex-direction: column; align-items: stretch; gap: 12px; }
  .mp-guide .btn{ width: 100%; text-align: center; }
}

/* ============================================================
   多角色评审修正确（2026-10-25）
   来源：设计/前端/后端/内容四角色协商结论，只改会出错的，不动风格偏好。
   ============================================================ */

/* 1) 吸顶目录与锚点留白跟随页头真实高度。
   改页头之前：.toc top 写死 52px、scroll-margin 64px，而页头 88px（≥940）/64px（≤939），
   结果整条目录被页头玻璃压住，锚点跳转标题被盖掉约 24px。 */
:root{ --header-h: 72px; }   /* 实测：≤939 页头渲染高 72px（min-height 64 + 胶囊内边距） */
@media (min-width: 940px){ :root{ --header-h: 88px; } }.toc{ top: var(--header-h); }
section[id], h2[id], h3[id], details[id]{ scroll-margin-top: calc(var(--header-h) + 10px); }
html{ scroll-padding-top: calc(var(--header-h) + 12px); }

/* 2) 卡片网格：940–1024 保两列。原来在此区间直接塌成一列，正文行长过宽（85–100 字）。 */
.cardgrid.g2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 761px) and (max-width: 1024px){
  .cardgrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cardgrid.g3{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 3) sec-block 内的提示框跟随阅读宽度（原来铺满整幅，单行 100+ 字） */
.sec-block .notice{ max-width: var(--readw); }

/* 4) 移动端：右下角悬浮小程序码不压住「下一步」的主按钮 */
@media (max-width: 720px){
  .next-step{ padding-bottom: 84px; }
}

/* 5) 令牌对齐 */
.mp-guide{ border-radius: var(--radius-sm); background: var(--surface); }

/* 6) 左栏竖排目录同样跟随页头高度。
   原来 [data-page="study"] .ch-body > .toc 写死 top:24px、max-height:calc(100vh - 116px)，
   特异性高于上面的通用规则，所以左栏目录滚动时仍会被页头压住。 */
body[data-page] .ch-body > .toc,
body[data-page] .ch-body > .toc[data-toc="map"]{
  top: calc(var(--header-h) + 16px) !important;
  max-height: calc(100vh - var(--header-h) - 40px) !important;
}

/* ============================================================
   首页排版 v9（2026-10-25·老板令）
   —— 本块是首页视觉的**唯一真源**。它位于文件末尾，按层叠顺序覆盖前面
      所有散落的 body[data-page="index"] 规则（那是历次小修叠加的产物，
      保留作历史，但**不要再在上面继续加首页规则**，改了不生效会浪费排查。
   —— 本次只动排印、栅格、间距、折叠形态；文案与功能一个没改。
   —— 尺度：8pt 垂直节奏（56/72/88）；层级：kicker 12 → h2 32 → 卡题 20
      → 导语 17 → 卡描述 13.5 → 图注 12.5。
   ============================================================ */

body[data-page="index"]{
  /* 2026-10-26：原先这里单独补了一次 --muted: #4C5C73（因为 :root 里是 var(--muted) 自引用）。
     :root 已改为真值、全站生效，此处重复定义已删，避免两处真源。
     高对比偏好仍由紧接着的 prefers-contrast 块覆盖。 */
  --ix-line: #DCE3EE;          /* 卡片描边：比 --line 略实，白底上才看得出边界 */
  --ix-card-bg: #FFFFFF;
}
@media (prefers-contrast: more){
  body[data-page="index"]{ --muted: #3D4C63; }
}

/* ---------- 1. 首屏：左文右图 ---------- */
body[data-page="index"] .home-hero{
  padding: 64px calc(50vw - 50%) 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .98fr);
  column-gap: 64px;
  align-items: center;
}
body[data-page="index"] .hero-copy{ min-width: 0; }
body[data-page="index"] .home-hero h1{
  font-size: clamp(34px, 4.15vw, 62px);
  line-height: 1.14;      /* 中文两行不能贴在一起，1.08 太挤 */
  letter-spacing: 0;      /* 中文不需要负字距，收紧反而更拥塞 */
  font-weight: 800;
  color: var(--ink);
  max-width: none;
  margin: 0 0 18px;       /* 2026-10-26：下面接副标（一句说明），不再是整段导语 */
}
/* 首屏副标（2026-10-26 新增）：一句说清「这是什么」，把合规表述移到首屏下方 */
body[data-page="index"] .home-hero .slogan{
  font-size: clamp(17px, 1.7vw, 22px);
  font-weight: 500;
  line-height: 1.5;
  color: var(--brand);
  letter-spacing: .01em;
  max-width: 26em;
  margin: 0;
}
/* 首屏下方的小字说明：原首屏导语下沉到此，合规表述一字未删 */
body[data-page="index"] .home-note{
  max-width: 58ch;
  margin: 42px auto 56px;
  font-size: 13px;
  line-height: 1.9;
  color: var(--muted);
  text-align: center;
  letter-spacing: .01em;
}
@media (max-width: 760px){
  body[data-page="index"] .home-note{ margin: 22px auto 34px; font-size: 12.5px; line-height: 1.85; text-align: left; }
}
body[data-page="index"] .home-hero .btns{ margin-top: 32px; gap: 12px; }
body[data-page="index"] .home-hero .btns .btn{ padding: 14px 28px; font-size: 15px; }
body[data-page="index"] .home-hero .btn.ghost{
  background: transparent;
  border-color: rgba(10, 37, 64, .18);
}
body[data-page="index"] .home-hero .btn.ghost:hover,
body[data-page="index"] .home-hero .btn.ghost:focus-visible{
  background: var(--ix-card-bg);
  border-color: rgba(10, 37, 64, .30);
}
body[data-page="index"] .home-hero .cta-sub{
  margin: 20px 0 0;
  font-size: 14px;
  color: var(--meta);
}
body[data-page="index"] .home-hero .cta-sub a{
  color: var(--link);
  border-bottom: 1px solid rgba(11, 79, 191, .26);
  padding-bottom: 1px;
}
body[data-page="index"] .home-hero .cta-sub a:hover{ border-bottom-color: var(--link); }

/* 主视觉：与文字同高对齐，16:9 完整呈现（原来 21:9 + cover 会上下裁掉约 25% 画面，
   插画里那条「路径」和节点被切过，叙事就断了） */
body[data-page="index"] .home-hero .hero-fig{
  margin: 0;
  max-width: none;
  min-width: 0;
  align-self: center;
}
body[data-page="index"] .home-hero .hero-fig img{
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  box-shadow: 0 12px 32px rgba(10, 37, 64, .08), 0 0 0 1px rgba(10, 37, 64, .06);
}
body[data-page="index"] .home-hero .hero-fig figcaption{
  margin-top: 14px;
  font-size: 12.5px;
  line-height: 1.65;
  color: var(--meta);
  max-width: none;
}

/* ---------- 2. 区块通用：编号标签 + 标题 + 说明 ---------- */
body[data-page="index"] main > .wrap > section + section{ margin-top: 0; padding-top: 0; }
body[data-page="index"] .boards-wrap{ padding: 88px 0 0; }
body[data-page="index"] .boards-wrap + .boards-wrap{ padding-top: 88px; }
body[data-page="index"] .boards-wrap:last-of-type{ padding-bottom: 28px; }
body[data-page="index"] .boards-wrap > .eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: none;
  color: var(--meta);
  margin: 0 0 12px;
}
body[data-page="index"] .boards-wrap > .eyebrow::before{
  content: "";
  width: 18px;
  height: 2px;
  border-radius: 1px;
  background: var(--blue);
}
body[data-page="index"] .journey-h,
body[data-page="index"] .sec-h{
  font-size: clamp(25px, 2.7vw, 34px);
  line-height: 1.3;
  letter-spacing: -.01em;
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 12px;
}
body[data-page="index"] .sec-h{ margin-bottom: 28px; }
body[data-page="index"] .journey-note{
  font-size: 15px;
  line-height: 1.75;
  color: var(--meta);
  max-width: 560px;   /* 中文的 ch 只有半字宽，用 ch 会把说明压成两行 */
  margin: 0 0 36px;
}

/* ---------- 3. 八板块：4×2 栅格 + 编辑式编号 ---------- */
body[data-page="index"] .boardgrid{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: 1fr;   /* 两行等高：原来第一行有描述两行的卡，第二行明显矮一截 */
  gap: 20px;
  margin-top: 0;
}
body[data-page="index"] .board{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 22px 24px;
  border: 1px solid var(--ix-line);
  border-radius: var(--radius-sm);
  background: var(--ix-card-bg);
  box-shadow: 0 1px 2px rgba(10, 37, 64, .025);
}
body[data-page="index"] .board:hover,
body[data-page="index"] .board:focus-visible{
  border-color: var(--acc-soft);
  box-shadow: 0 10px 26px rgba(10, 37, 64, .07);
  transform: translateY(-3px);
}
body[data-page="index"] .board .bnum{
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--acc);
  font-variant-numeric: tabular-nums;
}
body[data-page="index"] .board .bt{
  font-size: 21px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.3;
  color: var(--ink);
  margin-top: 4px;
}
body[data-page="index"] .board .bd{
  font-size: 14px;
  line-height: 1.75;
  color: var(--meta);
}
/* 八个板块的区分度只落在一处——编号色。卡片本体保持完全同构，
   整排看过去是「同一套编号系统」，不是八种风格。 */
body[data-page="index"] .board:nth-child(1){ --acc: #0B4FBF; --acc-soft: rgba(11, 79, 191, .32); }
body[data-page="index"] .board:nth-child(2){ --acc: #6A3C9E; --acc-soft: rgba(106, 60, 158, .32); }
body[data-page="index"] .board:nth-child(3){ --acc: #10636B; --acc-soft: rgba(16, 99, 107, .32); }
body[data-page="index"] .board:nth-child(4){ --acc: #9E5020; --acc-soft: rgba(158, 80, 32, .32); }
body[data-page="index"] .board:nth-child(5){ --acc: #23654A; --acc-soft: rgba(35, 101, 74, .32); }
body[data-page="index"] .board:nth-child(6){ --acc: #8A3A5E; --acc-soft: rgba(138, 58, 94, .32); }
body[data-page="index"] .board:nth-child(7){ --acc: #2C5673; --acc-soft: rgba(44, 86, 115, .32); }
body[data-page="index"] .board:nth-child(8){ --acc: #6F5518; --acc-soft: rgba(111, 85, 24, .32); }

/* ---------- 4. 常见问题：白卡 + 圆形折叠钮 ---------- */
body[data-page="index"] details.faq{
  padding: 18px 22px 20px;
  margin: 0 0 12px;
  border: 1px solid var(--ix-line);
  border-radius: var(--radius-sm);
  background: var(--ix-card-bg);
  box-shadow: none;
}
body[data-page="index"] details.faq:last-of-type{ margin-bottom: 0; }
body[data-page="index"] details.faq:hover{ background: #FCFDFF; border-color: rgba(10, 37, 64, .16); }
body[data-page="index"] details.faq[open]{
  background: #FBFDFF;
  border-color: rgba(6, 104, 225, .30);
}
body[data-page="index"] details.faq > summary{
  position: relative;
  padding: 2px 44px 2px 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.6;
  color: var(--ink);
}
body[data-page="index"] details.faq[open] > summary{ color: var(--blue); }
body[data-page="index"] details.faq > summary::before{
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: var(--surface-2);
  transition: border-color var(--hover-t) var(--hover-ease),
              background-color var(--hover-t) var(--hover-ease);
}
body[data-page="index"] details.faq > summary::after{
  content: "";
  position: absolute;
  right: 10.5px;
  top: calc(50% - 3px);
  width: 6px;
  height: 6px;
  border-right: 1.6px solid var(--meta);
  border-bottom: 1.6px solid var(--meta);
  transform: rotate(45deg);
  transition: transform var(--hover-t) var(--hover-ease),
              border-color var(--hover-t) var(--hover-ease);
}
body[data-page="index"] details.faq[open] > summary::after{
  transform: rotate(-135deg);
  border-color: var(--blue);
}
body[data-page="index"] details.faq > summary:hover::before,
body[data-page="index"] details.faq[open] > summary::before{ border-color: rgba(6, 104, 225, .30); }
body[data-page="index"] details.faq p{
  margin: 18px 0 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--muted);
  max-width: 620px;   /* 66ch 在中文里只有 33 个字宽，正文偏窄 */
}
@media (prefers-reduced-motion: no-preference){
  body[data-page="index"] details.faq[open] > p{ animation: ix-faq-in .26s ease both; }
}
@keyframes ix-faq-in{
  from{ opacity: 0; transform: translateY(-4px); }
  to{ opacity: 1; transform: none; }
}

/* ---------- 5. 响应式 ---------- */
@media (max-width: 1023px){
  body[data-page="index"] .home-hero{
    display: block;
    padding: 44px calc(50vw - 50%) 0;
  }
  body[data-page="index"] .home-hero .hero-fig{ margin: 32px 0 0; }
  body[data-page="index"] .home-hero .lead{ max-width: 40em; }
  body[data-page="index"] .boardgrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}
@media (max-width: 640px){
  body[data-page="index"] .home-hero{ padding: 32px calc(50vw - 50%) 0; }
  body[data-page="index"] .home-hero h1{
    font-size: clamp(29px, 8.2vw, 38px);
    margin-bottom: 16px;
  }
  body[data-page="index"] .home-hero .lead{ font-size: 15.5px; line-height: 1.8; }
  body[data-page="index"] .home-hero .btns{ margin-top: 22px; }
  body[data-page="index"] .home-hero .btns .btn{ padding: 12px 10px; font-size: 14px; }
  body[data-page="index"] .home-hero .hero-fig{ margin-top: 26px; }
  body[data-page="index"] .boards-wrap{ padding-top: 48px; }
  body[data-page="index"] .boards-wrap + .boards-wrap{ padding-top: 48px; }
  body[data-page="index"] .journey-note{ margin-bottom: 22px; }
  body[data-page="index"] .boardgrid{ grid-template-columns: 1fr; gap: 12px; }
  /* 单列时卡片改横向：序号占左栏，标题与描述右侧成组，8 张卡整体短一半 */
  body[data-page="index"] .board{
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 2px;
    align-items: baseline;
    padding: 14px 16px 15px;
  }
  body[data-page="index"] .board .bnum{ grid-row: 1 / span 2; font-size: 13px; padding-top: 3px; }
  body[data-page="index"] .board .bt{ font-size: 17px; margin-top: 0; }
  body[data-page="index"] .board .bd{ font-size: 13px; line-height: 1.65; }
  body[data-page="index"] details.faq{ padding: 14px 16px 16px; }
  body[data-page="index"] details.faq > summary{ padding-right: 40px; font-size: 15.5px; }
  body[data-page="index"] details.faq p{ font-size: 14px; line-height: 1.8; }
}

/* 英文首屏：分栏后左栏只有约 535px，原来 58px 的西文 H1 会碎成四行，
   把首屏撑到 700px 以上，主视觉被挤到中间。压到 44px、行高 1.12 收成三行，
   与中文两行的视觉重量相当（西文按字符宽度算，不能沿用中文的尺寸）。 */
body[data-lang="en"][data-page="index"] .home-hero h1{
  font-size: clamp(30px, 3.05vw, 44px);
  line-height: 1.12;
  letter-spacing: -.022em;
  margin-bottom: 18px;
  text-wrap: balance;   /* 避免第二行末尾只剩 "career" 一个词（西文孤行） */
}
@media (max-width: 640px){
  body[data-lang="en"][data-page="index"] .home-hero h1{
    font-size: clamp(27px, 7.4vw, 34px);
  }
}

/* ============================================================
   学习页排版 v9（2026-10-25）
   把首页 v9 的设计语言落到学习页：白卡 + 14px 圆角 + 1px 细描边
   + 编号系统 + 8pt 留白。**只作用于 body[data-page="study"]**，
   其余七个频道页保持原样（确认后可按同一块批量套用）。
   内容与功能零改动：不改 HTML、不改文案，只做排印与间距。
   ============================================================ */

/* ---------- 1. 顶部 ---------- */
/* 导语去掉左边竖线：那是引用语法，导语不是引用 */

/* 元信息行与目录：降到「辅助」层级，不与正文抢注意力 */

/* ---------- 2. 正文板块：统一标题、说明与间距 ---------- */
/* 去掉标题左侧那条 3px 蓝竖条：它和正文缩进打架，也让每节起手变重 */
/* 折叠区之后那段说明（章节顺序以大纲为准）与卡片贴得太近，单独给它上边距 */

/* 条目：圆点 → 两位序号，整条变成「编号 / 标题 / 说明」三段的索引行 */

/* ---------- 3. 表格：卡片化，列宽与行距按内容分配 ---------- */

/* 路径切换：与主按钮同一套蓝，选中即实心 */

/* ---------- 4. 三条路径卡片 / 下一步卡片 ---------- */

/* ---------- 5. 章节折叠：与首页 FAQ 同一套折叠语言 ---------- */
/* 原来的「＋/－」文字号换成细箭头，展开翻转 */

/* 工具行与进度条 */

/* 小字说明与长尾注：统一 12.5–13.5，行高放到 1.85 */

/* ---------- 6. 响应式 ---------- */
@media (max-width: 1023px){
  body[data-page="study"] .ch-hero{ padding: 40px calc(50vw - 50%) 36px; }
}
@media (max-width: 640px){
  /* 窄屏四列表格会被压成每列 2–3 字宽，改为横向滚动（外层 .table-scroll 已能滑） */
  /* 目录在 ≤760 变横排，分组标题被 flex 挤成一字一行，这里钉住宽度 */
}

/* ============================================================
   学习页 · 内容重整（2026-10-25 第二轮）
   老板要求：删「下一步」区块；重整元信息、目录、三条路径、
   三/四/五节与「从这里开始」的关系。
   原则：不改文案、不加新内容，只做分组、降噪与视觉串联。
   ============================================================ */

/* 1) 元信息行：从「正文第一行」降为一行淡注脚，不再和「一、」抢起手 */

/* 2) 目录：三组之间拉一条线，像个「阅读地图」而不是一长串 */
@media (min-width: 961px){
  body[data-page="study"] .ch-body > .toc .om-h{
    margin: 16px 0 6px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
  }
  body[data-page="study"] .ch-body > .toc .om-h:first-child{
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
  }
}

/* 3) 三条路径：chip 从「药丸按钮」改成「文字切换」，
      与上面的对照表不再是两块同权重的组件 */

/* 4) 「另外四条判断」那段长尾巴：收进「补充说明」块，
      不再是一大坨灰字铺在正文末尾 */

/* 5) 五、的工具与进度：合成一条工具带，与下面的折叠列表分开 */

/* 6) 「下一步」区块内容已删，只剩小程序引导条：去掉原来的外框与渐变底 */

/* 学习页 · 收口（同一轮）：区块末端留白归零，避免「72 + 段落自带下边距」叠成 90+ */
/* 编号列表再收紧一档：原来每条 76px，五条就占掉 380 */
/* 进度条同理，底色加深才看得出「已学 0 / 18」的槽位 */
/* 说明与工具带之间留出呼吸 */

/* 学习页 · 收口二：正文是 grid，块与块之间被 grid 的 row-gap 又加了一道，
   实测每节间距变成 72+48=120。把 row-gap 归零，间距回到设定的 72。 */
@media (min-width: 961px){
  body[data-page="study"] .ch-body{ row-gap: 0; }
}
/* 路径切换：三个词太小太淡，看不出可点。给它常显的细下划线 + 墨色 */

/* 学习页「二、学校课程」：14 门归为一类，两列清单（不分亚组） */
@media (max-width: 760px){
}

/* 学习页：章节树补上「节」这一级 —— 章名右侧仍是节数，节名以浅灰小字排在章名下面 */

/* ============================================================
   学习页 · 目录按「职称 / 在校」分类（2026-10-25 第三轮）
   —— 桌面左栏已按三组排（三条路径 / 职称·资格考试 / 在校·学校课程）；
      小屏原来是一整条横滑，组多了会滑成一条线，改成两列网格、组标题跨行。
   ============================================================ */
@media (max-width: 760px){
  body[data-page="study"] .ch-body > .toc{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: 1px 14px;
    -webkit-mask-image: none; mask-image: none;
  }
  body[data-page="study"] .ch-body > .toc .om-h{
    grid-column: 1 / -1;
    margin: 12px 0 4px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
  }
  body[data-page="study"] .ch-body > .toc .om-h:first-child{
    margin-top: 0; padding-top: 0; border-top: 0;
  }
  body[data-page="study"] .ch-body > .toc a{ white-space: normal; }
}
/* 英文目录的分组标题字母间距比中文更吃宽度，收窄一档，避免「Profession · exam」折成两行 */

/* ============================================================
2026-10-26：首页由「hero + 四张卡 + 常见问题」精简为只有 hero（老板令）。
内容只剩一屏的量，照原样排版会出现「页脚贴着头图、整页浮在上半屏」。
这里让 main 在剩余空间里垂直居中、页脚贴底，首屏看起来仍是一整页。
（只作用于首页；其他页内容长，行为不变）
============================================================ */
body[data-page="index"], body[data-page="community"], body[data-page="news"],
body[data-page="about"], body[data-page="contact"]{
  display: flex; flex-direction: column;
  min-height: 100vh; min-height: 100dvh;
}
body[data-page="index"] > .site-header,
body[data-page="community"] > .site-header,
body[data-page="news"] > .site-header,
body[data-page="about"] > .site-header,
body[data-page="contact"] > .site-header{ flex: 0 0 auto; }
body[data-page="index"] > main,
body[data-page="community"] > main,
body[data-page="news"] > main,
body[data-page="about"] > main,
body[data-page="contact"] > main{
  flex: 1 1 auto;
  display: flex; flex-direction: column; justify-content: center;
}
body[data-page="index"] > main > .wrap,
body[data-page="community"] > main > .wrap,
body[data-page="news"] > main > .wrap,
body[data-page="about"] > main > .wrap,
body[data-page="contact"] > main > .wrap{ width: 100%; }
body[data-page="index"] > .site-footer,
body[data-page="community"] > .site-footer,
body[data-page="news"] > .site-footer,
body[data-page="about"] > .site-footer,
body[data-page="contact"] > .site-footer{ flex: 0 0 auto; }

/* ============================================================
2026-10-26：用户协议 / 隐私政策改为「正式公文」版式（老板令）
按 GB/T 9704 的行文习惯取意，不逐毫米复刻：
  · 标题居中、黑体；章节标题黑体；正文用衬线族，首行缩进两字
  · 行距放宽到 1.95，行宽收到约 40 字（780px），读起来像纸质文件
  · 去掉彩色底纹、圆角卡片、交替 band，改成纯文字与细线
  · 网页无法控制 A4 纸边距，故只保证「版面气质」与可读性
作用域限定 terms / privacy 两页，其余页面一律不受影响。
============================================================ */
body[data-page="terms"] main,
body[data-page="privacy"] main{
  font-family: serif;   /* 公文正文：通用衬线族，由系统决定具体字形（正文观感偏传统印刷体） */
  font-size: 17px; line-height: 2.0; color: #1b1b1b;
}
body[data-page="terms"] main > .wrap,
body[data-page="privacy"] main > .wrap{ max-width: 780px; }

/* 文件大标题：居中 + 黑体 + 字距，下面压一条粗线 */
body[data-page="terms"] main h1,
body[data-page="privacy"] main h1{
  font-family: sans-serif;   /* 标题：系统黑体 */
  font-size: 27px; line-height: 1.55; font-weight: 700;
  text-align: center; letter-spacing: .06em;
  margin: 30px 0 10px; padding: 0 0 16px;
  border: 0; border-bottom: 2px solid #1b1b1b;
}
/* 章节标题：黑体，段前留白 */
body[data-page="terms"] main h2,
body[data-page="privacy"] main h2{
  font-family: sans-serif;   /* 标题：系统黑体 */
  font-size: 17.5px; font-weight: 700; line-height: 1.7;
  margin: 30px 0 10px; padding: 0; border: 0;
}
body[data-page="terms"] main h3,
body[data-page="privacy"] main h3{
  font-family: sans-serif;
  font-size: 16px; font-weight: 700; margin: 18px 0 6px;
}

/* 正文：首行缩进两字 */
body[data-page="terms"] main p,
body[data-page="privacy"] main p{ text-indent: 2em; margin: 0 0 10px; }

/* 条款列表：悬挂缩进 + 小圆点，去掉卡片式边框与底色 */
body[data-page="terms"] main ul.pts,
body[data-page="privacy"] main ul.pts{
  margin: 0 0 12px; padding: 0 0 0 2em; list-style: none;
}
body[data-page="terms"] main ul.pts > li,
body[data-page="privacy"] main ul.pts > li{
  position: relative; margin: 0 0 9px; padding: 0;
  border: 0; background: none; text-indent: 0;
}
body[data-page="terms"] main ul.pts > li::before,
body[data-page="privacy"] main ul.pts > li::before{
  content: ""; position: absolute; left: -1.2em; top: .95em;
  width: .42em; height: .42em; border-radius: 50%; background: #7a7a7a;
}
/* 去掉所有分区底纹、圆角与阴影 */
body[data-page="terms"] main .band,
body[data-page="privacy"] main .band{ background: none !important; border: 0; }
body[data-page="terms"] main section,
body[data-page="privacy"] main section{
  background: none; border: 0; border-radius: 0; padding: 0; margin: 0;
}
/* 目录：改成公文体竖排小字，去胶囊 */
body[data-page="terms"] main .toc,
body[data-page="privacy"] main .toc{
  display: block; margin: 22px 0 4px; padding: 14px 0 0;
  background: none; border: 0; border-top: 1px solid #bdbdbd;
  overflow: visible; backdrop-filter: none; -webkit-backdrop-filter: none;
  font-family: sans-serif;
}
body[data-page="terms"] main .toc a,
body[data-page="privacy"] main .toc a{
  display: block; padding: 3px 0; margin: 0;
  font-size: 13.5px; line-height: 1.9; color: #333;
  background: none !important; border-radius: 0;
}
body[data-page="terms"] main .toc a:hover,
body[data-page="privacy"] main .toc a:hover{ color: #000; text-decoration: underline; }

/* 表格（变更历史、收集清单）：细线三线表 */
body[data-page="terms"] main table,
body[data-page="privacy"] main table{
  width: 100%; border-collapse: collapse; margin: 10px 0 16px;
  font-family: sans-serif; font-size: 14px;
}
body[data-page="terms"] main th,
body[data-page="terms"] main td,
body[data-page="privacy"] main th,
body[data-page="privacy"] main td{
  border: 0; border-bottom: 1px solid #cfcfcf; padding: 8px 10px;
  text-align: left; vertical-align: top; background: none;
}
body[data-page="terms"] main thead th,
body[data-page="privacy"] main thead th{ border-bottom: 1.5px solid #1b1b1b; font-weight: 700; }

/* 常见问题：改成朴素的问答段落 */
body[data-page="terms"] main details.faq,
body[data-page="privacy"] main details.faq{
  border: 0; border-bottom: 1px solid #e0e0e0; border-radius: 0;
  padding: 8px 0; background: none;
}
body[data-page="terms"] main details.faq summary,
body[data-page="privacy"] main details.faq summary{
  font-family: sans-serif;
  font-size: 15.5px; font-weight: 700; text-indent: 0;
}
body[data-page="terms"] main details.faq p,
body[data-page="privacy"] main details.faq p{ text-indent: 2em; }

/* 顶部版本条 → 公文式「文号行」：居中、小字、上下细线 */
body[data-page="terms"] main .version-bar,
body[data-page="privacy"] main .version-bar{
  display: block; text-align: center; background: none; border: 0;
  border-top: 1px solid #bdbdbd; border-bottom: 1px solid #bdbdbd;
  padding: 8px 0; margin: 0 0 20px;
  font-family: sans-serif;
  font-size: 13px; color: #444; letter-spacing: .02em;
}
/* —— 公文版式补充：版本条 / 摘要 / 提示 / 标签 / 条款列表（实测类名对齐）—— */
body[data-page="terms"] main .doc-status,
body[data-page="privacy"] main .doc-status{
  display: block; text-align: center; background: none; border: 0;
  border-top: 1px solid #bdbdbd; border-bottom: 1px solid #bdbdbd;
  padding: 8px 0; margin: 0 0 22px;
  font-family: sans-serif;
  font-size: 13px; color: #444; line-height: 1.9;
}
body[data-page="terms"] main .doc-status .tag,
body[data-page="privacy"] main .doc-status .tag{
  background: none; border: 1px solid #9a9a9a; border-radius: 0;
  color: #333; font-size: 12.5px; padding: 1px 8px; margin-left: 6px;
}
/* 一句话摘要：去左边条与浅底，按正文段落排 */
body[data-page="terms"] main .summary,
body[data-page="privacy"] main .summary{
  background: none; border: 0; border-left: 0; padding: 0; margin: 0 0 14px;
  text-indent: 2em; font-size: 16px; line-height: 1.95; color: #1b1b1b;
}
/* 提示块：上下细线，无底色 */
body[data-page="terms"] main .notice,
body[data-page="privacy"] main .notice{
  background: none; border: 0; border-top: 1px solid #d5d5d5;
  border-bottom: 1px solid #d5d5d5; border-radius: 0;
  padding: 10px 0; margin: 14px 0; text-indent: 2em;
}
/* 标签：方框细边，去圆角与彩色底 */
body[data-page="terms"] main .tag,
body[data-page="privacy"] main .tag{
  background: none !important; border: 1px solid #9a9a9a; border-radius: 0;
  color: #333 !important; font-size: 12.5px; padding: 1px 8px;
}
/* 条款列表：强制块级，圆点固定左侧 */
body[data-page="terms"] main ul.pts > li,
body[data-page="privacy"] main ul.pts > li{
  display: block !important; list-style: none; padding-left: 0 !important;
}
body[data-page="terms"] main ul.pts > li::before,
body[data-page="privacy"] main ul.pts > li::before{
  content: ""; position: absolute; left: -1.15em; top: .92em;
  width: .4em; height: .4em; border-radius: 50%; background: #6f6f6f;
}
body[data-page="terms"] main ul.pts,
body[data-page="privacy"] main ul.pts{
  display: block !important; list-style: none !important;
  padding: 0 0 0 2em !important; margin: 0 0 12px !important;
}
/* 元信息行：居中细字，去掉彩色圆点 */
body[data-page="terms"] main .meta-line,
body[data-page="privacy"] main .meta-line{
  display: block; text-align: center; border: 0; padding: 10px 0 0; margin: 18px 0 6px;
  border-top: 1px solid #e2e2e2; font-size: 12.5px; color: #666;
}
body[data-page="terms"] main .meta-line .live-dot,
body[data-page="privacy"] main .meta-line .live-dot{
  background: #9a9a9a !important; box-shadow: none !important;
}
/* 条款列表改用原生 project 符号（悬挂缩进），比伪元素稳 */
body[data-page="terms"] main ul.pts,
body[data-page="privacy"] main ul.pts{
  display: block !important; list-style: disc outside !important;
  padding-left: 1.9em !important; margin: 0 0 12px !important;
}
body[data-page="terms"] main ul.pts > li,
body[data-page="privacy"] main ul.pts > li{
  display: list-item !important; list-style: disc outside !important;
  padding-left: 0 !important; text-indent: 0 !important;
}
body[data-page="terms"] main ul.pts > li::before,
body[data-page="privacy"] main ul.pts > li::before{ content: none !important; }
body[data-page="terms"] main ul.pts > li::marker,
body[data-page="privacy"] main ul.pts > li::marker{ color: #6f6f6f; font-size: .85em; }

/* ============================================================
2026-10-26（第二次）：协议两页改回「网页流」版式（老板令）
去掉灰底 + 白纸 + 阴影 + 794px 固定宽那套 A4 观感，回到正常网页：
内容居中、宽度适中、随窗口自适应、可整页滚动。
排版仍按合同／公文规范：标题层级清楚、章节用「一、二、三」、
正文首行缩进两字、行距 1.9、条款用悬挂缩进的圆点列表。
============================================================ */

/* 内容区：宽度适中（约 42 字/行），左右留白随屏幕伸缩，不做纸张边框 */
body[data-page="terms"] main > .wrap,
body[data-page="privacy"] main > .wrap{
  width: auto; max-width: 700px;
  margin: 0 auto; padding: 44px 24px 72px;
  background: none; border: 0; box-shadow: none;
}
/* 纸内那套 hero 清零仍然适用（页头大留白要压掉） */
body[data-page="terms"] main .hero-block,
body[data-page="privacy"] main .hero-block{
  padding: 0; margin: 0; background: none; border: 0; min-height: 0;
}
/* 文件标题：小标传统印刷衬线体（衬线）+ 居中；GB/T 9704 的标题下方没有分隔线，故不加 */
body[data-page="terms"] main h1,
body[data-page="privacy"] main h1{
  font-family: serif;
  margin: 0 0 22px; padding: 0;
  font-size: 29px; line-height: 1.6; letter-spacing: .1em;
  border: 0; font-weight: 700;
}
/* 章节：黑体、段前留白，首章与标题线之间留一口气 */
body[data-page="terms"] main section,
body[data-page="privacy"] main section{ padding: 0; margin: 0; }
body[data-page="terms"] main h2,
body[data-page="privacy"] main h2{ margin: 36px 0 10px; font-size: 19.5px; letter-spacing: .02em; }
body[data-page="terms"] main h2:first-of-type,
body[data-page="privacy"] main h2:first-of-type{ margin-top: 16px; }

/* 平板：收窄左右留白 */
@media (max-width: 860px){
  body[data-page="terms"] main > .wrap,
  body[data-page="privacy"] main > .wrap{ padding: 32px 20px 56px; }
  body[data-page="terms"] main h1,
  body[data-page="privacy"] main h1{ font-size: 23px; margin-bottom: 24px; }
}
/* 手机：留白再收，字号与行距略调，保证一屏内可读 */
@media (max-width: 560px){
  body[data-page="terms"] main,
  body[data-page="privacy"] main{ font-size: 15.5px; line-height: 1.85; }
  body[data-page="terms"] main > .wrap,
  body[data-page="privacy"] main > .wrap{ padding: 24px 16px 48px; }
  body[data-page="terms"] main h1,
  body[data-page="privacy"] main h1{ font-size: 23px; letter-spacing: .06em; }
  body[data-page="terms"] main h2,
  body[data-page="privacy"] main h2{ margin-top: 28px; font-size: 17.5px; }
  body[data-page="terms"] main ul.pts,
  body[data-page="privacy"] main ul.pts{ padding-left: 1.4em !important; }
}

/* 打印 / 导出 PDF：仍按 A4 出纸，去掉站点外壳 */
@media print{
  body[data-page="terms"] .site-header,
  body[data-page="privacy"] .site-header,
  body[data-page="terms"] .site-footer,
  body[data-page="privacy"] .site-footer{ display: none !important; }
  body[data-page="terms"] main > .wrap,
  body[data-page="privacy"] main > .wrap{ max-width: none; padding: 0; }
  @page{ size: A4; margin: 22mm 20mm; }
}
/* 正文内的行内元素统一继承衬线族（否则 strong/a/span 可能回落到全站无衬线栈） */
body[data-page="terms"] main :where(p, li, span, strong, em, a, time),
body[data-page="privacy"] main :where(p, li, span, strong, em, a, time){
  font-family: inherit;
}

/* —— 条款段落（方案 B 重建：圆点列表 → 带编号的段落）—— */
body[data-page="terms"] main .clause,
body[data-page="privacy"] main .clause{
  text-indent: 2em; margin: 0 0 12px;
}
body[data-page="terms"] main .clause .cn,
body[data-page="privacy"] main .clause .cn{ font-family: inherit; }
/* 文首编号说明：小字、不缩进、与正文分开 */
body[data-page="terms"] main .doc-note,
body[data-page="privacy"] main .doc-note{
  font-family: sans-serif; font-size: 13.5px; line-height: 1.8;
  color: #555; text-indent: 0; margin: 0 0 26px;
  padding: 0 0 10px; border-bottom: 1px solid #DDD;
}
/* 落款：右下角，单位 + 成文日期（公文体例） */
body[data-page="terms"] main .sign-off,
body[data-page="privacy"] main .sign-off{
  text-indent: 0; text-align: right; margin: 56px 0 8px;
  font-size: 16.5px; line-height: 1.9; color: #1b1b1b;
}
body[data-page="terms"] main .sign-off time,
body[data-page="privacy"] main .sign-off time{ font-family: inherit; }
/* 手机端字号阶梯整体下移一档 */
@media (max-width: 560px){
  body[data-page="terms"] main .doc-note,
  body[data-page="privacy"] main .doc-note{ font-size: 12.5px; }
  body[data-page="terms"] main .sign-off,
  body[data-page="privacy"] main .sign-off{ margin-top: 40px; font-size: 15.5px; }
}

/* ============================================================
   2026-10-26 对标苹果 · 三块新增内容区
   关于页（三条事实 + 联系方式）/ 资讯页（列表容器）/ 社区页（四类入口）
   全部复用既有令牌与 .topic / .cardgrid / .art-card，零新增主色。
   ============================================================ */

/* —— 关于页：三条事实 —— */
.about-body{ margin: 36px 0 8px; }
.facts{
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px; margin: 0; padding: 0;
}
.fact{
  background: var(--surface); border: 1px solid var(--hairline);
  border-radius: var(--radius); box-shadow: var(--shadow-sm);
  padding: 22px 22px 20px; margin: 0;
}
.fact dt{
  font-size: 12px; font-weight: 600; letter-spacing: .12em;
  color: var(--meta); margin-bottom: 9px;
}
.fact dd{
  margin: 0; font-size: 15px; font-weight: 600; line-height: 1.65; color: var(--ink);
}
.fact dd .fact-sub{
  display: block; margin-top: 7px;
  font-size: 13px; font-weight: 400; line-height: 1.62; color: var(--muted);
}
@media (max-width: 1024px){ .facts{ grid-template-columns: 1fr; } }
@media (max-width: 600px){ .fact{ padding: 18px; } }

/* —— 关于页：联系方式 —— */
.about-contact{
  margin: 34px 0 60px; padding-top: 26px; border-top: 1px solid var(--line);
}
.about-contact h2{
  font-size: clamp(20px, 2.4vw, 26px); font-weight: 700; line-height: 1.3;
  color: var(--brand); margin: 0 0 12px;
}
.about-contact p{
  font-size: 15px; line-height: 1.8; color: var(--muted); margin: 0 0 12px;
}
.about-contact .about-note{
  font-size: 13px; line-height: 1.85; color: var(--meta); max-width: 62ch;
}
.about-contact .about-more{ margin: 16px 0 0; font-size: 14px; font-weight: 600; }

/* —— 资讯页：文章列表容器（卡片由 gen_news.py 注入） —— */
.news-list{ margin: 36px 0 60px; }
.news-note{ margin: 24px 0 60px; font-size: 13.5px; line-height: 1.8; color: var(--meta); }

/* —— 社区页：四类话题入口 —— */
.community-topics{ margin: 36px 0 60px; }
.community-topics > h2{
  font-size: clamp(20px, 2.4vw, 26px); font-weight: 700; line-height: 1.3;
  color: var(--brand); margin: 0 0 20px;
}
.community-note{ margin: 22px 0 0; font-size: 13px; line-height: 1.8; color: var(--meta); }
.topic .see{ text-decoration: none; }
@media (hover: hover){ .topic .see:hover{ text-decoration: underline; } }

/* 资讯列表：4 篇时 3 列会留一个「孤儿卡」，资讯页固定两列（2×2 对齐）；
   文章数变多时仍是两列，卡片更宽、摘要更好读。 */
.news-list .cardgrid.g3{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1024px){ .news-list .cardgrid.g3{ grid-template-columns: 1fr; } }

/* ============================================================
   2026-11-04 · 首页纯文字首屏 + 最新动态列表
   ============================================================ */

/* 首屏不配图 → 内容整体居中，避免右侧留出 40% 空白 */
body[data-page="index"] .home-hero .hero-copy{
  text-align: center;
  max-width: 860px;
  margin: 0 auto;
}
body[data-page="index"] .home-hero .btns{ justify-content: center; }

/* 最新动态：首页取 3 条、动态页取全部，数据源 content/moments.json */
.home-moments{ max-width: 860px; margin: 64px auto 72px; }
.home-moments h2{
  font-size: 18px; font-weight: 600; letter-spacing: .01em;
  margin: 0 0 14px; color: var(--brand);
}
.moments{ list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.moments li{ border-bottom: 1px solid var(--line); }
.moments a{
  display: flex; align-items: baseline; gap: 18px;
  padding: 15px 2px; text-decoration: none;
}
.moments time{
  flex: 0 0 auto; font-size: 13px; color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.moments span{ flex: 1; font-size: 15px; color: var(--ink); transition: color .18s ease; }
.moments a:hover span,
.moments a:focus-visible span{ color: var(--blue); }
.home-moments .more{ margin: 18px 0 0; font-size: 14px; }

/* 动态页：标题左对齐，列表也左对齐（同轴），不居中 */
.news-list{ max-width: 860px; margin: 0; }
.news-list .moments{ border-top: 0; }

@media (max-width: 939px){
  .home-moments{ margin-bottom: 48px; }
  .moments a{ gap: 12px; padding: 13px 0; }
}

/* ============================================================
   2026-11-04 · 内容占位块（结构先搭好，内容后填）
   ============================================================ */
.ph{
  min-height: 96px;
  margin: 10px 0 0;
  border: 1px dashed rgba(10,37,64,.16);
  border-radius: 10px;
  background: rgba(10,37,64,.015);
}
.ph-lg{ min-height: 180px; }

/* 404 页 */
.notfound{ text-align: center; padding: 96px 0 120px; }
.notfound .nf-code{
  font-size: clamp(64px, 12vw, 120px);
  font-weight: 800; line-height: 1;
  letter-spacing: -.03em; color: var(--brand);
  margin: 0 0 8px;
}
.notfound h1{
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 600; margin: 0 0 12px;
}
.notfound .nf-desc{ color: var(--muted); margin: 0 auto 28px; max-width: 520px; }
.notfound .btns{ display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* 社区页：三块结构，与标题同轴（左对齐，不居中） */
.community-block{ max-width: 860px; margin: 0 0 56px; }

/* 板块总览：三个二级入口（2026-11-04） */
.board-index{
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px; margin-top: 8px; max-width: 860px;
}
.board-card{
  display: flex; align-items: center; justify-content: center;
  min-height: 132px;
  border: 1px solid var(--line); border-radius: 12px;
  font-size: 16px; color: var(--ink); text-decoration: none !important;
  transition: border-color .18s ease, color .18s ease, background-color .18s ease;
}
.board-card:hover,
.board-card:focus-visible{
  border-color: var(--blue); color: var(--blue);
  background: var(--tint-blue); text-decoration: none;
}
@media (max-width: 939px){
  .board-index{ grid-template-columns: 1fr; }
  .board-card{ min-height: 96px; }
}

/* ============================================================
   2026-11-04 · 页脚重构 + 取消胶囊选中
   ============================================================ */

/* 页脚：品牌 + 关于 两栏，底部一条细线收口 */
.site-footer{
  margin-top: 96px;
  padding: 56px 0 28px;
  border-top: 1px solid var(--line);
}
.footer-top{
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 48px 72px;
  align-items: start;
}
.footer-brand .footer-logo{
  display: inline-flex; align-items: center; gap: 10px;
  text-decoration: none;
}
.footer-brand .footer-logo strong{
  font-size: 18px; font-weight: 700; letter-spacing: .16em; color: var(--brand);
}
.footer-slogan{
  margin: 12px 0 0; font-size: 14px; color: var(--muted);
  max-width: 340px; line-height: 1.6;
}
.footer-nav{ display: flex; flex-direction: column; gap: 10px; }
.footer-nav h3{
  font-size: 12px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--muted); margin: 0 0 2px;
}
.footer-nav a{ font-size: 14px; color: var(--ink); text-decoration: none; }
.footer-nav a:hover,
.footer-nav a:focus-visible{ color: var(--blue); text-decoration: none; }
.footer-bottom{
  /* 2026-11-04 老板令：去掉版权行上方那根线，改为纯间距分隔 */
  margin-top: 44px;
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 8px 16px; font-size: 13px; color: var(--muted);
}
.footer-bottom .footer-backtop{ margin-left: auto; }

/* 取消胶囊选中：去掉所有背景块，只留文字变色 + 加粗 */
.nav-capsule .site-nav a.on,
.nav-capsule .nav-sub-title.on,
.nav-capsule .nav-inner a.on,
.nav-drop-menu a.on,
.nav-sub-menu a.on{
  background: transparent !important;
  color: var(--brand);
  font-weight: 600;
}

@media (max-width: 939px){
  .footer-top{ grid-template-columns: 1fr; gap: 32px; }
  .site-footer{ margin-top: 64px; padding-top: 40px; }
}

/* ============================================================
   2026-11-04 · 首屏单列（配图已删）+ 英文排版修复
   ============================================================ */

/* 原布局是「左文右图」两列栅格，图删了右列仍占位，
   文字被压在左半边（约 515px），英文 H1 直接碎成四行、按钮竖排。
   无配图时收成单列，内容按 860px 居中。 */
body[data-page="index"] .home-hero.is-solo{
  grid-template-columns: minmax(0, 1fr);
  column-gap: 0;
  padding-bottom: 0;
}
body[data-page="index"] .home-hero.is-solo .hero-copy{ max-width: 860px; }

/* ============================================================
   2026-11-04 · 二级页正文排版（科普稿，长文可读性优先）
   ============================================================ */

/* 小标题：与 h1 拉开层级，不加装饰线 */
.sec-block h2{
  font-size: 21px; font-weight: 700; color: var(--ink);
  letter-spacing: .01em; line-height: 1.4;
  margin: 0 0 14px;
}
.sec-block p{
  font-size: 16px; line-height: 1.95; color: var(--muted);
  margin: 0 0 16px; max-width: 68ch;
}
.sec-block ul{
  margin: 4px 0 18px; padding-left: 1.1em; max-width: 68ch;
}
.sec-block li{
  font-size: 15.5px; line-height: 1.9; color: var(--muted);
  margin: 0 0 8px;
}
.sec-block li::marker{ color: var(--blue-30); }
/* 免责/口径说明：比正文小一号，靠左侧细线区分 */
.sec-block .note, .wrap > .note{
  margin: 0 0 8px; padding-left: 14px;
  border-left: 2px solid var(--line);
  font-size: 13.5px; line-height: 1.8; color: var(--muted);
  max-width: 66ch;
}
/* 小程序码 */
.mp-figure{ margin: 18px 0 6px; }
.mp-figure img{
  display: block; width: 220px; height: 220px;
  border: 1px solid var(--line); border-radius: 12px;
  background: #fff; padding: 8px;
}
@media (max-width: 640px){
  .sec-block h2{ font-size: 19px; }
  .sec-block p, .sec-block li{ font-size: 15.5px; }
}

/* 正文页收口：旧版给 section+section 叠了 96px margin + 96px padding，
   在这里会把两段之间拉出近 200px 的空洞；h2 还带一条左竖条并右移 18px，
   与段落左缘对不齐。正文页统一收平。 */
main > .wrap > section.sec-block + section.sec-block{
  margin-top: 0;
  padding-top: 0;
}
.sec-block > h2::before{ content: none; }
.sec-block > h2{ padding-left: 0; }
/* 社区页的 section 在 .community-block 里，上面那条选择器匹配不到，单独补一条 */
.community-block > .sec-block + .sec-block{
  margin-top: 0;
  padding-top: 0;
}
/* 全站 section 默认 padding 30px 在这里只增加空洞；正文页统一去掉 */
.sec-block{ padding: 0; margin-bottom: 48px; }
:is([data-page="study"],[data-page="exam"],[data-page="postgraduate"],[data-page="internship"],[data-page="career"],[data-page="continuing"],[data-page="frontier"],[data-page="community"]) .sec-block,
.community-block > .sec-block{ margin-bottom: 44px; padding: 0; }
