:root{--cream: #F0EBE3;--dark: #0e0e0e;--dark-card: #161616;--dark-border: rgba(255,255,255,.06);--gray: #666;--light-gray: #999;--green: #28C600;--red: #C60003;--amber: #ECB100}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:JetBrains Mono,monospace;background:var(--dark);color:var(--cream);height:100%;overflow:hidden;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.hidden *{animation-play-state:paused!important}.update-pulse{position:absolute;bottom:0;left:0;right:0;height:2px;z-index:10;background:var(--green);box-shadow:0 0 8px var(--green),0 0 20px #28c6004d;animation:updatePulse 3s ease-out forwards;pointer-events:none}@keyframes updatePulse{0%{opacity:1}20%{opacity:.3}40%{opacity:1}60%{opacity:.3}80%{opacity:.7}to{opacity:0}}.login-screen{display:none;height:100vh;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.login-screen.active{display:flex}.login-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.login-logo{margin-bottom:3rem;position:relative;z-index:2}.login-logo img{height:52px;width:auto;filter:brightness(0) invert(1) sepia(.15) saturate(.5) hue-rotate(350deg);opacity:.7}.login-box{position:relative;z-index:2;width:400px;max-width:90vw;border:1px solid var(--dark-border);background:var(--dark-card);padding:3rem}.login-box:before{content:"";position:absolute;inset:-8px;border:1px dashed rgba(255,255,255,.06);pointer-events:none}.login-title{font-family:Barlow Condensed,sans-serif;font-size:1.4rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;text-align:center;margin-bottom:2rem;color:var(--cream)}.login-field{width:100%;margin-bottom:1rem}.login-field label{display:block;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gray);margin-bottom:.4rem}.login-field input{width:100%;background:var(--dark);border:1px solid var(--dark-border);color:var(--cream);font-family:JetBrains Mono,monospace;font-size:.8rem;letter-spacing:.05em;padding:.8rem 1rem;outline:none;transition:border-color .3s}.login-field input:not([type=password]):not(.pw-reveal){text-transform:uppercase}.login-field input:focus{border-color:#ffffff26}.login-field input::placeholder{color:#333}.password-wrapper{position:relative;width:100%}.password-wrapper input{width:100%;padding-right:2.5rem}.password-toggle{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gray);cursor:pointer;font-size:.85rem;padding:.2rem;line-height:1;transition:color .3s}.password-toggle:hover{color:var(--cream)}.pw-info-btn{position:relative;cursor:pointer;color:var(--gray);transition:color .2s;display:inline-flex;align-items:center}.pw-info-btn:hover{color:var(--cream)}.pw-info-btn svg{display:block}.pw-info-tooltip{display:none;position:absolute;top:calc(100% + .4rem);left:50%;transform:translate(-50%);background:#111;border:1px solid var(--dark-border);padding:.5rem .7rem;white-space:nowrap;z-index:100;font-size:.48rem;letter-spacing:.08em;line-height:1.6}.pw-info-btn:hover .pw-info-tooltip{display:block}.pw-req{color:var(--gray);transition:color .3s}.pw-req.met{color:#4a7}.pw-match{font-size:.48rem;letter-spacing:.08em;margin-top:.3rem;height:1rem;transition:color .3s}.pw-match.match{color:#4a7}.pw-match.no-match{color:var(--red)}.login-btn{width:100%;background:var(--cream);color:var(--dark);border:none;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.9rem;cursor:pointer;transition:background .3s;margin-top:.5rem}.login-btn:hover{background:#fff}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-input{width:100%;background:#ffffff0a;border:1px solid var(--dark-border);color:var(--cream);font-family:JetBrains Mono,monospace;font-size:.6rem;padding:.65rem .8rem;letter-spacing:.08em;text-transform:uppercase}.login-input::placeholder{color:#444}.login-input:focus{outline:none;border-color:#fff3}.robot-card{padding:.7rem;margin-bottom:.4rem;border:1px solid var(--dark-border);cursor:pointer;transition:border-color .2s}.robot-card:hover{border-color:#fff3}.login-error{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);text-align:center;margin-bottom:1rem}.login-footer{display:flex;justify-content:space-between;margin-top:1.5rem;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase}.login-footer a{color:var(--gray);text-decoration:none;transition:color .3s;cursor:pointer}.login-footer a:hover{color:var(--cream)}.login-sub{position:relative;z-index:2;margin-top:3rem;font-size:.5rem;letter-spacing:.15em;text-transform:uppercase;color:#333;display:flex;align-items:center;gap:.6rem}.console{display:none;height:100vh;flex-direction:column}.console.active{display:flex}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.2rem;border-bottom:1px solid var(--dark-border);flex-shrink:0;position:relative}.topbar-left{display:flex;align-items:center;gap:1.5rem}.topbar-logo img{height:24px;width:auto;filter:brightness(0) invert(1) sepia(.15) saturate(.5) hue-rotate(350deg);opacity:.9}.topbar-title{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:1.3rem;font-weight:600;text-transform:uppercase;letter-spacing:-.02em;color:var(--cream)}.topbar-tabs{display:flex;gap:0}.topbar-tab{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);padding:.4rem .9rem;cursor:pointer;border:1px solid transparent;transition:all .3s;background:none;font-family:JetBrains Mono,monospace}.topbar-tab:hover{color:var(--light-gray)}.topbar-tab.active{color:var(--cream);border-color:var(--dark-border);background:var(--dark-card)}.topbar-right{display:flex;align-items:center;gap:.4rem}.topbar-time{text-align:right;margin-right:.5rem}.topbar-time .time-label{font-size:.45rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gray)}.topbar-time .time-val{font-size:.7rem;color:var(--cream);margin-top:.1rem}.service-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:#111;border:1px solid var(--dark-border);z-index:1000;font-family:Barlow Condensed,sans-serif;overflow:hidden}.service-dropdown.open{display:block}.service-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--dark-border)}.service-dropdown-title{font-size:.85rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--cream)}.service-dropdown-state{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.15rem .5rem}.state-nominal{color:var(--green)}.state-degraded{color:var(--amber)}.state-critical{color:var(--red)}.service-dropdown-body{padding:.4rem 0}.service-group-row{display:flex;align-items:center;gap:.6rem;padding:.5rem 1rem;transition:background .15s}.service-group-row:hover{background:#ffffff08}.service-group-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.service-group-dot.healthy{background:var(--green);box-shadow:0 0 4px #28c60066}.service-group-dot.unhealthy{background:var(--red);box-shadow:0 0 4px #c6000366}.service-group-label{flex:1;font-size:.85rem;color:var(--cream);letter-spacing:.05em}.service-group-restart{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#ffffff0a;border:1px solid var(--dark-border);color:var(--cream);font-size:.85rem;cursor:pointer;transition:all .2s;flex-shrink:0;font-family:Barlow Condensed,sans-serif}.service-group-restart:hover:not(:disabled){border-color:var(--amber);color:var(--amber);background:#ecb10014}.service-group-restart.disabled,.service-group-restart:disabled{opacity:.25;cursor:not-allowed}.service-dropdown-footer{padding:.6rem 1rem;border-top:1px solid var(--dark-border)}.service-restart-all{width:100%;font-family:Barlow Condensed,sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--amber);background:#ffffff0a;border:1px solid rgba(236,177,0,.3);padding:.5rem;cursor:pointer;transition:all .2s}.service-restart-all:hover{background:#ecb1001a;border-color:#ecb10080}.status-pill{display:flex;align-items:center;gap:.4rem;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);border:1px solid rgba(40,198,0,.2);padding:.3rem .7rem}.status-pill.error,.status-pill.closed{color:var(--red);border-color:#c6000333}.status-pill.connecting,.status-pill.stale,.status-pill.warning{color:var(--amber);border-color:#ecb10033}.status-pill .dot{width:6px;height:6px;background:currentColor;border-radius:50%;flex-shrink:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.console-body{flex:1;min-height:0;overflow:hidden}.tab-content{display:none;height:100%}.tab-content.active{display:block}.panel-grid{display:grid;gap:1px;background:var(--dark-border);height:100%}.panel-grid-3{grid-template-columns:1.4fr .8fr .8fr}.panel{background:var(--dark-card);padding:1.2rem;position:relative;overflow-y:auto}.panel-label{font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:.2rem}.panel-title{font-family:Barlow Condensed,sans-serif;font-size:1.15rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--cream);margin-bottom:1rem}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.metric-label{font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gray);margin-bottom:.2rem}.metric-val{font-size:.95rem;font-weight:600;color:var(--cream)}.metric-val.dim{color:#444}.bar-group{margin-bottom:.8rem}.bar-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.bar-label{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray)}.bar-value{font-size:.7rem;font-weight:600;color:var(--cream)}.bar-track{width:100%;height:5px;background:var(--dark);position:relative;overflow:hidden}.bar-fill{height:100%;background:var(--cream);transition:width .5s ease}.bar-fill.warn{background:var(--amber)}.bar-fill.danger{background:var(--red)}.chart-area{border:1px dashed var(--dark-border);padding:1rem;margin-top:.8rem;position:relative}.chart-canvas{width:100%;position:relative}.chart-svg{width:100%;height:auto;display:block}.chart-legend{display:flex;gap:1rem;margin-top:.7rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.35rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray)}.legend-color{width:10px;height:10px;border:1px solid;flex-shrink:0}.ops-layout{display:grid;grid-template-columns:1fr 260px;gap:1px;background:var(--dark-border);height:100%}.video-panel{background:#111;position:relative;overflow:hidden}.video-placeholder{width:100%;height:100%;background:radial-gradient(ellipse at 40% 50%,rgba(255,255,255,.02),transparent 70%),linear-gradient(180deg,#111,#0a0a0a);display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;z-index:1}#video-element{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;background:#000;z-index:0}.video-no-signal{text-align:center}.video-no-signal .icon{width:56px;height:56px;border:1.5px solid #2a2a2a;border-radius:50%;margin:0 auto 1.2rem;display:flex;align-items:center;justify-content:center;position:relative;animation:signal-ring 3s ease-in-out infinite}.video-no-signal .icon:before{content:"";position:absolute;width:56px;height:56px;border:1px solid rgba(255,255,255,.04);border-radius:50%;animation:signal-ping 3s ease-out infinite}.video-no-signal .icon:after{content:"";position:absolute;width:56px;height:56px;border:1px solid rgba(255,255,255,.02);border-radius:50%;animation:signal-ping 3s ease-out infinite 1s}.video-no-signal .icon svg{width:20px;height:20px;opacity:.15;animation:signal-icon-pulse 3s ease-in-out infinite}@keyframes signal-ring{0%,to{border-color:#222}50%{border-color:#333}}@keyframes signal-ping{0%{transform:scale(1);opacity:.5}to{transform:scale(2.2);opacity:0}}@keyframes signal-icon-pulse{0%,to{opacity:.1}50%{opacity:.25}}.video-no-signal .label{font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:#2a2a2a;animation:signal-text-pulse 3s ease-in-out infinite}@keyframes signal-text-pulse{0%,to{color:#222}50%{color:#3a3a3a}}.video-no-signal .scanline{position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.03),transparent);animation:scanline-move 4s linear infinite;pointer-events:none}@keyframes scanline-move{0%{top:0}to{top:100%}}.video-overlay-tl{position:absolute;top:.8rem;left:.8rem;display:flex;gap:.4rem;z-index:2}.video-badge{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;border:1px solid var(--dark-border);color:var(--gray);background:#0e0e0ecc;cursor:pointer;transition:all .3s}.video-badge:hover{color:var(--cream);border-color:#ffffff26}.video-badge:active{opacity:.7}.video-badge.active{color:var(--cream);border-color:#ffffff26}.video-overlay-tr{position:absolute;top:.8rem;right:.8rem;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;z-index:2}.video-status{display:flex;align-items:center;gap:.3rem;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .6rem;border:1px solid var(--dark-border);background:#0e0e0ecc}.video-status .dot{width:5px;height:5px;border-radius:50%;background:var(--green)}.video-status .dot.inactive{background:#333}.rec-btn .rec-dot{background:#555}.rec-btn:hover .rec-dot{background:var(--red)}.rec-btn{transition:all .2s}.rec-btn:hover{border-color:#c6000366}.rec-btn .dot.recording{background:var(--red);animation:pulse-rec 1s ease-in-out infinite}@keyframes pulse-rec{0%,to{opacity:1;box-shadow:0 0 #c6000366}50%{opacity:.7;box-shadow:0 0 0 4px #c6000300}}.rec-btn .dot.uploading{background:var(--amber);animation:pulse-upload 1.5s ease-in-out infinite}@keyframes pulse-upload{0%,to{opacity:1}50%{opacity:.5}}.video-overlay-bl{position:absolute;bottom:.8rem;left:.8rem;z-index:2}.minimap{width:255px;height:180px;border:1px solid var(--dark-border);background:#0e0e0ed9;display:flex;align-items:center;justify-content:center;overflow:hidden}.minimap img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.minimap-label{font-size:.4rem;letter-spacing:.15em;text-transform:uppercase;color:#333}.detection-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.detection-log{max-height:120px;overflow-y:auto;margin-top:.4rem}.detection-log-entry{font-size:.45rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.03);display:flex;align-items:center;gap:.3rem}.det-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.event-type-badge{display:inline-block;font-size:.35rem;font-weight:700;letter-spacing:.08em;padding:.1rem .3rem;border-radius:2px;color:#000;vertical-align:middle;margin-right:.3rem}.clip-play-btn{background:none;border:1px solid rgba(255,255,255,.2);color:var(--cream);font-size:.35rem;padding:.05rem .2rem;border-radius:2px;cursor:pointer;margin-left:.3rem;flex-shrink:0}.clip-play-btn:hover{background:#ffffff1a}.clip-modal{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999}.clip-modal-content{position:relative;max-width:90vw}.clip-modal-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;gap:.5rem}.clip-download-btn,.clip-modal-close-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--cream, #f5f5dc);background:#ffffff0a;border:1px solid var(--dark-border, rgba(255,255,255,.1));padding:.6rem 1.2rem;cursor:pointer;transition:all .2s}.clip-btn-icon{font-size:1.4rem;line-height:1}.clip-download-btn:hover,.clip-modal-close-btn:hover{border-color:var(--cream, #f5f5dc);background:#ffffff14}.clip-modal-close-btn{border-color:#c600034d;color:var(--red)}.clip-modal-close-btn:hover{border-color:var(--red);background:#c600031a}.downloads-row{display:flex;align-items:center;justify-content:space-between;padding:.6rem .8rem;border-bottom:1px solid rgba(255,255,255,.04);transition:background .15s}.downloads-row:hover{background:#ffffff05}.downloads-row-info{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.downloads-row-name{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.downloads-row-meta{font-size:.65rem;color:var(--gray);letter-spacing:.04em}.downloads-row-actions{display:flex;gap:.3rem;flex-shrink:0}.settings-disk-bar{position:relative;background:#ffffff08;border:1px solid var(--dark-border);height:1.8rem;overflow:hidden;margin-top:.3rem}.settings-disk-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);z-index:1}.settings-disk-fill{height:100%;width:0%;background:var(--green);opacity:.15;transition:width .5s ease,background .5s ease}#btn-downloads:hover,#btn-fullscreen:hover{border-color:#ffffff4d;color:var(--cream)!important}.logs-layout{display:flex;flex-direction:column;height:100%;background:var(--dark)}.logs-filter-bar{padding:1rem 1.2rem .6rem;border-bottom:1px solid var(--dark-border);background:var(--dark-card);flex-shrink:0}.logs-filter-row{display:flex;align-items:center;gap:.5rem}.logs-input{flex:1;max-width:280px;background:var(--dark);border:1px solid var(--dark-border);color:var(--cream);font-family:JetBrains Mono,monospace;font-size:.75rem;padding:.5rem .7rem;outline:none;letter-spacing:.05em}.logs-input:focus{border-color:#ffffff26}.logs-input::placeholder{color:#333}.logs-time-btns{display:flex;gap:0}.logs-time-btn{background:none;border:1px solid var(--dark-border);color:var(--gray);font-family:JetBrains Mono,monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;padding:.45rem .7rem;cursor:pointer;transition:all .3s}.logs-time-btn+.logs-time-btn{border-left:none}.logs-time-btn:hover{color:var(--light-gray)}.logs-time-btn.active{color:var(--cream);background:#ffffff0f;border-color:#ffffff1f}.logs-search-btn{background:var(--cream);color:var(--dark);border:none;font-family:JetBrains Mono,monospace;font-size:.6rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.5rem 1.2rem;cursor:pointer;transition:opacity .3s}.logs-search-btn:hover{opacity:.85}.logs-search-btn:disabled{opacity:.4;cursor:not-allowed}.logs-result-count{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-top:.5rem}.logs-results{flex:1;overflow-y:auto;padding:0}.logs-entry{display:flex;align-items:center;gap:.8rem;padding:.7rem 1.2rem;border-bottom:1px solid var(--dark-border);font-size:.65rem;letter-spacing:.06em;transition:background .2s}.logs-entry:hover{background:#ffffff05}.logs-entry-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.logs-entry-time{color:var(--gray);font-size:.6rem;letter-spacing:.08em;min-width:150px;flex-shrink:0}.logs-entry-label{color:var(--cream);text-transform:uppercase;font-weight:600;letter-spacing:.1em;min-width:80px}.logs-entry-conf{color:var(--gray);min-width:40px}.logs-entry-source{color:#444;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase}.logs-entry-dist{color:var(--gray);margin-left:auto}.logs-footer{padding:.8rem 1.2rem;border-top:1px solid var(--dark-border);background:var(--dark-card);text-align:center;flex-shrink:0}.logs-load-more-btn{background:none;border:1px solid var(--dark-border);color:var(--gray);font-family:JetBrains Mono,monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem 1.5rem;cursor:pointer;transition:all .3s}.logs-load-more-btn:hover{color:var(--cream);border-color:#ffffff26;background:#ffffff14}.video-overlay-br{position:absolute;bottom:.8rem;right:.8rem;z-index:2}.dpad{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;width:120px;height:120px}.dpad-btn{background:#0e0e0ed9;border:1px solid var(--dark-border);color:var(--gray);display:flex;align-items:center;justify-content:center;font-size:.65rem;line-height:1;cursor:pointer;transition:all .2s;user-select:none}.dpad-btn:hover{border-color:#ffffff26;color:var(--cream)}.dpad-btn.active-dir{border-color:var(--cream);color:var(--cream);background:#f0ebe31a}.dpad-btn.empty{background:transparent;border-color:transparent;cursor:default}.dpad-btn.empty:hover{border-color:transparent;color:var(--gray)}.dpad-estop{background:#280808d9;border:1px solid rgba(198,0,3,.4);color:var(--red);font-size:.75rem;cursor:pointer;transition:all .2s;padding:0}.dpad-estop:hover{border-color:var(--red);color:var(--red);background:#3c0c0ce6}.dpad-estop.estop-active{background:var(--red);border-color:var(--red);color:#000;animation:estop-pulse .8s ease-in-out infinite}.dpad-estop.estop-active:hover{background:var(--red)}@keyframes estop-pulse{0%,to{opacity:1}50%{opacity:.6}}.speed-control{display:flex;align-items:center;justify-content:center;gap:0;margin-top:6px;background:#0e0e0ecc;border:1px solid var(--dark-border)}.speed-btn{background:none;border:none;color:var(--cream);width:28px;height:28px;font-size:1rem;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s;user-select:none}.speed-btn:hover{color:var(--cream)}.speed-display{color:var(--cream);font-size:.55rem;letter-spacing:.1em;font-family:var(--mono);text-transform:uppercase}.pending{opacity:.6;pointer-events:none}.shutdown-box{display:flex;align-items:center;justify-content:center;padding:.3rem;border:1px solid var(--dark-border);background:transparent;color:#555;cursor:pointer;transition:all .2s}.shutdown-box:hover{border-color:var(--red);color:var(--red)}.shutdown-box:disabled{opacity:.4;pointer-events:none}.shutdown-box.settings-btn:hover{border-color:var(--cream);color:var(--cream)}.shutdown-box svg{display:block}.shutdown-overlay{position:fixed;inset:0;z-index:9999;background:#000000bf;display:flex;align-items:center;justify-content:center}.shutdown-overlay.hidden{display:none}.shutdown-dialog-box{background:#111;border:1px solid var(--dark-border);width:min(400px,90vw);font-family:Barlow Condensed,sans-serif}.shutdown-dialog-title{font-size:.95rem;letter-spacing:.12em;color:var(--red);text-transform:uppercase;font-weight:600;padding:1rem 1.2rem;border-bottom:1px solid var(--dark-border)}.shutdown-dialog-body{font-family:Barlow Condensed,sans-serif;font-size:.85rem;color:var(--gray);line-height:1.6;padding:1.2rem}.shutdown-dialog-actions{display:flex;gap:.5rem;padding:0 1.2rem 1.2rem}.shutdown-dialog-cancel{flex:1;padding:.5rem 1rem;background:#ffffff0a;border:1px solid var(--dark-border);color:var(--cream);font-size:.85rem;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-family:Barlow Condensed,sans-serif;transition:all .2s}.shutdown-dialog-cancel:hover{border-color:var(--cream)}.shutdown-dialog-confirm{flex:1;padding:.5rem 1rem;background:#ffffff0a;border:1px solid rgba(198,0,3,.3);color:var(--red);font-size:.85rem;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-family:Barlow Condensed,sans-serif;font-weight:600;transition:all .2s}.shutdown-dialog-confirm:hover{border-color:var(--red);background:#c600031a}#explore-map-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.explore-empty{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:1}.explore-empty .video-no-signal{pointer-events:none}.btn-hover:hover{color:var(--cream)!important;border-color:#ffffff26!important;background:#ffffff14!important}.btn-hover:active{opacity:.7}.btn-hover-primary:hover{opacity:.85}.btn-hover-primary:active{opacity:.7}.maps-action-btn{width:100%;background:none;border:1px solid var(--dark-border);color:var(--gray);font-family:JetBrains Mono,monospace;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;padding:.5rem;cursor:pointer;transition:all .3s;margin-bottom:.4rem}.maps-action-btn:hover{color:var(--cream);border-color:#ffffff26}.maps-action-btn.primary{background:var(--cream);color:var(--dark);border-color:var(--cream)}.maps-action-btn.primary:hover{background:#fff}.maps-action-btn.danger{color:var(--red)}.maps-action-btn.danger:hover{border-color:var(--red)}.maps-input{width:100%;background:var(--dark);border:1px solid var(--dark-border);color:var(--cream);font-family:JetBrains Mono,monospace;font-size:.6rem;padding:.45rem .5rem;outline:none;margin-bottom:.4rem}.maps-input:focus{border-color:#ffffff26}.maps-input::placeholder{color:#333}.maps-status{font-size:.45rem;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:.4rem}.maps-plus-btn{background:none;border:1px solid var(--dark-border);color:var(--gray);font-family:JetBrains Mono,monospace;font-size:.7rem;width:1.4rem;height:1.4rem;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;line-height:1}.maps-plus-btn:hover{color:var(--cream);border-color:#ffffff26}.maps-map-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .6rem;border:1px solid var(--dark-border);margin-bottom:.3rem;cursor:pointer;transition:all .2s;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray)}.maps-map-item:hover{color:var(--cream);border-color:#ffffff26}.maps-map-item.active{color:var(--cream);border-color:#ffffff26;cursor:default}.maps-map-actions{padding:.4rem .6rem .5rem;border:1px solid var(--dark-border);border-top:none;margin-top:-.3rem;margin-bottom:.3rem}.maps-route-item{display:flex;justify-content:space-between;align-items:center;padding:.45rem .5rem;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);cursor:pointer;transition:color .2s;border-bottom:1px solid rgba(255,255,255,.04)}.maps-route-item:hover,.maps-route-item.active{color:var(--cream)}.maps-route-delete{background:none;border:none;color:#555;font-size:.8rem;cursor:pointer;padding:.2rem .4rem;line-height:1;transition:color .2s}.maps-route-delete:hover{color:var(--red)}.maps-route-patrol{background:none;border:none;color:#555;font-size:.55rem;cursor:pointer;padding:.15rem .3rem;line-height:1;transition:color .2s}.maps-route-patrol:hover{color:#4caf50}.patrol-toast{position:fixed;top:1rem;left:50%;transform:translate(-50%);background:#161616f2;border:1px solid rgba(76,175,80,.4);color:#4caf50;padding:.5rem 1rem;font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;font-family:ui-monospace,monospace;z-index:10000;animation:toastFade 5s forwards}@keyframes toastFade{0%,80%{opacity:1}to{opacity:0}}.dpad-disabled{opacity:.3;pointer-events:none}.maps-route-info{font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-bottom:.4rem}.side-panel{background:var(--dark-card);display:flex;flex-direction:column;overflow-y:auto}.side-section{padding:1rem;border-bottom:1px solid var(--dark-border)}.side-section:last-child{border-bottom:none}.side-label{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:#888;margin-bottom:.6rem}.side-metric{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.side-metric .sm-label{font-size:.55rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}.side-metric .sm-val{font-size:.75rem;font-weight:600;color:var(--cream)}.side-metric .sm-val.green{color:var(--green)}.side-metric .sm-val.amber{color:var(--amber)}.side-metric .sm-val.red{color:var(--red)}.side-divider{height:1px;background:var(--dark-border);margin:.5rem 0}#wifi-network-list::-webkit-scrollbar,.panel::-webkit-scrollbar,.console-body::-webkit-scrollbar,.side-panel::-webkit-scrollbar,.detection-log::-webkit-scrollbar,.logs-results::-webkit-scrollbar{width:8px}#wifi-network-list::-webkit-scrollbar-track,.panel::-webkit-scrollbar-track,.console-body::-webkit-scrollbar-track,.side-panel::-webkit-scrollbar-track,.detection-log::-webkit-scrollbar-track,.logs-results::-webkit-scrollbar-track{background:#000}#wifi-network-list::-webkit-scrollbar-thumb,.panel::-webkit-scrollbar-thumb,.console-body::-webkit-scrollbar-thumb,.side-panel::-webkit-scrollbar-thumb,.detection-log::-webkit-scrollbar-thumb,.logs-results::-webkit-scrollbar-thumb{background:#444}.bottombar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.2rem;border-top:1px solid var(--dark-border);flex-shrink:0}.bottombar-left{display:flex;align-items:center;gap:1rem}.bottombar-right{display:flex;align-items:center;gap:.4rem;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase}.bottombar-right button{color:var(--gray);text-decoration:none;padding:.25rem .6rem;border:1px solid var(--dark-border);background:none;font-family:JetBrains Mono,monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .3s}.bottombar-right button:hover{color:var(--cream);border-color:#ffffff26}.bottombar-right .bottombar-link{color:var(--gray);text-decoration:none;padding:.25rem .6rem;border:1px solid var(--dark-border);font-family:JetBrains Mono,monospace;font-size:.55rem;letter-spacing:.1em;text-transform:uppercase;transition:all .3s}.bottombar-right .bottombar-link:hover{color:var(--cream);border-color:#ffffff26}.bottombar-right .danger{color:var(--red);border-color:#c600034d}.bottombar-right .danger:hover{color:var(--red);border-color:var(--red)}.bottombar-icon-btn{background:none;border:none;color:var(--gray);cursor:pointer;font-size:1rem;padding:.1rem .3rem;transition:color .2s;line-height:1}.bottombar-icon-btn:hover{color:var(--cream)}.settings-overlay{position:fixed;inset:0;z-index:9998;background:#000000bf;display:flex;align-items:center;justify-content:center}.settings-panel{background:#111;border:1px solid var(--dark-border);width:min(480px,92vw);max-height:80vh;overflow-y:auto;font-family:Barlow Condensed,sans-serif}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid var(--dark-border)}.settings-title{font-size:.95rem;letter-spacing:.12em;color:var(--cream);text-transform:uppercase;font-weight:600}.settings-close{background:none;border:none;color:var(--gray);font-size:1.6rem;cursor:pointer;padding:0;line-height:1}.settings-close:hover{color:var(--cream)}.settings-tabs{display:flex;border-bottom:1px solid var(--dark-border)}.settings-tab{flex:1;padding:.7rem;background:none;border:none;color:var(--gray);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent;font-family:Barlow Condensed,sans-serif}.settings-tab:hover{color:var(--cream)}.settings-tab.active{color:var(--cream);border-bottom-color:var(--cream)}.settings-content{display:none;padding:1.2rem}.settings-content.active{display:block}.settings-field{margin-bottom:1rem}.settings-label{font-size:.75rem;color:var(--gray);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.3rem;display:block}.settings-value{font-size:.9rem;color:var(--cream);font-family:JetBrains Mono,monospace}.settings-value-row{display:flex;align-items:center;gap:.6rem}.settings-value-row span{font-size:.9rem;color:var(--cream);font-family:JetBrains Mono,monospace;text-transform:uppercase}.settings-edit-btn,.settings-save-btn,.settings-cancel-btn{background:none;border:1px solid var(--dark-border);color:var(--gray);font-size:.8rem;padding:.25rem .6rem;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-family:Barlow Condensed,sans-serif;transition:all .2s}.settings-edit-btn:hover,.settings-save-btn:hover{border-color:var(--cream);color:var(--cream)}.settings-cancel-btn:hover{border-color:var(--red);color:var(--red)}.settings-input{width:100%;padding:.45rem .6rem;margin-top:.4rem;background:#ffffff0a;border:1px solid var(--dark-border);color:var(--cream);font-size:.9rem;box-sizing:border-box;font-family:JetBrains Mono,monospace;text-transform:uppercase}.settings-input:focus{outline:none;border-color:#ffffff4d}.settings-form-actions{display:flex;gap:.5rem;margin-top:.4rem}.settings-error{color:var(--red);font-size:.8rem;margin-top:.3rem;font-family:JetBrains Mono,monospace}.settings-divider{border-top:1px solid var(--dark-border);margin:1rem 0}.settings-action-btn{background:#ffffff0a;border:1px solid var(--dark-border);color:var(--cream);font-size:.85rem;padding:.5rem 1rem;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-family:Barlow Condensed,sans-serif;transition:all .2s;width:100%;margin-bottom:.5rem}.settings-action-btn:hover{border-color:var(--cream)}.settings-action-btn.danger{border-color:#c600034d;color:var(--red)}.settings-action-btn.danger:hover{border-color:var(--red);background:#c600031a}.settings-action-btn:disabled{opacity:.4;pointer-events:none}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.3rem 0}.settings-toggle-desc{font-size:.75rem;color:var(--light-gray);flex:1}.settings-toggle-btn{font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;border-radius:3px;cursor:pointer;border:1px solid var(--green, #28C600);color:var(--green, #28C600);background:#28c60014;transition:all .2s}.settings-toggle-btn:hover{background:#28c60026}.settings-toggle-btn.toggle-off{border-color:var(--gray);color:var(--gray);background:#ffffff08}.settings-toggle-btn.toggle-off:hover{background:#ffffff0f}.settings-section{margin-bottom:.8rem}.settings-section-title{font-size:.8rem;color:var(--gray);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.6rem}.invite-code-display{background:#00ff000d;border:1px solid rgba(0,255,0,.2);padding:.6rem .8rem;margin:.5rem 0;display:flex;align-items:center;justify-content:space-between}.invite-code-text{font-family:JetBrains Mono,monospace;font-size:1.05rem;color:#4f4;letter-spacing:.15em}.invite-copy-btn{background:none;border:1px solid rgba(0,255,0,.3);color:#4f4;font-size:.75rem;padding:.2rem .5rem;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-family:Barlow Condensed,sans-serif;transition:all .2s}.invite-copy-btn:hover{border-color:#4f4}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:.85rem;font-family:Barlow Condensed,sans-serif}.settings-row-info{color:var(--cream);text-transform:uppercase;font-size:.85rem;letter-spacing:.08em;font-weight:600}.settings-row-detail{color:var(--gray);font-size:.8rem;margin-top:.15rem;letter-spacing:.06em}.settings-row-action{background:none;border:1px solid var(--dark-border);color:var(--gray);font-size:.8rem;padding:.2rem .5rem;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;font-family:Barlow Condensed,sans-serif;transition:all .2s}.settings-row-action:hover{border-color:var(--red);color:var(--red)}.settings-row-badge{font-size:.8rem;color:var(--gray);text-transform:uppercase;letter-spacing:.08em;padding:.15rem .4rem;border:1px solid var(--dark-border)}.settings-row-you{font-size:.8rem;color:#4f4;margin-left:.3rem}.settings-empty{color:var(--gray);font-size:.85rem;text-align:center;padding:1.2rem 0;font-style:italic}@media(max-width:1200px){.panel-grid-3{grid-template-columns:1.2fr .9fr .9fr}.metrics{grid-template-columns:repeat(3,1fr)}.ops-layout{grid-template-columns:1fr 220px}}@media(max-width:1024px){.topbar-title{display:none}.topbar-left{gap:.8rem}.panel-grid-3{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.panel-grid-3 .panel:first-child{grid-column:1 / -1}.video-panel{min-height:45vh}.metrics{grid-template-columns:repeat(4,1fr)}.ops-layout{grid-template-columns:1fr 200px}.dpad{width:140px;height:140px}.dpad-btn{font-size:.8rem;min-width:44px;min-height:44px}.minimap{width:180px;height:120px}.settings-panel{width:min(520px,94vw)}.shutdown-dialog-box{width:min(420px,92vw)}.service-dropdown{min-width:300px}}@media(max-width:768px){.topbar{padding:.5rem .8rem}.topbar-logo img{height:20px}.topbar-time{display:none}.topbar-left{gap:.6rem}.panel-grid-3{grid-template-columns:1fr;height:auto;min-height:100%}.panel-grid-3 .panel:first-child{grid-column:auto}.console-body{overflow-y:auto}.panel-grid{height:auto}.video-panel{min-height:40vh}.side-panel{flex-direction:row;flex-wrap:wrap}.side-section{flex:1 1 45%;min-width:180px;border-bottom:none;border-right:1px solid var(--dark-border)}.side-section:last-child{border-right:none}.chart-area,.chart-legend{display:none}.metrics{grid-template-columns:repeat(3,1fr);gap:.8rem}.ops-layout{grid-template-columns:1fr;grid-template-rows:1fr auto;height:auto;min-height:100%}.dpad{width:160px;height:160px}.dpad-btn{font-size:.9rem;min-width:48px;min-height:48px}.dpad-estop{font-size:.9rem}.bottombar{padding:.4rem .8rem}.logs-filter-row{flex-wrap:wrap}.logs-input{max-width:100%;min-width:160px}.settings-panel{width:96vw;max-height:85vh}.shutdown-dialog-box{width:92vw}.service-dropdown{min-width:unset;width:90vw;right:-2rem}.clip-modal-content{width:96vw;max-width:96vw}.clip-modal-content video{max-height:60vh}}@media(max-width:480px){.topbar-tab{font-size:.5rem;padding:.3rem .6rem}.status-pill{font-size:.4rem;padding:.2rem .5rem}.panel{padding:.8rem}.panel-title{font-size:1rem}.panel-label{font-size:.45rem}.metrics{grid-template-columns:repeat(2,1fr);gap:.6rem}.metric-val{font-size:.8rem}.minimap{width:140px;height:100px}.dpad{width:180px;height:180px}.dpad-btn{font-size:1rem;min-width:54px;min-height:54px}.dpad-estop{font-size:1rem}.side-panel{flex-direction:column}.side-section{flex:auto;border-right:none;border-bottom:1px solid var(--dark-border);min-width:unset}.bottombar-right{gap:.3rem}.bottombar-right button{font-size:.45rem;padding:.2rem .4rem}.bottombar-left{font-size:.4rem}.shutdown-box,.settings-btn{padding:.4rem}.settings-panel{width:100vw;max-height:90vh;border:none}.settings-overlay{align-items:flex-end}.fleet-panel{width:100vw;border:none}.fleet-overlay{align-items:flex-end}.video-panel{min-height:35vh}.service-dropdown{width:94vw;right:-1rem}}@media(max-width:360px){.login-box{padding:2rem 1.5rem}.login-logo img{height:40px}.login-title{font-size:1.1rem}.topbar-logo{display:none}.topbar-tabs{gap:0}.topbar-tab{font-size:.45rem;padding:.25rem .4rem}}@media(max-height:700px){.topbar{padding:.4rem 1rem}.bottombar{padding:.3rem 1rem}.panel{padding:.8rem}.panel-title{font-size:1rem;margin-bottom:.6rem}.metrics{gap:.6rem;margin-bottom:.6rem}.metric-val{font-size:.85rem}.bar-group{margin-bottom:.5rem}.chart-area,.chart-legend{display:none}.side-section{padding:.7rem}.video-panel{min-height:30vh}}@media(hover:none)and (pointer:coarse){.dpad-btn:hover{border-color:var(--dark-border);color:var(--gray)}.dpad-btn.active-dir{border-color:var(--cream);color:var(--cream);background:#f0ebe31a}.topbar-tab{min-height:40px;display:flex;align-items:center}.settings-btn,.shutdown-box{min-width:40px;min-height:40px}.logs-entry{padding:.6rem .4rem}.clip-play-btn{min-width:36px;min-height:36px;font-size:.5rem}.dpad,.topbar,.bottombar{-webkit-user-select:none;user-select:none}.console-body{overscroll-behavior:contain}.telemetry-motors{grid-template-columns:repeat(2,1fr)}.telemetry-charts,.telemetry-curves{grid-template-columns:1fr}}#tab-telemetry{display:flex;flex-direction:column;gap:2px;padding:2px;overflow:hidden;height:100%}.telemetry-motors{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;flex-shrink:0}.motor-card{background:var(--dark-card);border:1px solid var(--dark-border);padding:10px 14px}.motor-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--dark-border)}.motor-card-label{font-family:Barlow Condensed,sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--cream)}.motor-card-status{font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border:1px solid}.motor-card-status.stopped{color:#666;border-color:#ffffff1a}.motor-card-status.forward{color:var(--green);border-color:#28c60033;background:#28c6000f}.motor-card-status.reverse{color:var(--amber);border-color:#ecb10033;background:#ecb1000f}.motor-card-status.overload{color:var(--red);border-color:#c600034d;background:#c6000314}.motor-card-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px 8px}.motor-metric{display:flex;flex-direction:column}.motor-metric-label{font-size:.45rem;letter-spacing:.1em;color:#666;text-transform:uppercase}.motor-metric-value{font-size:.85rem;font-weight:600;color:var(--cream)}.motor-metric-unit{font-size:.45rem;color:#666}.motor-card-bar{height:2px;background:#ffffff0a;margin-top:8px}.motor-card-bar-fill{height:100%;background:var(--green);transition:width .1s linear,background .3s}.motor-card-bar-fill.warn{background:var(--amber)}.motor-card-bar-fill.danger{background:var(--red)}.telemetry-charts,.telemetry-curves{display:grid;grid-template-columns:1fr 1fr;gap:2px;flex:1;min-height:0}.telemetry-chart-panel{background:var(--dark-card);border:1px solid var(--dark-border);display:flex;flex-direction:column;min-height:0;overflow:hidden}.telemetry-chart-header{padding:6px 14px;border-bottom:1px solid var(--dark-border);display:flex;justify-content:space-between;align-items:center;font-size:.5rem;text-transform:uppercase;letter-spacing:.1em;color:#666;flex-shrink:0}.telemetry-chart-header .chart-sub{font-size:.45rem;color:#555}.telemetry-chart-header .chart-legend{display:flex;gap:8px;align-items:center;font-size:.45rem;color:#999}.telemetry-chart-header .legend-dot{width:6px;height:6px;border-radius:1px;display:inline-block;margin-right:2px;flex-shrink:0}.telemetry-chart-panel canvas{width:100%;flex:1;min-height:0;display:block}
