/* ============================================================
   维图传媒 · 海南餐饮 AI 数字员工全案营销 — 共享设计系统
   深墨夜色底 + 暖琥珀金主色(海南接待感) + 青玉色数据辅色。零外部依赖。
   所有页面引入本文件；导航/页脚由 site.js 注入，保证跨页一致。
   ============================================================ */
:root{
  /* 深墨夜色为底,暖金留给品牌与结论,青玉留给数据与 AI */
  --bg:#07090e; --bg2:#0a0f16; --surface:#121920; --surface2:#182028;
  --border:#2c384c; --border-hi:#425370; --grid:#1a2330;
  --text:#eef2f7; --text-2:#a9b6c9; --text-3:#7d8ca6;
  /* 同值别名与旧圆角别名已并入上方 token,不留第二真值源 */
  /* --accent 暖琥珀金实心块/边线;深底上的品牌金文字用 --accent-ink */
  --accent:#B8954A; --accent-ink:#E2C17A; --accent-deep:#7A5C2E; --accent2:#4EB6C2; --steel:#8e9db3;
  /* 香槟金点缀(主推档/高亮) */
  --spark:#E8D4A8; --spark-soft:rgba(232,212,168,.14);
  --spark-line:rgba(232,212,168,.62);
  --wrap:1180px; --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  /* t28 全站密度节奏（与驾驶舱同语言；驾驶舱仍可覆写 --wrap） */
  --sec-y:56px; --card-pad:16px 18px; --block-mt:20px; --block-gap:14px; --panel-pad:12px 14px;
  --sans:Inter,"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  /* 微观节奏 token:圆角 7 档 / 字距 4 档 / 时长 3 档 / 统一缓动 */
  --ease:cubic-bezier(.2,.7,.2,1);
  --r-1:4px; --r-2:6px; --r-3:8px; --r-4:10px; --r-5:12px; --r-6:14px; --r-7:20px; --r-pill:999px;
  --ls-tight:-.01em; --ls-num:.02em; --ls-label:.08em; --ls-caps:.16em;
  --t-fast:.12s; --t-base:.18s; --t-slow:.3s;
  /* 字号 token:高频字号单一真值源(值不变,零视觉漂移) */
  --fs-060:0.64rem; --fs-062:0.64rem; --fs-064:0.64rem; --fs-066:0.64rem; --fs-068:0.72rem; --fs-070:0.72rem; --fs-072:0.72rem; --fs-074:0.72rem; --fs-076:0.72rem; --fs-078:0.82rem; --fs-080:0.82rem; --fs-082:0.82rem; --fs-084:0.82rem; --fs-085:0.82rem; --fs-086:0.82rem; --fs-088:0.82rem; --fs-090:0.95rem; --fs-092:0.95rem; --fs-095:0.95rem; --fs-100:0.95rem; --fs-105:1.05rem; --fs-110:1.05rem; --fs-118:1.18rem ; --fs-140:1.4rem ; --fs-190:1.9rem ; --fs-230:2.3rem ; --fs-290:2.9rem;
  /* 色调 token:重复半透明色单一真值源 */
  --tint-blk-450:rgba(0,0,0,.45); --tint-steel-100:rgba(120,140,180,.1); --tint-a2-040:rgba(78,182,194,.04); --tint-a2-050:rgba(78,182,194,.05); --tint-a2-060:rgba(78,182,194,.06); --tint-a2-080:rgba(78,182,194,.08); --tint-a2-090:rgba(78,182,194,.09); --tint-a2-100:rgba(78,182,194,.1); --tint-a2-250:rgba(78,182,194,.25); --tint-a2-280:rgba(78,182,194,.28); --tint-a2-300:rgba(78,182,194,.3); --tint-a2-350:rgba(78,182,194,.35); --tint-a2-500:rgba(78,182,194,.5); --tint-a2-550:rgba(78,182,194,.55); --tint-bg2-500:rgba(10,15,22,.5); --tint-steel2-240:rgba(142,157,179,.24); --tint-wht-020:rgba(255,255,255,.02); --tint-wht-035:rgba(255,255,255,.035); --tint-wht-040:rgba(255,255,255,.04); --tint-wht-450:rgba(255,255,255,.45); --tint-acc-060:rgba(184,149,74,.06); --tint-acc-090:rgba(184,149,74,.09); --tint-acc-120:rgba(184,149,74,.12); --tint-acc-250:rgba(184,149,74,.25); --tint-acc-070:rgba(184,149,74,.07); --tint-acc-140:rgba(184,149,74,.14); --tint-acc-150:rgba(184,149,74,.15); --tint-acc-420:rgba(184,149,74,.42); --glass:rgba(18,25,32,.72); --elev:0 10px 30px rgba(0,0,0,.28); --elev-sm:0 4px 14px rgba(0,0,0,.22);

}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.eyebrow{font-family:var(--mono);font-size:var(--fs-072);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--accent2)}
h1,h2,h3{line-height:1.16;letter-spacing:var(--ls-tight);margin:0}
.grad{color:var(--accent2);letter-spacing:var(--ls-tight)}
.sub{color:var(--text-2);font-size:var(--fs-105);max-width:640px}
.sec{padding:var(--sec-y) 0}
.sec-t{font-size:var(--fs-190);margin:4px 0 6px}
.sec-d{color:var(--text-2);max-width:42rem}
.center{text-align:center;margin-left:auto;margin-right:auto}
.card{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent),var(--surface);border:1px solid var(--border);border-radius:var(--r-6);padding:var(--card-pad);transition:border-color var(--t-base) var(--ease),transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}
.card:hover{border-color:var(--border-hi);transform:translateY(-2px);box-shadow:var(--elev-sm)}
.card .ic{width:36px;height:36px;border-radius:var(--r-4);background:var(--accent);display:grid;place-items:center;margin-bottom:10px;color:#1a1408}
.card .ic.seal{background:transparent;border:1px solid var(--tint-a2-400);color:var(--accent2);font-size:1rem;font-weight:600;letter-spacing:0;font-family:var(--sans)}
.card h3{font-size:var(--fs-105);margin-bottom:6px}
.card p{color:var(--text-2);font-size:var(--fs-092);margin:0}
.grid{display:grid;gap:var(--block-gap)}
.grid2{display:grid;gap:var(--block-gap);grid-template-columns:repeat(2,1fr)}
.g2{display:grid;gap:var(--block-gap);grid-template-columns:repeat(2,1fr)}
.g3{display:grid;gap:var(--block-gap);grid-template-columns:repeat(3,1fr)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:var(--fs-080);padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text-2);background:var(--tint-wht-020)}
.chip.on{border-color:var(--accent);color:var(--text);background:var(--tint-acc-120)}
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 22px;border-radius:var(--r-4);font-weight:600;font-size:var(--fs-095);background:var(--accent);color:#1a1408;border:1px solid transparent;cursor:pointer}
.btn.alt{background:transparent;border:1px solid var(--border);box-shadow:none;color:var(--text)}
.btn.sm{padding:9px 16px;font-size:var(--fs-086);border-radius:var(--r-4)}
.pill{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-082);color:var(--text-2);border:1px solid var(--border);padding:6px 12px;border-radius:var(--r-pill);background:var(--tint-wht-020)}
.pill b{color:var(--text)}
.pill.ok{color:var(--accent2);border-color:var(--tint-a2-300)}
.pill.warn{color:#f59e0b;border-color:rgba(245,158,11,.3)}
/* ---------- NAV (由 site.js 注入) ---------- */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(16px) saturate(1.2);background:rgba(7,9,14,.78);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:66px}
.logo{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:var(--ls-tight)}
.logo .dot{width:11px;height:11px;border-radius:var(--r-1);background:var(--accent)}
.logo b{color:var(--text-3);font-weight:500}
.nav-links{display:flex;gap:4px}
.nav-links a{padding:9px 13px;border-radius:var(--r-4);color:var(--text-2);font-size:var(--fs-092);font-weight:500;transition:var(--t-fast);position:relative}
.nav-links a:hover{color:var(--text);background:var(--tint-wht-040)}
.nav-links a.active{color:var(--text)}
.nav-links a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:2px;background:var(--accent);border-radius:2px}
.nav-cta{display:flex;align-items:center;gap:12px}
.nav-cta .tel{font-size:var(--fs-090);color:var(--text-2)}
.nav-cta .tel b{color:var(--text)}
.hamb{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px}
.hamb span{width:22px;height:2px;background:var(--text);border-radius:2px;transition:var(--t-base)}
/* ---------- FOOTER (由 site.js 注入) ---------- */
.foot{border-top:1px solid var(--border);background:var(--bg2);padding:46px 0 26px;margin-top:20px}
.foot-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:26px}
.foot h4{font-size:var(--fs-078);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-3);margin:0 0 13px}
.foot a{display:block;color:var(--text-2);font-size:var(--fs-090);padding:4px 0}
.foot a:hover{color:var(--text)}
.foot .fine{color:var(--text-3);font-size:var(--fs-082);margin-top:14px;line-height:1.7}
.foot .bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:30px;padding-top:18px;border-top:1px solid var(--border);color:var(--text-3);font-size:var(--fs-082)}
/* ---------- HOME HERO ---------- */
.hero{position:relative;padding:58px 0 48px;overflow:hidden}
.hero .grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.hero h1{font-size:var(--fs-290);letter-spacing:var(--ls-tight);margin:16px 0 16px}
.hero .sub{font-size:var(--fs-118);margin-bottom:26px}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.hero-pills{display:flex;gap:10px;flex-wrap:wrap}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.hstat .n{font-family:var(--mono);font-size:var(--fs-140);font-weight:700;color:var(--accent-ink)}
.hstat .l{font-size:var(--fs-080);color:var(--text-2);margin-top:2px}
/* visual: 全案九段框架图 */
.funnel{display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,rgba(255,255,255,.035),transparent),var(--surface);border:1px solid var(--border);border-radius:var(--r-6);padding:var(--panel-pad);box-shadow:inset 0 1px 0 var(--tint-wht-040),var(--elev-sm)}
.fstep{display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:center;padding:11px 14px;border-radius:var(--r-5);background:var(--surface2);border:1px solid var(--border);position:relative}
.fstep .idx{font-family:var(--mono);font-size:var(--fs-080);color:var(--accent2)}
.fstep .t{font-weight:600;font-size:var(--fs-095)}
.fstep .d{color:var(--text-2);font-size:var(--fs-080)}
.fstep .arrow{position:absolute;right:-14px;top:50%;transform:translateY(-50%);color:var(--accent2);font-size:var(--fs-100);z-index:2}
.fstep:last-child .arrow{display:none}
.fstep .tag{font-family:var(--mono);font-size:var(--fs-066);padding:2px 8px;border-radius:var(--r-2);background:var(--tint-a2-100);color:var(--accent2);border:1px solid var(--tint-a2-250);white-space:nowrap}
.funnel .fstep{display:block;text-align:center}
/* ---------- 通用组件 ---------- */
.layer{display:grid;grid-template-columns:220px 1fr;gap:20px;border:1px solid var(--border);border-radius:var(--r-7);overflow:hidden;background:var(--surface)}
.layer .lh{padding:20px;background:var(--tint-acc-070);border-right:1px solid var(--border)}
.layer .lh .k{font-family:var(--mono);font-size:var(--fs-072);color:var(--accent2);letter-spacing:var(--ls-label)}
.layer .lh h3{font-size:var(--fs-110);margin:6px 0}
.layer .lh p{font-size:var(--fs-085);color:var(--text-2);margin:0}
.layer .lr{padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.role{border:1px solid var(--border);border-radius:var(--r-5);padding:14px;background:var(--surface2);transition:var(--t-base);cursor:pointer}
.role:hover{border-color:var(--border-hi)}
.role .rt{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.role .rt .em{width:34px;height:34px;border-radius:var(--r-4);background:var(--accent-deep);display:grid;place-items:center;font-size:var(--fs-110)}
.role .rt b{font-size:var(--fs-095)}
.role .rt .badge{font-family:var(--mono);font-size:var(--fs-066);color:var(--text-3);margin-left:auto}
.role p{font-size:var(--fs-082);color:var(--text-2);margin:0}
.role .tools{margin-top:9px;display:flex;flex-wrap:wrap;gap:5px}
.role .tools span{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);border:1px solid var(--tint-a2-250);padding:1px 6px;border-radius:var(--r-2)}
.role .rt .status{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-062);color:var(--accent2);background:var(--tint-a2-100);border:1px solid var(--tint-a2-300);padding:1px 7px;border-radius:var(--r-7)}
.role .rt .status i{width:6px;height:6px;border-radius:50%;background:var(--accent2)}
.role .duty{font-size:var(--fs-080);color:var(--text-2);margin:4px 0 10px;line-height:1.55}
.role .duty .mod{display:inline-block;margin-left:6px;font-family:var(--mono);font-size:var(--fs-064);color:var(--accent2);border:1px solid var(--tint-a2-300);padding:0 5px;border-radius:var(--r-2);vertical-align:middle}
.role .row{display:flex;align-items:center;gap:8px;margin-top:7px}
.role .row .k{color:var(--text-3);font-family:var(--mono);font-size:var(--fs-060);flex:none;width:30px;text-align:right;padding-right:2px}
.role .ints{display:flex;flex-wrap:wrap;gap:4px}
.role .ints span{font-size:var(--fs-064);color:var(--text-2);background:var(--tint-acc-120);border:1px solid var(--tint-acc-250);padding:1px 6px;border-radius:var(--r-2)}
.role .tiers{display:flex;gap:4px}
.role .tiers span{font-family:var(--mono);font-size:var(--fs-062);color:var(--text-3);border:1px solid var(--border);padding:1px 6px;border-radius:var(--r-2)}
.role .tiers span.on{color:#1a1408;background:var(--accent);border-color:transparent;font-weight:700}
.role .live{margin-top:9px}
.role .live .lk{color:var(--text-3);font-size:var(--fs-070)}
.role .live b{font-size:var(--fs-084);color:var(--text);font-family:var(--mono);font-weight:600}
/* 数字员工天团 */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.team .card{padding:18px}
/* 能力矩阵 */
.matrix-wrap{border:1px solid var(--border);border-radius:var(--r-7);overflow:auto}
table.matrix{border-collapse:collapse;width:100%;font-size:var(--fs-085);min-width:760px}
table.matrix th,table.matrix td{padding:12px 14px;text-align:center;border-bottom:1px solid var(--border)}
table.matrix th{background:var(--surface);position:sticky;top:0}
table.matrix td:first-child,table.matrix th:first-child{text-align:left;color:var(--text-2);position:sticky;left:0;background:var(--bg2)}
table.matrix .yes{color:#34D399;font-weight:700}
table.matrix .no{color:var(--text-3)}
table.matrix th:nth-child(4),table.matrix td:nth-child(4){background:var(--tint-a2-060)}
table.matrix th:nth-child(4){background:var(--tint-a2-080)}
table.matrix tr:hover td{background:var(--tint-wht-020)}
/* 服务项目表(按九步分类 · T1–T5 逐项勾选) */
table.matrix.svc td:first-child{width:36%;line-height:1.5}
table.matrix th span{display:block;font-size:var(--fs-068);font-weight:400;color:var(--text-3);margin-top:3px;letter-spacing:0}
table.matrix tr.mg td{position:static;text-align:left;background:var(--tint-a2-060);color:var(--text);font-weight:600;font-size:var(--fs-080);letter-spacing:var(--ls-num);padding:10px 14px;border-top:1px solid var(--tint-a2-250);border-bottom:1px solid var(--tint-a2-100)}
table.matrix tr.mg td b{font-family:var(--mono);color:var(--accent2);margin-right:8px;font-size:var(--fs-078)}
table.matrix tr.mg td i{font-style:normal;color:var(--text-3);font-weight:400;margin-left:9px;font-size:var(--fs-074);letter-spacing:0}
table.matrix td.qty{font-size:var(--fs-082);color:var(--text-2);line-height:1.5}
table.matrix td.yes{font-size:var(--fs-095)}
/* 只看这一档 */
.svc-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:20px 0 12px}
.svc-filter>span{font-size:var(--fs-078);color:var(--text-3)}
.svc-filter .chip{cursor:pointer;font-family:var(--sans);font-size:var(--fs-078);padding:5px 13px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text-2);transition:var(--t-base)}
.svc-filter .chip:hover{border-color:var(--accent)}
.svc-filter .chip.on{background:var(--accent);border-color:transparent;color:#1a1408;font-weight:600}
.svc-legend{margin-left:auto;font-size:var(--fs-074);color:var(--text-3)}
table.matrix[data-focus] tr>*:not(:first-child){opacity:.26;transition:opacity var(--t-base)}
table.matrix[data-focus="1"] tr>:nth-child(2),
table.matrix[data-focus="2"] tr>:nth-child(3),
table.matrix[data-focus="3"] tr>:nth-child(4),
table.matrix[data-focus="4"] tr>:nth-child(5),
table.matrix[data-focus="5"] tr>:nth-child(6){opacity:1;background:var(--tint-a2-090)}
table.matrix tr.fhid{display:none}
/* 证据强度矩阵(白皮书 · 因果判断) */
.evi-axis{font-family:var(--mono);font-size:var(--fs-074);letter-spacing:var(--ls-label);color:var(--accent2);margin:4px 0 14px}
.matrix.evi{min-width:720px}
.matrix.evi td,.matrix.evi th{text-align:left;vertical-align:top;line-height:1.55}
.matrix.evi th{color:var(--text-3);font-size:var(--fs-074);letter-spacing:var(--ls-label);text-transform:uppercase}
.matrix.evi td.evi-st{text-align:center;white-space:nowrap}
.evi-ic{margin-right:6px}
.evi-dots{display:inline-flex;gap:4px}
.evi-dots i{width:9px;height:9px;border-radius:50%;background:var(--text-3);display:inline-block}
.evi-dots i.on{background:var(--accent-ink)}
.evi-sl{display:block;font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);margin-top:5px}
/* 分档决策矩阵(pricing · 三变量→档位) */
.matrix.tier-decision{min-width:760px}
.matrix.tier-decision td,.matrix.tier-decision th{text-align:left;vertical-align:top;line-height:1.5}
.matrix.tier-decision th{color:var(--text-3);font-size:var(--fs-074);letter-spacing:var(--ls-label);text-transform:uppercase}
.matrix.tier-decision tr[data-tier]{transition:background var(--t-base)}
.matrix.tier-decision tr[data-tier].on td{background:var(--tint-acc-120)}
.matrix.tier-decision tr[data-tier].on td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.matrix.tier-decision td .tk{font-family:var(--mono);font-weight:700;color:var(--accent-ink)}
.matrix.tier-decision td .tn{color:var(--text-2);font-size:var(--fs-082)}
.matrix.tier-decision td .tn b{color:var(--text)}
/* 数据生命周期权责流转图(compliance · 结构示意,无 JS 可读) */
.lifecycle-flow{display:flex;align-items:stretch;gap:0;margin-top:var(--block-mt);flex-wrap:nowrap}
.lc-node{flex:1 1 0;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-7);padding:16px 15px;display:flex;flex-direction:column}
.lc-arrow{flex:0 0 30px;display:grid;place-items:center;color:var(--text-3);font-size:var(--fs-118);line-height:1}
.lc-step{font-family:var(--mono);font-size:var(--fs-080);letter-spacing:var(--ls-label);color:var(--accent2);display:flex;align-items:center;gap:8px}
.lc-step b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--tint-acc-120);color:var(--accent-ink);font-size:var(--fs-066);font-weight:700}
.lc-desc{font-size:var(--fs-082);color:var(--text-2);line-height:1.55;margin:10px 0 12px;flex:1}
.lc-owners{list-style:none;margin:0;padding:11px 0 0;display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--border)}
.lc-owners li{display:flex;align-items:center;gap:8px;font-size:var(--fs-080);color:var(--text-2)}
.own{flex:none;font-family:var(--mono);font-size:var(--fs-066);padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--border);white-space:nowrap}
.own.c{color:var(--accent-ink);background:var(--tint-acc-120);border-color:var(--tint-acc-250)}
.own.w{color:var(--accent2);background:var(--tint-a2-100);border-color:var(--tint-a2-250)}
.own.p{color:var(--text-2);background:var(--tint-wht-020);border-color:var(--border)}
.lc-owners li.dim{color:var(--text-3)}
.lc-owners li.dim .own{opacity:.5}
.lc-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:20px;font-size:var(--fs-080);color:var(--text-2)}
.lc-legend .own{font-size:var(--fs-070)}
.lc-legend .lc-note{margin-left:auto;color:var(--text-3);font-size:var(--fs-076);border-left:2px solid var(--tint-a2-300);padding-left:10px}
/* 相关图表互链(跨页发现) */
.relcharts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px}
.relcard{display:flex;flex-direction:column;gap:7px;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-7);text-decoration:none;transition:var(--t-base)}
.relcard:hover{border-color:var(--border-hi);background:var(--tint-wht-020)}
.relcard .relk{font-family:var(--mono);font-size:var(--fs-082);color:var(--accent-ink);letter-spacing:var(--ls-label)}
.relcard .relt{font-size:var(--fs-088);color:var(--text-2);line-height:1.5}
.relcard .relgo{margin-top:2px;font-size:var(--fs-072);color:var(--text-3);font-family:var(--mono)}
@media(max-width:760px){.relcharts{grid-template-columns:1fr}}
/* 九步闭环动态图(service · 静态优先,JS 只叠加按序巡游) */
.loopchart{margin-top:var(--block-mt);border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface);padding:var(--panel-pad)}
.loop-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.loop-head-l{display:flex;flex-direction:column;gap:4px}
.loop-head-l b{font-size:var(--fs-092);color:var(--text)}
.loop-head-l span{font-family:var(--mono);font-size:var(--fs-074);color:var(--accent2)}
.loop-play{font-family:var(--sans);font-size:var(--fs-080);color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;transition:var(--t-base);white-space:nowrap}
.loop-play:hover{border-color:var(--border-hi)}
.loop-play:disabled{opacity:.6;cursor:default}
.loop-rail{height:5px;border-radius:var(--r-pill);background:var(--surface2);border:1px solid var(--border);margin:14px 0 18px;overflow:hidden}
.loop-rail i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width var(--t-slow)}
.loop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.loop-node{display:flex;flex-direction:column;gap:7px;padding:14px 15px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-5);text-decoration:none;color:inherit;transition:var(--t-base)}
.loop-node:hover,.loop-node.is-on{border-color:var(--accent);background:var(--tint-acc-120)}
.loop-node:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}
.loop-node.is-on{box-shadow:inset 3px 0 0 var(--accent)}
.loop-top{display:flex;align-items:center;gap:8px}
.loop-no{display:inline-grid;place-items:center;width:24px;height:24px;flex:none;border-radius:50%;background:var(--tint-acc-120);color:var(--accent-ink);font-family:var(--mono);font-size:var(--fs-080);font-weight:700}
.loop-node.is-on .loop-no,.loop-node:hover .loop-no{background:var(--accent);color:#fff}
.loop-name{font-size:var(--fs-095);color:var(--text);font-weight:700}
.loop-idx{margin-left:auto;font-family:var(--mono);font-size:var(--fs-066);color:var(--text-3);letter-spacing:var(--ls-num)}
.loop-frame{font-family:var(--mono);font-size:var(--fs-070);color:var(--accent2)}
.loop-desc{font-size:var(--fs-080);color:var(--text-2);line-height:1.5;flex:1}
.loop-metric{display:flex;align-items:center;gap:9px;margin-top:2px}
.loop-bar{flex:1;height:6px;border-radius:var(--r-pill);background:var(--tint-wht-020);border:1px solid var(--border);overflow:hidden}
.loop-bar i{display:block;height:100%;background:var(--accent-ink);border-radius:var(--r-pill)}
.loop-cnt{flex:none;font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);white-space:nowrap}
.loop-cnt b{color:var(--accent-ink);font-size:var(--fs-085)}
.loop-go{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-3)}
.loop-node:hover .loop-go{color:var(--accent2)}
.loop-back{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding:12px 15px;border:1px dashed var(--border-hi);border-radius:var(--r-5);background:var(--tint-a2-060);transition:var(--t-base)}
.loop-back.on{border-color:var(--accent2);background:var(--tint-a2-100)}
.loop-back .lb-end,.loop-back .lb-start{font-size:var(--fs-085);color:var(--text);font-weight:600}
.loop-back .lb-arrow{font-family:var(--mono);font-size:var(--fs-078);color:var(--accent2)}
.loop-back small{flex-basis:100%;font-size:var(--fs-074);color:var(--text-2);line-height:1.6}
@media(max-width:880px){.loop-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.loop-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.loop-rail i{transition:none}}
@media print{.loopchart .loop-ctl{display:none!important}}
/* 服务分布图:100% 堆叠构成 + 明细联动(service · 静态优先) */
.dist-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 10px}
.dist-read{font-size:var(--fs-080);color:var(--text-2);line-height:1.55;flex:1;min-width:180px}
.dist-read b{color:var(--text);font-family:var(--mono)}
.dist-read .dim{color:var(--text-3)}
.dist-compose{display:flex;gap:2px;height:22px;margin-bottom:10px}
.dist-seg{flex-basis:0;min-width:0;display:grid;place-items:center;background:var(--tint-acc-120);color:var(--accent-ink);border-radius:var(--r-2);font-family:var(--mono);font-size:var(--fs-060);cursor:pointer;transition:var(--t-base);overflow:hidden}
.dist-seg.hot{background:var(--tint-acc-250);color:var(--text)}
.dist-seg:hover{background:var(--accent);color:#fff}
.dist-seg.is-on{background:var(--accent);color:#fff;box-shadow:inset 0 0 0 2px var(--accent2)}
.viz-row.is-on{background:var(--tint-a2-100);box-shadow:inset 3px 0 0 var(--accent)}
.viz-row.is-on .viz-k{color:var(--text)}
@media(prefers-reduced-motion:reduce){.dist-seg,.viz-row{transition:none}}
@media print{.dist-seg,.dist-seg.hot{background:#4a76b8!important;color:#fff!important}.dist-read{color:#111}.dist-head .loop-ctl{display:none!important}}
/* 数字员工驾驶舱 · 团队工位板(digital · 静态优先 · 克制指挥台) */
.crew-wrap{display:grid;grid-template-columns:1.45fr 1.1fr;gap:14px;align-items:start;margin-top:var(--block-mt)}
.crew-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.crew-head b{font-size:var(--fs-100);letter-spacing:var(--ls-num);color:var(--text)}
.crew-hint{font-size:var(--fs-070);color:var(--text-3);font-family:var(--mono)}
.crew{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.crew-st{border:1px solid var(--border);border-radius:var(--r-5);padding:11px 12px;background:linear-gradient(180deg,rgba(18,28,42,.72),var(--surface));transition:var(--t-base);cursor:pointer;outline:none;position:relative;overflow:hidden}
.crew-st::after{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:transparent;transition:var(--t-base)}
.crew-st:hover{border-color:var(--border-hi);transform:translateY(-1px)}
.crew-st.is-on{border-color:var(--accent);background:linear-gradient(180deg,var(--tint-acc-080),var(--tint-acc-040));box-shadow:inset 0 0 0 1px var(--accent),0 0 24px rgba(184,149,74,.12)}
.crew-st.is-on::after{background:linear-gradient(180deg,var(--accent),var(--accent2))}
.crew-st:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}
.cs-top{display:flex;align-items:center;gap:8px;min-width:0}
.cs-em{width:30px;height:30px;flex:none;border-radius:var(--r-4);background:var(--accent-deep);display:grid;place-items:center;font-size:var(--fs-105);box-shadow:inset 0 0 0 1px rgba(232,212,168,.25)}
.cs-name{font-size:var(--fs-088);color:var(--text);line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-status{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-062);color:var(--accent2);background:var(--tint-a2-100);border:1px solid var(--tint-a2-300);padding:1px 7px;border-radius:var(--r-7)}
.cs-status i{width:6px;height:6px;border-radius:50%;background:var(--accent2);box-shadow:0 0 6px var(--accent2);animation:cd-blink 1.6s ease-in-out infinite}
.cs-fn{font-size:var(--fs-066);color:var(--text-3);margin:6px 0 7px;line-height:1.3}
.cs-steps{display:flex;flex-wrap:wrap;gap:4px}
.cs-chip{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:var(--r-2);background:var(--tint-acc-120);color:var(--accent-ink);font-family:var(--mono);font-size:var(--fs-062);transition:var(--t-base)}
.cs-chip.on{background:var(--tint-acc-250);color:var(--text)}
.crew-st.is-on .cs-chip.on{background:var(--accent);color:#1a1408}
.cs-live{margin-top:8px;font-family:var(--mono);font-size:var(--fs-066);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-live b{color:var(--accent2);font-weight:600}
.cs-load{margin-top:8px;height:3px;border-radius:var(--r-pill);background:rgba(255,255,255,.06);overflow:hidden}
.cs-load i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent2),var(--accent));box-shadow:0 0 8px rgba(78,182,194,.35)}

/* 详情面板(JS 门控:无 JS 时全部展开,有 JS 仅显选中) */
.crew-detail{border:1px solid var(--border);border-radius:var(--r-7);background:
  radial-gradient(120% 80% at 100% 0%,rgba(78,182,194,.08),transparent 55%),
  linear-gradient(180deg,rgba(14,22,34,.92),var(--surface));
  padding:0;position:sticky;top:18px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.crew-detail::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,var(--accent2),var(--accent),transparent);opacity:.55;pointer-events:none}
.cd-shell{padding:14px 16px 16px;max-height:min(78vh,860px);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--tint-a2-400) transparent}
.cd-shell-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.cd-shell-live{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:var(--fs-068);letter-spacing:var(--ls-label);color:var(--accent2)}
.cd-shell-live i{width:7px;height:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 8px var(--accent2);animation:cd-blink 1.4s ease-in-out infinite}
.cd-shell-hint{font-family:var(--mono);font-size:var(--fs-062);color:var(--text-3)}
.crew-detail.js-on .crew-pane{display:none}
.crew-detail.js-on .crew-pane.on{display:block;animation:cd-in .28s ease both}
.cd-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cd-em{width:36px;height:36px;flex:none;border-radius:var(--r-4);background:linear-gradient(145deg,var(--accent-deep),#3a2a14);display:grid;place-items:center;font-size:var(--fs-110);box-shadow:inset 0 0 0 1px rgba(232,212,168,.28)}
.cd-name{font-size:var(--fs-118);color:var(--text);line-height:1.1}
.cd-fn{font-size:var(--fs-072);color:var(--text-3);display:block;margin-top:2px}
.cd-live{margin-left:auto;flex:none;font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);background:var(--tint-a2-080);border:1px solid var(--tint-a2-300);border-radius:var(--r-7);padding:3px 9px;white-space:nowrap}
.cd-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 12px}
.cdm{border:1px solid var(--border);border-radius:var(--r-4);background:rgba(8,12,20,.55);padding:7px 8px;text-align:center}
.cdm span{display:block;font-family:var(--mono);font-size:var(--fs-058);color:var(--text-3);letter-spacing:var(--ls-label)}
.cdm b{display:block;margin-top:3px;font-family:var(--mono);font-size:var(--fs-100);color:var(--text);font-weight:700;letter-spacing:var(--ls-tight)}
.cd-duty{font-size:var(--fs-082);color:var(--text-2);line-height:1.65;margin:2px 0 12px}
.cd-duty .mod{display:inline-block;margin-left:6px;font-family:var(--mono);font-size:var(--fs-064);color:var(--accent2);border:1px solid var(--tint-a2-300);padding:0 5px;border-radius:var(--r-2);vertical-align:middle}
.cd-block{margin:0 0 12px;border:1px solid var(--border);border-radius:var(--r-5);background:rgba(8,14,24,.45);padding:10px 11px}
.cd-bt{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:var(--fs-068);letter-spacing:var(--ls-label);color:var(--accent-ink);margin-bottom:9px}
.cd-bt .cd-pulse{width:7px;height:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 8px var(--accent2);animation:cd-blink 1.4s ease-in-out infinite}
.cd-bt .cd-hist-ic{width:7px;height:7px;border-radius:2px;background:var(--accent);box-shadow:0 0 6px rgba(184,149,74,.45)}
.cd-task{padding:8px 0;border-top:1px dashed rgba(255,255,255,.06)}
.cd-task:first-of-type{border-top:0;padding-top:0}
.cdt-top{display:flex;align-items:center;gap:8px;justify-content:space-between}
.cdt-top b{font-size:var(--fs-082);color:var(--text);font-weight:600;line-height:1.35;min-width:0}
.cdt-st{flex:none;font-family:var(--mono);font-size:var(--fs-060);padding:1px 7px;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-3)}
.cdt-st.run{color:var(--accent2);border-color:var(--tint-a2-350);background:var(--tint-a2-080)}
.cdt-st.wait{color:var(--accent-ink);border-color:var(--tint-acc-300);background:var(--tint-acc-060)}
.cdt-bar{margin-top:7px;height:5px;border-radius:var(--r-pill);background:rgba(255,255,255,.07);overflow:hidden}
.cdt-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent2),var(--accent));box-shadow:0 0 10px rgba(78,182,194,.35);transition:width var(--t-slow)}
.cdt-meta{margin-top:5px;font-family:var(--mono);font-size:var(--fs-062);color:var(--text-3);line-height:1.45}
.cd-hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;position:relative}
.cd-hist::before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:linear-gradient(180deg,var(--accent2),transparent)}
.cd-hist li{display:grid;grid-template-columns:72px 1fr auto;gap:8px;align-items:baseline;padding:7px 0 7px 16px;position:relative}
.cd-hist li::before{content:"";position:absolute;left:1px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--bg2);border:1.5px solid var(--accent2);box-shadow:0 0 6px rgba(78,182,194,.4)}
.cdh-t{font-family:var(--mono);font-size:var(--fs-060);color:var(--text-3)}
.cdh-b{font-size:var(--fs-078);color:var(--text-2);font-weight:500;line-height:1.4}
.cdh-st{font-family:var(--mono);font-size:var(--fs-058);color:var(--accent2);white-space:nowrap}
.cd-sec{display:flex;gap:8px;margin-top:9px;align-items:flex-start}
.cd-sec .ck{flex:none;width:34px;color:var(--text-3);font-family:var(--mono);font-size:var(--fs-060);padding-top:3px;text-align:right}
.cd-tags{display:flex;flex-wrap:wrap;gap:5px}
.cd-tags span{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);border:1px solid var(--tint-a2-250);padding:1px 6px;border-radius:var(--r-2)}
.cd-tiers{display:flex;flex-wrap:wrap;gap:4px}
.cd-tiers span{font-family:var(--mono);font-size:var(--fs-062);color:var(--text-3);border:1px solid var(--border);padding:1px 6px;border-radius:var(--r-2)}
.cd-tiers span.on{color:#1a1408;background:var(--accent);border-color:transparent;font-weight:700}
@keyframes cd-blink{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes cd-in{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:880px){
  .crew-wrap{grid-template-columns:1fr}
  .crew-detail{position:static}
  .cd-shell{max-height:none}
  .crew{grid-template-columns:repeat(2,1fr)}
  .cd-metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  .crew{grid-template-columns:1fr}
  .cd-hist li{grid-template-columns:1fr auto;gap:4px 8px}
  .cdh-t{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
  .crew-st,.cs-chip,.cdt-bar i{transition:none}
  .cs-status i,.cd-shell-live i,.cd-bt .cd-pulse{animation:none}
  .crew-detail.js-on .crew-pane.on{animation:none}
  .crew-st:hover{transform:none}
}
@media print{
  .crew-detail{position:static;box-shadow:none;background:#fff}
  .crew-st.is-on{box-shadow:none}
  .cd-shell{max-height:none;overflow:visible}
  .cdt-bar{border:1px solid #ccc}
  .cd-hist::before{background:#999}
}
@media(max-width:880px){
  .lifecycle-flow{flex-direction:column;gap:0}
  .lc-arrow{flex:0 0 22px;transform:rotate(90deg)}
  .lc-legend .lc-note{margin-left:0;width:100%}
}
@media(max-width:760px){.svc-legend{margin-left:0;width:100%}}
/* 价格档位卡(五档 · 3 + 2 居中) */
.tiergrid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--block-gap);margin-top:var(--block-mt);align-items:stretch}
.tiergrid>*{grid-column:span 2}
.tiergrid>*:nth-child(4){grid-column:2/4}
.plan{border:1px solid var(--border);border-radius:var(--r-6);padding:var(--card-pad);background:var(--surface);position:relative;display:flex;flex-direction:column;transition:var(--t-base)}
.plan:hover{border-color:var(--border-hi)}
.plan.feat{border-color:var(--spark-line);box-shadow:inset 0 2px 0 var(--spark),inset 0 1px 0 var(--tint-wht-040)}
.plan .flag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--accent);color:#1a1408;font-family:var(--mono);font-size:var(--fs-066);font-weight:700;letter-spacing:var(--ls-label);padding:4px 12px;border-radius:var(--r-pill);white-space:nowrap}
.plan .thd{display:flex;align-items:baseline;gap:8px}
.plan .thd .tk{font-family:var(--mono);font-size:var(--fs-070);letter-spacing:var(--ls-label);color:var(--accent2)}
.plan .thd h3{font-size:var(--fs-118);margin:0}
.plan .price{display:flex;align-items:baseline;gap:5px;margin:14px 0 2px}
.plan .price b{font-size:var(--fs-190);font-weight:800;letter-spacing:var(--ls-tight);color:var(--text);line-height:1.1}
.plan .price i{font-style:normal;font-size:var(--fs-080);color:var(--text-3)}
.plan .fee{font-size:var(--fs-074);color:var(--text-3);margin:0 0 14px}
.plan .fit{font-size:var(--fs-085);color:var(--text-2);line-height:1.6;margin:0 0 12px}
.plan .fit b{color:var(--text-3);font-weight:600}
.plan .chips{gap:6px}
.plan .chips .chip{font-size:var(--fs-072);padding:3px 10px}
.plan ul.feat{list-style:none;padding:0;margin:14px 0 16px;display:flex;flex-direction:column;gap:8px}
.plan ul.feat li{font-size:var(--fs-084);color:var(--text-2);display:flex;gap:8px;line-height:1.55}
.plan ul.feat li::before{content:"\2713";color:var(--accent2);font-weight:700;flex:none}
.plan .pbtn{margin-top:auto}
.plan .dlh{font-family:var(--mono);font-size:var(--fs-070);letter-spacing:var(--ls-label);color:var(--text-3);margin:16px 0 8px}
.plan .dlv{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 4px}
.plan .dlv>div{background:var(--tint-wht-035);border:1px solid var(--border);border-radius:var(--r-4);padding:9px 11px}
.plan .dlv b{display:block;font-family:var(--mono);font-size:var(--fs-118);font-weight:700;line-height:1.15;color:var(--text)}
.plan .dlv span{display:block;font-size:var(--fs-070);color:var(--text-3);line-height:1.4;margin-top:3px}
.plan .who{font-size:var(--fs-072);color:var(--text-3);line-height:1.55;margin:0 0 14px;padding-top:11px;border-top:1px dashed var(--border)}
.plan .who b{color:var(--text-2);font-weight:600}
/* 老板四问 */
.boss4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--block-gap);margin-top:var(--block-mt)}
/* 回本测算 */
.roi-calc{display:grid;grid-template-columns:.85fr 1.15fr;gap:16px;margin-top:var(--block-mt);align-items:start}
.roi-in{border:1px solid var(--border);border-radius:var(--r-6);background:rgba(14,20,36,.55);padding:var(--panel-pad)}
.roi-in .field{margin-bottom:14px}
.roi-in .field:last-of-type{margin-bottom:0}
.roi-in .field label{font-family:var(--mono);font-size:var(--fs-074);color:var(--text-3);letter-spacing:var(--ls-num)}
.roi-in .field input{font-family:var(--mono);font-size:var(--fs-100)}
.roi-out{display:grid;gap:8px}
.roirow{display:grid;grid-template-columns:1.5fr .7fr 1fr .95fr;gap:12px;align-items:center;border:1px solid var(--border);border-radius:var(--r-5);padding:11px 15px;background:var(--tint-bg2-500);transition:var(--t-base)}
.roirow.on{border-color:var(--tint-a2-350);background:var(--tint-a2-060)}
.roirow .rn{display:flex;align-items:baseline;gap:8px;min-width:0}
.roirow .rn b{font-family:var(--mono);font-size:var(--fs-072);color:var(--accent2);flex:none}
.roirow .rn span{font-size:var(--fs-085);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roirow .rf{font-family:var(--mono);font-size:var(--fs-080);color:var(--text-2)}
.roirow .rb{height:6px;border-radius:var(--r-pill);background:rgba(255,255,255,.07);overflow:hidden}
.roirow .rb i{display:block;height:100%;border-radius:var(--r-pill);background:var(--accent);transition:width var(--t-slow)}
.roirow .rv{text-align:right;font-size:var(--fs-074);color:var(--text-3);white-space:nowrap}
.roirow .rv b{font-family:var(--mono);font-size:var(--fs-105);color:var(--text);margin-right:3px}
.roirow .rv span{display:block;font-size:var(--fs-068)}
@media(max-width:900px){.roi-calc{grid-template-columns:1fr}}
@media(max-width:600px){
  .roirow{grid-template-columns:1fr auto;gap:4px 10px}
  .roirow .rb{display:none}
  .roirow .rf{grid-column:1;font-size:var(--fs-074)}
  .roirow .rv{grid-column:2;grid-row:1/3}
}
/* 已选档位确认卡(点「选 Tx · 预约诊断」后出现在预约表上方) */
.picked{border:1px solid var(--tint-a2-300);background:var(--tint-a2-060);border-radius:var(--r-7);padding:15px 17px 16px;margin:0 0 18px;color:var(--text-2)}
.picked[hidden]{display:none}
.pk-top{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap;padding-bottom:11px;border-bottom:1px solid var(--tint-a2-250)}
.pk-top b{font-size:var(--fs-095);color:var(--text)}
.pk-price{font-family:var(--mono);font-weight:700;color:var(--accent2);font-size:var(--fs-090)}
.pk-price i{font-style:normal;font-weight:400;color:var(--text-3);font-size:var(--fs-074)}
.pk-fee{font-size:var(--fs-074);color:var(--text-3)}
.pk-dlv{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:11px}
.pk-dlv span{font-size:var(--fs-078);color:var(--text-3)}
.pk-dlv b{font-family:var(--mono);color:var(--text);font-size:var(--fs-092);margin-right:2px}
.pk-who{margin-top:10px;font-size:var(--fs-078);color:var(--text-3)}
.pk-note{margin-top:10px;font-size:var(--fs-082);line-height:1.7;color:var(--text-3);border-left:2px solid var(--tint-a2-300);padding-left:10px}
.pk-act{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.pk-tel{font-size:var(--fs-078);color:var(--text-3)}
.pk-tel a{color:var(--accent2);text-decoration:none;border-bottom:1px dotted var(--tint-a2-550)}
@media(max-width:560px){.pk-act .btn{width:100%;justify-content:center}}
@media(max-width:1100px){
  .tiergrid{grid-template-columns:repeat(2,1fr)}
  .tiergrid>*{grid-column:auto}
  .tiergrid>*:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 8px)}
  .boss4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .tiergrid{grid-template-columns:1fr}
  .tiergrid>*:last-child{grid-column:auto;justify-self:stretch;width:auto}
  .boss4{grid-template-columns:1fr}
}
.pbtn{width:100%;padding:11px;border-radius:var(--r-4);border:1px solid var(--border);background:var(--surface2);color:var(--text);font-weight:600;cursor:pointer;font-family:var(--sans);font-size:var(--fs-088);transition:var(--t-base)}
.pbtn:hover{border-color:var(--accent)}
.pbtn.sel{background:var(--accent);border-color:transparent;color:#1a1408}
/* 视频 / 数字人直播间 mockup */
.video-card{position:relative;border:1px solid var(--border);border-radius:var(--r-7);overflow:hidden;background:#000}
.video-card .vhead{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface2);border-bottom:1px solid var(--border)}
.video-card .vtitle{font-size:var(--fs-090);font-weight:600}
.video-card .vsub{font-size:var(--fs-072);color:var(--text-3);font-family:var(--mono)}
.video-card .vbody{position:relative;aspect-ratio:9/16;max-height:440px;margin:12px;border-radius:var(--r-5);overflow:hidden;background:var(--bg2)}
.video-card .avatar{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:46%;aspect-ratio:1;border-radius:50%;background:#1a2430;border:1px solid var(--border-hi);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:var(--fs-190);color:#fff}
.video-card .eq{display:flex;gap:3px;align-items:flex-end;height:16px}
.video-card .eq i{width:3px;height:7px;background:rgba(255,255,255,.72);border-radius:2px}
.video-card .eq i:nth-child(2){height:12px}.video-card .eq i:nth-child(3){height:9px}.video-card .eq i:nth-child(4){height:14px}.video-card .eq i:nth-child(5){height:8px}
.video-card .live{display:flex;align-items:center;gap:6px;font-size:var(--fs-072);font-weight:700;background:#8f3a3a;color:#fff;padding:3px 9px;border-radius:var(--r-2);flex-shrink:0}
.video-card .live i{width:7px;height:7px;border-radius:50%;background:#fff}
.video-card .views{position:absolute;top:12px;right:12px;font-size:var(--fs-072);color:#fff;background:rgba(0,0,0,.4);padding:3px 9px;border-radius:var(--r-2);font-family:var(--mono)}
.video-card .caption{position:absolute;left:0;right:0;bottom:110px;text-align:center;padding:0 16px;font-size:var(--fs-105);font-weight:700;color:#fff;text-shadow:0 2px 8px #000;line-height:1.4}
.video-card .danmu{position:absolute;inset:0;pointer-events:none}
.video-card .danmu span{position:absolute;font-size:var(--fs-078);background:var(--tint-blk-450);border:1px solid rgba(255,255,255,.14);color:#dfe7f5;padding:3px 9px;border-radius:var(--r-pill);}
.video-card .danmu span:nth-child(1){right:14px;bottom:70px}
.video-card .danmu span:nth-child(2){left:16px;bottom:40px;animation-delay:.6s}
.video-card .danmu span:nth-child(3){right:18px;bottom:10px;animation-delay:1.2s}
.video-card .vfoot{display:flex;gap:8px;padding:0 12px 14px}
.video-card .vfoot .btn{flex:1;justify-content:center}
.video-card.live-room{max-width:400px;margin:0 auto}
/* 案例卡片 */
.case{border:1px solid var(--border);border-radius:var(--r-7);overflow:hidden;background:var(--surface);transition:var(--t-base)}
.case:hover{border-color:var(--border-hi)}
.case .caseimg{aspect-ratio:16/10;background:#101a2b;position:relative;overflow:hidden;display:grid;place-items:center}
.case .caseimg .ph-ic{font-size:var(--fs-230);opacity:.5}
.case .casebody{padding:18px}
.case .casetag{display:inline-block;font-family:var(--mono);font-size:var(--fs-068);color:var(--accent2);border:1px solid var(--tint-a2-250);padding:2px 8px;border-radius:var(--r-2);margin-bottom:10px}
.case h3{font-size:var(--fs-105);margin-bottom:8px}
.case .metrics{display:flex;gap:14px;margin:12px 0;flex-wrap:wrap}
.case .metrics .m .v{font-family:var(--mono);font-size:var(--fs-118);font-weight:700;color:var(--accent-ink)}
.case .metrics .m .k{font-size:var(--fs-072);color:var(--text-3)}
.case .note{font-size:var(--fs-076);color:var(--text-3);font-style:italic;border-top:1px solid var(--border);padding-top:10px}
/* 手风琴 */
.acc-item{border:1px solid var(--border);border-radius:var(--r-5);margin-bottom:10px;overflow:hidden;background:var(--surface)}
.acc-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;cursor:pointer;font-weight:600}
.acc-head .plus{color:var(--accent2);font-size:var(--fs-118);transition:var(--t-base)}
.acc-body{max-height:0;overflow:hidden;transition:max-height var(--t-slow) var(--ease);color:var(--text-2);font-size:var(--fs-090)}
.acc-body p{padding:0 18px 16px;margin:0}
.acc-item.open .acc-body{max-height:400px}
.acc-item.open .plus{transform:rotate(45deg)}
/* 表单 / 问卷 */
.form-card{max-width:560px;margin:0 auto;border:1px solid var(--border);border-radius:var(--r-6);padding:18px 20px;background:var(--surface)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field.full{grid-column:1/-1}
.field label{font-size:var(--fs-082);color:var(--text-2);font-weight:500}
.field label .req{color:#f87171}
.field input,.field select,.field textarea{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-4);padding:11px 13px;color:var(--text);font-family:var(--sans);font-size:var(--fs-092);outline:none;transition:var(--t-fast)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--tint-acc-150)}
.field textarea{resize:vertical;min-height:70px}
.form-status{margin-top:14px;padding:12px;border-radius:var(--r-4);font-size:var(--fs-088);display:none}
.form-status.show{display:block}
.form-status.ok{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);color:#34D399}
.form-status.err{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.3);color:#f87171}
.qz{border:1px solid var(--border);border-radius:var(--r-7);padding:22px;background:var(--surface);max-width:640px;margin:0 auto}
.qz-step{display:none}
.qz-step.show{display:block}
.qz-q{font-size:var(--fs-110);font-weight:600;margin-bottom:16px}
.qz-opt{border:1px solid var(--border);border-radius:var(--r-5);padding:13px 15px;cursor:pointer;transition:var(--t-fast);font-size:var(--fs-090)}
.qz-opt:hover{border-color:var(--accent);background:var(--tint-acc-060)}
.qz-opt.sel{border-color:var(--accent);background:var(--tint-acc-120)}
.qz-bar{height:5px;background:var(--surface2);border-radius:var(--r-1);margin:16px 0 4px;overflow:hidden}
.qz-bar i{display:block;height:100%;background:var(--accent);width:25%;transition:var(--t-slow)}
.qz-nav{display:flex;justify-content:space-between;margin-top:18px}
/* 数据/统计 */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{border:1px solid var(--border);border-radius:var(--r-5);padding:14px 16px;background:var(--surface);text-align:center}
.stat .n{font-family:var(--mono);font-size:var(--fs-190);font-weight:700;color:var(--accent-ink)}
.stat .l{font-size:var(--fs-085);color:var(--text-2);margin-top:4px}
.stat.qual .n{font-size:var(--fs-105);background:none;color:var(--text);-webkit-text-fill-color:currentColor;font-weight:600}
.stat .src{font-size:var(--fs-068);color:var(--text-3);font-family:var(--mono);margin-top:6px}
/* 页头(子页) */
.page-hero{padding:44px 0 28px;border-bottom:1px solid var(--border);background:var(--bg2)}
.page-hero .crumb{font-family:var(--mono);font-size:var(--fs-074);color:var(--text-3);margin-bottom:14px}
.page-hero .crumb a:hover{color:var(--text-2)}
.page-hero h1{font-size:var(--fs-230);margin:6px 0 12px}
.page-hero .lead{color:var(--text-2);font-size:var(--fs-105);max-width:760px}
/* 文档/理论 — 阅读列只作用于嵌套 .doc / .wrap.doc；body.doc 不再锁死整页宽度（t28） */
.doc:not(body){max-width:720px;margin-left:auto;margin-right:auto}
body.doc{max-width:none;width:100%}
.wrap.doc{max-width:720px;margin-left:auto;margin-right:auto}
.doc h3{font-size:var(--fs-140);margin:28px 0 8px}
.doc h3 .ref{font-family:var(--mono);font-size:var(--fs-072);color:var(--text-3);font-weight:400;margin-left:8px}
.doc p{color:var(--text-2);line-height:1.75}
.doc ul{color:var(--text-2);line-height:1.7}
.doc li{margin:6px 0}
.callout{border-left:3px solid var(--accent);background:var(--tint-acc-060);border-radius:0 var(--r-3) var(--r-3) 0;padding:16px 18px;margin:18px 0;color:var(--text-2)}
.callout b{color:var(--text)}
/* CTA bar (mobile sticky) */
.cta-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:40;background:rgba(7,10,18,.92);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:10px 16px;gap:10px;align-items:center}
.cta-bar .tel{flex:1}
.cta-bar .tel b{display:block;font-size:var(--fs-100);font-family:var(--mono)}
.cta-bar .tel span{font-size:var(--fs-072);color:var(--text-3)}
/* reveal */
[data-reveal]{opacity:0;transform:translateY(16px);transition:.6s var(--ease)}
[data-reveal].in{opacity:1;transform:none}
/* 模块页 hero */
.mod-hero{padding:40px 0 26px;border-bottom:1px solid var(--border);background:var(--bg2)}
.mod-hero .num{font-family:var(--mono);font-size:var(--fs-080);color:var(--accent2);letter-spacing:var(--ls-label)}
.mod-hero h1{font-size:var(--fs-230);margin:8px 0 12px}
.mod-hero .pain{font-size:var(--fs-105);color:var(--text-2);max-width:760px}
.mod-hero .pain b{color:var(--text)}
.mod-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.mod-nav a{font-size:var(--fs-080);padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text-2);transition:var(--t-fast)}
.mod-nav a:hover{border-color:var(--accent);color:var(--text)}
.mod-nav a.cur{border-color:var(--accent);color:#fff;background:var(--tint-acc-140)}
.card .fine{color:var(--text-3);font-size:var(--fs-085)}
/* responsive */
@media(max-width:960px){
  .hero .grid2{grid-template-columns:1fr;gap:30px}
  .grid2{grid-template-columns:1fr;gap:26px}
  .hero h1{font-size:var(--fs-230)}
  .layer{grid-template-columns:1fr}
  .layer .lh{border-right:0;border-bottom:1px solid var(--border)}
  .layer .lr{grid-template-columns:repeat(2,1fr)}
  .g4{grid-template-columns:repeat(2,1fr)}
  .g5{grid-template-columns:repeat(2,1fr)}
  .team{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .foot-inner{grid-template-columns:1fr 1fr}
  .nav-links{position:fixed;top:66px;left:0;right:0;background:rgba(7,10,18,.97);flex-direction:column;padding:12px;border-bottom:1px solid var(--border);transform:translateY(-130%);transition:var(--t-base);z-index:49}
  .nav-links.open{transform:none}
  .hamb{display:flex}
  .page-hero h1{font-size:var(--fs-190)}
  .mod-hero h1{font-size:var(--fs-190)}
}
@media(max-width:600px){
  .wrap{padding:0 16px}
  .hero h1{font-size:var(--fs-190)}
  .g2,.g3,.g4,.g5,.grid2,.team{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .form-grid{grid-template-columns:1fr}
  .qz-opts{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr}
  .foot-inner{grid-template-columns:1fr}
  .cta-bar{display:flex}
  body{padding-bottom:64px}
  .layer .lr{grid-template-columns:1fr}
}

/* ============================================================
三阶段增长 · 数字员工引擎(AI 数字员工 = 驱动全案的底座)
============================================================ */

/* --- 首屏 hero 右:三阶段漏斗(紧凑竖排) --- */
.phase-flow{display:flex;flex-direction:column;gap:6px}
.pf-phase.pb{border-left-color:var(--accent2)}
.pf-phase.pc{border-left-color:var(--steel)}

/* --- 主区:三阶段增长闭环 + 循环 + 引擎带 --- */
.flow3{display:flex;align-items:stretch;gap:0;margin-top:var(--block-mt)}
.phase{flex:1;border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:var(--r-6);padding:16px;background:var(--surface)}
.phase.pb{border-top-color:var(--accent2)}
.phase.pc{border-top-color:var(--steel)}
.phcards{display:flex;flex-direction:column;gap:10px}
.arw{font-size:var(--fs-140);color:var(--accent2);line-height:1}

@media(max-width:860px){
  .flow3{flex-direction:column}
  .flowarrow{flex-direction:row;padding:6px 0}
  .arw{transform:rotate(90deg)}
  .engine-band{flex-direction:column;align-items:flex-start}
  .eng-r{align-items:flex-start;text-align:left}
}

.card ul.feat{list-style:none;padding:0;margin:14px 0 16px;display:flex;flex-direction:column;gap:8px}
.card ul.feat li{font-size:var(--fs-084);color:var(--text-2);display:flex;gap:8px}
.card ul.feat li::before{content:"\2713";color:var(--accent2);font-weight:700;flex:none}

/* --- 口径基准脚注 --- */
.bench{border-left:3px solid var(--accent2);background:var(--tint-a2-050);padding:12px 16px;border-radius:0 var(--r-3) var(--r-3) 0;margin-top:18px;font-size:var(--fs-082);color:var(--text-2);line-height:1.7}
.bench b{color:var(--text)}

/* --- 权威背书 / 客户与资质 --- */
.logo-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--block-gap);margin-top:var(--block-mt)}
.logo-wall .logo{aspect-ratio:3/2;display:grid;place-items:center;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface);color:var(--text-3);text-align:center;padding:8px;line-height:1.3}
.logo-wall .logo b{display:block;font-size:var(--fs-090);color:var(--text-2)}
.logo-wall .logo small{font-family:var(--mono);font-size:var(--fs-060);color:var(--text-3)}
.quote .q{font-size:var(--fs-092);color:var(--text);line-height:1.7;flex:1}
.quote .q::before{content:"\201C";color:var(--accent2);font-size:var(--fs-140);font-weight:700;line-height:0;vertical-align:-.3em;margin-right:2px}
.quote .by{margin-top:14px;font-size:var(--fs-082);color:var(--text-2);border-top:1px solid var(--border);padding-top:12px}
.quote .by b{color:var(--text)}
.quote .by small{display:block;font-family:var(--mono);font-size:var(--fs-064);color:var(--text-3);margin-top:3px}
.cred{border:1px solid var(--border);border-radius:var(--r-5);padding:16px;background:var(--surface)}
.cred .ci{font-size:var(--fs-140)}
.cred h4{font-size:var(--fs-092);margin:8px 0 4px}
.cred p{font-size:var(--fs-078);color:var(--text-2);margin:0;line-height:1.5}

/* --- 九段 × 九岗 对应表 --- */
.maptable{margin-top:var(--block-mt);border:1px solid var(--border);border-radius:var(--r-5);overflow:hidden;background:var(--surface)}
.maprow{display:grid;grid-template-columns:120px 1fr 1.5fr;border-bottom:1px solid var(--border)}
.maprow:last-child{border-bottom:0}
.maprow.head{background:var(--tint-a2-060);font-family:var(--mono);font-size:var(--fs-072);color:var(--text-2)}
.maprow>div{padding:12px 14px;font-size:var(--fs-084);display:flex;align-items:center}
.maprow .seg{font-weight:700;color:var(--accent2);white-space:normal;line-height:1.35}
.maprow .goal{color:var(--text-2);line-height:1.4}
.maprow .own{display:flex;flex-wrap:wrap;gap:5px}
.maprow .own span{font-size:var(--fs-072);color:var(--text-2);background:var(--tint-acc-120);border:1px solid var(--tint-acc-250);padding:1px 7px;border-radius:var(--r-2);white-space:nowrap}
.maprow .own span.lead{color:#fff;background:var(--accent);border-color:transparent;font-weight:700}

/* --- 全案范围 · 协同模块 --- */
.scope{display:grid;grid-template-columns:1fr 1fr;gap:var(--block-gap);margin-top:var(--block-mt)}
.scope .col{border:1px solid var(--border);border-radius:var(--r-6);padding:18px;background:var(--surface)}
.scope .col h4{font-size:var(--fs-095);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.scope .col.in h4{color:var(--accent2)}
.scope .col.out h4{color:var(--text-2)}
.scope .col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.scope .col li{font-size:var(--fs-084);color:var(--text-2);display:flex;gap:8px;line-height:1.45}
.scope .col.in li::before{content:"\2713";color:var(--accent2);font-weight:700;flex:none}
.scope .col.out li::before{content:"\2192";color:var(--text-3);font-weight:700;flex:none}

@media(max-width:860px){
  .logo-wall{grid-template-columns:repeat(3,1fr)}
  .quotes{grid-template-columns:1fr}
  .creds{grid-template-columns:repeat(2,1fr)}
  .scope{grid-template-columns:1fr}
  .maprow{grid-template-columns:132px 1fr}
  .maprow>div:nth-child(3){grid-column:1/-1;border-top:1px dashed var(--border);padding-top:8px}
  .maprow.head{display:none}
}

/* ---- 方法论页 (method.html) · 权威/科学呈现 ---- */
.method-map{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--block-gap);margin-top:var(--block-mt)}
.method-map .ml{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-6);padding:18px}
.method-map .ml .k{font-family:var(--mono);font-size:var(--fs-070);color:var(--accent2);letter-spacing:var(--ls-label)}
.method-map .ml h4{margin:8px 0 6px;font-size:var(--fs-100)}
.method-map .ml p{font-size:var(--fs-082);color:var(--text-2);margin:0;line-height:1.6}
.framecard{margin-top:var(--block-mt);align-items:start}
.framecard .fc{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-5);padding:var(--panel-pad);display:flex;flex-direction:column;gap:8px}
.framecard .fc .fh{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.framecard .fc h3{font-size:var(--fs-105);margin:0}
.framecard .fc .evi{font-family:var(--mono);font-size:var(--fs-064);padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap;border:1px solid var(--tint-a2-300);color:var(--accent2);background:var(--tint-a2-080)}
.framecard .fc .src{font-size:var(--fs-076);color:var(--text-2);font-style:italic}
.framecard .fc .src b{color:var(--text-3);font-style:normal}
.framecard .fc .row{font-size:var(--fs-085);color:var(--text-2);line-height:1.7}
.framecard .fc .row b{color:var(--text)}
.optable{width:100%;border-collapse:collapse;margin-top:var(--block-mt);font-size:var(--fs-085)}
.optable th,.optable td{border:1px solid var(--border);padding:11px 14px;text-align:left;vertical-align:top}
.optable th{background:var(--surface);color:var(--text);font-weight:600}
.optable td{color:var(--text-2)}
.optable td b{color:var(--text)}
.optable tr:hover td{background:var(--tint-a2-040)}
.refs{counter-reset:ref;list-style:none;padding:0;margin:22px 0 0;display:grid;gap:12px}
.refs li{position:relative;padding-left:36px;font-size:var(--fs-080);color:var(--text-2);line-height:1.6}
.refs li::before{counter-increment:ref;content:"["counter(ref)"]";position:absolute;left:0;top:0;font-family:var(--mono);color:var(--accent2);font-weight:600}
.refs li b{color:var(--text)}
.evi-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;font-size:var(--fs-076);color:var(--text-2)}
.evi-legend span{border:1px solid var(--border);border-radius:var(--r-pill);padding:4px 12px}
@media(max-width:760px){.method-map{grid-template-columns:1fr 1fr}.optable{font-size:var(--fs-078)}}

/* ============================================================
   理论卡内的「餐饮里怎么用」折叠层
   ============================================================ */
.fc .kbd{margin-top:auto;padding-top:10px;border-top:1px dashed var(--border)}
.fc .kbd>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-076);color:var(--accent2)}
.fc .kbd>summary::-webkit-details-marker{display:none}
.fc .kbd>summary:hover{color:#7dd3fc}
.fc .kbd>summary:after{content:"＋";margin-left:auto;font-size:var(--fs-072);opacity:.8}
.fc .kbd[open]>summary:after{content:"－"}
.fc .kbd-b{margin-top:12px}
.fc .kbd-b h6{font-size:var(--fs-068);color:var(--accent2);font-family:var(--mono);letter-spacing:var(--ls-label);margin:14px 0 6px;font-weight:600}
.fc .kbd-b p{font-size:var(--fs-082);line-height:1.75;color:var(--text-2);margin:0}
.fc .kbd-b ul{margin:0;padding-left:16px;color:var(--text-2);font-size:var(--fs-082);line-height:1.7}
.fc .kbd-b ul li{margin:5px 0}
.fc .eg{border-left:3px solid var(--accent2);background:var(--tint-a2-050);border-radius:0 var(--r-3) var(--r-3) 0;padding:10px 12px;margin:0;font-size:var(--fs-082);color:var(--text-2);line-height:1.75}
.fc .eg b{color:var(--text)}
.fc .badbox{border-left:3px solid #f59e0b;background:rgba(245,158,11,.06);border-radius:0 var(--r-3) var(--r-3) 0;padding:10px 12px;margin:12px 0 0;font-size:var(--fs-082);color:var(--text-2);line-height:1.75}
.fc .badbox b{color:#fbbf24}
.fc .chk{list-style:none;padding:0;margin:0}
.fc .chk li{position:relative;padding-left:20px;font-size:var(--fs-082);color:var(--text-2);line-height:1.7;margin:5px 0}
.fc .chk li:before{content:"☐";position:absolute;left:0;top:0;color:var(--accent2);font-size:var(--fs-086)}
.fc .one{display:inline-block;margin-top:12px;font-family:var(--mono);font-size:var(--fs-076);color:var(--accent2);border:1px dashed var(--tint-a2-350);border-radius:var(--r-3);padding:6px 10px;background:var(--tint-a2-050)}

/* ---- 术语:悬浮即释 + 链接到方法页术语表 ---- */
.term{color:inherit;text-decoration:none;border-bottom:1px dashed var(--tint-a2-550);cursor:help;position:relative}
.term:hover,.term:focus-visible{color:var(--accent2);border-bottom-color:var(--accent2)}
.term::after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 9px);z-index:70;width:max-content;max-width:260px;padding:9px 11px;border-radius:var(--r-4);background:var(--surface2);border:1px solid var(--border-hi);box-shadow:0 8px 20px var(--tint-blk-450);color:var(--text-2);font-size:var(--fs-076);line-height:1.6;font-weight:400;letter-spacing:0;white-space:normal;text-align:left;display:none;pointer-events:none}
.term:hover::after,.term:focus-visible::after{display:block;opacity:1;visibility:visible;transform:translateY(0)}
.term.tip-on{color:var(--accent2);border-bottom-color:var(--accent2)}
.term.tip-on::after{display:block;opacity:1;visibility:visible;transform:translateY(0)}
.form-status.warn{color:#f0c674;border-color:rgba(240,198,116,.35)}
/* 术语表 */
.glgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:var(--block-mt)}
.gl{border:1px solid var(--border);border-radius:var(--r-5);padding:14px 15px;background:rgba(19,27,46,.55);scroll-margin-top:90px;transition:var(--t-base)}
.gl:hover{border-color:var(--border-hi)}
.gl:target{border-color:var(--tint-a2-500);box-shadow:0 0 0 1px var(--tint-a2-300)}
.gl-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.gl-h b{font-family:var(--mono);font-size:var(--fs-086);color:var(--accent2);letter-spacing:var(--ls-num)}
.gl-h span{font-size:var(--fs-072);color:var(--text-3)}
.gl-d{margin:0;font-size:var(--fs-088);color:var(--text);line-height:1.6}
.gl-e{margin:7px 0 0;font-size:var(--fs-080);color:var(--text-3);line-height:1.65;border-left:2px solid var(--tint-a2-280);padding-left:9px}
@media(max-width:760px){.glgrid{grid-template-columns:1fr}.term::after{left:auto;right:0}}
@media print{.term::after{display:none}.term{border-bottom:1px dotted #999}.gl{break-inside:avoid}}

/* ---- 文档页打印 / 导出 PDF(对客物料包,仅作用于 .doc) ---- */
.print-only{display:none}
@media print{
  .no-print{display:none !important}
  .print-only{display:block}
  .doc{background:#fff !important;color:#1a1a1a !important}
  .doc .nav,.doc .cta-bar,.doc .totop,.doc .hero-cta,.doc .btn,.doc .chips,.doc .pill,.doc .hero-pills,.doc .evi-legend,.doc .foot,.doc .mod-nav{display:none !important}
  .doc *{box-shadow:none !important;text-shadow:none !important}
  .doc header.page-hero,.doc .sec{background:#fff !important;padding:14px 0 !important;margin:0 !important}
  .doc .wrap{max-width:100% !important;padding:0 !important}
  .doc h1,.doc h2,.doc h3,.doc h4,.doc .sec-t{color:#111 !important}
  .doc .eyebrow,.doc p,.doc .sec-d,.doc .row,.doc td,.doc li,.doc .bench,.doc .src{color:#222 !important}
  .doc a{color:#111 !important;text-decoration:none}
  .doc .card,.doc .fc,.doc .ml,.doc .callout,.doc .bench,.doc .fstep,.doc .kbd-b{background:#fff !important;break-inside:avoid}
  .doc .fc .eg b{color:#111 !important}
  .doc .fc .one{color:#0b5cad !important;border-color:#9db8d6 !important}
  .doc .fc .eg,.doc .fc .badbox{background:#f7f7f7 !important}
  .doc .framecard .fc{break-inside:auto !important}
  .doc .fc .kbd>summary:after{content:"" !important}
  .doc .fstep{color:#111 !important}
  .doc .optable th{background:#eee !important}
  .doc .optable,.doc .bench,.doc .refs li{border-color:#ccc !important}
  .doc h2,.doc .sec-t,.doc .eyebrow,.doc .card,.doc .fc,.doc .ml,.doc .callout,.doc .optable,.doc .refs,.doc .bench{break-after:avoid}
  .doc .card,.doc .fc,.doc .ml,.doc .callout,.doc .optable,.doc .refs,.doc .bench,.doc .fstep,.doc .maprow{break-inside:avoid}
  .doc .print-cover{border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:18px;break-after:avoid}
  .doc .print-cover .pc-t{font-size:22px;font-weight:800;color:#111}
  .doc .print-cover .pc-m{font-size:12px;color:#555;margin-top:4px}
  @page{margin:16mm}
}

/* ---- 档位清单打印(价格页「打印 / 存成 PDF」,仅打印时可见) ---- */
#tierSheet{display:none}
@media print{
  html{background:#fff !important}
  body.print-tier{background:#fff !important}
  body.print-tier>*{display:none !important}
  body.print-tier>#tierSheet{display:block !important;background:#fff;color:#111;font-family:var(--sans);font-size:12px;line-height:1.65}
  #tierSheet .ts-cover{border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:14px}
  #tierSheet .ts-brand{font-size:10.5px;color:#555;letter-spacing:var(--ls-num)}
  #tierSheet h1{font-size:20px;font-weight:800;color:#111;margin:6px 0 4px;line-height:1.3}
  #tierSheet .ts-meta{font-size:10.5px;color:#666;line-height:1.5}
  #tierSheet h2{font-size:13px;font-weight:700;color:#111;margin:16px 0 7px;padding-left:8px;border-left:3px solid #111;break-after:avoid}
  #tierSheet .ts-table{width:100%;border-collapse:collapse}
  #tierSheet .ts-table th{width:26%;text-align:left;font-weight:600;color:#333;background:#f2f2f2;border:1px solid #ccc;padding:6px 8px;font-size:11.5px}
  #tierSheet .ts-table td{border:1px solid #ccc;padding:6px 8px;color:#111}
  #tierSheet .ts-dlvs{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
  #tierSheet .ts-dv{border:1px solid #ccc;border-radius:var(--r-1);padding:8px 6px;text-align:center;break-inside:avoid}
  #tierSheet .ts-dv b{display:block;font-size:18px;font-weight:800;color:#111;line-height:1.2}
  #tierSheet .ts-dv span{font-size:10.5px;color:#555}
  #tierSheet .ts-ul{margin:0;padding-left:18px}
  #tierSheet .ts-ul li{margin:3px 0;color:#222}
  #tierSheet .ts-p{margin:0;color:#333}
  #tierSheet .ts-foot{margin-top:18px;border-top:1px solid #ccc;padding-top:8px;font-size:10.5px;color:#666}
  @page{margin:14mm}
}

/* --- GEO:通栏框架卡 + 服务项目表双语小标 --- */
.framecard .fc--wide{grid-column:1/-1}
table.matrix.svc td .mini{display:block;font-size:var(--fs-066);line-height:1.4;color:var(--text-3);font-weight:400}
@media(max-width:700px){.framecard .fc--wide{grid-column:auto}}

/* --- 自查清单 --- */
.qlist{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;counter-reset:q}
.qlist li{counter-increment:q;position:relative;padding:12px 14px 12px 48px;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface);font-size:var(--fs-090);color:var(--text-2);line-height:1.7}
.qlist li::before{content:counter(q);position:absolute;left:14px;top:13px;font-family:var(--mono);font-size:var(--fs-072);color:var(--accent2);border:1px solid var(--tint-a2-350);border-radius:var(--r-2);width:21px;height:21px;display:flex;align-items:center;justify-content:center;background:var(--tint-a2-060)}
.qlist li b{color:var(--text);font-weight:600}
.qlist li i{display:block;font-style:normal;font-size:var(--fs-078);color:var(--text-3);margin-top:4px}
@media print{.qlist li{break-inside:avoid;border-color:#ccc;background:#fff}}

/* --- 预约信息生成区 --- */
.lead-copy{margin-top:12px;border:1px solid var(--tint-a2-280);border-radius:var(--r-5);background:rgba(10,16,30,.6);padding:14px 16px}
.lead-copy[hidden]{display:none}
.lead-copy b{display:block;font-size:var(--fs-078);color:var(--accent2);margin-bottom:8px;font-weight:500}
.lead-copy pre{margin:0;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-3);font-family:var(--mono);font-size:var(--fs-078);line-height:1.7;color:#d7f0f3;white-space:pre-wrap;user-select:all}

/* ===== 上线前移动端体检修复(2026-11-05) ===== */
/* 五档卡:桌面端"3+2 居中"用的 nth-child(4) 网格定位,在 ≤1100px 下会顶出
   幽灵第三列,把页面撑到 541px 造成手机横向滚动 —— 窄屏一律取消定位 */
@media(max-width:1100px){
  .tiergrid>*:nth-child(4){grid-column:auto}
}
/* ≤600px 导航隐藏电话:390px 小屏下 logo+电话+按钮+汉堡 ≈464px 必溢出;
   底部悬浮通栏和页面内都有同号,不丢转化入口 */
@media(max-width:600px){
  .nav-cta .tel{display:none}
}
/* 双栏网格子项允许收缩:漏斗等宽内容不再把整列/整页撑破 */
@media(max-width:960px){
  .grid2>*{min-width:0}
}

/* contact 六卡等宽:card.center 的 margin:auto 在 grid 里会让卡片收缩为
   内容宽,导致同排卡片忽宽忽窄 —— 栅格内一律拉伸占满轨道 */
.g3>.card.center,.g4>.card.center,.g5>.card.center{margin-left:0;margin-right:0}

/* ===== 克制质感层 · 无渐变 / 无浮起 / 无光晕 =====
   层次只由 1px 边界、明度差与留白产生;交互只给最小必要反馈 */

/* 按钮:悬停仅明度变化 + 1px 亮边,不位移、不投影 */
.btn{transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-base) var(--ease)}
.btn:hover{background:#C9A55A;border-color:var(--accent-ink);transform:translateY(-1px);box-shadow:var(--elev-sm)}
.btn:active{background:#9A7A38;border-color:#9A7A38;transform:translateY(0);box-shadow:none}
.btn.alt:hover{border-color:var(--border-hi);background:var(--tint-wht-035)}
.btn.alt:active{background:var(--tint-wht-020)}

/* 卡片:顶部 1px 内嵌亮线做分层,悬停只换边框色 */
.card{box-shadow:inset 0 1px 0 var(--tint-wht-040)}
.card:hover{border-color:var(--border-hi);transform:translateY(-2px);box-shadow:var(--elev-sm)}
.plan{box-shadow:inset 0 1px 0 var(--tint-wht-040)}
.stat{box-shadow:inset 0 1px 0 var(--tint-wht-035)}

/* 统一键盘焦点环:细青线,精致且可达 */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;border-radius:var(--r-2)}
input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
input:focus,select:focus,textarea:focus{border-color:var(--tint-a2-500) !important;box-shadow:0 0 0 3px var(--tint-a2-150, rgba(78,182,194,.12))}

/* 青色选区文字 */
::selection{background:var(--tint-acc-420);color:#fff}

/* 细窄深色滚动条:默认灰白粗条在深底上极廉价 */
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:#24304c;border-radius:var(--r-pill);border:2px solid var(--bg2)}
::-webkit-scrollbar-thumb:hover{background:#33507e}
html{scrollbar-width:thin;scrollbar-color:#24304c var(--bg2)}

/* 大标题:收紧字距保持,白文上加极淡青光避免"死白" */
.hero h1,.page-hero h1{text-wrap:balance}

/* 表格 sticky 表头:加底部 1px 亮线,滚动时表头与正文有清晰分界 */
table.matrix th{box-shadow:inset 0 -1px 0 var(--border-hi)}

/* 导航当前页:底部细亮线代替悬停猜测 */
.nav-links a.active{color:var(--text)}
.nav-links a.active::after{content:"";position:absolute;left:13px;right:13px;bottom:6px;height:2px;background:var(--accent)}
@media(max-width:960px){.nav-links a.active::after{display:none}}

/* 打印时回收所有光效,保持纸面干净 */
@media print{.card,.plan,.stat{box-shadow:none}.nav-links a.active::after{display:none}}

/* ===== 数字驾驶舱(digital.html) ===== */
.dcc-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:22px;align-items:stretch}
.dcc-card{padding:var(--panel-pad)}
.dcc-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.dcc-head b{font-size:var(--fs-100);letter-spacing:var(--ls-num)}
.dcc-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-068);font-family:var(--mono);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px 10px;background:var(--tint-wht-020)}
.dcc-chip.on{color:var(--accent2);border-color:var(--tint-a2-300);background:var(--tint-a2-080)}
.dcc-chip i{width:5px;height:5px;border-radius:50%;background:currentColor}


/* 雷达 */
.dcc-radar{position:relative;max-width:360px;margin:0 auto}
.dcc-radar svg{display:block;width:100%;height:auto}
.dcc-sweep{transform-origin:170px 172px;transform-box:view-box;animation:dcc-sweep 4.8s linear infinite;opacity:.85}
.dcc-gridlines polygon{fill:none;stroke:var(--grid);stroke-width:1}
.dcc-gridlines polygon:last-of-type{stroke:var(--border-hi)}
.dcc-gridlines line{stroke:var(--grid);stroke-width:1}
.dcc-area{fill:var(--tint-a2-100)}
.dcc-outline{fill:none;stroke:var(--accent2);stroke-width:1.6;stroke-linejoin:round}
.dcc-dots circle{fill:var(--accent2);stroke:var(--bg);stroke-width:1.5}
.dcc-axislabels text{fill:var(--text-2);font-size:12.5px;font-family:var(--sans)}
.dcc-legend{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:var(--fs-074);color:var(--text-2)}
.dcc-legend>span{white-space:nowrap}
.dcc-legend .sq{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--tint-a2-500);border:1px solid var(--accent2);margin-right:6px;vertical-align:-1px}
.dcc-legend .dim{color:var(--text-3);font-family:var(--mono);font-size:var(--fs-066)}

/* 折线 */
.dcc-line{display:block;width:100%;height:auto}
.dcc-line .dcc-gridlines line{stroke:rgba(120,140,180,.14)}
.dcc-fill{fill:var(--tint-a2-090)}
.dcc-line-path{fill:none;stroke:var(--accent2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dcc-line .dcc-dots circle{fill:var(--bg2);stroke:var(--accent2);stroke-width:2}
.dcc-line .dcc-axislabels text{fill:var(--text-3);font-size:11px;font-family:var(--sans)}
.dcc-line .dcc-axislabels text:first-of-type{fill:var(--accent2);font-family:var(--mono)}

/* 终端任务流水 */
/* AI 实时作业 · 并行作业条带(与驾驶舱任务流水同一套信息标准) */
.ai-feed{margin-top:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-5);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:var(--fs-072);line-height:1.45}
.ai-feed .ai-fh{display:flex;justify-content:space-between;align-items:center;color:var(--text-3);font-family:var(--sans);font-size:var(--fs-072);margin-bottom:2px}
.ai-row{display:flex;gap:8px;align-items:baseline;white-space:nowrap;overflow:hidden}
.ai-row .t{color:var(--text-3);flex:none;width:56px}
.ai-row .r{color:var(--accent2);flex:none;width:84px}
.ai-row .m{color:#d7f0f3;overflow:hidden;text-overflow:ellipsis}
@media(max-width:520px){.ai-row .t{display:none}.ai-row .r{width:76px}.ai-feed{font-size:var(--fs-070)}}
@media print{.ai-feed{display:none}}
.dcc-log{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-5);padding:12px 14px;height:218px;overflow:hidden;display:flex;flex-direction:column;gap:7px;font-family:var(--mono);font-size:var(--fs-074);line-height:1.5}
.dcc-row{display:flex;gap:10px;align-items:baseline;animation:dcc-in .3s ease backwards;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcc-row .t{color:var(--text-3);flex:none;width:62px}
.dcc-row .r{color:var(--accent2);flex:none;width:78px}
.dcc-row .m{color:#d7f0f3;overflow:hidden;text-overflow:ellipsis}
@keyframes dcc-in{from{opacity:.4;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* 入场动画:折线描画 + 雷达展开(仅 reveal 后触发一次) */
/* 基态恒可见:打印 / 关闭动效 / reveal 未触发时图表仍完整 */
.dcc-line-path{stroke-dasharray:600;stroke-dashoffset:0}
.dcc-fill{opacity:1}
[data-reveal].in .dcc-line-path{animation:dcc-draw 1.6s ease-out .2s backwards}
[data-reveal].in .dcc-fill{animation:dcc-fade .8s ease-out 1.4s backwards}
[data-reveal].in .dcc-radar .dcc-area{animation:dcc-pop .9s cubic-bezier(.2,.8,.2,1) both}
[data-reveal].in .dcc-radar .dcc-outline{animation:dcc-pop .9s cubic-bezier(.2,.8,.2,1) both}
[data-reveal].in .dcc-radar .dcc-dots circle{animation:dcc-pop .5s ease .5s both}
@keyframes dcc-draw{from{stroke-dashoffset:180}to{stroke-dashoffset:0}}
@keyframes dcc-fade{from{opacity:.45}to{opacity:1}}
@keyframes dcc-pop{from{opacity:.45;transform:scale(.92);transform-origin:center}to{opacity:1;transform:scale(1)}}
.dcc-radar .dcc-dots circle,.dcc-radar .dcc-outline,.dcc-radar .dcc-area{transform-origin:170px 172px;transform-box:view-box}

/* 响应式 */
@media(max-width:960px){.dcc-grid{grid-template-columns:1fr}.dcc-radar{max-width:320px}}
@media print{.dcc-sweep{display:none}.dcc-log{height:auto;border-color:#ccc}.dcc-row{color:#111}.dcc-row .r{color:#0a6e3c}.dcc-row .m{color:#222}.dcc-line-path{stroke:#1e5fa8;stroke-dashoffset:0!important;animation:none!important}.dcc-fill{opacity:1!important;animation:none!important}.dcc-radar .dcc-area,.dcc-radar .dcc-outline,.dcc-radar .dcc-dots circle{opacity:1!important;animation:none!important}}
@media(prefers-reduced-motion:reduce){.dcc-sweep{animation:none}.dcc-row{animation:none}[data-reveal].in .dcc-line-path,[data-reveal].in .dcc-fill,[data-reveal].in .dcc-radar .dcc-area,[data-reveal].in .dcc-radar .dcc-outline,[data-reveal].in .dcc-radar .dcc-dots circle{animation:none;opacity:1}.dcc-line-path{stroke-dashoffset:0!important}}

/* ===== 点缀色(Spark):冷色体系里的最小面积暖锚点 =====
   不是换色系,只用于关键结论/关键数字/重点标注,全站占比 <1% */
/* 点缀色 token 已并入首个 :root;此处原为空块,已清理 */
.mark{color:var(--text);font-weight:600;border-bottom:1px solid var(--spark);padding-bottom:2px}
.spark{color:var(--spark)!important}
@media print{.mark{border-bottom-color:#999;color:#111}.spark{color:#8a5a00!important}.spark-tag{border-color:#999;color:#555;background:none}}

/* ===== 动态数据可视化:依据类型环形图 + 九步服务覆盖条 ===== */
.viz-grid{max-width:960px;margin-left:auto;margin-right:auto}
.viz-donut{text-align:center;padding:22px}
.viz-donut svg{width:220px;max-width:100%;height:auto;display:block;margin:0 auto}
.viz-seg{stroke-linecap:butt}
.viz-donut-n{fill:var(--text);font-family:var(--mono);font-size:38px;font-weight:700}
.viz-donut-l{fill:var(--text-3);font-family:var(--sans);font-size:11px;letter-spacing:var(--ls-label)}
.viz-donut-foot{font-size:var(--fs-070);font-family:var(--mono);color:var(--text-3);margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.viz-legend{display:flex;flex-direction:column;gap:12px}
.viz-lg-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface)}
.viz-lg-dot{width:11px;height:11px;border-radius:var(--r-1);flex:none;margin-top:4px}
.viz-lg-row b{display:block;font-size:var(--fs-090)}
.viz-lg-row small{display:block;color:var(--text-3);font-size:var(--fs-072);margin-top:3px;line-height:1.5}

.viz-chart{display:flex;flex-direction:column;gap:12px}
.viz-row{display:grid;grid-template-columns:132px 1fr 48px;gap:14px;align-items:center;color:inherit;text-decoration:none;border-radius:var(--r-3);padding:2px 4px;transition:background var(--t-base)}
.viz-row:hover{background:var(--tint-a2-060)}
.viz-k{font-size:var(--fs-082);color:var(--text-2);white-space:nowrap}
.viz-row:hover .viz-k{color:var(--accent2)}
.viz-track{height:14px;border-radius:var(--r-pill);background:var(--tint-steel-100);overflow:hidden;display:block}
.viz-bar{display:block;height:100%;border-radius:var(--r-pill);background:var(--accent);box-shadow:inset -2px 0 0 var(--accent2);transform-origin:left center}
.viz-bar.viz-hot{background:var(--spark);box-shadow:inset -2px 0 0 var(--tint-wht-450)}
.viz-v{font-family:var(--mono);font-size:var(--fs-078);color:var(--text-2);text-align:right;white-space:nowrap}
.viz-foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--border);font-size:var(--fs-076);color:var(--text-3)}
.viz-foot b{color:var(--text);font-family:var(--mono)}

/* 入场:环段依次描出 + 横条依次长出。基态恒可见,动画只负责入场;
   关闭动效 / 无 JS / 动画被中断时图表仍完整呈现,不留白 */
.viz-seg{opacity:1}
[data-reveal].in .viz-seg{animation:viz-ring .55s ease-out backwards}
[data-reveal].in .viz-seg:nth-of-type(2){animation-delay:.12s}
[data-reveal].in .viz-seg:nth-of-type(3){animation-delay:.24s}
[data-reveal].in .viz-seg:nth-of-type(4){animation-delay:.36s}
[data-reveal].in .viz-seg:nth-of-type(5){animation-delay:.48s}
@keyframes viz-ring{from{opacity:.45}to{opacity:1}}
.viz-bar{transform:scaleX(1)}
[data-reveal].in .viz-bar{animation:viz-grow .9s cubic-bezier(.2,.8,.2,1) backwards}
.viz-row:nth-child(2) .viz-bar{animation-delay:.06s}
.viz-row:nth-child(3) .viz-bar{animation-delay:.12s}
.viz-row:nth-child(4) .viz-bar{animation-delay:.18s}
.viz-row:nth-child(5) .viz-bar{animation-delay:.24s}
.viz-row:nth-child(6) .viz-bar{animation-delay:.30s}
.viz-row:nth-child(7) .viz-bar{animation-delay:.36s}
.viz-row:nth-child(8) .viz-bar{animation-delay:.42s}
.viz-row:nth-child(9) .viz-bar{animation-delay:.48s}
@keyframes viz-grow{from{transform:scaleX(.4)}to{transform:scaleX(1)}}

@media(max-width:760px){.viz-row{grid-template-columns:104px 1fr 42px;gap:9px}.viz-k{font-size:var(--fs-074)}.viz-foot{font-size:var(--fs-070)}}
@media print{.viz-seg,.viz-bar{opacity:1!important;transform:none!important;animation:none!important}.viz-bar{background:#4a76b8!important}.viz-row{color:#111}}
@media(prefers-reduced-motion:reduce){.viz-seg,.viz-bar{opacity:1!important;transform:none!important;animation:none!important}}

/* ===== 五档覆盖度视图(价格页) · 数值由服务项目表实时统计 ===== */
.cv-chart{display:flex;flex-direction:column;gap:14px}
.cv-row{display:grid;grid-template-columns:118px 1fr 84px;gap:14px;align-items:center;color:inherit;text-decoration:none;border-radius:var(--r-3);padding:3px 4px;transition:background var(--t-base)}
.cv-row:hover{background:var(--tint-a2-060)}
.cv-row.on{background:var(--spark-soft)}
.cv-k{font-family:var(--mono);font-size:var(--fs-090);color:var(--text);white-space:nowrap}
.cv-k small{display:block;font-family:var(--sans);font-size:var(--fs-070);color:var(--text-3);margin-top:2px}
.cv-track{height:14px;border-radius:var(--r-pill);background:var(--tint-steel-100);overflow:hidden;display:block}
.cv-bar{display:block;height:100%;border-radius:var(--r-pill);background:var(--accent);box-shadow:inset -2px 0 0 var(--accent2);transition:width .9s var(--ease)}
.cv-bar.cv-hot{background:var(--spark);box-shadow:inset -2px 0 0 var(--tint-wht-450)}
.cv-n{font-family:var(--mono);font-size:var(--fs-078);color:var(--text-2);text-align:right;white-space:nowrap}
.cv-n b{color:var(--text);font-size:var(--fs-095)}
@media(max-width:760px){.cv-row{grid-template-columns:92px 1fr 62px;gap:9px}.cv-k{font-size:var(--fs-080)}.cv-k small{font-size:var(--fs-062)}.cv-n{font-size:var(--fs-068)}}
@media print{.cv-bar{background:#4a76b8!important;box-shadow:none!important}.cv-row{color:#111}}
@media(prefers-reduced-motion:reduce){.cv-bar{transition:none}}

/* ============================================================
   图表信息层 · 刻度 / 参考线 / 口径 / 色义
   目标:让图从"装饰"变成"可读、可复核";全部纯色 1px,无渐变
   ============================================================ */
/* 交付节奏时序图(service.html):三段刻度 + 五步轨道 + 回流弧 */
.dlv{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-5);padding:var(--panel-pad);margin-top:var(--block-mt)}
.dlv-scale{display:grid;grid-template-columns:2fr 2fr 1fr;border:1px solid var(--border);border-radius:var(--r-3);overflow:hidden;margin-bottom:12px}
.dlv-band{padding:8px 12px;border-right:1px solid var(--border);min-width:0}
.dlv-band:last-child{border-right:0}
.dlv-band b{display:block;font-family:var(--mono);font-size:var(--fs-070);font-weight:600;letter-spacing:var(--ls-num);color:var(--text-2)}
.dlv-band small{display:block;margin-top:3px;font-size:var(--fs-064);color:var(--text-3);line-height:1.5}
.dlv-track{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.dlv-node{display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 11px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-5);animation:dlv-in .42s var(--ease) backwards}
.dlv-track .dlv-node:nth-child(2){animation-delay:.06s}
.dlv-track .dlv-node:nth-child(3){animation-delay:.12s}
.dlv-track .dlv-node:nth-child(4){animation-delay:.18s}
.dlv-track .dlv-node:nth-child(5){animation-delay:.24s}
.dlv-node .w{font-family:var(--mono);font-size:var(--fs-064);color:var(--text-3)}
.dlv-node .i{font-family:var(--mono);font-size:var(--fs-110);line-height:1;color:var(--accent2)}
.dlv-node .n{font-size:var(--fs-085);font-weight:600;color:var(--text)}
.dlv-node .g{font-size:var(--fs-070);line-height:1.5;color:var(--text-3);text-wrap:pretty}
.dlv-node.is-on{border-color:var(--accent);background:var(--tint-acc-090)}
@keyframes dlv-in{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
.dlv-arc-wrap{position:relative;height:46px;margin-top:8px}
.dlv-arc{position:absolute;left:0;top:0;width:100%;height:44px;overflow:visible}
.dlv-arc path{fill:none;stroke:var(--accent2);stroke-width:1;opacity:.6}
.dlv-arc-label{position:absolute;left:50%;top:10px;transform:translateX(-50%);padding:0 12px;background:var(--surface);font-size:var(--fs-070);color:var(--text-2);white-space:nowrap}
.dlv-loop-m{display:none;margin-top:12px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-3);font-size:var(--fs-072);color:var(--text-2);line-height:1.6}
.dlv-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.dlv-li{border-left:2px solid transparent;background:var(--bg2);border-radius:var(--r-3);padding:10px 12px;min-width:0}
.dlv-li.is-on{border-left-color:var(--accent);background:var(--surface2)}
.dlv-li-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.dlv-li-h b{font-size:var(--fs-080);font-weight:600;color:var(--text)}
.dlv-li-h span{font-family:var(--mono);font-size:var(--fs-064);color:var(--text-3)}
.dlv-li p{margin:5px 0 0;font-size:var(--fs-072);line-height:1.6;color:var(--text-2);text-wrap:pretty}
.js-delivery .dlv-node{cursor:pointer;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease)}
.js-delivery .dlv-node:hover{border-color:var(--border-hi)}
.js-delivery .dlv-node:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.js-delivery .dlv-arc-label{cursor:pointer}
@media(max-width:900px){
  .dlv-scale,.dlv-arc-wrap{display:none}
  .dlv-loop-m{display:block}
  .dlv-track{grid-template-columns:1fr}
  .dlv-node{display:grid;grid-template-columns:26px 1fr auto;grid-template-areas:"i n w" "i g g";align-items:center;gap:3px 10px;padding:10px 12px}
  .dlv-node .i{grid-area:i}
  .dlv-node .n{grid-area:n}
  .dlv-node .w{grid-area:w;margin-left:0}
  .dlv-node .g{grid-area:g}
}
@media(max-width:620px){.dlv{padding:16px}.dlv-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.dlv-node{animation:none;opacity:1}}
@media print{.dlv-arc-wrap,.dlv-loop-m{display:none}.dlv,.dlv-node,.dlv-li{background:#fff;border-color:#ccc}.dlv-node .n,.dlv-node .g,.dlv-li p,.dlv-li-h b{color:#111}}
.chart-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid var(--border);font-size:var(--fs-072);color:var(--text-3)}
.chart-meta b{font-family:var(--mono);font-size:var(--fs-076);font-weight:600;letter-spacing:var(--ls-num);color:var(--text-2)}
.chart-meta .unit{font-family:var(--mono);color:var(--accent2)}
.chart-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:var(--fs-070);line-height:1.7;color:var(--text-3)}
.chart-note b{color:var(--text-2);font-weight:600}
.ax-key{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-068);color:var(--text-3)}
.ax-key i{display:inline-block;width:14px;border-top:1px dashed var(--spark-line)}

/* 刻度轴:用 CSS 变量对齐轨道区(左=标签列+gap,右=数值列+gap) */
/* 变量定义在轨道容器上,轴是它的兄弟节点,故轴自身写死左右留白并随断点覆盖 */
.ax-axis--svc{margin-left:146px;margin-right:62px}
.ax-axis--cv{margin-left:132px;margin-right:98px}
.ax-axis{position:relative;height:22px;margin-top:4px;font-family:var(--mono);font-size:var(--fs-066);letter-spacing:var(--ls-num);color:var(--text-3)}
.ax-axis span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.ax-axis span:first-child{transform:none}
.ax-axis span:last-child{transform:translateX(-100%)}
@media(max-width:760px){.ax-axis--svc{margin-left:113px;margin-right:51px}.ax-axis--cv{margin-left:101px;margin-right:71px}}

/* 轨道内网格线与均值参考线:伪元素/纯色 1px,不引入任何渐变 */
.viz-track,.cv-track{position:relative}
.viz-track::before,.viz-track::after,.cv-track::before,.cv-track::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--tint-steel2-240);z-index:0;pointer-events:none}
.viz-track::before{left:35.71%}.viz-track::after{left:71.43%}
.cv-track::before{left:25%}.cv-track::after{left:75%}
.ax-mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--tint-steel2-240);z-index:0;pointer-events:none}
.ax-ref{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--spark-line);z-index:2;pointer-events:none}
.viz-bar,.cv-bar{position:relative;z-index:1}

/* 环形图:图例数值、色条、中心副标 */
.viz-lg-n{margin-left:auto;align-self:center;flex:none;font-family:var(--mono);font-size:var(--fs-072);color:var(--text-2);letter-spacing:var(--ls-num)}
.seg-bar{display:flex;gap:3px;height:7px;margin-top:16px}
.seg-bar i{display:block;height:100%;border-radius:2px}
.viz-donut-sub{fill:var(--text-3);font-family:var(--mono);font-size:9px;letter-spacing:var(--ls-label)}

/* 五档数值:主值 + 百分比两行 */
.cv-n b{display:block;line-height:1.2}
.cv-n small{display:block;font-family:var(--mono);font-size:var(--fs-064);color:var(--text-3);margin-top:1px;letter-spacing:var(--ls-num)}

/* 驾驶舱:雷达环刻度 / 轴数值 / 折线 Y 刻度 / 均值线 */
.dcc-axv{fill:var(--accent2);font-family:var(--mono);font-size:11px}
.dcc-ticks text,.dcc-yticks text{fill:var(--text-3);font-family:var(--mono);font-size:9px}
.dcc-line .dcc-gridlines line{stroke:var(--grid)}
.dcc-mean{stroke:var(--spark-line);stroke-width:1;stroke-dasharray:4 4}

/* ===== 直播间侧栏统计:修 flex item 按内容收缩导致的"窄柱居中" =====
   原来只有 max-width 没有 flex-basis,三张卡被压成内容宽、纵向排成一条,
   与左侧直播卡宽度不一致。给稳定基准宽;窄屏改横向三列铺满整行。 */
.live-stats{flex:1 1 300px;min-width:250px;max-width:340px;display:flex;flex-direction:column;gap:14px}
.video-card.live-room{flex:1 1 340px;min-width:280px}
@media(max-width:760px){
  .live-stats{flex:1 1 100%;max-width:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .live-stats .stat{padding:14px 8px}
  .live-stats .stat .n{font-size:var(--fs-140)}
  .live-stats .stat .l{font-size:var(--fs-074)}
  .live-stats .stat .src{font-size:var(--fs-060)}
}
@media(max-width:360px){
  .live-stats{grid-template-columns:1fr}
  .live-stats .stat{padding:16px}
}
@media print{.live-stats{max-width:none;display:block}.live-stats .stat{margin-bottom:10px}}

@media print{
  .chart-meta,.chart-note,.ax-axis,.seg-bar{border-color:#ccc;color:#444}
  .chart-meta b,.chart-note b{color:#111}.chart-meta .unit{color:#333}
  .ax-ref{border-left-color:#888}.ax-key i{border-top-color:#888}
  .dcc-mean{stroke:#888}
}


/* ===== 获奖级精致细节层 · 不改色相 / 不改布局 =====
   数字等宽、标题平衡、正文避孤字、减弱动效一以贯之 */
body{font-variant-numeric:tabular-nums}
h1,h2,h3,.sec-t,.card h3,.plan .thd h3{text-wrap:balance}
.sub,.sec-d,.card p,.chart-note,.plan .fit,.plan .who{text-wrap:pretty}
svg text{font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media print{body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}


/* ===== 九步运行图 (service.html) · 动态但不破克制 =====
   动态 = 一次性依次入场 + 用户触发的按序播放 + 点击联动详情;
   无渐变、无发光、无持续循环动效;基态恒可见,动画冻结也不空白 */
.run{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-6);padding:var(--panel-pad);margin:var(--block-mt) auto 0;max-width:none}
.rn-progress{height:3px;background:var(--surface2);border-radius:var(--r-pill);overflow:hidden;margin:0 0 20px}
.rn-progress i{display:block;height:100%;background:var(--accent2);transition:width var(--t-slow) var(--ease)}
.rn-body{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;align-items:start}
.rn-track{display:flex;flex-direction:column;gap:6px;border-left:1px solid var(--border);padding-left:13px}
.rn-step{position:relative;display:grid;grid-template-columns:20px 1fr auto 62px 44px;gap:10px;align-items:center;
  width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:var(--r-3);
  padding:8px 10px;color:var(--text);cursor:pointer;font:inherit;
  transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}
.rn-step::before{content:"";position:absolute;left:-18px;top:50%;width:9px;height:9px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border-hi);transform:translateY(-50%);
  transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}
.rn-step:hover{background:var(--surface2);border-color:var(--border)}
.rn-step.is-on{background:var(--surface2);border-color:var(--border-hi)}
.rn-step.is-on::before{background:var(--accent2);border-color:var(--accent2)}
.rn-no{font-family:var(--mono);font-size:var(--fs-088);color:var(--text-3)}
.rn-step.is-on .rn-no{color:var(--accent2)}
.rn-main b{display:block;font-size:var(--fs-082);font-weight:600}
.rn-main small{display:block;font-family:var(--mono);font-size:var(--fs-064);color:var(--text-3);margin-top:1px}
.rn-who{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-068);color:var(--text-2);white-space:nowrap}
.rn-who i{display:inline-block;flex:none;width:5px;height:5px;border-radius:50%;background:var(--accent2)}
.rn-bar{display:block;width:62px;height:5px;background:var(--surface2);border-radius:var(--r-pill);overflow:hidden}
.rn-bar i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transform-origin:left center}
.rn-step.is-on .rn-bar i{background:var(--accent2)}
.rn-cnt{text-align:right;font-family:var(--mono)}
.rn-cnt b{font-size:var(--fs-086);color:var(--text)}
.rn-cnt small{font-size:var(--fs-060);color:var(--text-3);margin-left:2px}
.rn-panel{display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-5);padding:20px}
.rn-p-head{display:flex;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--border)}
.rn-p-no{font-family:var(--mono);font-size:var(--fs-190);line-height:1;color:var(--accent2)}
.rn-p-head b{display:block;font-size:var(--fs-105)}
.rn-p-head small{display:block;margin-top:2px;font-family:var(--mono);font-size:var(--fs-066);color:var(--text-3)}
.rn-p-list{margin:0;padding:6px 0 14px}
.rn-p-list>div{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:7px 0;border-bottom:1px dashed var(--border)}
.rn-p-list dt{font-size:var(--fs-068);font-weight:600;color:var(--text-3)}
.rn-p-list dd{margin:0;font-size:var(--fs-076);line-height:1.55;color:var(--text-2)}
.rn-panel .btn{margin-top:auto;align-self:flex-start;font-size:var(--fs-082);padding:9px 16px}
.rn-p-flow{margin-top:14px;padding-top:12px;border-top:1px dashed var(--border)}
.rn-p-flow b{display:block;margin-bottom:7px;font-size:var(--fs-068);font-weight:600;color:var(--text-3)}
.rn-p-flow-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-family:var(--mono);font-size:var(--fs-070);color:var(--text-3)}
.rn-p-flow-row span{padding:3px 7px;border:1px solid var(--border);border-radius:var(--r-2);white-space:nowrap}
.rn-p-flow-row span.cur{color:var(--accent2);border-color:var(--accent2)}
.rn-p-flow-row i{font-style:normal;color:var(--text-3)}
.rn-p-loop{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.rn-p-loop b{display:block;font-size:var(--fs-068);font-weight:600;color:var(--text-3)}
.rn-p-dots{display:grid;grid-template-columns:repeat(9,1fr);gap:5px;margin:9px 0 8px}
.rn-p-dots i{height:5px;border-radius:var(--r-pill);background:var(--surface2);border:1px solid var(--border)}
.rn-p-dots i.on{background:var(--accent2);border-color:var(--accent2)}
.rn-p-loop small{display:block;font-size:var(--fs-066);line-height:1.55;color:var(--text-3)}
.rn-foot[hidden],.rn-play[hidden]{display:none}
.rn-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.rn-play{font:inherit;font-size:var(--fs-074);color:var(--text);background:var(--surface2);
  border:1px solid var(--border-hi);border-radius:var(--r-pill);padding:7px 16px;cursor:pointer;
  transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}
.rn-play:hover{background:var(--border);border-color:var(--accent2)}
.rn-play[disabled]{opacity:.55;cursor:default}
.rn-foot>span{font-size:var(--fs-068);color:var(--text-3)}
/* 基态恒可见:即使动画被冻结/未触发,九步信息也不丢 */
.rn-step{opacity:1}
[data-reveal].in .rn-step{animation:rn-in .42s var(--ease) backwards}
@keyframes rn-in{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
.rn-step:nth-child(1){animation-delay:0s}.rn-step:nth-child(2){animation-delay:.06s}
.rn-step:nth-child(3){animation-delay:.12s}.rn-step:nth-child(4){animation-delay:.18s}
.rn-step:nth-child(5){animation-delay:.24s}.rn-step:nth-child(6){animation-delay:.30s}
.rn-step:nth-child(7){animation-delay:.36s}.rn-step:nth-child(8){animation-delay:.42s}
.rn-step:nth-child(9){animation-delay:.48s}
@media(max-width:900px){.rn-body{grid-template-columns:1fr}.rn-panel{order:2}}
@media(max-width:620px){
  .run{padding:16px}
  .rn-step{grid-template-columns:20px 1fr 42px;grid-template-rows:auto auto;column-gap:8px;row-gap:3px;padding:8px 6px}
  .rn-no{grid-area:1/1/2/2}.rn-main{grid-area:1/2/2/3}.rn-cnt{grid-area:1/3/2/4}
  .rn-who{grid-area:2/2/3/4;white-space:normal}.rn-bar{display:none}
  .rn-main small{display:none}.rn-p-list>div{grid-template-columns:56px 1fr}
}
@media(max-width:360px){.rn-p-no{font-size:var(--fs-140)}.rn-panel{padding:14px}}
@media(prefers-reduced-motion:reduce){.rn-step{opacity:1!important;transform:none!important;animation:none!important}.rn-progress i{transition:none}}
@media print{
  .rn-panel,.rn-foot,.rn-progress{display:none}
  .rn-body{grid-template-columns:1fr}
  .rn-step{opacity:1!important;transform:none!important;animation:none!important;border-color:#ccc}
  .rn-bar i{background:#4a76b8!important}
}


/* ===== 跨页图表联动层 · 同一套信息标准,不同交互分工 ===== */
/* 通用明细条:静态可读,点数据项才更新 */
.lk-bar{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:14px;padding:11px 13px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3)}
.lk-k{font-family:var(--mono);font-size:var(--fs-076);font-weight:600;color:var(--accent2);white-space:nowrap}
.lk-d{font-size:var(--fs-072);color:var(--text-2);line-height:1.5}
.lk-h{margin-left:auto;font-size:var(--fs-064);color:var(--text-3);white-space:nowrap}
@media(max-width:620px){.lk-h{margin-left:0;width:100%}}

/* 首页漏斗:等宽 + 底部按服务项目数定长,替代原来无口径的递减宽度 */
.funnel .fstep.hf{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;
  text-align:left;position:relative;padding:9px 12px;color:inherit}
.funnel .fstep.hf:hover,.funnel .fstep.hf:focus-within{border-color:var(--border-hi);background:var(--surface2)}
.funnel .fstep.hf .hf-label{min-width:0;font-size:var(--fs-082);line-height:1.5}
.funnel .fstep.hf .hf-who{font-size:var(--fs-062);color:var(--text-3);white-space:nowrap}
.funnel .fstep.hf .hf-n{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);white-space:nowrap}
/* 整行可点:拉伸链接铺满;术语链接浮在其上,tooltip 与跳词仍可用 */
.funnel .fstep.hf .hf-go{position:absolute;inset:0;z-index:1;border-radius:var(--r-5)}
.funnel .fstep.hf .hf-go:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px}
.funnel .fstep.hf .term{position:relative;z-index:2}
.funnel .fstep.hf .hf-track{position:absolute;left:0;right:0;bottom:0;height:2px;overflow:hidden;
  border-radius:0 0 var(--r-5) var(--r-5);pointer-events:none}
.funnel .fstep.hf .hf-bar{display:block;height:100%;background:var(--accent);opacity:.7}
.hf-note{margin-top:10px;padding-top:9px;border-top:1px dashed var(--border);
  font-size:var(--fs-064);line-height:1.6;color:var(--text-3)}
.hf-note b{color:var(--text-2);font-weight:600}
@media(max-width:620px){
  .funnel .fstep.hf{grid-template-columns:1fr auto;grid-template-rows:auto auto;row-gap:2px}
  .funnel .fstep.hf .hf-label{grid-column:1;grid-row:1}
  .funnel .fstep.hf .hf-who{grid-column:1;grid-row:2}
  .funnel .fstep.hf .hf-n{grid-column:2;grid-row:1}
}
/* 方法论图例:可点击类别(JS 接管后才给出可点提示,避免无 JS 死控件) */
.js-charts-evi .viz-lg-row[data-evi]{cursor:pointer;border-radius:var(--r-3);
  transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}
.js-charts-evi .viz-lg-row[data-evi]:hover,.js-charts-evi .viz-lg-row[data-evi].is-on{background:var(--surface2)}
.js-charts-evi .viz-lg-row[data-evi].is-on{box-shadow:inset 2px 0 0 var(--accent2)}
.js-charts-evi .viz-lg-row[data-evi]:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
.viz-seg{transition:opacity var(--t-base) var(--ease)}
.viz-donut .viz-seg.dim{opacity:.28}
/* 驾驶舱雷达轴标签:可点击岗位 */
.js-charts-radar .dcc-axislabels text[data-role]{cursor:pointer}
.js-charts-radar .dcc-axislabels text[data-role]:hover,.js-charts-radar .dcc-axislabels text[data-role].is-on{fill:var(--text)}
.js-charts-radar .dcc-axislabels text[data-role] .dcc-axv.is-on{fill:var(--accent2)}
.run{scroll-margin-top:84px}
@media print{.lk-bar,.hf-note,.lk-h{display:none}.js-charts-evi .viz-lg-row[data-evi].is-on{border-left-color:#888}}

/* ===== 无 JS 兜底:静态导航 / 页脚(仅在脚本被禁用时渲染) ===== */
.ns-nav{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 0}
.ns-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.ns-logo{font-weight:700;color:var(--text);font-size:var(--fs-092);white-space:nowrap}
.ns-nav nav{display:flex;flex-wrap:wrap;gap:4px}
.ns-nav nav a,.ns-tel{padding:5px 9px;border-radius:var(--r-2);border:1px solid transparent;
  font-size:var(--fs-082);color:var(--text-2);white-space:nowrap}
.ns-nav nav a:hover{border-color:var(--border-hi);color:var(--text)}
.ns-tel{font-family:var(--mono);color:var(--accent2)}
.ns-foot{border-top:1px solid var(--border);background:var(--bg2);padding:32px 0;margin-top:40px}
.ns-foot>.wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ns-foot b{display:block;color:var(--text-3);font-size:var(--fs-072);letter-spacing:var(--ls-label);margin-bottom:10px}
.ns-foot a{display:block;color:var(--text-2);font-size:var(--fs-082);padding:3px 0}
.ns-foot a:hover{color:var(--text)}
.ns-fine{grid-column:1/-1;border-top:1px solid var(--border);padding-top:14px;margin-top:6px;
  color:var(--text-3);font-size:var(--fs-074);line-height:1.7}
@media(max-width:760px){.ns-foot>.wrap{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ns-foot>.wrap{grid-template-columns:1fr}}
@media print{.ns-nav,.ns-foot{display:none}}

/* ===== 数字员工驾驶舱 · 高密度科技指挥中心(演示数据 · 接口预留 · digital) ===== */
.kpi-belt{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin-top:var(--block-mt)}
.kpi{position:relative;flex:1 1 130px;min-width:120px;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.kpi-k{font-size:var(--fs-066);color:var(--text-3);letter-spacing:var(--ls-label)}
.kpi-v{font-family:var(--mono);font-size:var(--fs-140);font-weight:700;color:var(--text);line-height:1;font-variant-numeric:tabular-nums}
.kpi-u{font-size:var(--fs-060);color:var(--text-3);font-family:var(--mono)}
.kpi-t{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:var(--fs-060);font-style:normal;color:var(--text-3)}
.kpi-t.up{color:var(--accent2)}
.kpi-t.down{color:var(--accent)}

.sys-rows{display:flex;flex-direction:column;gap:11px;margin-top:6px}
.sys-row{display:grid;grid-template-columns:84px 1fr 42px;align-items:center;gap:10px}
.sys-fill.on{background:var(--accent)}
.spark{display:flex;flex-direction:column;gap:2px}
@media(max-width:960px){.dcc-grid2{grid-template-columns:1fr}}
@media(max-width:520px){.kpi{flex-basis:calc(50% - 5px)}}
@media(prefers-reduced-motion:reduce){.sys-fill{transition:none}}


/* ============================================================
   2026-11 升级层 · 琥珀金 × 青玉 · 互动可视化 / 玻璃质感 / UX
   仅增强,不改业务文案与路由;尊重 prefers-reduced-motion
   ============================================================ */

/* 页面氛围:极淡径向暖光(非霓虹) */
body{
  background:
    radial-gradient(1200px 600px at 12% -10%, rgba(184,149,74,.08), transparent 55%),
    radial-gradient(900px 500px at 92% 8%, rgba(78,182,194,.06), transparent 50%),
    var(--bg);
}
.hero,.page-hero{position:relative}
.hero::before,.page-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(800px 360px at 70% 0%, rgba(184,149,74,.07), transparent 60%);
}

/* 玻璃表面通用 */
.glass,.funnel,.plan.feat,.dcc-card,.cv-chart,.run,.matrix-wrap{
  backdrop-filter:blur(8px);
}
.plan{transition:border-color var(--t-base) var(--ease),transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}
.plan:hover{transform:translateY(-2px);box-shadow:var(--elev-sm)}
.plan.feat{border-color:var(--tint-acc-250);box-shadow:inset 0 1px 0 var(--tint-wht-040),0 0 0 1px var(--tint-acc-120),var(--elev-sm)}

/* 芯片 / 胶囊 */
.chip{transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.chip:hover{transform:translateY(-1px)}
.chip.on{box-shadow:0 0 0 1px var(--tint-acc-250)}
.pill.ok{background:var(--tint-a2-080)}

/* 导航 CTA / 滚动条 */
::-webkit-scrollbar-thumb{background:#2a3648}
::-webkit-scrollbar-thumb:hover{background:#3d5168}
html{scrollbar-color:#2a3648 var(--bg2)}

/* 工具提示更精致 */
.term{border-bottom:1px dashed var(--tint-a2-350);transition:color var(--t-fast),border-color var(--t-fast)}
.term:hover,.term:focus-visible{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}
.term::after{
  background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),var(--surface2);
  border:1px solid var(--border-hi);
  box-shadow:var(--elev);
  border-radius:var(--r-5);
  padding:10px 12px;
  max-width:280px;
}
.term::before{
  content:"";position:absolute;left:14px;bottom:calc(100% + 3px);z-index:71;
  width:8px;height:8px;background:var(--surface2);border-right:1px solid var(--border-hi);
  border-bottom:1px solid var(--border-hi);transform:rotate(45deg);display:none;pointer-events:none;
}
.term:hover::before,.term:focus-visible::before{display:block}

/* ----- 首页九步漏斗:现场图 ----- */
.funnel .hf-live{margin:0 0 12px;padding:12px 10px 8px;border:1px solid var(--border);border-radius:var(--r-5);
  background:rgba(0,0,0,.18)}
.funnel .hf-svg{display:block;width:100%;height:auto;max-height:118px}
.funnel .hf-node{cursor:pointer;transition:opacity var(--t-fast)}
.funnel .hf-node circle{fill:var(--surface2);stroke:var(--border-hi);stroke-width:1.5;transition:fill var(--t-base),stroke var(--t-base),r var(--t-base)}
.funnel .hf-node text{fill:var(--text-3);font-family:var(--mono);font-size:9px;pointer-events:none}
.funnel .hf-node.is-on circle,.funnel .hf-node:hover circle{fill:var(--accent);stroke:var(--accent-ink)}
.funnel .hf-node.is-on text,.funnel .hf-node:hover text{fill:#1a1408;font-weight:700}
.funnel .hf-arc{fill:none;stroke:var(--tint-a2-250);stroke-width:1.2;stroke-dasharray:3 4}
.funnel .hf-detail{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;margin:0 0 10px;padding:10px 12px;
  border:1px solid var(--border);border-radius:var(--r-4);background:var(--tint-acc-060);min-height:42px}
.funnel .hf-detail .hk{font-family:var(--mono);font-size:var(--fs-076);color:var(--accent-ink);font-weight:700}
.funnel .hf-detail .hd{font-size:var(--fs-072);color:var(--text-2)}
.funnel .hf-detail .hh{margin-left:auto;font-size:var(--fs-064);color:var(--text-3)}
.funnel .fstep.hf{transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease),transform var(--t-fast)}
.funnel .fstep.hf.is-on{border-color:var(--accent);background:var(--tint-acc-070);box-shadow:inset 3px 0 0 var(--accent)}
.funnel .fstep.hf.is-on .hf-n{color:var(--accent-ink)}
.funnel .fstep.hf .hf-track{height:3px;background:rgba(255,255,255,.04)}
.funnel .fstep.hf .hf-bar{background:linear-gradient(90deg,var(--accent),var(--accent2));opacity:1;
  transform-origin:left center;transform:scaleX(0);transition:transform .7s var(--ease)}
.funnel.is-ready .fstep.hf .hf-bar{transform:scaleX(1)}
.funnel .fstep.hf.is-on .hf-bar{filter:brightness(1.15)}

/* ----- 价格覆盖度:雷达 + 悬浮读数 ----- */
.cv-wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:center}
@media(max-width:860px){.cv-wrap{grid-template-columns:1fr}}
.cv-radar{position:relative;max-width:280px;margin:0 auto}
.cv-radar svg{display:block;width:100%;height:auto}
.cv-radar .cv-grid polygon{fill:none;stroke:var(--grid);stroke-width:1}
.cv-radar .cv-grid polygon:last-of-type{stroke:var(--border-hi)}
.cv-radar .cv-spokes line{stroke:var(--grid);stroke-width:1}
.cv-radar .cv-area{fill:var(--tint-acc-120);stroke:none;opacity:0;transform-origin:center;transform:scale(.86)}
.cv-radar .cv-outline{fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round;opacity:0}
.cv-radar .cv-dot{fill:var(--accent-ink);stroke:var(--bg);stroke-width:1.5;opacity:0}
.cv-radar.is-in .cv-area{animation:cv-pop .85s cubic-bezier(.2,.8,.2,1) both}
.cv-radar.is-in .cv-outline{animation:cv-pop .85s cubic-bezier(.2,.8,.2,1) .05s both}
.cv-radar.is-in .cv-dot{animation:cv-pop .5s ease .35s both}
@keyframes cv-pop{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
.cv-radar .cv-lab{fill:var(--text-3);font-family:var(--mono);font-size:11px}
.cv-radar .cv-lab.is-on{fill:var(--accent-ink);font-weight:700}
.cv-tip{position:absolute;z-index:5;pointer-events:none;min-width:120px;padding:8px 10px;border-radius:var(--r-4);
  background:var(--surface2);border:1px solid var(--border-hi);box-shadow:var(--elev);font-size:var(--fs-072);color:var(--text-2);
  opacity:0;transform:translateY(4px);transition:opacity var(--t-fast),transform var(--t-fast)}
.cv-tip.on{opacity:1;transform:none}
.cv-tip b{display:block;color:var(--accent-ink);font-family:var(--mono);font-size:var(--fs-082);margin-bottom:2px}
.cv-row{cursor:pointer;position:relative}
.cv-row.on{background:var(--spark-soft);box-shadow:inset 3px 0 0 var(--accent)}
.cv-bar{background:linear-gradient(90deg,var(--accent-deep),var(--accent));box-shadow:inset -2px 0 0 var(--spark)}
.cv-bar.cv-hot{background:linear-gradient(90deg,#9a7435,var(--spark));box-shadow:inset -2px 0 0 var(--tint-wht-450)}
.cv-track{height:16px}

/* ----- 九步运行图增强 ----- */
.rn-mini{margin:12px 0 4px;height:54px}
.rn-mini svg{width:100%;height:54px;display:block}
.rn-mini .rn-mb{fill:var(--tint-acc-150);transition:fill var(--t-base),opacity var(--t-base)}
.rn-mini .rn-mb.is-on{fill:var(--accent2)}
.rn-mini .rn-ml{fill:var(--text-3);font-family:var(--mono);font-size:9px}
.rn-step.is-on{box-shadow:inset 3px 0 0 var(--accent2);border-color:var(--tint-a2-350)}
.rn-bar i{background:linear-gradient(90deg,var(--accent),var(--accent2))}
.rn-progress i{background:linear-gradient(90deg,var(--accent),var(--accent2))}

/* ----- 交付时序 ----- */
.dlv-node{transition:border-color var(--t-base),background var(--t-base),transform var(--t-fast),box-shadow var(--t-base)}
.dlv-node.is-on{border-color:var(--accent);background:var(--tint-acc-070);box-shadow:inset 0 0 0 1px var(--tint-acc-250)}
.dlv-node:hover{transform:translateY(-1px)}
.dlv-li.is-on{background:var(--tint-a2-080);box-shadow:inset 3px 0 0 var(--accent2)}

/* ----- 驾驶舱脉冲 ----- */
.kpi{overflow:hidden}
.kpi::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(78,182,194,.08) 50%,transparent 60%);
  transform:translateX(-120%);pointer-events:none}
.kpi.is-pulse::after{animation:kpi-sweep 1.1s var(--ease)}
@keyframes kpi-sweep{to{transform:translateX(120%)}}
.kpi-v{color:var(--accent-ink);transition:color var(--t-fast)}
.cs-status i,.role .rt .status i{box-shadow:0 0 0 0 var(--tint-a2-500);animation:live-dot 1.8s ease infinite}
@keyframes live-dot{0%{box-shadow:0 0 0 0 var(--tint-a2-500)}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}
.dcc-area{fill:var(--tint-acc-100, var(--tint-acc-120))}
.dcc-outline{stroke:var(--accent)}
.dcc-dots circle{fill:var(--accent-ink)}
.dcc-line-path{stroke:var(--accent2)}
.dcc-fill{fill:var(--tint-a2-100)}

/* 卡片图标:去掉廉价感,给金底 */
.card .ic{background:linear-gradient(145deg,var(--accent),var(--accent-deep));color:#1a1408;font-size:1.05rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}

/* 表格可读性 */
table.matrix th{background:linear-gradient(180deg,rgba(255,255,255,.03),transparent),var(--surface)}
table.matrix tr:hover td{background:var(--tint-acc-060)}
table.matrix .yes{color:#5dcea0}

/* 揭示动画微调 */
[data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* 移动端汉堡开合质感 */
.nav-links.open{box-shadow:var(--elev)}

@media(prefers-reduced-motion:reduce){
  body,.hero::before,.page-hero::before{background:var(--bg)}
  .hero::before,.page-hero::before{content:none}
  .card:hover,.plan:hover,.hstat:hover,.btn:hover,.dlv-node:hover,.chip:hover{transform:none;box-shadow:none}
  .funnel .fstep.hf .hf-bar,.cv-radar .cv-area,.cv-radar .cv-outline,.cv-radar .cv-dot{transform:none;opacity:1;animation:none!important}
  .funnel.is-ready .fstep.hf .hf-bar{transform:none}
  .kpi::after,.cs-status i,.role .rt .status i{animation:none!important}
  [data-reveal]{opacity:1;transform:none;transition:none}
}
@media print{
  body{background:#fff}
  .funnel .hf-live,.cv-radar,.rn-mini,.cv-tip,.hero::before,.page-hero::before{display:none}
}


/* ============================================================
   2026-11 全站科学可视化 · 第二轮
   ============================================================ */
.viz-float-tip{
  position:fixed;z-index:90;pointer-events:none;min-width:140px;max-width:280px;
  padding:10px 12px;border-radius:var(--r-5);
  background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),var(--surface2);
  border:1px solid var(--border-hi);box-shadow:var(--elev);
  color:var(--text-2);font-size:var(--fs-072);line-height:1.55;
  opacity:0;transform:translateY(4px);transition:opacity var(--t-fast),transform var(--t-fast);
}
.viz-float-tip.on{opacity:1;transform:none}
.viz-float-tip b{display:block;color:var(--accent-ink);font-family:var(--mono);font-size:var(--fs-082);margin-bottom:3px}
.viz-float-tip small{color:var(--text-3);font-size:var(--fs-064)}

.viz-seg{cursor:pointer;outline:none;transition:opacity var(--t-base),filter var(--t-base)}
.viz-seg.dim{opacity:.22}
.viz-seg.is-on,.viz-seg:hover,.viz-seg:focus-visible{filter:brightness(1.12);opacity:1}
.viz-lg-row.is-on{border-color:var(--tint-acc-250);background:var(--tint-acc-060)}
.fc.evi-dim{opacity:.34;filter:grayscale(.35);transition:opacity var(--t-base),filter var(--t-base)}
.fc.evi-on{opacity:1;filter:none;box-shadow:inset 0 0 0 1px var(--tint-acc-250)}
.evi-legend{display:flex;flex-wrap:wrap;gap:8px}
.evi-leg{
  font:inherit;font-size:var(--fs-074);color:var(--text-2);cursor:pointer;
  border:1px solid var(--border);border-radius:var(--r-pill);padding:5px 12px;
  background:var(--tint-wht-020);transition:var(--t-fast);
}
.evi-leg:hover,.evi-leg.on{border-color:var(--accent);color:var(--text);background:var(--tint-acc-090)}
.evi-leg:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}

.evi-strength{margin:18px 0 22px;padding:18px 20px}
.evi-bars{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.evi-bar-row{
  display:grid;grid-template-columns:132px 1fr 48px;gap:12px;align-items:center;
  font:inherit;text-align:left;color:inherit;background:transparent;border:1px solid transparent;
  border-radius:var(--r-3);padding:4px 6px;cursor:pointer;
}
.evi-bar-row:hover,.evi-bar-row.on{background:var(--tint-acc-060);border-color:var(--border)}
.eb-k{font-size:var(--fs-082);color:var(--text-2)}
.eb-track{height:12px;border-radius:var(--r-pill);background:var(--tint-steel-100);overflow:hidden}
.eb-track i{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--accent-deep),var(--accent2))}
.eb-n{font-family:var(--mono);font-size:var(--fs-074);color:var(--accent-ink);text-align:right}
table.matrix.evi tr.evi-hi td{background:var(--tint-acc-090)}

.mod-sum,.phase-sum{margin:0 auto 14px;padding:var(--panel-pad);max-width:none}
.mod-bars,.phase-bars{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.mod-bar-row,.phase-bar-row{
  display:grid;grid-template-columns:88px 1fr 110px;gap:12px;align-items:center;
  font:inherit;text-align:left;color:inherit;background:transparent;border:1px solid transparent;
  border-radius:var(--r-3);padding:4px 6px;cursor:default;
}
.mod-bar-row{cursor:pointer}
.mod-bar-row:hover,.mod-bar-row.hot{background:var(--tint-acc-060)}
.mb-k,.pb-k{font-family:var(--mono);font-size:var(--fs-082);color:var(--text)}
.pb-k small{display:block;font-size:var(--fs-064);color:var(--text-3);margin-top:1px}
.mb-track,.pb-track{height:12px;border-radius:var(--r-pill);background:var(--tint-steel-100);overflow:hidden}
.mb-track i,.pb-track i{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--accent),var(--accent2))}
.mod-bar-row.hot .mb-track i{background:linear-gradient(90deg,#9a7435,var(--spark))}
.mb-n,.pb-n{font-family:var(--mono);font-size:var(--fs-072);color:var(--text-2);text-align:right}
.mb-n b,.pb-n b{color:var(--accent-ink)}
.ld-bar{cursor:pointer;outline:none}
.ld-bar:focus-visible rect{stroke:var(--accent2);stroke-width:2}

.lifecycle-flow .lc-node{
  transition:border-color var(--t-base),background var(--t-base),transform var(--t-fast),box-shadow var(--t-base);
  cursor:pointer;
}
.lifecycle-flow .lc-node.is-on,.lifecycle-flow .lc-node:hover,.lifecycle-flow .lc-node:focus-visible{
  border-color:var(--accent);background:var(--tint-acc-070);
  box-shadow:inset 0 0 0 1px var(--tint-acc-250);transform:translateY(-2px);
}
.lifecycle-flow .lc-node:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}

.seg-bar{display:flex;height:8px;border-radius:var(--r-pill);overflow:hidden;margin:12px 0 8px;background:var(--tint-steel-100)}
.seg-bar i{display:block;height:100%}

@media(max-width:620px){
  .evi-bar-row,.mod-bar-row,.phase-bar-row{grid-template-columns:72px 1fr 72px;gap:8px}
  .eb-k,.mb-k,.pb-k{font-size:var(--fs-074)}
}
@media(prefers-reduced-motion:reduce){
  .viz-float-tip{transition:none}
  .lifecycle-flow .lc-node.is-on,.lifecycle-flow .lc-node:hover{transform:none}
  .viz-seg{transition:none}
}
@media print{
  .viz-float-tip,#tierLadder,#eviStrength,#modSum,#phaseSum{display:none}
}


/* ============================================================
   方法论页 · 科学可视化专层 (method.html)
   ============================================================ */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.method-map .ml{cursor:pointer;transition:border-color var(--t-base),background var(--t-base),transform var(--t-fast),box-shadow var(--t-base);position:relative}
.method-map .ml:hover,.method-map .ml:focus-visible{border-color:var(--border-hi);transform:translateY(-2px);box-shadow:var(--elev-sm);outline:none}
.method-map .ml.is-on{border-color:var(--accent);background:var(--tint-acc-070);box-shadow:inset 3px 0 0 var(--accent)}
.method-map .ml .ml-n{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:var(--fs-066);color:var(--accent-ink);border:1px solid var(--tint-acc-250);border-radius:var(--r-pill);padding:2px 8px;background:var(--tint-acc-060)}
#lkBarLayer{margin-top:14px}
.fc.layer-dim{opacity:.32;filter:grayscale(.3);transition:opacity var(--t-base),filter var(--t-base)}
.fc.layer-on,.fc.ops-hi{opacity:1;filter:none;box-shadow:inset 0 0 0 1px var(--tint-acc-250),var(--elev-sm)}
.fc.ops-hi{outline:2px solid var(--accent2);outline-offset:2px}

/* 理论→九步对照(等宽,非假漏斗) */
.theory-map{margin:var(--block-mt) auto 0;max-width:none;padding:var(--panel-pad)}
.tm-read .dim{color:var(--text-3);margin-left:6px}
.tm-step{
  display:grid;grid-template-columns:36px 1fr minmax(80px,120px) 56px;gap:12px;align-items:center;
  padding:11px 14px;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface2);
  color:inherit;text-decoration:none;transition:border-color var(--t-base),background var(--t-base),box-shadow var(--t-base);
}
.tm-step:hover,.tm-step:focus-visible,.tm-step.is-on{border-color:var(--accent);background:var(--tint-acc-070);box-shadow:inset 3px 0 0 var(--accent);outline:none}
.tm-track{height:8px;border-radius:var(--r-pill);background:var(--tint-steel-100);overflow:hidden}
.tm-track i{display:block;height:100%;border-radius:var(--r-pill);background:linear-gradient(90deg,var(--accent),var(--accent2))}
@media(max-width:620px){
  .tm-step{grid-template-columns:28px 1fr 48px;grid-template-rows:auto auto;row-gap:6px}
  .tm-track{grid-column:2/3;grid-row:2}
  .tm-n{grid-column:3;grid-row:1}
}

/* 复核 8+3 */
.audit-sum{margin:14px auto 12px;padding:var(--panel-pad);max-width:none}
.audit-viz{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:center}
.audit-viz svg{width:100%;max-width:220px;height:auto;display:block;margin:0 auto}
.au-seg{cursor:pointer;transition:opacity var(--t-base)}
.au-seg.dim{opacity:.22}
.au-seg.is-on,.au-seg:hover,.au-seg:focus-visible{opacity:1;filter:brightness(1.08);outline:none}
.audit-legend{display:flex;flex-direction:column;gap:10px}
.au-leg{
  display:flex;align-items:center;gap:10px;text-align:left;font:inherit;cursor:pointer;
  border:1px solid var(--border);border-radius:var(--r-5);padding:10px 12px;background:var(--surface2);color:var(--text-2);
}
.au-leg i{width:10px;height:10px;border-radius:2px;flex:none}
.au-leg b{color:var(--text);font-size:var(--fs-086)}
.au-leg span{margin-left:auto;font-family:var(--mono);font-size:var(--fs-070);color:var(--text-3)}
.au-leg.on,.au-leg:hover{border-color:var(--accent);background:var(--tint-acc-060)}
#auditTable tr.au-hi td{background:var(--tint-acc-090)}
#opsTable tr[data-card]{cursor:pointer}
#opsTable tr.ops-on td{background:var(--tint-acc-090)}
#opsTable tr[data-card]:hover td{background:var(--tint-wht-020)}
@media(max-width:760px){.audit-viz{grid-template-columns:1fr}}

/* 术语表筛选 */
.gl-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0 14px}
.gl-search input{
  width:min(280px,100%);padding:9px 12px;border-radius:var(--r-4);border:1px solid var(--border);
  background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-086);
}
.gl-search input:focus{outline:2px solid var(--accent2);outline-offset:2px;border-color:var(--tint-a2-500)}
.gl-chips{display:flex;flex-wrap:wrap;gap:8px}
.gl-count{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-3);margin-left:auto}
.gl.gl-hide{display:none}
.gl.gl-flash{border-color:var(--accent);box-shadow:0 0 0 1px var(--tint-acc-250)}

@media(prefers-reduced-motion:reduce){
  .method-map .ml:hover,.method-map .ml:focus-visible{transform:none}
  .tm-track i{transition:none!important}
}
@media print{
  .gl-filter,#lkBarLayer,.audit-sum .lk-bar{display:none}
  .tm-step{break-inside:avoid}
  .fc.layer-dim{opacity:1;filter:none}
}


/* —— Round-4 · teaser cards / compact loop companion —— */
.teaser-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:22px;
}
@media (max-width:860px){
  .teaser-grid{grid-template-columns:1fr;}
}
a.teaser,.teaser{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:16px 18px;
  border-radius:14px;
  background:var(--bg2);
  border:1px solid var(--border);
  text-decoration:none;
  color:inherit;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
a.teaser:hover{
  border-color:var(--accent);
  transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.18);
}
.teaser .tk{
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--accent2);
  font-weight:600;
}
.teaser b{
  font-size:1.02rem;
  color:var(--text);
  font-weight:650;
}
.teaser span:last-child{
  font-size:.84rem;
  color:var(--text-2);
  line-height:1.45;
}
.loopchart.loop-compact .loop-desc,
.loopchart.loop-compact .loop-frame{
  display:none;
}
.loopchart.loop-compact .loop-node{
  padding:10px 12px;
}
.loopchart.loop-compact .loop-metric{
  margin-top:6px;
}

/* ============================================================
   Round-5 · 科技感 HUD / 动态图表铬层
   专业科学仪表盘：细网格 + 轻辉光，非霓虹赛博
   ============================================================ */

/* 全局底：极淡网格 + 顶角青金环境光（不抢正文对比） */
body{
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 80% 50% at 12% -10%, rgba(78,182,194,.07), transparent 55%),
    radial-gradient(ellipse 60% 40% at 92% 0%, rgba(184,149,74,.05), transparent 50%),
    linear-gradient(rgba(26,35,48,.55) 1px, transparent 1px),
    linear-gradient(90deg, rgba(26,35,48,.55) 1px, transparent 1px);
  background-size:auto, auto, 48px 48px, 48px 48px;
  background-attachment:fixed;
}
@media (prefers-reduced-motion:reduce){
  body{background-attachment:scroll}
}

/* HUD 面板铬：细角标 + 内高光 */
.hud-panel{
  position:relative;
  border-color:rgba(78,182,194,.22)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 0 0 1px rgba(78,182,194,.06),
    var(--elev-sm);
  background:
    linear-gradient(180deg, rgba(78,182,194,.04), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.03), transparent),
    var(--surface)!important;
}
.hud-panel::before,
.hud-panel::after{
  content:"";
  position:absolute;
  width:12px;height:12px;
  border-color:var(--accent2);
  border-style:solid;
  pointer-events:none;
  opacity:.55;
}
.hud-panel::before{top:8px;left:8px;border-width:1px 0 0 1px}
.hud-panel::after{bottom:8px;right:8px;border-width:0 1px 1px 0}

.hud-shell{position:relative}
.hud-shell::before{
  content:"";
  pointer-events:none;
  position:absolute;inset:0;
  background:repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(78,182,194,.015) 3px,
    rgba(78,182,194,.015) 4px
  );
  mix-blend-mode:soft-light;
  z-index:0;
  border-radius:inherit;
}
.hud-shell > *{position:relative;z-index:1}

/* chart-meta 仪表读数条 */
.chart-meta{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;
  padding:8px 12px;margin-bottom:12px;
  border:1px solid rgba(78,182,194,.16);
  border-radius:var(--r-4);
  background:rgba(7,9,14,.45);
  font-size:var(--fs-078);
}
.chart-meta b{color:var(--accent-ink);font-weight:650;letter-spacing:var(--ls-label)}
.chart-meta .unit{color:var(--accent2);font-family:var(--mono);font-size:var(--fs-070)}
.chart-note{
  margin-top:12px;padding:10px 12px;
  border-left:2px solid var(--accent2);
  background:rgba(78,182,194,.05);
  color:var(--text-2);font-size:var(--fs-080);line-height:1.55;
}
.chart-note b{color:var(--text)}

/* KPI 带科技感 */
.kpi-belt{
  position:relative;
  border:1px solid rgba(78,182,194,.2)!important;
  box-shadow:inset 0 0 40px rgba(78,182,194,.04);
}
.kpi-belt .kpi{
  position:relative;
}
.kpi-belt .kpi-v{
  text-shadow:0 0 18px rgba(78,182,194,.25);
}

/* 首页漏斗弧节点增强 */
.funnel.hud-panel{padding:18px 18px 14px}
.hf-live{margin:4px 0 10px}
.hf-svg{width:100%;height:auto;display:block}
.hf-arc{fill:none;stroke:rgba(78,182,194,.35);stroke-width:1.5;stroke-dasharray:4 3}
.hf-node circle{fill:var(--surface2);stroke:rgba(78,182,194,.55);stroke-width:1.4;transition:r .25s var(--ease), fill .2s}
.hf-node.is-on circle{fill:rgba(184,149,74,.35);stroke:var(--accent);filter:drop-shadow(0 0 6px rgba(184,149,74,.35))}
.hf-node text{font-size:9px;fill:var(--text-2);font-family:var(--mono);pointer-events:none}
.hf-node.is-on text{fill:var(--accent-ink);font-weight:700}
.hf-detail{
  display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;
  padding:8px 12px;margin-bottom:10px;
  border:1px solid rgba(184,149,74,.22);
  border-radius:var(--r-4);
  background:rgba(184,149,74,.06);
  font-size:var(--fs-080);
}
.hf-detail .hk{color:var(--accent-ink);font-family:var(--mono);font-weight:650}
.hf-detail .hd{color:var(--text-2)}
.hf-detail .hh{color:var(--accent2);margin-left:auto;font-size:var(--fs-072)}
.funnel .fstep.hf.is-on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 0 1px rgba(184,149,74,.15), inset 0 0 20px rgba(184,149,74,.05);
}
.funnel.is-ready .hf-bar{transition:width .7s var(--ease)}

/* runChart 迷你柱 */
.rn-mini{margin:8px 0 12px;padding:8px 6px;border:1px solid rgba(78,182,194,.14);border-radius:var(--r-3);background:rgba(7,9,14,.35)}
.rn-mini svg{width:100%;height:54px;display:block}
.rn-mb{fill:rgba(78,182,194,.35);transition:fill .2s}
.rn-mb.is-on{fill:var(--accent)}
.rn-ml{fill:var(--text-3);font-size:8px;font-family:var(--mono)}

/* 覆盖环 */
.cov-ring{
  margin:22px 0 16px;padding:18px 20px;
  border-radius:var(--r-7);
}
.cov-ring .cr-layout{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:center}
@media(max-width:720px){.cov-ring .cr-layout{grid-template-columns:1fr}}
.cov-ring .cr-legend{display:flex;flex-direction:column;gap:6px}
.cov-ring .cr-leg{
  display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;
  padding:4px 6px;border-radius:var(--r-2);cursor:pointer;border:1px solid transparent;
  background:transparent;color:inherit;font:inherit;text-align:left;
}
.cov-ring .cr-leg:hover,.cov-ring .cr-leg.on{border-color:rgba(78,182,194,.3);background:rgba(78,182,194,.06)}
.cov-ring .cr-leg i{width:8px;height:8px;border-radius:2px;display:block}
.cov-ring .cr-leg b{font-size:var(--fs-080);font-weight:600;color:var(--text)}
.cov-ring .cr-leg span{font-family:var(--mono);font-size:var(--fs-072);color:var(--accent2)}
.cov-ring .cr-center-label{font-family:var(--mono);fill:var(--accent-ink);font-size:13px;font-weight:700}
.cov-ring .cr-center-sub{fill:var(--text-3);font-size:8px}

/* 步×职能负荷图 */
.roles-viz{margin:22px 0 18px;padding:18px 20px;border-radius:var(--r-7)}
.roles-viz .rv-bars{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.roles-viz .rv-row{
  display:grid;grid-template-columns:72px 1fr 88px;gap:10px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:4px 6px;cursor:pointer;color:inherit;font:inherit;text-align:left;
}
.roles-viz .rv-row:hover,.roles-viz .rv-row.on{border-color:rgba(78,182,194,.28);background:rgba(78,182,194,.05)}
.roles-viz .rv-k{font-size:var(--fs-078);color:var(--text);font-weight:600}
.roles-viz .rv-k small{display:block;color:var(--text-3);font-weight:500;font-size:var(--fs-066)}
.roles-viz .rv-track{
  display:flex;height:12px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.roles-viz .rv-track .lead{background:linear-gradient(90deg,var(--accent),#d4b36a);height:100%}
.roles-viz .rv-track .sup{background:linear-gradient(90deg,rgba(78,182,194,.75),rgba(78,182,194,.45));height:100%}
.roles-viz .rv-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);text-align:right}
.roles-viz .rv-legend{display:flex;gap:14px;margin-top:10px;font-size:var(--fs-072);color:var(--text-2)}
.roles-viz .rv-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.roles-viz .rv-legend .l-lead i{background:var(--accent)}
.roles-viz .rv-legend .l-sup i{background:var(--accent2)}

/* phaseSum / evi 条强化 */
.phase-sum.card,.evi-strength{
  border-color:rgba(78,182,194,.2);
}
.phase-bar-row .pb-track i,
.evi-bar-row .eb-track i{
  box-shadow:0 0 12px rgba(78,182,194,.25);
}

/* loop compact 节点科技感 */
.loopchart.hud-panel .loop-node.is-on{
  border-color:rgba(184,149,74,.5);
  box-shadow:0 0 16px rgba(184,149,74,.12);
}

/* teaser 轻辉 */
a.teaser{
  background:
    linear-gradient(180deg, rgba(78,182,194,.04), transparent 50%),
    var(--bg2);
}
a.teaser:hover{
  box-shadow:0 8px 28px rgba(0,0,0,.22), 0 0 0 1px rgba(78,182,194,.2);
}

/* 金底 CTA 对比保持 */
.card .ic{color:#1a1408}

@media(prefers-reduced-motion:reduce){
  .hf-node circle{transition:none}
  .rn-mb{transition:none}
}

/* Round-5 extras */
.hf-node .hf-cnt{font-size:7px;fill:var(--text-3);font-family:var(--mono)}
.hf-node.is-on .hf-cnt{fill:var(--accent-ink)}
.ps-stack{margin:8px 0 14px}
.ps-stack .ps-track{
  display:flex;height:10px;border-radius:4px;overflow:hidden;
  border:1px solid rgba(78,182,194,.2);background:rgba(255,255,255,.03);
}
.ps-stack .ps-track i{display:block;height:100%;min-width:2px}
.maptable .maprow.is-on{
  outline:1px solid rgba(184,149,74,.45);
  background:rgba(184,149,74,.06);
}
.viz-row.is-on{
  outline:1px solid rgba(78,182,194,.4);
  background:rgba(78,182,194,.06);
}
.theory-map.hud-panel .tm-step:hover,
.theory-map.hud-panel .tm-step:focus-visible{
  border-color:rgba(78,182,194,.4);
  box-shadow:0 0 16px rgba(78,182,194,.1);
}
#phaseSum.hud-panel, .phase-sum.hud-panel{
  border-color:rgba(78,182,194,.22);
}
.run.hud-panel .rn-step.is-on{
  box-shadow:0 0 18px rgba(184,149,74,.12);
}

/* ============================================================
   Round-6 · m1–m9 / cases / compliance / chrome
   ============================================================ */

/* 本步覆盖条 + 热力 */
.mod-sum{margin:0 0 18px;padding:18px 20px;border-radius:var(--r-7)}
.mod-sum .mod-bars{display:flex;flex-direction:column;gap:8px;margin:8px 0 14px}
.mod-bar-row{
  display:grid;grid-template-columns:118px 1fr 96px;gap:10px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:4px 6px;cursor:default;color:inherit;font:inherit;text-align:left;
}
.mod-bar-row.hot .mb-track i{background:linear-gradient(90deg,var(--accent),#d4b36a)}
.mod-bar-row .mb-k{font-family:var(--mono);font-size:var(--fs-074);color:var(--accent-ink);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mod-bar-row .mb-track{
  height:10px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.mod-bar-row .mb-track i{
  display:block;height:100%;
  background:linear-gradient(90deg,rgba(78,182,194,.85),rgba(78,182,194,.45));
  box-shadow:0 0 10px rgba(78,182,194,.2);
}
.mod-bar-row .mb-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);text-align:right}
.mod-heat{margin-top:4px;display:flex;flex-direction:column;gap:3px}
.mod-heat .mh-head,.mod-heat .mh-row{
  display:grid;grid-template-columns:minmax(72px,1.4fr) repeat(6,28px);gap:4px;align-items:center;
}
.mod-heat .mh-head span{
  font-family:var(--mono);font-size:var(--fs-066);color:var(--text-3);text-align:center;
}
.mod-heat .mh-k{
  font-size:var(--fs-070);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mod-heat .mh-cell{
  width:22px;height:14px;margin:0 auto;border-radius:2px;display:block;
  background:rgba(255,255,255,.04);border:1px solid var(--border);cursor:help;
}
.mod-heat .mh-cell.on{
  background:rgba(78,182,194,.55);border-color:rgba(78,182,194,.7);
  box-shadow:0 0 8px rgba(78,182,194,.25);
}
@media(max-width:640px){
  .mod-heat .mh-head,.mod-heat .mh-row{grid-template-columns:minmax(56px,1fr) repeat(6,20px)}
}

/* cases 六底稿结构轨 */
.artifact-map{margin:22px 0 8px;padding:16px 18px;border-radius:var(--r-7)}
.artifact-map .am-rail{
  display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;justify-content:center;margin-top:8px;
}
.artifact-map .am-arrow{align-self:center;color:var(--accent2);opacity:.55;font-size:var(--fs-090)}
.artifact-map .am-node{
  flex:1 1 120px;max-width:160px;min-width:110px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:10px 12px;border-radius:var(--r-4);text-align:left;
  background:rgba(7,9,14,.4);border:1px solid rgba(78,182,194,.18);
  color:inherit;font:inherit;cursor:pointer;
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.artifact-map .am-node:hover,.artifact-map .am-node.on{
  border-color:var(--am, var(--accent));
  box-shadow:0 0 16px color-mix(in srgb, var(--am, var(--accent)) 22%, transparent);
  transform:translateY(-1px);
}
.artifact-map .am-no{
  font-family:var(--mono);font-size:var(--fs-066);color:var(--am, var(--accent2));
}
.artifact-map .am-t{font-size:var(--fs-080);font-weight:650;color:var(--text);line-height:1.3}
.artifact-map .am-s{font-size:var(--fs-066);color:var(--accent-ink)}
.artifact-map .am-sub{font-size:var(--fs-066);color:var(--text-3)}
.artifact-grid > .card.is-on{
  border-color:rgba(184,149,74,.5);
  box-shadow:0 0 20px rgba(184,149,74,.12);
}

/* compliance 权责矩阵 */
.life-viz{margin:18px 0 16px;padding:16px 18px;border-radius:var(--r-7);
  border:1px solid rgba(78,182,194,.2);
  background:linear-gradient(180deg,rgba(78,182,194,.04),transparent 50%),var(--surface);
}
.life-viz .lv-grid{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.life-viz .lv-head,.life-viz .lv-row{
  display:grid;grid-template-columns:64px repeat(auto-fit,minmax(36px,1fr));gap:6px;align-items:center;
}
.life-viz .lv-stage{
  text-align:center;font-family:var(--mono);font-size:var(--fs-072);color:var(--text-3);
  padding:4px;border-radius:var(--r-2);border:1px solid transparent;cursor:pointer;
}
.life-viz .lv-stage.on{color:var(--accent-ink);border-color:rgba(184,149,74,.35);background:rgba(184,149,74,.08)}
.life-viz .lv-k{font-size:var(--fs-072);color:var(--text-2);display:flex;align-items:center;gap:6px}
.life-viz .lv-k i{width:8px;height:8px;border-radius:2px;display:inline-block}
.life-viz .lv-cell{
  height:28px;border-radius:var(--r-2);border:1px solid var(--border);
  background:rgba(255,255,255,.03);color:var(--text-3);cursor:pointer;
  font-size:var(--fs-080);
}
.life-viz .lv-cell.on{
  color:var(--lv, var(--accent2));
  border-color:color-mix(in srgb, var(--lv, var(--accent2)) 50%, transparent);
  background:color-mix(in srgb, var(--lv, var(--accent2)) 18%, transparent);
  text-shadow:0 0 10px color-mix(in srgb, var(--lv, var(--accent2)) 35%, transparent);
}
.lifecycle-flow.hud-panel{padding:14px;margin-top:8px}
.lifecycle-flow .lc-node.is-on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 16px rgba(184,149,74,.1);
}

/* contact / bundle 轻铬已用 .hud-panel；表单内高光 */
form.hud-panel{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 1px rgba(78,182,194,.06), var(--elev-sm);
}
@media(prefers-reduced-motion:reduce){
  .artifact-map .am-node{transition:none}
}

/* ============================================================
   Round-7 · digital load / whitepaper sources / index pulse / HUD motion
   ============================================================ */

/* 统一 HUD 角标轻呼吸（减动效关闭） */
@keyframes hudCorner {
  0%,100%{opacity:.45}
  50%{opacity:.75}
}
@media (prefers-reduced-motion:no-preference){
  .hud-panel::before,.hud-panel::after{animation:hudCorner 4.5s ease-in-out infinite}
  .hud-panel::after{animation-delay:2.2s}
}

/* digital 九岗负载 */
.crew-load{margin:0 0 14px;padding:14px 16px;border-radius:var(--r-6)}
.crew-load .cl-bars{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.crew-load .cl-row{
  display:grid;grid-template-columns:88px 1fr 48px;gap:8px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:3px 6px;cursor:pointer;color:inherit;font:inherit;text-align:left;
}
.crew-load .cl-row:hover,.crew-load .cl-row.on{
  border-color:rgba(78,182,194,.3);background:rgba(78,182,194,.06);
}
.crew-load .cl-k{font-size:var(--fs-078);font-weight:650;color:var(--text)}
.crew-load .cl-k small{display:block;font-weight:500;color:var(--text-3);font-size:var(--fs-062)}
.crew-load .cl-track{
  height:8px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.crew-load .cl-track i{
  display:block;height:100%;
  background:linear-gradient(90deg,var(--accent2),rgba(78,182,194,.45));
  box-shadow:0 0 10px rgba(78,182,194,.25);
}
.crew-load .cl-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--accent-ink);text-align:right}

/* whitepaper 数据源构成 */
.metric-sources{margin:18px 0 14px;padding:16px 18px;border-radius:var(--r-7)}
.metric-sources .ms-bars{display:flex;flex-direction:column;gap:7px;margin-top:6px}
.metric-sources .ms-row{
  display:grid;grid-template-columns:minmax(72px,1.2fr) 1fr 64px;gap:10px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:4px 6px;cursor:pointer;color:inherit;font:inherit;text-align:left;
}
.metric-sources .ms-row:hover{border-color:rgba(78,182,194,.28);background:rgba(78,182,194,.05)}
.metric-sources .ms-k{font-size:var(--fs-078);color:var(--text);display:flex;align-items:center;gap:7px}
.metric-sources .ms-k i{width:8px;height:8px;border-radius:2px;flex:0 0 auto}
.metric-sources .ms-track{
  height:9px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.metric-sources .ms-track i{display:block;height:100%}
.metric-sources .ms-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);text-align:right}

/* whitepaper 理论轨 */
.theory-obs{margin:16px 0 14px;padding:16px 18px;border-radius:var(--r-7)}
.theory-obs .to-rail{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.theory-obs .to-node{
  flex:1 1 120px;min-width:110px;max-width:170px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:10px 12px;border-radius:var(--r-4);text-align:left;
  background:rgba(7,9,14,.4);border:1px solid rgba(78,182,194,.18);
  color:inherit;font:inherit;cursor:pointer;
}
.theory-obs .to-node:hover,.theory-obs .to-node.on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 14px rgba(184,149,74,.12);
}
.theory-obs .to-no{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2)}
.theory-obs .to-t{font-size:var(--fs-080);font-weight:650;color:var(--text)}
.theory-obs .to-s{font-size:var(--fs-066);color:var(--text-3)}
table.optable tr.is-on td{
  background:rgba(184,149,74,.08);
  outline:1px solid rgba(184,149,74,.25);
}

/* index hook pulse */
.hook-pulse{margin:18px 0 0;padding:14px 16px;border-radius:var(--r-6);max-width:560px}
.hook-pulse .hp-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-top:8px;
}
.hook-pulse .hp-cell{
  padding:10px 12px;border-radius:var(--r-4);
  border:1px solid rgba(78,182,194,.18);background:rgba(7,9,14,.35);
}
.hook-pulse .hp-cell b{
  display:block;font-family:var(--mono);font-size:var(--fs-118);color:var(--accent-ink);
  text-shadow:0 0 14px rgba(184,149,74,.2);
}
.hook-pulse .hp-cell span{font-size:var(--fs-070);color:var(--text-2);line-height:1.35}
/* ============================================================
   Round-8 · deliv rhythm / frame evi / log mix / cadence / mod crew
   ============================================================ */

.deliv-rhythm,.frame-evi,.log-mix,.price-cadence,.mod-crew{
  margin:16px 0 14px;padding:14px 16px;border-radius:var(--r-6);
}

.deliv-rhythm .dr-rail,.price-cadence .pc-rail{
  display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;justify-content:center;margin-top:8px;
}
.deliv-rhythm .dr-arrow,.price-cadence .pc-arrow{
  align-self:center;color:var(--accent2);opacity:.5;
}
.deliv-rhythm .dr-node,.price-cadence .pc-node{
  flex:1 1 100px;min-width:96px;max-width:150px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:10px 12px;border-radius:var(--r-4);text-align:left;
  background:rgba(7,9,14,.4);border:1px solid rgba(78,182,194,.18);
  color:inherit;font:inherit;cursor:pointer;
}
.deliv-rhythm .dr-node:hover,.deliv-rhythm .dr-node.on,
.price-cadence .pc-node:hover,.price-cadence .pc-node.on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 14px rgba(184,149,74,.12);
}
.deliv-rhythm .dr-no,.price-cadence .pc-no{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2)}
.deliv-rhythm .dr-t,.price-cadence .pc-t{font-size:var(--fs-080);font-weight:650;color:var(--text)}
.deliv-rhythm .dr-s{font-size:var(--fs-066);color:var(--text-3)}
.price-cadence-grid > .card.is-on,
table.optable tr.is-on td{
  border-color:rgba(184,149,74,.4);
  box-shadow:0 0 16px rgba(184,149,74,.1);
}

.frame-evi .fe-bars,.log-mix .lm-bars{display:flex;flex-direction:column;gap:7px;margin-top:6px}
.frame-evi .fe-row,.log-mix .lm-row{
  display:grid;grid-template-columns:minmax(72px,1.3fr) 1fr 64px;gap:8px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:4px 6px;cursor:pointer;color:inherit;font:inherit;text-align:left;
}
.frame-evi .fe-row:hover,.frame-evi .fe-row.on,
.log-mix .lm-row:hover{border-color:rgba(78,182,194,.3);background:rgba(78,182,194,.06)}
.frame-evi .fe-k,.log-mix .lm-k{font-size:var(--fs-078);color:var(--text);display:flex;align-items:center;gap:7px}
.frame-evi .fe-k i{width:8px;height:8px;border-radius:2px}
.frame-evi .fe-track,.log-mix .lm-track{
  height:9px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.frame-evi .fe-track i,.log-mix .lm-track i{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),rgba(78,182,194,.4))}
.frame-evi .fe-n,.log-mix .lm-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);text-align:right}

.mod-crew .mc-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.mod-crew .mc-chip{
  padding:6px 12px;border-radius:var(--r-pill);
  border:1px solid rgba(78,182,194,.25);background:rgba(7,9,14,.35);
  color:var(--text);font-size:var(--fs-078);cursor:pointer;
}
.mod-crew .mc-chip:hover,.mod-crew .mc-chip.on{
  border-color:var(--accent);color:var(--accent-ink);
  box-shadow:0 0 12px rgba(184,149,74,.15);
}
.role.is-on{
  border-color:rgba(184,149,74,.45)!important;
  box-shadow:0 0 16px rgba(184,149,74,.12);
}
.dcc-row.is-on{background:rgba(184,149,74,.08);outline:1px solid rgba(184,149,74,.25)}
/* ============================================================
   Round-9 · glossary cats / sign gates / refs / limits / SLA / bounds
   ============================================================ */

.gl-catbars,.sign-gates,.ref-spine,.limit-map,.sla-rail,.bound-map{
  margin:14px 0 12px;padding:14px 16px;border-radius:var(--r-6);
}

.gl-catbars .gc-bars{display:flex;flex-direction:column;gap:7px;margin-top:6px}
.gl-catbars .gc-row{
  display:grid;grid-template-columns:minmax(72px,1.2fr) 1fr 64px;gap:8px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:4px 6px;cursor:pointer;color:inherit;font:inherit;text-align:left;
}
.gl-catbars .gc-row:hover,.gl-catbars .gc-row.on{
  border-color:rgba(78,182,194,.3);background:rgba(78,182,194,.06);
}
.gl-catbars .gc-k{font-size:var(--fs-078);color:var(--text);display:flex;align-items:center;gap:7px}
.gl-catbars .gc-k i{width:8px;height:8px;border-radius:2px}
.gl-catbars .gc-track{
  height:9px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.gl-catbars .gc-track i{display:block;height:100%}
.gl-catbars .gc-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);text-align:right}

.sign-gates .sg-rail,.ref-spine .rf-rail,.limit-map .lm2-rail,
.sla-rail .sr-rail,.bound-map .bd-rail{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px;
}
.sign-gates .sg-arrow{align-self:center;color:var(--accent2);opacity:.5}
.sign-gates .sg-node,.ref-spine .rf-node,.limit-map .lm2-node,
.sla-rail .sr-node,.bound-map .bd-node{
  flex:1 1 100px;min-width:96px;max-width:160px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:10px 12px;border-radius:var(--r-4);text-align:left;
  background:rgba(7,9,14,.4);border:1px solid rgba(78,182,194,.18);
  color:inherit;font:inherit;cursor:pointer;
}
.sign-gates .sg-node:hover,.sign-gates .sg-node.on,
.ref-spine .rf-node:hover,.ref-spine .rf-node.on,
.limit-map .lm2-node:hover,.limit-map .lm2-node.on,
.sla-rail .sr-node:hover,.sla-rail .sr-node.on,
.bound-map .bd-node:hover,.bound-map .bd-node.on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 14px rgba(184,149,74,.12);
}
.sign-gates .sg-no,.ref-spine .rf-no,.limit-map .lm2-no,
.sla-rail .sr-no,.bound-map .bd-no{
  font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);
}
.sign-gates .sg-t,.ref-spine .rf-t,.limit-map .lm2-t,
.sla-rail .sr-t,.bound-map .bd-t{
  font-size:var(--fs-078);font-weight:650;color:var(--text);line-height:1.3;
}
.sign-grid > .card.is-on,
.limit-grid > .card.is-on,
#guarantee .callout.is-on,
.bound-grid > .callout.is-on,
ol.refs li.is-on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 16px rgba(184,149,74,.1);
  outline:1px solid rgba(184,149,74,.25);
}
/* ============================================================
   Round-10 · layer bars / ops rail / scope IO / deliver / rules
   ============================================================ */

.layer-bars,.ops-rail,.scope-io,.mod-deliver,.rule-map{
  margin:14px 0 12px;padding:14px 16px;border-radius:var(--r-6);
}

.layer-bars .lb-bars,.scope-io .sio-bars{
  display:flex;flex-direction:column;gap:7px;margin-top:6px;
}
.layer-bars .lb-row,.scope-io .sio-row{
  display:grid;grid-template-columns:minmax(88px,1.4fr) 1fr 40px;gap:8px;align-items:center;
  background:transparent;border:1px solid transparent;border-radius:var(--r-3);
  padding:4px 6px;cursor:pointer;color:inherit;font:inherit;text-align:left;
}
.layer-bars .lb-row:hover,.layer-bars .lb-row.on,
.scope-io .sio-row:hover,.scope-io .sio-row.on{
  border-color:rgba(78,182,194,.3);background:rgba(78,182,194,.06);
}
.layer-bars .lb-k,.scope-io .sio-k{
  font-size:var(--fs-078);color:var(--text);font-weight:650;
  display:flex;flex-direction:column;gap:2px;
}
.scope-io .sio-k{flex-direction:row;align-items:center;gap:7px}
.layer-bars .lb-k small{font-weight:500;color:var(--text-3);font-size:var(--fs-062)}
.scope-io .sio-k i{width:8px;height:8px;border-radius:2px}
.layer-bars .lb-track,.scope-io .sio-track{
  height:9px;border-radius:3px;overflow:hidden;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
}
.layer-bars .lb-track i{
  display:block;height:100%;
  background:linear-gradient(90deg,var(--accent2),rgba(78,182,194,.4));
}
.scope-io .sio-track i{display:block;height:100%}
.layer-bars .lb-n,.scope-io .sio-n{
  font-family:var(--mono);font-size:var(--fs-070);color:var(--accent-ink);text-align:right;
}

.ops-rail .or-rail,.mod-deliver .md-rail,.rule-map .rr-rail{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px;
}
.ops-rail .or-node,.mod-deliver .md-node,.rule-map .rr-node{
  flex:1 1 72px;min-width:68px;max-width:120px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:8px 10px;border-radius:var(--r-4);text-align:left;
  background:rgba(7,9,14,.4);border:1px solid rgba(78,182,194,.18);
  color:inherit;font:inherit;cursor:pointer;
}
.ops-rail .or-node:hover,.ops-rail .or-node.on,
.mod-deliver .md-node:hover,.mod-deliver .md-node.on,
.rule-map .rr-node:hover,.rule-map .rr-node.on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 12px rgba(184,149,74,.12);
}
.ops-rail .or-no,.mod-deliver .md-no,.rule-map .rr-no{
  font-family:var(--mono);font-size:var(--fs-062);color:var(--accent2);
}
.ops-rail .or-t,.mod-deliver .md-t,.rule-map .rr-t{
  font-size:var(--fs-074);font-weight:650;color:var(--text);line-height:1.25;
}

#methodMap .ml.is-on,
.scope .col.is-on,
#opsTable tr.is-on td,
#ruleTable tr.is-on td,
ul.doc li.is-on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 14px rgba(184,149,74,.1);
  outline:1px solid rgba(184,149,74,.25);
  background:rgba(184,149,74,.06);
}
/* ============================================================
   Round-11 · why/faq/field/book rails + focus polish
   ============================================================ */

.why-rail,.faq-rail,.field-map,.book-spine{
  margin:14px 0 12px;padding:14px 16px;border-radius:var(--r-6);
}
.why-rail .wr-rail,.faq-rail .fq-rail,.field-map .fm-rail,.book-spine .bs-rail{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px;
}
.book-spine .bs-arrow{align-self:center;color:var(--accent2);opacity:.5}
.why-rail .wr-node,.faq-rail .fq-node,.field-map .fm-node,.book-spine .bs-node{
  flex:1 1 100px;min-width:96px;max-width:160px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:10px 12px;border-radius:var(--r-4);text-align:left;
  background:rgba(7,9,14,.4);border:1px solid rgba(78,182,194,.18);
  color:inherit;font:inherit;cursor:pointer;
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.why-rail .wr-node:hover,.why-rail .wr-node.on,
.faq-rail .fq-node:hover,.faq-rail .fq-node.on,
.field-map .fm-node:hover,.field-map .fm-node.on,
.book-spine .bs-node:hover,.book-spine .bs-node.on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 14px rgba(184,149,74,.12);
  transform:translateY(-1px);
}
.why-rail .wr-node:focus-visible,
.faq-rail .fq-node:focus-visible,
.field-map .fm-node:focus-visible,
.book-spine .bs-node:focus-visible,
.hud-panel button:focus-visible,
.rn-step:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}
.why-rail .wr-no,.faq-rail .fq-no,.field-map .fm-no,.book-spine .bs-no{
  font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);
}
.why-rail .wr-t,.faq-rail .fq-t,.field-map .fm-t,.book-spine .bs-t{
  font-size:var(--fs-078);font-weight:650;color:var(--text);line-height:1.3;
}
.field-map .fm-s{font-size:var(--fs-062);color:var(--text-3)}
.why-grid > .card.is-on,
.faq-grid > .callout.is-on,
#bookGrid > .card.is-on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 16px rgba(184,149,74,.12);
}

@media(prefers-reduced-motion:reduce){
  .why-rail .wr-node,.faq-rail .fq-node,.field-map .fm-node,.book-spine .bs-node{transition:none;transform:none}
}
/* ============================================================
   Round-12 · interaction / a11y / motion performance polish
   ============================================================ */

/* 屏幕阅读器专用（图表选中播报） */
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* 图表面板：限制重排/绘制范围，减轻滚动时合成压力 */
.hud-panel,
.funnel.hud-panel,
.run.hud-panel,
.loopchart,
.mod-sum,
.artifact-map,
.crew-load,
.cov-ring,
.roles-viz{
  contain:layout style;
}

/* 统一轨/条焦点环 */
.lb-row:focus-visible,.gc-row:focus-visible,.fe-row:focus-visible,
.cl-row:focus-visible,.lm-row:focus-visible,.ms-row:focus-visible,
.rv-row:focus-visible,.sio-row:focus-visible,.phase-bar-row:focus-visible,
.mod-bar-row:focus-visible,.evi-bar-row:focus-visible,.cr-leg:focus-visible,
.loop-node:focus-visible,.tm-step:focus-visible,.ml:focus-visible,
.viz-row:focus-visible,.fstep.hf:focus-visible,.rn-step:focus-visible,
.or-node:focus-visible,.md-node:focus-visible,.rr-node:focus-visible,
.to-node:focus-visible,.am-node:focus-visible,.sg-node:focus-visible,
.dr-node:focus-visible,.sr-node:focus-visible,.bd-node:focus-visible,
.rf-node:focus-visible,.lm2-node:focus-visible,.pc-node:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

/* 链接型图表节点：键盘聚焦时可见选中态 */
.loop-node.is-on,
.viz-row.is-on,
.fstep.hf.is-on{
  border-color:rgba(184,149,74,.45);
  box-shadow:0 0 14px rgba(184,149,74,.12);
}

@media (prefers-reduced-motion:reduce){
  .hud-panel::before,.hud-panel::after{animation:none!important}
  .kpi-belt .kpi-v{text-shadow:none}
}
/* ============================================================
   Round-13 · deep-link / tip / sticky-nav clearance
   ============================================================ */

/* sticky nav (~66px) + 一点余量，深链落点不被挡住 */
#runChart,#loopChart,#coverage,#covRing,#roles,#rolesViz,#guarantee,
#deliverables,#delivRhythm,#scopeIO,#theoryMap,#methodMap,#evidence-map,
#auditSum,#opsTable,#glossary,#glCatBars,#phaseSum,#hookPulse,
#crewLoad,#signGates,#artifactMap,#lifeViz,#lifecycle,#lifecycleFlow,#eviStrength,
#metricSources,#theoryObs,#limitMap,#refSpine,#modSum,#modDeliver,
#cvChart,#tierLadder,#priceCadence,#faqRail,#whyRail,#whyMap,#fieldMap,#bookSpine,
#digital-roles,#cockpit,#demo,#compare,#rhythm,#sign,
#deliveryChart,#modCrew,#crewBoard,#dccLog,#frameEviBars,#layerBars,
#logMix,#opsRail,#ruleMap,#slaRail,#boundMap,#roles-map,
.lifecycle-flow,.mod-heat,.maptable,.funnel{
  scroll-margin-top:88px;
}

.is-deeplink-target{
  box-shadow:0 0 0 1px rgba(78,182,194,.45), 0 0 28px rgba(78,182,194,.18)!important;
  transition:box-shadow .4s var(--ease);
}

#vizFloatTip{
  pointer-events:none;
  z-index:90;
  max-width:min(280px, calc(100vw - 24px));
}
/* 与 .viz-float-tip.on 对齐：只用 .on 控制显隐，aria-hidden 同步辅助 */
#vizFloatTip[aria-hidden="true"]:not(.on){opacity:0;visibility:hidden;transform:translateY(4px)}
#vizFloatTip.on{opacity:1;visibility:visible;transform:none}

@media print{
  #vizFloatTip,#chartLive,.hud-panel::before,.hud-panel::after{display:none!important}
  .is-deeplink-target{box-shadow:none!important}
}

@media (prefers-reduced-motion:reduce){
  .is-deeplink-target{transition:none}
}
/* ============================================================
   Round-14 · touch tips / coarse targets / tip contrast
   ============================================================ */

/* 统一 tip 层：可读对比 + 高于 nav */
.viz-float-tip,#vizFloatTip{
  z-index:90;
  color:var(--text);
  background:linear-gradient(180deg,rgba(255,255,255,.06),transparent),#121a24;
  border:1px solid rgba(78,182,194,.35);
  box-shadow:0 12px 32px rgba(0,0,0,.45);
}
.viz-float-tip b,#vizFloatTip b{color:var(--accent-ink)}
.viz-float-tip small,#vizFloatTip small{color:var(--text-2)}

/* 粗指针：图表可点控件最小触控高度 */
@media (pointer:coarse){
  .rn-step,.loop-node,.viz-row,.am-node,.sg-node,.dr-node,.sr-node,
  .bd-node,.rf-node,.lm2-node,.pc-node,.or-node,.md-node,.rr-node,
  .to-node,.wr-node,.fq-node,.fm-node,.bs-node,.lb-row,.gc-row,.fe-row,
  .cl-row,.lm-row,.ms-row,.rv-row,.sio-row,.phase-bar-row,.mod-bar-row,
  .evi-bar-row,.cr-leg,.dlv-node,.tm-step,.ml{
    min-height:44px;
  }
  .mh-cell{min-width:28px;min-height:22px}
  .mod-bar-row .mb-track,.phase-bar-row .pb-track{min-height:12px}
}

/* 打印：保留口径文字，去掉装饰动效与浮动层 */
@media print{
  #vizFloatTip,.viz-float-tip,#chartLive{display:none!important}
  .hud-panel{box-shadow:none!important}
  .hud-panel::before,.hud-panel::after{display:none!important}
  .chart-note{break-inside:avoid}
}
/* ============================================================
   Round-15 · tip 冲突修复 / 深链 hash / 触控链接
   ============================================================ */

.viz-float-tip small{display:block;margin-top:4px;color:var(--text-2)}

/* 触控下图表链接首次点选不「闪跳」：靠 JS preventDefault；焦点环仍可见 */
@media (pointer:coarse){
  a.loop-node:focus-visible,
  a.viz-row:focus-visible,
  .fstep.hf:focus-visible{
    outline:2px solid var(--accent2);
    outline-offset:2px;
  }
}

@media (prefers-reduced-motion:reduce){
  .viz-float-tip,#vizFloatTip{transition:none!important;transform:none!important}
}
/* ============================================================
   Round-16 · tip 与 scrollIntoView 竞态 / 安全区
   ============================================================ */

.viz-float-tip,#vizFloatTip{
  /* 刘海/底部手势条：避免 tip 贴边难读 */
  max-width:min(280px, calc(100vw - 24px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
}
/* ============================================================
   Round-17 · boot 顺序修复配套 / 窄屏 chart-meta
   ============================================================ */

.chart-meta{
  row-gap:6px;
}
@media (max-width:560px){
  .chart-meta{
    flex-direction:column;
    align-items:flex-start;
  }
  .chart-meta .unit{word-break:break-word}
}
/* ============================================================
   Round-18 · compact touch targets / sticky run panel / touch-action
   ============================================================ */

/* 减少旧 WebKit 点击延迟；不影响平移滚动 */
.rn-step,.loop-node,.viz-row,.am-node,.sg-node,.dr-node,.sr-node,
.bd-node,.rf-node,.lm2-node,.pc-node,.or-node,.md-node,.rr-node,
.to-node,.wr-node,.fq-node,.fm-node,.bs-node,.lb-row,.gc-row,.fe-row,
.cl-row,.lm-row,.ms-row,.rv-row,.sio-row,.phase-bar-row,.mod-bar-row,
.evi-bar-row,.cr-leg,.dlv-node,.tm-step,.ml,.fstep.hf,.hf-go{
  touch-action:manipulation;
}

/* 巡游速览在粗指针下不要被 44px 撑爆 */
@media (pointer:coarse){
  .loopchart.loop-compact .loop-node{
    min-height:36px;
    padding:8px 10px;
  }
  .viz-row{
    min-height:40px;
    align-items:center;
  }
  .rn-step{
    min-height:40px;
  }
}

/* 宽屏：运行图右侧详情板随滚动可读 */
@media (min-width:960px){
  .run.hud-panel .rn-panel,
  #runChart .rn-panel{
    position:sticky;
    top:80px;
    align-self:start;
    max-height:calc(100vh - 100px);
    overflow:auto;
  }
}

@media (prefers-reduced-motion:reduce){
  .run.hud-panel .rn-panel,
  #runChart .rn-panel{scroll-behavior:auto}
}
/* ============================================================
   Round-19 · sticky 可用 / 深链清靶 / 离屏 tip 覆盖
   ============================================================ */

/* 深链高亮：减动效时去掉过渡 */
@media (prefers-reduced-motion:reduce){
  .is-deeplink-target{transition:none}
}

/* sticky 面板滚动条与 HUD 同色 */
@media (min-width:960px){
  #runChart .rn-panel{
    scrollbar-width:thin;
    scrollbar-color:rgba(78,182,194,.35) transparent;
  }
}

/* ============================================================
   Round-20 · 上下键轨 / 外点收 tip / a11y 同步
   ============================================================ */

.rn-step:focus-visible,
.viz-row:focus-visible,
.dlv-node:focus-visible,
.tm-step:focus-visible,
.ml:focus-visible,
.phase-bar-row:focus-visible,
.mod-bar-row:focus-visible,
.evi-bar-row:focus-visible,
.lb-row:focus-visible,
.gc-row:focus-visible,
.wr-node:focus-visible,
.am-node:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}
/* ============================================================
   Round-21 · tip role 纠偏 / 深链计时 / 非原生键激
   ============================================================ */

@media (prefers-reduced-motion:reduce){
  #vizFloatTip,
  .viz-float-tip{
    transition:none!important;
  }
  .is-deeplink-target{
    transition:none!important;
  }
}
/* ============================================================
   Round-22 · tip safe-area / 键盘 tip / 交付轨 tip
   ============================================================ */

html{
  --sai-t:env(safe-area-inset-top,0px);
  --sai-r:env(safe-area-inset-right,0px);
  --sai-b:env(safe-area-inset-bottom,0px);
  --sai-l:env(safe-area-inset-left,0px);
}

#vizFloatTip,
.viz-float-tip{
  max-width:min(280px, calc(100vw - 24px - var(--sai-l) - var(--sai-r)));
}
/* ============================================================
   Round-23 · 交付 tip / 激活键去重 / tip 转义
   ============================================================ */

#deliveryChart.hud-panel,
#deliveryChart{
  contain:layout style;
}

#runChart .rn-panel{
  -webkit-overflow-scrolling:touch;
}
/* ============================================================
   Round-24 · tip HTML 护栏 / 深链解码
   ============================================================ */

#covRing,#rolesViz,#phaseSum,#modSum,#crewLoad,#artifactMap,
#slaRail,#whyRail,#faqRail,#fieldMap,#bookSpine,#signGates{
  contain:layout style;
}
/* ============================================================
   Round-25 · tip 二次点击纠偏 / 深链调度 / overscroll
   ============================================================ */

@media (min-width:960px){
  #runChart .rn-panel{
    overscroll-behavior:contain;
  }
}
/* ============================================================
   Round-26 · tip 空内容护栏 / 强制色 / 焦点 scroll-margin
   ============================================================ */

.rn-step,.loop-node,.viz-row,.dlv-node,.dlv-arc-label,.dlv-loop-m,.tm-step,.ml,
.wr-node,.fq-node,.fm-node,.bs-node,.am-node,.sg-node,.dr-node,.sr-node,
.bd-node,.rf-node,.lm2-node,.pc-node,.or-node,.md-node,.rr-node,.to-node,
.lb-row,.gc-row,.fe-row,.cl-row,.lm-row,.ms-row,.rv-row,.sio-row,
.phase-bar-row,.mod-bar-row,.evi-bar-row,.mh-cell,.hf-go,.fstep.hf,
.cr-leg,.cr-seg,.cv-row,.mc-chip,.lv-cell,.lv-stage,.ld-bar,.dist-seg,
.au-leg,.au-seg,.lc-node,.viz-seg,.evi-leg,.viz-lg-row[data-evi],.crew-st,#opsTable tr[data-card],table.matrix.tier-decision tr[data-tier],
.dcc-dots circle,.dcc-axislabels text[data-role]{
  scroll-margin-top:88px;
}

@media (forced-colors:active){
  #vizFloatTip,
  .viz-float-tip{
    border:1px solid CanvasText!important;
    background:Canvas!important;
    color:CanvasText!important;
    box-shadow:none!important;
  }
  .is-deeplink-target{
    outline:2px solid Highlight!important;
    box-shadow:none!important;
  }
  .rn-step:focus-visible,
  .loop-node:focus-visible,
  .viz-row:focus-visible,
  .dlv-node:focus-visible,
  .dlv-arc-label:focus-visible,
  .dlv-loop-m:focus-visible,
  .wr-node:focus-visible,
  .fq-node:focus-visible,
  .fm-node:focus-visible,
  .bs-node:focus-visible,
  .am-node:focus-visible,
  .sg-node:focus-visible,
  .dr-node:focus-visible,
  .sr-node:focus-visible,
  .bd-node:focus-visible,
  .rf-node:focus-visible,
  .lm2-node:focus-visible,
  .pc-node:focus-visible,
  .or-node:focus-visible,
  .md-node:focus-visible,
  .rr-node:focus-visible,
  .to-node:focus-visible,
  .mh-cell:focus-visible,
  .lb-row:focus-visible,
  .gc-row:focus-visible,
  .fe-row:focus-visible,
  .cl-row:focus-visible,
  .lm-row:focus-visible,
  .ms-row:focus-visible,
  .rv-row:focus-visible,
  .sio-row:focus-visible,
  .phase-bar-row:focus-visible,
  .mod-bar-row:focus-visible,
  .evi-bar-row:focus-visible,
  .cr-leg:focus-visible,
  .cr-seg:focus-visible,
  .cv-row:focus-visible,
  .mc-chip:focus-visible,
  .lv-cell:focus-visible,
  .lv-stage:focus-visible,
  .ld-bar:focus-visible,
  .dist-seg:focus-visible,
  .au-leg:focus-visible,
  .au-seg:focus-visible,
  .lc-node:focus-visible,
  .viz-seg:focus-visible,
  .evi-leg:focus-visible,
  .viz-lg-row[data-evi]:focus-visible,
  .crew-st:focus-visible,
  .tm-step:focus-visible,
  .ml:focus-visible,
  .hf-go:focus-visible,
  #opsTable tr[data-card]:focus-visible,
  table.matrix.tier-decision tr[data-tier]:focus-visible,
  .dcc-dots circle:focus-visible,
  .dcc-axislabels text[data-role]:focus-visible{
    outline:2px solid Highlight!important;
    outline-offset:2px;
  }
}
/* ============================================================
   Round-27 · 热力格 2D 键位 / aria-label / pagehide
   ============================================================ */

.mh-cell:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:1px;
}

.mh-cell[role="button"]{
  cursor:pointer;
}
/* ============================================================
   Round-28 · tip 宿主内迁移 / 热力行键 / ring esc
   ============================================================ */

.mod-heat .mh-row{
  scroll-margin-top:88px;
}
/* ============================================================
   Round-29 · 漏斗/运行/交付/职能 tip 宿主内迁移
   ============================================================ */

.funnel,
#runChart,
#rolesViz{
  contain:layout style;
}
/* ============================================================
   Round-30 · tipSoftLeave 同源宿主 / scroll-padding
   ============================================================ */

