/* Console skin: neutral mission workspace, blue interaction, semantic status colors.
   Loaded last. Camera image geometry and geographic imagery remain untouched. */
:root{color-scheme:dark;--bg:#141519;--surface:#1d1f24;--surface2:#25272e;--panel:#1d1f24;--border:#34373f;--text:#edf0f5;--muted:#a0a6b2;--accent:#4d96ff;--accent-hover:#70acff;--accent-soft:#203653;--green:#6dc599;--orange:#e9b368;--red:#ef8580}
body{background:var(--bg);color:var(--text);font-size:var(--font-body,16px);line-height:1.55}
::selection{background:#2c5a91;color:#fff}*{scrollbar-width:thin;scrollbar-color:#4a4e59 #1b1d22}
button,input,select,textarea{border-color:#424651;border-radius:4px;background:#25282f;color:var(--text);padding:7px 11px;font-size:var(--font-label,15px);line-height:1.5;max-width:100%}
input,select,textarea{background:#17191e}input::placeholder,textarea::placeholder{color:#7f8796}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button:hover:not(:disabled){background:#30343e;border-color:#647084}button.primary,.primary{background:#337ee6;border-color:#438ff5;color:#fff}button.primary:hover:not(:disabled){background:#438ef1;border-color:#70acff}button.text,.text,a{color:var(--accent-hover)}button.text{background:transparent}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.sidebar{width:200px;padding:18px 12px 12px;background:#191b20;border-right:1px solid #30333a;z-index:1100;overflow:hidden;gap:0}
.brand{font-size:22px;gap:10px;letter-spacing:2px;flex:none;padding:0 5px}.brand-mark{width:36px;height:36px;border-radius:6px;background:#263950;border-color:#3e597b;color:#c0dcff;font-size:21px}.brand small{font-size:var(--font-caption,14px);letter-spacing:1px;color:#929ba9}.sidebar-label{margin:27px 12px 10px;font-size:var(--font-caption,14px);color:#858e9d;letter-spacing:1px;flex:none}
.sidebar nav{min-height:0;overflow-y:auto;overflow-x:hidden;flex:1;gap:3px;padding:0 2px 10px;overscroll-behavior:contain}.nav{position:relative;flex:none;min-height:39px;padding:9px 10px;gap:10px;font-size:var(--font-label,15px);border-radius:4px;color:#aab1bd;justify-content:flex-start;line-height:1.5}.nav span{font-size:var(--font-section,20px);width:22px;flex:none}.nav:hover:not(:disabled){background:#252932;border-color:transparent;color:#eff3fa}.nav.active{background:#263b56;color:#8abaff;box-shadow:inset 3px 0 #4d96ff}.nav b{background:#5c3e23;color:#ffd096;font-size:var(--font-caption,14px)}.sidebar-bottom{flex:none;margin-top:8px;padding:12px 8px 0;font-size:var(--font-caption,14px);text-align:left;color:#98a2b1}.sidebar-bottom small{font-size:var(--font-caption,14px);line-height:1.5;margin-top:5px}
main{margin-left:200px;padding:0 22px;min-width:0}main>header{height:68px;min-height:68px;margin:0 0 14px;border-bottom:1px solid #2d3037;gap:14px}h1{font-size:21px;letter-spacing:0;margin:0;font-weight:600}.eyebrow{color:#8994a6;font-size:var(--font-caption,14px);letter-spacing:1.5px}.header-right{gap:14px;flex-wrap:nowrap}.header-right time{color:#a2aab6;font-size:var(--font-caption,14px);white-space:nowrap}.header-right #alarm-sound{font-size:var(--font-caption,14px)}.chip{background:#262b33;border-color:#424b59;color:#bdc8d9;border-radius:4px;padding:3px 8px;font-size:var(--font-caption,14px)}.chip.warn{background:#342b20;border-color:#79603b;color:var(--orange)}
.notice{background:#222831;border-color:#3b4656;color:#bcc6d4;border-radius:4px;padding:8px 12px;margin-bottom:10px;font-size:var(--font-caption,14px)}.notice>span{color:#7baeff}.readiness{margin:0 0 12px;padding:0 2px;gap:8px 20px;font-size:var(--font-caption,14px)}.readiness b{margin-left:4px}.stats{gap:12px;margin-bottom:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.stats article{min-height:74px;padding:12px 16px;border-radius:5px;background:#20232a;border-color:#333741;gap:2px}.stats article span{font-size:var(--font-label,15px);color:#b8bfca}.stats strong{font-size:27px;color:#f0f3f9;font-weight:500}.stats small{font-size:var(--font-caption,14px);color:#929ba9}
.panel{background:var(--surface);border-color:var(--border);border-radius:5px;margin-bottom:16px}.panel-heading{padding:11px 15px;min-height:53px;border-color:#34373f}.panel-heading>div>span{color:#969eac}.panel-heading select{padding:4px 9px}.padded{padding:16px}h2{font-size:var(--font-body,16px)}h3{color:#e5eaf1}.muted{color:var(--muted)}.toolbar{margin:4px 0 15px;gap:12px}.toolbar h2{font-size:var(--font-section,20px)}.toolbar>div:last-child{flex-wrap:wrap;gap:8px}.two-col,.alerts-layout,.device-layout,.api-layout{gap:16px}.command-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.map-panel,#view-command>.command-layout>.map-panel{min-height:0;align-self:start}#map{height:clamp(400px,56vh,650px);min-height:400px;flex:none;background:#20252b}.map-bottom{padding:9px 14px;background:#202229;gap:12px}.map-hint{font-size:var(--font-caption,14px)}.command-side{min-width:0}.command-side .panel{margin-bottom:16px}.quick-cameras{padding:10px;gap:10px}.quick-camera,.camera-tile{background:#07090c;border-radius:4px}.image-caption{background:linear-gradient(transparent,#080b10ee)}.latest-alert-filters{padding:8px 11px;gap:6px}.latest-alert-filters button{padding:4px 9px}.latest-alert-filters button[aria-pressed=true]{background:var(--accent-soft);border-color:#4c7eb9;color:#c9e1ff}.event-row{padding:12px 14px;gap:10px}.event-row:hover,.event-row.selected{background:#28313e}.event-row h3{font-size:var(--font-label,15px)}.event-row p{font-size:var(--font-caption,14px)}.event-icon{width:29px;height:29px;border-radius:4px;font-size:var(--font-section,20px)}.event-workflow--neutral .event-icon{background:#30333a;color:#b7bdc7}.event-workflow-chip--neutral{background:#2b2f37;border-color:#515967;color:#c4ccd8}
.monitor-grid{gap:12px}.camera-tile .tile-heading{padding:9px 12px;background:#23262d}.tile-placeholder{color:#8591a2}.tile-footer,.tile-angles{color:#9aa6b7;background:#1d2026}.tile-picture:hover:after{background:#151a24df}.preview-status-footer{background:#1b1e24;border-color:#363c47;color:#b8c4d3}.preview-status-panel>summary{color:#a6b4c8}.compressed-video-status{background:#10141bd9;color:#dfe7f2}.empty{padding:32px 20px}.empty>span,.access-empty-icon{color:#67778e}.empty h3{color:#c8d0dc}.detail-line{border-color:#343943}.detail-line>span:first-child{color:#a0aaba}.drone-banner{background:#222b37;padding:22px;gap:20px}.drone-banner h2{font-size:21px}.drone-symbol{color:#8daacf;font-size:48px}.drone-action,.fleet-card,.device-card{background:#21262f;border-color:var(--border);border-radius:5px}.drone-action{min-height:92px;padding:16px}.device-card.selected{background:#233a56;border-color:#5c8fcf}.device-scope{background:#222d3c;border-left-color:var(--accent);border-radius:0 4px 4px 0;padding:10px 13px}.resource-button,.api-item{border-bottom-color:var(--border)}.resource-button:hover,.api-item:hover{background:#282e38}.api-item span{color:#d0d8e5}.api-item small{color:#96a5bb}.api-item i{color:#8dbaff}.api-path{color:#8dbaff}.api-list{height:620px}pre,.xml-editor{background:#111419;color:#c1cddd;border-color:#3a414c;border-radius:4px;font-size:var(--font-label,15px);line-height:1.65}textarea.xml-editor{color:#d3ddeb}.api-warning{border-radius:4px}footer{padding:16px 0;color:#7c8798;border-top:1px solid #2b2f36;margin-top:8px;font-size:var(--font-caption,14px)}
dialog{border-color:#4b5361;border-radius:6px;background:#1d2027;color:var(--text);box-shadow:0 16px 70px #0009}dialog::backdrop{background:#070a11ce;backdrop-filter:none}.modal-header{background:#242830;border-color:#3b414b;padding:13px 18px}.modal-header h2{font-size:var(--font-subtitle,18px)}.controls{background:#1d2026}.controls h3{color:#dce4ef}.ptz-pad button{background:#2a303b}.ptz-pad #ptz-stop{background:#4e3030;border-color:#85524e;color:#ffc1b8}.large-image{background:#000}#toast{left:calc(50% + 100px);background:#27384f;border-color:#5d7ca5;color:#e2edfc;border-radius:5px}summary{cursor:pointer;color:#c4cfde}details.panel>summary,.map-panel>details>summary{padding:10px 14px}.map-panel>details{border-top:1px solid var(--border)}.leaflet-popup-content-wrapper,.leaflet-popup-tip,.sensor-map .leaflet-popup-content-wrapper,.sensor-map .leaflet-popup-tip{background:#252a33;color:#e1e7f0}.leaflet-tooltip{background:#252b36;color:#e1e9f7;border-color:#526073}
/* Operational and administration modules retain their existing layout contracts. */
#operations-root{padding:0}#operations-root .ops-filters,#operations-root form,.ops-primary-actions,.ops-resource,.health-panel,.nu-card,.access-card,.sensor-summary article,.sensor-telemetry article,.sensor-chart,.sensor-detail-contacts article,.spa-log,.spa-record-fields section,.spa-array>section,.sensor-platform-actions form{background:#23262d;border-color:#3b404a;border-radius:5px;color:var(--text)}
#operations-root .ops-filters p,.notification-users p,.notification-users small,.nu-footer,.health-panel dt,.sensor-intro p,.sensor-summary span,.sensor-summary small,.sensor-feedback,.sensor-map-foot,.sensor-location-note,.sensor-filters label,.sensor-pagination,.sensor-detail-note,.sensor-detail-freshness,.sensor-detail-feedback,.sensor-detail-pager span,.sensor-detail-contacts span,.sensor-detail-contacts small,.sensor-detail-timeline p,.sensor-detail-timeline small,.spa-management-title p,.spa-feedback,.spa-result-toolbar,.spa-pager,.spa-log,.spa-selectors label,.spa-fields label,.spa-log form label,.spa-bound-field,.spa-form-heading span,.spa-record-fields dt,.access-identity-label,.access-check small,.access-field-hint,.access-confirm-copy,.access-self-note{color:#a8b1bf}
.ops-list button{border-color:#414956;border-radius:4px}.ops-list button.selected,.access-role-item.active,.spa-table-scroll tr.is-selected{background:#243951;border-color:#4c82c3}.ops-feedback{background:#262b34}.ops-primary-actions{padding:12px}.health-panel h2{font-size:var(--font-section,20px)}.notification-users{color:var(--text)}.nu-card{padding:16px;border-radius:5px}.nu-tabs,.nu-footer,.nu-user,.nu-user-head,.spa-groups,.spa-native-toolbar,.spa-form-heading,.spa-record-fields>div,.sensor-detail-tabs,.sensor-detail-fields>div,.sensor-platform-actions,.access-role-description,.access-table td,.access-pagination,.access-card-head{border-color:#383e48}.nu-tabs{padding:12px 0 10px}.nu-user-head,.nu-table th{color:#a6b3c6}.nu-table th,.nu-table td{border-color:#373e48;padding:10px 12px}.nu-tabs [aria-selected=true],.spa-groups [aria-selected=true],.sensor-detail-tabs [aria-selected=true],.access-tab.active,.sp-tabs button.active{background:var(--accent-soft);border-color:#527dac;color:#a9cfff}.access-tab.active:after{background:var(--accent)}
.notification-users button,#camera-controls-root button,.health-recording button,.sp-body button{background:#2b3039;border:1px solid #454e5c;border-radius:4px;color:#e1e7f1}.notification-users button:hover:not(:disabled),#camera-controls-root button:hover:not(:disabled),.sp-body button:hover:not(:disabled){background:#354051;border-color:#6a85a8}.notification-users input,.notification-users select,#operations-root input:not([type=checkbox]),#operations-root select,#operations-root textarea,#camera-controls-root input,#camera-controls-root select,.health-recording input,.health-recording select,.sp-body input:not([type=checkbox]),.sp-body select{background:#171b22;border-color:#454e5c;color:#e7edf7;border-radius:4px}.notification-users input[type=checkbox],.access-check input,.map-aim-camera input,.sp-body input[type=checkbox]{accent-color:var(--accent)}.notification-users pre,#camera-controls-root pre{background:#12161c;color:#bbc9dc}.nu-settings [data-policy] details,.access-permission-group,.access-role-choices{border-color:#424a57;border-radius:4px}.nu-table,.spa-table-scroll,.sensor-table-scroll,.access-table-scroll{scrollbar-gutter:stable}
.smoke-sensors{--sensor-border:#393f49;gap:14px}.sensor-intro h2,.spa-management-title h2{font-size:21px}.sensor-summary{gap:12px}.sensor-summary article{padding:14px 17px;gap:4px;border-radius:5px}.sensor-summary strong{color:#eef3fb;font-size:27px}.sensor-tabs{gap:22px;padding:0 16px}.sensor-tabs button{color:#aab6c6;padding:13px 2px}.sensor-tabs [aria-selected=true]{color:#a8ceff;border-bottom-color:var(--accent)}.sensor-filters{padding:16px;gap:10px}.sensor-map{background:#20262f}.smoke-sensors th,.spa-table-scroll th,.access-table th,.sensor-detail-body th{background:#272c35;color:#a8b8ce}.smoke-sensors td,.spa-table-scroll td,.sensor-detail-body td{border-color:#373e49;color:#d3dce9;padding-top:11px;padding-bottom:11px}.smoke-sensors td small,.sensor-detail-fields dt{color:#9caec4}.smoke-sensors td strong,.sensor-detail-fields dd,.spa-record-fields dd,.spa-bound-field strong{color:#e0e7f2}.sensor-tag{background:#303641;border-color:#505a6a;color:#c4cddb;border-radius:4px;font-size:var(--font-caption,14px);padding:3px 8px}.sensor-detail-link{color:#98c3ff}.sensor-detail-link:hover{color:#d0e4ff}.sensor-chart h4,.sensor-detail-timeline strong{color:#d8e4f3}.sensor-chart svg text{fill:#b0bed1}.sensor-detail-timeline{border-color:#4b596e}.sensor-directory-tree ul{border-color:#4b596e}.sensor-directory-tree li{color:#c6d3e4}.sensor-action-advanced,.sensor-reconcile-audit{border-color:#4a5667;color:#b6c6dc}.sensor-action-advanced p{color:#9caec5}.spa-groups button{color:#a7b4c8;border-radius:4px}.spa-fields fieldset{border-color:#434d5d;border-radius:4px}.spa-fields legend,.spa-array h4{color:#bfd1e9}.spa-audit{background:#273344;border-left-color:#6192d1}.spa-form-heading{padding-top:14px}.spa-native-toolbar{padding:12px 0}.access-avatar{background:#2c4261;color:#bad6ff;border-radius:4px}.access-account-trigger{padding:4px 8px}.access-account-popover{background:#252a33;border-color:#4c586b;border-radius:5px}.access-account-popover button:hover,.access-table tbody tr:hover{background:#2d3745}.access-card-head{padding:14px 17px}.access-table th,.access-table td{padding:12px 16px}.access-tag,.access-role-builtin{background:#2c3440;border-color:#4b596c;color:#c0d0e6;border-radius:3px}.access-permission-group legend,.access-check{color:#c4d0e0}.access-feedback,[data-feedback]{background:#263649;border-color:#486484;color:#c1d8f4}.access-feedback.is-error{background:#3c2a25;border-color:#825747;color:#f4c6b3}
#camera-controls-root .cc-shell,#camera-controls-root .cc-card,#camera-controls-root .cc-result,#camera-controls-root .cc-summary-chips span,#camera-controls-root .cc-resource-grid button{background:#222831;border-color:#3e4857;border-radius:5px}#camera-controls-root{margin:18px 0}#camera-controls-root .cc-shell{padding:18px}#camera-controls-root .cc-card{padding:16px}#camera-controls-root .cc-summary-chips b,#camera-controls-root label,#camera-controls-root legend,#camera-controls-root summary{color:#c6d6ed}#camera-controls-root small{color:#9badc6}#camera-controls-root fieldset,#camera-controls-root hr,#camera-controls-root .cc-comparison,#camera-controls-root .cc-comparison>div,#camera-controls-root .cc-directory{border-color:#414b5b}#camera-controls-root .cc-operation-list span{background:#303c4f;color:#c0d1e8}#camera-controls-root .cc-stop{background:#54332f;border-color:#986157}#camera-controls-root .cc-error{background:#3b2b22;border-color:#886345}
.sight-panel,.map-aim-controls,.sight-result,.map-aim-result,.alarm-monitor-camera{background:#222832;border-color:#3d4858;border-radius:4px}.sight-panel{border-radius:0;padding:12px 14px}.map-aim-controls{border-radius:0;padding:10px 14px}.map-aim-toggle{background:#2b3442}.map-aim-toggle b{background:#39465b;color:#b7c7de}.is-armed .map-aim-toggle{background:#234b78;border-color:#7aaef1;color:#e6f2ff}.is-armed .map-aim-toggle b{background:#3b699b;color:#e6f3ff}.map-aim-help,.map-aim-camera.is-unavailable,.map-aim-footnote,.map-aim-result small,.map-aim-none,.sight-storage,.sight-readings span{color:#9eafc7}.map-aim-cameras label.map-aim-camera,.map-aim-result strong,.map-aim-result small.map-aim-distance,.sight-details summary{color:#c3d3ea}.map-aim-message{color:#adcdf5}.map-aim-result>span{color:#99c2f9}
/* Policy dialogs used to carry an independent light palette. */
.smoke-policy-dialog{background:#1d222a;color:var(--text);border-color:#4b586c;border-radius:6px}.smoke-policy-dialog .sp-heading,.smoke-policy-dialog .sp-tabs{background:#252c36;border-color:#3f4b5c}.sp-heading span,.sp-note,.sp-fresh,.sp-field>span,.sp-pagination,.sp-device-options span,.sp-device-options small,.sp-table td small{color:#a5b7ce}.sp-heading>button{color:#c1d0e5}.sp-threshold,.sp-contact-level,.sp-body fieldset,.sp-table,.sp-target-options{background:#252c36;border-color:#455164;border-radius:5px}.sp-threshold legend,.sp-contact-level legend,.sp-body fieldset legend{color:#bfd0e8}.sp-table th{background:#2f3948;color:#bbcee7}.sp-table th,.sp-table td,.sp-time-row,.sp-contact-row{border-color:#424e60}.sp-targets,.sp-confirm{background:#253347;border-color:#455e80;border-radius:5px}.sp-body .sp-chip{background:#2b4666;border-color:#5c81ae;color:#c1ddff}.sp-body button.primary{background:#337ee6;border-color:#438ff5;color:#fff}.sp-feedback{background:#372f22;color:#efc380}.sp-tabs button{color:#b0c1d8}.smoke-policy-dialog button:focus-visible,.smoke-policy-dialog input:focus-visible,.smoke-policy-dialog select:focus-visible{outline-color:var(--accent)}
@media(min-width:1800px){main{padding:0 26px}.command-layout{grid-template-columns:minmax(0,1fr) 360px}.map-panel{min-height:0}#map{min-height:400px}}
@media(max-width:1200px){main{padding:0 16px}.command-layout{grid-template-columns:minmax(0,1fr) 285px}.header-right{gap:9px}.alerts-layout{grid-template-columns:minmax(0,1fr) 340px}.stats article{padding:12px}.sidebar{width:200px}.api-layout{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:1000px){.sidebar{width:76px;padding:17px 8px 10px}.brand{padding:0;justify-content:center}.brand>span:last-child,.sidebar-label,.sidebar-bottom small{display:none}.sidebar nav{margin-top:22px}.nav{font-size:0;justify-content:center;gap:0;padding:9px 5px}.nav span{font-size:21px}.nav b{position:absolute;right:1px;top:3px;font-size:var(--font-caption,14px)}.sidebar-bottom{font-size:0;text-align:center;padding:12px 5px 0}main{margin-left:76px;padding:0 16px}.command-layout,.alerts-layout,.api-layout,.device-layout{grid-template-columns:minmax(0,1fr)}.command-side{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quick-cameras{flex-direction:column}.quick-camera{width:100%}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stats article{padding:10px}.stats article span{font-size:var(--font-caption,14px)}.stats strong{font-size:24px}.stats small{font-size:var(--font-caption,14px)}.header-right time{font-size:var(--font-caption,14px)}.header-right{flex-wrap:wrap}.map-panel{min-height:0}#map{min-height:400px}.two-col{grid-template-columns:1fr}#toast{left:calc(50% + 38px)}}
@media(max-width:700px){main{padding:0 12px}main>header{height:auto;min-height:64px;margin-bottom:12px;padding:9px 0}h1{font-size:19px}.header-right{gap:7px}.header-right time{display:none}.header-right #connection{display:none}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats article{min-height:68px;padding:10px 12px}.stats small{font-size:var(--font-caption,14px)}.command-side,.monitor-grid,.monitor-grid.nine{grid-template-columns:1fr}.command-side{gap:0}.map-panel{min-height:0}#map{height:420px;min-height:400px}.map-bottom{gap:8px}.panel-heading{padding:10px 12px}.panel-heading h2{font-size:var(--font-body,16px)}.notice{font-size:var(--font-caption,14px)}.readiness{gap:6px 12px}.toolbar{align-items:flex-start}.toolbar>div:last-child{width:100%}.toolbar select{min-width:0}.ops-layout{grid-template-columns:1fr}.ops-list{max-height:260px}.nu-grid,.nu-settings{grid-template-columns:1fr}.sensor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-summary article{padding:12px}.sensor-filters{padding:12px}.spa-selectors>button{margin-left:0}.spa-groups{gap:5px}.spa-groups button{padding:7px 10px}.spa-fields,.spa-fields fieldset,.spa-array>section{grid-template-columns:1fr}.access-intro{flex-wrap:wrap}.access-card-head{padding:12px}.access-card-head .access-search{width:100%}.access-role-layout,.access-permissions{grid-template-columns:1fr}.access-role-list{display:flex;overflow:auto}.access-role-item{min-width:170px}.sensor-intro{gap:10px}.sensor-intro h2,.spa-management-title h2{font-size:19px}.smoke-policy-dialog .sp-heading{padding:14px}.sp-heading h2{font-size:19px}.sp-warning-lines{grid-template-columns:1fr}.controls{padding:12px}.drone-actions{gap:10px}.drone-action{padding:13px}.access-account-popover{right:0;max-width:calc(100vw - 100px)}}
@media(max-width:480px){.sidebar{width:58px;padding-left:4px;padding-right:4px}.brand-mark{width:32px;height:32px;font-size:var(--font-section,20px)}.sidebar nav{margin-top:16px}.nav{min-height:38px}.nav span{font-size:20px}main{margin-left:58px;padding:0 10px}.header-right{gap:4px}.header-right #alarm-sound{font-size:var(--font-caption,14px)}.access-account-trigger{padding:3px 5px}.access-avatar{width:25px;height:25px}.eyebrow{font-size:var(--font-caption,14px);letter-spacing:.8px}h1{font-size:var(--font-section,20px)}.stats article{padding:9px}.stats article span{font-size:var(--font-caption,14px)}.stats strong{font-size:23px}.stats small{font-size:var(--font-caption,14px)}.notice{align-items:flex-start}.readiness{font-size:var(--font-caption,14px)}.panel-heading{flex-wrap:wrap}.sensor-filters label{min-width:120px}.inline-form{display:grid;grid-template-columns:1fr}.nu-user,.nu-user-head{grid-template-columns:minmax(90px,1fr) 40px 45px}.nu-card{padding:12px}.spa-selectors label{min-width:140px}.sensor-detail-fields>div{grid-template-columns:85px minmax(0,1fr)}#toast{left:calc(50% + 29px);max-width:calc(100vw - 80px)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Navigation shell and saved compact mode. */
.workspace-heading{display:flex;align-items:center;gap:12px;min-width:0}#toggle-navigation{width:30px;height:30px;padding:4px;display:grid;place-items:center;background:transparent;border-color:transparent;color:#aab6c7}#toggle-navigation:hover{background:#2b3340;border-color:#43516a}#toggle-navigation svg{width:18px;height:18px}.nav .nav-label{font-size:var(--font-label,15px);line-height:1.5;width:auto;flex:1;text-align:left;white-space:nowrap}.nav .nav-icon{width:19px;height:19px;display:block;stroke-width:1.65}.nav-section-start{border-top:1px solid #343943;margin-top:7px;padding-top:13px}.nav-section-start.active{border-top-color:#343943}.nav-section-start:hover:not(:disabled){border-top-color:#343943}body:not([data-workspace="command"]) main>#stats,body:not([data-workspace="command"]) main>.readiness,body:not([data-workspace="command"]) main>#notice{display:none}
body.navigation-collapsed .sidebar{width:72px;padding:17px 8px 10px}body.navigation-collapsed main{margin-left:72px}body.navigation-collapsed .brand{justify-content:center;padding:0}body.navigation-collapsed .brand-copy,body.navigation-collapsed .brand>span:last-child,body.navigation-collapsed .sidebar-label,body.navigation-collapsed .nav .nav-label,body.navigation-collapsed .sidebar-bottom small{display:none}body.navigation-collapsed .sidebar nav{margin-top:22px}body.navigation-collapsed .nav{font-size:0;justify-content:center;gap:0;padding-left:5px;padding-right:5px}body.navigation-collapsed .nav b{position:absolute;right:1px;top:3px;font-size:var(--font-caption,14px)}body.navigation-collapsed .sidebar-bottom{font-size:0;text-align:center}body.navigation-collapsed #toast{left:calc(50% + 36px)}
@media(max-width:1000px){.nav .nav-label,.brand-copy{display:none}.nav .nav-icon{width:20px;height:20px}.workspace-heading{gap:8px}}
/* Secondary workspaces use the same surfaces and legible technical fields. */
@media(max-width:1000px){body.navigation-expanded .sidebar{width:200px;padding:17px 12px 10px}body.navigation-expanded main{margin-left:200px}body.navigation-expanded .brand-copy{display:block}body.navigation-expanded .brand{justify-content:flex-start}body.navigation-expanded .nav{justify-content:flex-start;gap:10px;padding:9px 10px}body.navigation-expanded .nav .nav-label{display:block}body.navigation-expanded .nav b{position:static}body.navigation-expanded .sidebar nav{margin-top:20px}body.navigation-expanded #toast{left:calc(50% + 100px)}}
.scene-policies,.notify-ui{padding:0;max-width:none}.scene-policies section,.notify-ui section{background:#22262e;border-color:#3e4755;border-radius:5px;padding:16px;margin:14px 0}.scene-policies fieldset,.scene-policies article,.notify-ui fieldset,.notify-record{border-color:#3f4958}.scene-policies input:not([type=checkbox]),.scene-policies select,.scene-policies textarea,.notify-ui input:not([type=checkbox]),.notify-ui select{background:#181d24;border-color:#455164;color:#e5edf8;border-radius:4px;min-height:36px}.scene-policies button,.notify-ui button{min-height:34px}.scene-policies [data-feedback],.notify-ui [data-feedback]{color:#e9bd7b}.notify-ui pre{background:#131820;color:#c5d4e8;border-radius:4px}.absolute-ptz{border-radius:5px}.absolute-ptz-fields input:focus{outline-color:var(--accent)}#calibration-root textarea,#calibration-root .cal-fields input,#calibration-root .cal-fields select,[data-storage] textarea,[data-storage] input,.storage-actions input,[data-project] input:not([type=checkbox]),[data-project] select{background:#181e27;border-color:#49586e;color:#e2edfc}#calibration-root [data-cal-message],[data-storage-message],[data-project-message]{background:#263140}.cal-primary{background:#337ee6;border-color:#438ff5}.cal-landmark,.cal-version,.project-cards article,.storage-plan{border-color:#425169;background:#222a36;border-radius:5px}.cal-chip{border-color:#517bab;color:#adcdff;border-radius:4px}.cal-title p,.cal-version-head span,.project-card-head span{color:#a4b5cd}.notification-users button.primary,#camera-controls-root button.primary,.health-recording button.primary{background:#337ee6;border-color:#438ff5;color:#fff}
/* Workflow badges remain semantic even though the shared chip is neutral. */
.chip.event-workflow-chip--pending{border-color:#896a3b;background:#352b1b;color:#f4ca86}
.chip.event-workflow-chip--confirmed{border-color:#9c4946;background:#402321;color:#ffb2a9}
.chip.event-workflow-chip--neutral{border-color:#536071;background:#292f38;color:#bdc8d8}
.chip.event-workflow-chip--closed{border-color:#3b7851;background:#1c3525;color:#a5ddb5}
/* Explicit status overrides protect meaning from general module text colors. */
.sensor-tag.is-online{background:#173d2e;color:#90dfb5;border-color:#326448}.sensor-tag.is-offline{background:#2d3036;color:#b8bec8;border-color:#525b69}.sensor-tag.is-alarm{background:#4a2c23;color:#ffb19c;border-color:#87523e}
.sensor-detail-freshness.is-warning,.map-aim-message.is-error,.map-aim-result.is-error>span{color:#efb47d}.readiness b.good,.tile-footer .live{color:var(--green)}.resource-button.ok small{color:#87d6a9}.resource-button.bad small,.access-audit-outcome.failed{color:var(--orange)}
/* The global workspace heading names these pages; keep their local introduction compact. */
.smoke-platform-admin-inline .spa-management-title h2,.smoke-sensors .sensor-intro h2{display:none}.smoke-platform-admin-inline .spa-management-title p{margin:0 0 10px;font-size:var(--font-label,15px)}.smoke-sensors .sensor-intro p{margin:0;font-size:var(--font-label,15px)}.smoke-sensors .sensor-intro{min-height:36px}.smoke-platform-admin-inline .spa-native-toolbar{padding:10px 0}.smoke-platform-admin-inline .spa-groups{margin-bottom:12px;padding-bottom:9px}.smoke-platform-admin-inline .spa-feedback{margin:10px 0}
.spa-query-form .spa-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px;margin:14px 0}.spa-query-form .spa-fields select[multiple]{height:76px;min-height:76px;max-height:76px;padding:4px 7px}.spa-query-form .spa-fields select[multiple] option{padding:2px 5px}.spa-query-form .spa-fields label{gap:5px}
@media(min-width:1700px){.spa-query-form .spa-fields{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){.spa-query-form .spa-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.spa-query-form .spa-fields{grid-template-columns:minmax(0,1fr);gap:11px}.smoke-sensors .sensor-intro{min-height:0}.smoke-platform-admin-inline .spa-groups{gap:4px}}
/* Keep the record selector narrow and the evidence/detail workspace usable. */
.alerts-layout{grid-template-columns:clamp(300px,30%,380px) minmax(0,1fr);align-items:start}.alerts-layout>article{min-width:0}.alerts-layout #event-list,.alerts-layout .event-detail{max-height:calc(100dvh - 170px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.event-row h3{font-size:var(--font-body,16px)}.event-row p{font-size:var(--font-label,15px);line-height:1.6}.alerts-layout .event-row{padding:13px 14px}.alerts-layout .event-detail{position:sticky;top:16px}
/* Business closure takes precedence over the original smoke/fire alarm colour. */
.recheck-countdown{background:#352c1e;border-color:#886535;color:#f1c784;border-radius:4px;padding:9px 12px;font-size:var(--font-body,16px);font-weight:600;line-height:1.6}.recheck-countdown strong{color:inherit;font-weight:600}.ops-list .recheck-countdown{font-size:var(--font-label,15px);padding:7px 9px;margin:8px 0;line-height:1.6}
.recheck-countdown[data-recheck-tone="closed"]{background:#1c3525;border-color:#3b7851;color:#a5ddb5}.recheck-countdown[data-recheck-tone="smoke"]{background:#352c1e;border-color:#886535;color:#f1c784}.recheck-countdown[data-recheck-tone="fire"]{background:#402321;border-color:#9c4946;color:#ffb2a9}
/* Latest alerts use the same closed/smoke/fire cue for the card and its status. */
#recent-alerts .event-row[data-alert-tone="closed"]{--latest-alert-bg:#1c3525;--latest-alert-border:#3b7851;--latest-alert-text:#a5ddb5}
#recent-alerts .event-row[data-alert-tone="smoke"]{--latest-alert-bg:#352c1e;--latest-alert-border:#886535;--latest-alert-text:#f1c784}
#recent-alerts .event-row[data-alert-tone="fire"]{--latest-alert-bg:#402321;--latest-alert-border:#9c4946;--latest-alert-text:#ffb2a9}
#recent-alerts .event-row[data-alert-tone]{border-left:3px solid var(--latest-alert-border)}
#recent-alerts .event-row[data-alert-tone] .event-icon,#recent-alerts .event-row[data-alert-tone] .event-workflow-chip{background:var(--latest-alert-bg);border-color:var(--latest-alert-border);color:var(--latest-alert-text)}
@media(max-width:1000px){.alerts-layout{grid-template-columns:minmax(0,1fr)}.alerts-layout #event-list{max-height:280px}.alerts-layout .event-detail{position:static;max-height:none;overflow:visible;scrollbar-gutter:auto}}
/* Authentication shares the console palette while retaining its established composition. */
.login-page{background:#14171d}.login-page .login-story{background:radial-gradient(ellipse at 60% 36%,#293d59 0,#1c293b 38%,#171d28 76%);border-color:#364256}.login-page .login-entry{background:radial-gradient(ellipse at 20% 0%,#24385255,transparent 65%),#151920}.login-page .brand{color:#ecf1f9}.login-page .brand>span:last-child,.login-page .brand-copy{display:block}.login-page .login-story-copy .eyebrow,.login-page .login-kicker{color:#8aaedb}.login-page .login-story-copy h1{color:#edf3fc}.login-page .login-story-copy p,.login-page .login-intro{color:#a4b4cb}.login-page .login-features{color:#bdcde3}.login-page .login-features i,.login-page .login-story-footer{color:#8cabcF}.login-page .login-entry h2{color:#e9f0fb}.login-page .login-form label{color:#bfcde1}.login-page .login-form input{background:#1b2330;border-color:#41526b;color:#eef4ff;border-radius:5px}.login-page .login-form input::placeholder{color:#8195b2}.login-page .login-password-wrap button{color:#aac9f4}.login-page .login-submit{background:#337ee6;border-color:#438ff5;color:#fff}.login-page .login-submit:hover:not(:disabled){background:#438ef1;border-color:#70acff}.login-page .login-help{color:#91a4bf}.login-page .login-entry-footer{color:#8295b0}.login-page .login-lock{color:#95b8e8}.login-page .login-form-wrap:focus-within .login-kicker{color:#a9ceff}.login-page .login-orbit{border-color:#91bcf51c}.login-page .login-contour{border-color:#91bcf540;background:linear-gradient(90deg,#233b5c77,#345c8d22)}.login-page .contour-two{border-color:#91bcf535}.login-page .contour-three{border-color:#91bcf525}.login-page .login-beacon{border-color:#91bcf538;background:#76b6ff08}.login-page .login-beacon:before{border-color:#91bcf549}.login-page .login-beacon i{background:#91bcf5;box-shadow:0 0 18px #76b6ff}.login-page .login-map-label{color:#91acd0}
@media(max-width:1000px){.login-page .brand{justify-content:flex-start;padding:0}.login-page .brand>span:last-child,.login-page .brand-copy{display:block}}
/* Shared generated all-domain sensing illustration, also shipped in the mini program. */
.login-page .login-landscape{background:url('/static/command-network.png') center/cover no-repeat;opacity:.66}
.login-page .login-landscape .login-orbit,.login-page .login-landscape .login-contour,.login-page .login-landscape .login-beacon{display:none}

/* Shared incident/alarm position copy actions; both keep white text at AA contrast. */
button.location-copy-amap{background:#164e9b;border-color:#3972be;color:#fff}button.location-copy-baidu{background:#2468ad;border-color:#4b8bcd;color:#fff}button.location-copy-amap:hover:not(:disabled){background:#1b59ac;border-color:#7aa7e2;color:#fff}button.location-copy-baidu:hover:not(:disabled){background:#2872bb;border-color:#88b8e8;color:#fff}button.location-copy-amap:focus-visible,button.location-copy-baidu:focus-visible{outline:2px solid #b9dcff;outline-offset:3px}

/* Keep the primary motion/stop controls visible while precise inputs scroll. */
#camera-modal .modal-quick-controls{position:sticky;top:0;z-index:2;padding:8px 0 12px;background:var(--panel,#20252d);border-bottom:1px solid var(--border,#3e4857)}
#camera-modal .modal-quick-controls .ptz-pad{margin-top:0}#camera-modal #ptz-stop{border-color:#ba6a61;background:#613830;color:#fff}
#camera-modal .modal-quick-controls button:focus-visible{outline:2px solid #b9dcff;outline-offset:2px}
.fleet-context-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border,#3e4857)}.fleet-context-summary details{margin-left:auto}.fleet-context-summary details[open]{flex-basis:100%;margin-left:0}.fleet-context-summary details summary{cursor:pointer;color:var(--muted,#a0a6b2);font-size:14px}#drone-actions:empty{display:none}
@media(max-width:1280px){
 main>header{height:auto;min-height:88px;flex-wrap:wrap;gap:10px 16px;padding:12px 0}
 .workspace-heading{flex:1 1 350px}.workspace-heading>div{min-width:0}
 .workspace-heading h1{font-size:24px;line-height:1.35;word-break:keep-all;overflow-wrap:normal}
 .header-right{flex:1 1 330px;flex-wrap:wrap;justify-content:flex-end;max-width:100%}
}
@media(max-width:700px){.workspace-heading{flex-basis:100%}.workspace-heading h1{font-size:20px}.header-right{flex-basis:100%;justify-content:flex-start}}

a.location-open-amap,a.location-open-baidu{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;vertical-align:middle;max-width:100%;padding:7px 11px;border:1px solid #3972be;border-radius:4px;background:#25282f;color:#dbeaff;font-size:var(--font-label,15px);line-height:1.5;text-decoration:none;white-space:nowrap}a.location-open-baidu{border-color:#4b8bcd}a.location-open-amap:hover,a.location-open-baidu:hover{background:#303d52;border-color:#7aa7e2;color:#fff}a.location-open-amap:focus-visible,a.location-open-baidu:focus-visible{outline:2px solid #b9dcff;outline-offset:3px}a.location-open-amap[aria-disabled=true],a.location-open-baidu[aria-disabled=true]{opacity:.45;pointer-events:none}
