/* ==========================================================================
   EAMX 官网原型 · 设计系统 v2
   纯 HTML/CSS，无构建、无 JS 框架

   设计取向：**技术规范书 / Spec Sheet**
     · 不是"机构画册"，是"工程规范 + 遥测面板"
     · 零衬线、零金色、零阴影、零圆角
     · 数字与代码一律等宽，标签等宽，网格线代替卡片阴影
     · 依据：EAMX 是数据与工程产品（动作契约 / 字段级来源 / 条款映射），
       站点形态应当与产品形态一致

   v2 与 v1 的根本差别（v1 实质照搬了参考站的设计系统，已废弃）：
     v1: 深海军蓝 #1B4E73 + 金 #C9A961 + 米白纸感 #FAF8F4 + Noto Serif SC + 8/14px 圆角 + 卡片阴影
     v2: 静蓝 #3A6BB5 + 陶土 #A9663A + 冷灰 #F7F8FA + 全无衬线 + 2px 直角 + 零阴影

   v2.1 配色调整（2026-09-28）：
     初版用 #0B63F6（饱和 96%）+ #FF5A1F（饱和 100%）配近黑 #0A0C10 —— 三块都在"喊"，
     且蓝与橙接近互补色，并置时视觉发振，观感刺眼。
     本版把三处同时收下来：主色饱和 96%→49%，强调色 100%→49%（明度降到 45%），
     近黑 #0A0C10→深板岩 #1B2028（拉开与纯黑的差距，相邻色不再被压得发亮）。
   ========================================================================== */

/* ---------- 1. 设计令牌 ---------- */
:root {
  /* 墨色系：深板岩，不是纯黑 —— 纯黑会把相邻的有彩色压得刺眼 */
  --ink:        #1B2028;
  --ink-soft:   #343B46;
  --ink-3:      #565E6B;
  --mute:       #747C89;
  --mute-2:     #9BA3AF;

  /* 面 */
  --paper:      #FFFFFF;
  --bg:         #FFFFFF;
  --bg-2:       #F7F8FA;   /* 冷灰，不是米白纸感 */
  --tint:       #F1F4F8;

  /* 线（1px 网格线是主要的分隔手段） */
  --line:       #E4E8ED;
  --line-2:     #EFF2F5;
  --line-3:     #D5DBE3;

  /* 主色：静蓝 —— 饱和 49%，比海军蓝亮、比屏幕蓝沉 */
  --accent:     #3A6BB5;
  --accent-2:   #2F5795;
  --accent-3:   #EDF2F9;

  /* 强调色：陶土 —— 只用于极少量标记（规划中 / 关键动作），不做大面积铺色 */
  --sig:        #A9663A;
  --sig-2:      #8A522C;
  --sig-3:      #FAF3EE;

  --warn:       #96602F;
  --ok:         #3F7A5E;
  --ok-3:       #EEF6F2;

  /* 浅底描边（用于浅色块的边框，替代硬编码） */
  --accent-line: #D8E3F2;
  --sig-line:    #EBDACB;

  /* 深色底专用：主色/强调色在深板岩上对比度不足（仅 3.1–3.4:1），需提亮 */
  --accent-lt:   #8FB3E3;   /* 深色底上的主色 */
  --sig-lt:      #D9A47C;   /* 深色底上的强调色 */

  /* 字：全无衬线；数字与代码走等宽 */
  --font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', system-ui, sans-serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', system-ui, sans-serif;
  --font-mono:    ui-monospace, 'SF Mono', 'Cascadia Mono', 'JetBrains Mono', Consolas, 'Courier New', monospace;

  /* 尺度：直角为主 */
  --wrap: 1200px;
  --wrap-narrow: 880px;
  --r-sm: 2px;
  --r:    2px;
  --r-lg: 2px;

  /* 零阴影：用 1px 边框承担分层 */
  --shadow-sm: none;
  --shadow:    none;
  --shadow-lg: 2px 2px 0 var(--line-3);   /* 唯一例外：浮层用极浅硬偏移 */

  --mono-label: 11px;   /* 等宽标签统一字号 */
  --track: .08em;       /* 等宽标签统一字距 */
}

/* ---------- 2. 基础 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 15px/1.72 var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'tnum' 1;   /* 表格数字等宽对齐 */
}

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
img { max-width: 100%; display: block; }
hr { border: 0; border-top: 1px solid var(--line); margin: 40px 0; }
code, kbd, samp { font-family: var(--font-mono); font-size: .9em; }
code { background: var(--bg-2); border: 1px solid var(--line-2); border-radius: 2px; padding: 1px 5px; color: var(--ink-soft); }

/* 标题：紧排无衬线，字重更陡 */
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--ink); margin: 0; font-weight: 800; }
h1 { font-size: 42px; line-height: 1.16; letter-spacing: -.028em; }
h2 { font-size: 30px; line-height: 1.26; letter-spacing: -.024em; }
h3 { font-size: 17px; line-height: 1.42; letter-spacing: -.012em; }
h4 { font-size: 15px; line-height: 1.45; letter-spacing: -.008em; }
p { margin: 0 0 16px; }
strong, b { font-weight: 700; }
sub { font-size: 12px; }

/* ---------- 3. 工具类 ---------- */
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 30px; }
.wrap-narrow { max-width: var(--wrap-narrow); margin: 0 auto; padding: 0 30px; }
.center { text-align: center; }
.mute { color: var(--mute); }
.small { font-size: 13px; }
.tiny { font-size: 12px; }

/* 等宽标签：全站统一的"工程感"信号 */
.mono, .tag, .stage-badge, .crumb, .chapter .num {
  font-family: var(--font-mono);
  letter-spacing: var(--track);
}

