:root,:root[data-theme=light]{--bg:#eef2f6;--surface:#fff;--surface-2:#f5f8fb;--ink:#0e1f33;--soft:#4a5b72;--faint:#74849b;--line:#dde4ee;--line-strong:#c5d0de;--brand:#12507b;--brand-hover:#0d3d5f;--on-brand:#fff;--brand-tint:#e1eef7;--brand-text:#12507b;--saffron:#e08a00;--saffron-tint:#fdf0d6;--g-urgent:#c4362c;--g-push:#d98200;--g-track:#2f6fa8;--g-strong:#2e8b57;--g-nodata:#8a94a3;--g-urgent-t:#fbe5e3;--g-push-t:#fdf0d9;--g-track-t:#e3edf7;--g-strong-t:#e0f1e7;--g-nodata-t:#eceff4;--bad:#b42318;--bad-t:#fbe5e3;--good:#1f7a46;--good-t:#e0f1e7;--shadow:0 1px 2px #0e1f330d, 0 6px 20px #0e1f330d;--radius:14px;--radius-s:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,Helvetica Neue,Roboto,sans-serif}:root[data-theme=dark]{--bg:#0a1320;--surface:#111f33;--surface-2:#162841;--ink:#e8eef7;--soft:#a9b8cd;--faint:#7f90aa;--line:#223650;--line-strong:#2f4766;--brand:#1d6fa5;--brand-hover:#2480bb;--on-brand:#fff;--brand-tint:#15304a;--brand-text:#7cc0ee;--saffron:#f0a63a;--saffron-tint:#3a2c10;--g-urgent:#e0574c;--g-push:#b8931a;--g-track:#4a95d6;--g-strong:#37a56c;--g-nodata:#7e8aa0;--g-urgent-t:#3b1a1a;--g-push-t:#35290c;--g-track-t:#132c45;--g-strong-t:#12322a;--g-nodata-t:#1b2a3f;--bad:#f08b82;--bad-t:#3b1a1a;--good:#6fd09b;--good-t:#12322a;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body{font-variant-numeric:tabular-nums;font-size:15px;line-height:1.5}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid var(--brand-text);outline-offset:2px;border-radius:6px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.login{background:radial-gradient(900px 500px at 15% 0,#e08a0029,#0000 60%),linear-gradient(165deg,#0d3d5f,#12507b 55%,#0f6a73);place-items:center;min-height:100dvh;padding:20px;display:grid}:root[data-theme=dark] .login{background:radial-gradient(900px 500px at 15% 0,#f0a63a1a,#0000 60%),linear-gradient(165deg,#08101c,#0c1b2e 60%,#0b2a30)}.login-card{background:var(--surface);border-radius:22px;width:100%;max-width:410px;padding:30px 26px 26px;box-shadow:0 30px 70px #020a1e66}.login-card h1{letter-spacing:-.01em;margin:16px 0 6px;font-size:24px}.login-card p{color:var(--soft);margin-bottom:20px;font-size:14.5px}.logo{background:var(--brand);color:#fff;border-radius:14px;flex:none;place-items:center;width:48px;height:48px;display:grid}.field{color:var(--soft);margin-bottom:14px;font-size:13px;font-weight:600;display:block}.field input,.field select,.input{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);width:100%;min-height:46px;margin-top:6px;padding:0 13px;font-size:15px;display:block}.field input:focus,.input:focus,.field select:focus{border-color:var(--brand-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-text) 22%, transparent);outline:none}.err{color:var(--bad);background:var(--bad-t);border-radius:var(--radius-s);margin-bottom:14px;padding:10px 12px;font-size:14px}.okmsg{color:var(--good);background:var(--good-t);border-radius:var(--radius-s);margin-bottom:14px;padding:10px 12px;font-size:14px}.btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 17px;font-size:14.5px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.primary:hover{background:var(--brand-hover)}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.small{border-radius:10px;min-height:36px;padding:0 12px;font-size:13px}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--bad)}.btn.wide{width:100%}.iconbtn{width:42px;height:42px;padding:0}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100dvh;display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:3px;height:100dvh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:4px 8px 18px;display:flex}.brand .logo{border-radius:12px;width:40px;height:40px}.brand b{font-size:15px;line-height:1.25;display:block}.brand span{color:var(--faint);font-size:12px}.nav{width:100%;min-height:46px;color:var(--soft);text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-size:14.5px;font-weight:600;display:flex}.nav:hover{background:var(--surface-2);color:var(--ink)}.nav.on{background:var(--brand-tint);color:var(--brand-text)}.side .spacer{flex:1}.main{width:100%;max-width:1140px;padding:26px 30px 70px}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:22px;display:flex}.top h2{letter-spacing:-.02em;font-size:27px;line-height:1.15}.top p{color:var(--soft);margin-top:5px;font-size:14.5px}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.grid{gap:16px;display:grid}.cols{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-items:start;gap:16px;display:grid}.h3{margin-bottom:4px;font-size:16px;font-weight:700}.sub{color:var(--soft);margin-bottom:14px;font-size:13px}.kpis{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px;display:grid;overflow:hidden}.kpi{border-right:1px solid var(--line);padding:16px 18px}.kpi:last-child{border-right:none}.kpi .l{color:var(--soft);font-size:12.5px;font-weight:600}.kpi .n{letter-spacing:-.02em;margin-top:3px;font-size:31px;font-weight:700;line-height:1.15}.kpi .n small{color:var(--faint);letter-spacing:0;font-size:14px;font-weight:600}.kpi .s{color:var(--faint);margin-top:2px;font-size:12.5px}.meter{background:var(--line);border-radius:4px;height:6px;margin-top:9px;overflow:hidden}.meter i{background:var(--brand-text);border-radius:4px;height:100%;display:block}.meter.warn i{background:var(--saffron)}.hero{padding:20px 20px 14px}.hero-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.legend{flex-wrap:wrap;gap:8px 16px;margin-top:10px;display:flex}.lg{color:var(--soft);background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:4px 6px;font-size:13px;font-weight:600;display:inline-flex}.lg:hover{background:var(--surface-2)}.lg.off{opacity:.4}.lg i{border-radius:50%;width:11px;height:11px;display:inline-block}.lg b{color:var(--ink)}.pulse{width:100%;height:auto;display:block;overflow:visible}.pulse text{fill:var(--faint);font-size:12px}.pulse .zone{fill:var(--surface-2)}.pulse circle{cursor:pointer;stroke:var(--surface);stroke-width:2px;transition:r .12s}.pulse circle:hover,.pulse circle:focus-visible{r:12;stroke:var(--ink);outline:none}.tip{z-index:20;pointer-events:none;background:var(--ink);color:var(--bg);border-radius:10px;max-width:240px;padding:8px 11px;font-size:12.5px;line-height:1.4;position:absolute;box-shadow:0 8px 24px #0000004d}.tip b{font-size:13.5px;display:block}.chartwrap{position:relative}.bars{gap:11px;display:grid}.bar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;font-size:14px;display:grid}.bar .nm{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.bar .nm small{color:var(--faint);font-size:12px;font-weight:500;display:block}.bar .vl{font-size:13.5px;font-weight:700}.bar .track{background:var(--line);border-radius:5px;grid-column:1/-1;height:8px;overflow:hidden}.bar .track i{border-radius:5px;height:100%;display:block}.row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 4px;display:flex}.row:last-child{border-bottom:none}.row.click{cursor:pointer;border-radius:10px;margin-inline:-8px;padding-inline:8px}.row.click:hover{background:var(--surface-2)}.row .grow{flex:1;min-width:0}.row .t{font-size:14.5px;font-weight:600}.row .m{color:var(--soft);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12.5px;overflow:hidden}.avatar{background:var(--brand-tint);width:40px;height:40px;color:var(--brand-text);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.pill{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 11px;font-size:12.5px;font-weight:700;display:inline-flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;min-height:42px;padding:0 15px;font-size:14px;font-weight:600}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;gap:2px;padding:3px;display:inline-flex}.seg button{min-height:36px;color:var(--soft);background:0 0;border:none;border-radius:9px;padding:0 14px;font-size:13.5px;font-weight:600}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #00000026}.empty{text-align:center;color:var(--soft);padding:34px 18px}.empty b{color:var(--ink);margin-bottom:6px;font-size:16px;display:block}.empty .btn{margin-top:14px}.hint{color:var(--soft);font-size:12.5px;line-height:1.55}.note{color:var(--soft);align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;display:flex}.attention{background:var(--saffron-tint);border:1px solid color-mix(in srgb, var(--saffron) 40%, transparent);border-radius:var(--radius-s);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;font-size:14px;display:flex}.pick{border:1px solid var(--line);border-radius:12px;max-height:300px;overflow:auto}.pick label{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;padding:11px 13px;font-size:14.5px;display:flex}.check{width:19px;height:19px;accent-color:var(--brand);flex:none}.gcard{text-align:left;background:var(--surface);cursor:pointer;border-radius:13px;width:100%;padding:13px 15px}.step{align-items:center;gap:11px;margin-bottom:12px;display:flex}.step span{background:var(--brand);width:26px;height:26px;color:var(--on-brand);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.step b{font-size:16px}.toast{background:var(--ink);color:var(--bg);z-index:80;border-radius:12px;max-width:90vw;padding:12px 18px;font-size:14px;position:fixed;bottom:90px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000004d}.modal-bg{z-index:60;background:#050c1c8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:440px;box-shadow:var(--shadow);border-radius:18px;padding:22px}.modal h3{font-size:18px}.drawer-bg{z-index:60;background:#050c1c80;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg);width:min(560px,100%);height:100%;padding:20px;animation:.22s ease-out slidein;overflow:auto}@keyframes slidein{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.mini{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:14px;display:grid}.mini>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;padding:11px 13px}.mini .l{color:var(--soft);font-size:12px;font-weight:600}.mini .n{letter-spacing:-.01em;font-size:22px;font-weight:700}.todo{margin:0;padding-left:18px;font-size:14px;line-height:1.65}.bottom{display:none}.install{display:inline-flex}@media (width<=860px){.shell{grid-template-columns:1fr}.side{display:none}.main{padding:18px 16px 110px}.top h2{font-size:23px}.kpi{border-right:none;border-bottom:1px solid var(--line)}.bottom{background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:50;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom button{min-height:54px;color:var(--faint);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:600;display:flex}.bottom button.on{color:var(--brand-text)}.cols{grid-template-columns:1fr}.drawer{padding:16px}.toast{bottom:100px}}
