/* ===== 故障档案馆 · demo2 运维控制台/终端风 ===== */
:root,[data-theme="dark"]{
  --bg:#0a0d0a; --bg-2:#0e120e; --panel:#0c100c; --panel-2:#10160f;
  --text:#cfe8cf; --text-dim:#7fae7f; --text-faint:#4d6b4d;
  --border:#1e3320; --hover-border:#2f5a33;
  --accent:#39d353;            /* 终端绿 */
  --accent-soft:rgba(57,211,83,.1);
  --crit:#ff5c5c; --warn:#fbbf24; --info:#5aa9ff;
  --cat-config:#ff7a7a; --cat-capacity:#fbbf24; --cat-dependency:#5aa9ff;
  --cat-human:#c08bff; --cat-external:#9aa890;
  --shadow:0 0 0 1px var(--border),0 10px 30px rgba(0,0,0,.6);
  --radius:3px;
  --mono:ui-monospace,"JetBrains Mono","SF Mono",Menlo,Consolas,"Courier New",monospace;
  --nav-bg:rgba(10,13,10,.85);
  --ch:70ch;                   /* 正文舒适阅读宽度 */
}
[data-theme="light"]{
  --bg:#f3f6f3; --bg-2:#e8eee8; --panel:#ffffff; --panel-2:#f0f5f0;
  --text:#16241a; --text-dim:#46634c; --text-faint:#8aa890;
  --border:#c2d4c4; --hover-border:#7fae7f;
  --accent:#15803d;
  --accent-soft:rgba(21,128,61,.1);
  --crit:#dc2626; --warn:#b45309; --info:#1d4ed8;
  --cat-config:#dc2626; --cat-capacity:#b45309; --cat-dependency:#1d4ed8;
  --cat-human:#7c3aed; --cat-external:#6b7280;
  --shadow:0 0 0 1px var(--border),0 10px 30px rgba(0,0,0,.1);
  --nav-bg:rgba(243,246,243,.85);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--mono);line-height:1.65;
  -webkit-font-smoothing:antialiased;font-size:15px}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}

/* 扫描线叠层 */
.grain{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.04;
  background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(57,211,83,.5) 2px 3px)}

/* 导航 */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--nav-bg);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);height:54px}
.nav .wrap{display:flex;align-items:center;height:54px;gap:18px}
.nav-logo{font-weight:700;font-size:13.5px;letter-spacing:.5px;color:var(--accent);transition:.2s}
.nav-logo:hover{color:var(--text)}
.nav-logo::before{content:"$ ";color:var(--text-faint)}
.nav-links{display:flex;gap:4px;margin-left:auto}
.nav-links a{padding:8px 14px;font-size:13px;color:var(--text-dim);border:1px solid transparent;border-radius:var(--radius);transition:.2s}
.nav-links a:hover{color:var(--text);border-color:var(--border)}
.nav-links a.active{color:var(--accent);border-color:var(--accent)}
.nav-right{display:flex;align-items:center}
#themeToggle{background:transparent;border:1px solid var(--border);color:var(--text);width:32px;height:32px;
  border-radius:var(--radius);cursor:pointer;font-size:14px}
#themeToggle:hover{border-color:var(--accent);color:var(--accent)}
/* 键盘可达性：聚焦描边 */
a:focus-visible,button:focus-visible,.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}

/* 终端窗口 */
.term{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}
.term-bar{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--panel-2);font-size:12px;color:var(--text-faint)}
.term-bar .dots{display:flex;gap:6px}
.term-bar .dots i{width:10px;height:10px;border-radius:50%;display:block}
.term-bar .dots i:nth-child(1){background:var(--crit)}
.term-bar .dots i:nth-child(2){background:var(--warn)}
.term-bar .dots i:nth-child(3){background:var(--accent)}
.term-bar .path{margin-left:6px}
.term-body{padding:22px 24px;font-size:14px}
.term-body .ln{white-space:pre-wrap;word-break:break-word}
.prompt{color:var(--accent)}
.prompt::before{content:"> "}
.cursor{display:inline-block;width:9px;height:16px;background:var(--accent);vertical-align:middle;animation:blink 1.05s step-end infinite}
@keyframes blink{50%{opacity:0}}