/* ---------- 4. 遥测条（替代原 topbar，终端式状态栏） ---------- */
.telemetry, .topbar {
  background: var(--ink);
  color: rgba(255,255,255,.62);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: .04em;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.telemetry .wrap, .topbar .wrap { display: flex; align-items: center; gap: 20px; height: 34px; }
.telemetry .dot, .topbar .dot {
  display: inline-block; width: 6px; height: 6px; background: var(--ok);
  border-radius: 0; margin-right: 7px; vertical-align: middle;
  box-shadow: 0 0 0 3px rgba(4,120,87,.22);
}
.telemetry .sep, .topbar .sep { color: rgba(255,255,255,.18); }
.telemetry .k { color: rgba(255,255,255,.34); }
.telemetry .v { color: rgba(255,255,255,.86); }
.telemetry .right, .topbar .right { margin-left: auto; display: flex; gap: 18px; align-items: center; }
.telemetry a, .topbar a { color: rgba(255,255,255,.62); }
.telemetry a:hover, .topbar a:hover { color: #fff; text-decoration: none; }

/* ---------- 5. 页头导航 ---------- */
.header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.header .wrap { display: flex; align-items: center; gap: 26px; height: 62px; }
.logo { display: flex; align-items: center; gap: 9px; font-family: var(--font-display); font-size: 19px; font-weight: 800; color: var(--ink); letter-spacing: -.03em; }
.logo:hover { text-decoration: none; }
.logo .mark {
  width: 28px; height: 28px; border-radius: 2px;
  background: var(--ink); color: #fff;
  display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 15px; font-weight: 700;
}
.logo .tm { font-size: 10px; color: var(--mute-2); align-self: flex-start; margin-left: -4px; font-family: var(--font-mono); }

.nav { display: flex; align-items: center; gap: 1px; margin-left: 8px; }
.nav > .item { position: relative; }
.nav > .item > a {
  display: block; padding: 9px 12px; font-size: 13.5px; font-weight: 600;
  color: var(--ink-soft); border-radius: 2px; white-space: nowrap;
}
.nav > .item > a:hover { background: var(--bg-2); color: var(--accent); text-decoration: none; }
.nav > .item.hot > a { color: var(--accent); }
.nav > .item.hot > a::after { content: '★'; font-size: 8px; margin-left: 4px; color: var(--sig); vertical-align: super; }

.drop {
  position: absolute; top: 100%; left: 0; min-width: 258px; background: #fff;
  border: 1px solid var(--line-3); border-radius: 2px;
  box-shadow: var(--shadow-lg); padding: 7px;
  opacity: 0; visibility: hidden; transform: translateY(-3px); transition: .14s;
}
.nav > .item:hover .drop { opacity: 1; visibility: visible; transform: translateY(0); }
.drop a { display: block; padding: 6px 10px; font-size: 13px; color: var(--ink-soft); border-radius: 2px; }
.drop a:hover { background: var(--accent-3); color: var(--accent); text-decoration: none; }
.drop .grp {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--mute-2); padding: 10px 10px 4px; text-transform: uppercase;
}
.drop .grp:first-child { padding-top: 4px; }
.drop .sub { display: flex; justify-content: space-between; gap: 10px; }
.drop .sub .tag { font-size: 10px; color: var(--mute-2); align-self: center; }
.drop .dim { opacity: .5; }

.head-actions { margin-left: auto; display: flex; gap: 9px; align-items: center; }

/* ---------- 6. 按钮（直角，无阴影，等宽可选） ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 10px 20px; font-size: 13.5px; font-weight: 600;
  border-radius: 2px; border: 1px solid transparent;
  font-family: inherit; cursor: pointer; transition: .14s; white-space: nowrap;
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-2); }
.btn-ghost { background: #fff; color: var(--ink); border-color: var(--line-3); }
.btn-ghost:hover { border-color: var(--ink); color: var(--ink); }
/* 原 .btn-gold 语义已废（金色弃用），保留 .btn-gold 作为兼容别名 */
.btn-signal, .btn-gold { background: var(--sig); color: #fff; border-color: var(--sig); }
.btn-signal:hover, .btn-gold:hover { background: var(--sig-2); border-color: var(--sig-2); }
.btn-lg { padding: 14px 28px; font-size: 14.5px; }
.btn-sm { padding: 6px 13px; font-size: 12.5px; }
.btn-row { display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- 7. Hero（近黑 + 网格，去掉圆环与斜纹） ---------- */
.hero {
  background: var(--ink); color: #fff;
  padding: 78px 0 70px; position: relative; overflow: hidden;
}
/* 网格底纹：工程图纸感（深色底变浅后，线要相应调淡） */
.hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 60px 60px;
}
/* 角标：左上/右下的坐标线 */
.hero::after {
  content: ''; position: absolute; left: 30px; top: 30px; width: 22px; height: 22px;
  border-left: 1px solid rgba(255,255,255,.3); border-top: 1px solid rgba(255,255,255,.3);
  pointer-events: none;
}
.hero .wrap { position: relative; z-index: 2; }
.hero .kicker {
  display: inline-flex; align-items: center; gap: 9px;
  background: transparent; border: 1px solid rgba(255,255,255,.24);
  padding: 5px 13px; border-radius: 2px;
  font-family: var(--font-mono); font-size: var(--mono-label);
  letter-spacing: var(--track); text-transform: uppercase;
  margin-bottom: 24px; color: rgba(255,255,255,.8);
}
.hero .kicker .dot { width: 5px; height: 5px; background: var(--sig-lt); border-radius: 0; }
.hero h1 { font-size: 52px; color: #fff; line-height: 1.14; max-width: 920px; letter-spacing: -.032em; }
.hero h1 em { font-style: normal; color: var(--sig-lt); }
.hero .lede { font-size: 16.5px; line-height: 1.85; color: rgba(255,255,255,.72); max-width: 800px; margin: 24px 0 34px; }
.hero .lede strong { color: #fff; font-weight: 700; }

.hero-q {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 48px;
  border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14);
}
.hero-q > div { padding: 20px 24px; border-right: 1px solid rgba(255,255,255,.09); }
.hero-q > div:last-child { border-right: 0; }
.hero-q .q { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #fff; margin-bottom: 6px; letter-spacing: -.015em; }
.hero-q .a { font-size: 12.5px; color: rgba(255,255,255,.62); line-height: 1.7; }
.hero-q .qq {
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: var(--track); color: var(--sig-lt); text-transform: uppercase; margin-bottom: 9px;
}
.hero-qnote { margin-top: 18px; font-size: 13.5px; color: rgba(255,255,255,.62); line-height: 1.75; }
.hero-qnote strong { color: #fff; }
.hero-qnote a { color: var(--sig-lt); border-bottom: 1px solid rgba(217,164,124,.4); }

/* ---------- 8. 双读者分流 ---------- */
.split { background: var(--bg-2); border-bottom: 1px solid var(--line); }
.split .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.split a { display: block; padding: 30px 34px; border-right: 1px solid var(--line); transition: .16s; position: relative; }
.split a:last-child { border-right: 0; }
.split a:hover { background: #fff; text-decoration: none; }
.split a:hover .go { color: var(--accent); }
.split .who {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--sig-2); text-transform: uppercase; margin-bottom: 9px;
}
.split .ttl { font-family: var(--font-display); font-size: 21px; font-weight: 800; color: var(--ink); margin-bottom: 8px; letter-spacing: -.02em; }
.split .desc { font-size: 13px; color: var(--mute); line-height: 1.72; }
.split .go { font-size: 13px; font-weight: 700; color: var(--ink-3); margin-top: 13px; display: block; transition: .16s; }
.split .ico { position: absolute; right: 30px; top: 30px; font-size: 22px; opacity: .12; font-family: var(--font-mono); }

/* ---------- 9. 区块 ---------- */
.sec { padding: 70px 0; }
.sec.tight { padding: 52px 0; }
.sec.paper { background: var(--bg-2); border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.sec.tint { background: var(--tint); }
.sec.dark { background: var(--ink); color: rgba(255,255,255,.78); }
.sec.dark h2, .sec.dark h3 { color: #fff; }
.sec.dark .head p { color: rgba(255,255,255,.62); }
.sec.dark code { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.16); color: rgba(255,255,255,.9); }

/* 标题组：等宽编号 + 贯穿细线 */
.head { margin-bottom: 40px; }
.head .chapter {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--accent); text-transform: uppercase;
  margin-bottom: 14px;
}
.head .chapter::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.head .chapter .num {
  display: inline-block; padding: 1px 7px; border: 1px solid var(--accent);
  color: var(--accent); border-radius: 2px; letter-spacing: 0; font-weight: 700;
}
.sec.dark .head .chapter { color: var(--sig-lt); }
.sec.dark .head .chapter .num { border-color: var(--sig-lt); color: var(--sig-lt); }
.sec.dark .head .chapter::after { background: rgba(255,255,255,.14); }
/* .verify 同为深色底（类名不同），章节标签同样要提亮 */
.verify .head .chapter { color: var(--sig-lt); }
.verify .head .chapter .num { border-color: var(--sig-lt); color: var(--sig-lt); }
/* 深色底上的描边按钮 */
.btn-ghost.on-dark { background: transparent; color: #fff; border-color: rgba(255,255,255,.3); }
.btn-ghost.on-dark:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.45); }
/* ---- 深色区（.sec.dark / .verify）内的排版与着色 ----
   这些原本散落在页面内联 style 里（违反样式单一来源），收归此处。
   注意：深色底上的强调色用 --sig-lt（--sig 在深色底只有 3.4:1，不足）。 */
.sec.dark.pad-lg { padding: 64px 0; }
.sec.dark .head.narrow { max-width: 900px; }
.sec.dark .head h2.xl { font-size: 31px; line-height: 1.5; margin-bottom: 22px; }
.sec.dark .head p.lg { font-size: 17px; line-height: 1.9; color: rgba(255,255,255,.8); }
.sec.dark strong { color: #fff; }
.sec.dark em { font-style: normal; color: var(--sig-lt); }
.verify .lede strong { color: var(--sig-lt); }
/* 表格里的状态格（替代内联 color:var(--warn);font-weight:700） */
.tbl td.warn { color: var(--warn); font-weight: 700; }

.head h2 { max-width: 880px; }
.head p { font-size: 15.5px; color: var(--mute); max-width: 820px; margin-top: 14px; line-height: 1.82; }
.head.center { text-align: center; }
.head.center h2, .head.center p { margin-left: auto; margin-right: auto; }
.head.center .chapter { justify-content: center; }
.head.center .chapter::after { display: none; }

/* ---------- 10. 五柱 ---------- */
.pillars { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border: 1px solid var(--line); }
.pillar {
  background: var(--paper); padding: 24px 20px; position: relative;
  transition: .16s; display: block; border-right: 1px solid var(--line);
}
.pillar:last-child { border-right: 0; }
.pillar:hover { background: var(--bg-2); text-decoration: none; }
.pillar:hover .nm { color: var(--accent); }
.pillar .idx { font-family: var(--font-mono); font-size: 11px; color: var(--mute-2); font-weight: 600; letter-spacing: var(--track); }
.pillar .nm { font-family: var(--font-display); font-size: 21px; font-weight: 800; color: var(--ink); margin: 7px 0 10px; letter-spacing: -.02em; transition: .16s; }
.pillar .ds { font-size: 12.5px; color: var(--mute); line-height: 1.7; }
.pillar .lk { font-size: 12px; color: var(--accent); font-weight: 700; margin-top: 14px; display: block; }
/* 五柱第三行 · 锚点：只写可核验口径或能力状态，不写能力主张 */
.pillar .an {
  font-size: 11px; color: var(--mute-2); line-height: 1.6;
  margin-top: 11px; padding-top: 9px; border-top: 1px solid var(--line-2);
}
.pillar.pending { background: repeating-linear-gradient(45deg, transparent 0 7px, rgba(194,65,12,.045) 7px 14px); }
.pillar.pending .nm::after {
  content: '规划中'; font-family: var(--font-mono); font-size: 9.5px; font-weight: 600;
  color: var(--warn); border: 1px solid var(--warn); border-radius: 2px;
  padding: 1px 5px; margin-left: 7px; vertical-align: 4px; letter-spacing: 0;
}

/* ---------- 11. 决策层六问 ---------- */
.qgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.qcard {
  background: var(--paper); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
  padding: 26px 24px 24px; transition: .16s; display: block; position: relative;
}
.qcard::before {
  content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 2px; background: var(--accent);
  transform: scaleX(0); transform-origin: left; transition: .2s;
}
.qcard:hover { background: var(--bg-2); text-decoration: none; }
.qcard:hover::before { transform: scaleX(1); }
.qcard .no { font-family: var(--font-mono); font-size: 11px; font-weight: 600; color: var(--mute-2); letter-spacing: var(--track); }
.qcard .q { font-family: var(--font-display); font-size: 19px; font-weight: 800; color: var(--ink); line-height: 1.42; margin: 9px 0 12px; letter-spacing: -.02em; }
.qcard .now { font-size: 13px; color: var(--mute); line-height: 1.75; }
.qcard .lk { font-size: 12.5px; color: var(--accent); font-weight: 700; margin-top: 16px; }

/* ---------- 12. 五阶段 ---------- */
.stages { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border: 1px solid var(--line); background: var(--paper); overflow: hidden; }
.stage { padding: 24px 18px 22px; border-right: 1px solid var(--line-2); position: relative; display: block; transition: .16s; }
.stage:last-child { border-right: 0; }
.stage:hover { background: var(--bg-2); text-decoration: none; }
.stage .sn { font-family: var(--font-mono); font-size: 22px; font-weight: 700; color: var(--line-3); line-height: 1; letter-spacing: -.02em; }
.stage .st { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--ink); margin: 12px 0 8px; letter-spacing: -.015em; }
.stage .sd { font-size: 12px; color: var(--mute); line-height: 1.68; }
.stage .cnt { font-family: var(--font-mono); font-size: 10.5px; color: var(--mute-2); border-top: 1px solid var(--line-2); margin-top: 14px; padding-top: 10px; letter-spacing: .02em; }
/* 阶段上的 ISO 55001:2024 §8.1 过程锚点 */
.stage .iso {
  font-family: var(--font-mono); font-size: 9.5px; font-weight: 600;
  letter-spacing: .03em; color: var(--accent); margin-top: 8px; word-break: break-word;
}
.stage.pending { background: repeating-linear-gradient(45deg, transparent 0 7px, rgba(169,102,58,.05) 7px 14px); }
.stage.pending .st::after {
  content: '规划中'; font-family: var(--font-mono); font-size: 9.5px; font-weight: 600;
  color: var(--warn); border: 1px solid var(--warn); border-radius: 2px;
  padding: 0 4px; margin-left: 6px; vertical-align: 3px;
}
.stage-base {
  margin-top: -1px; border: 1px solid var(--line); border-top: 0;
  background: var(--bg-2); padding: 16px 22px; display: flex; align-items: center; gap: 18px;
}
.stage-base .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--ink-3); text-transform: uppercase; white-space: nowrap;
}
.stage-base .items { display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.stage-base .items a { color: var(--ink-soft); border-bottom: 1px dotted var(--line-3); }
.stage-base .items a:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }

/* ---------- 13. 可核验区（近黑，数字等宽） ---------- */
.verify { background: var(--ink); color: #fff; padding: 62px 0; position: relative; overflow: hidden; }
.verify::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.024) 1px, transparent 1px);
  background-size: 60px 60px;
}
.verify .wrap { position: relative; z-index: 2; }
.verify h2 { color: #fff; }
.verify .lede { color: rgba(255,255,255,.68); font-size: 15.5px; max-width: 740px; margin: 14px 0 34px; line-height: 1.8; }
.vgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.vgrid > div { padding: 26px 24px; border-right: 1px solid rgba(255,255,255,.09); }
.vgrid > div:last-child { border-right: 0; }
.vgrid .num { font-family: var(--font-mono); font-size: 36px; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -.03em; }
.vgrid .num small { font-size: 13px; color: var(--sig-lt); font-weight: 500; margin-left: 5px; letter-spacing: 0; }
.vgrid .lb { font-size: 12.5px; color: rgba(255,255,255,.6); margin-top: 11px; line-height: 1.65; }
.verify .foot { margin-top: 26px; font-size: 12.5px; color: rgba(255,255,255,.5); line-height: 1.85; }
.verify .foot strong { color: rgba(255,255,255,.85); }

/* ---------- 14. 栅格与卡片（1px 描边，无阴影） ----------
   栅格边框策略：**容器给完整边框，单元格只给右/下细线**。
   这样末行不满时（例如 .roles 5 张卡排 3 列）右边线依然闭合。 */
.grid2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border: 1px solid var(--line); }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--line); }
.grid2 > *, .grid3 > *, .grid4 > * { border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
/* 裸列（FAQ、洞察这类纯文本分栏）需要内边距。
   带 class 的单元格（.card / .qcard / .acard / .stat 等）各自已有内边距，不重复加。 */
.grid2 > div:not([class]), .grid3 > div:not([class]), .grid4 > div:not([class]) { padding: 24px 26px; }

.card {
  background: var(--paper); padding: 24px 22px; display: block; transition: .16s; position: relative;
}
.card:hover { background: var(--bg-2); text-decoration: none; }
.card .ic {
  font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: var(--track);
  color: var(--mute-2); margin-bottom: 12px; display: block;
}
.card h3 { margin-bottom: 9px; }
.card p { font-size: 13px; color: var(--mute); margin: 0; line-height: 1.78; }
.card .meta { font-family: var(--font-mono); font-size: 10.5px; color: var(--mute-2); margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; letter-spacing: .03em; }
.card .tag {
  display: inline-block; font-family: var(--font-mono); font-size: 10px; font-weight: 600;
  color: var(--accent); background: var(--accent-3); border-radius: 2px; padding: 2px 6px; letter-spacing: .02em;
}

/* 文章卡 */
.acard {
  background: var(--paper); border: 1px solid var(--line);
  border-left: 2px solid var(--line-3);
  padding: 20px 22px; display: block; transition: .16s;
}
.acard:hover { border-left-color: var(--sig); background: var(--bg-2); text-decoration: none; }
.acard .ttl { font-family: var(--font-display); font-size: 17px; font-weight: 800; color: var(--ink); line-height: 1.44; margin-bottom: 8px; letter-spacing: -.018em; }
.acard .ds { font-size: 13px; color: var(--mute); line-height: 1.72; }
.acard .meta { font-family: var(--font-mono); font-size: 10.5px; color: var(--mute-2); margin-top: 12px; display: flex; gap: 10px; flex-wrap: wrap; letter-spacing: .03em; }

/* ---------- 15. 数据卡 ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--line); }
.stat { background: var(--paper); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); padding: 20px 18px; }
.stat .num { font-family: var(--font-mono); font-size: 27px; font-weight: 700; color: var(--ink); line-height: 1.06; letter-spacing: -.03em; }
.stat .num small { font-size: 12px; color: var(--sig-2); font-weight: 600; margin-left: 3px; letter-spacing: 0; }
/* 成果溯源标签：区分「AI 带来的」与「架构性的」，不把架构成果算在 AI 头上 */
.stat .kind {
  display: inline-block; font-family: var(--font-mono); font-size: 9.5px; font-weight: 700;
  letter-spacing: var(--track); text-transform: uppercase;
  padding: 2px 6px; border-radius: 2px; margin-bottom: 11px;
  border: 1px solid var(--sig-line); color: var(--sig-2); background: var(--sig-3);
}
.stat .kind.arch { border-color: var(--accent-line); color: var(--accent-2); background: var(--accent-3); }
.stat .lb { font-size: 12px; color: var(--mute); margin-top: 9px; line-height: 1.65; }
.stat .src {
  font-family: var(--font-mono); font-size: 10.5px; color: var(--mute-2);
  border-top: 1px solid var(--line-2); margin-top: 13px; padding-top: 9px; line-height: 1.6; letter-spacing: .02em;
}

/* ---------- 16. 表格（主要的信息载体） ---------- */
.tbl { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--paper); }
.tbl th, .tbl td { border: 1px solid var(--line); padding: 11px 13px; text-align: left; vertical-align: top; line-height: 1.68; }
.tbl th {
  background: var(--bg-2); font-weight: 700; font-size: 11.5px; color: var(--ink);
  font-family: var(--font-mono); letter-spacing: .04em; text-transform: uppercase;
}
.tbl td.c { text-align: center; }
.tbl .ok { color: var(--ok); font-weight: 700; }
.tbl .part { color: var(--mute); }
.tbl .no { color: var(--mute-2); opacity: .7; }
.tbl caption { caption-side: bottom; text-align: left; font-size: 11.5px; color: var(--mute-2); padding-top: 9px; line-height: 1.68; }

