@keyframes sfBlink{0%,49%{opacity:1}50%,to{opacity:.12}}@keyframes beacon{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.35}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{background:#07080a;color:#cfd3da;font-family:IBM Plex Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.fleet-shell{height:100%;min-height:0;display:flex;flex-direction:row;overflow:hidden}.fleet-main{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.fleet-main>.app,.fleet-main>.recordings-view{flex:1 1 0;min-height:0;overflow:hidden}.app{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.rail{flex:none;width:60px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 0;background:#0a0b0e;border-right:1px solid rgba(255,255,255,.06)}.rail-logo{width:32px;height:32px;border-radius:9px;margin-bottom:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#8b9bff,#8a6ee2);background:linear-gradient(150deg,color(xyz 0.412 0.36 1.066),#8a6ee2);color:#0b0b10;font-weight:600;font-size:14px}.rail-nav-btn{width:36px;height:36px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:#e6e8ec8c;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.rail-nav-btn:hover{background:#ffffff0f}.rail-nav-btn.active{background:#8c96ff24;border-color:#96a0ff40;color:#a2b2ff;color:oklch(.78 .13 275)}.rail-avatar{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#1b1e25;border:1px solid rgba(255,255,255,.1);font-size:11px;font-weight:600}.topbar{flex:none;display:flex;align-items:center;gap:18px;height:58px;padding:0 18px;background:#0a0b0e;border-bottom:1px solid rgba(255,255,255,.06)}.topbar-brand-group{display:flex;align-items:baseline;gap:10px;flex:none}.wordmark{font-size:15px;font-weight:600;letter-spacing:.14em;color:#e6e8ec}.wordmark-sub{font-family:IBM Plex Mono,monospace;font-size:11px;color:#6d7482;letter-spacing:.08em}.tower-pill{display:inline-flex;align-items:center;gap:8px;flex:none;padding:6px 12px 6px 10px;border-radius:8px;background:#101318;border:1px solid rgba(255,255,255,.09);color:inherit;font-family:inherit;cursor:pointer;transition:border-color .12s,background .12s;max-width:260px}.tower-pill:hover{border-color:#ffffff29;background:#131720}.tower-pill-dot{width:6px;height:6px;border-radius:50%;flex:none;background:#5f6673}.tower-pill-dot.live{animation:pulseDot 2.4s ease-in-out infinite}.tower-pill-label{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.06em;color:#e6e8ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tower-pill-caret{color:#5f6673;font-size:10px;margin-left:2px}.seg-tabs{display:flex;padding:3px;border-radius:9px;background:#101318;border:1px solid rgba(255,255,255,.07);gap:2px;flex:none}.seg-tabs button{padding:6px 14px;border-radius:7px;border:none;background:transparent;color:#8b929e;font-family:inherit;font-size:12px;font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background .12s,color .12s}.seg-tabs button:hover{color:#cfd3da}.seg-tabs button.active{background:#a2b2ff;background:oklch(.78 .13 275);color:#0b0b10}.seg-tabs button.active:hover{color:#0b0b10}.topbar-end-group{display:flex;align-items:center;gap:16px;margin-left:auto;flex:none}.topbar-clock{text-align:right;line-height:1.25}.topbar-clock-time{font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:500;letter-spacing:.06em;color:#e6e8ec}.topbar-clock-sub{font-family:IBM Plex Mono,monospace;font-size:10px;color:#5f6673;letter-spacing:.1em}.topbar-divider{width:1px;height:26px;background:#ffffff14}.logout-btn{font-size:12px;color:#8b929e;cursor:pointer;padding:7px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.08);background:transparent;font-family:inherit;transition:background .12s,color .12s,border-color .12s}.logout-btn:hover{background:#ff5a5a14;color:#ffb4b4;border-color:#ff5a5a4d}.console{flex:1;display:grid;grid-template-columns:1fr 330px;gap:14px;padding:14px 18px 18px;min-height:0;position:relative;overflow:hidden}.console.collapsed{grid-template-columns:1fr}.console.collapsed .control{display:none}.grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;min-height:0;position:relative;overflow:hidden}.feed{border:1px solid rgba(255,255,255,.07);border-radius:14px;min-height:180px;transition:border-color .18s,box-shadow .18s}.feed-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#06090b8c;color:#8b929e;font-size:13px;letter-spacing:.12em;font-family:IBM Plex Mono,monospace}.grid.spotlight{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 116px}.grid.spotlight .is-spotlight{grid-column:1 / -1;grid-row:1;min-height:0}.grid.spotlight .is-thumb{grid-row:2;min-height:0;opacity:.78}.grid.spotlight .is-thumb:hover{opacity:1}.cam-video-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#06090b;display:flex;align-items:center;justify-content:center}.cam-video{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;display:block;background:#06090b;filter:contrast(1.04)}.cam-note{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:6px 12px;border-radius:6px;background:#06090bb3;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;color:#9aa1ad;white-space:nowrap;pointer-events:none;z-index:2}.cam-webrtc-stats{position:absolute;left:6px;bottom:42px;z-index:2;padding:3px 8px;border-radius:4px;background:#06090bb3;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.04em;color:#9aa1ad;white-space:nowrap;pointer-events:none}.cam-degraded-badge{position:absolute;right:6px;top:42px;z-index:2;padding:3px 8px;border-radius:4px;background:#06090bb3;border:1px solid rgba(240,190,90,.45);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.04em;color:#e6ac3d;white-space:nowrap;pointer-events:none}.feed-scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(180deg,#060709b8,#06070900 26%,#06070900 62%,#060709d1)}.feed-nosignal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:repeating-linear-gradient(135deg,#0d1014 0,#0d1014 8px,#0a0c10 8px,#0a0c10 16px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.feed-nosignal-ring{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center}.feed-nosignal-ring span{width:16px;height:1px;background:#ffffff38;display:block}.feed-nosignal-label{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.18em;color:#4d5462}.feed-head{position:absolute;top:0;left:0;right:0;z-index:2;padding:12px 13px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none}.feed-name{font-size:14px;font-weight:600;letter-spacing:.05em;color:#e6e8ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-controlling{flex:none;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.14em;color:#0b0b10;background:#a2b2ff;background:oklch(.78 .13 275);padding:2px 6px;border-radius:4px}.feed-status-chip{flex:none;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:6px;background:#0a0c10b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.08);font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.14em}.feed-status-chip span{width:5px;height:5px;border-radius:50%}.feed-rec-badge{position:absolute;top:46px;right:13px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:4px;background:#ff5a5a24;border:1px solid rgba(255,90,90,.4);font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:700;letter-spacing:.12em;color:#ff9491;color:oklch(.78 .15 22)}.feed-foot{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:11px 13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.feed-telemetry{font-size:10px;color:#8b929e;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.feed-actions{display:flex;gap:6px;flex:none}.feed-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:#0e1116cc;border:1px solid rgba(255,255,255,.1);color:#b7bdc9;cursor:pointer;transition:background .12s,color .12s}.feed-action-btn:hover{background:#7882ff2e;color:#eef0f4}.snap-flash{animation:snapFade .38s ease-out forwards;z-index:3}@keyframes snapFade{0%{opacity:.85}to{opacity:0}}.snap-toast{position:absolute;left:50%;bottom:46px;transform:translate(-50%);z-index:3;max-width:calc(100% - 32px);padding:7px 12px;border-radius:6px;background:#0a0e11e6;border:1px solid rgba(255,255,255,.12);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;color:#eef0f4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.control{display:flex;flex-direction:column;gap:12px;min-height:0;background:linear-gradient(180deg,#0e1116,#0a0c10);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:16px;overflow-x:hidden;overflow-y:auto}.control-head{display:flex;align-items:flex-start;justify-content:space-between}.control-cap{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.18em;color:#5f6673}.control-title{font-size:22px;font-weight:600;letter-spacing:.02em;color:#e6e8ec;margin-top:4px}.control-expand{flex:none;width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:transparent;color:#9aa1ad;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.control-expand:hover{border-color:#96a0ff66;color:#e6e8ec;background:#7882ff1a}.control-expand[aria-pressed=true]{border-color:#a2b2ff;border-color:oklch(.78 .13 275);color:#a2b2ff;color:oklch(.78 .13 275)}.readout-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.readout{padding:10px 12px;border-radius:10px;background:#111419;border:1px solid rgba(255,255,255,.06)}.readout-k{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.16em;color:#5f6673}.readout-v{font-family:IBM Plex Mono,monospace;font-size:17px;color:#e6e8ec;margin-top:3px}.panel-toggle{position:absolute;top:24px;right:30px;z-index:5;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#10171d;color:#9aa1ad;cursor:pointer;transition:border-color .12s,color .12s}.panel-toggle:hover{border-color:#96a0ff66;color:#e6e8ec}.ctl-btn{flex:1;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#111419;color:#cfd3da;cursor:pointer;padding:11px;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.08em;transition:all .12s}.ctl-btn:hover:not(:disabled){border-color:#96a0ff66;color:#e6e8ec}.ctl-btn:active:not(:disabled){transform:scale(.97)}.ctl-btn.active{border-color:var(--accent, oklch(.78 .13 275));color:#e6e8ec;background:#7882ff29}.ctl-btn:disabled{opacity:.4;color:#5a656f;border-color:#ffffff0d;cursor:not-allowed}.rec-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:11px;cursor:pointer;background:#111419;border:1px solid rgba(255,255,255,.07);font-family:inherit;transition:background .12s,border-color .12s}.rec-row:disabled{opacity:.55;cursor:not-allowed}.rec-row-left{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:500;letter-spacing:.03em;color:#9aa1ad}.rec-row-dot{width:8px;height:8px;border-radius:50%;background:#4d5462;flex:none}.rec-row-state{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.14em;color:#9aa1ad}.rec-row.armed{background:#ff5a5a17;border-color:#ff78784d}.rec-row.armed .rec-row-left,.rec-row.armed .rec-row-state{color:#ff9491;color:oklch(.78 .15 22)}.rec-row.armed .rec-row-dot{background:#ec515d;animation:sfBlink 1s steps(1) infinite}.pad-btn{position:absolute;display:flex;align-items:center;justify-content:center;background:#161a21;border:1px solid rgba(255,255,255,.08);border-radius:9px;color:#ccd1db;font-size:14px;cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .08s}.pad-btn:hover:not(:disabled){background:#7882ff33;border-color:#96a0ff4d;color:#eef0f4}.pad-btn.active{background:#7882ff47;border-color:var(--accent, oklch(.78 .13 275));color:#eef0f4}.pad-btn:disabled{opacity:.35;color:#5a656f;border-color:#ffffff0d;cursor:not-allowed}.pad-up{top:9px;left:50%;transform:translate(-50%);width:42px;height:34px}.pad-down{bottom:9px;left:50%;transform:translate(-50%);width:42px;height:34px}.pad-left{left:9px;top:50%;transform:translateY(-50%);width:34px;height:42px}.pad-right{right:9px;top:50%;transform:translateY(-50%);width:34px;height:42px}.pad-up:active,.pad-down:active{transform:translate(-50%) translateY(2px)}.pad-left:active{transform:translateY(-50%) translate(-2px)}.pad-right:active{transform:translateY(-50%) translate(2px)}.pad-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:linear-gradient(160deg,#f2f3f7,#c9cdda);border:none;color:#0b0b10;cursor:pointer;box-shadow:0 6px 22px #00000080,inset 0 0 0 1px #fff3;transition:transform .1s,filter .12s}.pad-center:hover:not(:disabled){filter:brightness(1.06)}.pad-center:active:not(:disabled){transform:translate(-50%,-50%) scale(.94)}.pad-center:disabled{opacity:.4;filter:grayscale(.6);cursor:not-allowed}.ptz-speed{display:flex;flex-direction:column;gap:8px}.ptz-speed-slider{width:100%;height:4px;margin:0;accent-color:var(--accent, oklch(.78 .13 275));cursor:pointer;border-radius:3px;-moz-appearance:none;appearance:none;-webkit-appearance:none}.ptz-speed-slider::-webkit-slider-runnable-track{height:4px;border-radius:3px;background:transparent}.ptz-speed-slider::-moz-range-track{height:4px;border-radius:3px;background:#1a1e25}.ptz-speed-slider::-moz-range-progress{height:4px;border-radius:3px;background:linear-gradient(90deg,#8a6ee2,#a3b2ff);background:linear-gradient(90deg,#8a6ee2,color(xyz 0.498 0.464 1.106))}.ptz-speed-slider::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:13px;margin-top:-4.5px;border-radius:50%;background:#eef0f4;border:none;box-shadow:0 0 0 4px #8c96ff2e}.ptz-speed-slider::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:#eef0f4;border:none;box-shadow:0 0 0 4px #8c96ff2e}.set-home-btn{align-self:center;background:none;border:none;cursor:pointer;color:#5f6673;font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.08em;padding:2px 8px 6px;opacity:.75}.set-home-btn:hover:not(:disabled){color:#cfd3da}.set-home-btn:disabled{opacity:.4;cursor:not-allowed}.zoom-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.zoom-btn{padding:11px 0;border-radius:10px;text-align:center;background:#111419;border:1px solid rgba(255,255,255,.07);font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.1em;color:#cfd3da;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.zoom-btn:hover{background:#7882ff29}.zoom-btn.active{background:#7882ff38;border-color:var(--accent, oklch(.78 .13 275));color:#eef0f4}.sensorbar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.06);background:#08090c;overflow-x:auto}.sensorbar .sb-label{flex:none;display:flex;flex-direction:column;gap:2px;padding-right:14px;margin-right:4px;border-right:1px solid rgba(255,255,255,.07)}.sensorbar .sb-label .k{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.16em;color:#5f6673}.sensorbar .sb-label .v{font-family:IBM Plex Mono,monospace;font-size:12px;color:#cfd3da;white-space:nowrap}.sensorbar .chip{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#0d0f13;border:1px solid rgba(255,255,255,.06)}.sensorbar .cdot{width:7px;height:7px;border-radius:50%;flex:none}.sensorbar .meta{min-width:0}.sensorbar .ck{font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.16em;color:#5f6673;white-space:nowrap}.sensorbar .cv{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.sensorbar .cv u{text-decoration:none;font-size:9.5px;color:#8b929e;margin-left:2px}.sb-right{flex:none;margin-left:auto;display:flex;align-items:center;gap:10px}.sb-live{display:inline-flex;align-items:center;gap:7px;flex:none;padding:8px 13px;border-radius:10px;cursor:default;font-size:12px;letter-spacing:.03em;border:1px solid rgba(255,255,255,.08);background:transparent;color:#8b929e}.sb-live.live{border-color:#96a0ff38;background:#7882ff14;color:#c3c8ff}.sb-live.down{border-color:#ff5a5a4d;background:#ff5a5a14;color:#f97676}.sb-live-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.sb-live.live .sb-live-dot{background:#8b9bff;background:oklch(.72 .16 275)}.sb-more{padding:8px 13px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:transparent;color:#8b929e;cursor:pointer;font-family:inherit;font-size:12px;transition:background .12s,color .12s}.sb-more:hover{background:#ffffff0d;color:#e6e8ec}.mon-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;pointer-events:none}.mon-root.open{pointer-events:auto}.mon-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#040608a6;opacity:0;transition:opacity .2s ease}.mon-root.open .mon-backdrop{opacity:1}.mon{position:absolute;top:50%;left:50%;width:min(1160px,94vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;background:#0b0d11;border:1px solid rgba(255,255,255,.09);border-radius:14px;box-shadow:0 40px 100px -40px #000000eb;transform:translate(-50%,-50%) scale(.98);opacity:0;transition:transform .2s ease,opacity .2s ease}.mon-root.open .mon{transform:translate(-50%,-50%) scale(1);opacity:1}.mon-top{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.07);background:#0a0b0e}.mon-brand{font-size:18px;font-weight:600;letter-spacing:.06em;color:#e6e8ec}.mon-brand small{display:block;font-weight:500;font-size:9px;letter-spacing:.22em;color:#5f6673;margin-top:2px}.mon-conn{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.1em;color:#e6e8ec}.mon-conn .d{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}.mon-close{width:30px;height:30px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:transparent;color:#9aa1ad;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s,color .12s}.mon-close:hover{border-color:#96a0ff66;color:#e6e8ec}.mon-body{display:grid;grid-template-columns:1fr 320px;gap:16px;padding:16px 20px 20px;overflow-y:auto}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;align-content:start}.mcard{position:relative;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#0f1216;padding:14px 15px 15px;overflow:hidden}.mcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.mcard.ok:before{background:#59c886;box-shadow:0 0 14px #59c886}.mcard.warn:before{background:#e6ac3d;box-shadow:0 0 14px #e6ac3d}.mcard.crit:before{background:#ec515d;box-shadow:0 0 14px #ec515d}.mcard.na{opacity:.6}.mcard.na:before{background:#39434d}.mc-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}.mc-k{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.16em;color:#5f6673;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-badge{font-size:10px;font-weight:600;letter-spacing:.1em;padding:2px 7px;border:1px solid;border-radius:4px}.mc-v{font-size:24px;font-weight:600;letter-spacing:.01em;color:#e6e8ec;line-height:1.05}.mc-v.mc-na{color:#4d5462}.mc-v u{text-decoration:none;font-size:13px;color:#8b929e;margin-left:3px}.mc-sub{font-family:IBM Plex Mono,monospace;font-size:9.5px;letter-spacing:.03em;color:#5f6673;margin-top:9px;line-height:1.5}.mc-bar{height:6px;border-radius:3px;background:#1a222a;overflow:hidden;margin-top:11px}.mc-bar span{display:block;height:100%;border-radius:3px}.mc-list{display:flex;flex-direction:column;gap:6px}.mc-list .lr{display:flex;align-items:center;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:12px;color:#9aa1ad;letter-spacing:.04em}.mc-list .s{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.06em}.mc-list .s .d{width:7px;height:7px;border-radius:50%}.mc-list .s.live{color:#59c886}.mc-list .s.live .d{background:#59c886;box-shadow:0 0 7px #59c886}.mc-list .s.down{color:#ec515d}.mc-list .s.down .d{background:#ec515d;box-shadow:0 0 7px #ec515d}.alerts{border:1px solid rgba(255,255,255,.07);border-radius:10px;background:#0c0e12;display:flex;flex-direction:column;overflow:hidden;align-self:start;max-height:100%}.al-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.07)}.al-head .t{font-size:14px;font-weight:600;letter-spacing:.04em;color:#e6e8ec}.al-count{font-family:IBM Plex Mono,monospace;font-size:10px;color:#5f6673;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:1px 8px}.al-list{display:flex;flex-direction:column;overflow-y:auto}.al-empty{padding:20px 15px;font-family:IBM Plex Mono,monospace;font-size:11px;color:#5f6673}.ai{padding:12px 15px;border-bottom:1px solid rgba(255,255,255,.05);border-left:2px solid transparent}.ai-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ai-type{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700;letter-spacing:.05em}.ai-time{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:#5f6673;white-space:nowrap}.ai-json{margin-top:6px;font-family:IBM Plex Mono,monospace;font-size:10px;line-height:1.5;color:#9aa1ad;word-break:break-word;background:#00000052;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:6px 8px}@media(max-width:760px){.mon-body{grid-template-columns:1fr}}@media(max-width:900px){.console{grid-template-columns:1fr}.control{order:-1}.seg-tabs{display:none}}@media(max-width:560px){.grid{grid-template-columns:1fr;grid-template-rows:auto}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#07080a;padding:24px}.login-card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#0b0d11}.login-brand{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.login-card label{display:flex;flex-direction:column;gap:6px;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;color:#8b929e;text-transform:uppercase}.login-card input{padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.09);background:#06090b;color:#e6e8ec;font-size:14px;font-family:inherit}.login-card input:focus{outline:none;border-color:#96a0ff80}.login-btn{margin-top:8px;padding:12px;border:none;border-radius:8px;background:#a2b2ff;background:oklch(.78 .13 275);color:#0b0b10;font-weight:600;letter-spacing:.06em;cursor:pointer;font-family:inherit}.login-btn:hover{filter:brightness(1.06)}.login-error{color:#f97676;font-size:12px}.login-hint{font-size:11px;color:#6d7482;line-height:1.5;margin:0}.drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none}.drawer-root.open{pointer-events:auto}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#04060894;opacity:0;transition:opacity .25s ease}.drawer-root.open .drawer-backdrop{opacity:1}.drawer{position:absolute;top:0;left:0;height:100%;width:360px;max-width:88vw;display:flex;flex-direction:column;background:#0a0b0e;border-right:1px solid rgba(255,255,255,.07);box-shadow:24px 0 60px -30px #000000e6;transform:translate(-100%);transition:transform .25s ease}.drawer-root.open .drawer{transform:translate(0)}.drawer-head{display:flex;align-items:center;gap:12px;padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,.07)}.drawer-title{font-size:16px;font-weight:600;letter-spacing:.1em;color:#e6e8ec}.drawer-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:transparent;color:#9aa1ad;cursor:pointer;transition:border-color .12s,color .12s}.drawer-icon-btn:hover{border-color:#96a0ff66;color:#e6e8ec}.drawer-icon-btn.add{margin-left:auto}.drawer-filters{display:flex;gap:8px;padding:12px 16px 8px}.drawer-select{flex:1;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#111419;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#cfd3da;padding:8px 10px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em;cursor:pointer}.drawer-search{margin:0 16px 8px;padding:9px 11px;background:#0d0f13;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#cfd3da;font-family:IBM Plex Mono,monospace;font-size:12px}.drawer-select:focus,.drawer-search:focus{outline:none;border-color:#96a0ff80}.drawer-search::placeholder{color:#5f6673}.drawer-list{flex:1;overflow-y:auto;padding:6px 10px;display:flex;flex-direction:column;gap:6px}.drawer-empty{padding:22px;text-align:center;color:#5f6673;font-family:IBM Plex Mono,monospace;font-size:12px}.tower-row{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:background .12s,border-color .12s}.tower-row:hover{background:#111419}.tower-row.selected{background:#111419;border-color:#ffffff14}.tower-row-main{flex:1;min-width:0}.tower-row-name{font-size:14px;font-weight:600;letter-spacing:.02em;color:#e6e8ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tower-row-sub{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.04em;color:#5f6673;margin-top:3px}.tower-badge{display:inline-flex;align-items:center;gap:6px;flex:none;padding:3px 8px;border:1px solid;border-radius:4px;background:#00000038;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:500;letter-spacing:.1em}.tower-dot{width:7px;height:7px;border-radius:50%}.tower-remove{opacity:0;flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#0d0f13;color:#9aa1ad;cursor:pointer;transition:opacity .12s,border-color .12s,color .12s}.tower-row:hover .tower-remove{opacity:1}.tower-remove:hover{border-color:#ec515d;color:#f97676}.drawer-foot{padding:12px 16px;border-top:1px solid rgba(255,255,255,.07);font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.12em;color:#5f6673}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;padding:20px;display:flex;align-items:center;justify-content:center;background:#04060899}.modal{width:360px;max-width:100%;display:flex;flex-direction:column;gap:14px;background:#0f1216;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:20px;box-shadow:0 24px 70px -24px #000000d9}.modal-head{font-size:16px;font-weight:600;letter-spacing:.1em;color:#e6e8ec}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field span{font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.14em;color:#9aa1ad;text-transform:uppercase}.modal-field span i{color:#ec515d;font-style:normal;margin-left:3px}.modal-field span em{color:#5f6673;font-style:normal;text-transform:none;letter-spacing:.02em}.modal-field input{background:#0d0f13;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:#e6e8ec;padding:10px 11px;font-family:IBM Plex Mono,monospace;font-size:13px}.modal-field input:focus{outline:none;border-color:#96a0ff80}.modal-field input::placeholder{color:#5f6673}.modal-error{color:#f97676;font-family:IBM Plex Mono,monospace;font-size:11px}.modal-actions{display:flex;gap:10px;margin-top:4px}.modal-btn{flex:1;padding:11px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;letter-spacing:.04em;transition:all .12s;font-family:inherit}.modal-btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.08);color:#cfd3da}.modal-btn.ghost:hover{border-color:#ffffff29}.modal-btn.primary{background:#a2b2ff;background:oklch(.78 .13 275);border:1px solid oklch(.78 .13 275);color:#0b0b10}.modal-btn.primary:hover{filter:brightness(1.08)}.pill-hd{width:8px;height:8px;border-radius:50%;box-shadow:0 0 8px currentColor}.tower-flags{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}.health{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:4px;font-family:IBM Plex Mono,monospace;font-size:8.5px;letter-spacing:.08em;border:1px solid}.health .hd{width:7px;height:7px;border-radius:50%;box-shadow:0 0 7px currentColor}.health.ok{color:#59c886;border-color:#5adc9666}.health.warn{color:#e6ac3d;border-color:#f0be5a73;background:#f0be5a14}.health.crit{color:#ec515d;border-color:#ff5a5a80;background:#ff5a5a1a}.tower-menu{flex:none;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.06);background:#08090c}.tower-menu-item{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#0d0f13;color:#8b929e;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.06em}.tower-menu-item.selected{border-color:#96a0ff66;color:#e6e8ec;background:#111419}.tmi-dot{width:7px;height:7px;border-radius:50%;box-shadow:0 0 6px currentColor}.tmi-status{font-size:9px;letter-spacing:.1em}.recordings-view{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.rec-toolbar{flex:none;display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.06)}.rec-filter{display:flex;flex-direction:column;gap:4px;font-size:10px;letter-spacing:.12em;color:#5f6673}.rec-filter select{min-width:180px;background:#111419;color:#e6e8ec;border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:8px 10px;font-family:IBM Plex Mono,monospace;font-size:11px}.rec-layout{flex:1 1 0;min-height:0;display:flex;flex-direction:row;align-items:stretch;gap:14px;padding:14px 18px 18px;overflow:hidden}.rec-list-pane,.rec-player-pane{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:#0e1116}.rec-list-pane{flex:0 0 420px;width:420px;max-width:42vw}.rec-player-pane{flex:1 1 0;background:#0a0c10}.rec-list-head,.rec-player-head{flex:none;display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06);font-size:11px;letter-spacing:.06em;color:#9aa1ad}.rec-list-body{flex:1 1 0;min-height:0;overflow-x:hidden;overflow-y:auto}.rec-pager{flex:none;display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.06)}.rec-pager .ctl-btn{flex:none;padding:8px 12px}.rec-pager-meta{flex:1;text-align:center;font-family:IBM Plex Mono,monospace;font-size:10px;letter-spacing:.06em;color:#5f6673}.rec-empty{padding:24px 14px;color:#5f6673;font-size:12px}.rec-row{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.05)}.rec-row-title{font-size:13px;font-weight:600;color:#e6e8ec;letter-spacing:.02em}.rec-row-time{font-size:11px;color:#cfd3da}.rec-row-meta{font-size:10px;color:#5f6673;word-break:break-all}.rec-row-actions{display:flex;flex-wrap:wrap;gap:6px}.rec-del{color:#f97676}.rec-player{flex:1 1 0;width:100%;min-height:0;background:#000;object-fit:contain}.rec-player-empty{flex:1 1 0;display:flex;align-items:center;justify-content:center;color:#5f6673;font-size:12px;letter-spacing:.08em}.rec-error{flex:none;margin:12px 18px 0}.rec-foot{flex:none;padding:10px 18px 16px;font-size:10px;letter-spacing:.12em;color:#5f6673}@media(max-width:900px){.rec-layout{flex-direction:column}.rec-list-pane{flex:1 1 0;width:auto;max-width:none}.rec-player-pane{flex:0 0 42%;order:-1}}@media(max-width:767px){.topbar{flex-wrap:wrap;height:auto;row-gap:8px;padding:12px 14px;gap:12px}.topbar-brand-group{flex-wrap:wrap;row-gap:4px;min-width:0}.topbar-end-group{gap:10px;margin-left:0}.console{padding:10px 12px;gap:10px}.grid{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:min-content;overflow-y:auto;-webkit-overflow-scrolling:touch}.feed{min-height:0;aspect-ratio:16 / 9}.grid.spotlight{grid-template-columns:1fr;grid-template-rows:none}.grid.spotlight .is-spotlight{grid-column:auto;aspect-ratio:16 / 9}.grid.spotlight .is-thumb{aspect-ratio:16 / 9;opacity:1}.control{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:30;max-height:72vh;width:auto;border-radius:16px 16px 0 0;box-shadow:0 -20px 50px -24px #000c;transform:translateY(105%);transition:transform .25s ease}.console.collapsed .control{display:flex;transform:translateY(105%)}.console:not(.collapsed) .control{display:flex;transform:translateY(0)}.panel-toggle{position:fixed;top:auto;left:auto;bottom:16px;right:16px;z-index:31;width:48px;height:48px;border-radius:50%;box-shadow:0 8px 24px -8px #000000b3}.rail{flex-direction:row;width:100%;height:52px;padding:0 10px;gap:4px;border-right:none;border-bottom:1px solid rgba(255,255,255,.06)}.rail-logo{margin-bottom:0}.fleet-shell{flex-direction:column}}
