:root{--surface:#faf8ff;--surface-low:#f2f3ff;--surface-high:#e7e7f4;--surface-lowest:#fff;--on-surface:#191b24;--on-surface-variant:#424656;--outline:#737687;--outline-variant:#c3c6d8;--primary:#0f62fe;--primary-dark:#0043ce;--success:#24a148;--warning:#f1c21b;--danger:#da1e28;--danger-dark:#a2191f;--sidebar:#262626;--sidebar-active:#393939;--sidebar-width:256px;--space-unit:4px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--surface-low);color:var(--on-surface);font-family:IBM Plex Sans,Arial,sans-serif;font-size:14px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:#fff;flex-direction:column;height:100vh;min-height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid #525252;align-items:center;gap:12px;min-height:80px;padding:16px 20px;display:flex}.brand-mark{background:var(--primary);justify-content:center;align-items:center;width:40px;height:40px;font-family:IBM Plex Mono,monospace;font-weight:600;display:flex}.brand strong,.brand span{display:block}.brand strong{font-size:18px;line-height:24px}.brand div span{color:#c6c6c6;letter-spacing:.3px;font-size:11px}.sidebar nav{flex:1;padding-top:12px}.nav-item{color:#c6c6c6;text-align:left;background:0 0;border:0;align-items:center;gap:14px;width:100%;height:44px;padding:0 20px;display:flex;position:relative}.nav-item:hover{color:#fff;background:#333}.nav-item-active{background:var(--sidebar-active);color:#fff}.nav-item-active:before{background:var(--primary);content:"";width:4px;position:absolute;inset:0 auto 0 0}.icon{fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.7px;width:20px;height:20px}.language-toggle{border-top:1px solid #525252;gap:1px;padding:12px 20px;display:flex}.language-toggle button{color:#a8a8a8;cursor:pointer;letter-spacing:.08em;background:0 0;border:1px solid #525252;flex:1;padding:6px 0;font-family:IBM Plex Mono,monospace;font-size:11px;transition:background-color .12s,color .12s}.language-toggle button:hover{color:#f4f4f4}.language-option-active{background-color:var(--primary);border-color:var(--primary);color:#fff}.sidebar-system{color:#f4f4f4;border-top:1px solid #525252;padding:16px 20px}.system-label{color:#8d8d8d;margin-bottom:8px;font-family:IBM Plex Mono,monospace;font-size:10px;display:block}.sidebar-system small{color:#a8a8a8;margin:4px 0 0 14px;font-size:11px;display:block}.status-dot{background:var(--success);width:8px;height:8px;margin-right:6px;display:inline-block}.operator{border-top:1px solid #525252;align-items:center;gap:10px;min-height:72px;padding:12px 20px;display:flex}.avatar{background:var(--primary);justify-content:center;align-items:center;width:36px;height:36px;font-family:IBM Plex Mono,monospace;display:flex}.operator strong,.operator span{display:block}.operator div span{color:#a8a8a8;margin-top:2px;font-size:11px}main{min-width:0}.topbar{background:var(--surface);border-bottom:1px solid var(--outline-variant);z-index:5;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex;position:sticky;top:0}.eyebrow{color:var(--on-surface-variant);letter-spacing:.7px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;display:block}h1,h2{margin:0}h1{font-size:20px;font-weight:600}h2{font-size:16px;font-weight:600}.topbar-actions{align-items:center;gap:8px;display:flex}.source-badge{border:1px solid var(--warning);color:#684e00;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:10px}.icon-button{color:var(--on-surface);background:0 0;border:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:relative}.icon-button:hover{background:var(--surface-high)}.notification-button>span{background:var(--danger);color:#fff;justify-content:center;align-items:center;width:15px;height:15px;font-size:9px;display:flex;position:absolute;top:2px;right:3px}.dashboard-content{max-width:1600px;margin:0 auto;padding:20px 24px 40px}.metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin-bottom:12px;display:grid}.metrics article{background:var(--surface-lowest);border:1px solid var(--outline-variant);flex-direction:column;min-height:108px;padding:12px 16px;display:flex}.metrics article>span{color:var(--on-surface-variant);letter-spacing:.4px;text-transform:uppercase;font-size:11px;font-weight:600}.metrics strong{margin-top:auto;font-size:32px;font-weight:300;line-height:40px}.metrics small{color:var(--on-surface-variant);font-family:IBM Plex Mono,monospace;font-size:10px}.danger-value{color:var(--danger)}.health-dot{width:7px;height:7px;margin-right:5px;display:inline-block}.health-degraded{background:var(--warning)}.review-workspace{grid-template-columns:minmax(560px,1.55fr) minmax(400px,.85fr);margin-bottom:12px;display:grid}.queue-panel,.detail-panel,.camera-strip{background:var(--surface-lowest);border:1px solid var(--outline-variant)}.detail-panel{border-left:0}.panel-title,.detail-header,.camera-strip>header{background:var(--surface-high);border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:center;height:52px;padding:0 16px;display:flex}.stream-state{color:var(--success);font-family:IBM Plex Mono,monospace;font-size:10px}.stream-state i{background:var(--success);width:7px;height:7px;margin-right:6px;display:inline-block}.queue-toolbar{border-bottom:1px solid var(--outline-variant);align-items:stretch;min-height:48px;display:flex}.search-field{background:var(--surface);flex:1;align-items:center;gap:8px;padding:0 12px;display:flex}.search-field .icon{width:17px;height:17px}.search-field input{color:var(--on-surface);background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%}.filters{display:flex}.filters button{background:var(--surface-lowest);border:0;border-left:1px solid var(--outline-variant);color:var(--on-surface-variant);padding:0 9px;font-family:IBM Plex Mono,monospace;font-size:9px}.filters button:hover,.filters .filter-active{background:var(--primary);color:#fff}.queue-head,.queue-row{grid-template-columns:72px 1.1fr 1.3fr 104px;display:grid}.queue-head{background:var(--surface);border-bottom:1px solid var(--outline-variant);color:var(--on-surface-variant);text-transform:uppercase;padding:7px 12px;font-family:IBM Plex Mono,monospace;font-size:10px}.queue-row{color:var(--on-surface);text-align:left;background:#fff;border:0;border-bottom:1px solid #e0e0e0;align-items:center;width:100%;min-height:68px;padding:8px 12px}.queue-row:hover{background:#f4f4f4}.queue-row-selected{border-left:4px solid var(--primary);background:#edf5ff}.queue-row>span{min-width:0;padding-right:8px}.queue-row strong,.queue-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.queue-row strong{font-size:12px}.queue-row small{color:var(--on-surface-variant);margin-top:3px;font-size:10px}.mono{font-family:IBM Plex Mono,monospace}.state{text-transform:uppercase;border-left:3px solid;width:max-content;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;display:inline-block}.state-suspected{color:var(--danger);background:#fff1f1}.state-confirmed{color:#0e6027;background:#defbe6}.state-rejected{color:#525252;background:#e8e8e8}.state-inconclusive{color:#8e6a00;background:#fff8e1}.state-active{color:#0e6027;background:#defbe6}.state-disabled{color:#8e6a00;background:#fff8e1}.state-retired{color:#525252;background:#e8e8e8}.empty-state{color:var(--on-surface-variant);padding:24px}.primary-button,.secondary-button,.destructive-button{border:1px solid var(--outline-variant);min-height:36px;padding:0 14px}.primary-button{background:var(--primary);border-color:var(--primary);color:#fff}.secondary-button{background:var(--surface-lowest);color:var(--on-surface)}.destructive-button{background:var(--surface-lowest);border-color:var(--danger);color:var(--danger)}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.destructive-button:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}.primary-button:disabled,.secondary-button:disabled,.destructive-button:disabled{opacity:.45}.identity-workspace{grid-template-columns:minmax(520px,1fr) minmax(360px,.45fr);padding:16px;display:grid}.identity-list-panel,.identity-detail-panel{background:var(--surface-lowest);border:1px solid var(--outline-variant);min-width:0}.identity-detail-panel{border-left:0;padding:18px}.identity-create{background:var(--surface);border-bottom:1px solid var(--outline-variant);grid-template-columns:minmax(180px,1fr) minmax(140px,.55fr) auto;align-items:end;gap:12px;padding:14px 16px;display:grid}.identity-create label{flex-direction:column;gap:6px;display:flex}.identity-create label span{color:var(--on-surface-variant);font-size:11px;font-weight:600}.identity-create input{background:var(--surface-lowest);border:1px solid var(--outline-variant);color:var(--on-surface);outline:0;height:38px;padding:0 10px}.identity-create input:focus{border-color:var(--primary)}.identity-notice{border-left:3px solid;padding:4px 7px;font-family:IBM Plex Mono,monospace;font-size:10px}.identity-notice-ok{color:var(--success)}.identity-notice-error{color:var(--danger)}.identity-notice-info{color:var(--on-surface-variant)}.identity-table{min-height:280px}.identity-row{border:0;border-bottom:1px solid var(--outline-variant);color:var(--on-surface);text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;min-height:64px;padding:10px 16px;display:flex}.identity-row:hover,.identity-row-selected{background:var(--surface-high)}.identity-row-selected{border-left:4px solid var(--primary)}.identity-row strong,.identity-row small{display:block}.identity-row small{color:var(--on-surface-variant);margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:10px}.identity-detail-panel h2{margin-top:3px}.detail-list{grid-template-columns:minmax(130px,.45fr) minmax(0,1fr);gap:1px;margin:18px 0;display:grid}.detail-list dt,.detail-list dd{background:var(--surface);margin:0;padding:10px}.detail-list dt{color:var(--on-surface-variant);font-size:11px;font-weight:600}.identity-detail-actions{flex-wrap:wrap;gap:8px;display:flex}.identity-scan-error{border-left:3px solid var(--danger);color:var(--danger);margin-top:12px;padding-left:8px;font-size:12px}.identity-scan-backdrop{z-index:30;background:#0000009e;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.identity-scan-dialog{background:var(--surface-lowest);border:1px solid var(--outline-variant);width:min(760px,100%);max-width:760px}.identity-confirm-dialog{background:var(--surface-lowest);border:1px solid var(--outline-variant);width:min(480px,100%);max-width:480px}.identity-confirm-dialog>header,.identity-confirm-dialog>footer{justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.identity-confirm-dialog>header{border-bottom:1px solid var(--outline-variant)}.identity-confirm-dialog>p{margin:0;padding:20px 16px;line-height:1.55}.identity-confirm-dialog>footer{border-top:1px solid var(--outline-variant);justify-content:flex-end;gap:8px}.identity-scan-dialog>header,.identity-scan-dialog>footer{justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.identity-scan-dialog>header{border-bottom:1px solid var(--outline-variant)}.identity-scan-dialog>footer{border-top:1px solid var(--outline-variant);gap:16px}.identity-scan-dialog>footer p{color:var(--on-surface-variant);flex:1;margin:0;font-size:12px;line-height:1.4}.identity-scan-footer-actions{flex:none;gap:8px;margin-left:auto;display:flex}.identity-scan-camera{background:#111;place-items:center;display:grid;position:relative;overflow:hidden}.identity-scan-video{aspect-ratio:16/9;object-fit:contain;background:#000;width:100%;max-height:min(62vh,520px);display:block}.identity-scan-video-mirrored{transform:scaleX(-1)}.identity-quality-canvas{display:none}.identity-scan-placeholder{color:#fff;letter-spacing:.02em;text-transform:uppercase;z-index:1;background:#000000c7;place-items:center;font-family:IBM Plex Mono,monospace;font-size:12px;display:grid;position:absolute;inset:0}.identity-face-guide{z-index:2;border:2px solid #0f62feeb;width:min(42%,260px);height:64%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.identity-face-guide:before,.identity-face-guide:after{content:"";background:#0f62feeb;position:absolute}.identity-face-guide:before{height:1px;top:50%;left:18%;right:18%}.identity-face-guide:after{width:1px;top:18%;bottom:18%;left:50%}.identity-scan-status{border-left:3px solid var(--primary);color:#fff;z-index:3;background:#111111d1;justify-content:space-between;align-items:center;gap:12px;min-width:240px;padding:8px 10px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px}.identity-scan-progress{background:var(--surface-high);height:6px;overflow:hidden}.identity-scan-progress span{background:var(--primary);height:100%;transition:width .14s linear;display:block}.identity-scan-success{color:#fff;text-align:center;z-index:5;background:#111111f0;place-content:center;gap:8px;animation:.26s ease-out both identity-scan-success-in;display:grid;position:absolute;inset:0}.identity-scan-success-mark{background:var(--success);justify-content:center;justify-self:center;align-items:center;width:72px;height:72px;font-size:34px;animation:.52s cubic-bezier(.2,.8,.2,1) both identity-scan-success-mark;display:flex}.identity-scan-success strong{font-size:18px}@keyframes identity-scan-success-in{0%{opacity:0}to{opacity:1}}@keyframes identity-scan-success-mark{0%{opacity:0;transform:scale(.55)}65%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.identity-scan-success,.identity-scan-success-mark{animation:none}}.identity-verify-error{border-left:3px solid var(--danger);color:var(--danger);margin:14px 16px;padding-left:8px;font-size:12px}.identity-verify-result{border-left:4px solid var(--warning);margin:14px 16px;padding:12px 14px}.identity-verify-result h3,.identity-verify-result p{margin:4px 0 8px}.identity-verify-result-success{border-left-color:var(--success);background:#edf9f0}.identity-verify-result-warning{background:#fff8e1}.identity-verify-result-danger{border-left-color:var(--danger);background:#fff1f1}.identity-verify-result dl{grid-template-columns:minmax(150px,.4fr) minmax(0,1fr);gap:1px;margin:10px 0;display:grid}.identity-verify-result dt,.identity-verify-result dd{background:#ffffff94;margin:0;padding:7px 9px}.identity-verify-result dt{color:var(--on-surface-variant);font-size:11px;font-weight:600}.detail-header{background:var(--surface-lowest)}.identity-attendance-panel{background:var(--surface-lowest);border:1px solid var(--outline-variant);margin:0 16px 16px;padding:14px 16px}.identity-attendance-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.identity-attendance-subtitle{color:var(--on-surface-variant);margin:8px 0 12px}.identity-attendance-placeholder{color:var(--on-surface-variant);margin:10px 0}.identity-attendance-error{border-left:3px solid var(--danger);color:var(--danger);margin:10px 0;padding-left:8px}.identity-attendance-table-wrap{overflow-x:auto}.identity-attendance-table{border-collapse:collapse;width:100%}.identity-attendance-table th,.identity-attendance-table td{border:1px solid var(--outline-variant);text-align:left;min-width:90px;padding:8px;font-size:12px}.identity-attendance-table th{background:var(--surface);color:var(--on-surface-variant);font-size:11px;font-weight:600}.identity-attendance-table td{background:var(--surface-lowest);color:var(--on-surface)}.evidence-frame{color:#fff;background:#161616}.camera-frame-header,.evidence-meta{justify-content:space-between;align-items:center;padding:7px 10px;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}.scene{background:linear-gradient(135deg,#333 0 22%,#171717 22% 52%,#3b3b3b 52% 64%,#202020 64%);height:260px;position:relative;overflow:hidden}.scan-lines{background:repeating-linear-gradient(0deg,#0000 0 3px,#ffffff09 3px 4px);position:absolute;inset:0}.zone-boundary{border:2px dashed var(--danger);color:#ff8389;padding:5px;font-family:IBM Plex Mono,monospace;font-size:9px;position:absolute;inset:18% 8% 34px}.person-box{border:2px solid var(--success);width:22%;position:absolute;top:26%;bottom:38px;left:42%}.person-box:before{border:2px solid var(--success);content:"";width:34px;height:34px;position:absolute;top:8px;left:calc(50% - 18px)}.person-box i{background:var(--success);white-space:nowrap;padding:3px 5px;font-family:IBM Plex Mono,monospace;font-size:9px;font-style:normal;position:absolute;top:-19px;left:-2px}.ppe-flag{background:var(--danger);padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:10px;position:absolute;top:18%;left:48%}.scene-floor{color:#c6c6c6;font-family:IBM Plex Mono,monospace;font-size:8px;position:absolute;bottom:8px;right:10px}.evidence-meta{color:#c6c6c6;border-top:1px solid #525252}.event-facts{grid-template-columns:1fr 1fr;margin:0;display:grid}.event-facts div{border-bottom:1px solid #e0e0e0;min-height:54px;padding:9px 12px}.event-facts div:nth-child(odd){border-right:1px solid #e0e0e0}.event-facts dt{color:var(--on-surface-variant);letter-spacing:.4px;text-transform:uppercase;font-size:9px}.event-facts dd{margin:5px 0 0;font-size:12px}.review-actions{padding:14px 16px 16px}.secondary-action{border:1px solid var(--primary);color:var(--primary-dark);background:#fff;width:100%;min-height:40px;margin-top:10px}.secondary-action:hover:not(:disabled){background:#edf5ff}.secondary-action:disabled{border-color:var(--outline-variant);color:var(--on-surface-variant)}.disposition-grid{grid-template-columns:1.4fr .8fr 1fr;gap:1px;margin-top:6px;display:grid}.disposition-grid button{background:var(--primary);color:#fff;border:0;min-height:42px;padding:6px;font-size:11px}.disposition-grid button:nth-child(2),.disposition-grid button:nth-child(3){background:#393939}.disposition-grid button:hover:not(:disabled){background:var(--primary-dark)}.disposition-grid button:disabled{color:#8d8d8d;background:#e0e0e0}.activity{border-left:3px solid var(--primary);color:var(--on-surface-variant);margin:10px 0 0;padding-left:7px;font-family:IBM Plex Mono,monospace;font-size:9px}.camera-strip>header>span{color:var(--on-surface-variant);font-family:IBM Plex Mono,monospace;font-size:10px}.camera-grid{grid-template-columns:repeat(5,1fr);display:grid}.camera-grid article{border-right:1px solid var(--outline-variant);min-width:0;padding:12px}.camera-grid article:last-child{border-right:0}.camera-grid article>div strong,.camera-grid article>div span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.camera-grid article>div strong{font-family:IBM Plex Mono,monospace;font-size:11px}.camera-grid article>div span{color:var(--on-surface-variant);font-size:10px}.camera-grid dl{text-transform:uppercase;grid-template-columns:1fr auto;row-gap:4px;margin:10px 0 0;font-size:9px;display:grid}.camera-grid dt{color:var(--on-surface-variant)}.camera-grid dd{margin:0;font-family:IBM Plex Mono,monospace}.health-online{color:var(--success)}.health-degraded{color:#8e6a00}.sr-only{width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.camera-main{background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex}.camera-topbar{flex:none}.camera-content{flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px;display:flex}.camera-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.camera-summary article{background:var(--surface-lowest);border:1px solid var(--outline-variant);justify-content:space-between;align-items:center;min-height:72px;padding:14px 16px;display:flex}.camera-summary strong{font-size:24px}.camera-refresh,.camera-add{border:1px solid var(--outline);color:var(--on-surface);background:0 0;align-self:stretch;padding:0 16px}.camera-add{background:var(--primary);border-color:var(--primary);color:#fff}.camera-add:disabled{cursor:not-allowed;opacity:.45}.camera-refresh:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.camera-toolbar{background:var(--surface-lowest);border:1px solid var(--outline-variant);justify-content:space-between;display:flex}.camera-toolbar label{flex:1}.camera-toolbar input{color:var(--on-surface);background:0 0;border:0;outline:0;width:100%;height:48px;padding:0 14px}.camera-filters{display:flex}.camera-filters button{border:0;border-left:1px solid var(--outline-variant);color:var(--on-surface-variant);background:0 0;min-width:82px;padding:0 12px}.camera-filters button[aria-pressed=true]{background:var(--primary);color:#fff}.camera-workspace{flex:1;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:14px;min-height:0;display:grid}.camera-inventory,.camera-detail{background:var(--surface-lowest);border:1px solid var(--outline-variant);min-height:0;overflow:auto}.camera-inventory-head,.camera-inventory-row{text-align:left;grid-template-columns:minmax(180px,1.4fr) minmax(120px,1fr) 110px 100px 58px;align-items:center;gap:12px;display:grid}.camera-inventory-head{border-bottom:1px solid var(--outline);color:var(--on-surface-variant);letter-spacing:.08em;text-transform:uppercase;padding:12px 14px;font-size:11px}.camera-inventory-row{border:0;border-bottom:1px solid var(--outline-variant);color:var(--on-surface);background:0 0;width:100%;padding:13px 14px}.camera-inventory-row:hover,.camera-inventory-row-selected{background:var(--surface-high)}.camera-inventory-row-selected{border-left:3px solid var(--primary)}.camera-inventory-row span:first-child,.camera-stream-card>div:first-child,.camera-qualification>div:first-child{flex-direction:column;gap:3px;display:flex}.camera-inventory-row small,.camera-stream-card small,.camera-qualification small{color:var(--on-surface-variant)}.camera-status{border-left:3px solid var(--on-surface-variant);color:var(--on-surface-variant);padding-left:7px;font-family:IBM Plex Mono,monospace;font-size:10px}.camera-status-online,.camera-status-active,.camera-status-enabled,.camera-status-qualified{border-color:var(--success);color:var(--success)}.camera-status-degraded,.camera-status-conditionally-qualified,.camera-status-connecting{border-color:var(--warning);color:var(--warning)}.camera-status-offline,.camera-status-not-qualified,.camera-status-retired{border-color:var(--danger);color:var(--danger)}.camera-detail{padding:16px}.camera-detail>header{border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:flex-start;padding-bottom:14px;display:flex}.camera-detail h2,.camera-detail p{margin:3px 0 0}.camera-facts,.camera-stream-card dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:14px 0;display:grid}.camera-facts div,.camera-stream-card dl div{background:var(--surface);padding:10px}.camera-facts dt,.camera-stream-card dt{color:var(--on-surface-variant);text-transform:uppercase;font-size:10px}.camera-facts dd,.camera-stream-card dd{margin:5px 0 0}.camera-detail-section{border-top:1px solid var(--outline-variant);padding-top:14px}.camera-detail-section h3{letter-spacing:.06em;text-transform:uppercase;font-size:12px}.camera-stream-card,.camera-qualification{border:1px solid var(--outline-variant);margin-top:8px;padding:12px}.camera-stream-card>div:first-child,.camera-qualification{flex-direction:row;justify-content:space-between;align-items:flex-start;display:flex}.camera-stream-actions{border-top:1px solid var(--outline-variant);justify-content:space-between;align-items:center;gap:.75rem;padding-top:.75rem;display:flex}.camera-stream-actions button{background:var(--surface-high);border:1px solid var(--outline-variant);color:var(--on-surface);min-height:2.25rem;padding:0 .75rem}.camera-stream-actions select{background:var(--surface-low);border:1px solid var(--outline-variant);color:var(--on-surface);max-width:10rem;min-height:2.25rem}.camera-stream-actions>div{gap:.5rem;display:flex}.camera-stream-actions button:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.camera-error,.camera-loading{background:var(--surface-lowest);border:1px solid var(--danger);color:var(--danger);margin:0;padding:14px}.camera-dialog-backdrop{background:color-mix(in srgb, var(--surface-lowest) 72%, transparent);z-index:30;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.camera-dialog{background:var(--surface);border:1px solid var(--outline);width:100%;max-width:58rem;max-height:calc(100vh - 3rem);padding:1.25rem;overflow:auto}.camera-dialog>header{border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;display:flex}.camera-dialog>header button{border:1px solid var(--outline-variant);color:var(--on-surface);background:0 0;width:2.25rem;height:2.25rem;font-size:1.35rem}.camera-dialog>p{color:var(--on-surface-variant);font-size:.85rem}.camera-dialog form{gap:1rem;display:grid}.camera-dialog fieldset{border:1px solid var(--outline-variant);grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;padding:1rem;display:grid}.camera-dialog legend{color:var(--on-surface);letter-spacing:.08em;text-transform:uppercase;padding:0 .4rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}.camera-dialog label{color:var(--on-surface-variant);gap:.35rem;font-size:.75rem;display:grid}.camera-dialog input,.camera-dialog select{background:var(--surface-low);border:1px solid var(--outline-variant);color:var(--on-surface);min-height:2.65rem;padding:.6rem .7rem}.camera-dialog input:focus,.camera-dialog select:focus{border-color:var(--primary);outline:1px solid var(--primary)}.camera-dialog footer{justify-content:flex-end;gap:.65rem;display:flex}.camera-dialog footer button{border:1px solid var(--outline-variant);min-height:2.65rem;padding:0 1rem}.camera-management-dialog{gap:1rem;max-width:68rem;display:grid}.camera-management-dialog>form,.camera-management-section{border-top:1px solid var(--outline-variant);padding-top:1rem}.camera-management-section{gap:.75rem;display:grid}.camera-management-section h3,.camera-management-section p{margin:0}.camera-management-impact,.camera-management-section p{color:var(--on-surface-variant);font-size:.78rem}.camera-management-actions{gap:.5rem;display:grid}.camera-management-actions>div{background:var(--surface-low);border:1px solid var(--outline-variant);justify-content:flex-end;align-items:center;gap:.5rem;padding:.65rem;display:flex}.camera-management-actions>div span{margin-right:auto}.camera-management-actions button{border:1px solid var(--outline-variant);color:var(--on-surface);background:0 0;min-height:2.25rem;padding:0 .75rem}.camera-management-actions button:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:var(--on-primary)}@media (max-width:1100px){.camera-workspace{grid-template-columns:1fr;overflow:auto}.camera-inventory,.camera-detail{overflow:visible}.camera-filters button{min-width:0}}@media (max-width:720px){.camera-dialog fieldset{grid-template-columns:1fr}}.live-main{background:var(--surface-low);flex-direction:column;height:100dvh;min-height:0;display:flex;overflow:hidden}.live-main .topbar{background:var(--surface);border-color:var(--outline-variant);color:var(--on-surface);flex:0 0 64px}.transport-badge{border:1px solid var(--outline-variant);color:var(--on-surface-variant);padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:9px}.live-main .source-badge{border-color:var(--success);color:#137333}.live-content{flex-direction:column;flex:1;min-height:0;padding:12px;display:flex}.live-toolbar{background:var(--surface-lowest);border:1px solid var(--outline-variant);flex:0 0 48px;align-items:center;min-height:48px;display:flex}.live-search{background:var(--surface);flex:1;align-self:stretch;align-items:center;padding:0 12px;display:flex}.live-search input{color:var(--on-surface);background:0 0;border:0;outline:0;width:100%}.live-search input::placeholder{color:var(--on-surface-variant)}.grid-options{border-left:1px solid var(--outline-variant);align-items:center;height:48px;display:flex}.single-camera-navigation{border-left:1px solid var(--outline-variant);align-items:stretch;height:48px;display:flex}.single-camera-navigation button{color:var(--on-surface-variant);background:0 0;border:0;justify-content:center;align-items:center;min-width:44px;transition:background-color .12s,color .12s;display:inline-flex}.single-camera-navigation button:hover:not(:disabled){background-color:var(--primary);color:#fff}.single-camera-navigation button:disabled{cursor:wait;opacity:.45}.single-camera-navigation>span{flex-direction:column;justify-content:center;align-items:center;min-width:128px;padding:0 10px;display:flex}.single-camera-navigation strong,.single-camera-navigation small{font-family:var(--font-mono);line-height:1.2}.single-camera-navigation strong{color:var(--on-surface);font-size:10px}.single-camera-navigation small{color:var(--on-surface-variant);font-size:9px}.camera-navigation-icon{fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.5px;width:18px;height:18px}.grid-options button,.refresh-sources{color:var(--on-surface-variant);background:0 0;border:0;justify-content:center;align-items:center;min-width:44px;height:100%;transition:background-color .12s,color .12s;display:inline-flex}.grid-options button:hover,.grid-option-active{background-color:var(--primary)!important;color:#fff!important}.grid-layout-icon{fill:none;stroke:currentColor;stroke-width:1.5px;width:18px;height:18px;display:block}.refresh-sources{border-left:1px solid var(--outline-variant);align-self:stretch;height:auto;padding:0 16px}.refresh-sources:hover{background-color:var(--primary);color:#fff}.live-outage{border:1px solid var(--danger);color:#ffd7d9;background:#2d0709;border-top:0;flex-direction:column;flex:none;gap:8px;padding:14px 16px;display:flex}.live-outage-headline{align-items:flex-start;gap:10px;display:flex}.live-outage-headline>div{flex-direction:column;gap:2px;display:flex}.live-outage-mark{background:var(--danger);flex:none;width:3px;height:14px;margin-top:2px}.live-outage strong{color:#fff;font-size:14px;font-weight:600}.live-outage span{color:#ffb3b8;font-size:13px}.live-outage ul{color:#ffb3b8;flex-direction:column;gap:3px;margin:0;padding:0 0 0 13px;font-size:12px;list-style:none;display:flex}.live-outage li:before{content:"·";margin-left:-13px;padding-right:8px}.live-outage small{color:#a8a8a8;font-size:11px}.live-notice{color:#a8a8a8;background:#1c1c1c;border:1px solid #393939;border-top:0;flex:0 0 32px;align-items:center;min-height:32px;padding:0 12px;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex}.live-grid{flex:1;gap:1px;min-height:0;margin-top:1px;display:grid}.live-grid-1{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr}.live-grid-4{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.live-grid-9{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr))}.live-tile{background:#161616;border:1px solid #393939;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden}.live-tile-ai-active{outline:1px solid var(--success);outline-offset:-1px}.live-tile>header,.live-tile>footer{justify-content:space-between;align-items:center;min-height:38px;padding:0 10px;display:flex}.live-tile>header{color:#f4f4f4;border-bottom:1px solid #393939}.live-tile>header strong,.live-tile>header span{display:block}.live-tile>header strong{font-family:IBM Plex Mono,monospace;font-size:10px}.live-tile>header div span{color:#8d8d8d;margin-top:2px;font-size:9px}.connectivity{border-left:3px solid;padding:3px 5px;font-family:IBM Plex Mono,monospace;font-size:8px}.connectivity-online{color:#42be65}.connectivity-degraded{color:#f1c21b}.connectivity-offline,.connectivity-unknown{color:#ff8389}.connectivity-connecting{color:#78a9ff}.live-viewport{background:#090909;min-height:0;position:relative;overflow:hidden}.live-video{object-fit:contain;background:#000;width:100%;height:100%}.person-detection-overlay{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.person-overlay-track{will-change:transform}.person-detection-overlay rect{fill:#0f62fe14;stroke:#78a9ff;stroke-width:1px}.person-detection-overlay text{fill:#fff;paint-order:stroke;stroke:#0f62fe;stroke-width:2px;font-family:IBM Plex Mono,monospace;font-weight:500}.human-pose-overlay{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.human-pose-overlay line{stroke:#42e8e0;stroke-linecap:round;stroke-width:1.35px}.human-pose-overlay circle{fill:#161616;stroke:#6fffee;stroke-width:1px}.human-pose-overlay .pose-track.predicted{opacity:.62}.human-pose-overlay .pose-track.predicted line{stroke-dasharray:4 3}.human-pose-overlay .pose-joint.predicted{fill:#004144}.person-model-state{color:#d0e2ff;text-overflow:ellipsis;white-space:nowrap;background:#161616e0;border-left:3px solid #78a9ff;max-width:calc(100% - 16px);padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:8px;position:absolute;top:8px;right:8px;overflow:hidden}.vision-runtime-hud{color:#d0e2ff;pointer-events:none;z-index:4;background:#0a0a0ae0;border-left:2px solid #78a9ff;grid-template-columns:repeat(2,max-content);gap:2px 8px;max-width:calc(100% - 16px);padding:5px 7px;font-family:IBM Plex Mono,monospace;font-size:7px;display:grid;position:absolute;top:8px;right:8px}.ai-slot-badge{background:color-mix(in srgb, var(--surface-lowest) 86%, transparent);border-left:3px solid var(--outline);color:var(--on-surface-variant);letter-spacing:.06em;z-index:7;padding:.3rem .45rem;font-family:IBM Plex Mono,monospace;font-size:.62rem;position:absolute;bottom:.5rem;left:.5rem}.ai-slot-badge-active{border-color:var(--success);color:var(--success)}.vision-runtime-hud span:last-child{color:#a6c8ff;text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;max-width:180px;overflow:hidden}.camera-standby{color:#a8a8a8;background:radial-gradient(circle,#242424 0,#111 52%,#080808 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera-standby:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#ffffff06 3px 4px);position:absolute;inset:0}.camera-standby strong{color:#c6c6c6;margin-top:10px;font-size:12px}.camera-standby small{margin-top:4px;font-family:IBM Plex Mono,monospace;font-size:8px}.camera-reticle{border:1px solid #525252;width:62px;height:42px;position:relative}.camera-reticle:before,.camera-reticle:after{content:"";background:#525252;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.camera-reticle:before{width:76px;height:1px}.camera-reticle:after{width:1px;height:56px}.live-tile>footer{color:#8d8d8d;border-top:1px solid #393939;font-family:IBM Plex Mono,monospace;font-size:8px}.live-tile>footer button{color:#f4f4f4;background:#393939;border:0;min-height:26px;padding:0 12px;font-size:9px}.live-tile-actions{gap:.4rem;display:flex}.live-tile>footer button:hover:not(:disabled){background:var(--primary)}.live-tile>footer button:disabled{color:#6f6f6f}.live-player-state{color:#78a9ff;background:#161616e0;border-left:3px solid;padding:4px 6px;font-family:IBM Plex Mono,monospace;font-size:8px;position:absolute;bottom:8px;left:8px}.live-player-live{color:#42be65}.live-player-degraded{color:#f1c21b}.live-empty{color:#8d8d8d;border:1px solid #393939;justify-content:center;align-items:center;min-height:360px;display:flex}@media (max-width:1180px){.review-workspace{grid-template-columns:1fr}.detail-panel{border-left:1px solid var(--outline-variant);border-top:0}.camera-grid{grid-template-columns:repeat(3,1fr)}.camera-grid article{border-bottom:1px solid var(--outline-variant)}}@media (max-width:820px){.shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{width:72px}.brand{justify-content:center;padding:16px}.brand div,.nav-item:not(.nav-item-active){font-size:0}.nav-item{justify-content:center;padding:0}.nav-item-active{font-size:0}.sidebar-system,.operator div{display:none}.operator{justify-content:center;padding:12px}.metrics{grid-template-columns:repeat(2,1fr)}.review-workspace{display:block}.queue-head,.queue-row{grid-template-columns:60px 1fr 1.2fr}.queue-head span:last-child,.queue-row>span:last-child{display:none}.camera-grid{grid-template-columns:1fr 1fr}.transport-badge{display:none}.refresh-sources{padding:0 8px}.single-camera-navigation>span{min-width:72px}.single-camera-navigation strong{display:none}}@media (max-width:560px){.live-main{height:auto;min-height:100dvh;overflow:auto}.live-content{display:block}.live-toolbar{flex-wrap:wrap;height:auto}.live-search{flex-basis:100%;min-height:44px}.single-camera-navigation{border-left:0}.live-grid{height:auto}.live-grid-4,.live-grid-9{grid-template-rows:none;grid-template-columns:1fr}.live-tile{min-height:280px}.live-viewport{aspect-ratio:16/9}}.roi-main{background:var(--surface-low);flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.roi-topbar{flex:0 0 64px}.button-secondary{border:1px solid var(--outline);color:var(--on-surface);background:0 0;align-self:stretch;padding:0 14px}.button-secondary:hover:not(:disabled){background:var(--primary);border-color:var(--primary);color:#fff}.roi-draft-badge{border-color:var(--primary);color:var(--primary-dark)}.roi-active-badge{border-color:var(--success);color:var(--success);background:#effaf2}.roi-workspace{flex:1;grid-template-columns:250px minmax(420px,1fr) 280px;min-height:0;padding:1px;display:grid}.roi-library,.roi-properties{background:var(--surface-lowest);min-height:0;padding:16px;overflow-y:auto}.roi-library{border-right:1px solid var(--outline-variant)}.roi-properties{border-left:1px solid var(--outline-variant)}.roi-section-title{border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:center;margin:-2px 0 14px;padding-bottom:12px;display:flex}.roi-section-title h2{margin:2px 0 0;font-size:16px}.roi-library label,.roi-properties label{gap:6px;margin-bottom:12px;display:grid}.roi-library label>span,.roi-properties label>span{color:var(--on-surface-variant);font-size:11px;font-weight:600}.roi-library select,.roi-properties select,.roi-properties input,.roi-properties textarea{background:var(--surface-low);border:1px solid var(--outline-variant);border-bottom-color:var(--outline);color:var(--on-surface);width:100%;min-height:40px;padding:8px 10px}.roi-properties textarea{resize:vertical}.roi-list-heading{border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:center;margin-top:18px;padding-bottom:8px;display:flex}.roi-list-heading button,.roi-active-callout button,.roi-property-actions button,.roi-preview-actions button{background:var(--primary);border:1px solid var(--primary);color:#fff;min-height:34px;padding:0 10px}.roi-list-heading button:disabled,.roi-active-callout button:disabled,.roi-property-actions button:disabled{opacity:.4}.roi-list{gap:1px;padding-top:8px;display:grid}.roi-list-item{background:var(--surface-low);color:var(--on-surface);text-align:left;border:1px solid #0000;gap:3px;padding:10px;display:grid}.roi-list-item:hover,.roi-list-item.active{border-color:var(--primary)}.roi-list-item.active{background:#edf5ff}.roi-list-item span,.roi-list-item small{color:var(--on-surface-variant);font-size:10px}.roi-empty{color:var(--on-surface-variant);padding:12px 4px;font-size:12px}.roi-active-callout{border-left:3px solid var(--success);background:#effaf2;margin-top:16px;padding:12px}.roi-active-callout p{color:var(--on-surface-variant);font-size:11px;line-height:1.45}.roi-active-callout button{width:100%}.roi-stage-panel{flex-direction:column;min-width:0;min-height:0;padding:12px;display:flex;overflow:hidden}.roi-stage-toolbar{background:var(--surface-lowest);border:1px solid var(--outline-variant);flex:0 0 46px;justify-content:space-between;align-items:stretch;display:flex}.roi-tool-group,.roi-preview-actions{display:flex}.roi-tool-group button,.roi-preview-actions button{min-height:44px}.roi-tool-group button{border:0;border-right:1px solid var(--outline-variant);color:var(--on-surface);background:0 0;padding:0 12px}.roi-tool-group button:hover:not(:disabled),.roi-tool-group button[aria-pressed=true]{background:var(--primary);color:#fff}.roi-tool-group button:disabled{color:var(--outline)}.roi-preview-actions button{border:0;border-left:1px solid var(--outline-variant);color:var(--on-surface);background:0 0}.roi-preview-actions button:hover:not(:disabled){background:var(--primary);color:#fff}.roi-stage{max-width:100%;min-height:240px;max-height:calc(100vh - 164px);width:min(100%, calc((100vh - 164px) * var(--roi-aspect-ratio,1.77778)));background:#101010;border:1px solid #393939;flex:none;align-self:center;margin-top:10px;position:relative;overflow:hidden}.roi-stage .live-video{position:absolute;inset:0}.roi-frozen-frame{background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:0}.roi-stage-placeholder{color:#c6c6c6;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.roi-stage-placeholder span,.roi-stage-placeholder small{color:#8d8d8d;font-family:IBM Plex Mono,monospace;font-size:10px}.roi-stage-placeholder strong{margin:8px 0}.roi-canvas{touch-action:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.roi-tool-custom{cursor:crosshair}.roi-polygon{stroke-width:1.25px}.roi-polygon-existing{fill:#78a9ff1f;stroke:#78a9ff}.roi-polygon-editing{fill:#ff832b29;stroke:#ff832b}.roi-polyline-editing{stroke:#ff832b;stroke-width:1.25px}.roi-vertex{fill:#fff;pointer-events:none;stroke:#ff832b;stroke-width:1.25px}.roi-vertex-close-target{fill:#defbe6;stroke:#24a148;stroke-width:2px}.roi-stage-meta{color:#fff;pointer-events:none;z-index:4;justify-content:space-between;font-family:IBM Plex Mono,monospace;font-size:9px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.roi-stage-meta span{border-left:3px solid var(--success);background:#161616d9;padding:4px 6px}.roi-stage-hint{color:var(--on-surface-variant);flex:none;margin:8px 2px 0;font-size:11px}.roi-reference-data{border:1px solid var(--outline-variant);margin:14px 0}.roi-reference-data div{justify-content:space-between;padding:8px 10px;display:flex}.roi-reference-data div+div{border-top:1px solid var(--outline-variant)}.roi-reference-data dt{color:var(--on-surface-variant);font-size:10px}.roi-reference-data dd{margin:0;font-family:IBM Plex Mono,monospace;font-size:10px}.roi-message{border-left:3px solid;padding:8px 10px;font-size:11px;line-height:1.45}.roi-message-error{color:var(--danger-dark);background:#fff1f1}.roi-message-success{color:#0e6027;background:#defbe6}.roi-property-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.roi-property-actions button:last-child{border-color:var(--danger);color:var(--danger);background:0 0}.roi-property-actions button:last-child:hover:not(:disabled){background:var(--danger);color:#fff}.roi-governance-note{color:var(--on-surface-variant);font-size:10px;line-height:1.45}@media (max-width:1180px){.roi-workspace{grid-template-columns:210px minmax(360px,1fr) 250px}.roi-tool-group button,.roi-preview-actions button{padding:0 8px;font-size:11px}}@media (max-width:1100px){.roi-main{height:auto;min-height:100vh;overflow:auto}.roi-workspace{grid-template-columns:1fr}.roi-library,.roi-properties{border:0;overflow:visible}.roi-stage-panel{min-height:520px;overflow:visible}.roi-stage-toolbar{flex-wrap:wrap;height:auto}.roi-tool-group,.roi-preview-actions{flex-wrap:wrap}.roi-stage{flex:none;width:100%;max-height:none}}
:root{--erp-background:#f4f6f8;--erp-border:#d8dee8;--erp-card:#fff;--erp-muted:#667085;--erp-primary:#175cd3;--erp-sidebar:#18212f;--erp-sidebar-active:#253246;--erp-text:#172033}body{background:var(--erp-background);color:var(--erp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.38}.cctv-auth-page{background:var(--erp-background);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:28px;display:flex}.cctv-auth-page h1{margin:16px 0 0;font-size:24px}.cctv-auth-page p{color:var(--erp-muted);max-width:520px;margin:8px 0 20px}.cctv-auth-icon{color:var(--erp-primary);background:#eef4ff;border-radius:12px;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex}.cctv-auth-configuration{color:#b54708;font-size:13px}.cctv-erp-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .16s;display:grid}.cctv-erp-shell.cctv-sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.cctv-sidebar{background:var(--erp-sidebar);color:#fff;z-index:20;flex-direction:column;gap:14px;height:100vh;max-height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow:hidden}.cctv-home-link{color:inherit;justify-content:flex-start;align-items:center;width:fit-content;max-width:100%;padding:0;text-decoration:none;display:inline-flex}.cctv-home-link[aria-disabled=true]{cursor:not-allowed;opacity:.72}.cctv-home-logo{width:132px;max-width:100%;height:auto;display:block}.cctv-brand-block{gap:4px;display:grid}.cctv-brand-block strong{font-size:1.16rem}.cctv-sidebar-toggle{background:var(--erp-sidebar-active);color:#fff;border:1px solid #ffffff29;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.cctv-sidebar-toggle:hover{background:#30425c}.cctv-navigation{gap:4px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.cctv-navigation::-webkit-scrollbar{width:6px}.cctv-navigation::-webkit-scrollbar-thumb{background:#3b4a61;border-radius:999px}.cctv-navigation button{color:#c9d4e5;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:9px 10px;display:flex}.cctv-navigation button svg{flex:none}.cctv-navigation button:hover,.cctv-navigation button.active{background:var(--erp-sidebar-active);color:#fff}.cctv-navigation button span{text-overflow:ellipsis;min-width:0;overflow:hidden}.cctv-sidebar-footer{flex:none;margin-top:auto}.language-switcher{font-size:13px;line-height:1;display:inline-block;position:relative}.language-switcher__button{color:#1f2937;cursor:pointer;font:inherit;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:8px;min-width:132px;height:32px;padding:0 12px;font-size:13px;font-weight:600;line-height:1;transition:border-color .12s,box-shadow .12s,background-color .12s;display:inline-flex;box-shadow:0 1px 2px #0f172a0a}.language-switcher__button:hover{background:#f8fafc;border-color:#cbd5e1}.language-switcher__button:focus,.language-switcher__button:focus-visible{border-color:#4f46e5;outline:none;box-shadow:0 0 0 3px #4f46e526}.language-switcher__flag{font-size:15px;line-height:1}.language-switcher__label{text-align:left;flex:1}.language-switcher__chevron{color:#64748b;width:12px;height:12px;transition:transform .12s}.language-switcher[data-open=true] .language-switcher__chevron{transform:rotate(180deg)}.language-switcher__menu{z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #0f172a1f}.language-switcher__menu[hidden]{display:none}.language-switcher__option{color:#1f2937;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:13px;font-weight:500;line-height:1.2;display:flex}.language-switcher__option:hover{background:#f1f5f9}.language-switcher__option[data-selected=true]{color:#4f46e5;background:#eef2ff;font-weight:600}@media (max-width:560px){.language-switcher__button{min-width:46px}.cctv-topbar .language-switcher__label{display:none}}.cctv-session-card{background:#ffffff0f;border:1px solid #ffffff24;border-radius:8px;gap:8px;padding:12px;display:grid}.cctv-session-card strong,.cctv-session-card span{display:block}.cctv-session-card>span{color:#c9d4e5;font-size:.85rem}.cctv-logout-button{color:#1d2939;background:#fff;border:0;border-radius:6px;width:100%;min-height:38px;padding:8px 12px}.cctv-logout-button:hover{background:#f2f4f7}.cctv-sidebar-collapsed .cctv-sidebar{align-items:center;padding-inline:12px}.cctv-sidebar-collapsed .cctv-brand-block,.cctv-sidebar-collapsed .cctv-navigation button span,.cctv-sidebar-collapsed .cctv-session-card strong,.cctv-sidebar-collapsed .cctv-session-card span{display:none}.cctv-sidebar-collapsed .cctv-logout-button{width:42px;min-width:0;padding:10px 0;font-size:0;overflow:hidden}.cctv-sidebar-collapsed .cctv-logout-button:before{content:"Log";font-size:.78rem;font-weight:800}.cctv-sidebar-collapsed .cctv-home-link{justify-content:center;width:100%}.cctv-sidebar-collapsed .cctv-navigation,.cctv-sidebar-collapsed .cctv-navigation button{width:100%}.cctv-sidebar-collapsed .cctv-navigation button{justify-content:center;padding-inline:0}.cctv-sidebar-collapsed .cctv-session-card{background:0 0;border-color:#0000;padding:0}.cctv-workspace{min-width:0}.cctv-topbar{border-bottom:1px solid var(--erp-border);z-index:10;background:#f4f6f8f5;justify-content:space-between;align-items:center;min-height:76px;padding:14px 28px;display:flex;position:sticky;top:0}.cctv-topbar h1{letter-spacing:-.02em;margin:0;font-size:24px}.cctv-phase-badge,.cctv-status-pill{letter-spacing:.04em;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800}.cctv-phase-badge{color:var(--erp-primary);background:#eef4ff}.cctv-workspace-content{padding:24px 28px 32px}.cctv-workspace-content-live{height:calc(100dvh - 76px);min-height:0;overflow:hidden}.cctv-workspace-content>main,.cctv-page-stack>main{min-height:auto}.cctv-workspace-content .topbar{border:1px solid var(--erp-border);border-radius:8px 8px 0 0;height:auto;min-height:64px;position:static}.cctv-workspace-content article,.cctv-workspace-content .panel,.cctv-workspace-content .camera-list,.cctv-workspace-content .camera-detail,.cctv-workspace-content .live-toolbar{border-radius:8px}.cctv-page-stack{gap:18px;display:grid}.cctv-status-banner{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;justify-content:space-between;align-items:center;gap:24px;padding:22px;display:flex;box-shadow:0 12px 26px #1018280f}.cctv-kicker{color:var(--erp-primary);letter-spacing:.08em;font-size:11px;font-weight:900}.cctv-status-banner h2,.cctv-area-card h3,.cctv-empty-surface h2{margin:0}.cctv-status-banner h2{margin-top:4px;font-size:20px}.cctv-status-banner p,.cctv-empty-surface p{color:var(--erp-muted);max-width:720px;margin:8px 0 0}.cctv-status-pending{color:#b54708;white-space:nowrap;background:#fffaeb}.cctv-area-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.cctv-area-card{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;padding:18px;box-shadow:0 12px 26px #1018280f}.cctv-area-card-heading{color:var(--erp-primary);align-items:center;gap:8px;display:flex}.cctv-area-card-heading span{font-size:12px;font-weight:800}.cctv-area-card h3{margin-top:14px;font-size:16px}.cctv-area-card dl{gap:9px;margin:18px 0 0;display:grid}.cctv-area-card dl div{border-top:1px solid #eef2f6;justify-content:space-between;align-items:center;padding-top:9px;display:flex}.cctv-area-card dt{color:var(--erp-muted)}.cctv-area-card dd{margin:0;font-weight:700}.cctv-empty-surface{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;align-items:flex-start;gap:14px;min-height:180px;padding:24px;display:flex;box-shadow:0 12px 26px #1018280f}.cctv-empty-icon{color:var(--erp-primary);background:#eef4ff;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.cctv-no-data{color:var(--erp-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;min-height:180px;font-weight:600;display:flex}.cctv-back-button{border:1px solid var(--erp-border);color:var(--erp-text);background:#fff;border-radius:8px;justify-self:start;align-items:center;gap:7px;padding:9px 12px;display:inline-flex}.cctv-back-button:hover{color:var(--erp-primary);border-color:#84adff}.cctv-live-page{flex-direction:column;gap:16px;height:100%;min-height:0;display:flex}.cctv-live-toolbar{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.cctv-live-toolbar h2,.cctv-live-message h2{margin:3px 0 0}.cctv-live-toolbar h2{font-size:20px}.cctv-live-toolbar p,.cctv-live-message p{color:var(--erp-muted);margin:6px 0 0}.cctv-primary-button,.cctv-secondary-button,.cctv-stop-button{border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:8px 12px;font-weight:700;display:inline-flex}.cctv-primary-button{background:var(--erp-primary);border:1px solid var(--erp-primary);color:#fff}.cctv-secondary-button{border:1px solid var(--erp-border);color:var(--erp-text);background:#fff}.cctv-stop-button{color:#b42318;background:#fff5f5;border:1px solid #fecdca}.cctv-primary-button:disabled,.cctv-secondary-button:disabled{cursor:not-allowed;opacity:.5}.cctv-live-error{color:#b42318;background:#fff5f5;border:1px solid #fecdca;border-radius:8px;padding:12px 14px}.cctv-live-message{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;align-items:flex-start;gap:13px;min-height:150px;padding:22px;display:flex}.cctv-live-grid{flex:auto;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;height:100%;min-height:0;display:grid}.cctv-live-grid-2{grid-template-rows:minmax(0,1fr)}.cctv-live-card{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.cctv-live-card.active{border-color:#84adff;box-shadow:0 0 0 2px #d1e0ff}.cctv-live-card>header{border-bottom:1px solid var(--erp-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.cctv-live-card>header strong,.cctv-live-card>header span{display:block}.cctv-live-card>header div>span{color:var(--erp-muted);margin-top:3px;font-size:12px}.cctv-live-viewport{background:radial-gradient(circle at 50% 42%,#274e8747,#0000 34%),#101828;min-height:0;position:relative;overflow:hidden}.cctv-live-viewport:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 24% 76%,#0000);mask-image:linear-gradient(#0000,#000 24% 76%,#0000)}.cctv-live-viewport .live-video{object-fit:contain;width:100%;height:100%;display:block}.cctv-connection-loading{color:#fff;z-index:2;background:#101828;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cctv-connection-animation{width:108px;height:81px}.cctv-connection-loading strong{margin-top:-8px;font-size:22px;line-height:1}.cctv-connection-loading span{color:#d0d5dd;margin-top:8px;font-size:12px}.cctv-player-live-action{z-index:3;position:absolute;bottom:12px;right:12px}.cctv-camera-icon-action.cctv-player-action-button{width:40px;height:40px;min-height:40px}.cctv-player-action-group{gap:8px;display:flex}.cctv-live-viewport:fullscreen{background:#000;width:100vw;height:100vh}.cctv-live-viewport:fullscreen:before{display:none}.cctv-camera-placeholder{color:#d0d5dd;pointer-events:none;z-index:1;flex-direction:column;justify-content:center;align-items:center;transition:opacity .16s,scale .16s;display:flex;position:absolute;inset:0}.cctv-camera-placeholder-icon{color:#84adff;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:14px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0f,0 14px 36px #0000002e}.cctv-camera-placeholder-icon svg{width:29px;height:29px}.cctv-camera-placeholder-icon span{background:#32d583;border:3px solid #18263b;border-radius:50%;width:13px;height:13px;position:absolute;bottom:-4px;right:-4px;box-shadow:0 0 0 3px #32d5831a}.cctv-camera-placeholder strong{color:#eaecf0;font-size:14px;font-weight:650}.cctv-camera-placeholder small{color:#98a2b3;margin-top:5px;font-size:11px}.cctv-live-viewport:hover .cctv-camera-placeholder,.cctv-live-viewport:focus-within .cctv-camera-placeholder{opacity:0;scale:.92}.cctv-camera-icon-action{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;opacity:0;pointer-events:none;border:1px solid #ffffff47;border-radius:999px;justify-content:center;align-items:center;width:46px;height:46px;padding:0;transition:opacity .16s,scale .16s,background-color .16s;display:inline-flex;scale:.9;box-shadow:0 8px 22px #00000047}.cctv-camera-icon-action-view{background:#1570efe0}.cctv-camera-icon-action-fullscreen{background:#111827c7}.cctv-camera-icon-action-stop{background:#b42318e0}.cctv-live-viewport:hover .cctv-camera-icon-action,.cctv-live-viewport:focus-within .cctv-camera-icon-action,.cctv-camera-icon-action:focus-visible{opacity:1;pointer-events:auto;scale:1}.cctv-live-viewport:fullscreen .cctv-camera-icon-action{opacity:0;pointer-events:none;scale:.9}.cctv-live-viewport:fullscreen[data-controls-visible=true] .cctv-camera-icon-action,.cctv-live-viewport:fullscreen .cctv-camera-icon-action:focus-visible{opacity:1;pointer-events:auto;scale:1}.cctv-camera-icon-action:hover{filter:brightness(1.1);scale:1.06}.cctv-camera-icon-action:focus-visible{outline-offset:3px;outline:3px solid #fff}.cctv-camera-icon-action:disabled{cursor:not-allowed}.cctv-live-viewport:hover .cctv-camera-icon-action:disabled,.cctv-live-viewport:focus-within .cctv-camera-icon-action:disabled{opacity:.45}@media (hover:none){.cctv-camera-icon-action{opacity:1;pointer-events:auto;scale:1}.cctv-camera-icon-action:disabled{opacity:.45}.cctv-live-viewport:fullscreen .cctv-camera-icon-action{opacity:0;pointer-events:none;scale:.9}.cctv-live-viewport:fullscreen[data-controls-visible=true] .cctv-camera-icon-action,.cctv-live-viewport:fullscreen .cctv-camera-icon-action:focus-visible{opacity:1;pointer-events:auto;scale:1}}.cctv-camera-standby{color:#98a2b3;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;min-height:0;display:flex}.cctv-live-center-action{z-index:3;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cctv-camera-standby strong{color:#eaecf0}.cctv-camera-standby span{font-size:11px}.cctv-connectivity{border-radius:999px;flex:none;padding:5px 8px;font-size:11px;font-weight:800}.cctv-connectivity-online{color:#027a48;background:#ecfdf3}.cctv-connectivity-degraded,.cctv-connectivity-connecting{color:#b54708;background:#fffaeb}.cctv-connectivity-offline,.cctv-connectivity-unknown{color:#b42318;background:#fff5f5}.cctv-spin{animation:.9s linear infinite cctv-spin}@keyframes cctv-spin{to{transform:rotate(360deg)}}.cctv-admin-settings{gap:16px;display:grid}.cctv-admin-heading{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:20px;display:flex}.cctv-admin-heading h2,.cctv-admin-message h2,.cctv-profile-form h3,.cctv-security-notes h3{margin:0}.cctv-admin-heading h2{margin-top:3px}.cctv-admin-heading p,.cctv-admin-message p,.cctv-profile-form-title p{color:var(--erp-muted);margin:6px 0 0}.cctv-admin-badge{color:#027a48;background:#ecfdf3;border-radius:999px;flex:none;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.cctv-admin-message{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;align-items:flex-start;gap:13px;min-height:160px;padding:22px;display:flex}.cctv-admin-restricted{border-color:#fedf89}.cctv-admin-restricted>svg{color:#b54708}.cctv-admin-restricted span{color:#b42318;margin-top:10px;display:block}.cctv-admin-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.cctv-profile-form,.cctv-security-notes{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;padding:20px}.cctv-profile-form-title{align-items:flex-start;gap:10px;display:flex}.cctv-profile-form-title>svg,.cctv-security-notes>svg{color:var(--erp-primary);flex:none}.cctv-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;display:grid}.cctv-form-grid label{color:#344054;gap:6px;font-size:13px;font-weight:700;display:grid}.cctv-form-grid input,.cctv-form-grid select{color:var(--erp-text);font:inherit;background:#fff;border:1px solid #cfd7e3;border-radius:7px;width:100%;min-height:40px;padding:8px 10px}.cctv-form-grid input:focus,.cctv-form-grid select:focus{border-color:#84adff;outline:3px solid #eef4ff}.cctv-form-wide{grid-column:1/-1}.cctv-profile-form>footer{border-top:1px solid #eef2f6;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;padding-top:16px;display:flex}.cctv-profile-form>footer>span{color:var(--erp-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.cctv-profile-error,.cctv-profile-success{border-radius:7px;align-items:center;gap:7px;margin:14px 0 0;padding:10px 12px;display:flex}.cctv-profile-error{color:#b42318;background:#fff5f5}.cctv-profile-success{color:#027a48;background:#ecfdf3}.cctv-security-notes{position:sticky;top:100px}.cctv-security-notes h3{margin-top:10px}.cctv-security-notes ul{color:var(--erp-muted);gap:10px;margin:14px 0 0;padding-left:18px;display:grid}.cctv-camera-onboarding,.cctv-onboarding-list{gap:16px;display:grid}.cctv-success-toast{color:#067647;z-index:60;background:#ecfdf3;border:1px solid #abefc6;border-radius:8px;align-items:center;gap:10px;max-width:min(420px,100vw - 32px);padding:12px 14px;display:flex;position:fixed;top:24px;right:24px;box-shadow:0 12px 32px #1018282e}.cctv-success-toast>span{font-size:13px;font-weight:600}.cctv-success-toast>button{color:inherit;background:0 0;border:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:4px;padding:0;display:inline-flex}.cctv-camera-list-toolbar{justify-content:space-between;align-items:center;display:flex}.cctv-camera-row-actions{align-items:center;gap:8px;display:flex}.cctv-camera-table{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;overflow:visible}.cctv-camera-table-head,.cctv-camera-table-row{grid-template-columns:minmax(200px,1.7fr) 120px 120px 130px minmax(190px,auto);align-items:center;gap:14px;padding:12px 16px;display:grid}.cctv-camera-table-head{border-bottom:1px solid var(--erp-border);color:var(--erp-muted);letter-spacing:.03em;text-transform:uppercase;background:#f8fafc;font-size:11px;font-weight:800}.cctv-camera-table-row{border-bottom:1px solid #eef2f6;min-height:64px;position:relative}.cctv-camera-table-row:last-child{border-bottom:0}.cctv-camera-table-row>span{min-width:0}.cctv-camera-table-row>span>strong,.cctv-camera-table-row>span>small{display:block}.cctv-camera-table-row>span>small{color:var(--erp-muted);margin-top:3px}.cctv-icon-button{border:1px solid var(--erp-border);color:var(--erp-text);background:#fff;border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.cctv-icon-button:hover:not(:disabled){color:var(--erp-primary);border-color:#84adff}.cctv-icon-button:disabled{cursor:not-allowed;opacity:.45}.cctv-icon-button-danger{color:#b42318}.cctv-camera-dialog{scrollbar-gutter:stable;background:#fff;border:0;border-radius:8px;gap:14px;width:min(680px,100%);max-width:none;max-height:min(760px,94vh);padding:20px;display:grid;overflow:auto;box-shadow:0 24px 60px #0f172a40}.cctv-camera-dialog>header{border:0;align-items:center;gap:12px;margin:0;padding:0}.cctv-camera-dialog>header h2{margin:0;font-size:20px}.cctv-camera-dialog>header button{border:1px solid var(--erp-border);color:var(--erp-text);background:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:38px;min-width:38px;height:38px;display:inline-flex}.cctv-camera-dialog>header p{color:var(--erp-muted);margin:5px 0 0}.cctv-camera-dialog form{gap:14px}.cctv-camera-dialog fieldset{border:1px solid var(--erp-border);border-radius:8px;gap:12px;padding:14px}.cctv-camera-dialog legend{color:var(--erp-text);letter-spacing:0;text-transform:none;font-family:inherit;font-size:13px;font-weight:700}.cctv-camera-dialog label{color:var(--erp-text);font-size:13px;font-weight:600}.cctv-camera-dialog input,.cctv-camera-dialog select{background:#fff;border:1px solid #cfd7e3;border-radius:8px;min-height:40px;padding:9px 11px}.cctv-camera-dialog footer{justify-content:flex-end;align-items:center;gap:12px}.cctv-camera-dialog footer button{border-radius:8px;min-height:40px;padding:0 14px}.cctv-camera-dialog-small{width:min(420px,100%)}.cctv-camera-dialog-small fieldset{grid-template-columns:1fr}.cctv-camera-dialog-small>p{color:var(--erp-muted);margin:0;font-size:14px;line-height:1.55}.cctv-camera-dialog-small>.cctv-modal-error-message{color:#b42318;background:#fff7f6;border:1px solid #fecdca;border-radius:8px;padding:12px 14px}.cctv-danger-button{color:#fff;background:#d92d20;border-radius:7px;justify-content:center;align-items:center;gap:7px;font-weight:700;display:inline-flex;border:1px solid #d92d20!important}.cctv-onboarding-card{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:8px;overflow:hidden}.cctv-onboarding-card>header{border-bottom:1px solid var(--erp-border);justify-content:space-between;align-items:center;gap:16px;padding:15px 18px;display:flex}.cctv-onboarding-card>header strong,.cctv-onboarding-card>header span{display:block}.cctv-onboarding-card>header div>span{color:var(--erp-muted);margin-top:3px;font-size:12px}.cctv-onboarding-state{color:var(--erp-primary);background:#eef4ff}.cctv-onboarding-stream{gap:14px;padding:18px;display:grid}.cctv-onboarding-stream+.cctv-onboarding-stream{border-top:1px solid var(--erp-border)}.cctv-onboarding-stream dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.cctv-onboarding-stream dl div{background:#f8fafc;border:1px solid #eef2f6;border-radius:7px;padding:10px}.cctv-onboarding-stream dt{color:var(--erp-muted);text-transform:uppercase;font-size:11px;font-weight:700}.cctv-onboarding-stream dd{margin:4px 0 0;font-weight:700}.cctv-onboarding-stream>footer{border-top:1px solid #eef2f6;justify-content:space-between;align-items:center;gap:14px;padding-top:14px;display:flex}.cctv-onboarding-stream>footer>span{color:var(--erp-muted);font-size:12px}.cctv-onboarding-actions,.cctv-live-ready{align-items:center;gap:8px;display:flex}.cctv-live-ready{font-weight:700;color:#027a48!important}.cctv-onboarding-warning,.cctv-probe-result{border-radius:7px;margin:14px 18px;padding:10px 12px}.cctv-onboarding-warning{color:#b54708;background:#fffaeb}.cctv-area-provision{justify-content:space-between;align-items:center;gap:14px;display:flex}.cctv-missing-stream-form{padding-bottom:18px}.cctv-missing-stream-form .cctv-form-grid{padding-inline:18px}.cctv-missing-stream-form>footer{justify-content:flex-end;padding:16px 18px 0;display:flex}.cctv-probe-result{margin:0}.cctv-probe-result.ready{color:#027a48;background:#ecfdf3}.cctv-probe-result.failed{color:#b42318;background:#fff5f5}@media (max-width:1080px){.cctv-workspace-content-live{height:auto;overflow:visible}.cctv-area-grid,.cctv-live-grid{grid-template-columns:1fr}.cctv-live-grid{grid-template-rows:none;height:auto}.cctv-live-viewport{aspect-ratio:16/9}.cctv-admin-layout{grid-template-columns:1fr}.cctv-onboarding-stream dl{grid-template-columns:repeat(2,minmax(0,1fr))}.cctv-security-notes{position:static}.cctv-camera-table{overflow-x:auto}.cctv-camera-table-head,.cctv-camera-table-row{min-width:980px}}@media (max-width:760px){.cctv-erp-shell,.cctv-erp-shell.cctv-sidebar-collapsed{grid-template-columns:1fr}.cctv-sidebar{height:auto;max-height:none;position:static}.cctv-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}.cctv-sidebar-toggle,.cctv-sidebar-footer{display:none}.cctv-topbar,.cctv-status-banner,.cctv-live-toolbar,.cctv-admin-heading,.cctv-profile-form>footer{flex-direction:column;align-items:flex-start}.cctv-workspace-content{padding:18px}.cctv-form-grid{grid-template-columns:1fr}.cctv-form-wide{grid-column:auto}.cctv-onboarding-card>header,.cctv-onboarding-stream>footer{flex-direction:column;align-items:flex-start}.cctv-onboarding-actions{flex-direction:column;align-items:stretch;width:100%}.cctv-camera-list-toolbar{flex-direction:column;align-items:stretch;gap:10px}.cctv-success-toast{top:16px;left:16px;right:16px}.cctv-onboarding-stream dl{grid-template-columns:1fr}}
