:root{
  --bg:#f4f4f1; --panel:#fdfdfb; --ink:#211f1c; --muted:#7d7870; --line:#e3e0d8; --soft:#f0eee8;
  --accent:#1f5fb3; --green:#2e7d52; --red:#b8433a; --amber:#a06b12;
  --mono:"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);
  font:15px/1.65 -apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  font-feature-settings:"tnum";padding:0 20px}
.wrap{max-width:1080px;margin:0 auto}
[v-cloak]{display:none}

/* ---------- 顶栏 ---------- */
.topbar{display:flex;align-items:baseline;gap:14px;padding:24px 0 12px;border-bottom:2px solid var(--ink);flex-wrap:wrap}
.topbar h1{font-size:19px;font-weight:650;letter-spacing:.01em}
.topbar .ver{font-family:var(--mono);font-size:11.5px;color:var(--muted);
  border:1px solid var(--line);border-radius:99px;padding:1px 8px}
.topbar .stamp{margin-left:auto;font-size:12px;color:var(--muted)}

/* ---------- 策略切换 ---------- */
.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);padding-top:2px}
.tab{position:relative;padding:13px 0 11px;font-size:13.5px;color:var(--muted);cursor:pointer;
  border:0;background:none;font-family:inherit;display:flex;align-items:center;gap:7px}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--ink);font-weight:650}
.tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink)}
.tab .dot{width:5px;height:5px;border-radius:50%;background:var(--green)}
.tab.planned .dot{background:var(--line)}
.tab.planned{color:var(--muted)}
.tab .cnt{font-family:var(--mono);font-size:10.5px;color:var(--muted)}

/* ---------- 二级导航 ---------- */
.subnav{display:flex;gap:8px;padding:16px 0 0;flex-wrap:wrap}
.subnav button{border:1px solid var(--line);background:var(--panel);color:var(--muted);
  font:inherit;font-size:12.5px;padding:5px 13px;border-radius:99px;cursor:pointer}
