:root{color-scheme:dark;--bg:#0a0e15;--panel:#111823;--border:#263140;--text:#ecf1f8;--muted:#97a7ba;--blue:#7fa9ff;--green:#76d4b5;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,select{cursor:pointer}button{transition:background .15s}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.topbar{height:76px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 30px;gap:42px;background:#101620}.brand{display:flex;align-items:center;gap:8px;font-size:17px;letter-spacing:1.7px;text-decoration:none;color:var(--text);font-weight:700}.brand strong{font-weight:400;color:#a3b8d7}.brand-icon{display:grid;place-items:center;width:33px;height:33px;background:#2a62d5;border-radius:9px;color:white;font-size:22px;font-weight:800;letter-spacing:-3px;margin-right:5px;padding-right:3px}.section-label{font-size:14px;border-left:1px solid var(--border);padding-left:32px}.top-right{margin-left:auto;color:var(--muted);font-size:14px}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{background:#101620;border-right:1px solid var(--border);display:flex;flex-direction:column;height:calc(100vh - 76px);position:sticky;top:0}.site-section{padding:26px 22px 19px;border-bottom:1px solid var(--border)}.eyebrow{font-size:12px;letter-spacing:1.6px;font-weight:650;color:var(--muted);margin-bottom:14px}.eyebrow span{background:#222f42;color:#bacde5;padding:2px 7px;border-radius:5px;letter-spacing:0;margin-left:8px}label{font-size:14px;color:#c3cfde;display:block;margin-bottom:9px}select,input{width:100%;border:1px solid #354357;border-radius:7px;background:#182230;color:var(--text);min-height:43px;padding:9px 11px}input::placeholder{color:#8999af}.site-address{display:flex;align-items:center;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.text-button{border:0;background:none;color:var(--blue);padding:4px;font-size:14px}.camera-toolbar{padding:21px 22px 14px}.camera-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.camera-heading h2{font-size:15px;font-weight:600;margin:0}.camera-heading span{font-size:13px;color:var(--muted)}.camera-list{overflow-y:auto;flex:1;padding:0 10px 16px;scrollbar-width:thin;scrollbar-color:#38495f transparent}.camera-button{width:100%;display:flex;align-items:flex-start;gap:11px;text-align:left;color:#c7d1df;background:none;border:1px solid transparent;padding:12px 11px;border-radius:7px;margin-bottom:3px;line-height:1.4}.camera-button:hover{background:#1a2534}.camera-button.active{background:#192e4e;border-color:#335d92;color:#fff}.camera-button .camera-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex:none;margin-top:7px}.camera-button .camera-dot.offline{background:#788395}.camera-button .camera-dot.unknown{background:#e3ba72}.camera-copy{min-width:0;font-size:14px;overflow-wrap:anywhere}.camera-copy small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.list-message{font-size:14px;color:var(--muted);padding:10px 14px;line-height:1.6}.sidebar-footer{padding:17px 22px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.small-mark{width:7px;height:7px;background:#648aca;border-radius:2px}main{padding:32px 36px;min-width:0}.main-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.main-heading .eyebrow{margin-bottom:8px}h1{font-size:29px;font-weight:600;letter-spacing:-.7px;margin:0 0 8px}#siteSummary{font-size:14px;color:var(--muted);margin:0}.pill{border:1px solid #354254;border-radius:20px;padding:7px 12px;white-space:nowrap;font-size:13px;color:#b6c6d9}.pill.connected{background:#142d29;border-color:#2a5147;color:#8fe0c5}.pill.failed{background:#342028;border-color:#6a3d49;color:#f0a4b5}.notice{padding:15px 18px;border:1px solid #784554;background:#302027;border-radius:8px;color:#f1bdc8;margin-bottom:20px;font-size:14px;line-height:1.5}.viewer-panel{border:1px solid var(--border);border-radius:11px;overflow:hidden;background:var(--panel)}.viewer-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 20px;min-height:60px}.viewer-title{display:flex;gap:11px;align-items:center;min-width:0}.viewer-title h2{font-size:15px;font-weight:550;margin:0;overflow-wrap:anywhere}.camera-symbol{color:#95acd0}.video-state{font-size:11px;letter-spacing:1.4px;color:var(--muted);white-space:nowrap}.video-state.live{color:#8fe0c5}.video-stage{aspect-ratio:16/9;background:#05080d;position:relative;display:grid;place-items:center;overflow:hidden;max-height:calc(100vh - 340px);min-height:220px}video{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}.video-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#172232 0%,#0a101a 70%);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px}.video-overlay[hidden]{display:none}.view-icon{color:#7f9bc4;font-size:38px;margin-bottom:12px}.video-overlay h3{font-size:20px;font-weight:550;margin:0 0 10px}.video-overlay p{font-size:14px;color:var(--muted);max-width:420px;line-height:1.6;margin:0}.viewer-controls{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.quality-controls{display:flex;align-items:center;gap:12px}.quality-controls label{margin:0;white-space:nowrap;font-size:13px;color:var(--muted)}.quality-controls select{width:178px;min-height:38px;font-size:14px}.playback-controls{display:flex;gap:10px}.secondary-button,.primary-button{border:1px solid #3b4b60;border-radius:6px;padding:10px 13px;background:#1c2838;color:#dfe9f7;font-size:14px}.secondary-button:hover:not(:disabled){background:#2a3c54}.primary-button{background:#316bda;color:white;border-color:#427ce9;margin-top:20px}.primary-button[hidden]{display:none}.view-footer{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;line-height:1.5;margin-top:14px}.view-footer p{margin:0}.view-footer span{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.login-body{display:grid;min-height:100vh;place-items:center}.login-card{width:min(420px,90vw);padding:36px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.login-card h1{font-size:24px}.login-card p{line-height:1.5;color:var(--muted)}.login-card button{width:100%}@media(min-width:1600px){main{padding:38px 48px}.workspace{grid-template-columns:330px minmax(0,1fr)}}@media(max-width:1100px){main{padding:26px 22px}.workspace{grid-template-columns:280px minmax(0,1fr)}.viewer-controls{flex-wrap:wrap}.quality-controls{flex:1}.top-right{display:none}.video-stage{min-height:240px;max-height:none}.view-footer{flex-wrap:wrap}}@media(max-width:740px){.topbar{height:66px;padding:0 18px;gap:18px}.section-label{padding-left:18px}.workspace{display:flex;flex-direction:column}.sidebar{position:static;height:auto;border-right:0}.site-section{padding:19px 18px}.camera-toolbar{padding:16px 18px 10px}.camera-list{max-height:220px}.sidebar-footer{display:none}main{padding:24px 16px}.main-heading{align-items:flex-start}h1{font-size:25px}.viewer-heading{padding:15px}.video-stage{min-height:200px}.viewer-controls{padding:15px}.quality-controls{flex-wrap:wrap;gap:7px}.quality-controls select{width:100%}.playback-controls{width:100%}.playback-controls button{flex:1}.topbar .brand{font-size:14px;letter-spacing:1px}.view-footer span{white-space:normal}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Multi-site camera wall */
.directory-status{font-size:12px;color:var(--muted);margin:9px 0 0;line-height:1.4}.wall-panel{border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.wall-toolbar,.wall-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 18px}.layout-group{display:flex;gap:7px;align-items:center}.layout-group>span{font-size:14px;color:var(--muted);margin-right:7px}.layout-button{border:1px solid #354357;color:#b8c8dd;background:#182230;border-radius:6px;min-width:39px;padding:8px 10px;font-size:14px}.layout-button.active{background:#2a5fb8;color:white;border-color:#6f9fed}.camera-wall{display:grid;gap:7px;padding:7px;background:#05080d;grid-template-columns:minmax(0,1fr)}.camera-wall.layout-4{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-wall.layout-9{grid-template-columns:repeat(3,minmax(0,1fr))}.camera-wall.layout-16{grid-template-columns:repeat(4,minmax(0,1fr))}.camera-pane{border:2px solid #243146;border-radius:5px;overflow:hidden;min-width:0;background:#0d1520;cursor:pointer}.camera-pane.selected{border-color:#79a7ff}.camera-pane.drag-over{border-color:#81e1c4;box-shadow:inset 0 0 0 3px #81e1c4;background:#17342f}.pane-heading{display:flex;align-items:center;gap:7px;padding:8px;min-height:36px}.pane-number{color:#a3b6d0;font-size:12px}.pane-title{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.pane-state{font-size:12px;color:#93a9c5;letter-spacing:.7px}.pane-state.live{color:#8fe0c5}.pane-clear{background:none;border:0;color:#b5c7de;font-size:20px;line-height:1;padding:0 4px}.pane-clear:hover{color:white}.pane-stage{position:relative;aspect-ratio:16/9;background:#000}.pane-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.pane-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0a111c;padding:12px;text-align:center}.pane-overlay p{font-size:14px;color:#9eb1ca;margin:0;line-height:1.5}.pane-retry{font:inherit;font-size:13px;background:#203653;border:1px solid #4a6a96;color:#dceaff;padding:6px 10px;border-radius:5px}.pane-caption{font-size:12px;color:#94a9c5;padding:7px 9px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-height:28px}.layout-1 .pane-stage{max-height:calc(100vh - 420px);min-height:240px}.layout-1 .pane-title{font-size:15px}.layout-16 .pane-heading{flex-wrap:wrap}.layout-16 .pane-state{display:none}.layout-16 .pane-overlay p{font-size:12px}.camera-wall:fullscreen{width:100vw;height:100vh;overflow:auto;align-content:center;padding:12px}.camera-wall:fullscreen .pane-stage{min-height:0;max-height:none}.camera-wall:fullscreen.layout-1 .pane-stage{height:calc(100vh - 120px)}.camera-button[draggable=true]{cursor:grab}.camera-button[draggable=true]:active{cursor:grabbing}.wall-hint{font-size:13px;color:var(--muted);margin:17px 0 0}.wall-controls{flex-wrap:wrap}@media(max-width:1100px){main{padding:25px 18px}.workspace{grid-template-columns:280px minmax(0,1fr)}.pane-heading{gap:5px}.pane-state{font-size:12px}.layout-9 .pane-state{display:none}.layout-16 .pane-overlay{padding:5px}.layout-16 .pane-retry{font-size:11px;padding:4px}}@media(max-width:740px){.camera-wall.layout-9,.camera-wall.layout-16{grid-template-columns:repeat(2,minmax(0,1fr))}.wall-toolbar{padding:12px 10px}.wall-toolbar>.secondary-button{font-size:12px;padding:9px}.layout-group{gap:4px}.layout-group>span{display:none}.pane-state{display:none}.pane-heading{padding:6px}.pane-title{font-size:12px}.pane-overlay p{font-size:12px}.layout-1 .pane-stage{min-height:200px;max-height:none}.wall-controls{padding:12px}.wall-controls .quality-controls{flex:1 0 100%}.wall-controls>.secondary-button{width:100%}}
/* Investigation and recording review workspace */
.app-tabs{display:flex;align-items:center;gap:5px}.tab{background:none;border:0;color:#a8bad2;padding:12px 15px;border-radius:6px;font-size:14px}.tab.active{background:#243753;color:#fff}.review-panel{margin-top:14px;border:1px solid #2a3a52;background:#111c2b;border-radius:10px;padding:16px 20px}.review-top{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.review-top>span{flex:1;color:#a4b7d0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-tabs{display:flex;background:#08111d;border:1px solid #33435b;border-radius:7px;padding:3px}.mode{background:none;border:0;border-radius:4px;color:#a9bad0;padding:8px 15px;font-size:14px}.mode.active{background:#2d60ac;color:white}.review-inputs{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-top:20px}.review-inputs label{flex:1;margin:0;min-width:100px}.review-inputs label:first-child{flex:2;min-width:215px}.review-inputs input,.review-inputs select{margin-top:7px}.accent-button{border:1px solid #5b8ee0;border-radius:6px;background:#3268bf;color:#fff;font-size:14px;padding:12px 17px;cursor:pointer}.timeline-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 12px}.timeline-heading strong{font-size:14px;font-weight:550}.timeline-heading span{display:block;font-size:12px;color:#8ea4c1;margin-top:6px}.timeline-nav{display:flex;gap:6px}.timeline-nav button{color:#cdddf5;background:#192b43;border:1px solid #3a506f;border-radius:5px;padding:5px 10px}.timeline-nav select{font-size:13px;width:110px;min-height:34px;padding:5px}#timelineCanvas{display:block;width:100%;height:95px;cursor:crosshair;border-radius:5px}#timelineScrubber{height:14px;min-height:14px;padding:0;accent-color:#7aa9f6;border:0;cursor:ew-resize}.timeline-legend{display:flex;gap:20px;flex-wrap:wrap;color:#65c4aa;font-size:12px;margin:12px 0}.timeline-legend span:last-child{color:#92a6c1;margin-left:auto}.event-color{color:#e8bc70}.transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px}.transport span{font-size:12px;color:#adbfda;flex:1}.review-disclaimer{font-size:12px;color:#93a8c3;line-height:1.6;margin:13px 0 0}.workspace-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:6px 0 25px}.workspace-title h2{font-size:27px;margin:0;font-weight:600}.workspace-title p{font-size:14px;color:#9cafc9}.case-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px}.case-list{border-right:1px solid #29364a;padding-right:15px}.case-card{display:block;width:100%;text-align:left;background:#162033;border:1px solid #324059;padding:16px;border-radius:8px;color:white;margin-bottom:10px}.case-card strong{display:block;font-size:15px;overflow-wrap:anywhere}.case-card span{display:block;font-size:12px;color:#94a9c8;margin-top:9px}.case-card.active{border-color:#77a7f9}.case-detail{padding:22px;border:1px solid #293951;border-radius:10px;background:#101a29}.case-detail-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}.case-detail h3{margin-top:0;overflow-wrap:anywhere}.case-detail label{margin-top:18px}textarea{font:inherit;font-size:14px;width:100%;display:block;margin-top:9px;background:#172438;color:#dae8fa;border:1px solid #3b506e;border-radius:7px;padding:12px;resize:vertical;line-height:1.6}.case-detail .bookmarks-heading{margin-top:30px;font-size:16px}.bookmark-card,.event-card{border:1px solid #2f425c;background:#142135;padding:18px;border-radius:7px;margin-bottom:13px;overflow-wrap:anywhere}.bookmark-card p,.event-card p{font-size:14px;color:#c1d0e4;line-height:1.5}.bookmark-card small,.event-card small{display:block;color:#91a8c9;font-size:12px;margin:9px 0}.bookmark-card button{margin-top:12px}.muted{color:#95accb;font-size:14px}.empty-feature{padding:35px 20px;text-align:center;color:#b8cae3}.empty-feature h3{font-size:20px;font-weight:500;margin:0 0 12px}.empty-feature p{font-size:14px;color:#90a7c7;line-height:1.6;max-width:450px;margin:0 auto}.event-notice{border:1px solid #3b5579;background:#172b47;color:#b9cee9;border-radius:8px;padding:17px;font-size:14px;line-height:1.6}.event-filters{display:flex;flex-wrap:wrap;gap:13px;margin:22px 0;align-items:end}.event-filters label{flex:1;min-width:140px;margin:0}.event-filters input,.event-filters select{margin-top:8px}.event-filters .checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px}.checkbox-label input{width:17px;height:17px;min-height:0;margin:0}.event-card .event-badge{display:inline-block;font-size:12px;color:#e8bc70;background:#3a3327;padding:4px 8px;border-radius:4px;margin-right:12px}.event-card button{margin:8px 8px 0 0}.integration-info{font-size:14px;color:#97afd0;line-height:1.7;margin-top:24px;border-top:1px solid #293c56;padding-top:20px}.integration-info summary{cursor:pointer;color:#c1d6f2}dialog{background:#142033;color:#e1edff;border:1px solid #496489;border-radius:12px;padding:28px;width:min(540px,90vw);max-height:90vh;overflow-y:auto;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#030a15c9}dialog h2{margin:0 0 18px;font-size:23px}dialog p{font-size:14px;color:#a8bfdc;line-height:1.6}dialog label{margin-top:17px}dialog label input,dialog label select{margin-top:7px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#toast{position:fixed;bottom:24px;right:24px;max-width:min(500px,85vw);background:#264267;color:#eef6ff;border:1px solid #769ccb;border-radius:8px;padding:17px 20px;box-shadow:0 8px 35px #0008;z-index:1000;font-size:14px;line-height:1.5}.app-tabs .tab:focus-visible{outline:2px solid #84b4ff}.layout-1 .pane-stage{max-height:calc(100vh - 490px)}@media(max-width:1100px){.case-layout{grid-template-columns:1fr}.case-list{border-right:0;display:flex;overflow:auto;gap:10px}.case-card{min-width:200px}.topbar{gap:20px}.top-right{display:none}}@media(max-width:740px){.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding:14px;gap:10px}.app-tabs{width:100%}.tab{flex:1;padding:9px}.workspace-title{flex-wrap:wrap}.review-panel{padding:13px}.review-top{gap:10px}.review-top>span{flex-basis:100%;order:3}.timeline-heading{flex-wrap:wrap}.review-inputs label{flex:1 0 45%}.transport span{flex-basis:100%;order:3}.case-detail{padding:15px}.case-detail-heading{flex-wrap:wrap}.timeline-legend{gap:10px}.sidebar{height:auto}.layout-1 .pane-stage{max-height:none}.event-filters label{flex:1 0 45%}}
/* Recording investigation surface and clip handles */
#timelineCanvas{height:120px;cursor:grab;touch-action:none;user-select:none}#timelineCanvas.dragging{cursor:grabbing}#timelineCanvas.placing-marker{cursor:crosshair}.clip-tools{padding:14px;background:#0c1727;border:1px solid #30455e;border-radius:7px;margin-top:15px}.clip-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.clip-actions .placing{background:#345d88;border-color:#83c9ee;color:white}.clip-fields{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-top:14px}.clip-fields label{flex:1;min-width:205px;font-size:13px;margin:0}.clip-fields input{font-size:14px;margin-top:7px}.clip-fields span{flex:1;min-width:150px;font-size:13px;color:#89d8bd;line-height:1.5;padding:7px 0}.clip-fields .invalid{color:#ffae9e}.case-notes-section{margin-top:25px;border:1px solid #2a3d56;border-radius:8px;padding:17px}.case-notes-section>summary{cursor:pointer;font-size:15px;color:#bacee9}.case-notes-section[open]>.case-layout{margin-top:22px}#investigationsWorkspace>.workspace-title{margin-bottom:20px}#investigationReviewHost .mode-tabs{display:none}#investigationReviewHost .review-panel{border-color:#41658e}#monitorWorkspace #playbackTools{display:none}#monitorWorkspace #bookmarkButton{display:none}@media(max-width:740px){.clip-fields label{min-width:0;flex:1 0 100%}.clip-actions button{flex:1}.clip-fields span{flex:1 0 100%}}
.export-jobs{border-top:1px solid #31455f;margin-top:18px;padding-top:14px}.export-jobs-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:10px}.export-job{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #3a526f;background:#102035;border-radius:7px;padding:14px;margin-top:8px}.export-job-info{min-width:0;overflow-wrap:anywhere}.export-job strong{display:block;font-size:14px}.export-job small{display:block;font-size:12px;color:#9fb6d4;margin-top:5px}.export-job p{font-size:13px;color:#b8d4fa;margin:8px 0}.export-job.ready{border-color:#357762}.export-job.ready p{color:#81dab5}.export-job.failed{border-color:#874c54}.export-job.failed p{color:#ffb0aa}.export-job>button{flex:none}@media(max-width:740px){.export-job{flex-wrap:wrap}.export-job>button{width:100%}}

/* Small reference stills identify cameras without additional live streams. */
.camera-button{align-items:center;gap:10px;padding:9px 8px}
.camera-preview{position:relative;display:grid;place-items:center;flex:0 0 76px;width:76px;height:46px;overflow:hidden;border:1px solid #354357;border-radius:5px;background:#090f18}
.camera-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.camera-preview-placeholder{font-size:10px;color:var(--muted);text-align:center}
.camera-button .camera-preview .camera-dot{position:absolute;bottom:4px;right:4px;margin:0;width:7px;height:7px;box-shadow:0 0 0 2px #0a0e15}
.camera-copy{flex:1;font-size:13px}
.export-selection-action{display:flex;justify-content:flex-end;margin:14px 0}
.saved-layout-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border-top:1px solid var(--border)}
.saved-layout-tools label{margin:0;display:flex;align-items:center;gap:10px;font-size:13px}.saved-layout-tools select{width:210px}.saved-layout-tools #layoutHint{width:100%;color:var(--muted);font-size:12px}
.camera-pane{position:relative}.pane-tools{display:flex;flex-wrap:wrap;gap:5px;padding:7px;background:#101b2a}.pane-tools button{background:#1c2c40;color:#d8e5f6;border:1px solid #34465f;border-radius:4px;padding:5px 7px;font-size:11px}.pane-tools button:hover{background:#304665}.pane-stage{overflow:hidden}.pane-stage.zoomed{cursor:grab;touch-action:none}.pane-stage.zoomed:active{cursor:grabbing}
.pane-resize{display:none;position:absolute;right:0;bottom:0;border:0;background:#3566a6;color:white;width:24px;height:24px;cursor:nwse-resize;touch-action:none;z-index:3}
.camera-wall.custom-wall{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:120px;align-content:start;grid-auto-flow:row}
.custom-wall .camera-pane{display:flex;flex-direction:column}.custom-wall .pane-stage{flex:1;min-height:0;max-height:none;aspect-ratio:auto}.custom-wall .pane-tools{padding-right:27px}.custom-wall .pane-resize{display:block}
.camera-wall.has-maximized{display:block}.camera-wall.has-maximized .camera-pane:not(.maximized){display:none}.camera-wall .camera-pane.maximized{display:flex;flex-direction:column;height:min(78vh,900px)}.camera-pane.maximized .pane-stage{flex:1;aspect-ratio:auto;min-height:0;max-height:none}.camera-pane.maximized .pane-resize{display:none}
@media(max-width:740px){.saved-layout-tools label{flex-wrap:wrap}.custom-wall .pane-tools button{padding:3px;font-size:10px}}

.pane-heading[draggable=true]{cursor:grab;user-select:none}.pane-heading[draggable=true]:active{cursor:grabbing}.pane-heading[draggable=true]::before{content:'⠿';color:#8ba7cd;margin-right:3px}.camera-pane.pane-dragging{opacity:.55}.camera-pane.pane-drop-target{border-color:#76d4b5;box-shadow:inset 0 0 0 3px #76d4b5}.has-maximized .pane-heading[draggable=true]{cursor:default}
.camera-wall{position:relative}.pane-move-handle{cursor:grab;touch-action:none;user-select:none}.pane-move-handle:active{cursor:grabbing}.pane-move-handle::before{content:'⠿';color:#8ba7cd;margin-right:3px}.pane-position-preview{position:absolute;z-index:8;pointer-events:none;border:2px dashed #76d4b5;background:#76d4b52a;color:#bafbe7;display:grid;place-items:center;font-size:13px;border-radius:6px}.pane-position-preview.blocked{border-color:#f19191;background:#f191912a;color:#ffd4d4}
/* Expanded workspace and account tools. */
.group-picker{padding:0 14px}.group-picker label{font-size:12px}.group-picker select{font-size:12px}.group-camera{display:block;width:100%;text-align:left;margin:5px 0}#groupCameras{max-height:50vh;overflow:auto}
.tour-tools,.sync-tools,.event-context{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border-top:1px solid var(--border);font-size:12px}.tour-tools label,.event-context label{margin:0;font-size:12px}.tour-tools select{width:180px}.tour-tools input,.event-context input{width:95px}.tour-tools span,.sync-tools span{color:var(--muted);font-size:12px}.sync-tools label{display:flex;align-items:center;gap:6px;margin:0}.sync-tools input[type=checkbox],.pane-link input[type=checkbox]{width:16px;min-height:16px}
.pane-link{display:flex;align-items:center;gap:4px;font-size:11px;margin:0}.pane-link input[type=number]{width:54px;min-height:26px;padding:3px;font-size:11px}.pane-tools .secondary-button{font-size:11px;padding:5px}
.operations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.feature-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px;min-width:0}.feature-card h3{margin:0 0 12px}.feature-card p{color:var(--muted);font-size:13px;line-height:1.5}.feature-card form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:15px}.feature-card form label{flex:1;min-width:130px;margin:0}.feature-card form .checkbox-label{display:flex;align-items:center;gap:7px}.checkbox-label input[type=checkbox]{width:17px;min-height:17px}.workspace-item{padding:12px 0;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.workspace-item>strong,.workspace-item>small,.workspace-item>p,.workspace-item>details{width:100%}.workspace-item small{color:var(--muted)}.workspace-item-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}.scroll-results{max-height:440px;overflow:auto}.workspace-item button{font-size:12px}.map-card{grid-column:1/-1}.map-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.map-actions label{font-size:12px;margin:0}#mapCanvas{position:relative;max-width:100%;min-height:150px;background:#172230;border:1px dashed var(--border);margin-top:15px;line-height:0}#mapImage{display:block;width:100%;height:auto}#mapPins{position:absolute;inset:0;pointer-events:none}.map-pin{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;padding:0;border-radius:50%;border:2px solid white;background:#2869c7;color:white;font-weight:bold;pointer-events:auto;box-shadow:0 2px 8px #0008}.case-detail-heading{flex-wrap:wrap}.case-evidence{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.case-evidence>div{width:100%}.case-evidence select{max-width:450px}.evidence-label{display:block;padding:4px;color:var(--muted)}
[data-theme=light]{color-scheme:light;--bg:#edf2f7;--panel:#fff;--border:#cbd5e1;--text:#162338;--muted:#52657c;--blue:#245ba8;--green:#137b61}
[data-theme=light] body{background:var(--bg);color:var(--text)}
[data-theme=light] .topbar,[data-theme=light] .sidebar,[data-theme=light] .pane-heading,[data-theme=light] .pane-tools,[data-theme=light] .pane-caption,[data-theme=light] .wall-toolbar,[data-theme=light] .wall-controls,[data-theme=light] .saved-layout-tools,[data-theme=light] .tour-tools{background:#f7f9fc;color:var(--text)}
[data-theme=light] .wall-panel,[data-theme=light] .review-panel,[data-theme=light] .case-card,[data-theme=light] .case-detail,[data-theme=light] .event-card,[data-theme=light] .bookmark-card,[data-theme=light] .export-job,[data-theme=light] dialog,[data-theme=light] .login-card,[data-theme=light] .clip-tools{background:#fff;color:var(--text);border-color:var(--border)}
[data-theme=light] label,[data-theme=light] .pane-title,[data-theme=light] .brand,[data-theme=light] .camera-button,[data-theme=light] .mode,[data-theme=light] .tab,[data-theme=light] .layout-group{color:var(--text)}
[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{background:#fff;color:var(--text);border-color:#aebdd0}
[data-theme=light] .secondary-button,[data-theme=light] .pane-tools button,[data-theme=light] .layout-button,[data-theme=light] .timeline-nav button,[data-theme=light] .timeline-nav select{background:#edf3fb;color:#243d60;border-color:#b5c7de}
[data-theme=light] .camera-button:hover,[data-theme=light] .secondary-button:hover{background:#e4edf8}
[data-theme=light] .camera-button.active,[data-theme=light] .tab.active,[data-theme=light] .mode.active,[data-theme=light] .layout-button.active,[data-theme=light] .case-card.active{background:#dceaff;color:#174b91;border-color:#769dd1}
[data-theme=light] .camera-wall{background:#dce3ed}[data-theme=light] .camera-pane{border-color:#9aacc3}[data-theme=light] .camera-pane.selected{border-color:#2869c7}[data-theme=light] .pane-clear{color:#52657c}
[data-theme=light] .pane-state,[data-theme=light] .pane-caption,[data-theme=light] .site-address,[data-theme=light] .view-footer,[data-theme=light] .wall-hint{color:var(--muted)}
[data-theme=light] .pane-overlay{background:#e8edf5;color:#435972}[data-theme=light] .pill.connected{background:#e1f3ec;color:#16634d;border-color:#9acdb9}
[data-theme=light] #toast{background:#173557;color:#fff}[data-theme=light] .text-button{color:#245ba8}[data-theme=light] .notice{background:#fff0f0;color:#882e42;border-color:#d3a5ae}
[data-theme=light] .pane-position-preview{color:#08533f;background:#3baa7b44}[data-theme=light] .pane-position-preview.blocked{color:#7c1830;background:#e7757544}
@media(max-width:1000px){.operations-grid{grid-template-columns:1fr}.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding:12px 18px;gap:12px}.app-tabs{flex-wrap:wrap}.top-right{display:none}.map-card{grid-column:auto}.feature-card{padding:14px}}

#mapCanvas.has-map{min-height:0}

#mapsWorkspace #mapEditor{margin-top:20px}#mapEditor summary{cursor:pointer;color:var(--accent);padding:12px 0}#mapsWorkspace .map-card>label{display:inline-flex;flex-direction:column;gap:6px;margin-right:20px;min-width:200px}.map-empty{padding:60px 24px;text-align:center;border:1px dashed var(--border);border-radius:8px;margin-top:20px}.map-empty p{max-width:540px;margin:12px auto}#mapsWorkspace #mapCanvas{overflow:hidden}#mapsWorkspace [hidden]{display:none!important}

.view-applied .pane-resize{display:none!important}.view-applied .pane-move-handle{cursor:default}.view-applied .pane-move-handle::before{visibility:hidden}

.group-picker{padding:0 22px 14px}.group-picker>label{font-size:15px;font-weight:600;display:block}.group-picker select{margin-top:12px;font-size:14px;font-weight:400}.site-access-field{flex:1 1 100%;min-width:0}.site-access-field>span{display:block;font-size:13px;margin-bottom:8px}.site-access-field small{display:block;color:var(--muted);margin-top:8px}.site-access-field details{border:1px solid var(--border);border-radius:7px;background:var(--panel)}.site-access-field summary{padding:12px;cursor:pointer;font-size:14px}.site-access-menu{padding:12px;border-top:1px solid var(--border)}#siteAccessSearch{margin:12px 0}#siteAccessOptions{max-height:260px;overflow:auto}.feature-card form label.site-access-option{display:flex;align-items:center;gap:10px;margin:0;padding:9px 4px;font-size:13px;min-width:0;cursor:pointer}.site-access-option input{width:17px;height:17px;min-height:17px;flex:0 0 17px;margin:0;padding:0}.site-access-option span{overflow-wrap:anywhere}@media(max-width:740px){.group-picker{padding-left:18px;padding-right:18px}}

.map-pin{width:auto;min-width:30px;max-width:180px;padding:0 8px;border-radius:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-camera-preview{position:fixed;z-index:1200;width:260px;max-width:calc(100vw - 16px);padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:0 8px 30px #0006;pointer-events:none;line-height:1.4}.map-camera-preview[hidden]{display:none}.map-camera-preview strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.map-camera-preview img{width:100%;height:146px;object-fit:contain;background:#080d14;margin:8px 0;display:block;border-radius:5px}.map-camera-preview small{color:var(--muted);font-size:12px}.map-pin-labels{margin-top:18px}.map-pin-label-row{display:flex;align-items:center;gap:15px;margin:10px 0;font-size:13px}.map-pin-label-row span{flex:1;min-width:0}.map-pin-label-row input{width:180px;max-width:45%}

.map-link{background:#18795e;border-color:#c3f2dd;max-width:220px}#newSiteMap{margin:0 18px 16px 0}#mapLinkList:empty{display:none}

.review-transport{margin:18px 0;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--panel);gap:10px}.review-transport label{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}.review-transport select{width:90px}.review-transport button{min-height:42px}.review-transport #requestedTime{min-width:190px}

.site-workspace-summary{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.site-workspace-summary .eyebrow{font-size:10px;margin-bottom:7px}.site-workspace-summary h1{font-size:20px;line-height:1.3;margin:0 0 8px;overflow-wrap:anywhere}.site-workspace-summary p{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 10px}.site-workspace-summary .pill{display:inline-block;font-size:11px}

/* Monitor-only controls in the shared camera wall. */
#investigationReviewHost .saved-layout-tools,
#investigationReviewHost .tour-tools{display:none}

.door-pane-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:7px 10px;background:var(--panel);border-top:1px solid var(--border);font-size:12px}.door-pane-tools[hidden]{display:none}.door-pane-tools span{flex:1;min-width:120px}.door-pane-tools button{padding:5px 8px;font-size:12px}.map-door-pin{background:#324e83;max-width:240px}.map-door-pin.door-open{background:#a75516}#rs2DoorList{max-height:350px;overflow:auto;margin-top:16px}#rs2Admin label{margin-top:14px}

#configTab[hidden]{display:none}#configurationWorkspace>.feature-card{max-width:1000px}

.door-pane-tools .door-last-scan{font-size:11px;color:var(--muted);flex:2;min-width:180px;overflow-wrap:anywhere}.door-pane-tools .door-last-scan[hidden]{display:none}.door-last-scan.scan-denied{color:#ce683d}

#accessAdminTab[hidden]{display:none}.access-admin-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,2fr);gap:20px}#accessAdminWorkspace>label{max-width:500px}#accessAdminWorkspace fieldset{width:100%;border:1px solid var(--border);border-radius:6px;max-height:260px;overflow:auto;padding:14px}#accessAdminWorkspace fieldset label{display:flex;align-items:center;gap:8px;min-width:0;margin:8px 0}#accessAdminWorkspace fieldset input{width:17px;height:17px;min-height:17px}#acResults{display:flex;flex-direction:column;gap:8px;margin:16px 0;max-height:400px;overflow:auto}#acCardForm[hidden]{display:none}#acHolderForm>label:has(textarea),#acCardForm>label:has(textarea){flex-basis:100%}@media(max-width:1050px){.access-admin-grid{grid-template-columns:1fr}}

.map-door-pin{display:inline-flex;align-items:center;gap:6px}.map-door-icon{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.map-door-caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Stateful floor-plan door markers; label is optional and below the icon. */
.map-pin.map-door-pin{--door-color:#57dba1;--door-size:48px;--door-opacity:.82;display:flex;justify-content:center;align-items:center;width:var(--door-size);height:var(--door-size);min-width:0;max-width:none;padding:7px;border-radius:12px;color:var(--door-color);background:color-mix(in srgb,var(--door-color) 15%,#132431 85%);border:1px solid color-mix(in srgb,var(--door-color) 70%,transparent);opacity:var(--door-opacity);overflow:visible;box-shadow:0 3px 10px #0005,0 0 0 3px color-mix(in srgb,var(--door-color) 10%,transparent);transition:background .2s,color .2s,opacity .2s,box-shadow .2s}
.map-pin.map-door-pin[data-state=unlocked]{--door-color:#65adff}.map-pin.map-door-pin[data-state=forced]{--door-color:#ff5268}.map-pin.map-door-pin[data-state=alarm]{--door-color:#ffc361}.map-pin.map-door-pin[data-state=unknown]{--door-color:#b4bcc8;border-style:dashed}.map-pin.map-door-pin:hover,.map-pin.map-door-pin:focus-visible{opacity:1;box-shadow:0 4px 18px #0007,0 0 0 4px color-mix(in srgb,var(--door-color) 28%,transparent)}
.map-door-pin .map-door-icon{width:100%;height:100%;flex:1;stroke-width:1.6;filter:drop-shadow(0 1px 2px #0005)}.map-door-pin .door-leaf{fill:color-mix(in srgb,var(--door-color) 18%,transparent)}.map-door-pin .map-door-caption{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);max-width:180px;width:max-content;padding:4px 7px;border-radius:5px;background:#12202ee8;color:#fff;font-size:11px;line-height:1.4;box-shadow:0 2px 6px #0003}.map-door-caption[hidden]{display:none}
.door-icon-editor{border-top:1px solid var(--border);padding:10px 0}.door-icon-options{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.door-icon-options label{font-size:12px}.door-icon-options .checkbox-label{display:flex;align-items:center;gap:8px}.door-icon-options input[type=range]{padding:0;min-height:20px;height:20px;width:130px}.door-map-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;font-size:12px;color:var(--muted)}.door-map-legend [data-state=normal]{color:#219e6a}.door-map-legend [data-state=unlocked]{color:#3989db}.door-map-legend [data-state=forced]{color:#e3324e}.door-map-legend [data-state=alarm]{color:#bc7a18}.door-map-legend small{flex-basis:100%}
.sidebar{overflow-y:auto}.sidebar-section{flex-shrink:0;border-bottom:1px solid var(--border)}.sidebar-section>summary{padding:18px 22px;font-weight:600;cursor:pointer}.sidebar-section>summary span{float:right;color:var(--muted)}.sidebar-section .camera-list{max-height:45vh;overflow:auto}.site-resource-list{display:flex;flex-direction:column;gap:6px;padding:0 16px 16px;max-height:300px;overflow:auto}.site-resource-list button{text-align:left;font-size:12px}.site-resource-list [data-state=forced]{border-left:4px solid #ff5268}.site-resource-list [data-state=unlocked]{border-left:4px solid #65adff}.site-resource-list [data-state=normal]{border-left:4px solid #57dba1}
#mapConfigTab[hidden]{display:none}.map-camera-pin{width:44px;height:44px;padding:8px;border-radius:12px;background:#153849dc;color:#68d2ef;overflow:visible;border:1px solid #68d2ef;opacity:.85}.map-camera-pin:hover{opacity:1}.map-camera-pin svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}.map-camera-caption{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);background:#12202ee8;color:white;padding:5px;border-radius:5px;max-width:180px;font-size:11px;line-height:1.3}.map-camera-caption[hidden]{display:none}.map-fovs{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.map-fovs polygon{fill:#39bbd52b;stroke:#50cce7;stroke-width:2;vector-effect:non-scaling-stroke}.map-fovs circle{fill:white;stroke:#208ba4;stroke-width:2;pointer-events:all;cursor:move}.camera-map-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;align-items:center}.camera-map-options label{display:flex;gap:8px;align-items:center;font-size:12px}.camera-map-options input{width:auto}#fovTools{position:sticky;top:0;background:var(--panel);padding:16px;border:1px solid var(--accent);z-index:5}.door-large-status{text-align:center;padding:30px;font-size:48px;color:#57dba1;background:#152b32;border-radius:14px;margin:15px 0}.door-large-status[data-state=forced]{color:#ff5268}.door-large-status[data-state=unlocked]{color:#65adff}.door-large-status[data-state=unknown]{color:#b4bcc8}.door-large-status[data-state=alarm]{color:#ffc361}

.map-pin.map-camera-pin{width:var(--camera-size,44px);height:var(--camera-size,44px);opacity:var(--camera-opacity,.85)}.camera-map-options input[type=range]{width:100px;min-height:20px;padding:0}.map-camera-pin:hover{opacity:1}

.door-large-status svg{display:block;width:100px;height:100px;margin:0 auto 16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.map-config .map-camera-pin,.map-config .map-door-pin{cursor:grab;touch-action:none;user-select:none}.map-config .map-pin.map-dragging{cursor:grabbing;z-index:10;opacity:1;box-shadow:0 0 0 4px #65adff80}

#mapCanvas.map-drop-ready{outline:3px solid #57dba1;outline-offset:3px}.site-resource-list button[draggable=true]{cursor:grab}

.map-pin.map-lockdown-pin{width:48px;height:48px;padding:9px;overflow:visible;border-radius:12px;background:#502330df;border:2px dashed #ff7985;color:#ffb8bf}.map-lockdown-pin.lockdown-lift{background:#163c52df;border-color:#70c1f8;color:#a9ddff}.map-lockdown-pin svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.map-config .map-lockdown-pin{cursor:grab;touch-action:none;user-select:none}
/* Map configuration: canvas and selection inspector. */
.map-editor-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--panel);z-index:15}.map-editor-bar h3{flex-basis:100%;margin:0;font-size:14px}.map-editor-bar>label{min-width:140px;max-width:220px;font-size:12px}.map-editor-bar button{white-space:nowrap}.editor-save-state{font-size:12px;color:var(--muted);margin-left:auto}.editor-save-state.unsaved{color:#dfaa55}.map-editor-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding-top:16px}.editor-active .map-editor-grid{grid-template-columns:minmax(0,1fr) 285px}.map-editor-stage{min-width:0}.map-inspector{border-left:1px solid var(--border);padding:0 0 12px 18px;max-height:calc(100vh - 220px);overflow:auto;position:sticky;top:130px;align-self:start}.map-inspector h3{font-size:14px;margin:10px 0}.map-inspector p{font-size:12px;line-height:1.5}.map-inspector-fields>div:empty{display:none}.map-inspector .map-pin-label-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin:10px 0}.map-inspector .map-pin-label-row input{width:100%;max-width:none}.map-inspector .camera-map-options,.map-inspector .door-icon-options{display:flex;flex-direction:column;align-items:stretch;gap:12px}.map-inspector .camera-map-options label,.map-inspector .door-icon-options label{display:flex;justify-content:space-between;gap:10px}.map-inspector input[type=range]{width:125px}.map-inspector .map-pin-labels{margin-top:0}.map-inspector .door-icon-editor{border:0;padding:0}.map-inspector [hidden]{display:none!important}.map-placed-items{display:flex;flex-direction:column;gap:5px;max-height:260px;overflow:auto;margin-top:10px}.map-placed-items button{text-align:left;font-size:12px;padding:9px}.map-placed-items small{display:block;color:var(--muted);margin-top:3px}.map-placed-items .selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel))}.map-pin.map-item-selected{outline:3px solid #f4c969;outline-offset:4px}.map-canvas-toolbar{display:flex;gap:8px;align-items:center;margin:10px 0}.map-canvas-toolbar span{min-width:42px;text-align:center;font-size:12px}.map-viewport{overflow:auto;max-height:calc(100vh - 280px);min-height:280px;background:#080f18;border-radius:8px;overscroll-behavior:contain}.map-viewport #mapCanvas{margin:0;border:0;min-height:0}.map-viewport.pan-mode{cursor:grab}.map-editor-guide{font-size:12px!important;margin:12px 0!important}.map-editor-stage #mapEditor{margin:0!important}.map-add-tools,.map-manual-tools{border-bottom:1px solid var(--border);padding:9px 0;font-size:13px}.map-add-tools summary,.map-manual-tools summary{cursor:pointer}.map-add-tools p{font-size:12px}.map-preview .map-inspector,.map-preview #mapEditor,.map-preview .map-add-tools,.map-preview .map-manual-tools,.map-preview .map-editor-guide{display:none}.map-preview .map-editor-grid{grid-template-columns:minmax(0,1fr)}.map-preview .map-item-selected{outline:none}.map-preview-notice{padding:10px;background:var(--panel);border:1px solid var(--border);font-size:12px}.map-editor-stage #mapHint{font-size:12px;margin:8px 0}.map-editor-stage #fovTools{position:sticky;top:120px;padding:10px}.map-editor-stage #fovTools p{font-size:12px;margin:6px 0}.map-editor-stage #mapForm{padding:12px 0}.map-editor-bar [hidden]{display:none!important}@media(max-width:1150px){.editor-active .map-editor-grid{grid-template-columns:minmax(0,1fr) 240px}.map-inspector{padding-left:12px}.map-editor-bar{position:static}.map-inspector{top:10px}}@media(max-width:850px){.editor-active .map-editor-grid{grid-template-columns:1fr}.map-inspector{position:static;max-height:none;border-left:0;border-top:1px solid var(--border);padding:14px 0}.map-viewport{max-height:60vh}}
#mapsWorkspace .workspace-title{margin-bottom:16px}#mapsWorkspace .workspace-title h2{font-size:26px;margin:4px 0}#mapsWorkspace .workspace-title p{font-size:13px;margin:6px 0}#mapsWorkspace .map-card{padding:16px}.map-editor-bar #newSiteMap{margin:0}.map-editor-bar>label{margin:0!important}.map-editor-stage .map-viewport #mapCanvas{margin:0 auto}.map-inspector .checkbox-label{justify-content:flex-start!important;align-items:center}.map-inspector .checkbox-label input{width:16px;min-height:16px;height:16px;flex:none}.map-inspector-fields{overflow-wrap:anywhere}.map-inspector .map-pin-label-row span{font-size:12px;color:var(--muted)}

/* Investigation controls are attached to the viewer, with no intervening quality bar. */
#investigationReviewHost #reviewPanel{margin:0;border:0;border-top:1px solid var(--border);border-radius:0;padding:10px 14px;background:var(--panel);display:flex;flex-direction:column}
#investigationReviewHost #playbackTools{order:0}
#investigationReviewHost .review-top{order:1;margin-top:10px}
#investigationReviewHost .timeline-heading{margin:0 0 6px}
#investigationReviewHost #timelineCanvas{height:80px}
#investigationReviewHost .clip-tools{margin-top:4px;padding:8px}
#investigationReviewHost .clip-fields{margin-top:8px}
#investigationReviewHost .review-transport{margin:8px 0;padding:8px}
#investigationReviewHost .camera-wall{max-height:48vh;overflow:auto}
#investigationReviewHost .wall-controls{border-top:1px solid var(--border)}

#investigationsWorkspace>.workspace-title{margin:0 0 12px}
#investigationsWorkspace>.workspace-title .eyebrow,#investigationsWorkspace>.workspace-title p{display:none}
#investigationReviewHost .camera-wall:not(.custom-wall){height:clamp(240px,38vh,480px);max-height:none;grid-template-rows:minmax(0,1fr)}
#investigationReviewHost .camera-wall:not(.custom-wall).layout-4{grid-template-rows:repeat(2,minmax(0,1fr))}
#investigationReviewHost .camera-wall:not(.custom-wall).layout-9{grid-template-rows:repeat(3,minmax(0,1fr))}
#investigationReviewHost .camera-wall:not(.custom-wall).layout-16{grid-template-rows:repeat(4,minmax(0,1fr))}
#investigationReviewHost .camera-wall:not(.custom-wall) .camera-pane{display:flex;flex-direction:column;min-height:0}
#investigationReviewHost .camera-wall:not(.custom-wall) .pane-stage{flex:1;min-height:0;max-height:none;aspect-ratio:auto}

/* Desktop preset walls share the available height instead of growing with width. */
@media(min-width:1000px){
 #monitorWorkspace .wall-panel:not(:has(.custom-wall)){height:var(--monitor-wall-height,calc(100dvh - 150px));display:flex;flex-direction:column}
 #monitorWorkspace .wall-panel:not(:has(.custom-wall))>.camera-wall{flex:1;min-height:0;grid-template-rows:minmax(0,1fr);overflow:auto}
 #monitorWorkspace .wall-panel:not(:has(.custom-wall))>.layout-4{grid-template-rows:repeat(2,minmax(0,1fr))}
 #monitorWorkspace .wall-panel:not(:has(.custom-wall))>.layout-9{grid-template-rows:repeat(3,minmax(0,1fr))}
 #monitorWorkspace .wall-panel:not(:has(.custom-wall))>.layout-16{grid-template-rows:repeat(4,minmax(0,1fr))}
 #monitorWorkspace .camera-wall:not(.custom-wall) .camera-pane{display:flex;flex-direction:column;min-height:0}
 #monitorWorkspace .camera-wall:not(.custom-wall) .pane-stage{flex:1;aspect-ratio:auto;min-height:0;max-height:none}
 #monitorWorkspace .camera-wall:not(.custom-wall) .pane-heading,#monitorWorkspace .camera-wall:not(.custom-wall) .pane-caption,#monitorWorkspace .camera-wall:not(.custom-wall) .pane-tools,#monitorWorkspace .camera-wall:not(.custom-wall) .door-pane-tools{flex-shrink:0}
 #monitorWorkspace #reviewPanel{display:none}
 #monitorWorkspace .wall-panel>.wall-toolbar,#monitorWorkspace .wall-panel>.wall-controls,#monitorWorkspace .wall-panel>.saved-layout-tools,#monitorWorkspace .wall-panel>.tour-tools{flex-shrink:0}
 #monitorWorkspace .camera-wall:not(.custom-wall).has-maximized .camera-pane.maximized{height:100%}
 #monitorWorkspace .camera-wall:not(.custom-wall):fullscreen{height:100vh;max-height:none}
}
@media(min-width:1000px) and (max-height:850px){
 #monitorWorkspace .saved-layout-tools,#monitorWorkspace .tour-tools{padding:7px 10px;gap:6px}
 #monitorWorkspace .saved-layout-tools button,#monitorWorkspace .tour-tools button{padding:6px 8px;font-size:12px}
 #monitorWorkspace .saved-layout-tools select{width:155px;min-height:32px;font-size:12px}
 #monitorWorkspace .saved-layout-tools #layoutHint{display:none}
 #monitorWorkspace .wall-toolbar,#monitorWorkspace .wall-controls{padding:7px 10px}
 #monitorWorkspace .pane-tools{flex-wrap:nowrap;overflow-x:auto;padding:4px;flex-shrink:0}
 #monitorWorkspace .pane-tools>*{flex-shrink:0}
 #monitorWorkspace .pane-caption{padding:3px 7px;min-height:20px}
 #monitorWorkspace .door-pane-tools{padding:3px 7px;font-size:11px;gap:4px;flex-wrap:nowrap;overflow-x:auto}
 #monitorWorkspace .door-pane-tools>*{flex-shrink:0}
}
@media(min-width:1000px) and (max-height:850px){
 #monitorWorkspace .saved-layout-tools{flex-wrap:nowrap;overflow-x:auto}
 #monitorWorkspace .saved-layout-tools>*{flex-shrink:0;white-space:nowrap}
 #monitorWorkspace .door-pane-tools>*{white-space:nowrap;max-width:none}
 #monitorWorkspace .door-pane-tools button{padding:3px 6px;font-size:10px}
 #monitorWorkspace .pane-tools button{padding:3px 5px;font-size:10px}
 #monitorWorkspace .pane-tools input{min-height:22px;height:22px}
}

/* Panora: a geometric monogram joining multiple system segments. */
.brand{flex-shrink:0;gap:11px}.panora-mark{display:block;width:36px;height:36px;flex:none}.panora-wordmark{font-weight:650;letter-spacing:.19em}.topbar .panora-wordmark{font-size:17px}.login-brand{display:flex;align-items:center;gap:17px;margin-bottom:18px}.login-brand h1{margin:0;font-size:27px}.login-card .brand-tagline{color:var(--muted);font-size:14px;letter-spacing:.06em;margin-bottom:28px}

/* Center the login brand without changing form alignment. */
.login-card .login-brand{justify-content:center}
.login-card .brand-tagline{text-align:center}

/* Give recording review a proportional video area on large monitors. */
#investigationReviewHost .camera-wall:not(.custom-wall){height:max(300px,min(52dvh,calc(100dvh - 620px)))}
#investigationReviewHost .camera-wall.has-maximized:not(.custom-wall) .camera-pane.maximized{height:100%}
#investigationReviewHost #timelineCanvas{height:100px}
@media(max-height:850px){#investigationReviewHost .camera-wall:not(.custom-wall){height:max(260px,48dvh)}}
@media(max-width:740px){#investigationReviewHost .camera-wall:not(.custom-wall){height:380px}}

/* Light-theme text and state contrast across every workspace. */
[data-theme=light] .mode-tabs{background:#e8eef6;border-color:#aebdd0}
[data-theme=light] .mode{color:#243d60}
[data-theme=light] .mode:hover:not(:disabled){background:#dceaff}
[data-theme=light] .mode.active{background:#245ba8;color:#fff}
[data-theme=light] .pane-state.live,[data-theme=light] .video-state.live{color:#17664e}
[data-theme=light] .pane-state,[data-theme=light] .pane-number,[data-theme=light] .pane-overlay p,
[data-theme=light] .review-top>span,[data-theme=light] .timeline-heading span,[data-theme=light] .timeline-legend span:last-child,
[data-theme=light] .transport span,[data-theme=light] .review-disclaimer,[data-theme=light] .workspace-title p,
[data-theme=light] .case-card span,[data-theme=light] .bookmark-card small,[data-theme=light] .event-card small,
[data-theme=light] .muted,[data-theme=light] .empty-feature p,[data-theme=light] .integration-info,
[data-theme=light] dialog p,[data-theme=light] .export-job small{color:#52657c}
[data-theme=light] .bookmark-card p,[data-theme=light] .event-card p,[data-theme=light] .empty-feature,
[data-theme=light] .integration-info summary,[data-theme=light] .case-notes-section>summary,[data-theme=light] .export-job p{color:#243d60}
[data-theme=light] .timeline-legend,[data-theme=light] .clip-fields span,[data-theme=light] .export-job.ready p{color:#17664e}
[data-theme=light] .timeline-legend .event-color{color:#80510b}
[data-theme=light] .clip-fields .invalid,[data-theme=light] .export-job.failed p,[data-theme=light] .door-last-scan.scan-denied{color:#a12d3e}
[data-theme=light] .event-notice,[data-theme=light] .integration-info{background:#edf3fb;color:#243d60;border-color:#b5c7de}
[data-theme=light] .event-card .event-badge{background:#fff0cc;color:#754a00}
[data-theme=light] .pill{color:#52657c;border-color:#aebdd0}
[data-theme=light] .pill.connected{color:#16634d;border-color:#9acdb9}
[data-theme=light] .pill.failed{background:#fff0f0;color:#882e42;border-color:#d3a5ae}
[data-theme=light] input::placeholder,[data-theme=light] textarea::placeholder{color:#62748b;opacity:1}
[data-theme=light] .door-map-legend [data-state=normal]{color:#17664e}
[data-theme=light] .door-map-legend [data-state=unlocked]{color:#245ba8}
[data-theme=light] .door-map-legend [data-state=forced]{color:#a12d3e}
[data-theme=light] .door-map-legend [data-state=alarm],[data-theme=light] .editor-save-state.unsaved{color:#80510b}

[data-theme=light] .camera-preview-placeholder{color:#c5d6ed}

/* Panora brand palette: turquoise accents, with semantic alarm colours retained. */
:root{--accent:#67e4e2;--accent-ink:#102c31;--accent-hover:#8aefec;--accent-soft:#163b40;--accent-border:#388e91;--blue:#67e4e2}
[data-theme=light]{--accent:#67e4e2;--accent-ink:#102c31;--accent-hover:#8aefec;--accent-soft:#d9f3f0;--accent-border:#4f9696;--blue:#096d70;--bg:#edf5f4;--border:#c6d8d6}
.accent-button,.primary-button{background:var(--accent);border-color:var(--accent-border);color:var(--accent-ink)}
.accent-button:hover:not(:disabled),.primary-button:hover:not(:disabled){background:var(--accent-hover);color:var(--accent-ink)}
.tab.active,.mode.active,.layout-button.active,.camera-button.active,.case-card.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}
.camera-pane.selected{border-color:var(--accent)}
.pane-resize{background:#197d81;color:#fff}
.pane-tools button:hover:not(:disabled),.secondary-button:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-border)}
input[type=checkbox],input[type=range],#timelineScrubber{accent-color:var(--blue)}
.app-tabs .tab:focus-visible{outline-color:var(--blue)}
.clip-actions .placing{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}
[data-theme=light] .tab.active,[data-theme=light] .mode.active,[data-theme=light] .layout-button.active,[data-theme=light] .camera-button.active,[data-theme=light] .case-card.active{background:var(--accent-soft);color:#07585b;border-color:var(--accent-border)}
[data-theme=light] .camera-pane.selected{border-color:#118286}
[data-theme=light] .text-button{color:#096d70}
[data-theme=light] .secondary-button,[data-theme=light] .pane-tools button,[data-theme=light] .layout-button,[data-theme=light] .timeline-nav button,[data-theme=light] .timeline-nav select{background:#eef8f6;color:#204b50;border-color:#adcfc9}
[data-theme=light] .secondary-button:hover:not(:disabled),[data-theme=light] .pane-tools button:hover:not(:disabled),[data-theme=light] .camera-button:hover,[data-theme=light] .mode:hover:not(:disabled){background:#d9f3f0;color:#07585b}
[data-theme=light] .layout-button.active{background:var(--accent-soft);border-color:var(--accent-border)}
[data-theme=light] .clip-actions .placing{background:var(--accent-soft);color:#07585b;border-color:var(--accent-border)}
[data-theme=light] .mode-tabs{background:#e4f1ef;border-color:#adcfc9}
[data-theme=light] .camera-wall{background:#d9e6e3}
[data-theme=light] .topbar,[data-theme=light] .sidebar,[data-theme=light] .pane-heading,[data-theme=light] .pane-tools,[data-theme=light] .pane-caption,[data-theme=light] .wall-toolbar,[data-theme=light] .wall-controls,[data-theme=light] .saved-layout-tools{background:#f6faf9}
[data-theme=light] .event-notice,[data-theme=light] .integration-info{background:#eef8f6;color:#204b50;border-color:#adcfc9}
::selection{background:#67e4e255}

/* Neutral white light mode; turquoise is reserved for interaction accents. */
[data-theme=light]{--bg:#fff;--panel:#fff;--border:#d8dfe7}
[data-theme=light] .topbar,[data-theme=light] .sidebar,[data-theme=light] .pane-heading,[data-theme=light] .pane-tools,[data-theme=light] .pane-caption,[data-theme=light] .wall-toolbar,[data-theme=light] .wall-controls,[data-theme=light] .saved-layout-tools{background:#fff}
[data-theme=light] .secondary-button,[data-theme=light] .pane-tools button,[data-theme=light] .layout-button,[data-theme=light] .timeline-nav button,[data-theme=light] .timeline-nav select{background:#fff;color:#243d60;border-color:#bdc9d7}
[data-theme=light] .camera-wall,[data-theme=light] .mode-tabs{background:#f1f3f6}
[data-theme=light] .event-notice,[data-theme=light] .integration-info{background:#f7f8fa;color:#243d60;border-color:#d8dfe7}
[data-theme=light] .layout-button.active{background:var(--accent-soft);color:#07585b;border-color:var(--accent-border)}

/* Independent accent choice. Surface colours remain controlled by light/dark mode. */
:root,:root[data-accent=blue]{--accent:#3268bf;--accent-ink:#fff;--accent-hover:#24569f;--accent-soft:#1b3557;--accent-border:#588acf;--accent-highlight:#9dc5ff;--accent-link:#9dc5ff;--timeline-accent:#82b3ff;--timeline-selection:#64b5ff30;--blue:var(--accent-link)}
:root[data-accent=turquoise]{--accent:#67e4e2;--accent-ink:#102c31;--accent-hover:#8aefec;--accent-soft:#163b40;--accent-border:#388e91;--accent-highlight:#67e4e2;--accent-link:#67e4e2;--timeline-accent:#67e4e2;--timeline-selection:#67e4e230}
:root[data-accent=red]{--accent:#b82e43;--accent-ink:#fff;--accent-hover:#972237;--accent-soft:#48212d;--accent-border:#c85e6c;--accent-highlight:#ffacb5;--accent-link:#ffacb5;--timeline-accent:#ff8e9d;--timeline-selection:#ff8e9d30}
:root[data-accent=orange]{--accent:#ad4908;--accent-ink:#fff;--accent-hover:#8d3905;--accent-soft:#422d1d;--accent-border:#d88240;--accent-highlight:#ffc083;--accent-link:#ffc083;--timeline-accent:#ffb36b;--timeline-selection:#ffb36b30}
:root[data-theme=light][data-accent=blue]{--accent-soft:#dceaff;--accent-highlight:#174b91;--accent-link:#245ba8}
:root[data-theme=light][data-accent=turquoise]{--accent-soft:#d9f3f0;--accent-highlight:#07585b;--accent-link:#096d70}
:root[data-theme=light][data-accent=red]{--accent-soft:#fce6e9;--accent-highlight:#8f2032;--accent-link:#9d263a}
:root[data-theme=light][data-accent=orange]{--accent-soft:#ffecd9;--accent-highlight:#813706;--accent-link:#934007}
.tab.active,.mode.active,.layout-button.active,.camera-button.active,.case-card.active,.clip-actions .placing,
[data-theme=light] .tab.active,[data-theme=light] .mode.active,[data-theme=light] .layout-button.active,[data-theme=light] .camera-button.active,[data-theme=light] .case-card.active,[data-theme=light] .clip-actions .placing{background:var(--accent-soft);color:var(--accent-highlight);border-color:var(--accent-border)}
[data-theme=light] .text-button{color:var(--accent-link)}
.camera-pane.selected,[data-theme=light] .camera-pane.selected{border-color:var(--accent-border)}
[data-theme=light] .secondary-button:hover:not(:disabled),[data-theme=light] .pane-tools button:hover:not(:disabled),[data-theme=light] .camera-button:hover,[data-theme=light] .mode:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-highlight)}
.pane-resize{background:var(--accent);color:var(--accent-ink)}
::selection{background:var(--accent-soft);color:var(--accent-highlight)}
.topbar{gap:18px}.topbar .app-tabs{flex:1;min-width:0;overflow-x:auto}.topbar .app-tabs .tab{flex-shrink:0;white-space:nowrap}.topbar .top-right{margin-left:0;white-space:nowrap}
.theme-picker{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;flex-shrink:0}.theme-picker select{width:112px;min-height:36px;font-size:13px;padding:6px 8px}#themeToggle{flex-shrink:0;white-space:nowrap}
@media(max-width:740px){.topbar .app-tabs{flex-basis:100%;order:3}.theme-picker{margin-left:auto}}

.site-config-grid{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:20px}.site-config-grid form label{margin-top:14px}.site-config-grid .scroll-results{max-height:65vh;overflow:auto}@media(max-width:1000px){.site-config-grid{grid-template-columns:1fr}}

.ac-members-scroll{overflow:auto;max-height:420px}.ac-members-table{width:100%;border-collapse:collapse;text-align:left}.ac-members-table th,.ac-members-table td{padding:10px 14px;border-bottom:1px solid var(--border)}

.wall-map-canvas{position:relative;flex:none;margin:auto;transform-origin:center}.wall-map-canvas>img{display:block;width:100%;height:100%}.camera-pane.map-pane .pane-stage{display:flex;align-items:center;justify-content:center;overflow:hidden}.camera-pane.map-pane .pane-tools>button:not([aria-label="Maximize or restore this pane"]):not([aria-label="Zoom out"]):not([aria-label="Reset digital zoom"]):not([aria-label="Zoom in (digital)"]),.camera-pane.map-pane .pane-tools>label{display:none}.wall-map-canvas .map-fovs{pointer-events:none}.camera-pane.map-pane video{display:none}

.door-area-dialog{width:min(900px,94vw);max-height:94dvh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:24px}.door-area-editor{position:relative;max-width:100%;width:fit-content;margin:auto;touch-action:none;cursor:crosshair;line-height:0}.door-area-editor img{max-width:100%;max-height:60dvh;display:block}.door-area-editor svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.door-area-editor polygon{fill:#22b978;stroke:#118451;stroke-width:3;vector-effect:non-scaling-stroke}.camera-door-area{position:absolute;pointer-events:none;z-index:3;transform-origin:center;color:#8594a5}.camera-door-area polygon{fill:currentColor;stroke:currentColor;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:auto;cursor:pointer}.camera-door-area polygon:focus{outline:none;stroke-width:5}.camera-door-area[data-state=normal]{color:#24bb79}.camera-door-area[data-state=unlocked]{color:#3294ff}.camera-door-area[data-state=forced]{color:#ee394b}.camera-door-area[data-state=alarm],.camera-door-area[data-state=held]{color:#e6a329}.camera-pane button[hidden]{display:none!important}

.door-area-editor circle{fill:white;stroke:#118451;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:all;cursor:grab}.door-area-editor circle:active{cursor:grabbing}

/* Keep scan names and history readable in every accent and display mode. */
.door-pane-tools .door-last-scan,[data-theme=light] .door-pane-tools .door-last-scan,.door-dialog-scan,[data-theme=light] .door-dialog-scan{font-weight:700;color:var(--accent-link)}
.map-pin.map-alarm-pin{width:48px;height:48px;padding:9px;overflow:visible;border-radius:12px;background:#193a53e8;border:2px solid #69bafa;color:#b7e2ff}.map-alarm-pin.lockdown-lift{background:#184c43e8;border-color:#70dbc0;color:#b7ffee}.map-alarm-pin svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.map-config .map-alarm-pin{cursor:grab;touch-action:none;user-select:none}

.session-expiry-notice {position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:10000;padding:14px 20px;background:#fff3cd;color:#473500;border:1px solid #b08900;border-radius:8px;max-width:90vw;}