/* 通用 */
.section{padding:72px 0}
/* reveal 改为「加载即淡入」：内容默认可见，不依赖 JS/IntersectionObserver，
   彻底避免超高容器（如 /list 108 行包在 .records.reveal）因 observer 未触发而整块隐形 */
.js .reveal{animation:pmReveal .55s ease both}
@keyframes pmReveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.js .reveal.in{opacity:1;transform:none}
.eyebrow{color:var(--accent);font-size:12px;letter-spacing:1px;margin-bottom:12px;display:block}

/* Hero（首页两栏：终端 + 状态面板） */
.hero{padding:132px 0 76px;border-bottom:1px solid var(--border)}
.hero .wrap{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:stretch}
.hero .term{margin-bottom:0;display:flex;flex-direction:column}
.hero .term-body{flex:1;display:flex;flex-direction:column}
.hero h1{font-size:clamp(30px,5vw,52px);margin:0 0 14px;line-height:1.15;color:var(--text)}
.hero h1 .ac{color:var(--accent)}
.hero-sub{color:var(--text-dim);max-width:560px;margin-top:18px;font-size:14.5px}
.hero-cta{margin-top:auto;padding-top:22px;display:flex;gap:12px;flex-wrap:wrap}
.btn{font-family:var(--mono);font-size:13px;padding:11px 22px;border:1px solid var(--border);background:var(--panel);
  color:var(--text);border-radius:var(--radius);cursor:pointer;transition:.2s}
.btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#04140a;font-weight:700}
.btn.primary:hover{background:transparent;color:var(--accent)}

/* 右侧 system status 面板 */
.sys-status{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);
  display:flex;flex-direction:column;overflow:hidden}
.sys-status .ss-bar{padding:9px 14px;border-bottom:1px solid var(--border);background:var(--panel-2);
  font-size:12px;color:var(--text-faint);display:flex;justify-content:space-between;align-items:center}
.sys-status .ss-bar .live{color:var(--accent);display:flex;align-items:center;gap:6px}
.sys-status .ss-bar .live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 0 var(--accent);animation:pulse 1.8s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(57,211,83,.5)}70%{box-shadow:0 0 0 7px rgba(57,211,83,0)}100%{box-shadow:0 0 0 0 rgba(57,211,83,0)}}
.sys-status .ss-body{padding:8px 16px;display:flex;flex-direction:column;flex:1}
.sys-status .ss-row{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;
  padding:9px 0;border-bottom:1px dashed var(--border)}
.sys-status .ss-row:last-child{border-bottom:none}
.sys-status .k{color:var(--text-faint)}
.sys-status .v{color:var(--text);font-weight:700}
.sys-status .v.ok{color:var(--accent)} .sys-status .v.warn{color:var(--warn)} .sys-status .v.crit{color:var(--crit)}

/* 指标面板 */
.metrics{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-2)}
.metrics .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.metric{padding:26px 24px;border-right:1px solid var(--border)}
.metric:last-child{border-right:none}
.metric .num{color:var(--accent);font-size:clamp(26px,3.5vw,40px);font-weight:700;line-height:1.1}
.metric .lbl{color:var(--text-dim);font-size:12.5px;margin-top:6px}
.metric .num.crit{color:var(--crit)} .metric .num.warn{color:var(--warn)}

/* 章节标题 */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:8px}
.sec-head h2{font-size:clamp(22px,3vw,32px);color:var(--text)}
.sec-head h2::before{content:"## ";color:var(--text-faint)}
.sec-head .meta{color:var(--text-faint);font-size:12px}

/* 最新：日志行（与 list 检索行统一视觉语言） */
.logs{display:grid;gap:12px}
.log{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;position:relative;overflow:hidden;
  border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);
  padding:13px 18px 13px 22px;transition:.25s}
