:root{--brand:#14202e;--brand-ink:#fff;--accent:#c5db4f;--accent-ink:#14202e;--accent-text:#5e6f00;--side:#14202e;--side-text:#b8c3cf;--side-hover:#1f2e40;--bg:#f3f5f7;--surface:#fff;--surface-2:#f6f8f9;--text:#14202e;--text-2:#3d4c5e;--muted:#5a6b80;--border:#e3e8ed;--grid:#edf0f3;--ok:#12a150;--ok-bg:#e7f7ee;--warn:#b54708;--warn-bg:#fff1e6;--bad:#d92d20;--bad-bg:#fdecea;--idle-bg:#eef0f4;--bar:#14202e;--pending:#ff9a4d;--shadow:0 1px 2px #14202e0f, 0 4px 16px #14202e0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--brand:#c5db4f;--brand-ink:#14202e;--accent:#c5db4f;--accent-ink:#14202e;--accent-text:#c5db4f;--side:#0b131c;--side-text:#9fb0c2;--side-hover:#18273a;--bg:#0e1824;--surface:#14202e;--surface-2:#1a293a;--text:#e8edf2;--text-2:#b8c3cf;--muted:#8a9aac;--border:#243447;--grid:#1c2b3d;--ok:#3ccf7f;--ok-bg:#12301f;--warn:#ffb27a;--warn-bg:#3a2414;--bad:#ff7b70;--bad-bg:#3a1716;--idle-bg:#1c2b3d;--bar:#c5db4f;--pending:#c46a28;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}h1,h2,h3{letter-spacing:-.01em;margin:0}.layout{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--side);border-right:0;flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.logo{padding:4px 10px 18px}.logo img{width:100%;max-width:180px;height:auto;display:block}.logo small{color:var(--side-text);margin-top:6px;font-size:12px;display:block}.nav-item{text-align:left;cursor:pointer;color:var(--side-text);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-weight:500;display:flex}.nav-item:hover{background:var(--side-hover);color:#fff}.nav-item.active{background:var(--accent);color:var(--accent-ink);font-weight:600}.sidebar-foot{color:var(--side-text);margin-top:auto;padding:0 10px;font-size:13px}.sidebar-foot .btn{border-color:var(--side-hover);color:var(--side-text);background:0 0}.sidebar-foot .btn:hover{background:var(--side-hover);color:#fff}.main{min-width:0;padding:24px 28px 48px}.topbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.topbar h1{margin-right:auto;font-size:22px}@media (width<=820px){.layout{grid-template-columns:1fr}.sidebar{flex-flow:wrap;height:auto;padding:12px 16px;position:static}.logo{width:100%;padding-bottom:8px}.sidebar-foot{display:none}.main{padding:16px}}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:18px}.card+.card{margin-top:16px}.card h2{margin-bottom:12px;font-size:16px}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:10px;height:36px;padding:0 14px;font-weight:600}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--bad)}.btn.sm{height:30px;padding:0 10px;font-size:13px}.input,.select{border:1px solid var(--border);background:var(--surface);border-radius:10px;min-width:0;height:36px;padding:0 10px}.input:focus,.select:focus,.btn:focus-visible,.nav-item:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.idle{background:var(--idle-bg);color:var(--muted)}.muted{color:var(--muted)}.error{color:var(--bad);margin:8px 0}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.split{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=1100px){.split{grid-template-columns:1fr}}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}td{white-space:nowrap;border-bottom:1px solid var(--grid);vertical-align:middle;padding:10px}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.login{background:var(--side);place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{border:0;width:100%;max-width:380px}.login .logo{background:var(--side);border-radius:14px 14px 0 0;margin:-18px -18px 18px;padding:26px 22px 20px}.login .logo small{font-size:13px}.login form{flex-direction:column;gap:10px;margin-top:18px;display:flex}.login .input,.login .btn{height:44px}.timeline{border:1px solid var(--border);background:var(--surface);border-radius:12px;overflow-x:auto}.tl-inner{min-width:1100px;position:relative}.tl-head,.tl-row{grid-template-columns:110px 1fr;display:grid}.tl-head{border-bottom:1px solid var(--border);color:var(--muted);font-size:12px}.tl-row+.tl-row{border-top:1px solid var(--grid)}.tl-label{border-right:1px solid var(--border);background:var(--surface);z-index:2;padding:12px;font-weight:600;position:sticky;left:0}.tl-track{height:56px;position:relative}.tl-hours{height:32px;position:relative}.tl-hour{font-variant-numeric:tabular-nums;position:absolute;top:8px;transform:translate(-50%)}.tl-hour.first{margin-left:4px;transform:none}.tl-hour.last{margin-left:-4px;transform:translate(-100%)}.tl-gridline{background:var(--grid);width:1px;position:absolute;top:0;bottom:0}.tl-block{cursor:pointer;border:2px solid var(--surface);color:#fff;background:var(--brand);text-align:left;border-radius:8px;padding:4px 8px;font-size:12px;line-height:1.25;position:absolute;top:8px;bottom:8px;overflow:hidden}.tl-block.pending{background:var(--pending)}.tl-block.cancelled{background:var(--idle-bg);color:var(--muted);text-decoration:line-through}.tl-block.selected{outline:2px solid var(--accent)}.tl-now{background:var(--accent);z-index:1;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.legend{color:var(--text-2);gap:16px;margin:10px 0 0;font-size:13px;display:flex}.legend i{vertical-align:-2px;border-radius:4px;width:12px;height:12px;margin-right:6px;display:inline-block}.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;display:grid}.kpi .label{color:var(--muted);font-size:13px}.kpi .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:28px;font-weight:800}.chart{position:relative}.chart svg{width:100%;height:240px;display:block;overflow:visible}.chart .axis{fill:var(--muted);font-size:11px}.chart .gridline{stroke:var(--grid)}.chart .bar{fill:var(--bar)}.chart .bar.dim{opacity:.45}.tooltip{pointer-events:none;background:var(--text);color:var(--surface);white-space:nowrap;z-index:3;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.field label{color:var(--text-2);margin-bottom:5px;font-size:13px;font-weight:500;display:block}.field .input,.field .select{width:100%}.field .hint{color:var(--muted);margin-top:4px;font-size:12px}.token-box{background:var(--surface-2);border:1px dashed var(--accent);word-break:break-all;border-radius:10px;margin-top:10px;padding:12px;font-family:ui-monospace,Consolas,monospace}.devices{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.device{flex-direction:column;gap:8px;display:flex}.device .kind{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.device .name{font-weight:700}.score{font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.side-panel{position:sticky;top:16px}.kv{grid-template-columns:110px 1fr;gap:6px 10px;margin:10px 0 16px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}
