/* GSU-01 / professional geospatial operations room */
:root{--ops-navy:#172b3c;--ops-teal:#117f96;--ops-line:#e5ebef;--ops-sub:#758a9b}
#main:has(.ops-page-heading){max-width:none;padding:25px 27px 33px}
.ops-page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.ops-page-heading .eyebrow{margin-bottom:8px}
.ops-page-heading h1{font-size:33px;letter-spacing:-.04em;line-height:1.15;margin:0;color:#172d40;font-weight:800}
.ops-heading-accent{color:#638095;font-weight:550}
.ops-page-heading p{margin:9px 0 0;color:#8498a8;font-size:16px;line-height:1.6}
.ops-page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ops-page-actions .btn{padding:10px 12px;height:37px;background:white;font-size:16px;border-color:#dce6ec}
.ops-page-actions .btn svg{width:15px;height:15px}
.ops-demo-flag{display:flex;align-items:center;gap:8px;font-size:14px;letter-spacing:.07em;color:#237766;font-weight:800;padding:10px 12px;border-radius:8px;background:#e9f6f1;border:1px solid #d2eadf;white-space:nowrap}
.ops-demo-flag i{width:7px;height:7px;border-radius:50%;background:#20a584;box-shadow:0 0 0 4px #26b18b1d}
.ops-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.ops-kpi{background:#fff;border:1px solid #e2e9ee;border-radius:11px;box-shadow:0 2px 13px #1c3e5410;min-height:74px;display:flex;align-items:center;gap:12px;padding:14px 15px;min-width:0}
.ops-kpi-icon{height:37px;width:37px;flex:none;border-radius:9px;background:#e9f2f5;display:grid;place-items:center;color:#3e8fa4}
.ops-kpi-icon svg{width:19px;height:19px}
.ops-kpi-icon.driving{background:#e4f5ef;color:#198d71}
.ops-kpi-icon.depot{background:#eef3fc;color:#557daa}
.ops-kpi-icon.critical{background:#fff0ef;color:#d3545e}
.ops-kpi-text{display:flex;flex-direction:column;min-width:0;gap:3px}
.ops-kpi-text strong{font-size:28px;letter-spacing:-.048em;font-variant-numeric:tabular-nums;color:#1d3348;line-height:1.1}
.ops-kpi-text>span{font-size:15px;color:#738799;white-space:nowrap;font-weight:650}
.ops-kpi>small{margin-left:auto;align-self:flex-end;color:#9aabb8;font-size:14px;white-space:nowrap}
#main:has(.ops-page-heading) .simulation-bar{margin:0 0 14px;background:white;border:1px solid #e3ebee;box-shadow:0 2px 9px #1c40500a;border-radius:10px;padding:10px 13px}
#main:has(.ops-page-heading) .route-data-status{color:#237d91;font-size:15px;font-weight:750}
.ops-workspace{border:1px solid #dce6ed;overflow:hidden;background:#fff;border-radius:13px;box-shadow:0 4px 23px #263e510d}
.ops-workspace-body{display:grid;grid-template-columns:minmax(0,1fr) 337px;align-items:stretch}
.ops-map-section{min-width:0;position:relative;background:#fff}
.ops-stage-heading{height:65px;padding:0 18px 0 20px;border-bottom:1px solid #e7edf1;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ops-stage-title{display:flex;gap:10px;align-items:center;min-width:0}
.ops-stage-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:9px;background:#e9f6f8;color:#168aa2}
.ops-stage-icon svg{width:17px;height:17px}
.ops-stage-title>span:last-child{min-width:0}
.ops-stage-title strong{display:block;font-size:17px;font-weight:800;color:#1a3347}
.ops-stage-title small{display:block;color:#9aabba;margin-top:4px;font-size:14px}
.ops-view-tabs{display:inline-flex;border:1px solid #e4eaf0;border-radius:9px;background:#f4f7f9;padding:3px;gap:2px}
.ops-view-tabs button{display:flex;align-items:center;gap:6px;border:0;background:none;color:#7990a0;font-size:15px;font-weight:750;border-radius:6px;padding:8px 11px;white-space:nowrap}
.ops-view-tabs button svg{width:14px;height:14px}
.ops-view-tabs button.active{background:#fff;color:#197b93;box-shadow:0 2px 7px #1c405017}
.ops-viewport{height:clamp(540px,64vh,755px);position:relative;isolation:isolate;background:#dde7eb;overflow:hidden}
.ops-map-canvas{width:100%;height:100%!important;min-height:0!important;position:absolute;inset:0}
.ops-viewport>.maplibregl-map{width:100%}
.ops-floating-search{position:absolute;z-index:7;left:20px;top:19px;width:min(345px,calc(100% - 105px))}
.ops-floating-search label{display:flex;height:47px;align-items:center;gap:11px;padding:0 12px 0 14px;border-radius:9px;border:1px solid #e0e9ed;background:rgba(255,255,255,.98);box-shadow:0 6px 22px #112d3c24;color:#7493a5;backdrop-filter:blur(9px)}
.ops-floating-search label svg{width:18px;height:18px;flex:none}
.ops-floating-search input{border:0;background:transparent;outline:0;width:100%;min-width:0;font-size:16px;color:#263c4e;font-weight:600}
.ops-floating-search input::placeholder{color:#93a6b4;font-weight:500}
.ops-floating-search kbd{font:700 10px Inter,sans-serif;border:1px solid #e4eaed;color:#9bacb8;border-radius:4px;background:#f7f9fa;padding:4px;white-space:nowrap}
.ops-search-results{background:white;border:1px solid #e5eaed;box-shadow:0 12px 34px #17344b25;border-radius:10px;margin-top:7px;padding:6px;max-height:342px;overflow:auto}
.ops-search-results[hidden]{display:none}
.ops-search-result{display:flex;align-items:center;gap:10px;text-align:left;background:transparent;border:0;padding:11px 9px;width:100%;border-radius:7px}
.ops-search-result:hover{background:#eff7f9}
.ops-search-result>span:first-child{width:29px;height:29px;border-radius:7px;background:#e9f6f8;color:#258ca0;flex:none;display:grid;place-items:center}
.ops-search-result>span:first-child svg{width:16px}
.ops-search-result>span:nth-child(2){min-width:0;flex:1}
.ops-search-result strong,.ops-search-result small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-search-result strong{font-size:16px;color:#254357;font-weight:760}
.ops-search-result small{font-size:14px;color:#90a2af;margin-top:4px}
.ops-search-result>svg{width:14px;color:#93adb8}
.ops-no-match{padding:18px 10px;text-align:center;color:#8299aa;font-size:15px;line-height:1.5}
.ops-floating-tools{z-index:6;position:absolute;right:20px;top:78px;display:flex;flex-direction:column;gap:11px}
.ops-tool-group{border:1px solid #e1e9ef;background:#fff;box-shadow:0 6px 18px #112d3d1b;padding:5px;display:flex;flex-direction:column;gap:3px;border-radius:10px}
.ops-tool-btn{height:36px;width:37px;padding:0;border:0;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#607e90;background:white;transition:background .13s,color .13s}
.ops-tool-btn>span{display:none}.ops-tool-btn>svg{width:18px;height:18px}
.ops-tool-btn:hover{background:#eef6f8;color:#167e97}
.ops-tool-btn.active{background:#dff3f6;color:#0e7f98}
.ops-tool-btn:disabled{opacity:.3;cursor:not-allowed}
.ops-viewport-status{position:absolute;z-index:5;top:20px;right:20px;background:rgba(19,37,50,.9);backdrop-filter:blur(11px);color:#bfd4dc;display:flex;gap:7px;align-items:center;font-size:14px;border-radius:8px;padding:12px 13px;box-shadow:0 6px 17px #152e3c32}
.ops-viewport-status b{color:#f2fcff;letter-spacing:.04em;font-size:14px}
.ops-broadcast-indicator{width:7px;height:7px;border-radius:50%;background:#39c4a0;box-shadow:0 0 0 4px #3ac49e2b}
.ops-viewport-bottom{position:absolute;z-index:5;left:20px;right:20px;bottom:20px;display:flex;align-items:end;justify-content:space-between;gap:10px;pointer-events:none}
.ops-map-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;background:rgba(255,255,255,.96);box-shadow:0 3px 18px #102b3927;border-radius:8px;border:1px solid #e2e9ed;padding:11px 13px;backdrop-filter:blur(8px)}
.ops-map-legend>span{font-size:14px;font-weight:700;color:#496274;display:flex;gap:6px;align-items:center;white-space:nowrap}
.ops-map-legend i{width:8px;height:8px;border-radius:50%;background:#2593a8}
.ops-map-legend i.moving{background:#1596ab}.ops-map-legend i.depot{background:#28a78b}.ops-map-legend i.idle{background:#dda74f}.ops-map-legend i.offline{background:#a9b7c1}.ops-map-legend i.event{background:#d75862}
.ops-legend-muted{opacity:.34}
.ops-cursor-position{background:#fffefeea;border-radius:7px;border:1px solid #e4edf0;color:#718b9c;font-size:14px;font-variant-numeric:tabular-nums;padding:9px 10px;box-shadow:0 3px 14px #102c3820;white-space:nowrap}
.ops-stage-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 20px;border-top:1px solid #e9eef1;color:#93a5b2;font-size:14px;min-height:42px}
.ops-stage-footer>span:first-child{color:#397c86;display:flex;align-items:center;gap:7px}
.ops-stage-footer svg{width:14px;height:14px}
.ops-inspector{border-left:1px solid #e5ebef;max-height:calc(clamp(540px,64vh,755px) + 107px);display:flex;flex-direction:column;min-width:0;background:#fff}
.ops-inspector-heading{min-height:65px;padding:13px 19px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e9eef2}
.ops-inspector-heading>div{display:flex;flex-direction:column;gap:5px}
.ops-inspector-heading small{font-size:14px;letter-spacing:.1em;font-weight:850;color:#899dad}
.ops-inspector-heading strong{color:#263e51;font-size:18px}
.ops-inspector-badge{background:#f0f4f6;color:#8299a8;font-size:14px;border:1px solid #e5eaee;font-weight:850;border-radius:5px;padding:5px 6px;letter-spacing:.08em}
.ops-inspector-tabs{height:46px;display:flex;border-bottom:1px solid #e9eff2;padding:0 15px;gap:12px}
.ops-inspector-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;min-width:0;flex:1;color:#90a2b0;display:flex;align-items:center;justify-content:center;gap:6px;font-size:15px;font-weight:750}
.ops-inspector-tabs button svg{width:15px;height:15px}
.ops-inspector-tabs button.active{border-color:#1592a7;color:#167f98}
.ops-inspector-content{padding:18px;overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:#d5e3ea transparent}
.ops-empty-selection{text-align:center;padding:18px 14px 22px;background:linear-gradient(160deg,#f3f8fa,#fff);border:1px solid #e6eef1;border-radius:11px;margin-bottom:22px}
.ops-selection-emblem{width:49px;height:49px;background:#e7f4f7;color:#168ea2;display:grid;place-items:center;border-radius:15px;margin:0 auto 12px}
.ops-selection-emblem svg{width:24px;height:24px}
.ops-empty-selection h3{font-size:18px;color:#213a4e;margin:0 0 8px}
.ops-empty-selection p{font-size:15px;color:#8095a5;line-height:1.7;margin:0}
.ops-inspector-section-heading{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:#849aab;letter-spacing:.075em;font-weight:850;margin:0 0 12px}
.ops-inspector-section-heading small{font-size:14px;letter-spacing:0;color:#a5b4bf}
.ops-quick-list{display:flex;flex-direction:column}
.ops-quick-vehicle{width:100%;background:transparent;border:0;border-bottom:1px solid #edf2f4;text-align:left;padding:10px 0;display:flex;gap:9px;align-items:center}
.ops-quick-vehicle:hover{background:#f8fbfc}
.ops-vehicle-mini{height:31px;width:31px;border-radius:8px;display:grid;place-items:center;background:#edf5f8;color:#288da2;flex:none}
.ops-vehicle-mini svg{width:17px;height:17px}
.ops-quick-vehicle>span:nth-child(2){min-width:0;flex:1}
.ops-quick-vehicle strong{display:block;font-size:15px;color:#2e485d}
.ops-quick-vehicle small{display:block;color:#94a5b2;font-size:14px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops-mini-state{height:7px;width:7px;border-radius:50%;display:block;background:#ddb06a;flex:none}
.ops-mini-state.moving{background:#1aa184}.ops-mini-state.depot{background:#4187bf}.ops-mini-state.offline{background:#a4b1bb}.ops-mini-state.idle{background:#e0ac59}
.ops-quick-vehicle>svg{width:14px;height:14px;color:#afbec7}
.ops-safety-hint{display:flex;gap:8px;align-items:flex-start;border:1px solid #e3edf2;background:#f4f9fb;border-radius:9px;padding:12px;margin-top:18px;color:#7994a4;font-size:14px;line-height:1.6}
.ops-safety-hint svg{color:#4d9cae;width:16px;height:16px;flex:none}
.ops-selected-vehicle{display:flex;justify-content:space-between;align-items:flex-start;gap:9px;margin:0 0 17px}
.ops-hero-heading{display:flex;align-items:center;gap:10px;min-width:0}
.ops-hero-truck{background:#e5f4f7;width:38px;height:38px;border-radius:9px;display:grid;place-items:center;flex:none;color:#1488a1}
.ops-hero-truck svg{width:20px;height:20px}
.ops-hero-heading>span:last-child{min-width:0}
.ops-hero-heading strong{display:block;color:#1f364a;font-size:19px;letter-spacing:-.025em}
.ops-hero-heading small{display:block;color:#93a4b3;font-size:14px;margin-top:5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.ops-hero-status{display:flex;align-items:center;gap:5px;border-radius:7px;background:#edf8f3;color:#1d906f;padding:7px 8px;white-space:nowrap}
.ops-hero-status b{font-size:14px}
.ops-selected-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:17px}
.ops-selected-stats>div{border:1px solid #e7ecf0;background:#f9fbfc;border-radius:9px;padding:11px 12px;min-height:70px}
.ops-selected-stats small{font-size:14px;color:#8d9fad;display:block;margin-bottom:9px}
.ops-selected-stats strong{font-size:22px;color:#263e50;line-height:1.2;font-variant-numeric:tabular-nums}
.ops-selected-stats em{font-size:14px;color:#8fa1b0;font-style:normal;margin-left:3px}
.ops-route-completion{margin:0 0 16px}
.ops-route-completion>span{display:flex;justify-content:space-between;color:#72889a;font-size:15px;font-weight:650;margin-bottom:9px}
.ops-route-completion b{color:#168b9e}
.ops-route-completion>div{height:8px;overflow:hidden;background:#edf2f5;border-radius:10px}
.ops-route-completion i{height:100%;display:block;background:linear-gradient(90deg,#238d9e,#31b8a3);border-radius:10px;transition:width .4s}
.ops-route-actions{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 23px}
.ops-minor-action{border:1px solid #dce7ed;border-radius:7px;display:flex;gap:5px;align-items:center;background:#fff;padding:8px;color:#55788a;font-size:14px;font-weight:750}
.ops-minor-action svg{width:14px;height:14px}
.ops-minor-action:hover,.ops-minor-action.active{color:#107e98;background:#e8f7fa}
.ops-minor-action.ops-clear{margin-left:auto}
.ops-timeline{padding:0 0 4px 0}
.ops-timeline-stop{display:flex;width:100%;gap:10px;align-items:flex-start;background:transparent;text-align:left;border:0;padding:10px 0;position:relative}
.ops-timeline-stop:not(:last-child):before{content:"";position:absolute;top:31px;bottom:-9px;left:13px;border-left:1px dashed #ccdae2}
.ops-timeline-index{width:27px;height:27px;flex:none;display:grid;place-items:center;background:#f4f7f9;border:1px solid #d5e2e8;border-radius:50%;font-size:14px;color:#849aa8;font-weight:850;position:relative;z-index:1}
.ops-timeline-index svg{width:13px;height:13px}
.ops-timeline-stop.done .ops-timeline-index{background:#e5f7ef;color:#178e74;border-color:#a8dfcc}
.ops-timeline-stop.next .ops-timeline-index{background:#e8f5f8;border-color:#9ed3df;color:#16899f}
.ops-timeline-text{flex:1;min-width:0}
.ops-timeline-text strong{display:block;color:#37556a;font-size:15px;line-height:1.45}
.ops-timeline-text small{display:block;color:#9baebb;font-size:14px;margin-top:5px}
.ops-timeline-stop>svg{width:14px;height:14px;color:#adc0cb;flex:none}
.ops-timeline-stop:hover .ops-timeline-text strong{color:#11889e}
.ops-live-coordinate{display:flex;gap:6px;align-items:center;background:#f0f8fa;border:1px solid #e0edf1;padding:11px;border-radius:8px;color:#8397a7;font-size:14px;margin:16px 0}
.ops-live-coordinate svg{width:14px;height:14px;color:#2b8ea2}
.ops-live-coordinate b{color:#2e586d;margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.ops-inspector-link{border:0;background:none;font-size:15px;color:#137e96;font-weight:800;padding:9px 0;display:flex;align-items:center;gap:5px}
.ops-inspector-link svg{width:14px}
.ops-events-intro{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.ops-events-intro>span{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#fef0ef;color:#d65a61}
.ops-events-intro svg{width:19px}
.ops-events-intro strong{font-size:17px;display:block;color:#314b60}
.ops-events-intro small{font-size:14px;display:block;color:#98a9b6;margin-top:4px}
.ops-priority-chips{display:flex;gap:6px;margin:0 0 14px}
.ops-priority-chips button{border:1px solid #e2e9ed;color:#7c909f;font-size:14px;font-weight:700;padding:7px 12px;border-radius:7px;background:#fff}
.ops-priority-chips button.active{color:#167d94;border-color:#a4d4df;background:#ebf8fa}
.ops-event-row{display:flex;align-items:flex-start;gap:10px;border-bottom:1px solid #edf2f4;padding:12px 0}
.ops-event-locator{width:31px;height:31px;flex:none;border:1px solid #f0dfe1;background:#fff0f1;color:#d75a60;border-radius:8px;display:grid;place-items:center}
.ops-event-locator svg{width:16px}
.ops-event-info{flex:1;border:0;background:transparent;text-align:left;min-width:0;padding:0}
.ops-event-info strong{display:block;color:#2c4559;font-size:15px;line-height:1.4}
.ops-event-info small{display:block;color:#98a8b5;font-size:14px;margin:5px 0}
.ops-event-info>span{display:flex;align-items:center;gap:4px;font-size:14px;color:#849bad}
.ops-event-info em{font-style:normal;color:#b0bdc5}
.ops-priority-pip{width:7px;height:7px;border-radius:50%;background:#42a885}
.ops-priority-pip.red{background:#d95f65}.ops-priority-pip.orange{background:#d9a358}.ops-priority-pip.green{background:#32ae89}
.ops-layer-list{margin:0 0 22px}
.ops-layer-row{padding:13px 0;display:flex;gap:9px;align-items:center;text-align:left;width:100%;background:#fff;border:0;border-bottom:1px solid #eef1f4}
.ops-layer-icon{height:32px;width:32px;flex:none;display:grid;place-items:center;color:#3f92a5;border-radius:8px;background:#eef7f9}
.ops-layer-icon svg{width:17px}
.ops-layer-info{flex:1;min-width:0}
.ops-layer-info strong{display:block;color:#2d475b;font-size:15px}
.ops-layer-info small{display:block;color:#9aabb7;font-size:14px;margin-top:4px;line-height:1.4}
.ops-switch{display:flex;align-items:center;width:34px;height:19px;background:#dbe5eb;border-radius:20px;flex:none;padding:3px;transition:background .15s}
.ops-switch i{height:13px;width:13px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #2840521f;transition:transform .15s}
.ops-switch.on{background:#2395a9}.ops-switch.on i{transform:translateX(15px)}
.ops-style-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 24px}
.ops-style-card{padding:5px 5px 9px;display:flex;flex-direction:column;gap:8px;align-items:center;border:1px solid #e5ebf0;border-radius:9px;background:#fff;color:#657c8b}
.ops-style-card b{font-size:14px;font-weight:750}
.ops-style-card.active{border-color:#1598ae;box-shadow:0 0 0 2px #27a0ad1d;color:#158298}
.ops-style-thumb{width:100%;height:53px;border-radius:5px;position:relative;overflow:hidden;background:#e2ebe7}
.ops-style-thumb i{position:absolute;height:5px;width:135%;left:-10%;top:42%;background:#fff;transform:rotate(-30deg);border-radius:6px;box-shadow:0 1px 0 #b5c8c6}
.ops-style-thumb i:nth-child(2){transform:rotate(38deg);top:52%;height:3px}
.ops-style-thumb i:nth-child(3){height:6px;width:10px;left:56%;top:32%;background:#2398b3;border-radius:50%;transform:none;box-shadow:0 0 0 3px #fff}
.ops-style-card.style-bright .ops-style-thumb{background:#d5e6c1}
.ops-style-card.style-dark .ops-style-thumb{background:#243c51}
.ops-style-card.style-dark .ops-style-thumb i{background:#58728a;box-shadow:none}
.ops-style-card.style-dark .ops-style-thumb i:last-child{background:#f5a85d;box-shadow:0 0 0 3px #173147}
.ops-workspace-bottom{border-top:1px solid #e7eef1;min-height:37px;display:flex;align-items:center;justify-content:space-between;padding:10px 18px;gap:13px;color:#91a3b2;font-size:14px}
.ops-workspace-bottom>span:first-child{display:flex;align-items:center;gap:7px}
.ops-workspace-bottom svg{width:13px;color:#8ba5b5}
.ops-workspace-bottom b{color:#668497;font-weight:850}
.ops-viewport .maplibregl-ctrl-bottom-right{right:11px;bottom:56px}
.ops-viewport .maplibregl-ctrl-attrib{opacity:.8;border-radius:6px;font-size:14px}
body.ops-fullscreen-body{overflow:hidden!important}
.ops-workspace.ops-fullscreen{position:fixed;inset:0;z-index:65;border-radius:0;margin:0;box-shadow:none;display:flex;flex-direction:column}
.ops-workspace.ops-fullscreen .ops-workspace-body{height:calc(100dvh - 41px);min-height:0;flex:1}
.ops-workspace.ops-fullscreen .ops-map-section{display:flex;flex-direction:column;min-height:0}
.ops-workspace.ops-fullscreen .ops-viewport{flex:1;height:auto}
.ops-workspace.ops-fullscreen .ops-inspector{height:auto;max-height:none;min-height:0}
.ops-workspace.ops-fullscreen .ops-workspace-bottom{height:41px;flex:none}
@media(max-width:1350px){
 .ops-workspace-body{grid-template-columns:minmax(0,1fr) 318px}
 .ops-kpi>small{display:none}
 .ops-viewport{height:clamp(510px,62vh,720px)}
 .ops-inspector{max-height:calc(clamp(510px,62vh,720px) + 107px)}
}
@media(max-width:1120px){
 .ops-page-heading h1{font-size:30px}
 #main:has(.ops-page-heading){padding:20px}
 .ops-kpi{gap:8px;padding:11px}
 .ops-workspace-body{grid-template-columns:minmax(0,1fr) 300px}
 .ops-inspector-content{padding:13px}
 .ops-viewport-status span:last-child{display:none}
}
@media(max-width:980px){
 .ops-workspace-body{display:flex;flex-direction:column}
 .ops-inspector{border-left:0;border-top:1px solid #e5ebef;max-height:none}
 .ops-inspector-content{overflow:auto;max-height:540px;padding:18px 21px}
 .ops-viewport{height:clamp(490px,65vh,720px)}
 .ops-workspace.ops-fullscreen .ops-inspector{display:none}
 .ops-page-heading{align-items:flex-start}
 .ops-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:650px){
 #main:has(.ops-page-heading){padding:18px 12px 27px}
 .ops-page-heading h1{font-size:28px}
 .ops-page-heading p{font-size:15px}
 .ops-page-actions{width:100%;gap:5px}
 .ops-demo-flag{font-size:14px;padding:8px}
 .ops-page-actions .btn{padding:8px;font-size:14px;height:33px}
 .ops-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .ops-kpi{min-height:66px}
 .ops-kpi-text strong{font-size:25px}
 .ops-stage-heading{height:auto;min-height:59px;padding:10px 11px;gap:6px}
 .ops-stage-title{gap:7px}
 .ops-stage-icon{width:29px;height:29px}
 .ops-stage-title strong{font-size:15px}
 .ops-stage-title small{font-size:14px;line-height:1.4}
 .ops-view-tabs button{padding:7px 8px;font-size:14px}
 .ops-view-tabs button svg{display:none}
 .ops-viewport{height:500px}
 .ops-floating-search{top:12px;left:11px;right:58px;width:auto}
 .ops-floating-search label{height:44px;padding:0 11px}
 .ops-floating-search input{font-size:15px}
 .ops-floating-search kbd{display:none}
 .ops-viewport-status{display:none}
 .ops-floating-tools{right:10px;top:65px;gap:6px}
 .ops-tool-group{padding:3px}
 .ops-tool-btn{width:32px;height:32px}
 .ops-tool-btn>svg{width:16px}
 .ops-viewport-bottom{bottom:15px;left:10px;right:10px}
 .ops-map-legend{padding:8px 9px;gap:6px 11px;max-width:100%}
 .ops-map-legend>span{font-size:14px}
 .ops-cursor-position{display:none}
 .ops-stage-footer{padding:10px;font-size:14px;flex-wrap:wrap}
 .ops-stage-footer>span:last-child{font-size:14px}
 .ops-inspector-content{padding:15px}
 .ops-workspace-bottom{padding:10px;font-size:14px;line-height:1.4}
 .ops-workspace-bottom>span:last-child{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.ops-route-completion i,.ops-switch,.ops-switch i{transition:none}}

.ops-floating-filter{position:absolute;z-index:6;top:77px;left:20px;display:flex;align-items:center;gap:9px;padding:5px 6px 5px 11px;border:1px solid #e1e9ed;border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 4px 18px #16324722;backdrop-filter:blur(10px);height:38px}
.ops-floating-filter>span{font-size:14px;font-weight:850;letter-spacing:.07em;color:#8aa0b1}
.ops-floating-filter select{border:0;background:transparent;color:#537587;font-size:15px;font-weight:760;max-width:140px;padding:3px;outline:none}
.ops-floating-filter button{width:27px;height:26px;border:0;border-left:1px solid #e6eef1;background:transparent;color:#4b94a6;display:grid;place-items:center}
.ops-floating-filter button svg{width:16px}
.ops-floating-filter button:hover{background:#edf8fa}
@media(max-width:650px){.ops-floating-filter{top:64px;left:11px;height:35px}.ops-floating-filter select{font-size:14px}}

@media(max-width:980px){
 .ops-workspace.ops-fullscreen .ops-workspace-body{display:flex;flex-direction:column;flex:1;min-height:0;height:calc(100dvh - 41px)}
 .ops-workspace.ops-fullscreen .ops-map-section{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}
 .ops-workspace.ops-fullscreen .ops-stage-heading{flex:none}
 .ops-workspace.ops-fullscreen .ops-viewport{display:block;position:relative;flex:1 1 auto!important;min-height:210px!important;height:auto!important}
 .ops-workspace.ops-fullscreen .ops-stage-footer{flex:none}
 .ops-workspace.ops-fullscreen .ops-inspector{display:none}
}

/* Map security incident selection and demo route-deviation comparison */
.ops-demo-incident-bar{padding:8px;margin:0 0 14px;background:#edf7fa;border:1px solid #d6edf2;border-radius:10px}
.ops-demo-incident-bar>button{width:100%;border:0;border-radius:7px;padding:11px 12px;display:flex;align-items:center;gap:9px;background:#167f9a;color:#fff;font-size:15px;font-weight:790;text-align:left;transition:background .15s}
.ops-demo-incident-bar>button:hover{background:#096d84}
.ops-demo-incident-bar>button span{flex:1}
.ops-demo-incident-bar>button svg{width:17px;height:17px;flex:none}
.ops-demo-incident-bar>small{display:block;font-size:14px;line-height:1.5;color:#688e9f;padding:8px 6px 2px}
.ops-event-row.selected{margin:0 -7px;padding:11px 7px;background:#f1fafb;border-left:3px solid #2394aa;border-radius:6px}
.ops-event-row.selected .ops-event-info strong{color:#0f7a92}
.ops-event-row .ops-event-info:hover strong{color:#0e7891}
.ops-event-locator{transition:background .13s,color .13s}
.ops-event-locator:hover,.ops-event-row.selected .ops-event-locator{background:#cf4454;color:#fff}
.ops-event-focus-card{border:1px solid #dae7ee;background:#fff;box-shadow:0 4px 16px #21465a12;border-radius:11px;padding:14px;margin:0 0 19px;position:relative}
.ops-event-focus-eyebrow{display:flex;justify-content:space-between;align-items:center;gap:7px;padding-bottom:11px;border-bottom:1px solid #e8eef2;margin-bottom:13px}
.ops-event-focus-eyebrow>span{display:flex;align-items:center;gap:7px;color:#167f92;font-size:14px;font-weight:870;letter-spacing:.07em}
.ops-event-focus-eyebrow>span i{width:6px;height:6px;border-radius:50%;background:#26b29d;box-shadow:0 0 0 3px #e5f9f3}
.ops-event-focus-eyebrow>button{display:grid;place-items:center;height:25px;width:25px;background:#f4f7f9;border:0;border-radius:6px;color:#9dadb8}
.ops-event-focus-eyebrow>button:hover{background:#e6eef2;color:#4c6b7a}
.ops-event-focus-eyebrow>button svg{width:14px;height:14px}
.ops-event-focus-heading{display:flex;gap:9px;align-items:center;margin-bottom:12px}
.ops-event-focus-icon{display:grid;place-items:center;flex:none;height:38px;width:38px;border-radius:9px;color:#d44b55;background:#fff0f1}
.ops-event-focus-icon.high{color:#d48a2c;background:#fff5e5}
.ops-event-focus-icon.info{color:#198d74;background:#eaf8f3}
.ops-event-focus-icon svg{width:19px;height:19px}
.ops-event-focus-heading>div{min-width:0;flex:1}
.ops-event-focus-heading strong{display:block;font-size:17px;line-height:1.35;color:#233a4d}
.ops-event-focus-heading small{display:block;margin-top:5px;font-size:14px;color:#8aa0ad;line-height:1.5}
.ops-event-focus-meta{display:flex;justify-content:space-between;gap:10px;padding:0 0 12px;color:#869eac;font-size:14px;font-weight:620}
.ops-event-focus-meta>span:first-child{color:#437487;font-weight:850}
.ops-deviation-result{border:1px solid #f0d7d9;border-radius:9px;padding:14px;background:#fff6f5}
.ops-deviation-result>small,.ops-event-coordinate>small{display:block;color:#aa5862;font-size:14px;font-weight:850;letter-spacing:.065em}
.ops-deviation-result>strong{display:block;color:#c74353;font-size:35px;line-height:1.15;letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin:8px 0}
.ops-deviation-result strong em{font-style:normal;font-size:18px;font-weight:720;letter-spacing:0}
.ops-deviation-result>span{display:block;font-size:14px;color:#a7727a;line-height:1.55}
.ops-event-coordinate{background:#f3f8fb;border:1px solid #e1ecf0;padding:12px;border-radius:8px}
.ops-event-coordinate>small{color:#658a99}
.ops-event-coordinate>strong{display:block;color:#225165;font-variant-numeric:tabular-nums;font-size:16px;letter-spacing:-.02em;margin-top:8px}
.ops-event-map-key{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 4px}
.ops-event-map-key>span{display:flex;align-items:center;gap:5px;color:#617e8d;font-size:14px;white-space:nowrap}
.ops-event-map-key i{width:8px;height:8px;flex:none;border-radius:50%;background:#1a96b3}
.ops-event-map-key i.observed{background:#de4e60}
.ops-event-map-key i.gap{height:0;width:16px;border-bottom:2px dashed #df4b5d;border-radius:0;background:transparent}
.ops-event-focus-note{font-size:14px;color:#a07679;line-height:1.6}
.ops-event-focus-buttons{display:flex;gap:7px;margin:14px 0 0}
.ops-event-focus-buttons button{flex:1;border-radius:7px;border:1px solid #d7e7eb;background:#fff;padding:9px 6px;display:flex;justify-content:center;align-items:center;gap:6px;font-size:14px;color:#287e91;font-weight:760}
.ops-event-focus-buttons button:first-child{background:#eaf7fa;border-color:#cde5eb}
.ops-event-focus-buttons button:hover{background:#dff3f7}
.ops-event-focus-buttons button svg{height:14px;width:14px}
.ops-event-synthetic-note{display:flex;gap:6px;align-items:start;color:#97a6af;font-size:14px;margin:12px 0 0;line-height:1.5}
.ops-event-synthetic-note svg{width:13px;height:13px;flex:none}
@media(max-width:650px){
 .ops-event-focus-card{padding:13px}
 .ops-deviation-result>strong{font-size:31px}
 .ops-demo-incident-bar>button{font-size:15px}
}

/* Full route incident history — every recorded event remains accessible as a map marker. */
.ops-route-incident-group{border-top:1px solid #e4edf1;padding-top:15px;margin-top:18px;margin-bottom:16px}
.ops-route-incident-list{display:flex;flex-direction:column;margin:9px 0 0}
.ops-route-incident-item{display:flex;align-items:center;gap:10px;border:0;border-bottom:1px solid #edf2f4;background:#fff;padding:10px 1px;text-align:left;width:100%;border-radius:4px}
.ops-route-incident-item:hover{background:#f2f9fb}
.ops-route-incident-num{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:9px;border:2px solid white;box-shadow:0 0 0 1px #dce6e9;color:white;font-size:15px;font-weight:900;font-variant-numeric:tabular-nums}
.ops-route-incident-num.security{background:#d84f5a}
.ops-route-incident-num.deviation{background:#ad5eca}
.ops-route-incident-num.stop{background:#d99037}
.ops-route-incident-num.delivery{background:#20a37e}
.ops-route-incident-num.other{background:#559db4}
.ops-route-incident-main{min-width:0;flex:1}
.ops-route-incident-main strong{display:block;font-size:15px;color:#2e4b5d;line-height:1.4}
.ops-route-incident-main small{display:block;font-size:14px;color:#97abb7;margin-top:4px;line-height:1.45}
.ops-route-incident-item>svg{width:14px;height:14px;color:#abc0c9}
.ops-route-all-action{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cae5ec;border-radius:8px;background:#eaf7fa;color:#187e95;font-size:15px;font-weight:800;padding:10px 12px;margin:0 0 9px;transition:background .14s}
.ops-route-all-action:hover{background:#d8f1f6}
.ops-route-all-action svg{width:15px;height:15px}
.ops-route-all-action.ops-event-all-trucks{background:white;border-color:#dce9ee;color:#567c8d}
.ops-route-event-caption{display:flex;flex-wrap:wrap;gap:7px 10px;align-items:center;padding:8px 0 12px;font-size:14px;color:#69899b;line-height:1.4}
.ops-route-event-caption i{width:9px;height:9px;display:inline-block;border-radius:50%;background:#539bb4;flex:none;margin-right:-5px}
.ops-route-event-caption i.security{background:#d84f5a}
.ops-route-event-caption i.deviation{background:#ad5eca}
.ops-route-event-caption i.stop{background:#d99037}
.ops-route-event-caption i.delivery{background:#20a37e}
.ops-route-empty{font-size:15px;line-height:1.6;color:#8098a7;background:#f5f9fb;border:1px solid #e5edf0;padding:13px;border-radius:8px}

/* Fleet incident quick preview: map hover; click keeps the persistent incident inspector. */
.gsu-incident-preview .maplibregl-popup-content{padding:0;overflow:hidden;border-radius:12px;box-shadow:0 12px 35px #10243642;background:#fff;color:#1b2b3a}
.gsu-incident-preview .maplibregl-popup-tip{border-top-color:#fff}
.gsu-preview-card{width:258px;font-family:inherit}
.gsu-preview-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:11px 11px 3px;font-size:16px}
.gsu-preview-top strong{line-height:1.3}
.gsu-preview-top span{font-size:14px;padding:3px 5px;border-radius:4px;background:#e3eff4}
.gsu-preview-top span.critical{background:#ffe3e4;color:#b52c39}
.gsu-preview-top span.high{background:#fff0d5;color:#97621a}
.gsu-preview-plate{padding:0 11px 9px;font-size:15px;color:#607384}
.gsu-preview-photo img{display:block;width:100%;height:118px;object-fit:cover}
.gsu-preview-empty{height:58px;display:grid;place-items:center;font-size:15px;color:#667788;background:#f2f5f7}
.gsu-preview-meta{padding:9px 11px 4px;font-size:14px;font-variant-numeric:tabular-nums;color:#40576a}
.gsu-preview-note{padding:0 11px 11px;font-size:14px;color:#8a6570}