html{
  scroll-padding-top:88px;
}
/* ============================================================
   Round-31 · tip 长文溢出 / 节点标签统一
   ============================================================ */

#vizFloatTip,
.viz-float-tip{
  max-height:min(40vh, 220px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
/* ============================================================
   Round-32 · tip 可滚动：.on 时 pointer-events / 回图表不收
   ============================================================ */

#vizFloatTip.on,
.viz-float-tip.on{
  pointer-events:auto;
}

#vizFloatTip:not(.on),
.viz-float-tip:not(.on){
  pointer-events:none;
}
/* ============================================================
   Round-33 · tip 视口钳制 / 内滚不带动页面 / 键盘翻页
   ============================================================ */

#vizFloatTip.on,
.viz-float-tip.on{
  overscroll-behavior:contain;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
  scrollbar-width:thin;
  scrollbar-color:rgba(78,182,194,.4) transparent;
}

@media (prefers-reduced-motion:reduce){
  #vizFloatTip,
  .viz-float-tip{
    scroll-behavior:auto;
  }
}
/* ============================================================
   Round-34 · tip 可聚焦翻阅 / 视口变化再钳制
   ============================================================ */

#vizFloatTip.on:focus-visible,
.viz-float-tip.on:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

@media (forced-colors:active){
  #vizFloatTip.on:focus-visible,
  .viz-float-tip.on:focus-visible{
    outline:2px solid Highlight!important;
  }
}
/* ============================================================
   Round-35 · visualViewport 钳制 / aria-describedby（逻辑在 site.js）
   ============================================================ */
/* ============================================================
   Round-36 · tip inert / describedby 竞态 / forced-colors 类 / print
   ============================================================ */

@media print{
  #vizFloatTip,
  .viz-float-tip,
  #chartLive{
    display:none!important;
  }
}

html.is-forced-colors #vizFloatTip.on:focus-visible,
html.is-forced-colors .viz-float-tip.on:focus-visible{
  outline:2px solid Highlight;
  outline-offset:2px;
}
/* ============================================================
   Round-37 · safe-area 探针 / 历史清 tip / prefers-contrast
   ============================================================ */

html.is-contrast-more #vizFloatTip.on,
html.is-contrast-more .viz-float-tip.on{
  border-width:2px;
  border-color:var(--accent2);
}

html.is-contrast-more #vizFloatTip.on:focus-visible,
html.is-contrast-more .viz-float-tip.on:focus-visible{
  outline:3px solid var(--accent2);
  outline-offset:2px;
}
/* ============================================================
   Round-38 · bfcache 清 tip / reduced-transparency / tierLadder IO
   ============================================================ */

html.is-reduced-transparency #vizFloatTip,
html.is-reduced-transparency .viz-float-tip{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  background:#121a24!important;
}
/* ============================================================
   Round-39 · tierLadder / 分档表键盘轨
   ============================================================ */

#tierLadder .ld-bar:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

table.matrix.tier-decision tr[data-tier]:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:-2px;
}

