:root{--bg: #0a0e13;--panel: #11171f;--panel-2: #161d27;--border: #232c38;--text: #f1f5f9;--muted: #8b97a7;--run: #16a34a;--slow: #eab308;--down: #dc2626;--standby: #3b4759;--brand: #f1f5f9;font-family:Outfit,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column;gap:14px;padding:14px}.brandbar{display:flex;align-items:center;gap:14px;padding:2px 6px}.brandbar .logo{height:40px;width:auto;display:block;filter:invert(1)}.brandbar .wordmark{font-weight:800;letter-spacing:2px;font-size:24px;color:var(--brand)}.brandbar .product{color:var(--muted);font-size:15px;letter-spacing:2px;text-transform:uppercase}.brandbar .brand-right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:14px}.brandbar .logout{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 14px;font:inherit;cursor:pointer}.brandbar .logout:hover{background:var(--panel-2)}.brandbar .nav{display:inline-flex;gap:8px;margin-right:6px}.brandbar .nav button{background:transparent;color:var(--muted);border:1px solid transparent;border-radius:6px;padding:6px 12px;font:inherit;cursor:pointer}.brandbar .nav button:hover{color:var(--text)}.brandbar .nav button.active{color:var(--text);border-color:var(--border);background:var(--panel)}.runbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 16px}.runbar .run-info{font-size:16px}.runbar .run-actions{margin-left:auto;display:flex;gap:10px}.runbar button{background:var(--brand);color:#0a0e13;border:none;border-radius:8px;padding:8px 16px;font:inherit;font-weight:700;cursor:pointer}.runbar button.danger{background:var(--down);color:#fff}.runbar button:disabled{opacity:.5;cursor:default}.runbar .run-form{flex-basis:100%;display:flex;gap:10px;align-items:center}.runbar .run-form select,.runbar .run-form input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font:inherit}.admin{display:flex;flex-direction:column;gap:14px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel-head h2{margin:0}.panel-head .toggle{background:var(--brand);color:#0a0e13;border:none;border-radius:8px;padding:8px 16px;font:inherit;font-weight:700;cursor:pointer}.admin-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.admin-form input,.admin-form select{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font:inherit}.admin-form .lbl{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.admin-form button{background:var(--brand);color:#0a0e13;border:none;border-radius:8px;padding:9px 18px;font:inherit;font-weight:700;cursor:pointer}.admin-table{width:100%;border-collapse:collapse}.admin-table th{text-align:left;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px;padding:8px 10px;border-bottom:1px solid var(--border)}.admin-table td{padding:10px;border-bottom:1px solid var(--border);font-size:15px}.admin-table button.sm{padding:5px 12px;font-size:13px;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer}.admin-table button.danger{background:transparent;border-color:var(--down);color:#fca5a5}.badge{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;text-transform:uppercase}.badge.scheduled{background:var(--standby);color:#cdd6e3}.badge.active{background:var(--run);color:#06210f}.badge.completed{background:var(--panel-2);color:var(--muted)}.card-sku{font-size:15px;opacity:.85}.alertbar{background:#dc262626;border:1px solid var(--down);color:#fca5a5;border-radius:10px;padding:12px 18px;font-weight:600;font-size:15px}.login{position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.login-card{position:relative;z-index:1;width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:14px}.login-card h1{margin:6px 0 4px;font-size:22px}.login-card input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;color:var(--text);font:inherit}.login-card input:focus{outline:none;border-color:var(--brand)}.login-card button{background:var(--brand);color:#0a0e13;border:none;border-radius:8px;padding:12px;font:inherit;font-weight:700;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:default}.login-err{color:#fca5a5;font-size:14px}.banner{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;border-radius:10px;font-weight:700}.banner.run{background:var(--run)}.banner.slow{background:var(--slow);color:#1a1500}.banner.down{background:var(--down)}.banner.standby{background:var(--standby)}.banner .state-name{font-size:30px;letter-spacing:.5px}.banner .state-time{font-size:30px;font-variant-numeric:tabular-nums}.banner .right{display:flex;align-items:center;gap:18px}.banner select{background:#00000040;color:inherit;border:1px solid rgba(255,255,255,.3);border-radius:6px;padding:6px 10px;font-size:16px;font-weight:600}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px}.dot.online{background:#22c55e;box-shadow:0 0 8px #22c55e}.dot.offline{background:#64748b}.conn-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.conn-dot.ok{background:#22c55e;box-shadow:0 0 8px #22c55e}.conn-dot.bad{background:#ef4444;animation:connpulse 1.4s infinite}.conn{display:inline-flex;align-items:center;gap:8px;padding:5px 13px;border-radius:999px;background:#00000047;font-weight:600;font-size:15px;color:#f1f5f9}.conn.bad{color:#fecaca}@keyframes connpulse{0%{box-shadow:0 0 #ef444499}70%{box-shadow:0 0 0 7px #ef444400}to{box-shadow:0 0 #ef444400}}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tile{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:18px 20px;text-align:center}.tile .value{font-size:clamp(40px,7vw,84px);font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.tile .label{color:var(--muted);margin-top:10px;font-size:16px;letter-spacing:1px;text-transform:uppercase}.tile .value.good{color:var(--run)}.tile .value.warn{color:var(--slow)}.tile .value.bad{color:var(--down)}.tile .spark{display:block;margin:12px auto 2px;opacity:.9}.hourly{display:flex;align-items:flex-end;gap:6px;height:180px;padding-top:20px}.hcol{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.htrack{position:relative;flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.hbar{width:68%;background:var(--run);border-radius:3px 3px 0 0;min-height:2px}.hcol.future{opacity:.45}.hcol.future .hbar{background:var(--border)}.hval{position:absolute;top:-17px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.hlabel{margin-top:7px;font-size:12px;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.panel h2{margin:0 0 12px;font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.timeline{display:flex;height:46px;width:100%;border-radius:6px;overflow:hidden;background:#0d1218}.timeline .seg{height:100%}.timeline .seg.run{background:var(--run)}.timeline .seg.slow{background:var(--slow)}.timeline .seg.down{background:var(--down)}.timeline .seg.standby{background:var(--standby)}.legend{display:flex;gap:18px;margin-top:10px;color:var(--muted);font-size:13px;flex-wrap:wrap}.legend span{display:inline-flex;align-items:center;gap:6px}.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.swatch.run{background:var(--run)}.swatch.slow{background:var(--slow)}.swatch.down{background:var(--down)}.swatch.standby{background:var(--standby)}.timeline.mini{height:26px}.overview-head{color:var(--muted);text-transform:uppercase;letter-spacing:2px;font-size:14px;padding:0 4px}.overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:14px}.line-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:16px;cursor:pointer;transition:border-color .15s,transform .05s}.line-card:hover{border-color:var(--brand)}.line-card:active{transform:scale(.997)}.card-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;font-weight:700}.card-banner.run{background:var(--run)}.card-banner.slow{background:var(--slow);color:#1a1500}.card-banner.down{background:var(--down)}.card-banner.standby{background:var(--standby)}.card-banner .card-name{font-size:22px}.card-banner .card-state{margin-left:auto;font-size:15px;opacity:.9}.card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;text-align:center}.card-stats .cv{font-size:clamp(20px,2.2vw,34px);font-weight:800;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}.card-stats .cv.good{color:var(--run)}.card-stats .cv.warn{color:var(--slow)}.card-stats .cv.bad{color:var(--down)}.card-stats .cl{color:var(--muted);font-size:13px;letter-spacing:1px;text-transform:uppercase;margin-top:8px}.card-foot{font-size:12px;text-align:center}.back{align-self:center;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer}.back:hover{border-color:var(--brand)}.bottom{display:grid;grid-template-columns:2fr 1fr;gap:14px}.bars{display:flex;align-items:flex-end;gap:3px;height:160px}.bar{flex:1;background:var(--run);border-radius:2px 2px 0 0;min-height:2px}.compare-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);cursor:pointer}.compare-row:last-child{border-bottom:none}.compare-row.active{color:#fff;font-weight:700}.compare-row .n{font-variant-numeric:tabular-nums;font-size:22px}.compare-row .meta{color:var(--muted);font-size:13px}.muted{color:var(--muted)}.foot{color:var(--muted);font-size:13px;text-align:center}
