:root{--brand-violet:#7c3aed;--brand-indigo:#4f46e5;--brand-cyan:#06b6d4;--brand-magenta:#d946ef;--brand-gradient:linear-gradient(135deg,var(--brand-violet),var(--brand-indigo) 45%,var(--brand-cyan));--os-bg:#05060f;--bg:#f5f4fa;--side:#ffffff;--surface:#ffffff;--surface-2:#f0eef8;--ink:#16142a;--ink-2:#4a4762;--muted:#6f6c8a;--line:#e2dff0;--accent:#6d28d9;--accent-soft:#efe7fe;--ok:#047857;--ok-soft:#e3f6ee;--warn:#b45309;--warn-soft:#fdf1dc;--err:#dc2626;--err-soft:#fde6e6;--ia:#7c3aed;--ia-soft:#f1eafe;--track:#e8e5f3;--shadow:0 1px 2px rgba(22,20,42,.06);--f-display:"Sora",ui-sans-serif,system-ui,sans-serif;--f-body:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#05060f;--side:#090a17;--surface:#0d0e1c;--surface-2:#151632;--ink:#ecebf7;--ink-2:#b9b6d3;--muted:#8a87a8;--line:#23244a;--accent:#a78bfa;--accent-soft:#221a45;--ok:#34d399;--ok-soft:#0f2a22;--warn:#fbbf24;--warn-soft:#2d2410;--err:#f87171;--err-soft:#331617;--ia:#a78bfa;--ia-soft:#1d1640;--track:#1b1c3a;--shadow:none}}:root[data-theme=dark]{color-scheme:dark;--bg:#05060f;--side:#090a17;--surface:#0d0e1c;--surface-2:#151632;--ink:#ecebf7;--ink-2:#b9b6d3;--muted:#8a87a8;--line:#23244a;--accent:#a78bfa;--accent-soft:#221a45;--ok:#34d399;--ok-soft:#0f2a22;--warn:#fbbf24;--warn-soft:#2d2410;--err:#f87171;--err-soft:#331617;--ia:#a78bfa;--ia-soft:#1d1640;--track:#1b1c3a;--shadow:none}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ms{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;vertical-align:middle;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}.page{max-width:1440px;margin:0 auto;padding:clamp(16px,3vw,32px)}.head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px}.head h1{font:600 24px/1.2 var(--f-display);margin:0;letter-spacing:-.01em}.head p{margin:4px 0 0;color:var(--muted);font-size:14px;max-width:74ch}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.grow{flex:1}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:8px 14px;font-weight:500;font-size:13.5px;text-decoration:none;color:var(--ink)}.btn:hover:not(:disabled){border-color:var(--accent)}.btn.pri{background:var(--brand-gradient);border-color:transparent;color:#fff}.btn.ok{background:var(--ok);border-color:transparent;color:#fff}.btn.danger{color:var(--err);border-color:var(--err)}.btn.sm{padding:5px 10px;font-size:12.5px}.btn .ms{font-size:18px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px}.grid.w3{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.lay{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:1000px){.lay{grid-template-columns:1fr}}.card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--surface);min-width:0;box-shadow:var(--shadow)}.card h2{font:600 15px/1.3 var(--f-display);margin:0 0 12px;display:flex;align-items:center;gap:8px}.stack{display:grid;gap:16px}.kpi .l{font-size:12.5px;color:var(--muted)}.kpi .v{font:600 24px/1.2 var(--f-display);font-variant-numeric:tabular-nums;margin-top:4px}.kpi .s{font-size:12.5px;color:var(--muted);margin-top:2px}.kpi{border-left:4px solid var(--accent)}.kpi.ok{border-left-color:var(--ok)}.kpi.warn{border-left-color:var(--warn)}.kpi.err{border-left-color:var(--err)}.kpi.info{border-left-color:var(--brand-cyan)}.num,.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12.5px}.tbl{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{font:600 11px/1.3 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}td.r,th.r{text-align:right}tr:last-child td{border-bottom:0}tr.click{cursor:pointer}tr.click:hover td{background:var(--surface-2)}.pill{display:inline-block;font:600 11px/1 var(--f-body);padding:4px 8px;border-radius:999px;white-space:nowrap}.p-ok{background:var(--ok-soft);color:var(--ok)}.p-warn{background:var(--warn-soft);color:var(--warn)}.p-err{background:var(--err-soft);color:var(--err)}.p-ac{background:var(--accent-soft);color:var(--accent)}.p-mut{background:var(--surface-2);color:var(--muted)}.p-info{background:#06b6d424;color:#0e7490}:root[data-theme=dark] .p-info{color:#22d3ee}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .p-info{color:#22d3ee}}.bar{height:8px;border-radius:4px;background:var(--track);overflow:hidden;display:flex}.bar i{display:block;height:100%}.bar .a{background:var(--brand-violet)}.bar .b{background:var(--brand-cyan)}.bar .c{background:var(--warn)}.bar .e{background:var(--err)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted);margin-top:8px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;margin-bottom:14px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:9px 14px;font-size:13.5px;color:var(--muted);white-space:nowrap}.tabs button.on{color:var(--accent);border-color:var(--accent);font-weight:600}.empty{border:1px dashed var(--line);border-radius:12px;padding:26px;text-align:center;color:var(--muted);font-size:13.5px}.empty b{display:block;color:var(--ink);margin-bottom:4px;font-size:15px}.err-box{border:1px solid var(--err);background:var(--err-soft);color:var(--err);border-radius:12px;padding:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.skel{border-radius:10px;background:linear-gradient(90deg,var(--surface-2),var(--track),var(--surface-2));background-size:200% 100%;animation:sk 1.2s infinite;min-height:18px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}label.f{display:grid;gap:5px;font-size:12.5px;color:var(--ink-2);font-weight:500;min-width:0}label.f input,label.f select,label.f textarea,.inp{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:9px 11px;font-size:14px;color:var(--ink)}label.f input:focus,label.f select:focus,label.f textarea:focus,.inp:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.fe{color:var(--err);font-size:12px;font-weight:400}.hint{color:var(--muted);font-size:12px;font-weight:400}.warnbox{border:1px solid var(--warn);background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:10px 12px;font-size:13.5px;display:flex;gap:8px;align-items:flex-start}.infobox{border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13.5px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 11px;font-size:12.5px;color:var(--ink-2)}.chip.on{background:var(--brand-gradient);color:#fff;border-color:transparent}.toast{position:fixed;right:16px;bottom:16px;z-index:60;max-width:min(420px,100vw - 32px);border-radius:12px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;box-shadow:0 8px 30px #00000040;font-size:14px}.toast.err{background:var(--err-soft);color:var(--err);border:1px solid var(--err)}.toast.ok{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok)}.drawer-bg{position:fixed;inset:0;background:#05060f8c;z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);background:var(--surface);border-left:1px solid var(--line);z-index:41;overflow-y:auto;padding:20px;display:grid;gap:14px;align-content:start}.drawer h2{margin:0;font:600 18px var(--f-display)}
