:root{--bg:#f6f7f9;--card:#fff;--ink:#16202c;--mut:#5c6878;--line:#e3e7ec;--pri:#1d4ed8;--pri2:#e8efff;--ok:#0f7b4a;--okbg:#e5f5ec;--bad:#b42318;--badbg:#fdecea;--warn:#8a5a00;--warnbg:#fff6e0;--r:12px;
--font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 var(--font)}
a{color:var(--pri);text-decoration:none}a:hover{text-decoration:underline}
header.top{position:sticky;top:0;z-index:20;background:#0f172a;color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.top .in{max-width:1320px;margin:auto;display:flex;align-items:center;gap:18px;padding:10px 20px;flex-wrap:wrap}
.brand{font-weight:700;font-size:17px;color:#fff;white-space:nowrap}.brand span{color:#93c5fd}
nav.main{display:flex;gap:4px;flex-wrap:wrap}
nav.main a{color:#cbd5e1;padding:6px 11px;border-radius:8px;font-size:14px}
nav.main a:hover{background:#1e293b;color:#fff;text-decoration:none}
nav.main a.on{background:#1d4ed8;color:#fff}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid #334155;color:#fff;border-radius:8px;padding:4px 10px;font-size:16px}
main{max-width:1320px;margin:auto;padding:22px 20px 40px}
.hero{background:linear-gradient(135deg,#0f172a,#1e3a8a);color:#fff;border-radius:16px;padding:28px 30px;margin-bottom:18px}
.hero h1{margin:0 0 8px;font-size:28px}.hero p{margin:0;color:#dbeafe;max-width:900px}
.asof{display:inline-block;margin-top:12px;background:rgba(255,255,255,.12);padding:4px 12px;border-radius:999px;font-size:13px}
.warn{background:var(--warnbg);border:1px solid #f3d48b;color:#5b3d00;border-radius:var(--r);padding:12px 16px;margin:0 0 18px;font-size:14px}
.warn b{color:var(--warn)}
section.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin:0 0 18px}
section.card>h2{margin:0 0 4px;font-size:21px}h3{font-size:17px;margin:18px 0 6px}
.cap{color:var(--mut);font-size:13.5px;margin:0 0 12px}
.grid{display:grid;gap:14px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}
.pick{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:linear-gradient(180deg,#fff,#f8faff)}
.pick .tk{font-size:22px;font-weight:700;color:var(--pri)}.pick .nm{font-weight:600}.pick .meta{color:var(--mut);font-size:13px}
.pick .sc{margin-top:8px;font-size:13.5px}
.tile{display:block;border:1px solid var(--line);border-radius:var(--r);padding:16px;background:#fff;color:var(--ink);transition:.15s}
.tile:hover{border-color:var(--pri);box-shadow:0 4px 14px rgba(29,78,216,.12);text-decoration:none}
.tile b{font-size:16px}.tile p{margin:6px 0 0;color:var(--mut);font-size:13.5px}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;font-size:13.5px;background:#fff}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#f1f4f8;font-weight:600;white-space:nowrap;position:sticky;top:0}
tr:hover td{background:#fafcff}
td.n{white-space:nowrap;font-variant-numeric:tabular-nums}td.tk{font-weight:700;color:var(--pri);white-space:nowrap}
td{white-space:nowrap}td.why{white-space:normal;min-width:300px;color:#334155}
th.s{cursor:pointer;user-select:none}th.s:hover{background:#e5ebf3}th.s::after{content:" ⇅";color:#9aa4b2}
th.asc::after{content:" ▲";color:var(--pri)}th.desc::after{content:" ▼";color:var(--pri)}
.ok{color:var(--ok);font-weight:600}.bad{color:var(--bad);font-weight:600}.nf{color:#98a2b3}
.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap;background:#eef1f5;color:#334155}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.bad{background:var(--badbg);color:var(--bad)}.badge.mid{background:var(--pri2);color:var(--pri)}
.heat{display:grid;grid-template-columns:150px repeat(6,1fr);gap:3px;font-size:13px}
.heat .h{font-weight:600;text-align:center;color:var(--mut);padding:4px 0}
.heat .r{font-weight:600;padding:6px 4px;display:flex;align-items:center}
.heat .c{border-radius:6px;min-height:32px;display:flex;align-items:center;justify-content:center;font-size:12px;background:#f1f4f8}
.heat .c.cur{background:#1d4ed8;color:#fff;font-weight:600}.heat .c.nx{background:#bcd0fb;color:#1e3a8a}
.legend{display:flex;gap:16px;font-size:13px;color:var(--mut);margin-top:10px;flex-wrap:wrap}.legend i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:5px}
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
.filters label{display:flex;flex-direction:column;font-size:12.5px;color:var(--mut);gap:4px}
select,input[type=search]{font:inherit;font-size:14px;padding:7px 10px;border:1px solid #cfd6df;border-radius:8px;background:#fff;min-width:150px}
.seg{display:inline-flex;border:1px solid #cfd6df;border-radius:8px;overflow:hidden}
.seg button{font:inherit;font-size:13.5px;border:0;background:#fff;padding:7px 12px;cursor:pointer;border-right:1px solid #e3e7ec}.seg button:last-child{border-right:0}
.seg button.on{background:var(--pri);color:#fff}
.count{font-size:13.5px;color:var(--mut);margin:10px 0}
.note{background:#f8fafc;border-left:3px solid #94a3b8;padding:10px 14px;border-radius:6px;color:#334155;font-size:14px;margin:12px 0 0}
.chart{position:relative}.chart svg{width:100%;height:auto;display:block}
.tip{position:absolute;pointer-events:none;background:#0f172a;color:#fff;font-size:12.5px;padding:6px 9px;border-radius:6px;white-space:nowrap;display:none;z-index:5}
.sub{border-top:1px dashed var(--line);padding-top:6px;margin-top:16px}.sub:first-of-type{border-top:0}
.sub h3{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.verdict{margin:4px 0 10px;color:#1f2937}
.toc{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.toc a{background:#fff;border:1px solid var(--line);padding:5px 12px;border-radius:999px;font-size:13.5px}
.props{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;font-size:14px}.props dt{color:var(--mut)}.props dd{margin:0}
.src{display:block;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff;color:var(--ink)}
.src:hover{border-color:var(--pri);text-decoration:none}.src b{display:block;font-size:14px}.src span{font-size:12.5px;color:var(--mut)}
footer{max-width:1320px;margin:auto;padding:0 20px 40px;color:var(--mut);font-size:13px}
@media(max-width:1000px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.g4,.g3,.g2{grid-template-columns:1fr}.hero h1{font-size:22px}.menu-btn{display:block}nav.main{display:none;width:100%;flex-direction:column}nav.main.open{display:flex}
.heat{grid-template-columns:92px repeat(6,1fr);font-size:11px}.heat .c{font-size:0;min-height:24px}section.card{padding:16px}.props{grid-template-columns:1fr}}