.subnav button:hover{border-color:#cfcabe;color:var(--ink)}
.subnav button.on{background:var(--ink);border-color:var(--ink);color:#fdfdfb}

/* ---------- 数据时点条 ---------- */
.chips{display:flex;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);padding:11px 0 0}
.chips .chip{padding-right:10px}
.chips .sep{display:inline-block;width:1px;height:11px;background:var(--line);margin-right:10px;vertical-align:-1px}
.warn{color:var(--amber);font-weight:600;font-size:10.5px;margin-left:3px}

/* ---------- 区块 ---------- */
section{padding:28px 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}
h2{font-size:13.5px;font-weight:650;margin-bottom:16px}
h2 small{font-weight:400;color:var(--muted);margin-left:10px;font-size:12px}

/* ---------- 通用 ---------- */
.mono{font-family:var(--mono);font-size:13px}
.up{color:var(--red)} .down{color:var(--green)}
.green{color:var(--green)} .red{color:var(--red)} .amber{color:var(--amber)} .muted{color:var(--muted)}
.tag{display:inline-block;padding:1px 9px;border-radius:99px;font-size:12px;font-weight:600}
.tag.green{background:rgba(46,125,82,.13)} .tag.red{background:rgba(184,67,58,.12)}
.tag.amber{background:rgba(160,107,18,.14)} .tag.muted{background:var(--soft);color:var(--muted)}
.quiet{color:var(--muted);font-size:12px;margin-top:8px;line-height:1.7}

/* ---------- 总览 hero ---------- */
.hero{display:grid;grid-template-columns:7fr 5fr;gap:32px;align-items:stretch}
.scorebox .tag{margin-bottom:6px}
.big{font-family:var(--mono);font-size:72px;font-weight:600;line-height:1.05;letter-spacing:-.02em}
.big small{font-size:20px;color:var(--muted);font-weight:400;letter-spacing:0}
.kpis{display:flex;gap:26px;margin-top:10px;flex-wrap:wrap}
.kpi .v{font-family:var(--mono);font-size:19px;font-weight:600}
.kpi .v .delta{font-family:inherit;font-size:10.5px;vertical-align:2px}
.delta{font-weight:500;padding:1px 6px;border-radius:99px;
  background:rgba(160,107,18,.13);color:var(--amber);margin-left:4px;white-space:nowrap;
  font-size:10.5px;font-family:-apple-system,"PingFang SC",sans-serif}
.kpi .k{font-size:11.5px;color:var(--muted)}
.posbox{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.posbox h3{font-size:12.5px;font-weight:650;margin-bottom:10px}
.prow{display:flex;justify-content:space-between;gap:12px;padding:7px 0;
  border-top:1px solid var(--soft);font-size:12.8px;align-items:baseline}
.prow:first-of-type{border-top:0}
.prow .v{font-family:var(--mono);font-weight:600;text-align:right;flex-shrink:0}
.prow .note{color:var(--muted);font-size:11.5px;text-align:right;line-height:1.5}
.final{margin-top:12px;padding:10px 12px;border-radius:8px;font-size:12.8px;font-weight:600;line-height:1.55}
.final.red{background:rgba(184,67,58,.10);color:var(--red)}
.final.amber{background:rgba(160,107,18,.10);color:var(--amber)}
.final.green{background:rgba(46,125,82,.10);color:var(--green)}

/* ---------- 维度行 ---------- */
.dim{display:grid;grid-template-columns:168px 250px 1fr;gap:16px;align-items:center;
  padding:12px 14px;border-top:1px solid var(--line)}
.dim:first-child{border-top:0}
.dim.mon{background:repeating-linear-gradient(135deg,var(--panel),var(--panel) 6px,#f7f6f2 6px,#f7f6f2 12px)}
.dname b{font-size:13.5px}
.dname .dw{font-family:var(--mono);font-size:12px;color:var(--accent);margin-left:8px}
.dim.mon .dname .dw{color:var(--muted)}
.dname em{display:block;font-style:normal;font-size:11px;color:var(--muted)}
.dstat{display:flex;align-items:center;gap:10px}
.dstat .num{font-family:var(--mono);font-size:19px;font-weight:650;width:44px}
.dsub{font-size:12.3px;color:var(--muted);line-height:1.6}
.qual{font-size:11px;color:var(--amber);margin-top:4px;line-height:1.5}
.rail{position:relative;display:inline-block;width:180px;height:8px;border-radius:5px;
  background:linear-gradient(to right,rgba(46,125,82,.22) 0 20%,rgba(46,125,82,.10) 20% 40%,
    rgba(160,107,18,.16) 40% 60%,rgba(184,67,58,.10) 60% 80%,rgba(184,67,58,.22) 80% 100%)}
.rail b{position:absolute;top:-4px;width:3px;height:16px;background:var(--ink);border-radius:2px}

/* ---------- 图表 ---------- */
.figure svg{width:100%;height:auto;display:block;overflow:visible}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.figure + .kpis{margin-top:16px;gap:34px}

/* 图表交互: 包裹层负责定位提示框 */
.chartwrap{position:relative}
.chartwrap svg{cursor:crosshair;touch-action:pan-y}
.ctip{position:absolute;pointer-events:none;z-index:5;background:#211f1c;color:#fdfdfb;
  border-radius:7px;padding:7px 10px;font-size:11.5px;line-height:1.55;white-space:nowrap;
  box-shadow:0 5px 16px rgba(0,0,0,.20)}
.ctip .cd{font-family:var(--mono);font-size:11px;color:#cfcabe;margin-bottom:3px}
.ctip .cr{display:flex;align-items:baseline;gap:7px}
.ctip .cr span{color:#b5b0a6;font-size:10.5px;min-width:34px}
.ctip .cr b{font-family:var(--mono);font-size:13px;font-weight:650}
.ctip .cr b.green{color:#7ed3a3} .ctip .cr b.amber{color:#e2ba63} .ctip .cr b.red{color:#f0908a}
.ctip .cr i{font-style:normal;font-size:10.5px;color:#b5b0a6}
.ctip .cp{font-size:10px;color:#8f8a80;margin-top:3px}
.chartctl{display:flex;justify-content:space-between;align-items:center;gap:16px;
  font-size:12px;color:var(--muted);margin-bottom:8px;flex-wrap:wrap}
.tgl{display:inline-flex;align-items:center;gap:5px;cursor:pointer;user-select:none;color:var(--muted)}
.tgl input{accent-color:var(--accent);margin:0}

/* ---------- 折叠块 ---------- */
details.fold{margin-top:18px;border-top:1px solid var(--soft);padding-top:10px}
details.fold > summary{cursor:pointer;font-size:12.4px;font-weight:600;color:var(--accent);
  padding:3px 0;list-style:none;user-select:none}
details.fold > summary::-webkit-details-marker{display:none}
details.fold > summary::before{content:"▸";display:inline-block;width:13px;font-size:10px;
  color:var(--muted);transition:transform .15s}
details.fold[open] > summary::before{transform:rotate(90deg)}
details.fold > summary:hover{color:var(--ink)}
details.fold table{margin-top:12px}

/* ---------- 表格 ---------- */
table{width:100%;border-collapse:collapse;font-size:12.4px}
th{font-weight:600;color:var(--muted);text-align:left;padding:6px 8px;
  border-bottom:1px solid var(--ink);font-size:11.5px;white-space:nowrap}
td{padding:7px 8px;border-bottom:1px solid var(--soft);vertical-align:top}
tr.cur td{background:rgba(31,95,179,.07);font-weight:600}

/* ---------- 说明页排版 ---------- */
.doc{max-width:820px}
.doc .lead{font-size:15px;line-height:1.85;color:#3a362f;margin-bottom:8px}
.doc h3{font-size:14.5px;font-weight:650;margin:30px 0 10px;padding-bottom:7px;border-bottom:1px solid var(--ink)}
.doc h3 .idx{font-family:var(--mono);font-size:12px;color:var(--accent);margin-right:8px}
.doc h4{font-size:13.2px;font-weight:650;margin:20px 0 6px}
.doc p{font-size:13.4px;line-height:1.82;color:#3a362f;margin:9px 0}
.doc p b{color:var(--ink);font-weight:650}
.doc code{font-family:var(--mono);font-size:12.2px;background:var(--soft);padding:1px 5px;border-radius:4px}
.doc ul{margin:8px 0 8px 18px}
.doc li{font-size:13.4px;line-height:1.8;color:#3a362f;margin:5px 0}
.doc .formula{font-family:var(--mono);font-size:12.8px;background:var(--panel);border:1px solid var(--line);
  border-left:2px solid var(--accent);border-radius:0 6px 6px 0;padding:11px 14px;margin:12px 0;
  line-height:1.9;white-space:pre-wrap;color:var(--ink);overflow-x:auto}
.doc .callout{background:rgba(31,95,179,.05);border-left:2px solid var(--accent);
  padding:11px 15px;border-radius:0 6px 6px 0;margin:14px 0;font-size:13px;line-height:1.78;color:#3a362f}
.doc .callout.warnbox{background:rgba(160,107,18,.07);border-left-color:var(--amber)}
.doc table{margin:12px 0;font-size:12.4px}
.doc .src{font-size:11.5px;color:var(--muted);margin-top:5px}
.doc .dimcard{border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin:14px 0;background:var(--panel)}
.doc .dimcard .hd{display:flex;align-items:baseline;gap:10px;margin-bottom:2px}
.doc .dimcard .hd b{font-size:14px}
.doc .dimcard .hd .wt{font-family:var(--mono);font-size:12px;color:var(--accent)}
.doc .dimcard .hd .sub{font-size:11.5px;color:var(--muted)}

/* ---------- 数据质量 ---------- */
.qitem{display:grid;grid-template-columns:150px 1fr;gap:16px;padding:11px 0;border-top:1px solid var(--soft)}
.qitem:first-child{border-top:0}
.qitem .qn{font-size:12.8px;font-weight:600}
.qitem .qn .lv{display:block;font-size:10.5px;font-weight:400;color:var(--muted);margin-top:2px}
.qitem .qd{font-size:12.3px;color:var(--muted);line-height:1.7}

/* ---------- 规划中策略 ---------- */
.planned-card{background:var(--panel);border:1px dashed #cfcabe;border-radius:12px;padding:28px 30px;margin-top:20px}
.planned-card h3{font-size:15px;font-weight:650;margin-bottom:4px}
.planned-card .sub{font-size:12.5px;color:var(--muted);margin-bottom:16px}
.plan-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:16px}
.plan-list .p{font-size:12.5px;color:#4a463f;line-height:1.7}
.plan-list .p b{display:block;font-size:11.5px;color:var(--muted);font-weight:600;margin-bottom:4px}
.steps{counter-reset:s;margin:14px 0 0 0;list-style:none}
.steps li{counter-increment:s;position:relative;padding-left:30px;margin:9px 0;
  font-size:13px;line-height:1.75;color:#3a362f}
.steps li::before{content:counter(s);position:absolute;left:0;top:2px;width:19px;height:19px;
  border-radius:50%;background:var(--soft);color:var(--muted);font-family:var(--mono);
  font-size:11px;display:flex;align-items:center;justify-content:center}

/* ---------- 页脚 ---------- */
.foot{padding:24px 0 44px;color:var(--muted);font-size:11.8px;line-height:1.9}
.foot p{margin:3px 0}

@media (max-width:880px){
  .hero,.cols,.plan-list{grid-template-columns:1fr;gap:24px}
  .dim{grid-template-columns:1fr;gap:7px}
  .big{font-size:54px}
  .tabs{overflow-x:auto}
}
