:root{--bg:#0E1417;--panel:#151D21;--panel-2:#121A1E;--line:#22303A;--line-2:#1C272D;--chip:#1E2A31;--ink:#E6EDEC;--ink-2:#B9C6C8;--muted:#8A9A9E;--accent:#5CC8C2;--accent-2:#2E8F8A;--accent-soft:#1E3A38;--accent-ink:#7FDCD5;--good:#4CC38A;--good-soft:#16332A;--good-ink:#6FD6A1;--warn:#E8A33D;--warn-soft:#43331A;--warn-ink:#F0B95E;--bad:#E5624F;--bad-soft:#3E1F1B;--bad-ink:#F08A7A;--mono:"IBM Plex Mono",ui-monospace,monospace;--sans:"IBM Plex Sans",system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--sans)}a{color:var(--accent)}a:hover{color:#8fe0db}button,input,select,textarea{font:inherit;color:inherit}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.acc{color:var(--accent)}.top{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--panel-2);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.02em;color:var(--ink);text-decoration:none}.nav{display:flex;flex-wrap:wrap;gap:4px}.nav a{padding:7px 12px;border-radius:6px;color:#9aaaae;text-decoration:none}.nav a.active{background:var(--chip);color:var(--ink)}.top .right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px;color:#9aaaae}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--good)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--bad)}main{padding:22px 24px 48px;max-width:1480px;margin:0 auto;display:flex;flex-direction:column;gap:18px}h1{margin:0;font-size:24px;font-weight:600}h2{margin:0;font-size:15px;font-weight:600}.head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px}.sub{color:var(--muted);font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.pad{padding:16px 18px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.kpi{background:var(--panel);padding:14px 16px;display:flex;flex-direction:column;gap:5px}.kpi .l{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.kpi .v{font-family:var(--mono);font-size:21px;font-weight:500}.kpi .s{font-size:12px;color:var(--muted)}.btn{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 13px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent-2);border-color:var(--accent-2);color:#0e1417;font-weight:500}.btn:disabled{opacity:.5;cursor:default}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:13px;padding:6px 11px;border-radius:99px;border:1px solid var(--line);background:var(--panel);color:var(--ink-2);cursor:pointer}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip{text-decoration:none;display:inline-block}.chip .n{font-family:var(--mono);opacity:.75;margin-left:4px}.tag{font-size:12px;padding:3px 8px;border-radius:4px;background:var(--chip);color:#9aaaae;white-space:nowrap}.tag.good{background:var(--good-soft);color:var(--good-ink)}.tag.warn{background:var(--warn-soft);color:var(--warn-ink)}.tag.bad{background:var(--bad-soft);color:var(--bad-ink)}.tag.acc{background:var(--accent-soft);color:var(--accent-ink)}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;padding:12px 14px}.filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1 1 150px}input,select,textarea{background:var(--bg);border:1px solid #2A3A43;border-radius:6px;padding:8px 10px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-2);outline-offset:0}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{background:var(--panel-2);color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;text-align:left;padding:10px 12px;white-space:nowrap}th.sort{cursor:pointer}th.sort:hover{color:var(--ink)}td{padding:9px 12px;border-top:1px solid var(--line-2)}td.r,th.r{text-align:right}tr.click{cursor:pointer}tr.click:hover td{background:#18232a}tfoot td{background:var(--panel-2);font-weight:500;border-top:1px solid #2A3A43}.stripe-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad)}.stripe-warn td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.grid2{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px;align-items:start}.grid-side{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.bar{height:6px;background:var(--chip);border-radius:3px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--accent)}.kv{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:5px 0;border-bottom:1px solid var(--line-2)}.kv span:first-child{color:var(--ink-2)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--ink-2)}.legend i{display:inline-block;width:12px;height:2px;vertical-align:middle;margin-right:5px}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.card{width:min(400px,100%);display:flex;flex-direction:column;gap:12px}.err{color:var(--bad-ink);font-size:13px}.empty{padding:28px;text-align:center;color:var(--muted)}.pager{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px;flex-wrap:wrap;gap:8px}.chart{width:100%}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c0e99;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal .panel{width:min(480px,100%)}@media (max-width:980px){.grid2,.grid-side{grid-template-columns:minmax(0,1fr)}main{padding:16px}.top{padding:10px 16px}}.article{max-width:760px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:10px}.article h1{font-size:30px;line-height:1.2}.article .lead{font-size:17px;color:var(--ink-2);margin:4px 0 8px}.prose{font-size:15.5px;line-height:1.7;color:var(--ink)}.prose h2{font-size:21px;margin:26px 0 8px}.prose h3{font-size:17px;margin:20px 0 6px}.prose p{margin:0 0 12px}.prose ul,.prose ol{margin:0 0 12px;padding-left:22px}.prose li{margin:4px 0}.prose strong{color:#fff}.prose a{color:var(--accent)}.prose table{margin:8px 0 16px;font-size:14px}.prose th{text-transform:none;letter-spacing:0;font-size:12.5px}.prose blockquote{margin:0 0 12px;padding:4px 14px;border-left:3px solid var(--accent-2);color:var(--ink-2)}.prose code{font-family:var(--mono);background:var(--chip);padding:1px 5px;border-radius:4px;font-size:13px}