table.matrix.tier-decision tr[data-tier].on{
  background:rgba(78,182,194,.08);
}
/* ============================================================
   Round-40 · dist-seg / audit / digital 点轴键盘轨
   ============================================================ */

.dist-seg:focus-visible,
.au-leg:focus-visible,
.au-seg:focus-visible,
.dcc-dots circle:focus-visible,
.dcc-axislabels text[data-role]:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

.dist-seg[role="button"]{cursor:pointer}
/* ============================================================
   Round-41 · lifecycle / 交付弧 / 方法依据图例上轨
   ============================================================ */

.lc-node:focus-visible,
.viz-lg-row[data-evi]:focus-visible,
.viz-seg:focus-visible,
.evi-leg:focus-visible,
.dlv-arc-label:focus-visible,
.dlv-loop-m:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}
/* ============================================================
   Round-42 · 数字工位板 .crew-st 上轨
   ============================================================ */

#crewBoard .crew-st:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

#crewBoard .crew-st.is-on{
  box-shadow:inset 0 0 0 1px var(--accent),0 0 24px rgba(184,149,74,.12),0 0 0 1px rgba(78,182,194,.25);
}
/* ============================================================
   Round-43 · opsTable 操作化行上轨
   ============================================================ */

#opsTable tr[data-card]:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:-2px;
}