/* severity 色条（与 .rec 一致） */
.log::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:.25s}
.log[data-sev="p0"]::before{background:linear-gradient(180deg,var(--crit),rgba(239,68,68,.45))}
.log[data-sev="p1"]::before{background:linear-gradient(180deg,var(--warn),rgba(245,158,11,.45))}
.log[data-sev="p2"]::before{background:linear-gradient(180deg,var(--info),rgba(96,165,250,.45))}
/* hover：色条加亮 + 行渐变（与 .rec 一致） */
.log:hover{border-color:var(--hover-border);background:linear-gradient(90deg,rgba(57,211,83,.04),transparent 55%)}
.log:hover::before{filter:brightness(1.35);box-shadow:0 0 10px currentColor}
.log .ts{color:var(--text-faint);font-size:12px}
.log .ttl{font-size:15px;color:var(--text);margin-top:4px}
.log .ttl a:hover{color:var(--accent)}
.pm-link{display:inline-block;margin-left:8px;font-size:12px;line-height:1.4;color:var(--accent);border:1px solid var(--accent);border-radius:99px;padding:1px 8px;transition:background .15s,color .15s}
.pm-link:hover{background:var(--accent);color:#04140a}
.log .meta{color:var(--text-dim);font-size:12px;margin-top:6px}
.log .right{text-align:right;white-space:nowrap}

/* 根因类型：命令块 */
.tax{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.tx{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:16px;transition:.2s}
.tx:hover{border-color:var(--hover-border)}
.tx .cmd{color:var(--text-faint);font-size:12px}
.tx .t{color:var(--text);font-size:15px;margin:8px 0 6px;font-weight:700}
.tx .d{color:var(--text-dim);font-size:12px;line-height:1.5}
.tx.c1 .cmd{color:var(--cat-config)} .tx.c2 .cmd{color:var(--cat-capacity)}
.tx.c3 .cmd{color:var(--cat-dependency)} .tx.c4 .cmd{color:var(--cat-human)} .tx.c5 .cmd{color:var(--cat-external)}

/* 检索台 */
.filterbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filterbar .flabel{color:var(--text-faint);font-size:13px}
.filterbar .flabel::before{content:"grep -r "}
.chip{border:1px solid var(--border);background:var(--panel);color:var(--text-dim);padding:7px 14px;border-radius:var(--radius);
  font-size:12.5px;cursor:pointer;transition:.2s}
.chip:hover{border-color:var(--accent);color:var(--text)}
.chip.active{background:var(--accent);border-color:var(--accent);color:#04140a;font-weight:700}
/* 终端风检索输入 */
.q{font-family:var(--mono);font-size:12.5px;background:var(--panel);color:var(--text);
  border:1px solid var(--border);border-radius:var(--radius);padding:7px 12px;min-width:190px;transition:.2s}
.q::placeholder{color:var(--text-faint)}
.q:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.rec-empty{display:none;color:var(--text-faint);font-size:13px;padding:18px;margin-top:14px;
  border:1px dashed var(--border);border-radius:var(--radius);background:var(--panel)}
.rec-count{color:var(--text-faint);font-size:12px;margin:0 0 14px;padding-left:2px}
.rec-count b{color:var(--accent);font-weight:700}
.records{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--panel);overflow:hidden;box-shadow:0 0 60px -20px rgba(57,211,83,.06) inset}
.rec{display:grid;grid-template-columns:4px 1fr;align-items:start;
  position:relative;border-bottom:1px solid rgba(255,255,255,.05);transition:.25s;text-decoration:none}
.rec:last-child{border-bottom:none}
/* severity 色条 */
.rec::before{content:"";width:3px;height:100%;transition:.25s;background:transparent}
.rec[data-sev="p0"]::before{background:linear-gradient(180deg,var(--crit),rgba(239,68,68,.45))}
.rec[data-sev="p1"]::before{background:linear-gradient(180deg,var(--warn),rgba(245,158,11,.45))}
.rec[data-sev="p2"]::before{background:linear-gradient(180deg,var(--info),rgba(96,165,250,.45))}
/* hover：色条加亮 + 行渐变 + 阴影 */
.rec:hover{background:linear-gradient(90deg,rgba(57,211,83,.04),transparent 55%)}
.rec:hover::before{filter:brightness(1.35);box-shadow:0 0 10px currentColor}
/* PMID（标题行前缀） */
.rec .pmid{display:flex;align-items:center;gap:7px;flex:none;
  color:var(--accent);font-size:12px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap;letter-spacing:.3px}
.rec .pmid .sev{width:7px;height:7px;border-radius:50%;flex:none;opacity:.65}
.rec .pmid .sev.p0{background:var(--crit)} .rec .pmid .sev.p1{background:var(--warn)} .rec .pmid .sev.p2{background:var(--info)}
/* 主内容区 */
.rec-main{grid-column:2;padding:11px 18px;display:flex;flex-direction:column;gap:4px;min-width:0}
/* 标题行：横排（标题 | badge | MTTR） */
.rec-row{display:flex;align-items:center;gap:12px}
.rec-title{font-size:14.5px;line-height:1.3;color:var(--text);margin:0;font-weight:600;letter-spacing:.15px;flex:1;min-width:0}
.rec-title a{text-decoration:none;color:inherit;transition:.2s}
.rec-title a:hover{color:var(--accent)}
/* 分类 pill（描边圆角胶囊，全局通用） */
.badge{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  padding:2px 10px;border-radius:99px;white-space:nowrap;border:1px solid transparent;
  background:transparent;flex:none}
.badge.config{border-color:var(--cat-config);color:var(--cat-config);background:rgba(168,85,247,.07)}
.badge.capacity{border-color:var(--cat-capacity);color:var(--cat-capacity);background:rgba(245,158,11,.07)}
.badge.dependency{border-color:var(--cat-dependency);color:var(--cat-dependency);background:rgba(59,130,246,.07)}
.badge.human{border-color:var(--cat-human);color:var(--cat-human);background:rgba(236,72,153,.07)}
.badge.external{border-color:var(--cat-external);color:var(--cat-external);background:rgba(156,163,175,.08)}
/* MTTR（等宽，带符号） */
.rec .mttr{flex:none;color:var(--text-dim);
  font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  white-space:nowrap;letter-spacing:.3px;margin-left:auto}
.rec .mttr::before{content:"⏱";margin-right:4px;opacity:.45;font-size:11px}
/* 副标题 */
.rec-sub{color:var(--text-faint);font-size:11.5px;line-height:1.45;margin:0;letter-spacing:.2px}

/* 单篇 */
.detail-hero{padding:120px 0 34px;border-bottom:1px solid var(--border)}
.detail-hero .pmid{color:var(--accent);font-size:13px}
.detail-hero h1{font-size:clamp(26px,4.5vw,46px);margin:12px 0 12px;line-height:1.15}
.detail-hero .tag{display:inline-block;color:var(--crit);font-size:12px;font-weight:700;letter-spacing:.4px;
  border:1px solid var(--crit);background:rgba(255,92,92,.08);padding:3px 12px;border-radius:99px;margin-top:2px}
.single-layout{display:grid;grid-template-columns:268px 1fr;gap:42px;padding:46px 0 64px;align-items:start}
.single-side{position:sticky;top:80px;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.single-side .box{position:relative;font-size:11px;color:var(--text-faint);border-bottom:1px dashed var(--border);
  padding:9px 0 9px 14px;border-left:2px solid transparent;overflow:hidden}
/* 根因色条（与 list .rec 同款渐变发光） */
.single-side .box::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:.25s}
.single-side .box.sev-config::before{background:linear-gradient(180deg,var(--cat-config),rgba(168,85,247,.4))}
.single-side .box.sev-capacity::before{background:linear-gradient(180deg,var(--cat-capacity),rgba(245,158,11,.4))}
.single-side .box.sev-dependency::before{background:linear-gradient(180deg,var(--cat-dependency),rgba(59,130,246,.4))}
.single-side .box.sev-human::before{background:linear-gradient(180deg,var(--cat-human),rgba(236,72,153,.4))}
.single-side .box.sev-external::before{background:linear-gradient(180deg,var(--cat-external),rgba(156,163,175,.4))}
.single-side .box.sev-config:hover::before,.single-side .box.sev-capacity:hover::before,
.single-side .box.sev-dependency:hover::before,.single-side .box.sev-human:hover::before,
.single-side .box.sev-external:hover::before{filter:brightness(1.3)}
.single-side .box:last-of-type{border-bottom:none}
.single-side .box .k{color:var(--text-faint)}
.single-side .box .v{color:var(--text);font-weight:700;display:block;margin-top:3px}
.single-side .box .v.ac{color:var(--cat-config)}
.toc{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}
.toc .tt{color:var(--text-faint);font-size:11px;margin-bottom:8px}
.toc a{display:block;color:var(--text-dim);font-size:12.5px;padding:4px 0;padding-left:10px;border-left:2px solid transparent;transition:.2s}
.toc a:hover,.toc a.active{color:var(--accent);border-left-color:var(--accent)}
.single-main .blk{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:18px 20px;margin-bottom:18px}
.single-main h2{font-size:16px;color:var(--accent);margin-bottom:12px}
.single-main h2::before{content:"# "}
.single-main p{color:var(--text);font-size:14px;margin-bottom:10px;max-width:var(--ch)}
.single-main p.dim{color:var(--text-dim)}
.single-main code{background:var(--bg-2);padding:2px 6px;border-radius:3px;color:var(--accent);font-size:13px;
  white-space:pre-wrap;word-break:break-word}
.single-main ul{margin:0 0 6px 18px;color:var(--text-dim);font-size:13.5px;max-width:var(--ch)}
.single-main li{margin-bottom:6px}
.single-main li::marker{color:var(--accent)}
/* 时间线：日志序列 + 竖线节点 */
.timeline{position:relative;padding-left:20px}
.timeline::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--border)}
.timeline .tl{position:relative;font-size:13px;padding:7px 0 7px 8px;border-bottom:1px dashed var(--border)}
.timeline .tl:last-child{border-bottom:none}
.timeline .tl::before{content:"";position:absolute;left:-20px;top:12px;width:8px;height:8px;border-radius:50%;
  background:var(--accent);border:2px solid var(--panel)}
