:root{--bg:#f3f5f4;--panel:#fff;--panel2:#f8faf9;--line:#dfe5e1;--line2:#eef1ef;--text:#182420;--muted:#65756d;--muted2:#8a978f;--green:#0b5d3b;--green2:#0e7a4d;--green-soft:#e6f5ec;--gold:#b8901a;--ok:#1f8f5a;--okbg:#e6f5ec;--warn:#b26a00;--warnbg:#fff3df;--bad:#c0392b;--badbg:#fdecea;--mutedbg:#eef1ef;--grid:#e6ebe8;--baseline:#c9d2cd;--shadow:0 1px 2px #1824200d, 0 1px 1px #18242008;--focus:#0e7a4d;--nav-w:232px;--seq-1:#d9efe3;--seq-2:#9fd3b8;--seq-3:#55ad84;--seq-4:#1f8f5a;--seq-5:#0b5d3b;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}:root[data-theme=dark]{--bg:#0f1613;--panel:#161d1a;--panel2:#1b2320;--line:#27322d;--line2:#1f2925;--text:#e6ece8;--muted:#9aa8a0;--muted2:#6f7d75;--green:#4fc48f;--green2:#3fb27f;--green-soft:#15291f;--gold:#d4ad3f;--ok:#4fc48f;--okbg:#15291f;--warn:#e0a545;--warnbg:#2d2413;--bad:#ef6b5e;--badbg:#331b18;--mutedbg:#1f2925;--grid:#222c27;--baseline:#34423b;--shadow:none;--focus:#4fc48f;--seq-1:#1d3a2c;--seq-2:#24583f;--seq-3:#2d7a56;--seq-4:#3fa574;--seq-5:#6fd4a6}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font:14px/1.5 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;min-width:0}a{color:var(--green2);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit;color:inherit}h1,h2,h3{margin:0}h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:24px 0 10px;font-size:13px;font-weight:700;display:flex}h2 .n{color:var(--muted2);letter-spacing:0;text-transform:none;font-weight:600}h2 .right{text-transform:none;letter-spacing:0;margin-left:auto;font-weight:500}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.r{text-align:right}.nowrap{white-space:nowrap}.app{grid-template-columns:var(--nav-w) minmax(0, 1fr);min-height:100vh;display:grid}.nav{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:4px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.nav .brand{align-items:center;gap:10px;padding:6px 8px 16px;display:flex}.nav .brand .logo{background:var(--green);color:#fff;letter-spacing:-.02em;border-radius:9px;place-items:center;width:34px;height:34px;font-size:15px;font-weight:800;display:grid}:root[data-theme=dark] .nav .brand .logo{color:#0f1613}.nav .brand .t{font-weight:700;line-height:1.15}.nav .brand .s{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.nav .sec{text-transform:uppercase;letter-spacing:.08em;color:var(--muted2);padding:14px 10px 4px;font-size:11px;font-weight:700}.nav a.item{color:var(--text);border-radius:8px;align-items:center;gap:10px;min-height:40px;padding:8px 10px;font-weight:500;display:flex}.nav a.item:hover{background:var(--line2);text-decoration:none}.nav a.item.on{background:var(--green);color:#fff}:root[data-theme=dark] .nav a.item.on{color:#0f1613}.nav a.item .dot{border-radius:50%;flex:none;width:9px;height:9px}.nav a.item .ico{opacity:.85;flex:none;width:18px;height:18px}.nav .spacer{flex:1}.nav .foot{color:var(--muted);border-top:1px solid var(--line);padding:10px;font-size:11.5px}.main{min-width:0}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 24px;display:flex;position:sticky;top:0}.topbar .title{margin-right:6px;font-size:16px;font-weight:700}.topbar .row1,.topbar .row2{display:contents}.topbar .row1 .title{order:0}.topbar .row2>*{order:1}.topbar .row1 .grow{order:2}.topbar .row1 .btn,.topbar .row1 .dropdown{order:3}.topbar .grow{flex:1}.content{max-width:1520px;margin:0 auto;padding:20px 24px 48px}.hamburger{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:none}.scrim{display:none}.seg{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg button,.seg a{cursor:pointer;color:var(--text);white-space:nowrap;background:0 0;border:0;min-height:34px;padding:6px 11px}.seg button:hover{background:var(--line2)}.seg button.on{background:var(--green);color:#fff}:root[data-theme=dark] .seg button.on{color:#0f1613}.btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;min-height:36px;padding:7px 12px;display:inline-flex}.btn:hover{background:var(--line2)}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}:root[data-theme=dark] .btn.primary{color:#0f1613}.btn.danger{color:var(--bad);border-color:var(--bad);background:0 0}.btn.icon{justify-content:center;width:36px;padding:0}.btn:disabled{opacity:.5;cursor:default}input.text,select.sel{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:36px;padding:7px 10px}input.text:focus,select.sel:focus,button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.search{min-width:220px}.dropdown{position:relative}.menu{background:var(--panel);border:1px solid var(--line);z-index:30;border-radius:10px;min-width:240px;padding:8px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.menu label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.menu label:hover{background:var(--line2)}.menu .row{align-items:center;gap:8px;padding:6px 8px;display:flex}.chip{background:var(--mutedbg);border-radius:999px;align-items:center;gap:6px;padding:2px 8px;font-size:12px;display:inline-flex}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 2px}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;min-width:0}.banner{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;display:flex}.banner .dot{background:var(--ok);border-radius:50%;flex:none;width:10px;height:10px}.banner .dot.warn{background:var(--warn)}.banner .dot.bad{background:var(--bad)}.banner .label{font-weight:700}.banner .sub{color:var(--muted)}.banner .actions{gap:8px;margin-left:auto;display:flex}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}@media (width<=1100px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}.tile{padding:14px 16px}.tile .k{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;gap:6px;font-size:11.5px;font-weight:700;display:flex}.tile .v{color:var(--green);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin:4px 0 2px;font-size:26px;font-weight:700;line-height:1.2}.tile .v.bad{color:var(--bad)}.tile .v.neutral{color:var(--text)}.tile .s{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;display:flex}.delta{font-variant-numeric:tabular-nums;font-weight:600}.delta.ok{color:var(--ok)}.delta.bad{color:var(--bad)}.delta.flat{color:var(--muted)}.tile .spark{height:28px;margin-top:6px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-21{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px;display:grid}.grid2>*,.grid3>*,.grid-21>*{min-width:0}.chart{margin-bottom:16px;padding:14px 16px 10px}.chart .ch{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.chart .ch .t{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px;font-weight:700}.chart .ch .sub{color:var(--muted2);font-size:12px}.chart .ch .tools{align-items:center;gap:6px;margin-left:auto;display:flex}.chart .plot{width:100%}.chart details{color:var(--muted);margin-top:6px;font-size:12px}.chart details summary{cursor:pointer}.tw{-webkit-overflow-scrolling:touch;border-radius:10px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:640px}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--panel2);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px;font-size:11.5px;font-weight:700;position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text)}th.sorted{color:var(--green2)}td{border-bottom:1px solid var(--line2);vertical-align:middle;padding:8px 12px}tbody tr:hover td{background:var(--line2)}tr.row-warn td{background:var(--warnbg)}tr.row-bad td{background:var(--badbg)}td.num,th.num{text-align:right}td .bar{background:var(--green2);opacity:.55;vertical-align:middle;border-radius:3px;height:6px;margin-left:8px;display:inline-block}.empty{text-align:center;color:var(--muted);padding:28px 16px}.pager{color:var(--muted);justify-content:flex-end;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;display:flex}.tfoot{color:var(--muted);border-top:1px solid var(--line2);justify-content:space-between;padding:8px 12px;font-size:12px;display:flex}.pill{white-space:nowrap;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;display:inline-block}.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}.pill.muted{background:var(--mutedbg);color:var(--muted)}.swatch{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block}.kv{grid-template-columns:170px 1fr;gap:6px 12px;padding:14px 16px;display:grid}.kv .k{color:var(--muted)}.note{color:var(--muted);margin:8px 0 16px;font-size:12.5px}.help{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:10px;margin:16px 0;padding:12px 16px;font-size:13px}.flash{background:var(--okbg);color:var(--ok);border-radius:8px;margin-bottom:12px;padding:10px 14px}.skeleton{background:linear-gradient(90deg, var(--line2), var(--line), var(--line2));background-size:200% 100%;border-radius:8px;animation:1.2s infinite sh}@keyframes sh{0%{background-position:200% 0}to{background-position:-200% 0}}.tabs{border-bottom:1px solid var(--line);gap:4px;margin:8px 0 16px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:500}.tabs button.on{color:var(--green2);border-bottom-color:var(--green2)}.summary-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex}.summary-head .big{font-size:22px;font-weight:700}.summary-head .actions{gap:8px;margin-left:auto;display:flex}.crumbs{color:var(--muted);margin-bottom:8px;font-size:12.5px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--green2)}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login .card{width:100%;max-width:380px;padding:28px}.login h1{margin-bottom:4px;font-size:18px}.login form{flex-direction:column;gap:10px;margin-top:16px;display:flex}.err{color:var(--bad);font-size:13px}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin:4px 0 2px;font-size:12px;display:flex}.legend span i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.inline-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.linklike{color:var(--green2);cursor:pointer;background:0 0;border:0;padding:0}.progress{background:var(--line2);border-radius:3px;height:6px;overflow:hidden}.progress i{background:var(--green2);height:100%;display:block}.hm{gap:2px;display:grid}.hm .cell{border-radius:3px;height:22px}.hm .lab{color:var(--muted);justify-content:center;align-items:center;font-size:11px;display:flex}@media (width<=1100px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.app{grid-template-columns:1fr}.nav{z-index:40;width:min(300px,86vw);transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:0 0 40px #0003}.nav.open{transform:none}.scrim.open{z-index:35;background:#00000059;display:block;position:fixed;inset:0}.hamburger{display:inline-flex}.topbar{padding:8px 12px}.content{padding:12px 12px 40px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tile .v{font-size:20px}.grid2,.grid3,.grid-21{grid-template-columns:1fr}.kv{grid-template-columns:120px 1fr}.search{width:100%;min-width:0}.topbar .row1{align-items:center;gap:8px;width:100%;display:flex}.topbar .row2{flex-wrap:wrap;gap:8px;width:100%;display:flex}.topbar .row1 .title{flex:1;margin:0}.topbar .seg.compare button{padding:6px 8px;font-size:13px}.banner .actions{width:100%;margin-left:0}}@media print{.nav,.topbar{display:none}.app{display:block}}.nav .brand{padding:4px 6px 14px}.nav .brand img{max-width:100%}.matrix td.cell{font-variant-numeric:tabular-nums;font-size:12.5px;transition:filter .1s}.matrix tbody tr:hover td.cell{filter:brightness(.96)}.matrix th,.matrix td{padding:6px 10px}.movers{flex-direction:column;gap:6px;display:flex}.mover{grid-template-columns:minmax(0,1.6fr) minmax(60px,1fr) auto;align-items:center;gap:10px;font-size:13px;display:grid}.mover .ml{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mover .mb{background:var(--line2);border-radius:4px;height:8px;overflow:hidden}.mover .mb i{border-radius:4px;height:100%;display:block}.mover .mv{white-space:nowrap;font-variant-numeric:tabular-nums}.search-box{flex:1;min-width:200px;max-width:420px}.search-box input{width:100%}.menu .sec{text-transform:uppercase;letter-spacing:.08em;color:var(--muted2);padding:8px 8px 2px;font-size:11px;font-weight:700}.login .logo-wrap{justify-content:center;margin-bottom:18px;display:flex}.stat-row{color:var(--muted);flex-wrap:wrap;gap:18px;font-size:13px;display:flex}.stat-row b{color:var(--text);font-variant-numeric:tabular-nums}.callout{border-left:3px solid var(--green2);background:var(--panel2);border-radius:0 8px 8px 0;margin:8px 0 16px;padding:10px 14px;font-size:13px}.callout.warn{border-left-color:var(--warn)}.callout.bad{border-left-color:var(--bad)}@media (width<=820px){.search-box{width:100%;max-width:none}.mover{grid-template-columns:minmax(0,1fr) auto}.mover .mb{display:none}}