#opsTable tr[data-card].ops-on{
  background:rgba(78,182,194,.08);
}
/* ============================================================
   Round-44 · lifeViz 权责矩阵二维键位
   ============================================================ */

#lifeViz .lv-cell:focus-visible,
#lifeViz .lv-stage:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

#lifeViz .lv-stage[role="button"]{
  cursor:pointer;
}
/* ============================================================
   Round-45 · cv-row / mc-chip 上轨（R44 延期 orphan）
   ============================================================ */

#cvChart .cv-row:focus-visible,
#modCrew .mc-chip:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

#cvChart .cv-row[role="button"]{
  cursor:pointer;
}

#modCrew .mc-chip.on{
  box-shadow:0 0 0 1px rgba(78,182,194,.35);
}

/* ============================================================
   Round-46 · covRing .cr-seg 上轨（legend 已有；环段补键盘）
   ============================================================ */

#covRing .cr-seg:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

/* ============================================================
   Round-47 · tip 宿主登记补齐（auditSum / dccLog / lifecycle / mod-heat）
   无新 tip API；仅让 soft-leave / offscreen 认出已有 tip 图宿主
   ============================================================ */

#auditSum .au-seg:focus-visible,
#auditSum .au-leg:focus-visible,
#dccLog .dcc-dots circle:focus-visible,
#lifecycleFlow .lc-node:focus-visible,
.lifecycle-flow .lc-node:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
}

