:root{--bg: #f8fafc;--panel: #ffffff;--panel-2: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--primary: #4f46e5;--primary-weak: #eef2ff;--ok: #16a34a;--ok-weak: rgb(22 163 74 / .1);--warn: #d97706;--warn-weak: rgb(217 119 6 / .1);--err: #dc2626;--err-weak: rgb(220 38 38 / .1);--info: #0284c7;--info-weak: rgb(2 132 199 / .1);--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgb(15 23 42 / .06), 0 1px 1px rgb(15 23 42 / .04);--font: "Inter", "Segoe UI", "Tahoma", "Arial", sans-serif;--mono: "JetBrains Mono", "Consolas", "Courier New", monospace;--env-prod: #16a34a;--env-prod-weak: rgb(22 163 74 / .1);--env-test: #8b5cf6;--env-test-weak: rgb(139 92 246 / .1);--env-replay: #d97706;--env-replay-weak: rgb(217 119 6 / .1);--chart-1: #4f46e5;--chart-2: #0ea5e9;--chart-3: #14b8a6;--chart-4: #f59e0b;--chart-5: #ec4899;--ease: cubic-bezier(.2, .8, .2, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #090d16;--panel: #111726;--panel-2: #0d1420;--border: #1e293b;--text: #e2e8f0;--muted: #8695ab;--primary: #818cf8;--primary-weak: #1e2247;--ok: #34d399;--ok-weak: rgb(52 211 153 / .12);--warn: #fbbf24;--warn-weak: rgb(251 191 36 / .12);--err: #f87171;--err-weak: rgb(248 113 113 / .12);--info: #38bdf8;--info-weak: rgb(56 189 248 / .12);--shadow: 0 1px 3px rgb(0 0 0 / .5);--env-prod: #34d399;--env-prod-weak: rgb(52 211 153 / .12);--env-test: #a78bfa;--env-test-weak: rgb(167 139 250 / .12);--env-replay: #fbbf24;--env-replay-weak: rgb(251 191 36 / .12)}}:root[data-theme=dark]{--bg: #090d16;--panel: #111726;--panel-2: #0d1420;--border: #1e293b;--text: #e2e8f0;--muted: #8695ab;--primary: #818cf8;--primary-weak: #1e2247;--ok: #34d399;--ok-weak: rgb(52 211 153 / .12);--warn: #fbbf24;--warn-weak: rgb(251 191 36 / .12);--err: #f87171;--err-weak: rgb(248 113 113 / .12);--info: #38bdf8;--info-weak: rgb(56 189 248 / .12);--shadow: 0 1px 3px rgb(0 0 0 / .5);--env-prod: #34d399;--env-prod-weak: rgb(52 211 153 / .12);--env-test: #a78bfa;--env-test-weak: rgb(167 139 250 / .12);--env-replay: #fbbf24;--env-replay-weak: rgb(251 191 36 / .12)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--primary);text-decoration:none}.shell-wrap{display:flex;flex-direction:column;height:100vh}.shell{display:grid;grid-template-columns:250px 1fr;flex:1;min-height:0}.sidebar{background:var(--panel);border-inline-end:1px solid var(--border);overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:2px}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 16px}.brand .logo{width:34px;height:34px;border-radius:9px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px;flex:none}.brand h1{font-size:15px;margin:0}.brand small{color:var(--muted);font-size:11px;display:block}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text);cursor:pointer;border:0;background:none;font:inherit;width:100%;text-align:start}.nav-link:hover{background:var(--panel-2)}.nav-link.active{background:var(--primary-weak);color:var(--primary);font-weight:600}.nav-link svg{flex:none}.main{display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.topbar .title{font-size:16px;font-weight:700;flex:1;min-width:120px}.content{flex:1;overflow-y:auto;padding:20px}.burger{display:none}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;width:260px;z-index:40;transform:translate(100%);transition:transform .2s;box-shadow:0 0 30px #00000040}[dir=ltr] .sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.burger{display:inline-flex}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:35}}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card h2{margin:0 0 12px;font-size:14px;font-weight:700}.grid{display:grid;gap:14px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat .v{font-size:26px;font-weight:800;margin-top:2px}.stat .l{color:var(--muted);font-size:12px}.stat.ok .v{color:var(--ok)}.stat.warn .v{color:var(--warn)}.stat.err .v{color:var(--err)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.pill.ok{background:#16a34a1f;color:var(--ok)}.pill.warn{background:#d977061f;color:var(--warn)}.pill.err{background:#dc26261f;color:var(--err)}.pill.info{background:#0284c71f;color:var(--info)}.pill.muted{background:var(--panel-2);color:var(--muted)}button.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 12px;font:inherit;font-weight:600;cursor:pointer}button.btn:hover{background:var(--panel-2)}button.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.btn.danger{background:var(--err);border-color:var(--err);color:#fff}button.btn:disabled{opacity:.5;cursor:not-allowed}button.btn svg{width:16px;height:16px}input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font:inherit}textarea{font-family:var(--mono);font-size:12px}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:start;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--border);white-space:nowrap}.tbl td{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}.tbl tr:hover td{background:var(--panel-2)}.mono{font-family:var(--mono);font-size:12px}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.between{justify-content:space-between}.spacer{flex:1}.mt{margin-top:14px}.mb{margin-bottom:14px}pre.json{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:var(--mono);font-size:12px;overflow:auto;max-height:420px;white-space:pre-wrap;word-break:break-word}.empty{padding:26px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:10px}.loading{padding:30px;text-align:center;color:var(--muted)}.spinner{width:18px;height:18px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:60;padding:20px}.modal{background:var(--panel);border-radius:var(--radius);border:1px solid var(--border);max-width:760px;width:100%;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0000004d}.modal header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center}.modal header h3{margin:0;flex:1;font-size:15px}.modal .body{padding:18px;overflow:auto}.modal footer{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.toasts{position:fixed;bottom:18px;inset-inline-end:18px;z-index:80;display:flex;flex-direction:column;gap:8px}.toast{background:var(--panel);border:1px solid var(--border);border-inline-start:4px solid var(--info);border-radius:10px;padding:10px 14px;box-shadow:var(--shadow);min-width:220px;max-width:380px}.toast.ok{border-inline-start-color:var(--ok)}.toast.err{border-inline-start-color:var(--err)}.toast.warn{border-inline-start-color:var(--warn)}.feed{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:12px}.feed .ev{display:flex;gap:10px;padding:5px 8px;border-radius:6px;border-bottom:1px solid var(--border)}.feed .ev:hover{background:var(--panel-2)}.feed .t{color:var(--muted);flex:none}.feed .ty{color:var(--info);flex:none;min-width:130px}.feed .p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-wrap{height:100vh;display:grid;place-items:center;background:var(--bg)}.login-card{width:340px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px;box-shadow:var(--shadow)}.login-card h1{font-size:20px;margin:0 0 4px;display:flex;align-items:center;gap:10px}.login-card p{color:var(--muted);margin:0 0 18px}.statusbar{font-size:12px;color:var(--muted);display:flex;gap:16px;align-items:center;flex-wrap:wrap}.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}.env-strip{height:3px;width:100%;flex:none}.env-strip.prod{background:var(--env-prod)}.env-strip.test{background:repeating-linear-gradient(135deg,var(--env-test),var(--env-test) 8px,color-mix(in srgb,var(--env-test) 60%,transparent) 8px,color-mix(in srgb,var(--env-test) 60%,transparent) 16px)}.env-strip.replay{background:var(--env-replay)}.env-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.env-badge .dot{width:6px;height:6px;border-radius:50%}.env-badge.prod{background:var(--env-prod-weak);color:var(--env-prod)}.env-badge.prod .dot{background:var(--env-prod);box-shadow:0 0 0 3px var(--env-prod-weak);animation:pulse-dot 2s var(--ease) infinite}.env-badge.test{background:var(--env-test-weak);color:var(--env-test)}.env-badge.replay{background:var(--env-replay-weak);color:var(--env-replay)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.ticker{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel)}.ticker .verdict{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px}.ticker .verdict .dot{width:8px;height:8px;border-radius:50%;flex:none}.ticker .verdict.ok .dot{background:var(--ok);box-shadow:0 0 0 4px var(--ok-weak)}.ticker .verdict.warn .dot{background:var(--warn);box-shadow:0 0 0 4px var(--warn-weak)}.ticker .verdict.err .dot{background:var(--err);box-shadow:0 0 0 4px var(--err-weak)}.ticker .sep{width:1px;align-self:stretch;background:var(--border)}.ticker .metric{display:flex;flex-direction:column;gap:1px}.ticker .metric .n{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:13px}.ticker .metric .l{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em}.kpi-card{display:flex;flex-direction:column;gap:6px}.kpi-card .top{display:flex;justify-content:space-between;align-items:baseline}.kpi-card .label{color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.kpi-card .delta{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.kpi-card .delta.up{color:var(--ok)}.kpi-card .delta.down{color:var(--err)}.kpi-card .value{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.kpi-card .spark{height:36px;margin-top:2px}.unavailable{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--warn-weak);border:1px dashed color-mix(in srgb,var(--warn) 50%,transparent);font-size:12px;color:var(--warn)}.unavailable svg{flex:none}.provider-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.provider-row:last-child{border-bottom:none}.provider-row .name{font-weight:600;min-width:110px}.provider-row .cap-bar{flex:1;height:6px;border-radius:999px;background:var(--panel-2);overflow:hidden;min-width:60px}.provider-row .cap-bar>div{height:100%;border-radius:999px;background:var(--primary);transition:width .3s var(--ease)}.provider-row .cap-text{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--muted);min-width:48px;text-align:end}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}@media(min-width:861px)and (max-width:1180px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tab{padding:9px 14px;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}