/* ---------- 17. 引语 / 要点 / 公式 ---------- */
.callout {
  background: var(--bg-2); border: 1px solid var(--line);
  border-left: 3px solid var(--sig); border-radius: 0;
  padding: 20px 24px; margin: 26px 0; position: relative;
}
.callout p { margin: 0; font-size: 14px; color: var(--ink-soft); line-height: 1.8; }
.callout cite { display: block; margin-top: 10px; font-family: var(--font-mono); font-size: 11px; color: var(--mute); font-style: normal; }

.insight { background: var(--accent-3); border: 1px solid var(--accent-line); border-left: 3px solid var(--accent); padding: 20px 24px; margin: 26px 0; }
.insight .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); letter-spacing: var(--track);
  color: var(--accent-2); text-transform: uppercase; font-weight: 600; margin-bottom: 9px;
}
.insight p { margin: 0; font-size: 14px; line-height: 1.8; }

.formula { background: var(--ink); color: #fff; border-radius: 2px; padding: 26px 30px; margin: 28px 0; position: relative; overflow: hidden; }
.formula::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.024) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.024) 1px, transparent 1px);
  background-size: 40px 40px;
}
.formula > * { position: relative; z-index: 1; }
.formula .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); letter-spacing: var(--track);
  color: var(--sig-lt); text-transform: uppercase; font-weight: 600; margin-bottom: 13px;
}
.formula .fx { font-family: var(--font-mono); font-size: 19px; font-weight: 700; color: #fff; line-height: 1.6; letter-spacing: -.01em; }
.formula .fx em { font-style: normal; color: var(--sig-lt); }
.formula .note { font-size: 12.5px; color: rgba(255,255,255,.58); margin-top: 15px; line-height: 1.8; margin-bottom: 0; }

/* ---------- 18. 内页页头 ---------- */
.phead { background: var(--bg-2); border-bottom: 1px solid var(--line); padding: 44px 0 40px; }
.crumb { font-family: var(--font-mono); font-size: 11.5px; color: var(--mute-2); margin-bottom: 16px; letter-spacing: .03em; }
.crumb a { color: var(--mute); }
.crumb .sp { margin: 0 7px; color: var(--line-3); }
.phead h1 { font-size: 38px; }
.phead .lede { font-size: 15.5px; color: var(--mute); max-width: 820px; margin: 16px 0 0; line-height: 1.85; }
.phead .stage-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--ink); color: #fff; border-radius: 2px;
  padding: 4px 12px; font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); text-transform: uppercase; margin-bottom: 14px;
}
.phead .pending-note {
  margin-top: 18px; background: var(--sig-3); border: 1px solid var(--sig-line);
  color: var(--sig-2); border-radius: 2px; padding: 11px 15px; font-size: 12.5px;
}