.timeline .tl .ts{color:var(--accent);font-weight:700;margin-right:10px}
.timeline .tl .ev{color:var(--text-dim)}
.checklist{list-style:none;margin:0}
.checklist li{padding:7px 0 7px 22px;position:relative;border-bottom:1px dashed var(--border);font-size:13px;color:var(--text-dim)}
.checklist li::before{content:"[ ]";position:absolute;left:0;color:var(--accent)}

/* 测量台 console（合并主题：测量台层 demo） */
.console{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);overflow:hidden}
.console-bar{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--panel-2);font-size:12px;color:var(--text-faint)}
.console-bar .dots{display:flex;gap:6px}
.console-bar .dots i{width:10px;height:10px;border-radius:50%;display:block}
.console-bar .dots i:nth-child(1){background:var(--crit)}
.console-bar .dots i:nth-child(2){background:var(--warn)}
.console-bar .dots i:nth-child(3){background:var(--accent)}
.console-bar .path{margin-left:6px}
.console-bar .live{margin-left:auto;color:var(--accent);display:flex;align-items:center;gap:6px}
.console-bar .live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 1.8s ease-out infinite}
.console-body{padding:18px 20px;overflow-x:auto}
.probe-tbl{width:100%;border-collapse:collapse;font-size:12.5px;min-width:560px}
.probe-tbl th{text-align:left;color:var(--text-faint);font-weight:700;letter-spacing:.4px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase}
.probe-tbl td{padding:9px 10px;border-bottom:1px dashed var(--border);color:var(--text-dim);white-space:nowrap}
.probe-tbl tr:last-child td{border-bottom:none}
.probe-tbl td:first-child{color:var(--text);font-weight:700}
.probe-tbl .ok{color:var(--accent)}
.probe-tbl .warn{color:var(--warn)}
.probe-tbl .st{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.6px;padding:2px 9px;border-radius:99px;border:1px solid transparent}
.probe-tbl .st.ok{border-color:var(--accent);color:var(--accent);background:rgba(57,211,83,.07)}
.probe-tbl .st.warn{border-color:var(--warn);color:var(--warn);background:rgba(245,158,11,.07)}
.probe-tbl .st.crit{border-color:var(--crit);color:var(--crit);background:rgba(255,92,92,.08)}
.console-note{margin-top:14px;color:var(--text-faint);font-size:11.5px}
/* 测量台 console 页（合并主题全屏 demo） */
.ts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.ts-card{border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);padding:14px 16px;transition:.2s}
.ts-card:hover{border-color:var(--hover-border)}
.ts-card .ch{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px}
.ts-card .ch .n{color:var(--text);font-weight:700}
.ts-card .ch .r{color:var(--text-faint);font-size:11px}

