:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e8f0f2;background:#071015;font-synthesis:none;--bg: #071015;--surface: #0c171d;--surface-2: #101e25;--line: #203039;--muted: #81919a;--text: #eef5f6;--signal: #d9ff43;--signal-dark: #1d2b0d;--cyan: #42d4e7;--danger: #ff6b62}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:var(--bg);overscroll-behavior-y:none}button,input,select{font:inherit}button{color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select,video,a{touch-action:manipulation}a{color:inherit}.eyebrow{margin:0 0 7px;color:var(--cyan);font:700 .72rem/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em}.brand-mark{position:relative;width:52px;height:52px;display:grid;place-items:center;border:1px solid #607077;background:#0b161b;font:700 .9rem Space Mono,monospace}.brand-mark:before,.brand-mark:after{content:"";position:absolute;background:var(--signal)}.brand-mark:before{width:13px;height:2px;top:-1px;left:-1px}.brand-mark:after{width:2px;height:13px;top:-1px;left:-1px}.brand-mark span{color:var(--signal)}.brand-mark.small{width:40px;height:40px}.login-simple{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--bg)}.login-card{width:min(100%,410px);padding:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 24px 70px #0000003d}.login-card .brand-mark{margin-bottom:30px}.login-card h1{margin:0;font-size:2rem;letter-spacing:-.04em}.login-card>p{margin:10px 0 28px;color:var(--muted);line-height:1.55}.login-card form{display:grid;gap:17px}label{display:grid;gap:8px;color:#aebbc0;font-size:.88rem;font-weight:600}input,select{width:100%;min-height:48px;padding:0 14px;color:var(--text);background:#0a1419;border:1px solid #2a3a42;border-radius:5px;outline:none;transition:border .16s,box-shadow .16s}input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #42d4e71a}select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.primary-button{min-height:49px;margin-top:5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:5px;color:#11180b;background:var(--signal);font-weight:800;cursor:pointer;transition:transform .16s,background .16s}.primary-button svg{width:17px}.primary-button:hover{background:#e4ff79;transform:translateY(-1px)}.primary-button:disabled{opacity:.55;cursor:wait}.form-error{padding:10px 12px;border-left:3px solid var(--danger);color:#ffaaa5;background:#ff6b6214;font-size:.9rem}.security-note{display:flex;gap:8px;align-items:center;color:#71828a;font-size:.78rem;margin-top:24px}.boot-screen{min-height:100vh;min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:22px;color:var(--muted)}.app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;width:250px;display:flex;flex-direction:column;padding:24px 17px;background:#081217;border-right:1px solid var(--line)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 7px 28px}.sidebar-brand>div:last-child{display:grid;gap:3px}.sidebar-brand strong{font:700 .92rem Space Mono;letter-spacing:.08em}.sidebar-brand span{color:#61727a;font:700 .58rem Space Mono;letter-spacing:.08em}.sidebar nav{display:grid;gap:5px}.sidebar nav button{width:100%;display:flex;align-items:center;gap:12px;padding:12px;border:0;border-radius:5px;color:#8fa0a8;background:transparent;text-align:left;cursor:pointer}.sidebar nav button svg{width:19px}.sidebar nav button:hover{color:var(--text);background:#101d23}.sidebar nav button.active{color:var(--signal);background:var(--signal-dark);box-shadow:inset 2px 0 var(--signal)}.nav-count{margin-left:auto;min-width:24px;padding:2px 6px;text-align:center;border-radius:20px;color:#aebbc0;background:#213038;font-size:.72rem}.sidebar-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 7px 0;border-top:1px solid var(--line)}.operator{display:flex;align-items:center;gap:9px;min-width:0}.operator svg{color:#778991}.operator div{min-width:0;display:grid;gap:2px}.operator strong{overflow:hidden;text-overflow:ellipsis;font-size:.83rem}.operator span{color:#72838b;font-size:.71rem;text-transform:capitalize}.sidebar-footer>button,.close-menu{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:5px;color:#71828a;background:transparent;cursor:pointer}.sidebar-footer>button:hover{color:var(--danger);background:#ff6b6214}.close-menu,.mobile-menu{display:none}.content{grid-column:2;min-width:0;padding:34px clamp(24px,4vw,60px) 60px;background:radial-gradient(circle at 90% 4%,rgba(66,212,231,.055),transparent 26%),var(--bg)}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.topbar h1{margin:0;font-size:clamp(1.85rem,3vw,2.8rem);letter-spacing:-.04em}.system-online{display:flex;align-items:center;gap:9px;color:#a2b0b5;font-size:.82rem}.system-online svg{color:var(--signal)}.live-dot,.offline-dot{display:inline-block;width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--signal);box-shadow:0 0 0 4px #d9ff431a,0 0 12px #d9ff4359}.offline-dot{background:#697b83;box-shadow:none}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.metric-grid article{min-height:108px;display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);background:linear-gradient(135deg,#101e25f5,#0a1419f5)}.metric-icon{width:43px;height:43px;display:grid;place-items:center;color:var(--cyan);background:#42d4e714;border:1px solid rgba(66,212,231,.12)}.metric-icon svg{width:20px}.metric-grid article>div:last-child{display:grid;gap:5px;min-width:0}.metric-grid article span{color:var(--muted);font-size:.78rem}.metric-grid article strong{font-size:1.35rem;text-transform:capitalize}.metric-grid article small{color:#71828a;font-size:.72rem;font-weight:500}.performance-panel{margin-bottom:16px;padding:20px}.performance-panel .section-heading{align-items:center;margin-bottom:16px}.performance-graphs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.load-graph{min-width:0;padding:13px 13px 11px;border:1px solid #22353d;background:#09151a}.load-graph>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.load-graph span{color:#91a3aa;font:700 .65rem Space Mono;letter-spacing:.05em;text-transform:uppercase}.load-graph strong{color:#edf5f7;font:700 1.05rem Space Mono}.load-graph svg{width:100%;height:76px;display:block;margin:8px 0 5px;overflow:visible}.load-graph polygon{opacity:.48}.load-graph polyline{fill:none;stroke-width:1.5;vector-effect:non-scaling-stroke}.load-graph small{display:block;overflow:hidden;color:#687c84;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.diagnostics-panel{margin-bottom:16px;padding:20px}.diagnostics-panel .section-heading{align-items:center;margin-bottom:14px}.diagnostics-panel .section-heading>div>span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem}.diagnostics-copy{flex:0 0 auto}.diagnostics-actions{display:flex;align-items:center;gap:8px}.diagnostics-actions .primary-button{width:auto;margin:0}.gpu-panel{margin-bottom:16px;padding:20px}.gpu-panel .section-heading{align-items:center;margin-bottom:14px}.gpu-panel .section-heading span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem}.gpu-device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:10px}.gpu-device{display:grid;gap:9px;padding:13px;border:1px solid #2a4049;background:#08151a}.gpu-device.cpu-device{border-color:#42d4e757}.gpu-device.cpu-device .gpu-device-load{grid-template-columns:repeat(2,1fr)}.gpu-device>div:first-child{display:grid;gap:3px}.gpu-device strong{color:#dce8eb;font-size:.78rem}.gpu-device span,.gpu-device small{color:#71868e;font-size:.65rem}.gpu-device-load{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.gpu-device-load span{padding:6px;border:1px solid #294049;color:#a9bac0;background:#0d1d23;font:700 .6rem Space Mono;text-align:center}.field-service-panel{margin-bottom:16px;padding:20px}.field-service-panel .section-heading{align-items:center;margin-bottom:14px}.field-service-panel .section-heading>div>span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem}.service-camera-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:10px}.service-camera{display:grid;align-content:start;gap:10px;min-width:0;padding:13px;border:1px solid #29414a;background:#08151a}.service-camera>header{display:flex;align-items:start;justify-content:space-between;gap:10px}.service-camera>header>div{display:grid;gap:3px;min-width:0}.service-camera>header strong{color:#dce8eb;font-size:.78rem}.service-camera>header span{overflow:hidden;color:#758991;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.service-state{flex:0 0 auto;padding:3px 6px;border:1px solid #38505a;color:#94a8af!important;background:#0d2027;font:700 .56rem Space Mono;text-transform:uppercase}.service-state.pass,.service-state.online{border-color:#4d681d;color:var(--signal)!important}.service-state.warning,.service-state.recovering{border-color:#8a652a;color:#ffbd54!important}.service-state.error,.service-state.offline{border-color:#7e3041;color:#ff718d!important}.service-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.service-actions .primary-button{width:auto;min-height:35px;margin:0;padding:0 10px;font-size:.78rem}.service-actions svg{width:14px}.targeted-restarts{border-top:1px solid #20343c}.targeted-restarts summary{padding-top:8px;color:#7d929a;cursor:pointer;font-size:.65rem}.targeted-restarts>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-top:8px}.service-checks{display:grid;gap:5px;max-height:250px;padding-top:8px;overflow:auto;border-top:1px solid #20343c}.service-checks>time{color:#60767f;font:600 .58rem Space Mono}.service-checks>div{display:grid;gap:2px;padding-left:7px;border-left:2px solid #55707a}.service-checks>div.pass{border-left-color:var(--signal)}.service-checks>div.warning{border-left-color:#ffbd54}.service-checks>div.error{border-left-color:#ff4f72}.service-checks strong{color:#bac9ce;font-size:.64rem;text-transform:capitalize}.service-checks span{color:#71868e;font-size:.61rem;line-height:1.35}.health-check-result{display:grid;gap:9px;margin-bottom:12px;padding:13px;border:1px solid #31505a;border-left:3px solid var(--signal);background:#08151a}.health-check-result.warning{border-left-color:#ffbd54}.health-check-result.error{border-left-color:#ff4f72}.health-check-result>div{display:flex;justify-content:space-between;gap:12px}.health-check-result>div span,.health-check-result>small{color:#70858d;font-size:.65rem}.health-check-result article{display:grid;gap:2px;padding-top:8px;border-top:1px solid #20343c}.health-check-result article strong{color:#d5e1e4;font-size:.72rem}.health-check-result article span{color:#8ca0a7;font-size:.67rem}.health-camera-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:7px;padding-top:8px;border-top:1px solid #20343c}.health-camera{display:grid;gap:4px;min-width:0;padding:9px;border:1px solid #26404a;border-left:3px solid var(--signal);background:#0b1a20}.health-camera.warning{border-left-color:#ffbd54}.health-camera.error{border-left-color:#ff4f72}.health-camera>div{display:grid!important;gap:2px}.health-camera strong{color:#dce8eb;font-size:.7rem}.health-camera span,.health-camera small{overflow:hidden;color:#82969e!important;font-size:.61rem!important;text-overflow:ellipsis;white-space:nowrap}.diagnostics-list{max-height:420px;overflow:auto;border:1px solid #22353d;background:#071116;overscroll-behavior:contain}.diagnostic-entry{display:grid;grid-template-columns:165px minmax(0,1fr);gap:14px;padding:11px 13px;border-left:3px solid #47616b;border-bottom:1px solid #1d3038}.diagnostic-entry:last-child{border-bottom:0}.diagnostic-entry.warning{border-left-color:#ffbd54}.diagnostic-entry.error{border-left-color:#ff4f72}.diagnostic-entry>time{color:#72868e;font:600 .62rem Space Mono}.diagnostic-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.diagnostic-title strong{margin-right:auto;color:#dfe9ec;font-size:.76rem}.diagnostic-repair{display:inline-flex;align-items:center;gap:5px;width:max-content;margin-top:7px;padding:5px 8px;border:1px solid #6f3f49;color:#ff91a7;background:#27151b;cursor:pointer;font-size:.62rem}.diagnostic-repair:hover{border-color:#a64a5e;color:#ffd1da}.diagnostic-repair:disabled{opacity:.5;cursor:wait}.diagnostic-repair svg{width:12px;height:12px}.diagnostic-title span{padding:2px 5px;border:1px solid #2a424c;border-radius:2px;color:#8ea2aa;font:700 .52rem Space Mono;text-transform:uppercase}.diagnostic-entry p{margin:5px 0 4px;color:#9babb0;font-size:.7rem;line-height:1.4}.diagnostic-entry small{color:#61767e;font:600 .58rem Space Mono}.diagnostics-empty{padding:30px 18px;color:#6f838b;font-size:.76rem;text-align:center}.storage-admin{display:grid;gap:16px}.storage-admin-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px}.storage-admin-heading h2{margin:0;font-size:1.18rem}.storage-admin-heading span,.storage-locations-panel .section-heading span,.storage-device-panel .section-heading span,.raid-planner-panel .section-heading span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem;line-height:1.45}.storage-admin-heading .secondary-button{flex:0 0 auto}.storage-capacity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.storage-capacity-grid article{display:grid;gap:6px;min-height:112px;padding:18px}.storage-capacity-grid span{color:#84969d;font-size:.73rem}.storage-capacity-grid strong{color:#e9f1f3;font:800 1.25rem Space Mono}.storage-capacity-grid strong.good{color:var(--signal)}.storage-capacity-grid strong.bad{color:#ff718d}.storage-capacity-grid small{margin-top:auto;overflow:hidden;color:#647981;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.storage-locations-panel,.storage-device-panel,.raid-planner-panel{padding:20px}.storage-locations-panel .section-heading,.storage-device-panel .section-heading,.raid-planner-panel .section-heading{margin-bottom:14px}.storage-location-list,.storage-device-list{display:grid;gap:8px}.storage-location-list>article{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid #29404a;background:#08151a}.storage-location-list>article>svg{width:22px;color:var(--cyan)}.storage-location-list>article>div{min-width:0;display:grid;gap:3px}.storage-location-title{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:7px}.storage-location-details>code{overflow:hidden;color:#536a73;font:600 .58rem Space Mono;text-overflow:ellipsis;white-space:nowrap}.storage-purpose{width:fit-content;padding:2px 5px;border:1px solid #36515b;border-radius:3px;color:#9fb1b7!important;background:#0c1c22;font:700 .52rem Space Mono!important;text-transform:uppercase}.storage-purpose.recordings{color:var(--signal)!important;border-color:#d9ff434d;background:#d9ff430f}.storage-purpose.exports{color:var(--cyan)!important;border-color:#42d4e74d;background:#42d4e70f}.storage-location-config{margin-top:5px}.storage-location-config summary{width:fit-content;display:flex;align-items:center;gap:5px;color:#8ca0a7;font-size:.62rem;cursor:pointer;list-style:none}.storage-location-config summary::-webkit-details-marker{display:none}.storage-location-config summary svg{width:12px}.storage-location-config form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,.8fr) auto;align-items:end;gap:8px;margin-top:9px;padding:10px;border:1px solid #263d46;background:#071116}.storage-location-config .secondary-button{min-height:42px;margin:0}.storage-location-list strong,.storage-device-list strong{color:#dce8eb;font-size:.76rem}.storage-location-list span,.storage-location-list small,.storage-device-list span,.storage-device-list small{overflow:hidden;color:#71868e;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.storage-location-form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr) minmax(180px,.8fr) auto;align-items:end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.storage-location-form .primary-button{min-height:48px;margin:0;padding-inline:18px}.storage-location-hint{margin:10px 0 0;color:#687d85;font-size:.66rem;line-height:1.45}.storage-device-list{grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.storage-device-list>article{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:12px;border:1px solid #29404a;background:#08151a}.storage-device-list>article.selectable{border-color:#d9ff4357}.storage-device-list>article>div:first-child{min-width:0;display:grid;gap:3px}.storage-device-state{flex:0 0 auto;padding:4px 7px;border:1px solid #3a5059;border-radius:3px;color:#91a5ac;background:#0c1d23;font:700 .57rem Space Mono}.storage-device-list>article.selectable .storage-device-state{border-color:#d9ff4359;color:var(--signal)}.raid-array-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.raid-array-list article{display:grid;gap:4px;padding:11px;border:1px solid #3d5e2d;border-left:3px solid var(--signal);background:#0a181c}.raid-array-list article.bad{border-color:#743946;border-left-color:#ff718d}.raid-array-list strong{color:#dce8eb;font-size:.72rem}.raid-array-list span,.raid-array-list small{color:#71868e;font-size:.63rem}.raid-planner-panel>.section-heading>svg{color:var(--signal)}.raid-planner-panel form{display:grid;gap:13px}.raid-plan-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.raid-drive-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:7px;margin:0;padding:13px;border:1px solid #29404a}.raid-drive-picker legend{padding:0 6px;color:#8699a0;font-size:.68rem}.raid-drive-picker label{min-width:0;display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;padding:9px;border:1px solid #2a4049;background:#08151a;cursor:pointer}.raid-drive-picker input{width:17px;min-height:17px;padding:0;accent-color:var(--signal)}.raid-drive-picker label>span{min-width:0;overflow:hidden;color:#84989f;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.raid-drive-picker label strong{margin-right:7px;color:#e1eaec}.raid-planner-panel form>.primary-button{width:fit-content;min-height:42px;margin:0;padding-inline:16px}.raid-plan-result{display:grid;gap:10px;margin-top:15px;padding:14px;border:1px solid #80505a;border-left:3px solid #ffbd54;background:#151316}.raid-plan-result>strong{color:#ffb0a5;font-size:.75rem;line-height:1.45}.raid-plan-result>span{color:#a4b3b8;font-size:.7rem}.raid-plan-result pre{max-height:330px;margin:0;padding:13px;overflow:auto;border:1px solid #30434b;color:#c9d9dd;background:#050b0e;font:600 .65rem/1.65 Space Mono;white-space:pre-wrap}.raid-plan-result .secondary-button{min-height:36px}.raid-plan-result ul{margin:0;padding-left:20px;color:#82969d;font-size:.68rem;line-height:1.6}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#0e1b21fa,#091318fa)}.panel-header,.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.panel-header{padding:20px 22px}.panel-header h2,.section-heading h2,.create-user h2{margin:0;font-size:1.12rem;letter-spacing:-.02em}.panel-header>div:first-child>span{display:block;margin-top:4px;color:var(--muted);font-size:.78rem}.camera-status{display:flex;align-items:center;gap:8px;color:#aebcc1;font:700 .69rem Space Mono;text-transform:uppercase}.live-actions{display:flex;align-items:center;gap:12px}.recording-pill{width:fit-content;display:inline-flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid rgba(255,107,98,.3);border-radius:3px;color:#ff938c;background:#ff6b6214;font:700 .62rem Space Mono;letter-spacing:.06em}.recording-pill i{width:6px;height:6px;display:inline-block;border-radius:50%;background:#ff5f56;box-shadow:0 0 7px #ff5f56a6}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;color:var(--muted);background:#0a1419;cursor:pointer}.icon-button svg{width:16px}.video-stage{position:relative;aspect-ratio:16/9;overflow:hidden;background:#030708;border-block:1px solid var(--line)}.video-stage>img,.video-stage>video{width:100%;height:100%;object-fit:cover;display:block}.video-stage>.playback-seek-poster{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.video-stage>.playback-seek-poster.visible{opacity:1}.video-stage>.live-hold-frame{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}.video-stage>.live-hold-frame.visible{opacity:1}.video-stage>video.stream-loading{opacity:0}.stream-status-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:#0307086b}.video-overlay{position:absolute;inset:15px 16px auto;display:flex;justify-content:space-between;pointer-events:none;font:700 .68rem Space Mono}.video-overlay span{padding:4px 7px;color:#101609;background:var(--signal)}.video-overlay time{padding:4px 7px;color:#e6eef0;background:#040a0db8}.offline-state{height:100%;display:grid;place-content:center;justify-items:center;gap:7px;color:#64757d}.offline-state svg{width:32px;height:32px;margin-bottom:5px}.offline-state strong{color:#aebbc0}.offline-state span{font-size:.82rem}.offline-state button{margin-top:8px;padding:8px 14px;border:1px solid #33464f;border-radius:4px;background:#101e25;cursor:pointer}.offline-state.reconnecting svg{animation:reconnect-pulse 1.2s ease-in-out infinite}@keyframes reconnect-pulse{0%,to{opacity:.35;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}.camera-selector{display:grid;grid-template-columns:repeat(3,1fr);padding:12px;gap:8px}.camera-selector button{display:flex;align-items:center;gap:9px;min-width:0;padding:11px;border:1px solid transparent;border-radius:4px;background:#0b161b;cursor:pointer;text-align:left}.camera-selector button.selected{border-color:#3a4a51;background:#122129}.camera-selector button>div{min-width:0;display:grid;gap:2px}.camera-selector strong,.camera-selector span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.camera-selector strong{font-size:.77rem}.camera-selector span{color:#71828a;font-size:.68rem}.camera-selector svg{width:15px;margin-left:auto;color:#53666f}.side-stack{display:grid;align-content:start;gap:16px}.storage-panel,.activity-panel{padding:20px}.section-heading>svg{color:#667981}.storage-ring{width:144px;height:144px;margin:27px auto;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--signal) var(--percent),#1d2a30 0);position:relative}.storage-ring:before{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;background:#0c171d}.storage-ring>div{position:relative;display:grid;justify-items:center}.storage-ring strong{font-size:1.6rem}.storage-ring span{color:var(--muted);font-size:.72rem}.storage-numbers{display:grid;grid-template-columns:1fr 1fr;margin-bottom:17px}.storage-numbers>div{display:grid;gap:4px}.storage-numbers>div+div{padding-left:18px;border-left:1px solid var(--line)}.storage-numbers span{color:var(--muted);font-size:.72rem}.storage-numbers strong{font-size:.9rem}.storage-ready{display:flex;align-items:center;gap:8px;padding:9px 10px;color:#a2b0b5;background:#0a1419;font-size:.73rem}.storage-ready span{width:7px;height:7px;border-radius:50%}.storage-ready.good span{background:var(--signal)}.storage-ready.bad span{background:var(--danger)}.overview-storage{max-width:680px}.storage-summary{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:24px}.storage-summary .storage-ring{margin:24px auto 4px}.activity-panel{display:grid;gap:10px}.activity-panel .section-heading{margin-bottom:8px}.activity-panel>button{display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:9px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.activity-icon{width:32px;height:32px;display:grid;place-items:center;color:var(--cyan);background:#42d4e712}.activity-icon svg{width:16px}.activity-panel button>div:nth-child(2){display:grid;gap:2px}.activity-panel button strong{font-size:.76rem}.activity-panel button span{color:#71828a;font-size:.67rem}.activity-panel button>svg{width:14px;color:#52636b}.empty-small{padding:18px 0 5px;color:#71828a;font-size:.78rem}.event-title{margin-bottom:18px}.events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.event-card{overflow:hidden;border:1px solid var(--line);background:var(--surface)}.event-image{position:relative;aspect-ratio:16/9;display:grid;place-items:center;color:#52656e;background:#050b0e;overflow:hidden}.event-image img{width:100%;height:100%;object-fit:cover}.event-kind{position:absolute;top:10px;left:10px;padding:4px 7px;color:#11180b;background:var(--signal);font:700 .62rem Space Mono;text-transform:uppercase}.event-body{padding:15px;display:grid;gap:12px}.event-body>div{display:grid;gap:2px}.event-body strong{font-size:.88rem}.event-body span,.event-body time{color:var(--muted);font-size:.72rem}.download-link{width:fit-content;display:flex;align-items:center;gap:6px;color:var(--cyan);font-size:.75rem;text-decoration:none}.empty-events{min-height:360px;display:grid;place-content:center;justify-items:center;color:#5c6d75}.empty-events h2{color:#afbdc2;margin-bottom:0}.empty-events p{color:var(--muted)}.admin-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:16px}.admin-users,.create-user{padding:22px}.user-list{display:grid;margin-top:22px}.user-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 0;border-top:1px solid var(--line)}.avatar{width:36px;height:36px;display:grid;place-items:center;color:var(--cyan);background:#42d4e714;font:700 .67rem Space Mono}.user-row>div:nth-child(2){display:grid;gap:3px}.user-row strong{font-size:.84rem}.user-row span{color:var(--muted);font-size:.72rem}.role-badge{padding:4px 7px;border:1px solid #304149;font:700 .62rem Space Mono;text-transform:uppercase}.role-badge.admin{color:var(--signal);border-color:#d9ff4340}.create-user form{display:grid;gap:14px;margin-top:22px}.form-message{margin:0;color:var(--cyan);font-size:.8rem}.notice{margin:-10px 0 18px;padding:11px 14px;border-left:3px solid var(--cyan);color:#c8eaf0;background:#42d4e714;font-size:.85rem}.management-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,390px);align-items:start;gap:16px}.management-main{min-width:0;display:grid;gap:16px}.nvr-panel{padding:20px 22px}.nvr-panel .section-heading{margin-bottom:14px}.nvr-device-list{display:grid;gap:9px;margin-bottom:14px}.nvr-device{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,1.25fr) auto;align-items:center;gap:14px;padding:13px;border:1px solid #263b44;border-radius:5px;background:#09161c}.nvr-device-main{min-width:0;display:flex;align-items:center;gap:11px}.nvr-device-main>svg{width:24px;color:var(--cyan)}.nvr-device-main>div{min-width:0;display:grid;gap:2px}.nvr-device-main strong{color:#eef6f8}.nvr-device-main span,.nvr-device-main small{overflow:hidden;color:#7f939a;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.nvr-channel-chips{display:flex;flex-wrap:wrap;gap:5px}.nvr-channel-chips span{max-width:190px;display:inline-flex;align-items:center;gap:5px;overflow:hidden;padding:4px 6px;border:1px solid #2c4149;border-radius:3px;color:#9eafb4;background:#0c1a20;font:600 .58rem Space Mono;text-overflow:ellipsis;white-space:nowrap}.nvr-channel-chips i{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:#53646a}.nvr-channel-chips i.online{background:var(--signal);box-shadow:0 0 5px #d9ff4380}.nvr-device>.danger-button{white-space:nowrap}.nvr-actions{display:flex;justify-content:flex-end;gap:7px}.nvr-actions button{white-space:nowrap}.nvr-importer{border:1px solid #2b424c;border-radius:5px;background:#08151a}.nvr-importer summary{min-height:46px;display:flex;align-items:center;gap:8px;padding:0 13px;color:var(--cyan);font:800 .7rem Space Mono;cursor:pointer;list-style:none}.nvr-importer summary::-webkit-details-marker{display:none}.nvr-importer summary svg{width:16px}.nvr-importer[open] summary{border-bottom:1px solid #263b44}.nvr-importer form{display:grid;gap:12px;padding:15px}.nvr-help{margin:0 0 2px;color:#85979e;font-size:.72rem}.nvr-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.nvr-importer label{display:grid;gap:6px;color:#9eafb4;font-size:.69rem}.nvr-importer input,.nvr-importer select{min-width:0}.nvr-channel-badge{padding:3px 5px;border:1px solid rgba(66,212,231,.35);border-radius:3px;color:var(--cyan)!important;font:700 .54rem Space Mono}.data-panel,.form-panel{padding:22px}.data-panel .section-heading,.form-panel .section-heading{margin-bottom:20px}.form-panel{position:sticky;top:24px}.form-panel form{display:grid;gap:14px}.form-panel small{color:#667981;font-weight:500}.checkbox-setting{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:11px;border:1px solid #2a3d45;background:#09161c;cursor:pointer}.checkbox-setting>input{width:17px;height:17px;margin-top:2px;accent-color:var(--cyan)}.checkbox-setting>span{display:grid;gap:3px}.checkbox-setting strong{color:#c3d0d4;font-size:.75rem}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.processing-options{overflow:hidden;border:1px solid #2a414a;background:#08151a}.processing-options summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;cursor:pointer;list-style:none}.processing-options summary::-webkit-details-marker{display:none}.processing-options summary>span{display:grid;gap:2px}.processing-options summary strong{color:#cbd8dc;font-size:.75rem}.processing-options summary small{color:#697e86;font-size:.62rem}.processing-options summary svg{width:17px;color:var(--cyan);transition:transform .15s ease}.processing-options[open] summary{border-bottom:1px solid #243b44}.processing-options[open] summary svg{transform:rotate(45deg)}.processing-options-body{display:grid;gap:12px;padding:12px}.motion-zone-editor{min-width:0;display:grid;gap:10px;padding:12px;border:1px solid #2a3d45;background:#081319}.motion-zone-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.motion-zone-heading>div:first-child{min-width:0;display:grid;gap:3px}.motion-zone-heading strong{color:#dce8eb;font-size:.78rem}.motion-zone-heading span{color:#71858d;font-size:.65rem}.motion-zone-mode,.motion-zone-tools>div{display:flex;align-items:center;padding:2px;border:1px solid #2b414a;border-radius:4px;background:#050c0f}.motion-zone-mode button,.motion-zone-tools button{min-height:32px;padding:0 9px;border:0;border-radius:3px;color:#8da0a7;background:transparent;font:700 .61rem Space Mono;cursor:pointer}.motion-zone-mode button.active,.motion-zone-tools button.active{color:#061014;background:var(--cyan)}.motion-zone-stage{position:relative;width:100%;overflow:hidden;border:1px solid #30464f;background:#030708}.motion-zone-stage>img,.motion-zone-stage>video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:contain;background:#030708}.motion-zone-stage>.live-hold-frame{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.motion-zone-stage>canvas:last-child{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.motion-zone-stage>canvas.custom{cursor:crosshair}.motion-zone-stage>canvas.full{pointer-events:none}.motion-zone-stage .video-overlay{z-index:4}.motion-zone-preview-error{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:8px;color:#71858d;font-size:.7rem}.motion-zone-preview-error button{min-height:34px;padding:0 10px;border:1px solid #334851;border-radius:4px;background:#0d1c22;cursor:pointer}.motion-zone-tools{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.motion-zone-tools>label{grid-template-columns:auto 90px;align-items:center;gap:7px;color:#83969d;font:700 .61rem Space Mono}.motion-zone-tools select{min-height:32px;padding:0 8px;font-size:.65rem}.motion-zone-tools>button{border:1px solid #2b414a;background:#0b191f}.motion-zone-tools>button:last-child{color:#ff9b95}.motion-zone-editor>small{line-height:1.45}.motion-zone-new-camera-note{padding:11px 12px;border-left:2px solid #3a5964;color:#71858d;background:#09161c;font-size:.7rem;line-height:1.45}.data-list{display:grid}.data-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.data-row>div:nth-child(2){min-width:0;display:grid;gap:4px}.camera-name-line{min-width:0;display:flex!important;align-items:center;gap:9px!important}.data-row strong,.data-row span,.data-row small{overflow:hidden;text-overflow:ellipsis}.data-row strong{font-size:.86rem}.data-row span{color:var(--muted);font-size:.73rem}.data-row small{color:#667981;font-size:.68rem;text-transform:capitalize}.source-icon{width:38px;height:38px;display:grid;place-items:center;color:var(--cyan);background:#42d4e714}.source-icon svg{width:18px}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:35px;padding:0 10px;border:1px solid rgba(255,107,98,.22);border-radius:4px;color:#ffaaa5;background:#ff6b620f;cursor:pointer;font-size:.73rem}.danger-button:hover{color:#fff;border-color:#ff6b6280;background:#ff6b6226}.danger-button svg{width:14px}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:35px;padding:0 10px;border:1px solid #304149;border-radius:4px;color:#b5c3c8;background:#101e25;cursor:pointer;font-size:.8rem}.secondary-button:hover{color:var(--text);border-color:#4b626c}.secondary-button svg{width:14px}.row-actions{display:flex;align-items:center;gap:7px}.cancel-button{width:100%;min-height:44px}.client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.client-card{min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:17px;border:1px solid var(--line);background:#0a1419}.client-card>svg{width:20px;color:var(--cyan)}.client-card>div{min-width:0;display:grid;gap:4px}.client-card strong,.client-card span{overflow:hidden;text-overflow:ellipsis}.client-card strong{font-size:.86rem}.client-card span{color:var(--muted);font-size:.72rem}.client-actions{grid-column:1 / -1;display:flex!important;grid-template-columns:1fr 1fr;gap:8px!important}.client-actions>button{flex:1}.client-card .danger-button{width:auto}.password-input{position:relative}.password-input input{padding-right:48px}.password-input button{position:absolute;inset:6px 6px 6px auto;width:37px;display:grid;place-items:center;border:0;border-radius:4px;color:var(--muted);background:transparent;cursor:pointer}.password-input button:hover{color:var(--text);background:#142229}.password-input button svg{width:17px}.password-note{margin:-3px 0 2px;color:#71828a;font-size:.78rem;line-height:1.5}.path-input{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid #2a3a42;border-radius:5px;background:#0a1419;overflow:hidden}.path-input:focus-within{border-color:var(--cyan);box-shadow:0 0 0 3px #42d4e71a}.path-input>span{padding-left:13px;color:#64757d;font:500 .76rem ui-monospace,monospace;white-space:nowrap}.path-input input{min-width:0;border:0;box-shadow:none}.client-portal{width:min(1220px,calc(100% - 40px));margin:0 auto;padding:24px 0 64px}.client-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:42px;padding-bottom:20px;border-bottom:1px solid var(--line)}.client-header .sidebar-brand{padding:0}.client-header .secondary-button{min-height:40px;padding-inline:14px}.client-camera-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}.client-camera-bar h1{margin:0;font-size:clamp(1.9rem,4vw,2.8rem);letter-spacing:-.04em}.camera-tabs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.camera-tabs button{min-height:40px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid var(--line);border-radius:4px;color:#95a5ac;background:#0a1419;cursor:pointer}.camera-tabs button.active{color:var(--signal);border-color:#d9ff434d;background:var(--signal-dark)}.client-portal .live-panel{max-width:980px}.review-portal{width:min(1540px,calc(100% - 40px))}.review-portal .client-header{margin-bottom:30px}.camera-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.camera-wall.focused{grid-template-columns:minmax(0,1fr)}.camera-wall .live-panel{min-width:0;max-width:none}.camera-wall.focused .live-panel{width:min(1180px,100%);margin-inline:auto}.camera-wall .panel-header{padding:15px 17px}.camera-wall .panel-header h2{font-size:.96rem}.camera-wall .panel-header>div:first-child>span{max-width:36vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-wall .video-stage{border-bottom:0}.playback-panel .video-stage{background:#000}.playback-seek-status{position:absolute;z-index:8;top:10px;right:10px;display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid rgba(66,212,231,.42);border-radius:4px;color:#d9f9ff;background:#050e12d6;font:700 .63rem Space Mono;pointer-events:none}.playback-seek-status svg{width:14px;animation:playback-spin .9s linear infinite}@keyframes playback-spin{to{transform:rotate(360deg)}}.playback-panel.playback-master{border-color:#42d4e76b}.playback-badge{color:#061014!important;background:var(--cyan)!important}.sync-master{color:var(--cyan);font:700 .6rem Space Mono;letter-spacing:.07em}.playback-download{white-space:nowrap;text-decoration:none}.viewer-transport{margin-top:14px;padding:16px 20px 18px;display:flex;flex-direction:column;background:#071116}.playback-dock{position:fixed;z-index:45;right:18px;bottom:14px;left:18px;width:min(1180px,calc(100% - 36px));min-height:70px;display:grid;grid-template-columns:auto auto minmax(240px,1fr) auto auto auto;align-items:center;gap:9px;margin:auto;padding:10px 12px;border:1px solid rgba(66,212,231,.55);border-radius:7px;background:#050e12f7;box-shadow:0 14px 45px #0000009e,0 0 20px #42d4e717;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.playback-dock>button{min-width:66px;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid #344b55;border-radius:4px;color:#c4d1d5;background:#0c1b21;font:700 .68rem Space Mono;cursor:pointer}.playback-dock>button:hover{color:#fff;border-color:#67808a}.playback-dock>button:disabled{opacity:.35;cursor:default}.playback-dock>button svg{width:17px}.playback-dock>button.dock-play-toggle{color:#061014;border-color:var(--cyan);background:var(--cyan)}.playback-dock>button.dock-save-video{color:#111608;border-color:var(--signal);background:var(--signal)}.playback-dock>button.dock-save-video.active{color:#fff;border-color:#ffd35a;background:#72550b;box-shadow:0 0 0 2px #ffd35a33}.playback-dock>button.dock-live{color:var(--signal);border-color:#d9ff436b}.playback-dock-position{min-width:0;display:grid;gap:7px;padding-inline:7px}.playback-dock-position>div{display:flex;align-items:baseline;justify-content:space-between;gap:15px}.playback-dock-position strong{color:#f3f8fa;font:800 .82rem Space Mono}.playback-dock-position span{color:#82969d;font-size:.68rem}.playback-dock-track{position:relative;min-width:0}.playback-dock-marker-layer{position:absolute;z-index:3;top:0;right:8px;bottom:0;left:8px;pointer-events:none}.playback-dock-events{position:absolute;z-index:4;top:0;right:8px;bottom:0;left:8px;pointer-events:none}.playback-dock-events button{position:absolute;bottom:1px;width:7px;height:10px;padding:0;transform:translate(-50%);border:0;border-radius:2px;background:#ffbd54;box-shadow:0 0 5px #ffbd547a;pointer-events:auto;cursor:pointer}.playback-dock-events button:hover,.playback-dock-events button:focus-visible{bottom:-1px;height:15px;outline:1px solid #fff}.playback-dock-events button.selected{bottom:-2px;width:11px;height:17px;outline:2px solid #fff;background:var(--signal);box-shadow:0 0 10px #d9ff43cc}.playback-dock-position input{--played: 0%;position:relative;z-index:2;width:100%;height:18px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.playback-dock-position input::-webkit-slider-runnable-track{height:5px;border-radius:4px;background:linear-gradient(90deg,var(--cyan) 0 var(--played),#2b3f47 var(--played) 100%)}.playback-dock-position input::-webkit-slider-thumb{width:16px;height:16px;margin-top:-5.5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid #061015;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cyan)}.playback-dock-position input::-moz-range-track{height:5px;border-radius:4px;background:#2b3f47}.playback-dock-position input::-moz-range-progress{height:5px;border-radius:4px;background:var(--cyan)}.playback-dock-position input::-moz-range-thumb{width:13px;height:13px;border:2px solid #061015;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cyan)}.playback-dock-scale{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center!important;gap:8px!important;margin-top:-3px;color:#667b83;font:600 .54rem Space Mono}.playback-dock-scale time:last-child{text-align:right}.playback-dock-scale b{color:#96a9af;font-weight:700}.transport-track input[type=range],.playback-dock-position input[type=range],.timeline-zoom-range{touch-action:none}.transport-timeline-tools,.transport-scrubber,.transport-camera-events,.playback-dock-position{overscroll-behavior:contain}.pwa-install{position:fixed;z-index:80;top:max(10px,env(safe-area-inset-top));left:50%;width:min(560px,calc(100% - 24px));min-height:72px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 11px;transform:translate(-50%);border:1px solid rgba(66,212,231,.55);border-radius:9px;background:#071015f7;box-shadow:0 16px 50px #00000094;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.pwa-install .brand-mark{width:42px;height:42px}.pwa-install>div:nth-child(2){min-width:0;display:grid;gap:3px}.pwa-install strong{color:#eff7f8;font-size:.82rem}.pwa-install span{color:#8fa2a9;font-size:.7rem;line-height:1.35}.pwa-install .primary-button{min-height:40px;margin:0;padding-inline:14px}.pwa-install>.pwa-install-close{width:40px;height:40px;display:grid;place-items:center;padding:0;border:0;color:#81939a;background:transparent}.pwa-install>.pwa-install-close svg{width:18px}.connectivity-banner{position:fixed;z-index:90;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:10px 13px;border:1px solid #435964;border-radius:6px;color:#dce8eb;background:#081217f7;box-shadow:0 12px 34px #0000006b;font-size:.76rem;font-weight:700}.connectivity-banner svg{width:16px}.connectivity-banner.offline{border-color:#ff6b628c;color:#ffaaa5}.connectivity-banner.restored{border-color:#d9ff438c;color:var(--signal)}.playback-now-marker,.transport-now-marker,.playback-paused-marker,.transport-paused-marker{position:absolute;z-index:3;width:2px;transform:translate(-50%);pointer-events:none}.playback-now-marker,.transport-now-marker{background:var(--signal);box-shadow:0 0 7px #d9ff43a6}.playback-now-marker{top:-3px;bottom:-3px}.playback-now-marker:before,.transport-now-marker:before{content:"";position:absolute;top:-2px;left:50%;width:7px;height:7px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid #081216;background:var(--signal)}.playback-paused-marker,.transport-paused-marker{background:#ff4f9a;box-shadow:0 0 7px #ff4f9a99}.playback-paused-marker{top:-3px;bottom:-3px}.playback-paused-marker b,.transport-paused-marker b{position:absolute;left:50%;padding:2px 4px;transform:translate(-50%);border-radius:2px;color:#fff;background:#b62d69;font:800 .5rem Space Mono;white-space:nowrap}.playback-paused-marker b{bottom:17px}.transport-mode-header{order:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 18px;margin:-16px -20px 16px;padding:15px 20px;border-bottom:1px solid var(--line);background:#09161c}.transport-mode-header>div:first-child{display:grid;gap:2px}.transport-mode-header .eyebrow{margin:0}.transport-mode-header strong{color:#ecf5f7;font-size:1rem}.transport-mode-header span{color:#778a91;font-size:.7rem}.transport-day-picker{display:grid;gap:4px;margin-left:auto}.transport-day-picker>span{color:#7c8f96;font:700 .6rem Space Mono;letter-spacing:.06em;text-transform:uppercase}.transport-day-picker input{min-height:38px;padding:0 10px;border:1px solid #31464f;border-radius:4px;color:#e5eef0;color-scheme:dark;background:#071116;font:700 .72rem Space Mono;cursor:pointer}.transport-save-video{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid var(--signal);border-radius:6px;color:#111608;background:var(--signal);font:800 .74rem Space Mono;letter-spacing:.02em;cursor:pointer;box-shadow:0 0 16px #d9ff431c}.transport-save-video svg{width:17px}.transport-save-video.active{color:#fff;border-color:#ffd35a;background:#72550b;box-shadow:0 0 0 3px #ffd35a29,0 0 18px #ffd35a1f}.transport-mode-switch{display:grid;grid-template-columns:1fr 1fr;min-width:280px;padding:3px;border:1px solid #31464f;border-radius:6px;background:#050c0f}.transport-mode-switch button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:0;border-radius:4px;color:#83959c;background:transparent;font:800 .74rem Space Mono;letter-spacing:.04em;cursor:pointer}.transport-mode-switch button svg{width:16px}.transport-mode-switch button.live.active{color:#101608;background:var(--signal)}.transport-mode-switch button.replay.active{color:#061014;background:var(--cyan)}.transport-mode-switch button.replay:not(.active):hover{color:#dffaff;background:#42d4e71a}.transport-buttons{order:2;display:flex;align-items:center;justify-content:center;gap:8px}.transport-buttons>button{min-width:68px;height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid #2d414a;border-radius:4px;color:#b7c5ca;background:#0d1b21;cursor:pointer}.transport-buttons>button:hover{color:#fff;border-color:#59717b;background:#13252d}.transport-buttons>button:disabled{opacity:.35;cursor:default}.transport-buttons>button.transport-play-toggle{min-width:86px;color:var(--cyan);border-color:#42d4e77a;background:#42d4e714}.transport-buttons>button.transport-play-toggle:hover:not(:disabled){color:#061014;background:var(--cyan)}.transport-buttons>button.transport-play-toggle.paused{color:#061014;background:var(--cyan);box-shadow:0 0 10px #42d4e740}.transport-buttons>button svg{width:17px}.transport-buttons>button:nth-of-type(1) svg,.transport-buttons>button:nth-of-type(4) svg{width:19px}.transport-clock{min-width:190px;display:grid;justify-items:center;gap:2px;margin-inline:12px}.transport-clock strong{color:#eef6f8;font:700 1rem Space Mono}.transport-clock span{color:#82949b;font-size:.74rem}.transport-timeline-tools{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px}.transport-timeline-tools button{min-width:32px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;border:1px solid #2d414a;border-radius:4px;color:#a7b7bc;background:#0b181e;cursor:pointer}.transport-timeline-tools button:hover:not(:disabled){color:#fff;border-color:#58717b}.transport-timeline-tools button:disabled{opacity:.3;cursor:default}.transport-timeline-tools button svg{width:14px}.transport-timeline-tools button.full-day{width:auto;padding-inline:10px;font:700 .62rem Space Mono;text-transform:uppercase}.transport-timeline-tools strong{min-width:102px;color:#b5c5ca;font:700 .62rem Space Mono;text-align:center}.transport-timeline-tools>span{margin-left:7px;color:#667a82;font-size:.65rem}.timeline-zoom-range{--zoom-position: 0%;width:clamp(120px,18vw,230px);height:24px;margin:0 3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:ew-resize}.timeline-zoom-range::-webkit-slider-runnable-track{height:5px;border-radius:4px;background:linear-gradient(90deg,var(--cyan) 0 var(--zoom-position),#263941 var(--zoom-position) 100%);box-shadow:inset 0 0 0 1px #ffffff0a}.timeline-zoom-range::-webkit-slider-thumb{width:15px;height:15px;margin-top:-5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid #071116;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cyan),0 0 8px #42d4e759}.timeline-zoom-range::-moz-range-track{height:5px;border-radius:4px;background:#263941}.timeline-zoom-range::-moz-range-progress{height:5px;border-radius:4px;background:var(--cyan)}.timeline-zoom-range::-moz-range-thumb{width:12px;height:12px;border:2px solid #071116;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cyan)}.transport-scrubber{display:grid;grid-template-columns:130px minmax(160px,1fr);align-items:center;gap:13px;margin-top:14px}.transport-scrubber>span{color:#758991;font:600 .67rem Space Mono;white-space:nowrap}.transport-track{position:relative;min-width:0;padding:22px 0 17px;overscroll-behavior:contain}.transport-marker-layer{position:absolute;z-index:3;top:0;right:8px;bottom:0;left:8px;pointer-events:none}.transport-now-marker,.transport-paused-marker{top:17px;bottom:12px}.transport-paused-marker b{top:18px}.transport-time-ruler{position:absolute;top:0;right:8px;left:8px;height:18px;overflow:hidden;border-bottom:1px solid #263941;pointer-events:none}.transport-time-ruler time{position:absolute;bottom:3px;transform:translate(-50%);color:#778b93;font:600 .58rem Space Mono;white-space:nowrap}.transport-time-ruler time:after{content:"";position:absolute;top:14px;left:50%;width:1px;height:5px;background:#40535b}.transport-scrubber input[type=range]{--played: 100%;width:100%;height:22px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.transport-scrubber input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:4px;background:linear-gradient(90deg,var(--cyan) 0 var(--played),#31434b var(--played) var(--live),#18242a var(--live) 100%)}.transport-scrubber input[type=range]::-moz-range-track{height:5px;border-radius:4px;background:#31434b}.transport-scrubber input[type=range]::-moz-range-progress{height:5px;border-radius:4px;background:var(--cyan)}.transport-scrubber input[type=range]::-webkit-slider-thumb{width:16px;height:16px;margin-top:-5.5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid #061015;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cyan)}.transport-scrubber input[type=range]::-moz-range-thumb{width:13px;height:13px;border:2px solid #061015;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--cyan)}.transport-event-rail{position:absolute;right:8px;bottom:0;left:8px;height:12px;border-top:1px solid #263941}.transport-event-rail button{position:absolute;top:-3px;width:6px;height:10px;padding:0;transform:translate(-50%);border:0;border-radius:1px;background:#ffbd54;box-shadow:0 0 5px #ffbd5466;cursor:pointer}.transport-event-rail button:hover,.transport-event-rail button:focus-visible{z-index:3;height:15px;top:-5px;outline:1px solid #fff}.transport-camera-events{position:relative;display:grid;gap:4px;margin:5px 0 0}.transport-camera-event-row{min-width:0;display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:13px}.transport-camera-event-row>strong{overflow:hidden;color:#9aadb3;font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.transport-camera-event-rail{position:relative;height:18px;margin-inline:8px;border:1px solid #263941;border-radius:3px;background:#09151a}.transport-camera-event-rail:before{content:"";position:absolute;top:50%;right:0;left:0;height:1px;background:#263941}.transport-camera-event-rail button{position:absolute;z-index:2;top:3px;width:7px;height:12px;padding:0;transform:translate(-50%);border:0;border-radius:2px;background:#ffbd54;box-shadow:0 0 5px #ffbd5466;cursor:pointer}.transport-camera-event-rail button:hover,.transport-camera-event-rail button:focus-visible{z-index:3;top:1px;height:16px;outline:1px solid #fff}.transport-camera-event-rail button.selected{z-index:4;top:-1px;width:11px;height:20px;outline:2px solid #fff;background:var(--signal);box-shadow:0 0 10px #d9ff43bf}.transport-camera-event-rail>span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#50636a;font-size:.58rem;pointer-events:none}.transport-event-playhead-layer{position:absolute;z-index:4;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:130px minmax(0,1fr);gap:13px;pointer-events:none}.transport-event-playhead-layer>div{position:relative;margin-inline:8px}.transport-event-playhead-layer i{position:absolute;top:-4px;bottom:-4px;width:2px;transform:translate(-50%);background:var(--cyan);box-shadow:0 0 7px #42d4e7bf}.transport-event-playhead-layer i:before{content:"";position:absolute;top:1px;left:50%;width:8px;height:8px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid #061015;background:#fff;box-shadow:0 0 0 2px var(--cyan)}.transport-event-playhead-layer b{position:absolute;top:-19px;left:50%;padding:2px 5px;transform:translate(-50%);border-radius:2px;color:#061015;background:var(--cyan);font:800 .56rem Space Mono;white-space:nowrap;box-shadow:0 2px 7px #00000073}.transport-event-playhead-layer.live i{background:var(--signal);box-shadow:0 0 7px #d9ff43bf}.transport-event-playhead-layer.live i:before{box-shadow:0 0 0 2px var(--signal)}.transport-event-playhead-layer.live b{background:var(--signal)}.transport-event-legend{display:flex;align-items:center;gap:13px;margin:3px 0 0 151px;color:#71858d;font-size:.65rem}.transport-event-legend span{display:inline-flex;align-items:center;gap:5px}.transport-event-legend span:last-child{margin-left:auto}.transport-event-legend i{width:8px;height:5px;display:inline-block;border-radius:1px;background:#ffbd54}.transport-event-legend i.position{width:2px;height:11px;margin-inline:3px;background:var(--cyan);box-shadow:0 0 5px #42d4e7a6}.transport-event-legend .selected-motion-event{padding:4px 7px;border:1px solid rgba(217,255,67,.38);border-radius:3px;color:#e9ff9c;background:#d9ff4314;font-family:Space Mono}.transport-live{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid rgba(217,255,67,.3);border-radius:4px;color:var(--signal);background:#d9ff430f;font:700 .72rem Space Mono;cursor:pointer}.transport-live svg{width:14px}.transport-live.active{color:#101608;background:var(--signal)}.clip-launcher{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.clip-launcher>div{display:grid;gap:2px}.clip-launcher strong{color:#d8e4e7;font-size:.8rem}.clip-launcher span{color:#71858d;font-size:.68rem}.clip-launcher>button,.clip-trimmer-footer>button,.clip-download button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 11px;border:1px solid #30464f;border-radius:5px;color:#aebdc2;background:#0b191f;font:700 .67rem Space Mono;text-decoration:none;cursor:pointer}.clip-launcher>button{color:#071116;border-color:var(--cyan);background:var(--cyan)}.clip-launcher>button svg,.clip-trimmer-footer>button svg{width:15px}.viewer-transport>.transport-timeline-tools{order:3}.viewer-transport>.transport-scrubber{order:4}.viewer-transport>.transport-camera-events{order:5}.viewer-transport>.transport-event-legend{order:6}.clip-trimmer{order:1;margin:0 0 14px;padding:15px;scroll-margin-top:max(10px,env(safe-area-inset-top));border:1px solid #64501b;border-radius:8px;background:#071217;box-shadow:inset 0 1px #ffffff06,0 0 18px #ffd35a12}.clip-trimmer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.clip-trimmer-heading>div:first-child{display:grid;gap:2px}.clip-trimmer-heading strong{color:#edf4f6;font-size:.82rem}.clip-trimmer-heading span{color:#73878e;font-size:.68rem}.clip-duration{padding:0 3px;font:700 .67rem Space Mono}.clip-duration.valid{color:var(--signal)}.clip-duration.invalid{color:#ff8b78}.clip-trimmer-heading .clip-duration{min-width:58px;padding:5px 8px;border:1px solid #344950;border-radius:4px;color:#071116;background:var(--signal);text-align:center}.clip-trim-times{display:grid;grid-template-columns:1fr 1fr 1fr;margin:12px 17px 5px;color:#667a82;font:600 .57rem Space Mono}.clip-trim-times time:nth-child(2){text-align:center}.clip-trim-times time:last-child{text-align:right}.clip-trim-track{--trim-start: 36%;--trim-end: 64%;position:relative;height:70px;margin:0 17px;overflow:visible;border-radius:5px;background:#111e24;touch-action:none;-webkit-user-select:none;user-select:none}.clip-trim-filmstrip{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(20,minmax(0,1fr));overflow:hidden;border-radius:inherit;background:linear-gradient(180deg,#1e3942,#101e24)}.clip-trim-filmstrip i{border-right:1px solid rgba(255,255,255,.08);background:linear-gradient(145deg,rgba(66,212,231,.16),transparent 52%),linear-gradient(25deg,transparent 42%,rgba(255,255,255,.04) 43% 56%,transparent 57%)}.clip-trim-filmstrip i:nth-child(3n+2){background:linear-gradient(215deg,rgba(217,255,67,.09),transparent 56%),linear-gradient(155deg,transparent 40%,rgba(255,255,255,.045) 41% 55%,transparent 56%)}.clip-trim-dim{position:absolute;z-index:2;top:0;bottom:0;background:#02080bc2;pointer-events:none}.clip-trim-dim.before{left:0;width:var(--trim-start);border-radius:5px 0 0 5px}.clip-trim-dim.after{right:0;left:var(--trim-end);border-radius:0 5px 5px 0}.clip-trim-selection{position:absolute;z-index:3;top:-3px;bottom:-3px;left:var(--trim-start);width:calc(var(--trim-end) - var(--trim-start));border-block:3px solid #ffd35a;pointer-events:none;box-shadow:0 0 9px #ffd35a2e}.clip-trim-playhead{position:absolute;z-index:5;top:-7px;bottom:-7px;width:3px;transform:translate(-50%);border-radius:2px;background:#fff;box-shadow:0 1px 7px #000c;pointer-events:none}.clip-trim-handle{position:absolute;z-index:6;top:-7px;bottom:-7px;width:38px;padding:0;transform:translate(-50%);border:0;background:transparent;cursor:ew-resize;touch-action:none}.clip-trim-handle>span{position:absolute;top:0;bottom:0;left:50%;width:15px;transform:translate(-50%);border-radius:5px;background:#ffd35a;box-shadow:0 1px 8px #000000b3}.clip-trim-handle.start>span{border-radius:6px 2px 2px 6px}.clip-trim-handle.end>span{border-radius:2px 6px 6px 2px}.clip-trim-handle>span:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:20px;transform:translate(-50%,-50%);border-radius:2px;background:#281e0085}.clip-trim-handle.active>span,.clip-trim-handle:focus-visible>span{background:#fff0a7;box-shadow:0 0 0 3px #ffd35a40,0 2px 10px #000c}.clip-trimmer-footer{display:flex;align-items:end;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:13px}.clip-selection-summary{display:flex;align-items:center;gap:7px;margin-right:auto;color:#ffd35a;font:700 .63rem Space Mono;white-space:nowrap}.clip-selection-summary span{color:#677b83}.clip-camera-picker{display:grid;gap:3px}.clip-camera-picker>span{color:#71858d;font:700 .55rem Space Mono;text-transform:uppercase}.clip-camera-picker select{min-height:38px;max-width:190px;padding:0 28px 0 9px;border:1px solid #30464f;border-radius:5px;color:#dbe7ea;background:#0b191f;font-size:.7rem}.clip-download{position:relative;min-width:150px;display:grid;gap:4px}.clip-download button{width:100%;justify-content:center;color:#101608;border-color:var(--signal);background:var(--signal)}.clip-download button:disabled{cursor:wait;opacity:.85}.clip-download.done button{background:var(--cyan);border-color:var(--cyan)}.clip-download.error button{color:#fff;background:#852e38;border-color:#f67}.clip-download button svg{width:14px}.clip-download-progress{height:8px;overflow:hidden;border-radius:4px;background:#1c3038;box-shadow:inset 0 0 0 1px #ffffff14,0 0 8px #42d4e71f}.clip-download-progress i{height:100%;display:block;border-radius:inherit;background:var(--cyan);transition:width .12s linear}.clip-download-progress.indeterminate i{width:38%;animation:clip-download-loading 1s ease-in-out infinite}.clip-download small{max-width:180px;overflow:hidden;color:#ff8b78;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.clip-download.compact{min-width:172px}.clip-download.compact.downloading{padding:5px;border:1px solid rgba(66,212,231,.28);border-radius:5px;background:#42d4e712}.clip-download.compact .clip-download-progress{height:10px}@keyframes clip-download-loading{0%{transform:translate(-110%)}to{transform:translate(285%)}}.clip-trimmer-footer>.clip-reset{color:#8fa1a7;background:transparent}.clip-trimmer-footer>.clip-close{width:38px;padding:0;color:#7f9299;background:transparent}.editor-timeline{margin-top:18px;overflow:hidden;outline:none}.editor-timeline:focus-visible{border-color:#42d4e78c;box-shadow:0 0 0 2px #42d4e71f}.editor-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:19px 20px 17px;border-bottom:1px solid var(--line)}.editor-toolbar h2{margin:0;font-size:1.12rem}.editor-toolbar>div:first-child>span{display:block;margin-top:4px;color:var(--muted);font-size:.77rem}.timeline-controls{display:flex;align-items:center;gap:8px}.timeline-controls>span{margin-right:5px;color:#6e8088;font-size:.7rem}.timeline-controls>strong{min-width:42px;color:#9dadb4;font:700 .68rem Space Mono;text-align:center}.timeline-controls .icon-button:disabled{opacity:.35;cursor:default}.live-edge-button{min-height:34px;display:inline-flex;align-items:center;gap:7px;margin-left:5px;padding:0 11px;border:1px solid rgba(217,255,67,.25);border-radius:4px;color:#b9c593;background:#d9ff430d;font:700 .68rem Space Mono;cursor:pointer}.live-edge-button svg{width:14px}.live-edge-button.active{color:#11180b;background:var(--signal)}.archive-jump{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:14px;padding:13px 20px;border-bottom:1px solid var(--line);background:#09151a}.archive-jump>div{display:grid;gap:3px}.archive-jump strong{color:#d2dde0;font-size:.82rem}.archive-jump span{color:#71838b;font-size:.72rem}.archive-jump input{min-height:38px;padding:0 10px;border:1px solid #31454e;border-radius:4px;color:#d9e4e7;color-scheme:dark;background:#071116}.archive-jump .primary-button{min-height:38px;margin:0;padding-inline:14px}.archive-jump .primary-button svg{width:15px}.editor-body{display:grid;grid-template-columns:166px minmax(0,1fr);min-height:120px}.timeline-label-column{position:relative;z-index:4;color:#9aabb2;background:#0a151a;border-right:1px solid #293941;box-shadow:9px 0 22px #0000002e}.ruler-label,.lane-label{display:flex;align-items:center;height:44px;padding:0 14px;border-bottom:1px solid var(--line)}.ruler-label{height:38px;color:#61747c;font:700 .62rem Space Mono;letter-spacing:.11em}.lane-label{gap:9px}.lane-label strong{min-width:0;overflow:hidden;font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.lane-label .live-dot,.lane-label .offline-dot{width:6px;height:6px}.timeline-scroll{min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain;scrollbar-color:#5d747e #091318;scrollbar-gutter:stable;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}.timeline-scroll.dragging{cursor:grabbing}.timeline-scroll::-webkit-scrollbar{height:14px}.timeline-scroll::-webkit-scrollbar-track{background:#081116}.timeline-scroll::-webkit-scrollbar-thumb{border:3px solid #081116;border-radius:8px;background:#526872}.timeline-scroll::-webkit-scrollbar-thumb:hover{background:#718891}.timeline-canvas{position:relative;min-height:100%;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(4.1667% - 1px),rgba(83,105,114,.09) calc(4.1667% - 1px),rgba(83,105,114,.09) 4.1667%)}.time-ruler{position:relative;height:38px;border-bottom:1px solid var(--line);background:#0b171c}.time-ruler time{position:absolute;bottom:9px;transform:translate(-50%);color:#6f8189;font:600 .61rem Space Mono;white-space:nowrap}.time-ruler time:after{content:"";position:absolute;top:19px;left:50%;width:1px;height:5px;background:#44565e}.camera-lane{position:relative;height:44px;border-bottom:1px solid var(--line);background:#070f13a8}.camera-lane:hover{background:#101f25b8}.recording-block{position:absolute;top:10px;height:24px;min-width:2px;padding:0;border:1px solid rgba(132,235,249,.42);border-radius:2px;background:#278fa2;box-shadow:inset 0 1px #ffffff1f;cursor:pointer}.recording-block.active{border-right-color:var(--signal);background:#32a7b8;box-shadow:inset -3px 0 var(--signal),inset 0 1px #ffffff26}.recording-block.pending{border-style:dashed;opacity:.72}.recording-block:hover{z-index:2;border-color:#a8f4ff;filter:brightness(1.25)}.timeline-detection{position:absolute;z-index:3;top:5px;width:6px;height:34px;padding:0;transform:translate(-3px);border:0;border-radius:2px;background:#ffbd54;box-shadow:0 0 8px #ffbd5473;cursor:pointer}.timeline-playhead{position:absolute;z-index:5;top:0;bottom:0;width:1px;pointer-events:none;background:#fff;box-shadow:0 0 7px #ffffff8c}.timeline-playhead:before{content:"";position:absolute;top:0;left:-4px;border-top:7px solid #fff;border-inline:4px solid transparent}.timeline-playhead span{position:absolute;top:3px;left:7px;padding:3px 5px;color:#071014;background:#fff;font:700 .58rem Space Mono;white-space:nowrap}.timeline-live-edge{position:absolute;z-index:4;top:0;right:0;bottom:0;width:3px;padding:0;border:0;background:var(--signal);cursor:pointer;box-shadow:0 0 13px #d9ff4366}.timeline-live-edge span{position:absolute;top:5px;right:7px;padding:3px 5px;color:#11180b;background:var(--signal);font:700 .58rem Space Mono}.timeline-legend{display:flex;flex-wrap:wrap;gap:18px;padding:11px 20px;color:#71828a;background:#091318;font-size:.68rem}.timeline-legend span{display:flex;align-items:center;gap:6px}.timeline-legend span:last-child{margin-left:auto;color:#8a9ba2;font-family:Space Mono}.timeline-legend i{width:11px;height:7px;display:inline-block;border-radius:1px}.recording-swatch{background:var(--cyan)}.motion-swatch{background:#ffbd54}.timeline-panel{margin-top:18px;padding:22px}.event-timeline{margin-top:22px}.timeline-event{min-height:92px;display:grid;grid-template-columns:24px 90px minmax(0,1fr);gap:12px}.timeline-marker{position:relative;display:flex;justify-content:center}.timeline-marker:after{content:"";position:absolute;top:17px;bottom:0;width:1px;background:var(--line)}.timeline-event:last-child .timeline-marker:after{display:none}.timeline-marker span{position:relative;z-index:1;width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--signal);box-shadow:0 0 0 5px #d9ff4314}.timeline-event>time{padding-top:1px;color:var(--muted);font-size:.8rem}.timeline-event-body{display:flex;gap:12px;min-width:0;padding:0 0 18px}.timeline-event-body img{width:112px;height:64px;flex:0 0 auto;object-fit:cover;border:1px solid var(--line)}.timeline-event-body>div{min-width:0;display:grid;align-content:start;gap:5px}.timeline-event-body strong{font-size:.9rem;text-transform:capitalize}.timeline-event-body span{overflow:hidden;color:var(--muted);font-size:.8rem;text-overflow:ellipsis}.empty-timeline{margin-top:20px;padding:28px 0;color:var(--muted);border-top:1px solid var(--line)}.recording-timeline{max-width:1100px}.recording-player{position:relative;margin:20px 0 4px;padding:14px;border:1px solid #31444d;background:#050b0e}.recording-player>div{display:grid;gap:3px;margin:0 42px 12px 0}.recording-player>div span{color:var(--muted);font-size:.75rem}.recording-player video{width:100%;max-height:620px;display:block;background:#000}.recording-player>.icon-button{position:absolute;top:10px;right:10px}.recording-entry .timeline-marker span{background:var(--cyan);box-shadow:0 0 0 5px #42d4e714}.recording-icon{width:112px;height:64px;flex:0 0 auto;display:grid;place-items:center;color:var(--cyan);border:1px solid var(--line);background:#081217}.recording-icon svg{width:23px}.recording-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:3px}button.download-link{padding:0;border:0;background:transparent;cursor:pointer}.load-older{margin:8px 0 0 36px}.admin-event-review{display:grid;gap:12px}.admin-event-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}.admin-event-heading h2{margin:0;font-size:1.12rem}.admin-event-heading>div>span{display:block;margin-top:5px;color:var(--muted);font-size:.76rem}.admin-event-heading>svg{color:var(--cyan)}.admin-camera-accordions{display:grid;gap:9px}.admin-camera-review{overflow:hidden}.admin-camera-review.open{border-color:#324952}.admin-camera-review-toggle{width:100%;min-height:66px;display:grid;grid-template-columns:9px minmax(0,1fr) auto 24px;align-items:center;gap:13px;padding:13px 17px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.admin-camera-review-toggle:hover{background:#42d4e709}.admin-camera-review-toggle>div{min-width:0;display:grid;gap:3px}.admin-camera-review-toggle>div strong,.admin-camera-review-toggle>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-camera-review-toggle>div strong{font-size:.86rem}.admin-camera-review-toggle>div span{color:var(--muted);font-size:.7rem}.review-chevron{width:17px;color:#657981;transition:transform .15s ease}.admin-camera-review.open .review-chevron{transform:rotate(90deg)}.admin-camera-review-body{padding:0 14px 14px;border-top:1px solid var(--line);background:#071116}.admin-camera-review-body>.live-panel{max-width:980px;margin:14px auto 0}.admin-camera-review-body>.viewer-transport{margin-bottom:0}.mobile-menu{position:fixed;z-index:15;top:17px;left:17px;width:42px;height:42px;place-items:center;border:1px solid var(--line);background:#0c171d}.backdrop{display:none}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.performance-graphs{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr}.events-grid{grid-template-columns:repeat(2,1fr)}.management-layout,.nvr-device,.nvr-options{grid-template-columns:1fr}.form-panel{position:static}.storage-capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.raid-plan-options{grid-template-columns:1fr 1fr}}@media(max-width:800px){.app-shell{display:block}.sidebar{width:min(86vw,320px);padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(17px,env(safe-area-inset-left));transform:translate(-102%);transition:transform .2s ease;box-shadow:18px 0 60px #00000059}.sidebar.open{transform:translate(0)}.close-menu{display:grid;position:absolute;top:20px;right:12px}.mobile-menu{display:grid;top:max(17px,env(safe-area-inset-top));left:max(17px,env(safe-area-inset-left))}.backdrop{display:block;position:fixed;z-index:19;top:0;right:0;bottom:0;left:0;background:#0000008c}.content{padding:calc(70px + env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(45px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.topbar{align-items:flex-start}.system-online{display:none}.admin-grid,.client-grid{grid-template-columns:1fr}.client-camera-bar{align-items:flex-start;flex-direction:column}.camera-tabs{justify-content:flex-start}.camera-wall,.storage-location-config form{grid-template-columns:1fr}.editor-toolbar{align-items:flex-start;flex-direction:column}.timeline-controls{width:100%;flex-wrap:wrap}.timeline-controls>span{width:100%}.archive-jump{grid-template-columns:1fr auto}.archive-jump>div{grid-column:1 / -1}}@media(max-width:560px){input,select,textarea{font-size:16px}.login-card{padding:28px 22px}.metric-grid{grid-template-columns:1fr}.metric-grid article{min-height:86px}.performance-graphs{grid-template-columns:1fr}.diagnostics-panel .section-heading{align-items:flex-start;flex-direction:column}.diagnostic-entry{grid-template-columns:1fr;gap:5px}.admin-camera-review-toggle{grid-template-columns:9px minmax(0,1fr) 20px}.admin-camera-review-toggle>.recording-pill{display:none}.admin-camera-review-body{padding-inline:7px}.side-stack,.camera-selector,.events-grid{grid-template-columns:1fr}.panel-header{padding:16px}.topbar h1{font-size:2rem}.form-columns{grid-template-columns:1fr}.motion-zone-heading{align-items:stretch;flex-direction:column}.motion-zone-mode{width:100%}.motion-zone-mode button{flex:1}.motion-zone-tools>label{width:100%;grid-template-columns:auto minmax(0,1fr)}.data-row{grid-template-columns:38px minmax(0,1fr)}.data-row .row-actions,.data-row>.danger-button{grid-column:1 / -1;width:100%}.data-row .row-actions>button{flex:1}.storage-summary{grid-template-columns:1fr;gap:4px}.storage-admin-heading{align-items:stretch;flex-direction:column}.storage-admin-heading .secondary-button{width:100%}.storage-capacity-grid,.raid-plan-options{grid-template-columns:1fr}.storage-locations-panel,.storage-device-panel,.raid-planner-panel{padding:14px}.storage-location-form{grid-template-columns:1fr}.storage-location-form .primary-button{width:100%}.storage-device-list{grid-template-columns:1fr}.storage-device-list>article{align-items:flex-start;flex-direction:column}.storage-device-state{white-space:normal}.raid-drive-picker{grid-template-columns:1fr;padding:9px}.raid-planner-panel form>.primary-button{width:100%}.client-portal{width:auto;margin-inline:max(14px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-right));padding-top:max(14px,env(safe-area-inset-top));padding-bottom:calc(74px + env(safe-area-inset-bottom))}.client-header{margin-bottom:30px}.client-header .sidebar-brand span{max-width:150px;overflow:hidden;text-overflow:ellipsis}.client-header .secondary-button{width:40px;padding:0;font-size:0}.client-header .secondary-button svg{width:17px}.viewer-transport{padding-inline:12px}.playback-dock{right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));width:auto;grid-template-columns:auto auto minmax(86px,1fr) auto auto;padding:8px}.playback-dock>button{min-width:44px;padding-inline:8px}.playback-dock>button span{display:none}.playback-dock>button.dock-skip span{display:inline}.playback-dock>button.dock-skip svg{display:none}.playback-dock>button.dock-live{display:none}.playback-dock-position span{display:none}.transport-mode-header{align-items:stretch;flex-direction:column;margin-inline:-12px;padding-inline:12px}.transport-day-picker{width:100%;margin-left:0}.transport-day-picker input{width:100%}.transport-save-video{width:100%;min-height:50px}.transport-mode-switch{width:100%;min-width:0}.transport-buttons{justify-content:space-between}.transport-buttons>button{min-width:48px;padding-inline:7px}.transport-buttons>button span{display:none}.transport-buttons>button.transport-skip span{display:inline;font:700 .68rem Space Mono}.transport-buttons>button.transport-skip svg{display:none}.transport-clock{min-width:124px;margin-inline:2px}.transport-timeline-tools{flex-wrap:wrap}.transport-timeline-tools>span{width:100%;margin:2px 0 0;text-align:center}.transport-scrubber{grid-template-columns:minmax(0,1fr)}.transport-scrubber>span{display:none}.transport-event-legend{margin-inline:0}.transport-event-legend span:last-child{display:none}.transport-camera-events{margin-left:0}.transport-camera-event-row{grid-template-columns:minmax(0,1fr);gap:2px}.transport-camera-event-row>strong{padding-inline:8px}.transport-event-playhead-layer{grid-template-columns:minmax(0,1fr);gap:0}.transport-event-playhead-layer>span{display:none}.clip-launcher{align-items:stretch;flex-direction:column}.clip-launcher>button{min-height:46px}.clip-trimmer{margin-inline:-4px;padding:13px 10px 12px}.clip-trimmer-heading{align-items:start}.clip-trimmer-heading span{max-width:250px;line-height:1.4}.clip-trim-times{margin-inline:14px}.clip-trim-track{height:82px;margin-inline:14px}.clip-trim-handle{width:46px}.clip-trim-handle>span{width:17px}.clip-trimmer-footer{align-items:stretch;display:grid;grid-template-columns:minmax(0,1fr) auto}.clip-selection-summary{grid-column:1 / -1;justify-content:center;margin:0 0 2px}.clip-camera-picker{grid-column:1 / -1}.clip-camera-picker select{width:100%;max-width:none;min-height:44px}.clip-trimmer-footer .clip-download{grid-column:1 / -1;min-width:0}.clip-trimmer-footer .clip-download button,.clip-trimmer-footer>button{min-height:44px}.clip-trimmer-footer>.clip-reset{grid-column:1}.clip-trimmer-footer>.clip-close{grid-column:2;width:44px}.archive-jump{grid-template-columns:1fr;padding-inline:14px}.archive-jump input,.archive-jump .primary-button{width:100%}.timeline-event{grid-template-columns:20px minmax(0,1fr);gap:10px}.timeline-event>time{grid-column:2;margin-top:-2px}.timeline-event-body{grid-column:2;flex-direction:column}.timeline-event-body img{width:100%;height:auto;aspect-ratio:16/9}.recording-icon{width:100%;height:84px}.load-older{width:calc(100% - 30px);margin-left:30px}.review-portal{width:min(100% - 20px,1540px)}.editor-body{grid-template-columns:116px minmax(0,1fr)}.ruler-label,.lane-label{padding-inline:9px}.camera-wall .panel-header>div:first-child>span{max-width:55vw}.video-stage{touch-action:manipulation}.pwa-install{grid-template-columns:minmax(0,1fr) auto auto;width:calc(100% - 16px)}.pwa-install .brand-mark{display:none}.pwa-install>div:nth-child(2){grid-column:1}.pwa-install>.pwa-install-close{grid-column:3;grid-row:1}.connectivity-banner{right:max(8px,env(safe-area-inset-right));bottom:calc(82px + env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));justify-content:center;max-width:none}}@media(display-mode:standalone){.pwa-install:not(.update-ready){display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