/* ---------- 19. 长文排版 ---------- */
.prose { font-size: 15.5px; line-height: 1.95; color: var(--ink-soft); }
.prose h2 { font-size: 25px; margin: 50px 0 16px; padding-top: 26px; border-top: 1px solid var(--line-2); }
.prose h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.prose h2 .idx {
  display: inline-block; width: 26px; height: 26px; border-radius: 2px;
  background: var(--ink); color: #fff; font-family: var(--font-mono);
  font-size: 12px; line-height: 26px; text-align: center; margin-right: 12px;
  vertical-align: 4px; font-weight: 600;
}
.prose h3 { font-size: 17px; margin: 32px 0 12px; }
.prose p { margin-bottom: 18px; }
.prose ul, .prose ol { margin: 0 0 18px; padding-left: 24px; }
.prose li { margin-bottom: 8px; }
.prose .src { font-family: var(--font-mono); font-size: 11.5px; color: var(--mute-2); border-top: 1px solid var(--line-2); padding-top: 9px; margin-top: 14px; letter-spacing: .02em; }

/* 数据来源脚注的基础样式：可用于正文、stat 卡与独立段落。
   原先只在 .stat / .prose 内定义，导致区块内裸用 <p class="src"> 无样式。 */
.src {
  font-family: var(--font-mono); font-size: 11.5px; color: var(--mute-2);
  border-top: 1px solid var(--line-2); padding-top: 9px; margin-top: 14px; letter-spacing: .02em;
}

