@import"https://fonts.googleapis.com/css2?family=Fira+Code:wght@500;600&family=Fira+Sans:wght@400;500;600;700&display=swap";:root{--font-body: "Fira Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-data: "Fira Code", ui-monospace, "Cascadia Mono", Consolas, monospace;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-18: 18px;--fs-22: 22px;--fs-26: 26px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--rad-s: 8px;--rad-m: 12px;--rad-l: 16px;--z-nav: 40;--z-menu: 100;--z-toast: 1000;--bg: #f2f5fa;--surface: #ffffff;--surface-2: #f7f9fc;--ink: #16233c;--ink-2: #44536e;--mut: #5d6b85;--line: #dfe6f0;--primary: #1b3a6b;--primary-hi: #10233f;--on-primary: #ffffff;--accent: #b97a16;--on-accent: #1d1503;--accent-hi: #9a6512;--pos: #128a3e;--pos-bg: #e3f5ea;--neg: #c0392b;--neg-bg: #fdecea;--warn: #b45309;--warn-bg: #fff4d6;--info-bg: #eaf1fb;--info: #2456b3;--ring: #2456b3;--shadow: 0 2px 10px rgba(16, 35, 63, .06);--shadow-menu: 0 10px 34px rgba(16, 35, 63, .18);--sidebar-a: #10233f;--sidebar-b: #1b3a6b;--sidebar-ink: #c7d2e4;--scrim: rgba(10, 18, 34, .5);--ch-s1: #3d6ba6;--ch-s2: #b97a16;--ch-total: #1b3a6b;--ch-pos: #128a3e;--ch-neg: #c0392b;--ch-grid: #e9eef6;--ch-tick: #5d6b85;--ch-cat: #3f4b5e;--ch-connect: #94a3b8;--ch-cursor: rgba(16, 35, 63, .05)}[data-theme=dark]{--bg: #0d1424;--surface: #16203a;--surface-2: #1b2745;--ink: #e8edf7;--ink-2: #b6c2d9;--mut: #8b99b4;--line: #27345a;--primary: #2c4c86;--primary-hi: #3a5f9f;--on-primary: #ffffff;--accent: #c08118;--on-accent: #171100;--accent-hi: #d9973a;--pos: #3fbf6f;--pos-bg: #10361f;--neg: #e2604f;--neg-bg: #3d1712;--warn: #d9973a;--warn-bg: #3a2a0c;--info-bg: #182c52;--info: #86aae4;--ring: #86aae4;--shadow: 0 2px 10px rgba(0, 0, 0, .35);--shadow-menu: 0 10px 34px rgba(0, 0, 0, .55);--sidebar-a: #0a1120;--sidebar-b: #142a4e;--sidebar-ink: #aebbd4;--scrim: rgba(0, 0, 0, .6);--ch-s1: #4d8ad0;--ch-s2: #c08118;--ch-total: #4d6ea8;--ch-pos: #3fbf6f;--ch-neg: #e2604f;--ch-grid: #223052;--ch-tick: #8b99b4;--ch-cat: #b6c2d9;--ch-connect: #55658a;--ch-cursor: rgba(255, 255, 255, .05)}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{font-family:var(--font-body);font-size:var(--fs-14);background:var(--bg);color:var(--ink);line-height:1.5}button{font:inherit;cursor:pointer}a{color:var(--info)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:4px}::selection{background:var(--accent);color:var(--on-accent)}.num,td.num,th.num,.kpi .v{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.shell{display:flex;min-height:100dvh}.sidebar{width:224px;flex:0 0 224px;background:linear-gradient(165deg,var(--sidebar-a),var(--sidebar-b));color:#fff;padding:var(--sp-6) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1);position:sticky;top:0;height:100dvh;z-index:var(--z-nav)}.sidebar .brand{font-size:20px;font-weight:700;letter-spacing:.5px;padding:0 10px;color:#fff}.sidebar .brand small{display:block;font-size:10.5px;letter-spacing:2px;opacity:.72;font-weight:600;margin-top:2px}.sidebar nav{margin-top:var(--sp-6);display:flex;flex-direction:column;gap:3px}.sidebar nav a{display:flex;align-items:center;gap:10px;min-height:40px;color:var(--sidebar-ink);text-decoration:none;padding:8px 12px;border-radius:10px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s}.sidebar nav a svg{flex:0 0 auto;opacity:.85}.sidebar nav a:hover{background:#ffffff14;color:#fff}.sidebar nav a.on{background:var(--accent);color:var(--on-accent)}.sidebar nav a.on svg{opacity:1}.sidebar .foot{margin-top:auto;font-size:11px;color:#8b9cb8;padding:0 10px;line-height:1.6}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:var(--z-nav)}.topbar .title{font-size:17px;font-weight:700}.topbar .who{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-13);color:var(--mut)}.content{padding:var(--sp-6) var(--sp-6) 60px;max-width:1240px;width:100%;margin:0 auto}.ph{display:flex;align-items:end;justify-content:space-between;gap:var(--sp-4);margin:0 0 var(--sp-4);flex-wrap:wrap}.ph h2{font-size:var(--fs-22);font-weight:700;letter-spacing:-.2px}.ph .sub{color:var(--mut);font-size:var(--fs-13);margin-top:2px}.ph .actions{display:flex;gap:var(--sp-2);align-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad-l);padding:var(--sp-5);box-shadow:var(--shadow);margin-bottom:var(--sp-4)}.panel h3{font-size:15px;font-weight:700}.panel .hint{font-size:var(--fs-12);color:var(--mut);margin:2px 0 var(--sp-3)}.panel .head{display:flex;align-items:start;justify-content:space-between;gap:var(--sp-3)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.grid2>.panel{margin-bottom:0}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin-bottom:var(--sp-4)}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad-l);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow)}.kpi .lab{font-size:11.5px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.kpi .v{font-size:24px;font-weight:600;margin-top:6px;font-family:var(--font-data);letter-spacing:-.5px}.kpi .row{display:flex;justify-content:space-between;align-items:center;margin-top:9px;gap:var(--sp-2)}.kpi .prev{font-size:12.5px;color:var(--mut)}.badge{font-size:var(--fs-12);font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.badge.up{background:var(--pos-bg);color:var(--pos)}.badge.down{background:var(--warn-bg);color:var(--warn)}.badge.neutral{background:var(--surface-2);color:var(--mut);border:1px solid var(--line)}.tag{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px}.tag.new{background:var(--info-bg);color:var(--info)}.tag.off{background:var(--surface-2);color:var(--mut)}.banner{border-radius:var(--rad-l);padding:var(--sp-4) var(--sp-5);margin:0 0 var(--sp-4);display:flex;gap:var(--sp-4);align-items:center;flex-wrap:wrap;border:1px solid}.banner .big{font-size:26px;font-weight:700;white-space:nowrap;font-family:var(--font-data)}.banner .txt{font-size:var(--fs-14)}.banner.pos{background:var(--pos-bg);border-color:color-mix(in srgb,var(--pos) 35%,transparent)}.banner.pos .big{color:var(--pos)}.banner.neg{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 35%,transparent)}.banner.neg .big{color:var(--warn)}table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line)}td.num,th.num{text-align:right}th{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:700}td.b{font-weight:600}tbody tr{transition:background .12s}tbody tr:hover{background:var(--surface-2)}tr.click{cursor:pointer}.tscroll{overflow:auto}.empty{color:var(--mut);text-align:center;padding:var(--sp-8) 0;font-size:var(--fs-13)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:9px 16px;min-height:38px;font-size:13.5px;font-weight:600;color:var(--on-primary);background:var(--primary);transition:background .15s,border-color .15s,opacity .15s}.btn:hover{background:var(--primary-hi)}.btn.gold{background:var(--accent);color:var(--on-accent)}.btn.gold:hover{background:var(--accent-hi)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:var(--neg-bg);color:var(--neg)}.btn.danger:hover{background:color-mix(in srgb,var(--neg) 22%,var(--neg-bg))}.btn:disabled{opacity:.5;cursor:default}.btn.sm{padding:6px 12px;min-height:32px;font-size:12.5px;border-radius:8px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 auto;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);transition:background .15s}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}label.f{display:block;font-size:var(--fs-12);font-weight:600;color:var(--ink-2);margin:var(--sp-3) 0 var(--sp-1)}input.f,select.f{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-height:40px;font-size:var(--fs-14);font-family:var(--font-body);background:var(--surface);color:var(--ink)}input.f::placeholder{color:var(--mut)}input.f:focus,select.f:focus{outline:2px solid var(--ring);outline-offset:0;border-color:transparent}.ferr{color:var(--neg);font-size:var(--fs-12);margin-top:var(--sp-1)}.err{background:var(--neg-bg);color:var(--neg);border:1px solid color-mix(in srgb,var(--neg) 30%,transparent);border-radius:10px;padding:10px 14px;font-size:13.5px;margin-top:var(--sp-3)}.okmsg{background:var(--pos-bg);color:var(--pos);border:1px solid color-mix(in srgb,var(--pos) 30%,transparent);border-radius:10px;padding:10px 14px;font-size:13.5px;margin-top:var(--sp-3)}.menu-wrap{position:relative}.avatar{width:36px;height:36px;flex:0 0 auto;border-radius:999px;border:1px solid var(--line);background:var(--primary);color:var(--on-primary);font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;z-index:var(--z-menu);background:var(--surface);border:1px solid var(--line);border-radius:var(--rad-m);box-shadow:var(--shadow-menu);padding:6px;font-size:var(--fs-13)}.menu .who-line{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}.menu .who-line .em{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.menu .who-line .rl{color:var(--mut);font-size:var(--fs-12);text-transform:capitalize}.menu button,.menu a{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;min-height:38px;border:0;background:none;border-radius:8px;color:var(--ink);font-size:var(--fs-13);font-weight:500;text-decoration:none}.menu button:hover,.menu a:hover{background:var(--surface-2)}.menu .danger{color:var(--neg)}.loginwrap{min-height:100dvh;display:grid;place-items:center;padding:var(--sp-4);background:linear-gradient(120deg,var(--sidebar-a),var(--sidebar-b))}.logincard{background:var(--surface);border-radius:18px;padding:34px 38px;width:min(400px,94vw);box-shadow:0 18px 60px #00000059}.logincard .brand{font-size:var(--fs-26);font-weight:700}.logincard .sub{color:var(--mut);font-size:var(--fs-13);margin-top:2px}.pill{display:inline-flex;align-items:center;gap:8px;margin-top:var(--sp-4);padding:8px 16px;border-radius:999px;font-weight:600;font-size:var(--fs-13)}.pill.ok{background:var(--pos-bg);color:var(--pos);border:1px solid color-mix(in srgb,var(--pos) 35%,transparent)}.pill.bad{background:var(--neg-bg);color:var(--neg);border:1px solid color-mix(in srgb,var(--neg) 35%,transparent)}.pill.wait{background:var(--surface-2);color:var(--mut);border:1px solid var(--line)}.controls{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin:0 0 var(--sp-4);align-items:center}.tglbl{font-size:var(--fs-12);color:var(--mut);font-weight:600}.sel{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 13px;min-height:38px;font-size:var(--fs-13);font-weight:600;color:var(--ink)}.tg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px}.tg button{border:0;background:transparent;padding:7px 14px;min-height:30px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--mut);transition:background .15s,color .15s}.tg button.on{background:var(--primary);color:var(--on-primary)}.spin{color:var(--mut);font-size:13.5px;padding:30px 0;text-align:center}.recharts-default-tooltip{border-radius:10px!important}.chart-tip{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12.5px;box-shadow:var(--shadow-menu);color:var(--ink)}.chart-tip .mut{color:var(--mut)}@media (max-width: 900px){.shell{flex-direction:column}.sidebar{width:100%;flex:none;height:auto;position:static;padding:var(--sp-3)}.sidebar nav{margin-top:var(--sp-2);flex-direction:row;flex-wrap:wrap}.sidebar nav a{min-height:44px}.sidebar .foot{display:none}.topbar{position:static;flex-wrap:wrap}.kpis{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.content{padding:var(--sp-4) var(--sp-3) 50px}.btn,.icon-btn{min-height:44px}.icon-btn{width:44px}}@media (max-width: 480px){.kpis{grid-template-columns:1fr}}