.btn{color:#1a1408}


/* ========== Round-50 · IA / story / cockpit / offer ========== */
.cockpit-demo-banner{
  display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;
  margin:18px 0 8px;padding:12px 16px;border-radius:var(--r-6);
  border:1px solid rgba(184,149,74,.35);background:rgba(184,149,74,.08);
}

.story-spine{padding:16px 18px;border-radius:var(--r-6);margin-top:8px}
.ss-rail{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin-top:10px}
.ss-node{
  flex:1 1 120px;min-width:110px;text-decoration:none;color:inherit;
  border:1px solid var(--border);border-radius:var(--r-5);background:var(--tint-bg2-500);
  padding:12px 12px 14px;display:flex;flex-direction:column;gap:4px;transition:border-color .2s,transform .2s;
}
.ss-node:hover,.ss-node:focus-visible{border-color:var(--accent2);transform:translateY(-2px);outline:none}
.ss-n{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);letter-spacing:var(--ls-label)}
.ss-t{font-size:var(--fs-100);color:var(--text)}
.ss-d{font-size:var(--fs-074);color:var(--text-3);line-height:1.45}
.ss-arrow{align-self:center;color:var(--accent2);opacity:.45;font-style:normal;padding:0 2px}

.home-pkg-rail{padding:16px 18px;border-radius:var(--r-6)}
.hpr-rail{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}
.hpr-card{
  text-decoration:none;color:inherit;border:1px solid var(--border);border-radius:var(--r-5);
  background:var(--tint-bg2-500);padding:12px;display:flex;flex-direction:column;gap:4px;
  transition:border-color .2s,transform .2s;
}
.hpr-card:hover,.hpr-card:focus-visible{border-color:var(--accent);transform:translateY(-2px);outline:none}
.hpr-card.hot{border-color:rgba(232,212,168,.55);box-shadow:0 0 0 1px rgba(232,212,168,.2) inset}
.hpr-k{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);letter-spacing:var(--ls-label)}
.hpr-p{font-size:var(--fs-118);color:var(--text);line-height:1.1}
.hpr-m,.hpr-f,.hpr-v{font-size:var(--fs-072);color:var(--text-3);line-height:1.4}
.hpr-v{color:var(--accent-ink)}
@media(max-width:960px){.hpr-rail{grid-template-columns:repeat(2,1fr)}.ss-arrow{display:none}}