.article { display: grid; grid-template-columns: 1fr 224px; gap: 54px; align-items: start; }
.toc { position: sticky; top: 84px; font-size: 12.5px; border-left: 1px solid var(--line); padding-left: 16px; }
.toc .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); letter-spacing: var(--track);
  color: var(--mute-2); text-transform: uppercase; font-weight: 600; margin-bottom: 11px;
}
.toc a { display: block; color: var(--mute); padding: 3px 0; line-height: 1.55; }
.toc a:hover { color: var(--accent); text-decoration: none; }
.toc a.on { color: var(--accent); font-weight: 600; }

/* 长文页：文章头元信息行 / 上一篇·下一篇（作者与来源卡复用 .kv） */
.artmeta {
  display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 20px;
  font-family: var(--font-mono); font-size: 11.5px; color: var(--mute-2); letter-spacing: .02em;
}
.artmeta b { color: var(--ink-3); font-weight: 600; }
.pn { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); margin-top: 34px; }
.pn a { display: block; padding: 18px 22px; border-right: 1px solid var(--line-2); }
.pn a:last-child { border-right: 0; text-align: right; }
.pn .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); letter-spacing: var(--track);
  color: var(--mute-2); text-transform: uppercase; font-weight: 600; margin-bottom: 8px;
}
.pn .ttl { font-size: 14.5px; font-weight: 700; color: var(--ink); line-height: 1.5; }
.pn a:hover .ttl { color: var(--accent); }

/* 收口页的小标题与强调卡片（原先靠内联 color，现收归单一来源） */
.sh { font-size: 15px; font-weight: 700; color: var(--sig-2); margin: 0 0 16px; letter-spacing: .01em; }
.sh.first { margin-top: 40px; }
.acard.sig { border-left-color: var(--sig); }

/* 编号清单 ol.steps：等宽序号 + 1px 分隔线（技术规范书取向） */
.steps { counter-reset: st; list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line-2); }
.steps li {
  counter-increment: st; position: relative; padding: 13px 0 13px 46px;
  border-bottom: 1px solid var(--line-2); font-size: 13.5px; color: var(--mute); line-height: 1.78;
}
.steps li::before {
  content: counter(st, decimal-leading-zero); position: absolute; left: 0; top: 14px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 700; color: var(--line-3); letter-spacing: -.01em;
}
.steps li strong { color: var(--ink); }

/* ---------- 内联样式收归单一来源：原 style="" 里的颜色/字体 ---------- */
.mn          { font-size: 10px; color: var(--sig-2); opacity: .9; }
.sigtxt      { color: var(--sig); }
.sig-title   { color: var(--sig); font-weight: 700; margin-bottom: 8px; }
.warn-strong { color: var(--warn); font-weight: 700; }
.w80         { color: rgba(255,255,255,.8); }
.w85         { color: rgba(255,255,255,.85); }
.w50         { color: rgba(255,255,255,.5); }
.w50.mt      { margin-top: 20px; }
.chip        { display: inline-block; font-size: 11.5px; font-weight: 600; color: var(--accent); background: var(--accent-3); border-radius: 3px; padding: 3px 9px; }
.chip.mute   { color: var(--mute); background: var(--bg-2); }
.bg-2        { background: var(--bg-2); }
.body-font   { font-family: var(--font-body); }
.sig-border  { border-style: solid; border-color: var(--sig); }
.dashed-bg   { border-style: dashed; background: var(--bg); }
.warn-left   { border-left-color: var(--warn); background: linear-gradient(180deg, rgba(184,92,46,.07), rgba(184,92,46,.02)); }
.sig-tint    { border-color: var(--sig); background: var(--tint); }
/* 代码／参数块：默认适配浅色正文（技术系列大量使用，63 处中 62 处在浅色区）。
   深色区块内自动反色，见紧邻的 override。 */
.codeblk {
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 2px;
  padding: 18px 22px; margin-top: 24px; font-family: var(--font-mono);
  font-size: 12.5px; line-height: 1.9; color: var(--ink-3); overflow-x: auto;
}
.verify .codeblk, .sec.dark .codeblk, .hero .codeblk, .cta .codeblk {
  background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.16);
  color: rgba(255,255,255,.85);
}

/* 草稿标记：原型期用来标出「上线前必须处理」的位置，不属公开文案，上线前统一删除 */
.draft-note {
  margin-top: 16px; padding: 11px 15px; border: 1px dashed var(--warn);
  background: var(--bg-2); font-size: 12.5px; line-height: 1.75; color: var(--warn);
}
/* 深色底变体：暖色在深色底对比度不足，改用 --sig-lt */
.verify .draft-note, .sec.dark .draft-note, .hero .draft-note {
  border-color: var(--sig-lt); color: var(--sig-lt); background: rgba(255,255,255,.04);
}

