:root{--bg:#f3f8fd;--panel:#fff;--accent:#4a90d9;--accent-deep:#2f6cb0;--accent-soft:#e7f1fb;--accent-softer:#f1f7fc;--border:#d6e6f4;--text:#1b2a3a;--muted:#6b7e90;--home:#eaf3fb;--away:#fbf6ec;--good:#3a9d6a;--warn:#c98a1c;--bad:#cf4f4f;--radius:8px;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.45}a{color:var(--accent-deep);text-decoration:none}a:hover{text-decoration:underline}.navbar{border-bottom:1px solid var(--border);background:#fff}.nav-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1100px;margin:0 auto;padding:11px 24px;display:flex}.brand{color:var(--text);letter-spacing:-.2px;align-items:center;gap:10px;font-size:16px;font-weight:700;display:inline-flex}.brand:hover{text-decoration:none}.brand svg{border-radius:6px;display:block}.nav-links{gap:4px;display:flex}.nav-links a{color:var(--muted);border-radius:6px;padding:6px 13px;font-size:14px;font-weight:500}.nav-links a:hover{background:var(--accent-softer);text-decoration:none}.nav-links a.active{color:var(--accent-deep);background:var(--accent-soft)}.seg{border:1px solid var(--border);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);cursor:pointer;border:0;border-left:1px solid var(--border);background:#fff;padding:7px 14px;font-size:13px}.seg button:first-child{border-left:0}.seg button.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.metric-cell{text-align:right;min-width:46px;font-family:var(--mono);font-variant-numeric:tabular-nums;border-radius:5px;padding:2px 8px;display:inline-block}.player-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.player-name{margin:0;font-size:24px;font-weight:700}.player-meta{color:var(--muted);font-size:13px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (max-width:920px){.metric-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.metric-grid{grid-template-columns:1fr}}.metric-box{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.mb-bar{justify-content:space-between;align-items:flex-start;gap:8px;min-height:3em;padding:9px 12px;display:flex}.mb-head{color:var(--text);font-size:12.5px;font-weight:700;line-height:1.25}.mb-rank{white-space:nowrap;flex-direction:column;flex-shrink:0;align-items:flex-end;line-height:1.1;display:flex}.mb-pctile{color:var(--text);font-size:17px;font-weight:700}.mb-vs{color:var(--text);opacity:.65;font-size:10px}.mb-body{padding:9px 12px 11px}.mb-val{font-size:18px;font-weight:700;font-family:var(--mono)}.mb-ci{color:var(--muted);font-size:11.5px;font-weight:400}.mb-toi{color:var(--muted);font-size:11.5px;font-weight:400;font-family:var(--mono)}.mb-blurb{color:var(--muted);margin-top:5px;font-size:11.5px;line-height:1.4}.mb-unit{color:var(--muted);margin-left:3px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:11px;font-weight:400}.card-note{margin:16px 0 0;font-size:12px}.section-sub{color:var(--muted);margin:-6px 0 14px;font-size:12.5px;line-height:1.4}.ledger-note{white-space:nowrap;font-style:italic}.value-sub{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:4px 0 10px;font-size:12px;font-weight:600}.team-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.team-card{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:4px;padding:14px 16px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.team-card:hover{border-color:var(--accent);background:var(--accent-softer)}.team-abbr{font-size:20px;font-weight:700;font-family:var(--mono)}.team-meta{color:var(--muted);font-size:12px}.season-group{margin-top:18px}.season-group:first-of-type{margin-top:4px}.season-head{margin:0 0 6px;font-size:14px;font-weight:700}.result{font-weight:700;font-family:var(--mono);text-align:center}.result-w{color:#1f9d57}.result-l{color:#c0392b}.result-t{color:var(--muted)}.result-otl{color:var(--warn)}.gamelog-wrap{border:1px solid var(--border);border-radius:var(--radius);max-height:560px;overflow-y:auto}.gamelog thead th{background:var(--panel);z-index:1;box-shadow:0 1px 0 var(--border);position:sticky;top:0}.heat-seg{margin-bottom:14px}.player-hero,.team-hero{align-items:center;gap:18px;display:flex}.player-mug{object-fit:cover;border:1px solid var(--border);background:var(--accent-softer);border-radius:50%;flex:none;width:88px;height:88px}.team-logo{object-fit:contain;flex:none;width:72px;height:72px}.player-hero-main{min-width:0}.bio-row{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin-top:8px;font-size:13px;display:flex}.bio-row b{color:var(--text);font-weight:600}.player-teams{flex-wrap:wrap;align-items:center;gap:14px;margin-top:8px;display:flex}.cur-team{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:700;display:inline-flex}.cur-team:hover{color:var(--accent-deep)}.cur-team img{object-fit:contain;width:26px;height:26px}.former-teams{font-size:12.5px}.viz-row{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.viz-cell{min-width:0}@media (max-width:760px){.viz-row{grid-template-columns:1fr}}.split-row{grid-template-columns:1fr 1fr 1fr;align-items:start;gap:24px;display:grid}.split-cell{min-width:0}@media (max-width:860px){.split-row{grid-template-columns:1fr}}.rowlink{cursor:pointer}.rowlink:hover{background:var(--accent-softer)}.rowlink a:hover{text-decoration:underline}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{color:var(--accent-deep)}.status-current{color:var(--good);font-weight:600}.chart-wrap{margin:4px 0 14px}table.season-table th.sortable{cursor:pointer}table.season-table th.sortable:hover{background:var(--accent-soft);color:var(--accent-deep)}table.season-table th.graphed,table.season-table td.graphed{background:var(--accent-soft)}table.season-table th.graphed{color:var(--accent-deep)}table.season-table td:first-child,table.season-table th:first-child{font-variant-numeric:normal}.linemates{flex-wrap:wrap;gap:8px;display:flex}.linemate{border:1px solid var(--border);border-radius:var(--radius);background:var(--accent-softer);flex-direction:column;gap:1px;padding:8px 12px;display:flex}.linemate:hover{background:var(--accent-soft);text-decoration:none}.lm-name{color:var(--accent-deep);font-size:13px;font-weight:600}.lm-toi{color:var(--muted);font-size:11px;font-family:var(--mono)}.container{max-width:1100px;margin:0 auto;padding:24px 24px 80px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px 18px}.panel>h2{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:600}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.search{border:1px solid var(--border);border-radius:var(--radius);min-width:200px;color:var(--text);background:#fff;flex:1;padding:8px 12px;font-size:14px}.search:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}table.games{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}table.games th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:var(--accent-softer);border-bottom:1px solid var(--border);cursor:pointer;white-space:nowrap;padding:9px 12px;font-size:11px}table.games th:hover{color:var(--accent-deep)}table.games td{border-bottom:1px solid var(--accent-softer);white-space:nowrap;padding:8px 12px}table.games tr:hover td{background:var(--accent-softer)}.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}.gtable th:nth-child(n+4),.gtable td:nth-child(n+4),.ptable th:nth-child(n+3),.ptable td:nth-child(n+3),table.season-table th:nth-child(n+3),table.season-table td:nth-child(n+3){text-align:right}table.season-table th:nth-child(-n+2),table.season-table td:nth-child(-n+2){text-align:left}.pill{border-radius:20px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.pill.good{color:var(--good);background:#e6f5ec}.pill.warn{color:var(--warn);background:#fbf2e0}.pill.bad{color:var(--bad);background:#fbe7e7}.gv-hero{flex-wrap:wrap;justify-content:center;align-items:center;gap:26px;display:flex}.gv-side{color:var(--text);flex:1;justify-content:flex-end;align-items:center;gap:12px;min-width:0;display:flex}.gv-side-home{justify-content:flex-start}.gv-logo{object-fit:contain;flex:none;width:52px;height:52px}.gv-team-name{letter-spacing:-.2px;font-size:18px;font-weight:700}.gv-side:hover .gv-team-name{color:var(--accent-deep)}.gv-center{flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.gv-scoreline{font-family:var(--mono);align-items:baseline;gap:14px;font-size:36px;font-weight:700;line-height:1;display:flex}.gv-score{color:var(--muted)}.gv-score.win{color:var(--text)}.gv-dash{color:var(--border);font-size:22px}.gv-final{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-top:6px;font-size:11px}.gv-date{color:var(--muted);font-size:12px}@media (max-width:560px){.gv-team-name{font-size:14px}.gv-scoreline{font-size:30px}.gv-logo{width:40px;height:40px}}.gv-stats{border-top:1px solid var(--border);justify-content:center;gap:34px;margin-top:16px;padding-top:14px}.gv-stats .stat{align-items:center}.statgrid{flex-wrap:wrap;gap:26px;margin-top:4px;display:flex}.stat{flex-direction:column;display:flex}.stat .v{font-size:18px;font-weight:600;font-family:var(--mono)}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px}.collapse-head{cursor:pointer;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.collapse-head .chev{color:var(--accent);transition:transform .12s}.collapse-head.open .chev{transform:rotate(90deg)}.two-col{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:760px){.two-col{grid-template-columns:1fr}}table.players{border-collapse:collapse;width:100%}table.players caption{text-align:left;color:var(--accent-deep);padding:4px 0;font-weight:600}table.players th{text-align:right;color:var(--muted);padding:3px 6px;font-size:11px;font-weight:600}table.players th:first-child,table.players td:first-child{text-align:left}table.players td{border-bottom:1px solid var(--accent-softer);font-variant-numeric:tabular-nums;padding:3px 6px}.period-section{margin-bottom:10px}.period-head{z-index:2;background:var(--accent-deep);color:#fff;border-radius:var(--radius);cursor:pointer;align-items:center;gap:12px;padding:6px 12px;font-size:13px;font-weight:600;display:flex;position:sticky;top:0}.period-head .pscore{font-family:var(--mono);opacity:.9;font-weight:400}.timeline{border-left:2px solid var(--border);margin:8px 0 8px 10px;padding-left:0}.stint{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin:6px 0 6px 14px;position:relative;overflow:hidden}.stint.overload{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad) inset}.stint-head{cursor:pointer;background:var(--accent-softer);border-bottom:1px solid var(--accent-softer);align-items:center;gap:10px;padding:6px 10px;display:flex}.stint-head:hover{background:var(--accent-soft)}.clk{font-family:var(--mono);color:var(--muted);min-width:96px;font-size:12px}.strength{font-family:var(--mono);background:var(--accent-soft);color:var(--accent-deep);border-radius:4px;padding:1px 7px;font-size:12px;font-weight:600}.strength.special{color:var(--warn);background:#fbeede}.dur{color:var(--muted);font-size:12px}.xgf{font-family:var(--mono);margin-left:auto;font-size:12px}.xgf .h{color:var(--accent-deep)}.xgf .a{color:var(--warn)}.stint-body{padding:8px 10px}.lines{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px;display:grid}.line{background:var(--accent-softer);border-radius:6px;padding:6px 8px}.line.home{background:var(--home)}.line.away{background:var(--away)}.line .lab{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:2px;font-size:10px}.line .names{font-size:12.5px}.line .g{color:var(--muted)}.events{margin:4px 0 0;padding:0;list-style:none}.events li{border-top:1px dashed var(--accent-softer);padding:2px 0;font-size:12.5px}.events li .ev-line{align-items:baseline;gap:8px;display:flex}.events li.clickable .ev-line{cursor:pointer}.events li.clickable:hover .ev-line{background:var(--accent-softer)}.events li .et{font-family:var(--mono);color:var(--muted);min-width:64px;font-size:11px}.ev-expand{color:var(--accent);margin-left:6px;font-size:10px}.shot-card{background:var(--accent-softer);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-start;gap:16px;margin:6px 0 8px 64px;padding:10px;display:flex}.rink{background:#fbfdff;border-radius:10px;flex:none}table.shot-meta{border-collapse:collapse;font-size:12px}table.shot-meta th{text-align:right;color:var(--muted);white-space:nowrap;padding:2px 8px 2px 0;font-weight:600}table.shot-meta td{font-variant-numeric:tabular-nums;padding:2px 0}.ev-type{text-transform:capitalize;min-width:96px;font-weight:600}.ev-goal{color:var(--bad)}.ev-penalty{color:var(--warn)}.ev-shot{color:var(--accent-deep)}.ev-xg{font-family:var(--mono);color:var(--muted)}.flag-large{color:var(--bad);font-weight:600}.changes{background:var(--accent-softer);border-bottom:1px solid var(--accent-softer);flex-wrap:wrap;gap:14px;padding:3px 10px 5px;font-size:11.5px;display:flex}.changes .grp{color:var(--muted)}.changes .on{color:var(--good);font-weight:600}.changes .off{color:var(--bad);font-weight:600}.changes .on a,.changes .off a{color:inherit}.changes .on a:hover,.changes .off a:hover{text-decoration:underline}.changes .start{color:var(--muted);font-style:italic}.players th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.players th.sortable:hover{color:var(--accent-deep)}.muted{color:var(--muted)}.loading{text-align:center;color:var(--muted);padding:40px}.backlink{margin-bottom:12px;font-size:13px;display:inline-block}@keyframes sk-shimmer{to{transform:translate(100%)}}.sk{background:var(--accent-softer);vertical-align:middle;border-radius:5px;display:inline-block;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);animation:1.25s infinite sk-shimmer;position:absolute;inset:0;transform:translate(-100%)}.sk-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:9px 0;display:flex}.sk-row:first-child{border-top:0}.brand-name{font-size:16px}.brand-y{color:var(--accent-deep);font-weight:800}.prose{max-width:820px}.prose h1{letter-spacing:-.4px;margin:0 0 4px;font-size:26px}.prose h2{margin:0 0 10px;font-size:17px}.prose h3{color:var(--accent-deep);margin:20px 0 6px;font-size:14.5px}.prose p{margin:0 0 12px}.prose ul{margin:0 0 4px;padding-left:20px}.prose li{margin-bottom:8px}.prose em{color:var(--muted);font-style:italic}.about-hero{align-items:center;gap:18px;display:flex}.about-hero .lede{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.xg-controls{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:12px;display:flex}.xg-controls label{color:var(--muted);flex-direction:column;gap:3px;font-size:12.5px;display:flex}.xg-controls label.chk{color:var(--text);flex-direction:row;align-items:center;gap:6px;padding-top:16px}.xg-controls select{border:1px solid var(--border);background:#fff;border-radius:6px;padding:4px 8px;font-size:13px}.xg-rink{border:1px solid var(--border);background:#fbfdff;border-radius:10px;display:block}.xg-legend{color:var(--muted);align-items:center;gap:8px;margin-top:8px;font-size:11.5px;display:flex}.xg-legend .bar{border-radius:3px;width:200px;height:10px}.mx .panel{max-width:680px;margin-left:auto;margin-right:auto}.mx .panel.wide{max-width:none}.mx-h3{margin:18px 0 4px;font-size:13.5px}.eq{background:var(--accent-softer);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);padding:10px 14px;font-size:12px;line-height:1.7;overflow-x:auto}.eqs{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg, #fff 55%, var(--accent-softer));margin:14px 0;overflow:hidden}.stage{padding:12px 16px 13px}.stage+.stage{border-top:1px dashed var(--border)}.stage-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.stage-num{background:var(--accent-deep);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:11.5px;font-weight:700;display:inline-flex}.stage-name{letter-spacing:.05em;text-transform:uppercase;font-size:12.5px;font-weight:700}.stage-q{color:var(--muted);font-size:12.5px;font-style:italic}.stage-eq{white-space:nowrap;padding-left:28px;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:2;overflow-x:auto}.eq-line{white-space:nowrap}.eq-line.cont{padding-left:3.6em}.stage-eq sub{font-size:.68em}.stage-eq .op{color:var(--muted)}.term{cursor:help;border-radius:5px;outline:none;margin:0 1px;padding:1.5px 6px;font-style:italic}.term:hover,.term:focus{box-shadow:0 0 0 1.5px}.term.player{background:var(--accent-soft);color:var(--accent-deep)}.term.tm{color:#26744c;background:#e2f3e9}.term.opp{color:#ac4343;background:#fbeaea}.term.base{color:#55677a;background:#eceff3}.term.fn{color:#2c4257;background:0 0;border-bottom:1px dotted #7e99b0;border-radius:0;padding:1.5px 2px;font-style:normal}.eq-hint{border-top:1px solid var(--border);min-height:40px;color:var(--muted);background:#fff;align-items:center;padding:8px 16px;font-size:12.5px;display:flex}.eq-hint b{color:var(--text);font-family:Georgia,serif;font-style:italic;font-weight:700}.eq-legend{flex-wrap:wrap;flex:1;align-items:center;gap:6px 16px;display:flex}.eq-legend .sw{vertical-align:-1.5px;border-radius:3px;width:11px;height:11px;margin-right:5px;display:inline-block}.eq-legend .sw.player{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-deep)}.eq-legend .sw.tm{background:#e2f3e9;box-shadow:inset 0 0 0 1px #26744c}.eq-legend .sw.opp{background:#fbeaea;box-shadow:inset 0 0 0 1px #ac4343}.eq-legend .sw.base{background:#eceff3;box-shadow:inset 0 0 0 1px #55677a}.eq-legend .lg-note{margin-left:auto;font-style:italic}.xg-rink.clickable{cursor:crosshair}.shot-readout{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-top:10px;font-size:13px;display:flex}.shot-readout .big{color:var(--text);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.lab-picker{flex-wrap:wrap;align-items:flex-start;gap:10px 16px;margin-bottom:6px;display:flex}.typeahead{position:relative}.typeahead input{border:1px solid var(--border);background:#fff;border-radius:7px;width:220px;padding:7px 10px;font-size:13px}.ta-list{z-index:30;border:1px solid var(--border);background:#fff;border-radius:7px;width:260px;margin:2px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;box-shadow:0 6px 18px #1b2a3a1f}.ta-list li{cursor:pointer;border-radius:5px;padding:6px 8px;font-size:13px}.ta-list li:hover{background:var(--accent-soft)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:5px 11px;font-size:12px}.chip:hover{border-color:var(--accent);color:var(--accent-deep)}.chip.active{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent);font-weight:600}.lab-loaded{color:var(--muted);margin:6px 0 12px;font-size:12.5px}.lab-grid{grid-template-columns:minmax(280px,330px) 1fr;align-items:start;gap:22px;display:grid}@media (max-width:860px){.lab-grid{grid-template-columns:1fr}}.slider-group{margin-bottom:14px}.slider-group h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 6px;font-size:12px}.slider-row{margin-bottom:10px}.slider-row input[type=range],.war-row input[type=range]{width:100%;accent-color:var(--accent-deep)}.slider-head{justify-content:space-between;font-size:13px;display:flex}.slider-head .muted,.lab-loaded .muted,.ta-list .muted,.fv .muted{color:var(--muted);font-variant-numeric:tabular-nums}.slider-sub{color:var(--muted);font-size:11.5px}.out-block{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin-bottom:12px;padding:12px 14px}.out-block.accent{background:var(--accent-softer)}.out-block h3{margin:0 0 8px;font-size:13.5px}.funnel .frow{grid-template-columns:150px 1fr 110px;align-items:center;gap:10px;margin-bottom:6px;display:grid}.funnel .fl{color:var(--muted);font-size:12.5px}.funnel .frow.total .fl,.funnel .frow.total .fv{color:var(--text);font-weight:700}.funnel .fv{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.hbar{background:var(--accent-soft);border-radius:4px;height:12px;display:block;overflow:hidden}.hbar span{border-radius:4px;height:100%;transition:width 80ms linear;display:block}.wbar{background:var(--accent-soft);border-radius:4px;height:12px;display:block;position:relative}.wbar .zero{background:var(--muted);opacity:.55;width:1.5px;position:absolute;top:-1px;bottom:-1px;left:50%}.wbar .fill{border-radius:3px;transition:left 80ms linear,width 80ms linear;position:absolute;top:0;bottom:0}.out-note{color:var(--muted);margin-top:8px;font-size:11.5px}.war-row{grid-template-columns:1fr auto;align-items:center;gap:18px;display:grid}.war-num{text-align:right}.war-num .big{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;display:block}.war-num .k{color:var(--muted);font-size:11.5px}.port-note{color:var(--good);margin:10px 0 0;font-size:12px}.table-scroll{overflow-x:auto}.repl-table td.num{text-align:right;font-variant-numeric:tabular-nums}.xg-imp{flex-direction:column;gap:5px;display:flex}.xg-imp-row{grid-template-columns:210px 1fr 48px;align-items:center;gap:10px;font-size:12.5px;display:grid}.xg-imp-name{color:var(--text)}.xg-imp-bar{background:var(--accent-softer);border-radius:4px;height:14px;overflow:hidden}.xg-imp-bar span{background:var(--accent-deep);border-radius:4px;height:100%;display:block}.xg-imp-val{text-align:right;font-family:var(--mono);color:var(--muted)}@media (max-width:560px){.xg-imp-row{grid-template-columns:130px 1fr 40px}}.metric-box.has-detail{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.metric-box.has-detail:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 3px 12px #2f6cb024}.flip-overlay{z-index:50;perspective:1600px;background:#0f233700;justify-content:center;align-items:center;padding:20px;transition:background .4s;display:flex;position:fixed;inset:0}.flip-overlay.on{background:#0f233773}.flip-inner{width:min(560px,92vw);transform-style:preserve-3d;transform-origin:50%;transition:transform .55s cubic-bezier(.35,.1,.25,1);position:relative}.flip-front,.flip-back{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);backface-visibility:hidden;overflow:hidden;box-shadow:0 12px 40px #0a1e324d}.flip-front{flex-direction:column;display:flex;position:absolute;inset:0}.flip-back{max-height:84vh;overflow-y:auto;transform:rotateY(180deg)}.flip-back-body{padding:10px 16px 16px}.flip-back-body>.mb-val{font-size:22px}.flip-close{color:inherit;opacity:.65;cursor:pointer;background:0 0;border:0;padding:0 0 0 10px;font-size:20px;line-height:1}.flip-close:hover{opacity:1}.modal-body{color:var(--text);font-size:12.5px;line-height:1.55}.modal-body p{margin:8px 0 0}.modal-body .modal-note{color:var(--muted);font-size:11.5px}table.eq{border-collapse:collapse;width:100%;margin:10px 0 2px;font-size:12.5px}table.eq td{border-bottom:1px solid var(--accent-soft);padding:4px 6px}table.eq td.num{text-align:right;font-family:var(--mono);white-space:nowrap}table.eq tr.eq-sum td{border-top:2px solid var(--border);font-weight:600}table.eq tr.eq-res td{color:var(--accent-deep);border-bottom:0;font-weight:700}