.who-fit{padding:16px 18px;border-radius:var(--r-6);margin:22px 0 8px}
.wf-rows{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.wf-row{
  display:grid;grid-template-columns:52px 1.1fr 1.6fr 1.2fr;gap:10px;align-items:center;
  text-align:left;width:100%;border:1px solid var(--border);border-radius:var(--r-4);
  background:transparent;color:inherit;padding:10px 12px;cursor:pointer;
  font:inherit;transition:border-color .2s,background .2s;
}
.wf-row:hover,.wf-row.on,.wf-row:focus-visible{border-color:var(--accent2);background:rgba(78,182,194,.06);outline:none}
.wf-row.hot{border-color:rgba(232,212,168,.4)}
.wf-k{font-family:var(--mono);font-weight:700;color:var(--accent-ink)}
.wf-who{font-weight:650;color:var(--text);font-size:var(--fs-085)}
.wf-sig,.wf-next{font-size:var(--fs-078);color:var(--text-3);line-height:1.45}
.wf-next{color:var(--text-2)}
@media(max-width:800px){.wf-row{grid-template-columns:48px 1fr;grid-template-rows:auto auto}.wf-sig,.wf-next{grid-column:1/-1}}
#pkgCompare .pc-tab.on,#pkgCompare .pc-tab:hover,#pkgCompare .pc-tab:focus-visible{border-color:var(--accent);color:var(--accent-ink);outline:none}
#pkgCompare .pc-bar{
  display:flex;flex-direction:column;align-items:center;gap:8px;border:0;background:transparent;
  color:inherit;cursor:pointer;font:inherit;padding:0;min-height:180px;
}
#pkgCompare .pc-bar.hot .pc-track i{background:linear-gradient(180deg,#E8D4A8,#B8954A)}
#pkgCompare .pc-n{text-align:center;line-height:1.2}
#pkgCompare .pc-n b{display:block;font-family:var(--mono);font-size:var(--fs-090);color:var(--text)}
#pkgCompare .pc-n small{font-size:var(--fs-062);color:var(--text-3)}
.plan.is-flash{box-shadow:0 0 0 2px var(--accent2);transition:box-shadow .3s}

.signal-strip{padding:14px 16px;border-radius:var(--r-6);margin-top:16px}
.sig-rail{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.sig-chip{
  flex:1 1 140px;text-align:left;border:1px solid var(--border);border-radius:var(--r-4);
  background:var(--tint-bg2-500);color:inherit;padding:10px 12px;cursor:pointer;font:inherit;
  display:flex;flex-direction:column;gap:2px;
}
.sig-chip:hover,.sig-chip.on,.sig-chip:focus-visible{border-color:var(--accent2);outline:none}
.sig-chip.ok{box-shadow:inset 3px 0 0 #4EB6C2}
.sig-chip.warn{box-shadow:inset 3px 0 0 #B8954A}
.sig-chip.info{box-shadow:inset 3px 0 0 #7A9EBF}
.sig-k{font-size:var(--fs-070);color:var(--text-3)}
.sig-v{font-family:var(--mono);font-size:var(--fs-100);color:var(--text)}
.sig-d{font-size:var(--fs-068);color:var(--text-3)}

.gate-flow{padding:14px 16px;border-radius:var(--r-6)}
.gf-rail{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin-top:8px}
.gf-node{
  flex:1 1 160px;text-align:left;border:1px solid var(--border);border-radius:var(--r-5);
  background:var(--tint-bg2-500);color:inherit;padding:12px;cursor:pointer;font:inherit;
  display:flex;flex-direction:column;gap:6px;
}
.gf-node:hover,.gf-node.on,.gf-node:focus-visible{border-color:var(--accent);outline:none}
.gf-n{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2)}
.gf-t{font-size:var(--fs-090);color:var(--text)}
.gf-track{height:6px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.gf-track i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:99px}
.gf-n2{font-size:var(--fs-072);color:var(--text-3)}
.gf-n2 b{color:var(--accent-ink);font-family:var(--mono)}
.gf-arrow{align-self:center;color:var(--accent2);opacity:.45;font-style:normal}

.dcc-ops2{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}
@media(max-width:960px){.dcc-ops2{grid-template-columns:1fr}}
.hour-heat,.queue-mix{padding:14px 16px}
.hh-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;margin-top:10px}
.hh-cell{
  border:1px solid var(--border);border-radius:6px;padding:8px 4px;cursor:pointer;
  background:rgba(78,182,194,calc(var(--hh, .2)));color:inherit;font:inherit;
  display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;
}
.hh-cell:hover,.hh-cell.on,.hh-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.hh-h{font-family:var(--mono);font-size:var(--fs-060);color:rgba(255,255,255,.7)}
.hh-v{font-family:var(--mono);font-size:var(--fs-074);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
@media(max-width:700px){.hh-grid{grid-template-columns:repeat(6,1fr)}}

.qm-stack{display:flex;height:10px;border-radius:99px;overflow:hidden;margin:10px 0 12px;border:1px solid var(--border)}
.qm-stack i{display:block;height:100%}
.qm-rows{display:flex;flex-direction:column;gap:6px}
.qm-row{
  display:grid;grid-template-columns:1.2fr 1.6fr auto;gap:8px;align-items:center;
  border:1px solid transparent;border-radius:var(--r-4);background:transparent;color:inherit;
  padding:6px 8px;cursor:pointer;font:inherit;text-align:left;
}
.qm-row:hover,.qm-row.on,.qm-row:focus-visible{border-color:var(--border-hi);background:rgba(255,255,255,.02);outline:none}
.qm-k{font-size:var(--fs-078);color:var(--text);display:flex;align-items:center;gap:8px}
.qm-k i{width:8px;height:8px;border-radius:2px;flex:none}
.qm-track{height:6px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden}
.qm-track i{display:block;height:100%;border-radius:99px}
.qm-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--accent-ink);white-space:nowrap}

#storySpine,#homePkgRail,#whoFit,#pkgCompare,#signalStrip,#gateFlow,#hourHeat,#queueMix,#cockpitCmd,
#tiers,#pkgCompare,#service-offer,#digital-offer,#home-offer{scroll-margin-top:88px}
#whoFit .wf-row:focus-visible,#pkgCompare .pc-bar:focus-visible,#signalStrip .sig-chip:focus-visible,
#gateFlow .gf-node:focus-visible,#hourHeat .hh-cell:focus-visible,#queueMix .qm-row:focus-visible,
#storySpine .ss-node:focus-visible,#homePkgRail .hpr-card:focus-visible{
  outline:2px solid var(--accent2);outline-offset:2px;
}
@media print{
  .cockpit-demo-banner,.cc-cmd,#signalStrip,#gateFlow,#hourHeat,#queueMix{display:none!important}
}

/* ============================================================
   Round-51 · index WHY 主张→依据可互动星座图
   ============================================================ */
.why-map{margin-top:var(--block-mt);padding:var(--panel-pad);border-radius:var(--r-5)}
#whyMap,#whyGrid,#why{scroll-margin-top:88px}
.wm-stage{
  display:grid;grid-template-columns:minmax(240px,1.05fr) minmax(260px,1fr);
  gap:18px;align-items:stretch;margin-top:8px;
}
@media(max-width:900px){.wm-stage{grid-template-columns:1fr}}
.wm-viz{
  position:relative;min-height:300px;border-radius:var(--r-5);
  background:
    radial-gradient(ellipse at 50% 48%,rgba(184,149,74,.10),transparent 58%),
    radial-gradient(ellipse at 70% 30%,rgba(78,182,194,.08),transparent 50%),
    rgba(7,9,14,.45);
  border:1px solid rgba(78,182,194,.16);overflow:hidden;
}
.wm-viz svg{display:block;width:100%;height:100%;min-height:300px}
.wm-orbit{fill:none;stroke:rgba(78,182,194,.18);stroke-width:1;stroke-dasharray:3 5}
.wm-orbit.wm-o2{stroke:rgba(184,149,74,.16);stroke-dasharray:2 7}
.wm-spoke{stroke:rgba(184,149,74,.28);stroke-width:1.2;fill:none}
.wm-spoke.on{stroke:var(--accent);stroke-width:1.8;filter:drop-shadow(0 0 6px rgba(184,149,74,.35))}
.wm-hub-ring{fill:rgba(184,149,74,.08);stroke:var(--accent);stroke-width:1.6}
.wm-hub-core{fill:rgba(18,25,32,.92);stroke:var(--accent-ink);stroke-width:1.2}
.wm-hub-lab{fill:var(--accent-ink);font-family:var(--mono);font-size:12px;font-weight:650;text-anchor:middle}
.wm-hub-sub{fill:var(--text-3);font-family:var(--mono);font-size:9px;text-anchor:middle}
.wm-pulse{
  fill:none;stroke:rgba(184,149,74,.45);stroke-width:1.2;
  transform-origin:200px 158px;transform-box:fill-box;
}
@media(prefers-reduced-motion:no-preference){
  .wm-pulse{animation:wm-pulse 2.8s ease-out infinite}
  .wm-orbit{animation:wm-spin 48s linear infinite}
  .wm-orbit.wm-o2{animation-direction:reverse;animation-duration:64s}
}
@keyframes wm-pulse{
  0%{opacity:.55;transform:scale(.92)}
  70%{opacity:0;transform:scale(1.28)}
  100%{opacity:0;transform:scale(1.28)}
}
@keyframes wm-spin{to{transform:rotate(360deg)}}
.wm-node{
  position:absolute;width:118px;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  padding:10px 12px;border-radius:var(--r-4);text-align:left;
  background:rgba(12,18,26,.88);border:1px solid rgba(78,182,194,.22);
  color:inherit;font:inherit;cursor:pointer;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  transition:border-color .2s, box-shadow .2s, transform .2s, background .2s;
  z-index:2;
}
.wm-node:hover,.wm-node.on,.wm-node:focus-visible{
  border-color:rgba(184,149,74,.55);
  box-shadow:0 0 18px rgba(184,149,74,.18),0 8px 22px rgba(0,0,0,.35);
  background:rgba(18,24,34,.96);
  outline:none;z-index:3;
}
.wm-node.on{transform:translate(-50%,-50%) translateY(-2px)}
.wm-node:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
.wm-no{font-family:var(--mono);font-size:var(--fs-062);color:var(--accent2);letter-spacing:.04em}
.wm-t{font-size:var(--fs-078);font-weight:650;color:var(--text);line-height:1.25}
.wm-m{font-family:var(--mono);font-size:var(--fs-062);color:var(--text-3)}
.wm-node.on .wm-m{color:var(--accent-ink)}
@media(max-width:560px){
  .wm-viz{min-height:340px}
  .wm-node{width:104px;padding:8px 10px}
  .wm-t{font-size:var(--fs-072)}
}
.wm-detail{
  display:flex;flex-direction:column;gap:12px;padding:4px 2px 2px;
  min-height:280px;
}
.wm-detail-k{font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);letter-spacing:.06em}
.wm-detail h3{margin:0;font-size:var(--fs-110);color:var(--text);line-height:1.3}
.wm-detail p{margin:0;font-size:var(--fs-086);color:var(--text-2);line-height:1.7}
.wm-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media(max-width:560px){.wm-metrics{grid-template-columns:1fr 1fr}}
.wm-metric{
  border:1px solid rgba(78,182,194,.18);border-radius:var(--r-4);
  background:rgba(7,9,14,.4);padding:10px 12px;
  display:flex;flex-direction:column;gap:2px;
}
.wm-metric b{
  font-family:var(--mono);font-size:var(--fs-110);color:var(--accent-ink);
  letter-spacing:var(--ls-num);line-height:1.1;
}
.wm-metric span{font-size:var(--fs-068);color:var(--text-3);line-height:1.35}
.wm-bars{display:flex;flex-direction:column;gap:8px;margin-top:2px}
.wm-bar-row{display:grid;grid-template-columns:72px 1fr 40px;gap:8px;align-items:center}
.wm-bar-lab{font-size:var(--fs-070);color:var(--text-3)}
.wm-bar-track{height:7px;border-radius:99px;background:rgba(255,255,255,.05);overflow:hidden;border:1px solid var(--border)}
.wm-bar-track i{
  display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,var(--accent),var(--accent2));
  transform-origin:left center;
}
.wm-bar-n{font-family:var(--mono);font-size:var(--fs-070);color:var(--accent-ink);text-align:right}
.wm-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.wm-links a{
  display:inline-flex;align-items:center;gap:4px;
  padding:7px 12px;border-radius:var(--r-pill);
  border:1px solid rgba(184,149,74,.35);color:var(--accent-ink);
  font-size:var(--fs-074);text-decoration:none;
  background:rgba(184,149,74,.08);transition:border-color .2s, background .2s;
}
.wm-links a:hover,.wm-links a:focus-visible{
  border-color:var(--accent);background:rgba(184,149,74,.16);outline:none;
}
.wm-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.wm-tab{
  flex:1 1 120px;text-align:left;border:1px solid var(--border);
  background:rgba(7,9,14,.35);color:inherit;border-radius:var(--r-4);
  padding:9px 12px;cursor:pointer;font:inherit;
  display:flex;flex-direction:column;gap:2px;
  transition:border-color .2s, box-shadow .2s;
}
.wm-tab:hover,.wm-tab.on,.wm-tab:focus-visible{
  border-color:rgba(184,149,74,.5);
  box-shadow:0 0 12px rgba(184,149,74,.1);outline:none;
}
.wm-tab .wm-tn{font-family:var(--mono);font-size:var(--fs-062);color:var(--accent2)}
.wm-tab .wm-tt{font-size:var(--fs-078);font-weight:650;color:var(--text)}
.why-grid > .card.is-on{
  border-color:rgba(184,149,74,.5);
  box-shadow:0 0 18px rgba(184,149,74,.14);
}
@media(prefers-reduced-motion:reduce){
  .wm-pulse,.wm-orbit,.wm-orbit.wm-o2{animation:none!important}
  .wm-node,.wm-tab,.wm-bar-track i{transition:none!important}
  .wm-node.on{transform:translate(-50%,-50%)}
}
@media print{
  .wm-viz{background:#fff;border-color:#ccc}
  .wm-node{position:static;transform:none;width:auto;display:inline-block;margin:4px}
  .wm-stage{display:block}
}


/* ============================================================
   Round-52 · digital cockpit command center (权威 / 专业 / 科技 / 实用)
   去掉演示徽章;加强指挥条 / KPI / 信号 / 热力层次
   ============================================================ */
#cockpit.hud-shell{
  position:relative;
  border-top:1px solid rgba(78,182,194,.12);
  border-bottom:1px solid rgba(184,149,74,.10);
  background:
    radial-gradient(900px 420px at 8% 0%, rgba(78,182,194,.07), transparent 55%),
    radial-gradient(700px 380px at 92% 12%, rgba(184,149,74,.06), transparent 50%),
    var(--bg2);
}
#cockpit.hud-shell::after{
  content:"";pointer-events:none;position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(90deg, rgba(78,182,194,.04), transparent 18%, transparent 82%, rgba(184,149,74,.04)),
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(78,182,194,.012) 2px, rgba(78,182,194,.012) 3px);
  mix-blend-mode:soft-light;
}
#cockpit .wrap{position:relative;z-index:1}

.cc-cmd{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;
  margin:18px 0 6px;padding:12px 16px;
  border:1px solid rgba(78,182,194,.28);
  background:
    linear-gradient(180deg, rgba(78,182,194,.08), transparent 70%),
    rgba(7,9,14,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 0 24px rgba(78,182,194,.05);
}
.cc-live{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:var(--fs-070);font-weight:700;
  letter-spacing:.12em;color:#1a1408;
  background:linear-gradient(135deg,var(--accent-ink),var(--accent));
  padding:4px 10px;border-radius:var(--r-pill);
}
.cc-live i{
  width:7px;height:7px;border-radius:50%;background:#1a1408;
  box-shadow:0 0 0 0 rgba(26,20,8,.45);
  animation:cc-live-pulse 1.6s ease infinite;
}
@keyframes cc-live-pulse{
  0%{box-shadow:0 0 0 0 rgba(26,20,8,.5)}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
.cc-clock{
  font-family:var(--mono);font-size:var(--fs-100);font-weight:700;
  color:var(--accent-ink);font-variant-numeric:tabular-nums;letter-spacing:.04em;
  min-width:7.2ch;
}
.cc-sep{width:1px;height:18px;background:rgba(78,182,194,.28);flex:none}
.cc-chip{
  font-family:var(--mono);font-size:var(--fs-066);color:var(--text-2);
  border:1px solid var(--border);border-radius:var(--r-pill);
  padding:3px 10px;background:rgba(255,255,255,.02);letter-spacing:var(--ls-label);
}
.cc-chip.ok{border-color:rgba(78,182,194,.45);color:var(--accent2)}

.kpi-belt.cc-kpi{
  margin-top:16px;padding:12px;
  border-radius:var(--r-6);
  border:1px solid rgba(78,182,194,.22)!important;
  background:
    linear-gradient(180deg, rgba(78,182,194,.05), transparent),
    rgba(7,9,14,.35);
  box-shadow:inset 0 0 48px rgba(78,182,194,.04);
  gap:8px;
}
.kpi-belt.cc-kpi .kpi{
  background:
    linear-gradient(160deg, rgba(255,255,255,.03), transparent 55%),
    var(--surface);
  border-color:rgba(78,182,194,.18);
  min-width:110px;
}
.kpi-belt.cc-kpi .kpi::before{
  content:"";position:absolute;top:0;left:10px;right:10px;height:1px;
  background:linear-gradient(90deg, transparent, rgba(226,193,122,.45), transparent);
}
.kpi-belt.cc-kpi .kpi-k{letter-spacing:.08em;text-transform:uppercase;font-size:var(--fs-060)}
.kpi-belt.cc-kpi .kpi-v{font-size:clamp(1.15rem,2.4vw,1.45rem)} /* legacy demo badge — retired */

#signalStrip .sig-chip{position:relative;padding-left:14px}
#signalStrip .sig-dot{
  position:absolute;left:8px;top:14px;width:6px;height:6px;border-radius:50%;
  background:var(--accent2);box-shadow:0 0 8px rgba(78,182,194,.55);
}
#signalStrip .sig-chip.warn .sig-dot{background:var(--accent);box-shadow:0 0 8px rgba(184,149,74,.55)}
#signalStrip .sig-chip.info .sig-dot{background:#7A9EBF;box-shadow:0 0 8px rgba(122,158,191,.45)}
#signalStrip .sig-chip.on{
  border-color:var(--accent-ink);
  background:rgba(184,149,74,.08);
  box-shadow:inset 3px 0 0 var(--accent);
}

#gateFlow .gf-node{
  position:relative;
  background:
    linear-gradient(180deg, rgba(184,149,74,.06), transparent 60%),
    var(--tint-bg2-500);
}
#gateFlow .gf-pass{
  font-family:var(--mono);font-size:var(--fs-066);color:var(--accent2);letter-spacing:var(--ls-label);
}
#gateFlow .gf-pass b{color:var(--accent-ink)}
#gateFlow .gf-node.on{
  border-color:var(--accent);
  box-shadow:0 0 0 1px rgba(184,149,74,.25), inset 0 0 20px rgba(184,149,74,.06);
}

#hourHeat .hh-cell.peak{
  outline:1px solid rgba(232,212,168,.55);
  box-shadow:0 0 12px rgba(184,149,74,.18);
}
#hourHeat .hh-cell.on{
  outline:2px solid var(--accent-ink);
  transform:translateY(-1px);
}
#queueMix .qm-stack{
  height:12px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
#queueMix .qm-row.on{
  border-color:rgba(78,182,194,.4);
  background:rgba(78,182,194,.06);
}

#cockpit .dcc-card{
  border-color:rgba(78,182,194,.16);
  background:
    linear-gradient(165deg, rgba(78,182,194,.04), transparent 40%),
    var(--surface);
}
#cockpit .dcc-chip.on i{
  background:var(--accent2);
  box-shadow:0 0 0 0 rgba(78,182,194,.5);
  animation:live-dot 1.8s ease infinite;
}
#cockpit .dcc-log{
  border:1px solid rgba(78,182,194,.12);
  background:rgba(7,9,14,.4);
  border-radius:var(--r-4);
  max-height:220px;overflow:auto;
}
#cockpit .dcc-row .t{color:var(--accent2)}
#cockpit .dcc-row .r{color:var(--accent-ink)}

#cockpitCmd,#signalStrip,#gateFlow,#hourHeat,#queueMix,#cockpit{scroll-margin-top:88px}

@media(prefers-reduced-motion:reduce){
  .cc-live i,#cockpit .dcc-chip.on i{animation:none!important}
  #hourHeat .hh-cell.on{transform:none}
}
@media print{
  .cc-cmd{border-color:#ccc}
  .cc-live{background:#ddd;color:#000}
}


/* ========== t25 · 驾驶舱最高科技 HUD 套件 ========== */
/* t27: minmax(0,*) 防止 SVG/长文把栅格撑扁;align start 避免空高拉伸 */
.dcc-hud3{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);
  gap:22px;align-items:start;
}
#liveSeries,#roleBars,#resGauges{min-width:0;max-width:100%}

/* radar sweep + glow polish */
@keyframes dcc-sweep{to{transform:rotate(360deg)}}
.dcc-radar .dcc-radbg{pointer-events:none}
#cockpit .dcc-outline{filter:url(#dccGlow)}
#cockpit .dcc-area{opacity:.95}
#cockpit .dcc-line-path{stroke-width:2.2}

/* live series */
#liveSeries{padding:16px 18px}
#liveSeries .ls-svg{display:block;width:100%;height:auto;min-height:168px;margin-top:6px}
#liveSeries .ls-grid line{stroke:rgba(120,140,180,.14);stroke-width:1}
#liveSeries .ls-s0{fill:none;stroke:var(--accent2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#liveSeries .ls-s1{fill:none;stroke:var(--accent-ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#liveSeries .ls-s2{fill:none;stroke:#7A9EBF;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3 3}
#liveSeries .ls-fill0{fill:url(#lsFill0);opacity:.9}
#liveSeries .ls-scan{
  stroke:rgba(78,182,194,.55);stroke-width:1;stroke-dasharray:2 4;
}
#liveSeries .ls-legend{
  display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;
  font-family:var(--mono);font-size:var(--fs-066);color:var(--text-2);
}
#liveSeries .ls-legend i{
  display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:6px;border-radius:1px;
}
#liveSeries .ls-legend .l0 i{background:var(--accent2);box-shadow:0 0 6px rgba(78,182,194,.6)}
#liveSeries .ls-legend .l1 i{background:var(--accent-ink);box-shadow:0 0 6px rgba(226,193,122,.5)}
#liveSeries .ls-legend .l2 i{background:#7A9EBF}
#liveSeries .ls-readout{
  display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;
  font-family:var(--mono);font-size:var(--fs-070);color:var(--text-2);
}
#liveSeries .ls-readout b{color:var(--accent-ink);font-variant-numeric:tabular-nums}
#liveSeries .ls-ytick{fill:var(--text-3);font-family:var(--mono);font-size:9px}

/* role bars */
#roleBars{padding:16px 18px}
#roleBars .rb-chart{display:flex;align-items:flex-end;gap:6px;height:168px;margin-top:8px;padding:0 2px 0}
#roleBars .rb-col{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;
  min-width:0;height:100%;justify-content:flex-end;cursor:pointer;
  background:transparent;border:0;padding:0;color:inherit;font:inherit;
}
#roleBars .rb-track{
  width:100%;max-width:28px;flex:1;display:flex;align-items:flex-end;
  border-radius:4px 4px 2px 2px;
  background:linear-gradient(180deg, rgba(78,182,194,.06), rgba(255,255,255,.02));
  border:1px solid rgba(78,182,194,.12);
  position:relative;overflow:hidden;
}
#roleBars .rb-fill{
  display:block;width:100%;border-radius:3px 3px 1px 1px;
  background:linear-gradient(180deg, var(--accent-ink), var(--accent2));
  box-shadow:0 0 12px rgba(78,182,194,.35), inset 0 1px 0 rgba(255,255,255,.25);
  transition:height .55s cubic-bezier(.2,.7,.2,1);
  position:relative;
}
#roleBars .rb-fill::after{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:rgba(255,255,255,.55);box-shadow:0 0 8px rgba(232,212,168,.7);
}
#roleBars .rb-v{
  font-family:var(--mono);font-size:var(--fs-062);color:var(--accent2);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;
}
#roleBars .rb-k{
  font-family:var(--mono);font-size:var(--fs-058);color:var(--text-3);
  writing-mode:horizontal-tb;text-align:center;line-height:1.15;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#roleBars .rb-col:hover .rb-track,
#roleBars .rb-col.is-on .rb-track{
  border-color:rgba(226,193,122,.45);
  box-shadow:0 0 0 1px rgba(184,149,74,.2), inset 0 0 12px rgba(184,149,74,.08);
}
#roleBars .rb-col.is-on .rb-fill{
  background:linear-gradient(180deg, #E8D4A8, var(--accent));
  box-shadow:0 0 16px rgba(184,149,74,.45);
}
#roleBars .rb-col.is-on .rb-k,#roleBars .rb-col.is-on .rb-v{color:var(--accent-ink)}

/* resource / memory rings */
#resGauges{padding:16px 18px}
#resGauges .rg-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px 10px;margin-top:8px;
}
#resGauges .rg-cell{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  background:rgba(7,9,14,.35);border:1px solid rgba(78,182,194,.14);
  border-radius:var(--r-5);padding:10px 6px 8px;
  cursor:pointer;transition:border-color .2s, box-shadow .2s;
}
#resGauges .rg-cell:hover,#resGauges .rg-cell.is-on{
  border-color:rgba(226,193,122,.4);
  box-shadow:0 0 18px rgba(78,182,194,.1);
}
#resGauges .rg-svg{width:78px;height:78px;display:block}
#resGauges .rg-track{fill:none;stroke:rgba(120,140,180,.18);stroke-width:7}
#resGauges .rg-arc{
  fill:none;stroke-width:7;stroke-linecap:round;
  transform:rotate(-90deg);transform-origin:40px 40px;
  transition:stroke-dashoffset .6s cubic-bezier(.2,.7,.2,1);
  filter:drop-shadow(0 0 4px rgba(78,182,194,.45));
}
#resGauges .rg-arc.c0{stroke:var(--accent2)}
#resGauges .rg-arc.c1{stroke:var(--accent-ink);filter:drop-shadow(0 0 4px rgba(226,193,122,.45))}
#resGauges .rg-arc.c2{stroke:#7A9EBF}
#resGauges .rg-arc.c3{stroke:var(--accent)}
#resGauges .rg-arc.c4{stroke:#E8D4A8;filter:drop-shadow(0 0 4px rgba(232,212,168,.4))}
#resGauges .rg-val{
  fill:var(--accent-ink);font-family:var(--mono);font-size:13px;font-weight:700;
  font-variant-numeric:tabular-nums;
}
#resGauges .rg-unit{fill:var(--text-3);font-family:var(--mono);font-size:8px}
#resGauges .rg-k{
  font-family:var(--mono);font-size:var(--fs-062);color:var(--text-2);letter-spacing:var(--ls-label);
  text-align:center;
}
#resGauges .rg-d{font-size:var(--fs-058);color:var(--text-3);text-align:center;line-height:1.25}
#resGauges .rg-cell.wide{grid-column:span 1}

@media(max-width:1180px){
  .dcc-hud3{grid-template-columns:1fr}
  #resGauges .rg-grid{grid-template-columns:repeat(5,1fr)}
}
@media(max-width:720px){
  #resGauges .rg-grid{grid-template-columns:repeat(3,1fr)}
  #roleBars .rb-k{font-size:9px}
}
@media(prefers-reduced-motion:reduce){
  .dcc-sweep{animation:none!important;opacity:.35}
  #roleBars .rb-fill,#resGauges .rg-arc{transition:none!important}
}
@media print{
  .dcc-sweep{display:none}
  #liveSeries .ls-s0,#liveSeries .ls-s1{stroke:#1e5fa8}
  #roleBars .rb-fill{background:#1e5fa8!important;box-shadow:none}
}

#liveSeries,#roleBars,#resGauges{scroll-margin-top:88px}
#cockpit .dcc-line .dcc-fill{fill:url(#dccLineFill)}
#cockpitCmd,#signalStrip,#gateFlow,#hourHeat,#queueMix,#liveSeries,#roleBars,#resGauges,#cockpit{scroll-margin-top:88px}


/* t27: digital 驾驶舱需要全宽 wrap,不受阅读页 .doc 860 限制 */
body.doc[data-page="digital"],
body[data-page="digital"]{
  max-width:none;
}

/* ============================================================
   t27b · 驾驶舱整页密度 / tip+轨 稀疏修复（2026-11-07）
   根因: tip 条行用 minmax(*,Nfr) 把标签列拉到半宽 → 标签与进度条中间大片空
   ============================================================ */

/* 1) 全局 tip/轨 行：标签贴内容，条占剩余 */
.layer-bars .lb-row,
.scope-io .sio-row{
  grid-template-columns:minmax(72px,max-content) minmax(72px,1fr) 36px;
  gap:8px 10px;
  padding:3px 4px;
}
.layer-bars .lb-k,
.scope-io .sio-k{
  white-space:nowrap;
}
.layer-bars .lb-bars,
.scope-io .sio-bars{
  gap:5px;margin-top:4px;
}
.layer-bars .lb-track,
.scope-io .sio-track{
  height:8px;
}
.qm-row{
  display:grid!important;
  grid-template-columns:minmax(72px,max-content) minmax(64px,1fr) 48px;
  gap:8px 10px;align-items:center;
}

/* tip 壳：少 padding，贴内容 */
.layer-bars,.ops-rail,.scope-io,.mod-deliver,.rule-map,
.why-rail,.faq-rail,.field-map,.book-spine,
.signal-strip,.gate-flow,.hour-heat,.queue-mix{
  margin:8px 0 8px;padding:10px 12px;
}