/* ---------- 20. 结尾 CTA ---------- */
.cta { background: var(--ink); color: #fff; padding: 66px 0; position: relative; overflow: hidden; }
.cta::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 60px 60px;
}
.cta .wrap { position: relative; z-index: 2; }
.cta h2 { color: #fff; font-size: 31px; margin-bottom: 14px; }
.cta p { color: rgba(255,255,255,.68); font-size: 15.5px; max-width: 700px; margin-bottom: 30px; }
.cta .dual { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 34px; border: 1px solid rgba(255,255,255,.16); }
.cta .dual > div { border-right: 1px solid rgba(255,255,255,.12); padding: 22px 24px; background: rgba(255,255,255,.03); }
.cta .dual > div:last-child { border-right: 0; }
.cta .dual .who {
  font-family: var(--font-mono); font-size: var(--mono-label); letter-spacing: var(--track);
  text-transform: uppercase; color: var(--sig-lt); font-weight: 600; margin-bottom: 10px;
}
.cta .dual .t { font-size: 14.5px; font-weight: 700; color: #fff; margin-bottom: 13px; }

/* ---------- 21. 页脚 ---------- */
.foot { background: var(--ink); color: rgba(255,255,255,.55); font-size: 12.5px; padding: 52px 0 24px; border-top: 1px solid rgba(255,255,255,.08); }
.foot .cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: 30px; margin-bottom: 40px; }
.foot h4 {
  color: #fff; font-size: var(--mono-label); font-family: var(--font-mono); font-weight: 600;
  letter-spacing: var(--track); text-transform: uppercase; margin-bottom: 14px;
}
.foot a { display: block; color: rgba(255,255,255,.55); padding: 4px 0; }
.foot a:hover { color: #fff; text-decoration: none; }
.foot .about { font-size: 12.5px; line-height: 1.85; padding-right: 20px; }
.foot .about .logo { color: #fff; margin-bottom: 12px; }
.foot .about .logo .mark { background: #fff; color: var(--ink); }
.foot .badges { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 16px; }
.foot .badges span {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .03em;
  border: 1px solid rgba(255,255,255,.16); border-radius: 2px; padding: 2px 8px; color: rgba(255,255,255,.5);
}
.foot .bar { border-top: 1px solid rgba(255,255,255,.09); padding-top: 20px; display: flex; gap: 18px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 11px; letter-spacing: .02em; }
.foot .bar .r { margin-left: auto; display: flex; gap: 16px; }

/* ---------- 22. 原型标注（仅原型用） ---------- */
.proto-note { background: var(--sig-3); border-top: 1px solid var(--sig-line); border-bottom: 1px solid var(--sig-line); font-size: 12px; color: var(--sig-2); font-family: var(--font-mono); letter-spacing: .01em; }
.proto-note .wrap { padding: 9px 30px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.proto-note b { color: var(--sig-2); }
.proto-note code { background: rgba(0,0,0,.05); border-color: transparent; color: var(--sig-2); }

/* 分栏小标题（洞察、FAQ 等两栏/三栏的栏首） */
.colhead { margin-bottom: 14px; color: var(--sig-2); }

/* ---- FAQ 分栏（首页 / 各内页通用） ---- */
.faq .fgroup {
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 700;
  letter-spacing: var(--track); text-transform: uppercase; color: var(--sig-2);
  border-bottom: 1px solid var(--line); padding-bottom: 9px; margin-bottom: 20px;
}
.faq h4 { font-size: 14.5px; font-weight: 700; color: var(--ink); margin: 0 0 7px; letter-spacing: -.012em; line-height: 1.5; }
.faq h4 + p { margin: 0 0 22px; }
.faq h4:last-child { margin-bottom: 0; }

/* ==========================================================================
   23. 复合组件（v1 中**完全缺失**的 24 个类，此处补齐）
   ========================================================================== */

/* ---- 23.1 能力地图（/product/ 的核心大图） ---- */
.map { border: 1px solid var(--line); background: var(--paper); }
.map .cap {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  padding: 13px 20px; border-bottom: 1px solid var(--line); background: var(--bg-2);
}
.map .cap .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--sig-2); border: 1px solid var(--sig);
  border-radius: 2px; padding: 1px 7px; text-transform: uppercase;
}
.map .cap .t { font-family: var(--font-display); font-size: 15px; font-weight: 800; color: var(--ink); letter-spacing: -.015em; }
.map .layer { display: grid; grid-template-columns: repeat(5, 1fr); }
.map .layer.l5 { grid-template-columns: repeat(5, 1fr); }
.map .boxm {
  display: block; padding: 16px 15px; border-right: 1px solid var(--line-2);
  border-bottom: 1px solid var(--line-2); transition: .15s; background: var(--paper);
}
.map .boxm:last-child { border-right: 0; }
.map .boxm:hover { background: var(--accent-3); text-decoration: none; }
.map .boxm .nm { font-family: var(--font-display); font-size: 14.5px; font-weight: 800; color: var(--ink); margin-bottom: 6px; letter-spacing: -.012em; }
.map .boxm .ds { font-size: 11.5px; color: var(--mute); line-height: 1.65; }
.map .boxm .sn { font-family: var(--font-mono); font-size: 11px; color: var(--mute-2); margin-bottom: 5px; letter-spacing: var(--track); }
.map .boxm.tall { min-height: 96px; }
.map .boxm.pend { background: repeating-linear-gradient(45deg, transparent 0 7px, rgba(194,65,12,.04) 7px 14px); }
.map .boxm.pend .nm::after { content: '· 待确认'; font-family: var(--font-mono); font-size: 9px; color: var(--warn); font-weight: 600; }
.map .arrowrow {
  display: grid; grid-template-columns: repeat(5, 1fr);
  border-bottom: 1px solid var(--line-2); background: var(--bg-2); color: var(--line-3);
}
.map .arrowrow span { text-align: center; font-size: 11px; padding: 3px 0; }
.map .base {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  padding: 15px 20px; background: var(--tint); border-bottom: 1px solid var(--line-2);
}
.map .base .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--ink-3); text-transform: uppercase; white-space: nowrap;
}
.map .base .it { display: flex; gap: 9px; flex-wrap: wrap; font-size: 12.5px; align-items: center; }
.map .base .it a { color: var(--ink-soft); border-bottom: 1px dotted var(--line-3); }
.map .base .it a:hover { color: var(--accent); border-color: var(--accent); text-decoration: none; }
.map .base .it .m { color: var(--line-3); }
.map .side { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border-top: 1px solid var(--line); }
.map .side .boxm {
  border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); padding: 18px 20px;
}
.map .side .boxm .nm { font-family: var(--font-display); font-size: 14px; font-weight: 800; color: var(--ink); margin-bottom: 7px; letter-spacing: -.012em; }
.map .side .boxm .ds { font-size: 12px; color: var(--mute); line-height: 1.72; }

/* ---- 23.2 角色卡（/for-operations/） ---- */
.roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.role {
  display: block; background: var(--paper); border-right: 1px solid var(--line-2);
  border-bottom: 1px solid var(--line-2); padding: 24px 22px; transition: .16s; position: relative;
}
.role:hover { background: var(--bg-2); text-decoration: none; }
.role:hover .who { color: var(--sig-2); }
.role .who {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--mute-2); text-transform: uppercase;
  margin-bottom: 11px; transition: .16s;
}
.role .t { font-family: var(--font-display); font-size: 17px; font-weight: 800; color: var(--ink); line-height: 1.44; margin-bottom: 10px; letter-spacing: -.018em; }
.role .d { font-size: 13px; color: var(--mute); line-height: 1.78; }
.role .lk { font-size: 12.5px; color: var(--accent); font-weight: 700; margin-top: 15px; display: block; }

