:root{
  --sans:ui-sans-serif,-apple-system,"SF Pro Text","Segoe UI","Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Songti SC","STSong","Source Han Serif SC","Noto Serif CJK SC",serif;
  --bg:#ffffff; --ink:#12161A; --muted:#414851; --line:#D6CFBF; --line2:#A9A18B;
  --accent:#1e3a5f; --red:#761515; --amber:#573A0A; --green:#0F4637;
  --s1:#2a78d6; --s2:#eb6834; --bar:rgba(255,255,255,.93);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#16191B; --ink:#F2F0ED; --muted:#C3C9D0; --line:#3a3f45; --line2:#6b7380;
    --accent:#9cc3ea; --red:#FFBCB4; --amber:#F0CD85; --green:#8FE0C2;
    --s1:#3987e5; --s2:#d95926; --bar:rgba(22,25,27,.93);
  }
}
:root[data-theme="dark"]{
  --bg:#16191B; --ink:#F2F0ED; --muted:#C3C9D0; --line:#3a3f45; --line2:#6b7380;
  --accent:#9cc3ea; --red:#FFBCB4; --amber:#F0CD85; --green:#8FE0C2;
  --s1:#3987e5; --s2:#d95926; --bar:rgba(22,25,27,.93);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;padding-top:46px;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15.5px;line-height:1.75;font-weight:400;letter-spacing:.012em;text-align:left;line-break:strict;text-rendering:optimizeLegibility;font-kerning:normal;-moz-osx-font-smoothing:grayscale}
.tagbar{position:fixed;top:0;left:0;right:0;z-index:60;background:var(--bar);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.tagbar .in{display:flex;gap:4px;overflow-x:auto;white-space:nowrap;padding:8px 16px 8px max(16px,calc((100vw - 1040px)/2 + 16px));scrollbar-width:none}
.tagbar .in::-webkit-scrollbar{display:none}
.tagbar a{color:var(--muted);text-decoration:none;font-size:13.5px;padding:3px 9px;border-bottom:2px solid transparent}
.tagbar a .n{font-family:var(--serif);font-size:12px;opacity:.72;margin-right:3px}
.tagbar a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.wrap{max-width:1040px;margin:0 auto;padding:36px 16px 64px}
h1{font-family:var(--serif);font-weight:700;font-size:30px;line-height:1.3;margin:0 0 6px}
.sub{color:var(--muted);margin:0 0 26px}
h2{font-family:var(--serif);font-weight:700;font-size:21px;margin:48px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line2);scroll-margin-top:64px}
h3{font-weight:600;font-size:16.5px;margin:28px 0 10px;color:var(--accent)}
p,li{text-wrap:pretty}
ul,ol{padding-left:1.4em;margin:8px 0}
li{margin:6px 0}
strong{font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line2);margin:0 0 6px}
.kpi{padding:14px 16px 14px 0;border-bottom:1px solid var(--line)}
.kpi:nth-last-child(-n+3){border-bottom:none}
.kpi .v{font-size:25px;font-weight:700;font-variant-numeric:tabular-nums lining-nums;line-height:1.3}
.kpi .l{color:var(--muted);font-size:13.5px}
.kpi.bad .v{color:var(--red)}
.kpi.warn .v{color:var(--amber)}
.concl{border-left:3px solid var(--accent);padding:2px 0 2px 18px}
.concl ol{padding-left:1.3em}
.concl li{margin:10px 0}
.callout{border-left:3px solid var(--line2);padding:2px 0 2px 16px;margin:14px 0;color:var(--ink)}
.callout.red{border-left-color:var(--red)}
.tbl{overflow-x:auto;margin:10px 0 6px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
table{border-collapse:collapse;width:100%;font-size:14.2px;font-variant-numeric:tabular-nums lining-nums}
th,td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
th{font-weight:700;border-bottom:1px solid var(--line2);white-space:nowrap}
td:first-child,th:first-child{min-width:5em;max-width:15em}
tr:last-child td{border-bottom:none}
td.num,th.num{text-align:right;white-space:nowrap}
tr.hl td{font-weight:600}
.note{color:var(--muted);font-size:13.5px;margin:6px 0 14px}
.tag{display:inline-block;font-size:12.5px;font-weight:600;padding:0 7px;border:1px solid currentColor;border-radius:3px;white-space:nowrap;line-height:1.6}
.t-red{color:var(--red)} .t-amber{color:var(--amber)} .t-green{color:var(--green)} .t-gray{color:var(--muted)}
.neg{color:var(--red)}
.struct{display:grid;gap:8px;margin:10px 0}
.lvl{border:1px solid var(--line2);border-radius:3px;padding:10px 14px}
.lvl .h{font-weight:600}
.lvl .d{color:var(--muted);font-size:13.5px}
.row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.box{border:1px solid var(--line);border-radius:3px;padding:9px 12px;font-size:13.5px}
.box b{display:block;font-weight:600;font-size:14px}
.box.loss{border-color:var(--red)}
.box.dash{border-style:dashed}
.arrow{text-align:center;color:var(--muted);font-size:13px;line-height:1}
.fig{margin:14px 0 4px}
.fig .t{font-weight:600;margin-bottom:2px}
.fig .lg{display:flex;gap:18px;font-size:13.5px;color:var(--muted);margin:4px 0}
.fig .lg i{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin-right:6px}
.chart{overflow-x:auto}
.chart svg{width:100%;min-width:620px;height:auto;display:block;font-family:inherit}
.chart .s1{fill:var(--s1)} .chart .s2{fill:var(--s2)}
.chart .g{stroke:var(--line)} .chart .bl{stroke:var(--line2)}
.chart .ax{fill:var(--muted)} .chart .lb{fill:var(--ink)}
.chart .hit:hover{fill:var(--line);fill-opacity:.35}
#tip{position:fixed;pointer-events:none;background:var(--bg);color:var(--ink);border:1px solid var(--line2);border-radius:3px;padding:6px 10px;font-size:13px;line-height:1.55;display:none;z-index:80;box-shadow:0 2px 10px rgba(0,0,0,.12)}
footer{margin-top:56px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
@media (max-width:860px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-last-child(-n+3){border-bottom:1px solid var(--line)}
  .kpi:nth-last-child(-n+2){border-bottom:none}
  .row{grid-template-columns:1fr 1fr}
  h1{font-size:25px}
  .tbl.cards{border-bottom:none}
  .tbl.cards table,.tbl.cards tbody,.tbl.cards tr,.tbl.cards td{display:block;width:100%}
  .tbl.cards thead{display:none}
  .tbl.cards tr{border-bottom:1px solid var(--line2);padding:8px 0}
  .tbl.cards td{border:none;padding:3px 0;max-width:none}
  .tbl.cards td:first-child{font-weight:600;font-size:15px}
  .tbl.cards td:not(:first-child)::before{content:attr(data-label)"：";color:var(--muted);font-size:13px}
  .tbl.keep td:first-child,.tbl.keep th:first-child{position:sticky;left:0;background:var(--bg)}
}
@media (max-width:520px){.row{grid-template-columns:1fr}}
@media print{
  .tagbar{display:none} body{padding-top:0;color:#000;font-weight:500}
  p,li,td,th,strong,b{color:#000}
  h2,h3,.kpi .v{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  h2,.tbl,.fig,.struct{break-inside:avoid}
}
.tagbar .nav{color:var(--ink);font-weight:600}
.tagbar .sep{display:inline-block;width:1px;background:var(--line2);margin:4px 6px}
.warnbar{border:1.5px solid var(--red);color:var(--red);padding:8px 14px;margin:0 0 22px;font-weight:600;font-size:14px}
.steps{counter-reset:st;display:grid;gap:8px;margin:12px 0}
.step{border:1px solid var(--line2);border-radius:3px;padding:10px 14px 10px 46px;position:relative}
.step::before{counter-increment:st;content:counter(st);position:absolute;left:12px;top:9px;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-weight:700;font-size:13px;text-align:center;line-height:21px}
.step b{font-weight:600}
.cards2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}
.card{border-top:2px solid var(--accent);padding:10px 0 4px}
.card h3{margin:0 0 6px}
.card ul{margin:4px 0}
@media (max-width:760px){.cards2{grid-template-columns:1fr}}
