:root{--bg:#0a0c11;--panel-bg:#12151c;--panel-bg-2:#171b24;--border:#262b37;--border-soft:#1d212b;--hover-bg:#1b1f29;--input-bg:#0e1117;--chip-bg:#1e2330;--text:#c7ccd6;--text-h:#f2f4f8;--text-dim:#7c8494;--accent:#4dd6ff;--accent-bg:#4dd6ff1f;--good:#3ddc84;--good-bg:#3ddc841f;--good-border:#3ddc8459;--info:#4dd6ff;--info-bg:#4dd6ff1f;--info-border:#4dd6ff59;--warn:#ffb84d;--warn-bg:#ffb84d1f;--warn-border:#ffb84d59;--bad:#ff5c6c;--bad-bg:#ff5c6c1f;--bad-border:#ff5c6c59;--map-bg:#0b0f17;--map-road-casing:#060810;--map-road-minor:#1e2530;--map-road-major:#323c4d;--map-building:#1a2029;--map-building-edge:#333c4d;--map-park:#142219;--sans:"Segoe UI", system-ui, Roboto, sans-serif;--mono:ui-monospace, "Cascadia Code", Consolas, monospace;font:14px/1.45 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0}h1,h2,h3{color:var(--text-h);font-weight:600}table{font:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}.app-shell{flex-direction:column;height:100vh;display:flex}.app-body{flex:1;min-height:0;display:flex}.app-main{box-sizing:border-box;flex:1;min-width:0;min-height:0;padding:20px;overflow:auto;container:app-main/inline-size}.topnav{background:var(--panel-bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:24px;padding:10px 20px;display:flex}.topnav-brand{flex-direction:column;flex-shrink:0;align-items:flex-start;gap:6px;display:flex}.topnav-brand-line{align-items:center;gap:8px;display:flex}.topnav-brand-line strong{letter-spacing:.06em;color:var(--text-h);font-size:15px}.brand-mark{background:var(--accent);width:12px;height:12px;box-shadow:0 0 12px var(--accent);border-radius:3px;flex-shrink:0}.brand-mark.live{animation:2s ease-in-out infinite pulse-dot}.topnav-tabs{scrollbar-width:thin;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.topnav-tab{appearance:none;color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;flex-shrink:0;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s;display:inline-flex;position:relative}.topnav-tab:hover{background:var(--hover-bg);color:var(--text-h)}.topnav-tab.active{background:var(--accent-bg);color:var(--accent)}.topnav-tab:has(.comms-indicator-face.emergency){color:var(--bad)}.comms-tab-indicator{flex-shrink:0;width:30px;height:18px;display:inline-block;position:relative}.comms-indicator-face{align-items:center;gap:3px;display:flex;position:absolute;inset:0}.comms-indicator-face .dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:8px;height:8px}.comms-indicator-face.status.available .dot{background:var(--good);box-shadow:0 0 6px var(--good)}.comms-indicator-face.status.flip{animation:2.4s step-end infinite comms-flip-status}.comms-indicator-bang{background:var(--bad);color:#1a0c0e;text-align:center;width:14px;height:14px;box-shadow:0 0 8px var(--bad);border-radius:50%;flex-shrink:0;font-size:10px;font-weight:800;line-height:14px}.comms-indicator-face.emergency.flip{opacity:0;animation:2.4s step-end infinite comms-flip-emergency}.comms-indicator-count{color:var(--text-h);font-size:10px;font-weight:800}.comms-indicator-face.emergency .comms-indicator-count{color:var(--bad)}@keyframes comms-flip-status{0%,45%{opacity:1}50%,to{opacity:0}}@keyframes comms-flip-emergency{0%,45%{opacity:0}50%,to{opacity:1}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.fleet-overview{height:100%}.split-screen{align-items:stretch;gap:12px;min-width:0;height:100%;min-height:560px;display:flex}@container app-main (width<=840px){.split-screen{flex-direction:column;height:auto}.pane-resize-handle{display:none}.table-pane{width:auto!important}}@media (width<=980px){.split-screen{flex-direction:column;height:auto}.pane-resize-handle{display:none}.table-pane{width:auto!important}}.fleet-narrow{flex-direction:column;gap:12px;height:100%;display:flex}.fleet-view-toggle{flex-shrink:0;gap:8px;display:flex}.fleet-narrow-body{flex:1;min-height:0;display:flex}.fleet-narrow-body .map-pane,.fleet-narrow-body .table-pane{flex:1;width:100%;min-height:0}.map-pane{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:auto;min-width:280px;min-height:420px;display:flex;overflow:hidden}.pane-resize-handle{cursor:col-resize;touch-action:none;flex-shrink:0;width:8px;position:relative}.pane-resize-handle:after{content:"";background:var(--border);border-radius:2px;width:3px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.pane-resize-handle:hover:after,.pane-resize-handle:active:after{background:var(--accent,#4dd6ff)}.pane-collapse-btn{appearance:none;border:1px solid var(--border);background:var(--panel-bg-2);width:20px;height:44px;color:var(--text-dim);cursor:pointer;z-index:2;border-radius:8px;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pane-collapse-btn:hover{color:var(--text-h);background:var(--hover-bg);border-color:var(--accent,#4dd6ff)}.map-pane-header,.table-pane-header,.panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.map-pane-header h2,.table-pane-header h2,.panel-header h2{color:var(--text-h);margin:0;font-size:15px}.map-pane-sub{color:var(--text-dim);font-size:12px}.map-layer-toggles{gap:6px;display:flex}.layer-toggle{appearance:none;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:20px;padding:5px 11px;font-size:11.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.layer-toggle:hover{color:var(--text-h)}.layer-toggle.active{background:var(--accent-bg);border-color:var(--accent-border,var(--accent));color:var(--accent)}.map-canvas{flex:1;min-height:0;position:relative}.transit-map{background:var(--map-bg);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.transit-map.panning{cursor:grabbing}.road-casing-minor{stroke:var(--map-road-casing);stroke-width:5px}.road-fill-minor{stroke:var(--map-road-minor);stroke-width:2.5px}.road-casing-major{stroke:var(--map-road-casing);stroke-width:9px}.road-fill-major{stroke:var(--map-road-major);stroke-width:6px}.building{fill:var(--map-building);stroke:var(--map-building-edge);stroke-width:1px}.building-shadow{fill:#00000059}.street-label{fill:var(--text-dim);letter-spacing:.02em;paint-order:stroke;stroke:var(--map-bg);stroke-width:3px;font-size:10px}.map-controls{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;display:flex;position:absolute;bottom:14px;right:14px;overflow:hidden;box-shadow:0 6px 18px #00000059}.map-controls button{appearance:none;color:var(--text-h);cursor:pointer;border:none;border-bottom:1px solid var(--border);background:0 0;width:34px;height:34px;font-size:17px;line-height:1}.map-controls button:last-child{border-bottom:none}.map-controls button:hover{background:var(--hover-bg)}.map-controls-reset{font-size:14px!important}.traffic-zone{cursor:pointer}.camera-pin-group path:first-child{pointer-events:none}.camera-pin{cursor:pointer;outline:none}.map-park{fill:var(--map-park)}.bus-marker{cursor:pointer;outline:none}.bus-label{fill:var(--text-h);paint-order:stroke;stroke:var(--map-bg);stroke-width:3px;font-size:11px;font-weight:600}.bus-pulse{fill:none;stroke:var(--accent);stroke-width:2px;animation:1.6s ease-out infinite pulse-ring}@keyframes pulse-ring{0%{r:10;opacity:.9}to{r:20;opacity:0}}.map-legend{border-top:1px solid var(--border);color:var(--text-dim);flex-wrap:wrap;flex-shrink:0;gap:16px;padding:10px 18px;font-size:12px;display:flex}.map-legend span{align-items:center;gap:6px;display:inline-flex}.map-legend .dot{border-radius:50%;width:8px;height:8px;display:inline-block}.map-legend .triangle{border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:8px solid var(--bad);width:0;height:0}.map-legend .legend-sep{background:var(--border);width:1px;height:14px}.accident-marker{cursor:pointer;outline:none}.accident-mark{fill:#1a0c0e;font-size:9px;font-weight:700}.accident-pulse{fill:var(--bad);opacity:.3;animation:1.8s ease-in-out infinite accident-pulse}@keyframes accident-pulse{0%,to{r:12;opacity:.35}50%{r:18;opacity:.08}}.table-pane{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex-shrink:0;min-width:0;min-height:420px;display:flex;overflow:hidden}.table-pane.collapsed{flex-shrink:0;transition:width .15s ease-out;width:40px!important}.table-pane-expand-btn{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:14px;width:100%;height:100%;padding:14px 0;display:flex}.table-pane-expand-btn:hover{color:var(--text-h);background:var(--hover-bg)}.table-pane-expand-label{writing-mode:vertical-rl;letter-spacing:.03em;white-space:nowrap;font-size:12px;transform:rotate(180deg)}.fleet-table-wrap{flex:1;min-width:0;overflow:auto}.fleet-table{border-collapse:collapse;width:100%;font-size:13px}.fleet-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);background:var(--panel-bg-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:11px;position:sticky;top:0}.fleet-table tbody td{border-bottom:1px solid var(--border-soft);color:var(--text);vertical-align:middle;padding:10px 12px}.fleet-table tbody tr{cursor:pointer;transition:background .12s}.fleet-table tbody tr:hover{background:var(--hover-bg)}.fleet-table tbody tr.selected{background:var(--accent-bg)}.mono{color:var(--text-h);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.dim{color:var(--text-dim)}.desc-cell{color:var(--text-dim);max-width:280px}.route-chip{background:var(--chip-bg);min-width:26px;height:22px;color:var(--text-h);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.adherence-detail{color:var(--text-dim);white-space:nowrap;margin-left:8px;font-size:11.5px}.col-camera{text-align:center;width:44px}.badge{white-space:nowrap;border:1px solid #0000;border-radius:20px;align-items:center;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge.as-button{cursor:pointer;font:inherit}.badge-on-time{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.badge-early{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.badge-delayed{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border)}.badge-conn-connected{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.badge-conn-weak{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.badge-conn-offline{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border)}.badge-sev-low{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.badge-sev-medium{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.badge-sev-high,.badge-status-open{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border)}.badge-status-investigating{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.badge-status-resolved,.badge-depot-synced{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.badge-depot-syncing{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.badge-depot-pending{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.badge-depot-error{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border)}.btn{appearance:none;cursor:pointer;border:1px solid #0000;border-radius:8px;flex-shrink:0;padding:9px 16px;font-size:13px;font-weight:600;transition:filter .15s,background .15s}.btn-primary{background:var(--accent);color:#06131a}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-ghost{border-color:var(--border);color:var(--text);background:0 0}.btn-ghost:hover{background:var(--hover-bg)}.btn-small{padding:6px 12px;font-size:12px}.btn-call{background:var(--good-bg);border-color:var(--good-border);color:var(--good);align-items:center;gap:6px;display:inline-flex}.btn-call:hover{background:var(--good);color:#06210f}.btn-hangup{background:var(--bad-bg);border-color:var(--bad-border);color:var(--bad);align-items:center;gap:6px;display:inline-flex}.btn-hangup:hover{background:var(--bad);color:#2a0a0d}.btn-icon-phone,.btn-icon-hangup{filter:grayscale()brightness(1.6);line-height:1;display:inline-block}.btn-icon-hangup{transform:rotate(135deg)}.camera-btn{appearance:none;border:1px solid var(--border);background:var(--panel-bg-2);color:var(--text-dim);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:30px;height:26px;transition:color .15s,border-color .15s;display:inline-flex}.camera-btn:hover{color:var(--accent);border-color:var(--accent-border,var(--accent))}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#04060a99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:12px;width:100%;max-width:440px;box-shadow:0 20px 60px #00000080}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.modal-header h2{color:var(--text-h);margin:0;font-size:15px}.modal-close{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px}.modal-close:hover{color:var(--text-h)}.modal-body{flex-direction:column;gap:14px;padding:18px;display:flex}.field{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.field-row{gap:12px;display:flex}.field-row .field{flex:1}.field select,.field textarea,.field input{font:inherit;background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);resize:vertical;border-radius:7px;padding:8px 10px}.field select:focus,.field textarea:focus,.field input:focus{border-color:var(--accent);outline:none}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}.toast{background:var(--panel-bg-2);border:1px solid var(--good-border);color:var(--good);z-index:60;border-radius:9px;padding:12px 18px;font-size:13px;font-weight:600;animation:.2s ease-out toast-in;position:fixed;bottom:24px;right:24px;box-shadow:0 10px 30px #0006}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.depot-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;padding:18px;display:grid}.depot-card{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.depot-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.depot-card-top h3{color:var(--text-h);margin:0;font-size:14px}.depot-meta{gap:20px;margin:0;display:flex}.depot-meta dt{color:var(--text-dim);margin-bottom:2px;font-size:11px}.depot-meta dd{color:var(--text-h);margin:0;font-size:13px;font-weight:600}.progress-track{background:var(--border-soft);border-radius:4px;height:6px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .2s ease-out}.depot-card-footer{justify-content:space-between;align-items:center;display:flex}.camera-modal{max-width:560px}.camera-modal-body{padding:14px}.camera-feed{aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;transition:filter .1s;position:relative;overflow:hidden}.camera-feed.flash{filter:brightness(1.35)}.camera-feed canvas{width:100%;height:100%;display:block}.camera-scanlines{pointer-events:none;mix-blend-mode:multiply;background:repeating-linear-gradient(#00000026 0 1px,#0000 1px 3px);position:absolute;inset:0}.camera-vignette{pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 60px 18px #000000a6}.camera-osd{font-family:var(--mono);letter-spacing:.04em;color:#d7f5df;text-shadow:0 1px 2px #000000e6;pointer-events:none;justify-content:space-between;padding:8px 10px;font-size:11px;display:flex;position:absolute;left:0;right:0}.camera-osd-top{top:0}.camera-osd-bottom{color:#eef1f6;bottom:0}.camera-rec{color:#ff5c6c;align-items:center;gap:5px;font-weight:700;display:inline-flex}.rec-dot{background:#ff5c6c;border-radius:50%;width:7px;height:7px;animation:1.2s step-start infinite rec-blink}@keyframes rec-blink{50%{opacity:.15}}.camera-refresh-dot{background:#4dd6ff;border-radius:50%;align-self:center;width:6px;height:6px;animation:3s ease-in-out infinite refresh-pulse}@keyframes refresh-pulse{0%,92%{opacity:.3;transform:scale(1)}96%{opacity:1;transform:scale(1.6)}to{opacity:.3;transform:scale(1)}}.attachment-count-btn{width:32px;position:relative}.attachment-count{background:var(--accent);color:#06131a;border-radius:8px;justify-content:center;align-items:center;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-5px;right:-5px}.attachments-modal{max-width:620px}.attachment-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.attachment-thumb{appearance:none;border:1px solid var(--border);background:var(--panel-bg-2);cursor:pointer;text-align:left;color:var(--text);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.attachment-thumb:hover{border-color:var(--accent-border,var(--accent))}.attachment-thumb img{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:5px;width:100%}.attachment-pdf-icon{aspect-ratio:4/3;color:#ffd9db;letter-spacing:.05em;background:#7a2f33;border-radius:5px;justify-content:center;align-items:center;width:100%;font-size:13px;font-weight:700;display:flex}.attachment-name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.attachment-size{color:var(--text-dim);font-size:10.5px}.attachment-add{appearance:none;border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:108px;font-size:12px;display:flex}.attachment-add:hover{color:var(--accent);border-color:var(--accent-border,var(--accent))}.attachment-add-icon{font-size:20px;line-height:1}.lightbox-overlay{z-index:70;background:#020306bf;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:100%;max-width:720px;max-height:90vh;display:flex;overflow:hidden}.lightbox-header{border-bottom:1px solid var(--border);color:var(--text-h);justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;display:flex}.lightbox-body{background:#05070b;flex:1;justify-content:center;align-items:center;min-height:320px;display:flex;overflow:auto}.lightbox-body img,.lightbox-body video{max-width:100%;max-height:78vh;display:block}.lightbox-body iframe{background:#fff;border:none;width:100%;height:78vh}.mock-report-page{color:#1c1c1c;background:#f4f3ec;border-radius:6px;width:100%;max-width:480px;margin:24px;padding:24px;font-family:Segoe UI,sans-serif;box-shadow:0 10px 40px #00000080}.report-header{border-bottom:2px solid #1c1c1c;justify-content:space-between;margin-bottom:14px;padding-bottom:10px;font-size:15px;display:flex}.report-fields{grid-template-columns:1fr 1fr;gap:10px 16px;margin:0 0 16px;display:grid}.report-fields dt{text-transform:uppercase;letter-spacing:.05em;color:#6b6b6b;font-size:10px}.report-fields dd{margin:2px 0 0;font-size:13px;font-weight:600}.report-description{border-top:1px solid #d8d6cb;padding-top:12px;font-size:13px;line-height:1.5}.report-signature{color:#6b6b6b;margin-top:24px;font-size:10.5px;font-style:italic}.chat-page{height:100%}.chat-panel{height:100%;min-height:560px;display:flex;overflow:hidden}.chat-sidebar{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;display:flex;overflow:hidden}.chat-sidebar-header{border-bottom:1px solid var(--border);padding:14px 16px}.chat-sidebar-header h2{color:var(--text-h);margin:0;font-size:15px}.chat-thread-list{flex:1;padding:8px;overflow:auto}.chat-group{margin-bottom:10px}.chat-group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:6px 8px;font-size:10.5px}.chat-thread-item{text-align:left;appearance:none;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.chat-thread-item:hover{background:var(--hover-bg)}.chat-thread-item.active{background:var(--accent-bg)}.chat-thread-item.emergency .chat-thread-name{color:var(--bad)}.chat-avatar{color:#0a0c11;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:flex}.chat-avatar-sm{width:28px;height:28px;font-size:10px}.chat-thread-info{flex-direction:column;gap:2px;display:flex;overflow:hidden}.chat-thread-name{color:var(--text-h);font-size:13px;font-weight:600}.chat-thread-preview{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.chat-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-main-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:14px 18px}.chat-main-header h2{color:var(--text-h);margin:0;font-size:15px}.chat-main-header.emergency{background:var(--bad-bg)}.chat-main-header.emergency h2{color:var(--bad)}.chat-messages{flex-direction:column;flex:1;gap:14px;padding:16px 18px;display:flex;overflow:auto}.chat-message{gap:10px;display:flex}.chat-message.system{justify-content:center}.chat-message.system .chat-message-body{color:var(--text-dim);text-align:center;background:var(--panel-bg-2);border-radius:20px;padding:6px 12px;font-size:11.5px}.chat-message.urgent .chat-message-text{color:var(--bad);font-weight:600}.chat-message-body{flex-direction:column;gap:2px;display:flex}.chat-message-meta{align-items:baseline;gap:8px;display:flex}.chat-message-author{color:var(--text-h);font-size:12.5px;font-weight:600}.chat-message-time{color:var(--text-dim);font-size:10.5px}.chat-message-text{color:var(--text);font-size:13.5px;line-height:1.4}.chat-input-row{border-top:1px solid var(--border);flex-shrink:0;gap:10px;padding:14px 18px;display:flex}.chat-input-row input{background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);font:inherit;border-radius:8px;flex:1;padding:9px 12px}.chat-input-row input:focus{border-color:var(--accent);outline:none}@media (width<=900px){.chat-panel{flex-direction:column;height:auto}.chat-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:220px}}.call-bar-stack{z-index:80;flex-direction:column;gap:10px;width:340px;max-width:calc(100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.call-bar{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;animation:.2s ease-out call-bar-in;display:flex;box-shadow:0 10px 30px #00000073}.call-bar-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 10px;display:flex}.call-bar-video{border-radius:8px;overflow:hidden}.call-bar-video .camera-feed{aspect-ratio:16/10}@keyframes call-bar-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.call-bar.emergency{border-color:var(--bad-border);background:var(--bad-bg);animation:.2s ease-out call-bar-in,1s ease-in-out infinite emergency-flash}@keyframes emergency-flash{0%,to{box-shadow:0 10px 30px #00000073}50%{box-shadow:0 0 0 3px var(--bad), 0 10px 30px #00000073}}.call-bar-info{align-items:center;gap:10px;min-width:0;display:flex}.call-bar-icon{flex-shrink:0;font-size:20px}.call-avatar{color:#10151c;border:1px solid #ffffff2e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.call-avatar-sm{width:18px;height:18px;font-size:8px}.call-avatar-md{width:30px;height:30px;font-size:11px}.call-avatar-lg{width:40px;height:40px;font-size:14px}.call-bar-title{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.call-bar-emergency-tag{background:var(--bad);color:#1a0c0e;letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:9.5px;font-weight:800}.call-bar-sub{color:var(--text-dim);font-size:11.5px}.call-bar.status-active .call-bar-sub{color:var(--good)}.call-bar-actions{flex-shrink:0;gap:6px;display:flex}.driver-sim{background:var(--panel-bg-2);border:1px solid var(--border);z-index:75;border-radius:12px;width:300px;max-width:calc(100vw - 40px);position:fixed;top:76px;right:20px;overflow:hidden;box-shadow:0 20px 60px #00000080}.driver-sim-header{border-bottom:1px solid var(--border);color:var(--text-h);background:var(--panel-bg);justify-content:space-between;align-items:center;padding:10px 14px;font-size:12.5px;font-weight:700;display:flex}.driver-sim-body{flex-direction:column;gap:12px;max-height:calc(100vh - 140px);padding:14px;display:flex;overflow:auto}.driver-sim-recording{flex-direction:column;gap:6px;display:flex}.driver-sim-rec-label{color:var(--bad);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.driver-sim-call{background:var(--panel-bg);border:1px solid var(--border);color:var(--text);border-radius:8px;flex-direction:column;gap:8px;padding:10px;font-size:12.5px;display:flex}.driver-sim-actions{gap:8px;display:flex}.sos-button{appearance:none;color:#ffd9db;letter-spacing:.04em;cursor:pointer;background:linear-gradient(#7a1f26,#4a1216);border:2px solid #ff5c6c;border-radius:10px;padding:14px;font-size:14px;font-weight:800}.sos-button:hover{filter:brightness(1.15)}.gps-modal{max-width:520px}.gps-status-row{color:var(--text);align-items:center;gap:8px;margin-bottom:16px;font-size:13px;display:flex}.gps-status-dot{background:var(--good);width:9px;height:9px;box-shadow:0 0 8px var(--good);border-radius:50%;flex-shrink:0;animation:2s ease-in-out infinite pulse-dot}.gps-stats{flex-wrap:wrap;gap:14px 24px;margin-bottom:16px}.gps-toggles{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;margin-bottom:18px;padding-bottom:16px;display:flex}.gps-toggle-row{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.gps-log-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 8px;font-size:12px}.gps-log{color:var(--text);flex-direction:column;gap:8px;max-height:160px;margin:0 0 14px;padding:0;font-size:12px;list-style:none;display:flex;overflow:auto}.gps-log-time{color:var(--text-dim);font-family:var(--mono);margin-right:8px;font-size:11px}.rider-app-page{flex-direction:column;justify-content:flex-start;align-items:center;gap:14px;height:100%;padding:12px 0 28px;display:flex}.rider-phone{--rider-accent:#34d1a6;--rider-accent-bg:#34d1a624;background:var(--panel-bg);border:1px solid var(--border);border-radius:34px;flex-direction:column;width:390px;max-width:100%;height:780px;max-height:calc(100vh - 220px);padding:10px;display:flex;overflow:hidden;box-shadow:0 30px 80px #00000080}.rider-status-bar{color:var(--text-dim);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 10px 10px;font-size:12px;display:flex}.rider-app-name{color:var(--text-h);letter-spacing:.03em;font-weight:700}.rider-content{background:var(--panel-bg-2);border-radius:20px;flex:1;padding:14px;overflow:auto}.rider-screen{flex-direction:column;gap:12px;display:flex}.rider-tabbar{flex-shrink:0;justify-content:space-around;padding-top:8px;display:flex}.rider-tab{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;font-size:10.5px;display:flex}.rider-tab.active{color:var(--rider-accent)}.rider-tab-icon{font-size:18px}.rider-app-caption{color:var(--text-dim);text-align:center;max-width:390px;font-size:11.5px}.rider-map-card{border-radius:14px;flex-shrink:0;height:160px;overflow:hidden}.rider-mini-map{width:100%;height:100%;display:block}.rider-mini-map-pulse{animation:1.6s ease-out infinite pulse-ring}.rider-field{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;display:flex}.rider-field select{font:inherit;background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);border-radius:8px;padding:9px 10px}.rider-eta-card{background:var(--panel-bg);border:1px solid var(--border);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;display:flex}.rider-eta-card strong{color:var(--rider-accent);font-size:16px}.rider-hail-btn{appearance:none;background:var(--rider-accent);color:#04241c;cursor:pointer;border:none;border-radius:12px;padding:14px;font-size:14px;font-weight:700}.rider-hail-btn:hover{filter:brightness(1.08)}.rider-hail-btn.secondary{border:2px solid var(--rider-accent);color:var(--rider-accent);background:0 0}.rider-hail-btn.danger{background:var(--bad);color:#2a0d10}.rider-status-card{background:var(--panel-bg);border:1px solid var(--border);text-align:center;color:var(--text);border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:14px;font-size:13px;display:flex}.rider-status-card.onboard{border-color:var(--rider-accent)}.rider-pulse-dot{background:var(--rider-accent);border-radius:50%;width:12px;height:12px;animation:1.2s ease-in-out infinite pulse-dot}.rider-crowding{border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.rider-crowding-low{color:var(--good);background:var(--good-bg)}.rider-crowding-medium{color:var(--warn);background:var(--warn-bg)}.rider-crowding-high{color:var(--bad);background:var(--bad-bg)}.rider-wallet-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:18px;display:flex}.rider-wallet-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.rider-qr{flex-direction:column;align-items:center;gap:8px;display:flex}.rider-qr canvas{border-radius:8px;width:180px;height:180px}.rider-qr-refresh{color:var(--text-dim);font-size:11px}.rider-fare-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.rider-fare-card .progress-fill{background:var(--rider-accent)}.rider-fare-row{color:var(--text-h);justify-content:space-between;font-size:13px;display:flex}.rider-safety-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.rider-safety-card h3{color:var(--text-h);margin:0;font-size:13.5px}.rider-screen.high-contrast{filter:contrast(1.3)saturate(1.15)}.rider-screen.high-contrast .rider-safety-card,.rider-screen.high-contrast .rider-status-card{border-width:2px;border-color:var(--text-h)}.lost-property-form{flex-direction:column;gap:10px;display:flex}.lost-property-browse{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:6px;padding-top:12px;display:flex}.lost-property-browse-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.lost-property-row{border:1px solid var(--border);background:var(--panel-bg-alt,#ffffff08);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.lost-property-info{flex-direction:column;gap:2px;min-width:0;display:flex}.lost-property-category{color:var(--text-h);font-size:12.5px;font-weight:600}@media (width<=500px){.rider-phone{border-radius:0;height:calc(100vh - 160px)}}.comms-tab{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.comms-tab-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.comms-tab-header h2{color:var(--text-h);margin:0;font-size:15px}.availability-dot-btn{appearance:none;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.availability-dot-btn .dot{background:var(--text-dim);border-radius:50%;width:9px;height:9px}.availability-dot-btn.available{border-color:var(--good-border)}.availability-dot-btn.available .dot{background:var(--good);box-shadow:0 0 6px var(--good)}.comms-top-block{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;max-height:40%;display:flex;overflow-y:auto}.comms-tab-columns{flex:1;min-height:0;display:flex}.comms-tab-left{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:300px;min-height:0;display:flex}.comms-tab-right{flex-direction:column;flex:1;min-width:0;padding:18px;display:flex}.comms-tab-right>.comms-thread-view{margin:-18px}.comms-tab-right>p{margin:auto}@container app-main (width<=720px){.comms-tab-columns{flex-direction:column}.comms-tab-left{border-right:none;border-bottom:1px solid var(--border);width:100%;max-height:40%}}.comms-calls-section{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:8px;padding:10px;display:flex}.call-card{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.call-card.emergency{border-color:var(--bad-border);background:var(--bad-bg);animation:1s ease-in-out infinite emergency-flash}.call-card-top{align-items:center;gap:8px;display:flex}.call-card-icon{flex-shrink:0;font-size:18px}.call-card-info{min-width:0}.call-card-title{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.call-card-sub{color:var(--text-dim);font-size:11px}.call-card.status-active .call-card-sub{color:var(--good)}.call-card-video{border-radius:8px;overflow:hidden}.call-card-video .camera-feed{aspect-ratio:16/10}.call-transcript{background:var(--panel-bg);border:1px solid var(--border-soft);max-height:90px;color:var(--text);border-radius:6px;flex-direction:column;gap:4px;padding:6px 8px;font-size:11px;display:flex;overflow:auto}.call-transcript.static{max-height:140px;margin-top:8px}.call-transcript-line strong{color:var(--text-h)}.call-card-actions{flex-wrap:wrap;gap:6px;display:flex}.comms-history{border-bottom:1px solid var(--border);flex-shrink:0}.comms-history summary{color:var(--text-dim);cursor:pointer;padding:10px 14px;font-size:12px}.comms-history-list{flex-direction:column;gap:6px;max-height:30vh;padding:0 14px 10px;display:flex;overflow:auto}.comms-history-item{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:8px;padding:6px 8px}.comms-history-item summary{color:var(--text-h);padding:0;font-size:12px}.comms-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);flex-shrink:0;padding:10px 14px 4px;font-size:11px}.comms-thread-list{flex:1;padding:4px 8px 8px;overflow:auto}.comms-thread-view{flex-direction:column;flex:1;min-height:0;display:flex}.comms-thread-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:10px 14px;display:flex}.comms-thread-header.emergency{background:var(--bad-bg)}.comms-messages{flex:1}.table-pane-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.led-theme-select{font:inherit;background:var(--panel-bg-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:20px;padding:6px 10px;font-size:12px}.badge-sensor-good{color:var(--good);background:var(--good-bg);border-color:var(--good-border)}.badge-sensor-moderate{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.badge-sensor-high{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border)}.led-dot{border:1px solid #fff3;border-radius:50%;width:12px;height:12px;display:inline-block}.led-normal{background:var(--good);box-shadow:0 0 6px var(--good)}.led-red-alert{background:#ff2a2a;animation:.4s step-end infinite led-strobe}.led-holiday{background:conic-gradient(#ff5c6c,#ffb84d,#f4d35e,#3ddc84,#4dd6ff,#c084fc,#ff5c6c);animation:3s linear infinite holiday-spin}@keyframes led-strobe{50%{background:#fff;box-shadow:0 0 10px #fff}}@keyframes holiday-spin{to{filter:hue-rotate(360deg)}}.bus-strobe{fill:none;stroke:#ff2a2a;stroke-width:2px;animation:.5s step-end infinite bus-strobe-ring}@keyframes bus-strobe-ring{50%{stroke:#fff}}.bus-strobe-fill{animation:.4s step-end infinite led-strobe}.driver-sim.red-alert-active{animation:.5s step-end infinite red-alert-border}@keyframes red-alert-border{50%{border-color:#ff2a2a;box-shadow:0 0 0 2px #ff2a2a99}}.red-alert-button{appearance:none;border:1px solid var(--border);color:var(--bad);cursor:pointer;background:0 0;border-radius:10px;padding:10px;font-weight:700}.red-alert-button.active{color:#1a0c0e;background:#ff2a2a;animation:.4s step-end infinite led-strobe}.ai-box-layer{pointer-events:none;position:absolute;inset:0}.ai-box{border:2px solid #3ddc84;border-radius:3px;position:absolute;box-shadow:0 0 6px #3ddc8480}.ai-box.tapped{border-color:#4dd6ff;box-shadow:0 0 6px #4dd6ff99}.ai-box-label{color:#3ddc84;white-space:nowrap;background:#000000bf;border-radius:3px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;top:-18px;left:-2px}.ai-box.tapped .ai-box-label{color:#4dd6ff}.camera-ai-tag{color:#3ddc84;font-weight:700}.passenger-panel{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.passenger-panel-header{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.passenger-panel-header h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0;font-size:12.5px}.passenger-list{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.passenger-row{align-items:center;gap:10px;display:flex}.passenger-row-info{flex-direction:column;gap:2px;display:flex}.passenger-name{color:var(--text-h);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.tapin-badge{color:var(--accent);background:var(--accent-bg);border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700}.rider-map-toggle{align-self:flex-start}.rider-alert-banner{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn);border-radius:10px;padding:10px 12px;font-size:12.5px}.rider-seat-light{text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:20px;font-size:13px;display:flex}.rider-seat-light.green{background:var(--good-bg);border:1px solid var(--good-border);color:var(--good)}.rider-seat-light.red{background:var(--bad-bg);border:1px solid var(--bad-border);color:var(--bad);animation:.8s ease-in-out infinite emergency-flash}.rider-seat-dot{background:currentColor;border-radius:50%;width:22px;height:22px;box-shadow:0 0 14px}.rider-seat-light.red .rider-seat-dot{animation:.5s step-end infinite led-strobe}.ble-results{flex-direction:column;gap:10px;margin:8px 0;display:flex}.ble-result-row{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.ble-vehicle{color:var(--text-h);font-size:12.5px;font-weight:600}.ble-bars{align-items:flex-end;gap:3px;height:14px;display:flex}.ble-bars i{background:var(--border);border-radius:1px;width:4px;display:block}.ble-bars i:first-child{height:4px}.ble-bars i:nth-child(2){height:7px}.ble-bars i:nth-child(3){height:10px}.ble-bars i:nth-child(4){height:14px}.ble-bars i.on{background:var(--rider-accent,var(--accent))}.vehicle-id-row{align-items:center;gap:8px;display:flex}.vehicle-plate{margin-top:2px;font-size:11px}.signal-icon{flex-shrink:0}.badge-fire-clear{color:var(--text-dim);background:var(--panel-bg-2);border-color:var(--border)}.badge-fire-detected{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-border);animation:.8s ease-in-out infinite emergency-flash}.badge-fire-suppressing{color:var(--info);background:var(--info-bg);border-color:var(--info-border);animation:1s ease-in-out infinite pulse-dot}.badge-fire-suppressed{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.driver-fire-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.driver-id-modal{max-width:440px}.id-card{align-items:flex-start;gap:16px;display:flex}.id-photo{color:#0a0c11;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:84px;height:84px;font-size:28px;font-weight:800;display:flex}.id-card-info{flex:1;min-width:0}.id-card-name{color:var(--text-h);font-size:17px;font-weight:700}.id-card-role{color:var(--text-dim);margin-bottom:10px;font-size:12px}.id-card-fields{grid-template-columns:1fr 1fr;gap:8px 16px;margin:0;display:grid}.id-card-fields dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:10px}.id-card-fields dd{color:var(--text-h);margin:2px 0 0;font-size:13px;font-weight:600}.call-chip-row{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.call-chip{appearance:none;background:var(--panel-bg-2);border:1px solid var(--border);font-size:11.5px;font-family:var(--mono);cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:5px 12px;display:flex;box-shadow:0 4px 14px #00000059}.call-chip:disabled{cursor:default;opacity:.85}.call-chip.emergency{animation:1s ease-in-out infinite emergency-flash}.call-chip-icon{font-size:13px}.call-chip-hold{color:var(--warn)}.driver-app-page{justify-content:center;height:100%;padding:4px 0 24px;display:flex}.driver-console{background:var(--panel-bg);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:100%;max-width:620px;display:flex;overflow:hidden}.driver-console-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.driver-console-header h2{color:var(--text-h);margin:0;font-size:16px}.driver-console-select{min-width:220px}.driver-console-body{flex-direction:column;gap:16px;padding:18px;display:flex;overflow:auto}.driver-card{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.driver-card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0;font-size:13px}.driver-safety-buttons{flex-wrap:wrap;gap:10px;display:flex}.driver-safety-buttons .sos-button,.driver-safety-buttons .red-alert-button{flex:1;min-width:180px}.led-preview{border:1px solid var(--border);background:var(--panel-bg);color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:12.5px;display:flex}.led-wheel-row{align-items:center;gap:10px;display:flex}.led-color-wheel{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;width:44px;height:34px;padding:0}.led-presets{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.led-preset-swatch{border:2px solid var(--border);cursor:pointer;border-radius:50%;width:26px;height:26px;padding:0}.led-preset-swatch:hover{border-color:var(--text-h)}.voice-input-row{align-items:center;gap:8px;display:flex}.voice-input-row input{background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);font:inherit;border-radius:8px;flex:1;padding:9px 12px}.voice-input-row input:focus{border-color:var(--accent);outline:none}.mic-button{appearance:none;border:1px solid var(--border);background:var(--panel-bg);color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;width:36px;height:36px;font-size:15px}.mic-button:disabled{opacity:.4;cursor:not-allowed}.mic-button.listening{background:var(--bad);border-color:var(--bad);color:#1a0c0e;animation:.8s ease-in-out infinite pulse-dot}.routine-table{border-collapse:collapse;width:100%;font-size:12px}.routine-table th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.05em;padding:6px 8px;font-size:10.5px;font-weight:600}.routine-table td{border-bottom:1px solid var(--border-soft);color:var(--text);padding:6px 8px}.rider-offers{flex-direction:column;gap:8px;display:flex}.rider-offers-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px}.rider-offer-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.rider-offer-info{flex-direction:column;gap:2px;min-width:0;display:flex}.rider-offer-business{color:var(--text-dim);font-size:12px}.rider-offer-title{color:var(--rider-accent,var(--text-h));font-size:13.5px;font-weight:700}.detours-modal{max-width:560px}.detour-card{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;margin-bottom:10px;padding:12px 14px;display:flex}.detour-card.pending{border-color:var(--warn-border)}.detour-card-top{align-items:center;gap:8px;display:flex}.detour-card-actions{gap:8px;margin-top:4px;display:flex}.stats-page{flex-direction:column;gap:16px;display:flex}.stats-kpi-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.stats-kpi{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.stats-kpi-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px}.stats-kpi strong{color:var(--text-h);font-size:22px}.stats-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=1100px){.stats-grid{grid-template-columns:1fr}}.stats-panel{min-width:0}.stats-panel .fleet-table-wrap{max-height:340px}.stats-delta{color:var(--good)}.stats-sim-row{background:var(--accent-bg)}.stats-demo-body{flex-direction:column;gap:10px;padding:16px;display:flex}.stats-demo-row{grid-template-columns:70px 1fr 40px;align-items:center;gap:10px;display:grid}.stats-demo-label{color:var(--text);font-size:12.5px}.stats-demo-bar{height:8px}.sim-body{flex-direction:column;gap:16px;padding:16px;display:flex}.sim-block{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}.sim-block h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:12.5px}.sim-draft-list{flex-direction:column;gap:6px;display:flex}.sim-draft-list h3{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin:0 0 2px;font-size:12.5px}.sim-draft-item{background:var(--panel-bg-2);border:1px solid var(--border);color:var(--text);border-radius:8px;justify-content:space-between;align-items:center;padding:6px 10px;font-size:12.5px;display:flex}.sim-draft-remove{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:12px}.sim-draft-remove:hover{color:var(--bad)}.sim-actions{align-items:center;gap:10px;display:flex}.fare-zone-label{paint-order:stroke;stroke:var(--map-bg);stroke-width:4px;font-size:13px;font-weight:700}.stats-zone-divider{background:var(--border);height:1px;margin:4px 0}.stats-zone-chips{flex-wrap:wrap;gap:8px;display:flex}.stats-zone-chip{background:0 0;border:1px solid;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.pass-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;display:grid}.pass-option{appearance:none;text-align:left;background:var(--panel-bg);border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:10px;flex-direction:column;gap:2px;padding:10px;display:flex}.pass-option.active{border-color:var(--rider-accent,var(--accent));background:var(--rider-accent-bg,var(--accent-bg))}.pass-name{color:var(--text-h);font-size:12.5px;font-weight:700}.pass-price{color:var(--rider-accent,var(--accent));font-size:15px;font-weight:700}.rider-connection-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.rider-connection-info{flex-direction:column;gap:2px;display:flex}.rider-connection-info strong{color:var(--rider-accent,var(--text-h));font-size:14px}.media-connect-row{flex-wrap:wrap;gap:8px;display:flex}.now-playing{align-items:center;gap:10px;display:flex}.now-playing-art{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.now-playing-info{flex-direction:column;gap:2px;min-width:0;display:flex}.now-playing-title{color:var(--text-h);font-size:13px;font-weight:700}.now-playing-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badge-source-dispatcher{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border,var(--accent))}.badge-source-driver{color:var(--info);background:var(--info-bg);border-color:var(--info-border)}.badge-source-rider{color:var(--rider-accent,#34d1a6);background:#34d1a61f;border-color:#34d1a659}.badge-source-system{color:var(--text-dim);background:var(--panel-bg-2);border-color:var(--border)}.rider-wifi-card{background:var(--panel-bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex}.rider-wifi-header{color:var(--text-h);justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.rider-wifi-actions{flex-wrap:wrap;gap:8px;display:flex}.rider-wifi-ad{flex-direction:column;gap:6px;display:flex}.attachment-picker{margin-top:4px}.attachment-thumb.static{position:relative}.attachment-thumb video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:5px;width:100%}.attachment-remove{appearance:none;color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;width:18px;height:18px;font-size:10px;line-height:1;position:absolute;top:4px;right:4px}.attachment-remove:hover{background:var(--bad)}.tasks-panel{padding-bottom:16px}.task-add-row{border-bottom:1px solid var(--border);gap:8px;padding:14px 18px;display:flex}.task-add-row input[type=text]{background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);font:inherit;border-radius:8px;flex:1;padding:8px 12px}.task-add-row select{background:var(--input-bg);border:1px solid var(--border);color:var(--text-h);font:inherit;border-radius:8px;padding:8px 10px}.task-list{flex-direction:column;padding:8px 18px;display:flex}.task-row{border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;padding:10px 0;display:flex}.task-row.done .task-title{color:var(--text-dim);text-decoration:line-through}.task-title{color:var(--text);flex:1;font-size:13.5px}.task-priority-select{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:20px;padding:3px 10px;font-size:11.5px;font-weight:600}.task-remove{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px;font-size:12px}.task-remove:hover{color:var(--bad)}.device-list{flex-direction:column;gap:8px;margin:4px 0;display:flex}.device-row{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.device-icon{flex-shrink:0;font-size:18px}.device-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.device-name{color:var(--text-h);font-size:13px;font-weight:600}.device-actions{align-items:center;gap:6px;display:flex}.device-remove{appearance:none;color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:4px;font-size:11px}.device-remove:hover{color:var(--bad)}.device-add-form{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:stretch;gap:8px;padding:10px}.device-add-actions{justify-content:flex-end;gap:8px;display:flex}.lost-requests{flex-direction:column;gap:8px;margin-top:4px;display:flex}.lost-request-row{background:var(--panel-bg);border:1px solid var(--border);color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.lost-request-row.status-found{border-color:var(--good-border);color:var(--good)}.incident-section-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:12px 18px;display:flex}.incident-section-tabs.sub{background:var(--panel-bg-2);padding:10px 18px}.incident-section-body{padding:16px 18px}.tour-overlay{z-index:999;position:fixed;inset:0}.tour-spotlight{pointer-events:none;border:1px solid #ffffff59;border-radius:10px;transition:top .15s ease-out,left .15s ease-out,width .15s ease-out,height .15s ease-out;position:fixed;box-shadow:0 0 0 9999px #020408b8}.tour-backdrop{background:#020408b8;position:fixed;inset:0}.tour-tooltip{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;width:min(340px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px 18px;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 16px 40px #00000080}.tour-tooltip h3{color:var(--text-h);margin:0;font-size:15px}.tour-tooltip p{color:var(--text-dim);margin:0;font-size:13px;line-height:1.5}.tour-tooltip-progress{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-size:10.5px;font-weight:600}.tour-dontshow{color:var(--text-dim);cursor:pointer;align-items:center;gap:8px;margin-top:2px;font-size:12.5px;display:flex}.tour-tooltip-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;display:flex}.tour-tooltip-actions-right{gap:8px;display:flex}.topnav-overview-link{appearance:none;border:1px solid var(--accent-border,#4dd6ff59);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:4px 11px;font-size:11.5px;font-weight:600}.topnav-overview-link:hover{background:var(--accent-bg)}.overview-modal-overlay{z-index:1000;background:#04060ab3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.overview-modal{background:var(--panel-bg-2);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:100%;max-width:880px;height:100%;max-height:860px;display:flex;overflow:hidden;box-shadow:0 24px 70px #0000008c}.overview-modal-header{border-bottom:1px solid var(--border);color:var(--text-h);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.overview-modal iframe{background:var(--bg);border:none;flex:1;width:100%}.small-screen-gate{background:var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100dvh;padding:32px 24px;display:flex}.small-screen-gate-icon{background:var(--accent-bg);width:64px;height:64px;color:var(--accent);border-radius:16px;justify-content:center;align-items:center;margin-bottom:6px;font-size:30px;display:flex;transform:rotate(90deg)}.small-screen-gate h1{color:var(--text-h);max-width:26ch;margin:0;font-size:19px}.small-screen-gate p{color:var(--text-dim);max-width:40ch;margin:0;font-size:14px;line-height:1.6}