/* ---- 23.3 自检清单（/for-executives/） ---- */
.selfcheck { border: 1px solid var(--line); background: var(--paper); }
.selfcheck .hd {
  padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--bg-2);
  display: flex; flex-direction: column; gap: 5px;
}
.selfcheck .hd .t { font-family: var(--font-display); font-size: 17px; font-weight: 800; color: var(--ink); letter-spacing: -.018em; }
.selfcheck .hd .s { font-size: 12.5px; color: var(--mute); }
.selfcheck ol { list-style: none; margin: 0; padding: 0; counter-reset: q; }
.selfcheck li {
  counter-increment: q; display: flex; gap: 14px; align-items: flex-start;
  padding: 16px 24px; border-bottom: 1px solid var(--line-2);
}
.selfcheck li:last-child { border-bottom: 0; }
.selfcheck li::before {
  content: 'Q' counter(q); flex: 0 0 26px; margin-top: 3px;
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 600;
  color: var(--mute-2); letter-spacing: .02em;
}
.selfcheck input[type=checkbox] {
  appearance: none; -webkit-appearance: none; flex: 0 0 auto;
  width: 17px; height: 17px; margin: 3px 0 0; border: 1px solid var(--line-3);
  border-radius: 2px; background: #fff; cursor: pointer; position: relative;
}
.selfcheck input[type=checkbox]:checked { background: var(--accent); border-color: var(--accent); }
.selfcheck input[type=checkbox]:checked::after {
  content: ''; position: absolute; left: 5px; top: 1px; width: 4px; height: 9px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(43deg);
}
.selfcheck li:has(input:checked) .q { color: var(--mute-2); text-decoration: line-through; }
.selfcheck label { flex: 1; cursor: pointer; }
.selfcheck .q { display: block; font-family: var(--font-display); font-size: 15.5px; font-weight: 700; color: var(--ink); margin-bottom: 5px; letter-spacing: -.012em; }
.selfcheck .d { display: block; font-size: 12.5px; color: var(--mute); line-height: 1.72; }
.selfcheck .ft {
  padding: 15px 24px; border-top: 1px solid var(--line); background: var(--bg-2);
  font-size: 12.5px; color: var(--mute); line-height: 1.72;
}

/* ---- 23.4 行业页：痛点卡 / 结构图 / 流程图 / 栅格 ---- */
.pain { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border: 1px solid var(--line); }
.pcard { background: var(--paper); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); padding: 22px 22px; }
/* 新版结构（13 个产品页统一）：.no 序号 + h4 标题 + p 正文 */
.pcard .no {
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 700;
  letter-spacing: var(--track); color: var(--sig-2); margin-bottom: 10px;
}
.pcard h4 { font-size: 15px; font-weight: 700; color: var(--ink); margin: 0 0 8px; letter-spacing: -.012em; line-height: 1.5; }
.pcard p { font-size: 13px; color: var(--mute); line-height: 1.8; margin: 0; }
.pcard p strong { color: var(--ink-soft); }
/* 旧版结构（discrete-manufacturing）：.t + .d */
.pcard .t { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--ink); margin-bottom: 10px; letter-spacing: -.015em; }
.pcard .d { font-size: 13px; color: var(--mute); line-height: 1.8; }
.pcard .d strong { color: var(--ink-soft); }

/* 行业页能力卡上的「规划中」：与 .pillar.pending / .stage.pending 同族斜纹 */
.card.pending { background: repeating-linear-gradient(45deg, transparent 0 7px, rgba(169,102,58,.05) 7px 14px); }
/* 卡片底部「了解 →」链接（统一加粗，避免每处写内联 font-weight） */
.card .meta a { font-weight: 700; }

/* ---- 23.5 稿面结构 / 流程矩阵（/solutions/） ---- */
.struct { border: 1px solid var(--line); background: var(--paper); padding: 0; overflow: hidden; }
/* 流程/能力矩阵：左列是行标签（.rh），右侧五列对应五阶段 */
.flowmap { border: 1px solid var(--line); background: var(--paper); }
.flowmap .row { display: grid; grid-template-columns: 96px repeat(5, 1fr); align-items: stretch; }
.flowmap .row:first-child { background: var(--ink); }
.flowmap .rh {
  display: flex; align-items: center;
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: var(--track); text-transform: uppercase;
  color: var(--mute-2); padding: 11px 13px;
  border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
}
.flowmap .row:first-child .rh { border-right-color: rgba(255,255,255,.1); border-bottom-color: transparent; }
.flowmap .hdcell {
  font-family: var(--font-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: var(--track); color: rgba(255,255,255,.78);
  padding: 11px 13px; text-transform: uppercase;
  border-right: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1);
}
.flowmap .row:first-child .hdcell:last-child { border-right: 0; }
.flowmap .cell {
  font-size: 12px; color: var(--mute-2); padding: 12px 13px; line-height: 1.62;
  border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
}
.flowmap .row:last-child .cell, .flowmap .row:last-child .rh { border-bottom: 0; }
.flowmap .row .cell:last-child { border-right: 0; }
.flowmap .cell.on { color: var(--ink-soft); background: var(--accent-3); font-weight: 600; }
.flowmap .cell.dim { opacity: .38; }

/* ---- 23.5 三步步骤条（/product/verify/） ---- */
.steps3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); }
.steps3 > div {
  background: var(--paper); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
  padding: 24px 22px; position: relative;
}
.steps3 .n { font-family: var(--font-mono); font-size: 22px; font-weight: 700; color: var(--line-3); line-height: 1; letter-spacing: -.02em; }
.steps3 .t { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--ink); margin: 12px 0 9px; letter-spacing: -.015em; }
.steps3 .d { font-size: 13px; color: var(--mute); line-height: 1.78; }
.steps3 .cmd, code.cmd {
  display: block; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .01em;
  background: var(--ink); color: rgba(255,255,255,.86); border: 0; border-radius: 2px;
  padding: 9px 11px; margin-top: 14px; overflow-x: auto; white-space: nowrap;
}

/* ---- 23.6 精选卡（/insights/） ---- */
.feature { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border: 1px solid var(--line); }
.fcard {
  display: block; background: var(--paper); border-right: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2);
  padding: 24px 24px; transition: .16s;
}
.fcard:hover { background: var(--bg-2); text-decoration: none; }
.fcard .lb {
  font-family: var(--font-mono); font-size: var(--mono-label); font-weight: 600;
  letter-spacing: var(--track); color: var(--sig-2); text-transform: uppercase; margin-bottom: 10px;
}
.fcard .ttl { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: var(--ink); line-height: 1.44; margin-bottom: 9px; letter-spacing: -.02em; }
.fcard .ds { font-size: 13px; color: var(--mute); line-height: 1.75; }
.fcard .meta { font-family: var(--font-mono); font-size: 10.5px; color: var(--mute-2); margin-top: 12px; display: flex; gap: 9px; flex-wrap: wrap; letter-spacing: .03em; }

