:root{--bg:#fbfaf8;--surface:#ffffff;--line:#e6e2db;--line-soft:#f0ede7;--ink:#1c1a17;--ink-2:#55504a;--ink-3:#8a837a;--accent:#b4441f;--accent-soft:#fdf1ec;--good:#2f6d4f;--good-soft:#eef6f1;--warn:#8a6a12;--warn-soft:#fdf6e6;--bad:#a3341f;--radius:10px;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:ui-sans-serif,-apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent)}.wrap{max-width:1180px;margin:0 auto;padding:0 28px}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--mono)}.site-head{border-bottom:1px solid var(--line);background:var(--surface);position:-webkit-sticky;position:sticky;top:0;z-index:20}.site-head-inner{display:flex;align-items:center;gap:20px;height:58px}.brand{font-weight:650;letter-spacing:-.01em;font-size:15px;text-decoration:none;color:var(--ink);white-space:nowrap}.brand span{color:var(--ink-3);font-weight:400;margin-left:8px;font-size:13px}.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}.nav a{padding:6px 11px;border-radius:7px;font-size:13.5px;color:var(--ink-2);text-decoration:none}.nav a:hover{background:var(--line-soft);color:var(--ink)}.nav a[data-active=true]{background:var(--accent-soft);color:var(--accent);font-weight:550}.page-head{padding:34px 0 22px}.page-head h1{margin:0 0 8px;font-size:25px;letter-spacing:-.02em}.page-head p{margin:0;color:var(--ink-2);max-width:74ch}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:600;margin-bottom:6px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card-tight{padding:14px 16px}h2.sec{font-size:17px;margin:30px 0 12px;letter-spacing:-.01em}h3.sub{font-size:14px;margin:0 0 10px;color:var(--ink-2);font-weight:600}.grid{display:grid;grid-gap:14px;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:620px){.g2,.g3,.g4{grid-template-columns:1fr}}.metric .k{font-size:12px;color:var(--ink-3);margin-bottom:3px}.metric .v{font-size:22px;font-weight:620;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric .n{font-size:12px;color:var(--ink-3);margin-top:2px}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl td,.tbl th{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line-soft)}.tbl th{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600;white-space:nowrap}.tbl td.num,.tbl th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tbl tbody tr:hover{background:#fcfbf9}.tbl-scroll{overflow-x:auto}.tag{display:inline-block;padding:1px 7px;border-radius:5px;font-size:11.5px;font-weight:550;white-space:nowrap}.tag-good{background:var(--good-soft);color:var(--good)}.tag-warn{background:var(--warn-soft);color:var(--warn)}.tag-bad{background:var(--accent-soft);color:var(--bad)}.tag-mute{background:var(--line-soft);color:var(--ink-3)}.pill{display:inline-block;padding:2px 8px;border:1px solid var(--line);border-radius:20px;font-size:12px;background:var(--surface)}.note,.pill{color:var(--ink-2)}.note{border-left:3px solid var(--line);padding:2px 0 2px 13px;font-size:13.5px}.note-accent{border-left-color:var(--accent)}.note-warn{border-left-color:var(--warn)}label.fld{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:5px;font-weight:550}input[type=range]{width:100%;accent-color:var(--accent)}input[type=number],input[type=text],select{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:13.5px;background:var(--surface);color:var(--ink);font-family:inherit}button{font-family:inherit;cursor:pointer}.btn{padding:7px 13px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink-2);font-size:13px}.btn:hover{background:var(--line-soft)}.btn[data-on=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:550}.foot{margin-top:52px;padding:22px 0 40px;border-top:1px solid var(--line);color:var(--ink-3);font-size:12.5px}