/* chart-meta / note 收紧（全局可读轨，尤其宽卡） */
.chart-meta{
  padding:6px 10px!important;
  margin-bottom:8px!important;
  padding-bottom:6px!important;
  gap:6px 12px!important;
  align-items:center!important;
}
.chart-note{
  margin-top:8px!important;
  padding:7px 10px!important;
  padding-top:7px!important;
  line-height:1.5!important;
  font-size:var(--fs-068)!important;
}

/* 2) 驾驶舱满宽 + 竖向节奏 */
body[data-page="digital"]{
  --wrap:1360px;
}
#cockpit .wrap{
  max-width:var(--wrap);
  padding-left:18px;padding-right:18px;
}
#cockpit.sec{padding-top:48px;padding-bottom:56px}
#cockpit .sec-d{max-width:52rem;margin-left:auto;margin-right:auto}
#cockpit .dcc-grid{
  gap:14px;margin-top:16px!important;align-items:start;
}
#cockpit .dcc-grid > [style*="flex-direction"]{gap:14px!important}
#cockpit .dcc-card{padding:14px 16px}
#cockpit .dcc-head{margin-bottom:8px;gap:8px}
#cockpit .dcc-legend{margin-top:8px;padding-top:8px}
#cockpit .dcc-radar{max-width:100%}
#cockpit .dcc-log{height:188px;padding:10px 12px;gap:5px}
#cockpit .lk-bar{margin-top:8px}

.cc-cmd{margin:12px 0 4px;padding:8px 12px;gap:8px 10px}
.kpi-belt.cc-kpi{margin-top:10px;padding:8px;gap:6px}
.kpi-belt.cc-kpi .kpi{min-width:0;padding:8px 10px}
.signal-strip{margin-top:10px;padding:10px 12px}
.gate-flow{margin-top:10px!important;padding:10px 12px}
.sig-chip{padding:8px 10px;flex:1 1 120px}
.gf-node{padding:10px;flex:1 1 140px}

.dcc-hud3{
  gap:12px!important;
  margin-top:14px!important;
}
#liveSeries,#roleBars,#resGauges{padding:12px 14px!important}
#liveSeries .ls-svg{min-height:148px;margin-top:4px}
#roleBars .rb-chart{height:148px;margin-top:6px;gap:5px}
#resGauges .rg-grid{gap:8px 8px;margin-top:6px}
#resGauges .rg-cell{padding:8px 4px 6px}
#resGauges .rg-svg{width:70px;height:70px}

.dcc-ops2{gap:12px!important;margin-top:14px!important}
.hour-heat,.queue-mix{padding:12px 14px!important}
.hh-grid{gap:5px;margin-top:8px}
.hh-cell{min-height:44px;padding:6px 3px}
.qm-stack{margin:8px 0 10px}
.qm-rows{gap:4px}

/* 工位板 */
.crew-wrap{gap:14px;margin-top:18px}
.crew{gap:8px}
.crew-st{padding:9px 10px}
.crew-head{margin-bottom:8px}
.crew-detail .cd-shell{padding:12px 12px 14px}
.cd-metrics{gap:6px;margin-bottom:10px}
.cd-block{padding:8px 9px;margin-bottom:10px}

/* HUD 角标别占内边距视觉 */
#cockpit .hud-panel::before{top:5px;left:5px;width:9px;height:9px}
#cockpit .hud-panel::after{bottom:5px;right:5px;width:9px;height:9px}

@media(max-width:1180px){
  body[data-page="digital"]{--wrap:100%}
  .dcc-hud3{gap:12px!important}
}
@media(max-width:720px){
  #cockpit .wrap{padding-left:14px;padding-right:14px}
  .layer-bars .lb-row,
  .scope-io .sio-row,
  .qm-row{
    grid-template-columns:minmax(64px,max-content) 1fr 32px;
    gap:6px 8px;
  }
}
#cockpit .dcc-col-stack{display:flex;flex-direction:column;gap:14px}
#cockpit .dcc-grid-main{margin-top:16px}
/* t27b-2 · 补齐同类 tip 行 */
.frame-evi .fe-row,
.log-mix .lm-row,
.metric-sources .ms-row,
.gl-catbars .gc-row,
.crew-load .cl-row,
.roles-viz .rv-row{
  grid-template-columns:minmax(72px,max-content) minmax(64px,1fr) 48px !important;
  gap:6px 10px;
}
.frame-evi .fe-k,
.log-mix .lm-k,
.metric-sources .ms-k,
.gl-catbars .gc-k,
.crew-load .cl-k,
.roles-viz .rv-k{
  white-space:nowrap;
}
.frame-evi .fe-bars,
.log-mix .lm-bars{gap:4px;margin-top:4px}
.log-mix,.frame-evi,.deliv-rhythm,.price-cadence,.mod-crew{
  margin:8px 0;padding:10px 12px;
}
#logMix.hud-panel{margin:0 0 8px}

/* tip 内条行：上限宽度，避免宽卡上「细长空轨」 */
#queueMix .qm-rows,
#logMix .lm-bars{
  max-width:100%;
}
/* ops2 / hud3 顶对齐，矮卡不跟着最高卡拉空 */
.dcc-ops2,#cockpit .dcc-ops2{align-items:start!important}
.dcc-hud3{align-items:start!important}
#hourHeat,#queueMix{height:auto}
#resGauges .rg-grid{justify-items:center}
#liveSeries .chart-note,#roleBars .chart-note,#resGauges .chart-note{margin-top:6px!important}

/* ============================================================
   t27c · HUD3 脚注压扁 + 杀空壳（2026-11-07）
   ============================================================ */

/* HUD3：图主导；读图脚注全宽薄条，绝不侧栏 */
.dcc-hud3{
  display:grid !important;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr) !important;
  gap:12px !important;
  align-items:stretch !important;
}
#liveSeries,#roleBars,#resGauges{
  display:flex !important;
  flex-direction:column !important;
  min-width:0;
  padding:12px 14px !important;
}
#liveSeries .ls-svg,
#roleBars .rb-chart,
#resGauges .rg-grid{flex:1 1 auto;width:100%}
#liveSeries .ls-svg{min-height:170px;max-height:none}
#roleBars .rb-chart{height:170px;margin-top:4px;width:100%}
#roleBars .rb-track{max-width:36px}
#resGauges .rg-grid{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:6px !important;
  margin-top:6px;
  align-content:center;
  justify-items:stretch;
}
#resGauges .rg-cell{
  width:100%;
  padding:6px 2px 4px !important;
  min-width:0;
}
#resGauges .rg-svg{width:100%;max-width:76px;height:auto;aspect-ratio:1;margin:0 auto}
#liveSeries .chart-note,
#roleBars .chart-note,
#resGauges .chart-note,
#cockpit .hud-foot,
#cockpit #liveSeries .chart-note,
#cockpit #roleBars .chart-note,
#cockpit #resGauges .chart-note,
#hourHeat .chart-note,
#queueMix .chart-note{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  flex:none !important;
  margin:8px 0 0 !important;
  padding:5px 8px !important;
  font-size:var(--fs-062) !important;
  line-height:1.4 !important;
  white-space:normal;
  border-left:2px solid var(--accent2);
  background:rgba(78,182,194,.05);
}
#liveSeries .ls-legend,#liveSeries .ls-readout{margin-top:6px}
#liveSeries .chart-meta,#roleBars .chart-meta,#resGauges .chart-meta{
  margin-bottom:4px !important;padding:4px 8px !important;
}

@media(max-width:1180px){
  .dcc-hud3{grid-template-columns:1fr !important}
  #resGauges .rg-grid{grid-template-columns:repeat(5,minmax(0,1fr)) !important}
}
@media(max-width:560px){
  #resGauges .rg-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
}

/* t27c-2 · hug content / rings row */
.dcc-hud3{align-items:start !important}
#liveSeries .ls-svg,
#roleBars .rb-chart,
#resGauges .rg-grid{flex:0 0 auto !important}
#resGauges .rg-svg{max-width:84px !important}
#resGauges .rg-grid{min-height:110px;align-content:center}
#roleBars .rb-chart{height:180px !important}
#liveSeries .ls-svg{min-height:180px !important}
#cockpit #liveSeries,
#cockpit #roleBars,
#cockpit #resGauges{height:auto !important}

/* ============================================================
   t28 · 全站视觉统一（相对驾驶舱密度语言，2026-11-07）
   - 解锁 body.doc 860 锁宽（已在上方 .doc 规则改）
   - 全站卡片/区块/图注/tip 行同一套 padding·gap
   - 长文阅读列仍用 .wrap.doc / .doc:not(body) ≈720
   ============================================================ */

/* 全站 wrap 节奏：数字页可更宽，其余共用 --wrap；边距同阶 */
.wrap{padding-left:20px;padding-right:20px}
@media(max-width:720px){.wrap{padding-left:14px;padding-right:14px}}

/* 营销页与阅读页共用外框；阅读页长文收窄 */
body[data-page="method"] .wrap > .callout,
body[data-page="whitepaper"] .wrap > .callout,
body[data-page="compliance"] .wrap > .callout{
  max-width:42rem;
}
body[data-page="method"] .sec-d,
body[data-page="whitepaper"] .sec-d,
body[data-page="compliance"] .sec-d,
body[data-page="bundle"] .sec-d{
  max-width:42rem;
}

/* 卡片 / HUD 面板默认密度（驾驶舱局部可再紧） */
.hud-panel{
  padding:var(--panel-pad);
}
.card h3{margin-bottom:4px}
.card p{line-height:1.55}

/* 区块标题→内容间距统一 */
.sec .eyebrow + .sec-t{margin-top:4px}
.sec .g2,.sec .g3,.sec .g4,.sec .g5,.sec .grid2,
.sec .method-map,.sec .scope,.sec .glgrid,.sec .boss4,
.sec .tiergrid,.sec .loopchart,.sec .run,.sec .dlv,
.sec .theory-map,.sec .why-map,.sec .lifecycle-flow,
.sec .framecard,.sec .matrix-wrap,.sec .relcharts{
  margin-top:var(--block-mt);
}

/* 图注：一律图下脚注，禁止侧栏占宽 */
.chart-note,
.hud-foot{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin-top:8px;
  padding:6px 10px;
  border-top:1px solid var(--border);
  border-left:2px solid rgba(78,182,194,.45);
  background:rgba(78,182,194,.04);
  font-size:var(--fs-068);
  line-height:1.45;
  color:var(--text-3);
}
.chart-note b,.hud-foot b{color:var(--text-2);font-weight:600}

/* tip / 轨行：标签贴内容（补遗漏选择器） */
.why-map .wm-row,
.why-rail .wr-row,
.field-map .fm-row,
.book-spine .bs-row,
.faq-rail .fr-row,
.mod-deliver .md-row,
.rule-map .rm-row,
.deliv-rhythm .dr-row,
.price-cadence .pc-row,
.metric-sources .ms-row,
.gl-catbars .gc-row,
.crew-load .cl-row,
.roles-viz .rv-row,
.frame-evi .fe-row,
.log-mix .lm-row,
.ops-rail .or-row,
.viz-row,
.cv-row{
  column-gap:10px;
}
.viz-row{
  grid-template-columns:minmax(72px,max-content) minmax(64px,1fr) 48px;
}
.cv-row{
  grid-template-columns:minmax(72px,max-content) minmax(64px,1fr) minmax(56px,max-content);
}
.rn-step{
  grid-template-columns:20px minmax(0,1fr) auto minmax(48px,max-content) 44px;
}
.rn-p-list>div{
  grid-template-columns:minmax(56px,max-content) 1fr;
}
.maprow{
  grid-template-columns:minmax(96px,max-content) 1fr 1.4fr;
}
.layer{
  grid-template-columns:minmax(140px,max-content) 1fr;
  gap:0;
}
.layer .lh,.layer .lr{padding:14px 16px}

/* 矩阵 / 对照表：吃满 wrap，不再卡 860/1000 */
.matrix-wrap,
.matrix-wrap.hud-panel{
  max-width:none !important;
  margin-top:var(--block-mt) !important;
  padding:var(--panel-pad);
}
.pkg-compare.hud-panel,
.pkg-compare{
  margin-top:var(--block-mt);
  padding:var(--panel-pad);
}

/* 首页漏斗 / 价值卡更贴 */
.funnel.hud-panel{padding:var(--panel-pad)}
.relcharts{margin-top:var(--block-mt);gap:var(--block-gap)}

/* 价格档位 / 联系表单 */
.qz{padding:var(--card-pad);border-radius:var(--r-6)}

/* 页脚节奏略收 */
.ns-foot{padding:28px 0;margin-top:32px}
.foot-inner{gap:20px}

/* 子页 hero CTA 间距 */
.page-hero .hero-cta{margin-top:18px}
.page-hero .lead{margin-bottom:0}

/* 文档页：外框同站，阅读块自收 */
body.doc .wrap{max-width:var(--wrap)}
body.doc .wrap.doc{max-width:720px}
body.doc .page-hero .wrap{max-width:var(--wrap)}

/* 服务页（原 body.doc 锁 860）图表吃满 */
body[data-page="service"] .run,
body[data-page="service"] .loopchart,
body[data-page="service"] .dlv,
body[data-page="service"] .viz-grid{
  max-width:none;
}

/* 减少过大 inline 间距的视觉差：常见块 */
.hero-cta{gap:10px}
.sec .center.hero-cta{margin-top:18px}

@media(max-width:960px){
  :root{--sec-y:48px;--block-mt:16px}
}
@media(max-width:720px){
  :root{--sec-y:40px;--card-pad:14px 14px;--panel-pad:12px;--block-mt:14px}
  .viz-row,.cv-row{
    grid-template-columns:minmax(64px,max-content) 1fr 40px;
  }
  .maprow{grid-template-columns:minmax(88px,max-content) 1fr}
  .layer{grid-template-columns:1fr}
}

/* ---- t30 merges: slim theory dir + gate strip ---- */
.theory-map-slim .tm-dir{
  display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px
}
.theory-map-slim .tm-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 12px;border-radius:var(--r-pill);
  border:1px solid var(--border);background:rgba(255,255,255,.03);
  color:var(--text-2);font-size:var(--fs-078);text-decoration:none;
  line-height:1.3
}
.theory-map-slim .tm-chip:hover,
.theory-map-slim .tm-chip:focus-visible{
  border-color:var(--accent);color:var(--accent-ink);outline:none
}
#sign .gate-flow-slim{
  margin-top:12px!important;padding:8px 12px
}
#sign .gate-flow-slim .gf-rail{margin-top:4px;gap:6px}
#sign .gate-flow-slim .gf-node{
  padding:8px 10px;flex:1 1 120px;min-width:0
}
#sign .gate-flow-slim .gf-n2,
#sign .gate-flow-slim .gf-pass{font-size:var(--fs-066)}
#sign .gate-flow-slim .chart-note{margin-top:6px}