/* ---- 23.7 专题篇目列表（专题 Hub） ---- */
.series { border: 1px solid var(--line); background: var(--paper); }
.series .it {
  display: flex; gap: 18px; align-items: flex-start; padding: 20px 24px;
  border-bottom: 1px solid var(--line-2); transition: .15s;
}
.series .it:last-child { border-bottom: 0; }
.series .it:hover { background: var(--bg-2); text-decoration: none; }
.series .it .no {
  flex: 0 0 auto; font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  letter-spacing: .04em; color: var(--mute-2); border: 1px solid var(--line);
  border-radius: 2px; padding: 2px 8px; min-width: 54px; text-align: center;
}
.series .it .ttl { font-family: var(--font-display); font-size: 16px; font-weight: 800; color: var(--ink); line-height: 1.46; margin-bottom: 7px; letter-spacing: -.015em; }
.series .it .ds { font-size: 12.5px; color: var(--mute); line-height: 1.72; }
.series .it .m { font-family: var(--font-mono); font-size: 10.5px; color: var(--mute-2); margin-top: 8px; letter-spacing: .03em; }
.series .it.master { background: var(--accent-3); border-left: 3px solid var(--accent); }
.series .it.master .no { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ---- 23.8 键值对 / 截图位 / 行业结构图 ---- */
.kv { display: grid; grid-template-columns: 132px 1fr; gap: 0; border: 1px solid var(--line); font-size: 12.5px; }
.kv > * { padding: 10px 14px; border-bottom: 1px solid var(--line-2); }
.kv > *:nth-child(odd) {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .03em;
  color: var(--ink-3); background: var(--bg-2); border-right: 1px solid var(--line-2);
}
.shot { border: 1px solid var(--line); background: var(--bg-2); aspect-ratio: 16/9; display: grid; place-items: center; font-family: var(--font-mono); font-size: 11px; color: var(--mute-2); }

/* 行业页的深色结构图（.struct 用自己的双列 kv，与全局 .kv 不同） */
.struct { background: var(--ink); color: rgba(255,255,255,.8); padding: 30px 32px; border: 1px solid var(--ink); }
.struct h3 { color: #fff; font-size: 19px; margin-bottom: 13px; letter-spacing: -.015em; }
.struct p { font-size: 14px; line-height: 1.85; }
.struct .kv { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 22px; border: 0; }
.struct .kv > div {
  border: 0; border-top: 1px solid rgba(255,255,255,.16);
  padding: 14px 0 0; background: transparent;
}
.struct .kv .k {
  font-family: var(--font-mono); font-size: var(--mono-label); letter-spacing: var(--track);
  text-transform: uppercase; color: var(--sig); font-weight: 600; margin-bottom: 6px;
}
.struct .kv .v { font-size: 13px; color: rgba(255,255,255,.72); line-height: 1.72; }

/* ---- 23.9 资产分类编码可视化（/product/data-model/） ---- */
.codebar { display: flex; align-items: stretch; border: 1px solid var(--line); background: var(--paper); }
.codebar > div { flex: 1; padding: 16px 14px; border-right: 1px solid var(--line-2); text-align: center; }
.codebar > div:last-child { border-right: 0; }
.codebar .v { font-family: var(--font-mono); font-size: 19px; font-weight: 700; color: var(--accent-lt); letter-spacing: -.02em; }
.codebar .k { font-size: 11px; color: var(--mute); margin-top: 6px; line-height: 1.55; }
.codebar .fixed { background: var(--ink); }
.codebar .fixed .v { color: var(--sig-lt); }
.codebar .fixed .k { color: rgba(255,255,255,.6); }

/* ---- 23.10 专题筛选条（/insights/） ---- */
.filters { display: inline-flex; flex-wrap: wrap; margin-bottom: 30px; border: 1px solid var(--line); }
.filters a {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .04em;
  padding: 7px 15px; color: var(--ink-soft); border-right: 1px solid var(--line); transition: .14s;
}
.filters a:last-child { border-right: 0; }
.filters a:hover { background: var(--bg-2); color: var(--accent); text-decoration: none; }
.filters a.on { background: var(--ink); color: #fff; font-weight: 600; }

/* ---- 23.11 其余零碎 ---- */
.flowmap .cell.dim { opacity: .38; }
.steps3 .free {
  display: inline-block; font-family: var(--font-mono); font-size: 10px; font-weight: 600;
  letter-spacing: .04em; color: var(--ok); border: 1px solid var(--ok);
  border-radius: 2px; padding: 2px 7px; margin-left: 8px; vertical-align: 2px;
}
.series .no {
  flex: 0 0 auto; font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  letter-spacing: .04em; color: var(--mute-2); border: 1px solid var(--line);
  border-radius: 2px; padding: 2px 8px; min-width: 54px; text-align: center;
}

/* ---- 23.12 工程角标（图纸感，erinone 式"圆环装饰"的对立面） ---- */
.map, .formula, .steps3, .series, .codebar, .flowmap { position: relative; }
.map::after, .steps3::after, .series::after, .codebar::after, .flowmap::after {
  content: ''; position: absolute; right: 7px; bottom: 7px; width: 13px; height: 13px;
  border-right: 1px solid var(--line-3); border-bottom: 1px solid var(--line-3);
  pointer-events: none;
}
.formula::after {
  content: ''; position: absolute; right: 8px; bottom: 8px; width: 13px; height: 13px;
  border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22);
  pointer-events: none; z-index: 1;
}

/* ==========================================================================
   24. 响应式
   ========================================================================== */
@media (max-width: 1080px) {
  .pillars, .stages { grid-template-columns: repeat(2, 1fr); }
  .stage, .pillar { border-bottom: 1px solid var(--line-2); }
  .qgrid, .grid3, .grid4, .stats, .vgrid, .roles, .steps3 { grid-template-columns: repeat(2, 1fr); }
  .map .layer, .map .arrowrow, .flowmap .hdcell, .flowmap .row, .flowmap .cell { grid-template-columns: repeat(2, 1fr); }
  .map .side { grid-template-columns: 1fr; }
  .article { grid-template-columns: 1fr; }
  .toc { display: none; }
  .foot .cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  h1 { font-size: 30px; }
  .hero h1 { font-size: 32px; letter-spacing: -.028em; }
  .hero-q, .split .wrap, .vgrid, .cta .dual, .grid2, .pain, .feature, .selfcheck .kv { grid-template-columns: 1fr; }
  .split a { border-right: 0; border-bottom: 1px solid var(--line); }
  .hero-q > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.09); }
  .vgrid > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.09); }
  .cta .dual > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .pillars, .stages, .qgrid, .grid3, .grid4, .stats, .roles, .steps3 { grid-template-columns: 1fr; }
  .map .layer, .map .arrowrow, .flowmap .hdcell, .flowmap .row, .flowmap .cell { grid-template-columns: 1fr; }
  .kv { grid-template-columns: 1fr; }
  .kv > *:nth-child(odd) { border-right: 0; }
  .nav, .head-actions .btn-ghost { display: none; }
  .wrap, .wrap-narrow { padding: 0 18px; }
  .proto-note .wrap { padding: 9px 18px; }
}

/* ============================================================
   留资表单（/contact/ 与 /free-trial.html 共用）
   字段契约与后端 POST /api/lead 严格一致：
     必填 company / name / phone；可选 scale / demand；蜜罐字段 trap 必须为空。
   后端会校验：公司名 2–100 字、姓名 1–40 字、中国手机号格式、需求 ≤1000 字，
   并对每 IP 限流（10 分钟 5 次）。改字段名必须同步改后端，否则线索收不到。
   ============================================================ */
.lead { display: grid; gap: 16px; margin-top: 24px; max-width: 860px; }
.lead-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px 16px; }
.lead .f { display: grid; gap: 7px; }
.lead .f > span { font-size: 12.5px; color: var(--mute); letter-spacing: .04em; }
.lead .f > span i { font-style: normal; margin-left: 8px; font-size: 11.5px; color: var(--mute-2); }
.lead input, .lead textarea {
  font: inherit; font-size: 15px; color: var(--ink); background: var(--paper);
  border: 1px solid var(--line-3); border-radius: 2px; padding: 11px 13px; width: 100%;
}
.lead textarea { resize: vertical; min-height: 88px; line-height: 1.6; }
.lead input:focus, .lead textarea:focus { outline: none; border-color: var(--accent); }
.lead input::placeholder, .lead textarea::placeholder { color: var(--mute-2); }
.lead-trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.lead-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.lead-msg { font-size: 13.5px; color: var(--mute); }
.lead-msg.ok { color: var(--accent-2); }
.lead-msg.err { color: var(--sig-2); }
.lead-note { font-size: 13px; color: var(--mute-2); line-height: 1.8; margin: 0; }