/* ── Phase 3：草稿徽章 / 编辑表单 / 报告页 ── */
.badge.draft{border-color:var(--warn);color:var(--warn);background:rgba(245,158,11,.1)}
.badge.draft::before{content:"\271C\00a0";}

.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:8px}
.report-grid .box{display:flex;flex-direction:column;gap:4px;border-bottom:1px dashed var(--border);padding-bottom:10px}
.report-grid .box .k{color:var(--text-faint);font-size:11px}
.report-grid .box .v{color:var(--text);font-weight:700;font-size:22px}
.report-grid .box .v.warn{color:var(--warn)}
.report-grid .box .v.crit{color:var(--crit)}
.report-grid .box .v.info{color:var(--info)}

.draft-banner{background:var(--bg-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.edit-form{max-width:880px;display:flex;flex-direction:column;gap:14px}
.edit-form .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.edit-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-faint)}
.edit-form label small{color:var(--text-faint);font-weight:400}
.edit-form input,.edit-form select,.edit-form textarea{
  background:var(--bg);border:1px solid var(--border);border-radius:8px;
  color:var(--text);font:inherit;font-size:13px;padding:8px 10px;width:100%;box-sizing:border-box;
}
.edit-form input:focus,.edit-form select:focus,.edit-form textarea:focus{outline:none;border-color:var(--accent)}
.edit-form textarea{min-height:84px;resize:vertical;line-height:1.5}
.edit-form .blk-label{font-size:13px;color:var(--text-dim);font-weight:700}
.edit-form .form-actions{display:flex;gap:8px;flex-wrap:wrap}
.md-out{max-height:480px}
.ts-card .cur{font-size:18px;color:var(--accent);font-weight:700;margin:8px 0 2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.ts-card .cur.crit{color:var(--crit)} .ts-card .cur.warn{color:var(--warn)}
.ts-card .sub{color:var(--text-faint);font-size:11px}
.bars{display:flex;align-items:flex-end;gap:2px;height:64px;margin-top:12px}
.bars i{flex:1;min-width:2px;border-radius:1px 1px 0 0;background:linear-gradient(180deg,var(--accent),rgba(57,211,83,.25));transition:.2s}
.bars i.warn{background:linear-gradient(180deg,var(--warn),rgba(245,158,11,.25))}
.bars i.crit{background:linear-gradient(180deg,var(--crit),rgba(255,92,92,.25))}
/* 页脚 */
.footer{border-top:1px solid var(--border);background:var(--bg-2);padding:26px 0;margin-top:24px}
.footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--text-faint);font-size:12px}
.footer a:hover{color:var(--accent)}
.footer .src{color:var(--accent)}
.footer .src:hover{text-decoration:underline;text-underline-offset:3px}

@media(max-width:900px){
  .hero .wrap{grid-template-columns:1fr}
  .metrics .wrap{grid-template-columns:repeat(2,1fr)}
  .metric:nth-child(2){border-right:none}
  .tax{grid-template-columns:repeat(2,1fr)}
  .single-layout{grid-template-columns:1fr;gap:26px}
  .single-side{position:relative;top:0}
  .rec{grid-template-columns:4px 1fr;gap:0;padding:10px 16px}
  .rec-main{grid-column:2;padding:4px 0}
}
@media(max-width:600px){
  .metrics .wrap,.tax{grid-template-columns:1fr}
  .nav-links a{padding:6px 9px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .cursor{display:none}
  .sys-status .ss-bar .live::before{animation:none}
}