/* ---- t46 六类套餐框架 ---- */
.tiergrid.tiergrid-six>*{grid-column:span 2}
.tiergrid.tiergrid-six>*:nth-child(4){grid-column:span 2}
@media(max-width:1100px){
  .tiergrid.tiergrid-six>*:last-child{grid-column:auto;justify-self:stretch;width:auto}
}
.plan .price-tbd b{font-size:var(--fs-140,1.4rem);letter-spacing:0}
.plan .price-tbd i{display:block;font-style:normal;font-size:var(--fs-072);color:var(--text-3)}
.plan .dlv b{font-size:var(--fs-090);line-height:1.25;word-break:keep-all}
.matrix.meter6 td,.matrix.meter6 th{font-size:var(--fs-078);vertical-align:top}
.matrix.meter6 .mt-unit{font-size:var(--fs-066);color:var(--text-3)}
.matrix.meter6 td.qty{color:var(--text-2)}
.acc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:var(--block-mt)}
@media(max-width:900px){.acc-grid{grid-template-columns:1fr}}
.acc-d{border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface);padding:12px 14px}
.acc-d summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;align-items:baseline;list-style:none}
.acc-d summary::-webkit-details-marker{display:none}
.acc-d summary span{font-size:var(--fs-070);color:var(--accent2);font-family:var(--mono)}
.acc-d[open]{border-color:var(--border-hi)}
.acc-d p{margin:10px 0 0;font-size:var(--fs-080);color:var(--text-2);line-height:1.65}
.legacy5-d{border:1px dashed var(--border-hi);border-radius:var(--r-6);padding:14px 16px;background:var(--surface)}
.legacy5-d>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:10px;align-items:baseline}
.legacy5-d>summary span{font-size:var(--fs-072);color:var(--text-3)}
.legacy5-d .sec{padding-left:0;padding-right:0}
.hpr-rail.hpr-six{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1100px){.hpr-rail.hpr-six{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.hpr-rail.hpr-six{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== t47 · 六类服务订阅对照表(主表) ===== */
.anchor6{display:block;position:relative;top:-80px;height:0}
.svc6-bar{display:flex;flex-direction:column;gap:8px;margin:18px 0 12px;font-size:13px}
.svc6-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.svc6-row>span{color:var(--muted,#8a94a6);margin-right:4px}
.svc6-q{min-width:180px;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:inherit;font:inherit}
.svc6-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted,#8a94a6);font-size:12px}
.svc6-legend .lg{font-style:normal;padding:2px 8px;border-radius:6px}
.svc6-wrap{overflow:auto;max-height:78vh;-webkit-overflow-scrolling:touch}
table.svc6{min-width:980px;border-collapse:separate;border-spacing:0;font-size:13px}
table.svc6 thead th{position:sticky;top:0;z-index:3;background:var(--bg2,#0d1220);vertical-align:top;text-align:center;padding:10px 8px;min-width:118px}
table.svc6 thead th b{display:block;font-size:14px}
table.svc6 thead th span{display:block;font-size:11px;font-weight:400;color:var(--muted,#8a94a6);line-height:1.5}
table.svc6 thead th .h-fee{color:#d9b45a}
table.svc6 .h0,table.svc6 td.n6{position:sticky;left:0;z-index:2;background:var(--bg,#0a0e18);text-align:left;min-width:260px;max-width:320px}
table.svc6 thead .h0{z-index:4;background:var(--bg2,#0d1220)}
table.svc6 tr.g6 th{position:sticky;left:0;text-align:left;background:rgba(217,180,90,.10);padding:0}
table.svc6 .g6-t{all:unset;cursor:pointer;display:block;padding:8px 12px;font-weight:700;color:#d9b45a}
table.svc6 .g6-t[aria-expanded="false"]::after{content:" ▸ 已收起";font-weight:400;opacity:.7}
table.svc6 tbody tr.r6:nth-child(even) td{background-color:rgba(255,255,255,.025)}
table.svc6 tr.r6 td.n6{background:var(--bg,#0a0e18)}
table.svc6 td{padding:8px;border-bottom:1px solid rgba(255,255,255,.06);text-align:center}
table.svc6 .no6{opacity:.5;font-variant-numeric:tabular-nums;margin-right:2px}
table.svc6 .u6{display:block;font-size:11px;color:var(--muted,#8a94a6);margin-top:2px}
table.svc6 .rk{font-style:normal;font-size:10px;padding:1px 6px;border-radius:4px;margin-left:6px;border:1px solid currentColor;opacity:.8}
table.svc6 .d6{all:unset;cursor:pointer;display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;border-radius:4px;border:1px solid rgba(255,255,255,.25);margin-right:6px;font-size:12px}
table.svc6 tr.sub6 td.n6{padding-left:34px;font-size:12px}
table.svc6 tr.x6 td{text-align:left;background:rgba(80,160,255,.05);font-size:12px;line-height:1.7}
table.svc6 .x6-old{color:var(--muted,#8a94a6)}
.c6.in,.lg.in{color:#3ad29f}
.c6.qty,.lg.qty{color:#7cc4ff}
.c6.opt,.lg.opt{color:#f0c060}
.c6.no,.lg.no{color:rgba(255,255,255,.35)}
.c6.cus,.lg.cus{color:#c9a0ff}
.c6.rule,.lg.rule{color:#ff9f80}
.c6.ext{color:#ff9f80;font-size:12px}
.c6.sum{color:rgba(255,255,255,.45);font-size:12px}
.svc6-legend .lg{background:rgba(255,255,255,.05)}
.fx.f{background:rgba(255,160,60,.18);color:#ffb060}
.fx.x{background:rgba(255,100,100,.16);color:#ff8f8f}
table.svc6[data-col]:not([data-col="all"]) td.c6{opacity:.35}
table.svc6[data-col="start"] [data-k="start"],table.svc6[data-col="grow"] [data-k="grow"],table.svc6[data-col="deep"] [data-k="deep"],table.svc6[data-col="chain"] [data-k="chain"],table.svc6[data-col="flag"] [data-k="flag"],table.svc6[data-col="custom"] [data-k="custom"]{opacity:1!important;background-color:rgba(217,180,90,.08)}
.tiergrid-mini .plan{padding:16px}
.tiergrid-mini .plan .fit{font-size:13px}

/* ===== t48 · 六档明确套餐 ===== */
table.svc6 td.c6.in{color:var(--text,#e8edf5)}
table.svc6 .ck{display:block;font-size:20px;line-height:1;color:#3ad29f;font-weight:800}
table.svc6 .q6{display:block;font-size:12px;margin-top:3px;line-height:1.45;color:var(--text,#e8edf5)}
table.svc6 td.c6.no{color:rgba(255,255,255,.3);font-size:18px}
table.svc6 thead th .h-fee{font-size:15px;font-weight:700}
table.addon6,table.alloc6{font-size:12.5px;width:100%}
table.addon6 td.ap{color:#d9b45a;white-space:nowrap;font-weight:600}
.setup6{display:grid;gap:10px;font-size:12.5px}
.setup6 ul{margin:4px 0 0 18px;padding:0}
.rules6{font-size:13px;line-height:1.75;padding-left:20px;margin:8px 0 12px}
.tiergrid-mini .plan .price b{font-size:26px}

/* ===== t49 · 订阅主表表头不透明 / 层级修正 =====
   根因:通用 .matrix 规则 th:nth-child(4) 给第 3 档列半透明高亮(特异性高于 svc6 表头规则),
   选列规则又用半透明 background-color 覆盖 th → sticky 表头透出滚过的正文。 */
table.matrix.svc6 thead th,
table.matrix.svc6 thead th:nth-child(n){background:#0d131c!important;background-image:none!important;opacity:1!important;
  position:sticky;top:0;z-index:5;padding:10px 10px 9px;line-height:1.35;vertical-align:top;box-shadow:inset 0 -1px 0 rgba(217,180,90,.35)}
table.matrix.svc6 thead th.h0{left:0;z-index:7}
table.matrix.svc6 thead th b{display:block;line-height:1.3;margin:0}
table.matrix.svc6 thead th span{display:block;margin:2px 0 0;line-height:1.35;white-space:nowrap}
table.matrix.svc6 td:nth-child(n){background-color:transparent}
table.matrix.svc6 td.n6{background:var(--bg,#07090e)!important;z-index:3}
table.matrix.svc6 tr.g6 th{z-index:4;background:#15140f!important}
table.matrix.svc6 tbody tr.r6:nth-child(even) td.c6{background-color:rgba(255,255,255,.025)}
/* 选列:表头用不透明金色描边,正文格淡色,不改变层级 */
table.matrix.svc6[data-col]:not([data-col="all"]) td.c6{opacity:.4}
table.matrix.svc6[data-col="start"] td[data-k="start"],table.matrix.svc6[data-col="grow"] td[data-k="grow"],table.matrix.svc6[data-col="deep"] td[data-k="deep"],
table.matrix.svc6[data-col="chain"] td[data-k="chain"],table.matrix.svc6[data-col="flag"] td[data-k="flag"],table.matrix.svc6[data-col="scale"] td[data-k="scale"]{opacity:1!important;background-color:rgba(217,180,90,.07)!important}
table.matrix.svc6[data-col="start"] th[data-k="start"],table.matrix.svc6[data-col="grow"] th[data-k="grow"],table.matrix.svc6[data-col="deep"] th[data-k="deep"],
table.matrix.svc6[data-col="chain"] th[data-k="chain"],table.matrix.svc6[data-col="flag"] th[data-k="flag"],table.matrix.svc6[data-col="scale"] th[data-k="scale"]{background:#1b1910!important;box-shadow:inset 0 2px 0 #d9b45a,inset 0 -1px 0 rgba(217,180,90,.5)}
.svc6-wrap{overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}

/* ===== t50 · 订阅主表顶部漏缝 =====
   根因:.matrix-wrap(含 svc6-wrap,即表格的滚动容器)有 padding:var(--panel-pad)。
   sticky 的约束矩形 = 滚动视口减去容器 padding,thead 只能粘在视口顶部下方 panel-pad 处,
   这条缝里正文行(如 10 抖音 POI…与 ✓)照常滚过、露出。首列 left:0 同理左侧有缝。
   修正:滚动容器 padding 归零(间距改由外层 margin 提供),表头与首列贴视口边缘。 */
.matrix-wrap.svc6-wrap,
.sec .matrix-wrap.svc6-wrap{padding:0 !important;scroll-padding:0;border:1px solid var(--border);border-radius:var(--r-7);background:var(--bg,#07090e)}
table.matrix.svc6{margin:0;border-collapse:separate;border-spacing:0}
table.matrix.svc6 thead th{top:0 !important;border-top:0}

/* ===== t51 · 六档首次应付摘要(表外,不影响 sticky) ===== */
.pay6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:16px 0 6px}
.pay6 .py{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface,#121920);font-size:12px;line-height:1.5;display:flex;flex-direction:column}
.pay6 .py b{font-size:13px}
.pay6 .py span{color:var(--text-3,#8a94a6)}
.pay6 .py strong{color:#d9b45a;font-size:14px;margin-top:2px}
.pay6-note{font-size:12px;color:var(--text-3,#8a94a6);text-align:center;margin:0 0 8px}
@media (max-width:900px){.pay6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.pay6{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== 六档合并卡 + 成本结构可交互对照 (2026-11) ===== */
.tier6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0 10px}
@media(max-width:1180px){.tier6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.tier6{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.t6{display:flex;flex-direction:column;gap:5px;padding:14px 13px 13px;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface2);text-decoration:none;transition:border-color var(--t-base),transform var(--t-base)}
.t6:hover{border-color:var(--tint-a2-400);transform:translateY(-2px)}
.t6:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
.t6-no{font-family:var(--mono);font-size:.7rem;color:var(--accent2);letter-spacing:.04em}
.t6-tag{font-size:.66rem;color:var(--text-3);border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 7px;align-self:flex-start}
.t6-name{font-size:.95rem;color:var(--text);font-weight:600;line-height:1.3}
.t6-fit{font-family:var(--mono);font-size:.74rem;color:var(--text-2)}
.t6-price{font-family:var(--mono);font-size:1.22rem;color:var(--text);font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums;margin-top:2px}
.t6-price i{font-style:normal;font-size:.66rem;color:var(--text-3);margin-left:4px;font-family:var(--sans);font-weight:400}
.t6-sub{font-size:.72rem;color:var(--text-3);line-height:1.55}
.t6-sub b{color:var(--text-2);font-variant-numeric:tabular-nums}
.t6-for{font-size:.76rem;color:var(--text-2);line-height:1.5;margin-top:auto;padding-top:8px;border-top:1px dashed var(--border)}

.cost-viz{margin:20px 0 8px;padding:16px;border:1px solid var(--border);border-radius:var(--r-6);background:var(--surface)}
.cv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.cv-title{font-size:.95rem;font-weight:600;color:var(--text);margin:0}
.cv-desc{font-size:.78rem;color:var(--text-3);line-height:1.65;margin:6px 0 0;max-width:640px}
.cv-seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--bg2)}
.cv-btn{border:0;background:transparent;color:var(--text-2);font-size:.76rem;padding:7px 12px;min-height:34px;border-radius:var(--r-pill);cursor:pointer;transition:color var(--t-base),background var(--t-base);font-family:var(--sans)}
.cv-btn.on{background:var(--tint-a2-150);color:var(--accent2)}
.cv-btn:hover{color:var(--text)}
.cv-grid{display:grid;grid-template-columns:1.6fr .85fr;gap:20px;margin-top:16px;align-items:start}
@media(max-width:900px){.cv-grid{grid-template-columns:1fr;gap:14px}}
.cv-axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem;color:var(--text-3);margin-bottom:8px}
.cv-rows{display:flex;flex-direction:column;gap:7px}
.cv-row{display:grid;grid-template-columns:104px minmax(0,1fr) 76px;align-items:center;gap:10px;padding:4px 0;border-radius:var(--r-2)}
.cv-row.on .cv-name{color:var(--accent2)}
.cv-name{font-size:.82rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-track{position:relative;height:20px;min-width:0;background-image:linear-gradient(to right,rgba(255,255,255,.07) 1px,transparent 1px);background-size:25% 100%;background-position:0 0}
.cv-bar{position:absolute;left:0;top:4px;height:12px;border-radius:2px;background:rgba(78,182,194,.38);transition:width .35s cubic-bezier(.2,.7,.3,1),background .2s}
.cv-row.on .cv-bar{background:var(--accent2)}
.cv-val{font-family:var(--mono);font-size:.8rem;color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums}
.cv-row.on .cv-val{color:var(--text)}
.cv-panel{border-left:1px solid var(--border);padding-left:18px;min-width:0}
@media(max-width:900px){.cv-panel{border-left:0;border-top:1px solid var(--border);padding:14px 0 0}}
.cv-plabel{display:block;font-size:.72rem;color:var(--text-3);margin-bottom:4px}
.cv-slider{display:flex;align-items:center;gap:10px}
.cv-slider input[type=range]{flex:1 1 auto;min-width:0;accent-color:var(--accent2);height:34px;background:transparent}
.cv-pnum{font-family:var(--mono);font-size:1.35rem;color:var(--text);font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.cv-punit{font-size:.72rem;color:var(--text-3)}
.cv-rec{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.cv-rec b{font-size:.9rem;color:var(--text)}
.cv-rec span{font-size:.74rem;color:var(--text-2);line-height:1.6}
.cv-rec em{font-style:normal;font-family:var(--mono);color:var(--accent2);font-variant-numeric:tabular-nums}
.cv-formula{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border);font-size:.72rem;color:var(--text-3);line-height:1.6}
.cv-note{margin:14px 0 0;padding-top:10px;border-top:1px dashed var(--border);font-size:.72rem;color:var(--text-3);line-height:1.65}

.cv-ticks{display:grid;grid-template-columns:104px minmax(0,1fr) 76px;gap:10px;margin-bottom:4px}
.cv-ticks i{grid-column:2;display:grid;grid-template-columns:repeat(5,1fr);font-style:normal;font-family:var(--mono);font-size:.7rem;color:var(--text-3)}
.cv-ticks i span{position:relative;text-align:left}
.cv-ticks i span::before{content:"";position:absolute;left:0;top:14px;width:1px;height:6px;background:rgba(255,255,255,.14)}
.cv-ticks i span:last-child{text-align:right}
.cv-ticks i span:last-child::before{left:auto;right:0}
.cv-caption em{font-style:normal;font-family:var(--mono);color:var(--accent2)}
.cv-caption{margin:10px 0 0;font-size:.8rem;color:var(--text-2);line-height:1.65;padding-left:114px}
@media(max-width:640px){.cv-caption{padding-left:0}}

.cv-legend{margin-left:auto;font-size:.66rem;color:var(--text-3);display:inline-flex;align-items:center;gap:10px}
.cv-legend i{display:inline-block;width:16px;height:8px;border-radius:2px;background:rgba(78,182,194,.38);margin-right:4px;vertical-align:middle}
.cv-legend em{display:inline-block;width:16px;height:8px;border-radius:2px;background:#4EB6C2;margin-right:4px;vertical-align:middle;font-style:normal}

@media(max-width:640px){
 .mod-bar-row{grid-template-columns:86px 1fr 76px;gap:8px}
 .mod-bar-row .mb-k{font-size:.68rem}
 .mod-heat .mh-row .mh-k{font-size:.66rem}
}

.cv-curve{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border)}
.cv-curve-h{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.cv-curve-h{flex-wrap:wrap}
.cv-curve-h b{font-size:.78rem;color:var(--text);white-space:nowrap}
.cv-curve-h span{font-size:.68rem;color:var(--text-3)}
.cv-curve-box svg{width:100%;height:auto;display:block;overflow:visible}
.cv-ax{stroke:var(--border);stroke-width:1}
.cv-l1{fill:none;stroke:#4EB6C2;stroke-width:2;stroke-linejoin:round}
.cv-dot{fill:#4EB6C2;stroke:#0b0f14;stroke-width:1.5}
.cv-tip{fill:#e6e9ee;font-family:var(--mono);font-size:8.5px}
.cv-xt,.cv-yt{fill:var(--text-3);font-family:var(--mono);font-size:8px}
.cv-curve-l{display:flex;gap:14px;margin-top:4px;font-size:.66rem;color:var(--text-3);align-items:center}
.cv-curve-l i{display:inline-block;width:16px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle}
.cv-curve-l .l1{background:#4EB6C2}
.cv-curve-l .l2{background:repeating-linear-gradient(90deg,rgba(255,255,255,.4) 0 4px,transparent 4px 8px)}
.cv-ax2{stroke:var(--border);stroke-width:1;stroke-dasharray:2 5;opacity:.6}
/* 窄屏防溢出：grid 列可收缩 + 宽表容器不撑页面 */
@media(max-width:760px){
  .g2,.g3,.g4,.g5,.grid2,.team,.stats{grid-template-columns:minmax(0,1fr)}
  .g2>*,.g3>*,.g4>*,.g5>*,.grid2>*{min-width:0}
  .matrix-wrap{width:100%;max-width:100%;min-width:0}
  .hud-panel{max-width:100%;min-width:0}
}

/* 成本图表窄屏：缩刻度列、只留首尾刻度、图例换行 */
@media(max-width:640px){
  .cv-ticks{grid-template-columns:88px minmax(0,1fr) 66px;gap:6px}
  .cv-ticks i{font-size:.6rem;grid-template-columns:1fr 1fr}
  .cv-ticks i span:nth-child(2),.cv-ticks i span:nth-child(3),.cv-ticks i span:nth-child(4){display:none}
  .cv-ticks i span:first-child{text-align:left}
  .cv-ticks i span:last-child{text-align:right}
  .cv-legend{flex-wrap:wrap;margin-left:0;gap:6px 12px;font-size:.62rem}
  .cv-curve-h{flex-direction:column;gap:2px;align-items:flex-start}
  .cv-curve-h span{font-size:.64rem}
  .cv-curve-l{font-size:.62rem;line-height:1.5}
}

/* ===== 选档三问 + 加购自选（2026-11 价格体系） ===== */
.qp{margin-top:20px;padding:16px 18px;border:1px solid var(--line,rgba(255,255,255,.12));background:var(--panel,rgba(255,255,255,.03));border-radius:14px}
.qp-h{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap;margin-bottom:12px}
.qp-h b{font-size:15px;letter-spacing:.02em}
.qp-h span{font-size:12px;color:var(--muted,#9aa3ad)}
.qp-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.qp-row label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted,#9aa3ad)}
.qp-row select{width:100%;min-height:40px;padding:8px 10px;border-radius:10px;border:1px solid var(--line,rgba(255,255,255,.14));background:var(--bg,#0d1117);color:var(--text,#e8eaed);font-size:14px}
.qp-out{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line,rgba(255,255,255,.12));font-size:14px;line-height:1.7}
.qp-out b{color:var(--accent2,#7fd4ff)}
.qp-out a{color:var(--accent2,#7fd4ff);text-decoration:none;border-bottom:1px solid currentColor;margin-left:8px;font-size:13px}
@media(max-width:720px){.qp-row{grid-template-columns:1fr}}

.ac{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;margin-top:20px;align-items:start}
.ac-main{min-width:0}
.ac-tier{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:13px;color:var(--muted,#9aa3ad)}
.ac-tier select{min-height:40px;padding:8px 10px;border-radius:10px;border:1px solid var(--line,rgba(255,255,255,.14));background:var(--bg,#0d1117);color:var(--text,#e8eaed);font-size:14px}
.ac-tier span{font-family:var(--mono,ui-monospace,monospace);font-size:12px}
.ac-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ac-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line,rgba(255,255,255,.1));border-radius:10px;background:rgba(255,255,255,.02);min-width:0}
.ac-item label{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1;cursor:pointer}
.ac-item input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--accent2,#7fd4ff);flex:0 0 auto}
.ac-item .ac-n{display:block;font-size:13px;line-height:1.45}
.ac-item .ac-tip{display:block;font-size:11px;color:var(--muted,#9aa3ad);line-height:1.45;margin-top:2px}
.ac-q{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.ac-q input{width:46px;min-height:34px;text-align:center;border-radius:8px;border:1px solid var(--line,rgba(255,255,255,.14));background:var(--bg,#0d1117);color:var(--text,#e8eaed);font-size:13px}
.ac-q span{font-size:11px;color:var(--muted,#9aa3ad)}
.ac-q b{font-family:var(--mono,ui-monospace,monospace);font-size:12px;min-width:62px;text-align:right}
.ac-side{position:sticky;top:16px;padding:16px;border:1px solid var(--line,rgba(255,255,255,.14));border-radius:14px;background:var(--panel,rgba(255,255,255,.04))}
.ac-line{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:6px 0;color:var(--muted,#9aa3ad)}
.ac-line b{font-family:var(--mono,ui-monospace,monospace);color:var(--text,#e8eaed)}
.ac-total{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line,rgba(255,255,255,.16));font-size:14px}
.ac-total b{font-family:var(--mono,ui-monospace,monospace);font-size:22px;color:var(--accent2,#7fd4ff)}
.ac-note{font-size:11px;line-height:1.6;color:var(--muted,#9aa3ad);margin:10px 0}
.ac-btns{display:flex;gap:8px;flex-wrap:wrap}
.ac-btns .btn{flex:1;min-height:42px;font-size:12px;padding:0 8px;white-space:nowrap}
.ac-out{margin-top:12px;padding:10px;border:1px dashed var(--line,rgba(255,255,255,.16));border-radius:10px;font-size:12px;line-height:1.6;white-space:pre-wrap;max-height:220px;overflow:auto;color:var(--muted,#9aa3ad)}
@media(max-width:900px){.ac{display:flex;flex-direction:column}.ac-main{display:contents}.ac-tier{order:1}.ac-side{order:2;position:static}.ac-list{order:3;grid-template-columns:1fr}.ac-btns .btn{font-size:12px;padding:0 8px;white-space:nowrap}}

/* 窄屏数字员工驾驶舱：避免 grid 子项 min-content 撑破 390 */
@media(max-width:960px){
  .dcc-grid{grid-template-columns:minmax(0,1fr)}
  .dcc-card{min-width:0}
  #cockpit .dcc-card{overflow:hidden}
  #cockpit .dcc-radar{max-width:100%;margin-left:0;margin-right:0}
  #cockpit .dcc-head,#cockpit .chart-meta{min-width:0;flex-wrap:wrap}
}

/* ============================================================
   Round-14 · 全站图表化与窄屏修复
   新增：保障量化 / 数字员工工作室 / 直播排期 / 依据条形 /
   复核瀑布 / 底稿时点 / 六档交付量 / 首响时钟
   ============================================================ */

/* ---------- 0. 首页两处判定为不合格的区块 ---------- */
.hook-pulse{max-width:820px}
.hook-pulse .hp-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hook-pulse .hp-cell{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;
  gap:4px;min-width:0;text-align:left;
}
.hook-pulse .hp-cell b{
  font-size:clamp(1.9rem,3.2vw,2.9rem);line-height:1.05;letter-spacing:-.03em;
  max-width:100%;white-space:nowrap;
}
.hook-pulse .hp-cell span{
  display:block;width:100%;font-size:.78rem;line-height:1.55;letter-spacing:0;
  text-align:left;text-wrap:pretty;overflow-wrap:break-word;
}

/* ≤1100：不再用 400×316 的绝对坐标画布；改「主张页签 → 明细」单列，
   彻底消除圆环越界压住节点文字。 */
@media(max-width:1100px){
  .why-map{display:flex;flex-direction:column}
  .why-map .chart-meta{order:0}
  .wm-stage{display:contents}
  .wm-viz{display:none}
  .wm-tabs{
    order:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;margin:16px 0 4px;
  }
  .wm-tab{width:100%;min-width:0;justify-content:flex-start;text-align:left;white-space:normal}
  .wm-detail{order:2;margin-top:0}
  .why-map>.chart-note{order:3}
}
@media(max-width:420px){
  .hook-pulse .hp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- 1. 通用图表壳层 ---------- */
.gz-chart,.studio-wrap,.live-sched,.evi-chart,.docline,.deliv-viz,.reply-clock{
  border:1px solid var(--border);border-radius:var(--r-5);
  background:linear-gradient(180deg,rgba(78,182,194,.035),transparent 46%),var(--surface);
}
.gz-chart,.studio-main,.live-sched,.deliv-viz,.reply-clock{padding:20px}
.gz-chart,.live-sched,.deliv-viz,.reply-clock{position:relative;overflow:hidden}
.chart-meta b{color:var(--text)}
.gz-chart .chart-meta,.live-sched .chart-meta,.deliv-viz .chart-meta,.reply-clock .chart-meta{margin-bottom:14px}

/* ---------- 2. 合作保障 · 量化边界 ---------- */
.gz-viz{display:grid;gap:18px;margin:26px 0 0}
.gz-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gz-kpi{
  padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-4);
  background:rgba(7,10,18,.35);
}
.gz-kpi b{display:flex;align-items:baseline;gap:3px;font-family:var(--mono);font-size:1.72rem;line-height:1;color:var(--accent-ink)}
.gz-kpi b small{font-size:.68rem;color:var(--text-2);font-weight:500}
.gz-kpi span{display:block;margin-top:7px;font-size:.76rem;color:var(--text-2);line-height:1.5}
.gz-switch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.gz-tab{
  appearance:none;border:1px solid var(--border);background:transparent;color:var(--text-2);
  border-radius:999px;padding:8px 16px;font:inherit;font-size:.82rem;cursor:pointer;
  transition:border-color .18s,background .18s,color .18s;
}
.gz-tab.on{border-color:var(--accent2);background:rgba(78,182,194,.12);color:var(--text)}
.gz-axis{display:flex;justify-content:space-between;gap:8px;margin:0 0 8px 160px;font-family:var(--mono);font-size:.66rem;color:var(--text-3)}
.gz-axis span{position:relative}
.gz-stack{display:grid;gap:8px}
.gz-row{
  appearance:none;border:1px solid transparent;background:transparent;
  display:grid;grid-template-columns:160px minmax(0,1fr) 82px;grid-template-areas:"lab track n";
  align-items:center;gap:12px;padding:8px 6px;border-radius:8px;text-align:left;
  color:var(--text);font:inherit;cursor:pointer;min-width:0;
  transition:background .16s,border-color .16s;
}
.gz-row:hover,.gz-row.on{background:rgba(78,182,194,.06);border-color:rgba(78,182,194,.18)}
.gz-lab{grid-area:lab;min-width:0}
.gz-lab b{display:block;font-size:.88rem;line-height:1.35;color:var(--text)}
.gz-lab small{display:block;margin-top:3px;font-size:.7rem;line-height:1.4;color:var(--text-3);font-family:var(--mono)}
.gz-track{
  grid-area:track;position:relative;height:12px;border-radius:3px;
  background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  min-width:0;
}
.gz-track i{
  position:absolute;left:0;top:0;bottom:0;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent2));
  box-shadow:0 0 0 1px rgba(184,149,74,.1) inset;
  transition:width .72s cubic-bezier(.2,.7,.2,1);
}
.gz-track em{
  position:absolute;top:-5px;bottom:-5px;width:1px;background:var(--accent-ink);
  opacity:.65;pointer-events:none;
}
.gz-track em::after{
  content:"90%";position:absolute;top:-15px;left:-9px;font-family:var(--mono);font-size:.58rem;color:var(--accent-ink);white-space:nowrap;
}
.gz-n{grid-area:n;text-align:right;font-family:var(--mono);font-size:.78rem;color:var(--text);white-space:nowrap}
.gz-n b{font-size:1.06rem;color:var(--accent-ink)}
.gz-n small{display:block;font-size:.62rem;color:var(--text-3)}
.gz-read{
  margin-top:14px;padding:14px 16px;border-left:2px solid var(--accent);
  background:rgba(7,10,18,.38);border-radius:0 8px 8px 0;
}
.gz-read b{display:block;font-size:.9rem;color:var(--text)}
.gz-read p{margin:6px 0 0;font-size:.82rem;line-height:1.7;color:var(--text-2)}
.gz-read small{display:block;margin-top:7px;font-size:.72rem;line-height:1.6;color:var(--text-3)}
.gz-terms{padding:20px;border:1px solid var(--border);border-radius:var(--r-5);background:var(--surface)}
.gz-term{border-top:1px solid var(--border)}
.gz-term:first-of-type{border-top:0}
.gz-term summary{
  display:flex;align-items:center;gap:10px;padding:12px 0;cursor:pointer;
  list-style:none;color:var(--text);
}
.gz-term summary::-webkit-details-marker{display:none}
.gz-term summary b{font-size:.88rem}
.gz-term summary span{margin-left:auto;font-family:var(--mono);font-size:.66rem;color:var(--text-3);border:1px solid var(--border);border-radius:999px;padding:3px 8px}
.gz-term[open] summary b{color:var(--accent-ink)}
.gz-term p{margin:0 0 14px;padding:0 0 0 2px;font-size:.82rem;line-height:1.75;color:var(--text-2)}

/* ---------- 3. 数字员工 · 工作室 ---------- */
.studio-wrap{
  display:grid;grid-template-columns:300px minmax(0,1fr);gap:0;
  max-width:1020px;margin:30px auto 0;overflow:hidden;
}
.studio-side{
  padding:20px;border-right:1px solid var(--border);
  background:linear-gradient(180deg,rgba(184,149,74,.06),transparent 70%),rgba(7,10,18,.3);
  display:flex;flex-direction:column;gap:10px;min-width:0;
}
.studio-k{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;color:var(--accent-ink);text-transform:uppercase}
.studio-lab{font-size:.8rem;line-height:1.5;color:var(--text-2)}
.studio-side select{
  width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:10px;
  padding:11px 13px;color:var(--text);font-family:var(--sans);font-size:.9rem;
}
.studio-side .btn{width:100%;justify-content:center}
.studio-flow{display:grid;gap:6px;margin-top:6px}
.studio-step{
  display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-areas:"no name" "no small";
  align-items:center;column-gap:9px;padding:8px 10px;border:1px solid transparent;border-radius:8px;
  opacity:.55;transition:opacity .18s,border-color .18s,background .18s;
}
.studio-step b{grid-area:no;font-family:var(--mono);font-size:.74rem;color:var(--text-3);align-self:center}
.studio-step span{grid-area:name;font-size:.8rem;color:var(--text);line-height:1.4}
.studio-step small{grid-area:small;font-size:.64rem;color:var(--text-3);line-height:1.35}
.studio-step.on{opacity:1;border-color:rgba(78,182,194,.22);background:rgba(78,182,194,.07)}
.studio-step.on b{color:var(--accent2)}
.studio-note{font-size:.7rem;line-height:1.6;color:var(--text-3);margin:4px 0 0}
.studio-main{display:flex;flex-direction:column;min-width:0}
.studio-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:12px}
.studio-bar b{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--text-2)}
.studio-bar span{font-family:var(--mono);font-size:.66rem;color:var(--accent2)}
.studio-out{
  margin:0;padding:16px;min-height:230px;max-height:300px;overflow:auto;
  border:1px solid var(--border);border-radius:12px;background:rgba(4,7,12,.55);
  font-family:var(--mono);font-size:.8rem;line-height:1.65;color:#cfe0ff;white-space:pre-wrap;
}
.studio-meter{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:12px}
.studio-meter span{font-size:.7rem;color:var(--text-3)}
.studio-meter i{height:5px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;display:block}
.studio-meter i b{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width .3s}
.studio-meter em{font-family:var(--mono);font-size:.68rem;font-style:normal;color:var(--text-2);white-space:nowrap}
.studio-fine{margin:10px 0 0;font-size:.74rem;line-height:1.6;color:var(--text-3)}

/* ---------- 4. 数字人直播间 · 24h 排期 ---------- */
.live-wrap{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:stretch;margin-top:30px}
.live-phone{position:relative;display:flex;align-items:center;justify-content:center;padding:8px 4px 10px;min-width:0}
.live-demo-tag{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:2;font-family:var(--mono);font-size:.6rem;color:var(--text-3);border:1px solid var(--border);background:var(--bg2);border-radius:999px;padding:4px 9px;white-space:nowrap}
.live-sched{display:flex;flex-direction:column;min-width:0}
.ls-axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.62rem;color:var(--text-3);margin:0 2px 6px}
.ls-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;min-height:96px;align-items:end}
.ls-slot{
  appearance:none;border:1px solid var(--border);border-radius:7px;background:rgba(255,255,255,.025);
  color:var(--text-2);font:inherit;cursor:pointer;padding:8px 5px 7px;min-width:0;
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;gap:6px;
  transition:border-color .18s,background .18s;
}
.ls-slot:hover,.ls-slot.on{border-color:var(--accent2);background:rgba(78,182,194,.08)}
.ls-slot .ls-bar{display:block;height:48px;display:flex;align-items:flex-end}
.ls-slot .ls-bar i{display:block;width:100%;min-height:2px;border-radius:2px 2px 0 0;background:var(--text-3);transition:height .55s cubic-bezier(.2,.7,.2,1)}
.ls-slot[data-tone="on"] .ls-bar i{background:linear-gradient(180deg,var(--accent2),rgba(78,182,194,.35))}
.ls-slot[data-tone="peak"] .ls-bar i{background:linear-gradient(180deg,var(--accent),rgba(184,149,74,.35))}
.ls-slot[data-tone="off"] .ls-bar i{background:rgba(142,157,179,.22)}
.ls-slot b{font-family:var(--mono);font-size:.64rem;font-weight:500;color:var(--text);white-space:nowrap}
.ls-slot small{font-size:.58rem;color:var(--text-3);line-height:1.3;min-height:2.6em}
.ls-detail{margin-top:12px;padding:12px 14px;border-left:2px solid var(--accent2);background:rgba(7,10,18,.35);border-radius:0 8px 8px 0}
.ls-detail b{display:block;font-size:.84rem;color:var(--text)}
.ls-detail span{display:block;margin-top:5px;font-size:.76rem;line-height:1.65;color:var(--text-2)}
.ls-detail small{display:block;margin-top:6px;font-family:var(--mono);font-size:.65rem;color:var(--text-3)}
.live-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}

/* ---------- 5. 方法论 · 依据四类（条形替环形） ---------- */
.evi-chart{padding:20px;min-width:0}
.evi-bars{display:grid;gap:10px;margin-top:6px}
.evi-bar{
  appearance:none;display:block;width:100%;text-align:left;font:inherit;color:var(--text);
  padding:9px 10px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;
  transition:background .18s,border-color .18s,opacity .18s;
}
.evi-bar:hover,.evi-bar.is-on{background:rgba(255,255,255,.035);border-color:rgba(78,182,194,.22)}
.evi-bar.dim{opacity:.35}
.eb-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px}
.eb-top b{font-size:.86rem;line-height:1.3}
.eb-top em{font-family:var(--mono);font-style:normal;font-size:.7rem;color:var(--text-2);white-space:nowrap}
.eb-track{display:block;height:9px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden}
.eb-track i{display:block;height:100%;width:0;border-radius:3px;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.eb-note{display:block;margin-top:6px;font-size:.7rem;line-height:1.45;color:var(--text-3)}
.evi-axis{display:flex;justify-content:space-between;margin:8px 2px 0;font-family:var(--mono);font-size:.6rem;color:var(--text-3)}

/* ---------- 6. 方法论 · 复核瀑布 ---------- */
.au-waterfall{display:grid;gap:4px;margin-top:4px}
.au-row{
  appearance:none;display:grid;grid-template-columns:118px minmax(0,1fr) 64px;
  align-items:center;gap:10px;width:100%;padding:8px 4px;border:1px solid transparent;border-radius:8px;
  background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;min-width:0;
  transition:background .16s,border-color .16s;
}
.au-row:hover,.au-row.on{background:rgba(78,182,194,.06);border-color:rgba(78,182,194,.18)}
.au-lab b{display:block;font-size:.82rem;line-height:1.3}
.au-lab small{display:block;margin-top:2px;font-size:.62rem;color:var(--text-3);font-family:var(--mono)}
.au-track{position:relative;height:16px;border-radius:3px;background:rgba(255,255,255,.05);min-width:0}
.au-track::before{content:"";position:absolute;left:0;top:-2px;bottom:-2px;width:1px;background:rgba(255,255,255,.35)}
.au-track i{position:absolute;top:0;bottom:0;border-radius:2px;transition:left .4s,width .7s cubic-bezier(.2,.7,.2,1)}
.au-n{text-align:right;font-family:var(--mono);font-size:.68rem;color:var(--text-3);white-space:nowrap}
.au-n b{font-size:1rem;color:var(--accent-ink)}
.au-sum{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 2px;padding:10px 12px;border-top:1px dashed var(--border);font-family:var(--mono);font-size:.7rem;color:var(--text-3)}
.au-sum b{font-size:1rem;color:var(--text)}
.au-sum i{font-style:normal;color:var(--accent)}
.au-sum em{font-style:normal;color:var(--text-2)}

/* ---------- 7. 案例 · 六份底稿时点 ---------- */
.docline{padding:20px;margin-top:20px}
.docline-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:relative;margin:14px 0 0}
.docline-track::before{content:"";position:absolute;left:5%;right:5%;top:23px;height:1px;background:rgba(142,157,179,.3)}
.dl-stage{
  appearance:none;position:relative;background:transparent;border:0;border-top:0;
  padding:38px 7px 10px;text-align:left;font:inherit;color:var(--text-2);cursor:pointer;min-width:0;
}
.dl-stage::before{
  content:"";position:absolute;top:17px;left:50%;width:12px;height:12px;border-radius:50%;
  border:1px solid var(--accent2);background:var(--surface);transform:translateX(-50%);
  transition:background .18s,box-shadow .18s;
}
.dl-stage.on::before{background:var(--accent2);box-shadow:0 0 0 4px rgba(78,182,194,.14)}
.dl-stage em{display:block;font-family:var(--mono);font-style:normal;font-size:.6rem;color:var(--text-3);line-height:1.3;margin-bottom:3px}
.dl-stage b{display:block;font-size:.82rem;line-height:1.3;color:var(--text)}
.dl-stage span{display:block;margin-top:3px;font-size:.66rem;line-height:1.4;color:var(--text-3)}
.dl-stage.on b{color:var(--accent-ink)}
.docline-read{margin-top:8px;padding:14px 16px;border-left:2px solid var(--accent);background:rgba(7,10,18,.35);border-radius:0 8px 8px 0}
.dlr-k{font-family:var(--mono);font-size:.64rem;color:var(--accent2);margin-bottom:4px}
.docline-read b{display:block;font-size:.9rem;color:var(--text)}
.docline-read p{margin:5px 0 0;font-size:.8rem;line-height:1.7;color:var(--text-2)}
.docline-read small{display:block;margin-top:7px;font-size:.7rem;line-height:1.6;color:var(--text-3)}
.art-card.doc-on{border-color:var(--accent);box-shadow:0 0 0 1px rgba(184,149,74,.15),var(--elev-sm)}

/* ---------- 8. 价格页 · 六档交付量 ---------- */
.deliv-viz{margin:22px 0 22px}
.deliv-switch{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.deliv-tab{
  appearance:none;border:1px solid var(--border);background:transparent;color:var(--text-2);
  border-radius:999px;padding:7px 12px;font:inherit;font-size:.76rem;cursor:pointer;
  transition:border-color .18s,background .18s,color .18s;
}
.deliv-tab.on{border-color:var(--accent2);background:rgba(78,182,194,.12);color:var(--text)}
.deliv-rows{display:grid;gap:7px}
.dv-row{
  appearance:none;display:grid;grid-template-columns:150px minmax(0,1fr) 92px;
  align-items:center;gap:12px;width:100%;padding:8px 6px;border:1px solid transparent;border-radius:8px;
  background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;min-width:0;
  transition:background .16s,border-color .16s;
}
.dv-row:hover,.dv-row.on{background:rgba(78,182,194,.06);border-color:rgba(78,182,194,.18)}
.dv-k b{font-family:var(--mono);font-size:.7rem;color:var(--accent-ink);margin-right:6px}
.dv-k span{font-size:.8rem}
.dv-k small{display:block;margin-top:2px;font-family:var(--mono);font-size:.62rem;color:var(--text-3)}
.dv-track{height:10px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden;min-width:0}
.dv-track i{display:block;height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--accent2),var(--accent));transition:width .7s cubic-bezier(.2,.7,.2,1)}
.dv-row.on .dv-track i{background:linear-gradient(90deg,var(--accent),var(--accent2))}
.dv-v{text-align:right;font-family:var(--mono);font-size:.7rem;color:var(--text-2);white-space:nowrap}
.dv-v b{font-size:1rem;color:var(--text)}
.deliv-read{margin-top:12px;padding:12px 14px;border-left:2px solid var(--accent2);background:rgba(7,10,18,.35);border-radius:0 8px 8px 0}
.deliv-read b{display:block;font-size:.84rem;color:var(--text)}
.deliv-read span{display:block;margin-top:5px;font-size:.76rem;line-height:1.65;color:var(--text-2)}

/* ---------- 9. 联系页 · 首响时钟 ---------- */
.reply-clock{margin:22px 0 4px}
.rc-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center;margin-bottom:16px}
.rc-tiers{display:flex;gap:6px;flex-wrap:wrap}
.rc-tier{
  appearance:none;border:1px solid var(--border);background:transparent;color:var(--text-2);
  border-radius:999px;padding:7px 11px;font:inherit;font-size:.72rem;cursor:pointer;
}
.rc-tier.on{border-color:var(--accent2);background:rgba(78,182,194,.12);color:var(--text)}
.rc-time{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;font-size:.72rem;color:var(--text-2)}
.rc-time input[type="range"]{width:100%;accent-color:var(--accent2);min-width:0}
.rc-time b{font-family:var(--mono);font-size:.8rem;color:var(--text);white-space:nowrap}
.rc-axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.6rem;color:var(--text-3);margin:0 2px 5px}
.rc-track{position:relative;height:58px;border:1px solid var(--border);border-radius:10px;background:
  linear-gradient(90deg,rgba(255,255,255,.02),rgba(255,255,255,.05) 50%,rgba(255,255,255,.02));overflow:hidden}
.rc-win{position:absolute;top:0;bottom:0;background:rgba(78,182,194,.15);border-left:1px solid rgba(78,182,194,.35);border-right:1px solid rgba(78,182,194,.35)}
.rc-win-label{position:absolute;top:4px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:.54rem;color:var(--accent2);white-space:nowrap}
.rc-now{position:absolute;top:0;bottom:0;width:1px;background:var(--accent);z-index:2}
.rc-now::before{content:"";position:absolute;top:0;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(184,149,74,.15)}
.rc-due{position:absolute;top:18px;bottom:18px;width:8px;border-radius:2px;background:var(--accent2);z-index:2;box-shadow:0 0 0 1px rgba(78,182,194,.2)}
.rc-due::after{content:"承诺首响";position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:.54rem;color:var(--accent2);white-space:nowrap}
.rc-now::after{content:"提交";position:absolute;top:-2px;left:6px;font-family:var(--mono);font-size:.54rem;color:var(--accent);white-space:nowrap}
.rc-read{display:grid;gap:4px;margin-top:12px;padding:12px 14px;border-left:2px solid var(--accent2);background:rgba(7,10,18,.35);border-radius:0 8px 8px 0}
.rc-read b{font-size:.84rem;color:var(--text)}
.rc-read span{font-size:.75rem;line-height:1.65;color:var(--text-2)}

/* ---------- 10. 窄屏 ---------- */
@media(max-width:1000px){
  .studio-wrap{grid-template-columns:1fr}
  .studio-side{border-right:0;border-bottom:1px solid var(--border)}
  .studio-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
  .studio-step{grid-template-columns:1fr;grid-template-areas:"no" "name" "small";gap:3px}
  .live-wrap{grid-template-columns:1fr}
  .live-phone{padding-top:18px}
  .live-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rc-controls{grid-template-columns:1fr}
}
@media(max-width:760px){
  .gz-chart,.studio-main,.live-sched,.deliv-viz,.reply-clock,.docline,.evi-chart{padding:16px}
  .gz-axis{margin-left:0}
  .gz-row{grid-template-columns:1fr 66px;grid-template-areas:"lab n" "track track";gap:6px 10px;padding:10px 6px}
  .gz-track{height:11px}
  .gz-n{text-align:right;align-self:start}
  .gz-term p{font-size:.8rem}
  .studio-flow{grid-template-columns:1fr}
  .studio-step{grid-template-columns:32px minmax(0,1fr);grid-template-areas:"no name" "no small"}
  .studio-out{min-height:220px;max-height:340px}
  .ls-track{min-height:88px;gap:4px}
  .ls-slot{padding:6px 3px}
  .ls-slot b{font-size:.58rem}
  .ls-slot small{display:none}
  .live-stats{grid-template-columns:1fr}
  .evi-bar{padding:9px 8px}
  .eb-top b{font-size:.82rem}
  .au-row{grid-template-columns:96px minmax(0,1fr) 52px;gap:8px}
  .au-lab b{font-size:.76rem}
  .au-track{height:13px}
  .docline-track{grid-template-columns:1fr;margin-top:10px;padding-left:8px}
  .docline-track::before{left:17px;right:auto;top:6px;bottom:6px;width:1px;height:auto}
  .dl-stage{
    display:grid;grid-template-columns:78px minmax(0,1fr);grid-template-areas:"time name" "time note";
    align-items:start;column-gap:10px;padding:9px 0 9px 32px;text-align:left;
  }
  .dl-stage::before{left:11px;top:14px;transform:none;width:10px;height:10px}
  .dl-stage em{grid-area:time;margin:0}
  .dl-stage b{grid-area:name;font-size:.82rem}
  .dl-stage span{grid-area:note;margin-top:1px}
  .dv-row{grid-template-columns:112px minmax(0,1fr) 66px;gap:8px;padding:8px 4px}
  .dv-k span{font-size:.76rem}
  .dv-k small{font-size:.58rem}
  .dv-v b{font-size:.9rem}
  .deliv-switch{gap:5px}
  .deliv-tab{padding:6px 10px;font-size:.72rem}
  .rc-controls{gap:10px}
  .rc-track{height:64px}
  .rc-time{grid-template-columns:1fr;gap:4px}
  .rc-time b{order:1;text-align:right}
  /* 方法论复核表：手机端由横向表改为逐条卡片，避免只露出第一列 */
  #auditTable{display:block;width:100%;table-layout:auto;border:0;background:transparent}
  #auditTable thead{display:none}
  #auditTable tbody{display:block}
  #auditTable tr{display:block;margin:0 0 10px;padding:13px 14px;border:1px solid var(--border);border-radius:10px;background:rgba(7,10,18,.34)}
  #auditTable tr.au-hi{border-color:rgba(184,149,74,.55)}
  #auditTable td{display:block;width:auto;border:0;padding:0;white-space:normal;background:transparent!important}
  #auditTable td:first-child{font-size:.84rem;line-height:1.5;color:var(--text)}
  #auditTable td:nth-child(2){margin-top:6px;font-size:.76rem;line-height:1.7;color:var(--text-2)}
  #auditTable td:nth-child(3){margin-top:8px;font-family:var(--mono);font-size:.68rem;color:var(--accent2)}
  #auditTable td:nth-child(3)::before{content:"处置 · ";color:var(--text-3)}
}
@media(max-width:420px){
  .hook-pulse .hp-cell b{font-size:2rem}
  .gz-kpis{gap:8px}
  .gz-kpi{padding:11px 12px}
  .gz-kpi b{font-size:1.42rem}
  .evi-chart,.docline,.deliv-viz{padding:14px}
  .au-row{grid-template-columns:84px minmax(0,1fr) 46px}
  .au-lab b{font-size:.72rem}
  .au-n b{font-size:.86rem}
  .dv-row{grid-template-columns:96px minmax(0,1fr) 58px}
  .dv-k b{font-size:.64rem}
  .dv-k span{font-size:.72rem}
}

/* ---------- Round-14 追加：收口细节 ---------- */
#hookPulse.hud-panel::before,#hookPulse.hud-panel::after,
#whyMap.hud-panel::before,#whyMap.hud-panel::after{display:none}
.wm-bars{display:none} /* 9 步 / 64 项 / 3 阶段量纲不同,不做同一横轴比较 */
.gz-term summary::after{content:"+";margin-left:8px;font-family:var(--mono);font-size:.78rem;color:var(--text-3)}
.gz-term[open] summary::after{content:"–";color:var(--accent2)}
.live-wrap{align-items:start}
.live-sched{align-self:start}
.ls-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.ls-notes div{padding:10px 11px;border:1px solid var(--border);border-radius:8px;background:rgba(7,10,18,.3)}
.ls-notes b{display:block;font-size:.76rem;color:var(--text)}
.ls-notes span{display:block;margin-top:3px;font-size:.68rem;line-height:1.55;color:var(--text-3)}
.ls-more{display:flex;gap:10px;margin-top:10px;padding:10px 12px;border-left:2px solid var(--accent);background:rgba(7,10,18,.3);border-radius:0 8px 8px 0}
.ls-more b{font-size:.72rem;color:var(--accent-ink);white-space:nowrap}
.ls-more span{font-size:.7rem;line-height:1.6;color:var(--text-2)}
@media(max-width:760px){
 .ls-notes{grid-template-columns:1fr}
 .ls-more{flex-direction:column;gap:3px}
}
@media(max-width:760px){
 .wm-detail .wm-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .wm-detail .wm-metrics .wm-metric:nth-child(3){grid-column:1/-1}
}
.live-stats{max-width:none;width:100%}
@media(max-width:1100px){
 .funnel .hf-live{display:none}
}
@media(max-width:1100px){
 .funnel .hf-meta,.funnel .hf-note{display:none}
}

/* ============================================================
   Round-15 · 专业版面系统
   页首索引栏 / 联系方式全宽 / 预约与 FAQ 双栏 /
   证据图全宽 / 加购双栏配平 / 首页 KPI 通栏
   ============================================================ */

/* ---------- 1. 版面字号节奏（只动标题与首屏导语，不改正文密度） ---------- */
.page-hero h1{font-size:clamp(2.2rem,2.55vw,2.6rem);line-height:1.1;letter-spacing:-.015em}
.page-hero .lead{font-size:clamp(1.02rem,1.08vw,1.12rem);line-height:1.78;max-width:780px}
.sec-t{font-size:clamp(1.9rem,2.5vw,2.6rem);line-height:1.18}

/* ---------- 2. 页首右侧索引栏：把单侧堆积的 hero 拉回双栏 ---------- */
.page-hero.hero-split .wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;column-gap:56px;align-items:start}
.page-hero.hero-split .wrap > :not(.hero-rail){grid-column:1;min-width:0}
.page-hero.hero-split .bench{max-width:100% !important}
.hero-rail{
  grid-column:2;grid-row:1/7;align-self:center;min-width:0;
  padding:24px 0 24px 26px;border-left:1px solid var(--border);
}
.hero-rail .hr-top{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding-bottom:14px;border-bottom:1px solid var(--border);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--text-3);
}
.hero-rail .hr-top b{color:var(--text-2);font-weight:600}
.hero-rail > a{
  display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:12px;padding:15px 0;border-bottom:1px solid var(--border);
  text-decoration:none;transition:var(--t-fast);
}
.hero-rail > a i{
  grid-row:1/3;align-self:start;font-style:normal;padding-top:3px;
  font-family:var(--mono);font-size:.7rem;color:var(--accent);
}
.hero-rail > a b{font-size:.95rem;line-height:1.35;color:var(--text);transition:var(--t-fast)}
.hero-rail > a span{font-size:.78rem;line-height:1.55;color:var(--text-3);margin-top:3px}
.hero-rail > a:hover b{color:var(--accent2)}
.hero-rail .hr-foot{margin-top:16px;font-size:.72rem;line-height:1.7;color:var(--text-3)}

/* ---------- 3. 首页「本页已写结构数」由窄卡改通栏 ---------- */
.hook-pulse{max-width:none}
.hook-pulse .hp-grid{gap:18px}
.hook-pulse .hp-cell b{font-size:clamp(2.2rem,3.6vw,3.4rem)}

/* ---------- 4. 联系方式：4 张主卡 + 双栏预约 + 双栏 FAQ ---------- */
.contact-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}
.contact-cards .card{
  padding:18px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;
  min-width:0;
}
.contact-cards .ic{margin:0 0 14px;width:34px;height:34px;font-size:.85rem}
.contact-cards h3{font-size:1rem;margin:0 0 6px}
.contact-cards p{font-size:.9rem;line-height:1.6;margin:0}
.contact-cards .pbtn{width:100%;margin-top:12px !important}

.book-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:56px;align-items:start}
.book-aside{min-width:0;padding-top:8px}
.book-lead{margin:14px 0 22px;max-width:34em;font-size:1rem;line-height:1.8;color:var(--text-2)}
.book-steps{list-style:none;counter-reset:bs;margin:0 0 26px;padding:0;border-top:1px solid var(--border)}
.book-steps li{
  counter-increment:bs;display:grid;grid-template-columns:34px minmax(0,1fr);
  column-gap:10px;padding:14px 0;border-bottom:1px solid var(--border);
}
.book-steps li::before{
  content:"0" counter(bs);grid-row:1/3;align-self:start;padding-top:3px;
  font-family:var(--mono);font-size:.72rem;color:var(--accent);
}
.book-steps b{font-size:.92rem;line-height:1.5;color:var(--text)}
.book-steps span{font-size:.82rem;line-height:1.65;color:var(--text-3);margin-top:3px}
.book-call{
  display:block;padding:18px 18px 16px;border:1px solid var(--border);border-radius:14px;
  background:var(--surface);text-decoration:none;transition:var(--t-fast);
}
.book-call:hover{border-color:var(--border-hi)}
.book-call small{display:block;font-size:.72rem;color:var(--text-3);letter-spacing:.04em}
.book-call b{display:block;margin:5px 0 4px;font-family:var(--mono);font-size:1.25rem;color:var(--accent);letter-spacing:.02em}
.book-call span{display:block;font-size:.76rem;line-height:1.6;color:var(--text-3)}
.book-form{min-width:0}
.book-form .card{width:100%;max-width:none;margin:0}

.faq-layout{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:56px;align-items:start}
.faq-aside{min-width:0;position:sticky;top:92px}
.faq-aside .sec-d{max-width:30em;margin:10px 0 20px;text-align:left}
.faq-cta{display:flex;gap:10px;flex-wrap:wrap}
.faq-main{min-width:0}
.faq-main .acc{margin-top:0}

/* ---------- 5. 方法论依据图：从 960 窄框改为整列全宽 ---------- */
#evidence-map .viz-grid{max-width:none;align-items:stretch}
#evidence-map .evi-chart{height:100%}

/* ---------- 6. 服务页承接桥：从一句话+按钮改为横向 CTA 带 ---------- */
.offer-band{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;
  padding:28px 30px;border:1px solid var(--border);border-radius:18px;background:var(--surface);
}
.offer-t{font-size:clamp(1.25rem,1.7vw,1.6rem);line-height:1.35;margin:6px 0 8px;max-width:40em}
.offer-copy p{margin:0;max-width:54em;font-size:.9rem;line-height:1.7;color:var(--text-3)}
.offer-band .btn{white-space:nowrap}

/* ---------- 7. 价格页加购 / 启动费：1.42 : 1 配平，表格不再挤扁右栏 ---------- */
.addon-pair{grid-template-columns:minmax(0,1fr);align-items:start}
.addon-pair > *{min-width:0}
#setupFee .setup6{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}

/* ---------- 8. 断点 ---------- */
@media(max-width:980px){
  .page-hero.hero-split .wrap{display:block}
  .hero-rail{display:none}
  .book-grid,.faq-layout{grid-template-columns:minmax(0,1fr);gap:30px}
  .book-aside,.faq-aside{position:static;padding-top:0}
  .addon-pair{grid-template-columns:minmax(0,1fr)}
  #setupFee .setup6{grid-template-columns:minmax(0,1fr)}
  .offer-band{grid-template-columns:minmax(0,1fr);gap:18px}
  .offer-band .btn{justify-self:start}
}
@media(max-width:900px){
  .contact-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .page-hero h1{font-size:2.05rem}
  .contact-cards{grid-template-columns:minmax(0,1fr);gap:12px}
  .hero-rail{display:none}
}

/* ---------- 9. 品牌标识：ViTo Media 透明反白标（页首 / 页脚） ---------- */
.logo .brand-img{display:block;width:auto;height:40px}
.nav-inner .logo .brand-img{height:40px}
.foot .logo .brand-img{height:34px}
@media(max-width:600px){
  .nav-inner .logo .brand-img{height:36px}
  .foot .logo .brand-img{height:32px}
}
