:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#121b27;background:#eef1f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #121b27;--muted: #536273;--subtle: #768494;--line: #cbd3da;--line-soft: #e1e6ea;--filter-control-height: 30px;--surface: #ffffff;--surface-cool: #f7f9fa;--copper: #cf4b0a;--copper-dark: #9d2c05;--teal: #008c99;--violet: #7e22ce;--green: #168f62;--warning: #e49a08;--danger: #c9382b;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{background:#eef1f4}button,select,input{font:inherit}button{color:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #1967d2;outline-offset:1px}button:disabled,select:disabled{cursor:not-allowed;opacity:.48}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,rgba(207,75,10,.08),transparent 38%),#eef1f4}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #b8c2ca;box-shadow:0 18px 48px #19263324}.auth-brand{min-height:76px;padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px}.auth-brand-icon{width:40px;height:40px;display:grid;place-items:center;background:var(--copper);color:#fff}.auth-brand div{display:grid;gap:2px}.auth-brand strong{font-size:16px}.auth-brand small{color:var(--muted);font-size:11px}.auth-intro{padding:27px 28px 12px;text-align:center}.auth-intro>span{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 15px;border-radius:50%;background:#fff4ed;color:var(--copper)}.auth-intro h1{margin:0;font-size:23px;letter-spacing:-.35px}.auth-intro p{margin:8px auto 0;max-width:335px;color:var(--muted);font-size:12px;line-height:1.5}.auth-form{padding:14px 28px 28px;display:grid;gap:15px}.auth-form label{display:grid;gap:7px;color:#273646;font-size:11px;font-weight:600}.auth-form input{width:100%;height:42px;border:1px solid #aeb8c2;border-radius:3px;background:#fff;padding:0 11px;font-size:13px;font-weight:400}.auth-form input:focus{border-color:#1967d2}.auth-submit{width:100%;margin-top:4px}.auth-error{margin:0;padding:10px 11px;border-left:3px solid var(--danger);background:#fff3f2;color:#8c271f;font-size:11px;line-height:1.45}.auth-card>footer{min-height:51px;padding:13px 20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:9px;text-align:center}.auth-card>footer .auth-footer-note{display:inline-flex;align-items:center;gap:7px}.auth-card>footer .build-stamp{flex:1 0 100%}.auth-loading-card{min-height:190px;padding:38px;display:grid;justify-items:center;align-content:center;gap:9px;text-align:center}.auth-loading-card strong{font-size:14px}.auth-loading-card span{color:var(--muted);font-size:11px}.site-chooser-card{width:min(460px,100%)}.site-chooser-list{display:grid;gap:10px;padding:8px 28px 28px}.site-chooser-link{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:48px;padding:12px 14px;border:1px solid var(--line);background:#fff;color:inherit;text-decoration:none}.site-chooser-link:hover{border-color:var(--copper);background:#fff9f5}.site-chooser-link strong{font-size:14px}.site-chooser-link span{color:var(--muted);font-size:12px}.app-shell{height:100dvh;min-height:100dvh;max-width:100vw;overflow-x:clip;overflow-y:hidden;background:var(--surface);display:flex;flex-direction:column}.top-command-bar{min-height:82px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center;gap:16px 24px;padding:14px 28px;border-bottom:1px solid #aeb8c2;background:#fff;min-width:0}.brand-block{min-width:0;overflow:hidden}.brand-block h1{margin:0;font-size:clamp(18px,2.1vw,27px);line-height:1.12;letter-spacing:-.75px;font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-block h1 span{color:var(--copper)}.brand-block>small{display:none}.brand-block .build-stamp{display:block;color:var(--muted);margin-top:4px;font-size:10px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;min-width:0;max-width:100%}.header-view-block{display:grid;gap:6px;justify-items:start;flex:0 1 auto;min-width:0;max-width:100%}.header-view-block>.segment-control{display:inline-flex;align-items:stretch;flex:0 1 auto;max-width:100%;border-radius:4px;overflow:hidden}.header-flow-select{width:100%;min-width:0;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.header-flow-select .select-wrap{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center}.header-flow-select select{width:100%;min-width:0;height:32px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);padding:0 30px 0 10px;font:inherit;font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;appearance:none}.header-flow-select .select-wrap svg{position:absolute;right:9px;pointer-events:none;color:var(--muted)}.header-view-block>.segment-control button{flex:0 1 auto;min-width:0;height:40px;padding:0 10px;font-size:13px;font-weight:600;border-color:#aeb8c2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-view-block>.segment-control button:first-child{border-radius:4px 0 0 4px}.header-view-block>.segment-control button:last-child{border-radius:0 4px 4px 0}.header-command-group{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,auto);gap:10px;flex:0 0 auto;max-width:100%;min-width:0}.command-button--icon-only{width:44px;padding-inline:0;gap:0}.header-command-group>.command-button{width:100%;min-width:0;height:40px;padding-inline:10px;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-button,.secondary-button,.primary-button{min-height:40px;border:1px solid #aeb8c2;background:#fff;border-radius:4px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:600;cursor:pointer}.command-button:hover,.secondary-button:hover{background:#f4f7f8;border-color:#8593a1}.command-button.selected,.command-button[aria-pressed=true]{color:var(--copper);border-color:var(--copper);background:#fff9f5}.primary-button{background:var(--copper);border-color:var(--copper);color:#fff}.primary-button:hover{background:#b73d05}.danger-button{min-height:40px;border:1px solid #ad2c22;background:#ad2c22;color:#fff;border-radius:4px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;font-weight:600;cursor:pointer}.danger-button:hover{background:#8f241c}.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;border-radius:3px;cursor:pointer}.icon-button:hover{background:#edf1f4}.overflow-wrap{position:relative}.overflow-menu{position:absolute;z-index:40;top:calc(100% + 7px);right:0;min-width:190px;padding:5px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px #14202d24}.overflow-menu button{width:100%;height:36px;display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:0 10px;font-size:13px;text-align:left;cursor:pointer}.overflow-menu button:hover{background:#f2f5f7}.overflow-menu .danger-item{color:#ad2c22}.audit-toolbar{display:grid;gap:5px;padding:7px 16px 8px;border-bottom:1px solid #aeb8c2;background:linear-gradient(180deg,#fff,#f7f9fb)}.audit-toolbar--collapsed{padding-bottom:6px}.audit-toolbar-body{position:relative;display:grid;gap:5px;min-width:0}.audit-toolbar-body[hidden]{display:none}.audit-toolbar-fold{display:flex;align-items:center;gap:10px;min-width:0}.audit-toolbar-fold-toggle{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;height:26px;padding:0 9px;border:1px solid var(--line);border-radius:13px;background:#fff;color:#33465a;font-size:11px;font-weight:650;cursor:pointer}.audit-toolbar-fold-toggle:hover{border-color:#8f9daa;color:#162230}.audit-toolbar-fold-summary{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.audit-toolbar-main{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:6px 12px}.audit-toolbar-primary{display:flex;flex-wrap:wrap;align-items:end;gap:5px 8px;min-width:0;flex:1 1 auto}.filter-field{display:grid;gap:1px;color:#273646;font-size:10px;font-weight:600;letter-spacing:.01em;min-width:0}.filter-field--primary{flex:1 1 150px;width:auto;min-width:132px;max-width:206px}.filter-field--day{flex-basis:178px;max-width:236px}.filter-field--secondary{width:100%}.filter-select-wrap{position:relative;display:block;min-width:0}.filter-select-wrap>svg{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none;width:13px;height:13px;color:#5b6b7a}.filter-select-wrap select{width:100%;height:var(--filter-control-height);border:1px solid var(--line);border-radius:4px;background:#fff;color:#162230;padding:0 25px 0 27px;font-size:12px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235b6b7a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}.filter-select-wrap select:disabled{background-color:#f4f6f8;color:#8995a0}.vehicle-multi-field{flex:1 1 164px;width:auto;min-width:146px;max-width:220px}.day-range-warning{flex:1 0 100%}.day-range-note,.day-range-warning{margin:0;font-size:10px;line-height:1.35}.day-range-note{order:99;flex:0 1 auto;align-self:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-range-note{color:var(--muted)}.day-range-warning{padding:5px 8px;border:1px solid #e2b7a4;border-radius:3px;background:#fff7f2;color:#7a3b24}.vehicle-multi{position:relative;min-width:0}.vehicle-multi label[data-dimmed=true]>span{color:#8a97a6}.vehicle-multi-field[data-filter-field=materialFlow]{flex:0 1 460px;max-width:520px;min-width:260px}.vehicle-multi[data-filter=materialFlow]>div{min-width:460px}.vehicle-multi>summary{width:100%;height:var(--filter-control-height);border:1px solid var(--line);border-radius:4px;background:#fff;color:#162230;padding:0 10px;display:grid;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:6px;font-size:12px;list-style:none;cursor:pointer}.vehicle-multi>summary>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-multi>summary>svg{width:14px;height:14px}.vehicle-multi>summary::-webkit-details-marker{display:none}.vehicle-multi[data-disabled=true]>summary{color:#8995a0;cursor:not-allowed}.vehicle-multi-menu{position:absolute;z-index:40;top:calc(100% + 5px);left:0;width:max(260px,100%);max-height:min(46vh,420px);overflow-y:auto;overscroll-behavior:contain;padding:7px;border:1px solid var(--line);background:#fff;box-shadow:0 9px 24px #14202d29}.vehicle-multi-menu>.vehicle-multi-search{position:sticky;top:-7px;z-index:1;background:#fff}.vehicle-multi-menu>button,.vehicle-multi-menu>label{width:100%;min-height:32px;border:0;background:transparent;padding:6px 8px;display:flex;align-items:center;gap:8px;color:var(--ink);font-size:11px;text-align:left}.vehicle-multi-menu>button{cursor:pointer}.vehicle-multi-menu>button:hover,.vehicle-multi-menu>label:hover{background:#f2f5f7}.vehicle-multi-menu input[type=checkbox]{width:15px;height:15px;margin:0}.vehicle-multi-menu>.vehicle-multi-all{margin-bottom:4px;border-bottom:1px solid var(--line-soft);font-weight:650}.vehicle-multi-menu small{display:block;padding:7px 8px 3px;color:var(--muted);font-size:9px;line-height:1.35}.vehicle-multi-search{width:100%;height:34px;margin:0 0 6px;border:1px solid var(--line);border-radius:3px;padding:0 10px;font-size:12px}.audit-toolbar-more{display:flex;flex:0 1 auto;justify-content:flex-end;flex-wrap:wrap;align-items:end;gap:5px 8px;min-width:0}.filter-panel{position:static;flex:0 0 auto}.filter-panel>summary{height:var(--filter-control-height);min-width:104px;border:1px solid var(--line);border-radius:4px;background:#fff;color:#162230;padding:0 10px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;list-style:none;cursor:pointer}.filter-panel>summary::-webkit-details-marker{display:none}.filter-panel[open]>summary,.filter-panel>summary:hover{border-color:#c9a089;background:#fff8f3;color:var(--copper)}.filter-panel-badge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--copper);color:#fff;font-size:10px;line-height:18px;text-align:center}.filter-panel-popover{position:absolute;z-index:45;top:calc(100% + 5px);left:0;right:0;width:auto;padding:9px 11px 11px;border:1px solid var(--line);border-radius:4px;background:#fff;box-shadow:0 14px 36px #14202d2e;display:grid;gap:7px}.filter-panel-popover>header{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.filter-panel-popover>header strong{font-size:11px;color:var(--ink)}.filter-panel-popover>header small{color:var(--muted);font-size:10px;line-height:1.3}.filter-panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,200px));gap:6px 8px}.audit-toolbar-layers{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;min-height:var(--filter-control-height);padding:4px 4px 4px 10px;border-left:1px solid var(--line-soft);flex:0 1 auto;white-space:nowrap}.audit-toolbar-layers-label{display:inline-flex;align-items:center;gap:6px;color:#5b6b7a;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.layer-toggle{border:0;background:transparent;min-height:30px;padding:0;display:inline-flex;align-items:center;gap:7px;font-size:12px;cursor:pointer}.layer-check{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #9aa6b0;color:#fff}.layer-toggle[aria-checked=true] .copper{background:var(--copper);border-color:var(--copper)}.layer-toggle[aria-checked=true] .teal{background:var(--teal);border-color:var(--teal)}.layer-toggle[aria-checked=true] .route-blue{background:#0a5fff;border-color:#0a5fff}.layer-toggle[aria-checked=true] .violet,.layer-toggle[aria-checked=true] .zone-lkw{background:#b23cff;border-color:#b23cff}.layer-toggle[aria-checked=true] .zone-internal{background:#00d3a7;border-color:#00d3a7}.layer-toggle[aria-checked=true] .zone-unmatched{background:#9aa4b2;border-color:#9aa4b2}.layer-toggle-nested{padding-left:18px}.layer-toggle-nested:disabled{cursor:default;opacity:.45}.filter-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.vehicle-scope{position:relative;flex:0 0 auto;margin-left:auto}.vehicle-scope>summary{display:flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid #cbd8de;border-radius:999px;background:#f4f9fb;color:#0d566a;font-size:11px;cursor:pointer;list-style:none}.vehicle-scope>summary::-webkit-details-marker{display:none}.vehicle-scope>summary strong{font-weight:700}.vehicle-scope[open]>summary{border-color:var(--copper, #b4581f)}.vehicle-scope-list{position:absolute;z-index:30;top:calc(100% + 6px);left:0;margin:0;padding:6px;list-style:none;min-width:260px;max-height:min(46vh,380px);overflow-y:auto;border:1px solid #c6d2da;border-radius:4px;background:#fff;box-shadow:0 12px 30px #06141e29;display:grid;gap:2px}.vehicle-scope-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 8px;padding:5px 7px;border-radius:3px;font-size:11px}.vehicle-scope-list li:nth-child(odd){background:#f7fafb}.vehicle-scope-list li strong{font-weight:650;overflow-wrap:anywhere}.vehicle-scope-list li span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.03em}.vehicle-scope-list li small{grid-column:1 / -1;color:var(--muted);font-size:9px}.vehicle-scope-empty{position:absolute;z-index:30;top:calc(100% + 6px);left:0;margin:0;padding:9px 11px;min-width:240px;border:1px solid #c6d2da;border-radius:4px;background:#fff;box-shadow:0 12px 30px #06141e29;color:var(--muted);font-size:11px}.filter-chip{border:1px solid #d5dde5;border-radius:999px;background:#fff;color:#243447;min-height:28px;padding:0 10px 0 12px;display:inline-flex;align-items:center;gap:6px;font-size:11px;cursor:pointer}.filter-chip span{color:var(--muted);font-weight:600}.filter-chip strong{font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chip:hover{border-color:var(--copper);color:var(--copper)}.filter-chip-clear{border:0;background:transparent;color:var(--copper);font-size:11px;font-weight:700;padding:0 4px;cursor:pointer}.filter-apply-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 11px;border:1px solid #d8c48a;border-radius:4px;background:#fffaec;color:#5c4a12;font-size:12px;line-height:1.4;max-width:100%}.filter-apply-bar>span{min-width:0}.filter-apply-bar .primary-button{margin-left:auto;min-height:30px;padding:0 14px;font-size:12px}.filter-activity{display:flex;align-items:center;gap:10px;padding:7px 11px;border:1px solid #b6d4dc;border-radius:4px;background:#f2fafc;color:#0a5663;font-size:12px;max-width:100%}.filter-activity[data-phase=refining]{border-color:#d7e0e6;background:#f7f9fa;color:#3c4b58}.filter-activity-copy{display:grid;gap:2px;min-width:0}.filter-activity-copy strong{font-size:12px;font-weight:650}.filter-activity-copy small{color:inherit;opacity:.78;font-size:10px;overflow-wrap:anywhere}.filter-activity-track{margin-left:auto;flex:0 0 auto;width:96px;height:4px;border-radius:2px;background:#d7e8ec;overflow:hidden}.filter-activity-track i{display:block;width:40%;height:100%;border-radius:2px;background:var(--copper, #b4581f);animation:filter-activity-slide 1.1s ease-in-out infinite}@keyframes filter-activity-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media(prefers-reduced-motion:reduce){.filter-activity-track i{animation:none;width:100%;opacity:.6}.filter-activity .spin{animation:none}}.audit-toolbar-alert{margin:0;padding:8px 11px;border:1px solid #e2b7a4;border-radius:4px;background:#fff7f2;color:#7a3b24;font-size:12px;line-height:1.4;max-width:100%;overflow-wrap:anywhere}.audit-workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 398px;grid-template-rows:minmax(0,1fr);overflow:hidden;background:#fff;position:relative}.audit-workspace.audit-workspace--rail-collapsed,.audit-workspace.audit-workspace--full-view{grid-template-columns:minmax(0,1fr)}.audit-workspace.audit-workspace--timeline-collapsed .workspace-main,.audit-workspace.audit-workspace--full-view .workspace-main{grid-template-rows:minmax(0,1fr)}.audit-workspace.audit-workspace--rail-collapsed .audit-rail,.audit-workspace.audit-workspace--full-view .audit-rail,.audit-workspace.audit-workspace--timeline-collapsed .timeline-panel,.audit-workspace.audit-workspace--full-view .timeline-panel{display:none}.audit-workspace.audit-workspace--rail-collapsed .map-panel,.audit-workspace.audit-workspace--full-view .map-panel{border-right:0}.workspace-main{--timeline-row: 300px;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) var(--timeline-row);overflow:hidden}.map-panel{min-height:0;position:relative;border-right:1px solid var(--line)}.panel-heading{position:absolute;z-index:5;top:0;left:0;right:0;height:50px;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;background:linear-gradient(180deg,#f8fafceb,#f8fafcb8 55%,#f8fafc00)}.panel-heading h2,.timeline-header h2,.rail-section h2{margin:0;font-size:15px;line-height:1.25;font-weight:700}.panel-heading h2{color:#15202b;text-shadow:0 1px 0 rgba(255,255,255,.55)}.panel-heading p,.timeline-header p,.rail-title-row p{margin:2px 0 0;color:var(--muted);font-size:10px}.panel-heading p{color:#314455;text-shadow:0 1px 0 rgba(255,255,255,.45)}.map-panel-immersive .panel-heading{background:linear-gradient(180deg,#080e16b8,#080e1647 60%,#080e1600)}.map-panel-immersive .panel-heading h2,.map-panel-immersive .panel-heading p{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.72)}.map-panel-immersive .panel-heading p,.map-panel-immersive .map-zoom-label{display:none}.map-zoom-label{color:var(--muted);font-size:10px}.map-canvas-shell{position:absolute;inset:0;overflow:hidden;background:#eef2f4}.map-gesture-surface,.maplibre-host,.google-map-stack{position:absolute;inset:0}.google-map-loading,.google-map-error{position:absolute;inset:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:6px;pointer-events:none;color:#273546;font-size:12px}.google-map-error{pointer-events:auto;background:#eef2f4e0}.google-map-stack-3d .google-map-host>gmp-map-3d{filter:none}.google-3d-area-label{display:inline-block;max-width:145px;padding:2px 6px;border:1px solid rgba(225,232,238,.92);background:#ffffffe6;box-shadow:0 2px 7px #040f1847;color:#203040;font-size:10px;font-weight:700;line-height:1.15;text-align:center;text-wrap:balance}.google-3d-hotspot-badge{width:30px;height:30px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:#cf581b;box-shadow:0 2px 8px #190e0461;color:#fff;font-size:13px;font-weight:750;line-height:1}.export-neutral .maplibre-host{visibility:hidden}.export-neutral .map-canvas-shell{background:#eef2f4}.neutral-audit-overlay{position:absolute;inset:0;width:100%;height:100%;display:none}.export-neutral .neutral-audit-overlay{display:block}.neutral-map-background{fill:#eef2f4}.neutral-map-grid{fill:none;stroke:#d7dee3;stroke-width:2}.neutral-geofence-mark{fill:#b23cff1a;stroke:#b23cff;stroke-width:3;stroke-dasharray:8 5}.neutral-density-mark{fill:#ff6b00}.neutral-route-mark{fill:none;stroke:#0a5fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.neutral-route-mark--reconstructed{stroke-dasharray:6 6;opacity:.7}.neutral-road-reference-mark{fill:none;stroke:#315c78;stroke-width:3;stroke-dasharray:7 5;opacity:.72}.neutral-building-mark{fill:#d8dde0;stroke:#8f9ba3;stroke-width:2}.maplibregl-canvas{outline:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.map-experience-toolbar{position:absolute;z-index:5;top:10px;right:14px;bottom:62px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}.map-toolbar-row{flex:0 0 auto;display:flex;align-items:flex-start;gap:6px}.map-mode-control{display:inline-flex;padding:3px;border:1px solid rgba(145,157,168,.74);border-radius:3px;background:#fffffff5;box-shadow:0 4px 18px #05121c33;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto}.map-mode-control button{min-width:62px;height:28px;padding:0 10px;border:0;border-radius:2px;background:transparent;color:#273646;font:inherit;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.map-mode-control button.selected{background:#153149;color:#fff}.map-mode-control button:disabled{color:#9aa6b0;cursor:not-allowed}.map-view-toggle{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(145,157,168,.74);border-radius:3px;background:#fffffff5;box-shadow:0 3px 12px #05121c2e;color:#273646;cursor:pointer;pointer-events:auto}.map-view-toggle:hover{background:#fff;color:var(--copper)}.map-view-toggle.open{background:#153149;border-color:#153149;color:#fff}.map-view-card{width:178px;min-height:0;overflow-y:auto;display:grid;gap:9px;align-content:start;padding:10px 11px;border:1px solid rgba(145,157,168,.74);border-radius:3px;background:#fffffff5;box-shadow:0 4px 18px #05121c33;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto}.map-view-field{display:grid;gap:4px}.map-view-field-label,.map-metric-select>span{color:#51606f;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.map-view-card .segment-control{width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}.map-view-card .segment-control button{min-width:0;height:26px;padding-inline:2px;font-size:9px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-view-card .segment-control--stacked{grid-auto-flow:row;grid-auto-columns:auto}.map-view-card .segment-control--stacked button{border-right:1px solid var(--line)}.map-view-card .segment-control--stacked button+button{border-top:0}.map-view-card .layer-toggle{width:100%;justify-content:flex-start;gap:7px;padding:0;font-size:10px}.map-view-note{margin:0;color:#253545;font-size:10px;font-weight:560}.map-legend-dock{position:absolute;z-index:4;left:14px;bottom:62px;width:132px;max-height:calc(100% - 120px);overflow-y:auto;display:grid;gap:6px;padding:8px 9px;border:1px solid rgba(145,157,168,.74);border-radius:3px;background:#fffffff5;box-shadow:0 3px 12px #05121c29}.map-legend{display:grid;gap:5px;color:#253545;font-size:9px;font-weight:560}.map-legend span{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:6px;line-height:1.2}.map-legend i{display:block;justify-self:center}.map-legend small{color:var(--muted);font-size:8px;line-height:1.3}.map-legend span.legend-ramp-row{display:grid;grid-template-columns:1fr;gap:3px}.legend-ramp{width:100%;height:8px;border-radius:2px;border:1px solid rgba(0,0,0,.18)}.map-legend small.legend-ramp-scale{display:flex;justify-content:space-between;font-size:8px}.map-view-method{border-top:1px solid var(--line);padding-top:6px}.map-view-method summary{color:#51606f;font-size:8px;font-weight:700;cursor:pointer}.map-view-method p{margin:5px 0;color:var(--muted);font-size:9px;line-height:1.35}.map-view-method p b{color:var(--ink)}.map-view-method a{color:#244f6b}.map-view-method small{display:block;margin-top:6px;color:var(--muted);font-size:8px}.map-view-status{flex:0 0 auto;width:178px;margin:0;pointer-events:auto;padding:6px 8px;border-left:3px solid #b45309;background:#fff8eb;color:#7a3a07;font-size:9px;line-height:1.35}.map-metric-select{display:grid;gap:4px}.map-metric-select select{width:100%;height:31px;border:1px solid rgba(145,157,168,.74);border-radius:3px;background:#fffffff7;color:#172533;padding:0 8px;font:inherit;font-size:10px;font-weight:650;text-transform:none;letter-spacing:0;box-shadow:0 3px 12px #05121c24}.map-playback-control{position:absolute;z-index:6;left:14px;right:14px;bottom:14px;width:auto;min-width:0;display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(96,111,126,.82);border-radius:3px;background:#fffffff5;box-shadow:0 4px 16px #05121c2e;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;pointer-events:auto}.map-playback-control select{height:25px;min-width:0;border:1px solid #c4cdd6;border-radius:2px;background:#fff;color:#213140;padding:0 7px;font:inherit;font-size:9px;font-weight:650}.map-playback-control.playing{border-color:#0a5fff;background:#ebf3fffa;box-shadow:0 0 0 2px #0a5fff38,0 7px 22px #081a333d}.map-playback-control .playback-toggle{height:27px;min-width:78px;border:1px solid #0649c9;border-radius:3px;background:#0a5fff;color:#fff;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;font:inherit;font-size:9px;font-weight:750;cursor:pointer;white-space:nowrap;box-shadow:0 2px 7px #0a5fff52}.map-playback-control.playing .playback-toggle{border-color:#9a4d00;background:#ffb000;color:#161b22;box-shadow:0 0 0 3px #ffb0003d,0 2px 8px #6f390047}.map-playback-control.playing .playback-toggle svg{animation:playback-pulse .9s ease-in-out infinite alternate}.playback-track{position:relative;flex:1;min-width:88px;display:grid;gap:1px;--playback-thumb: 16px}.playback-marks{position:relative;height:9px}.playback-mark{position:absolute;top:1px;height:7px;min-width:4px;padding:0;border:0;border-radius:2px;background:#d44c08;cursor:pointer}.playback-mark:hover,.playback-mark:focus-visible{background:#b03d05;outline-offset:1px}.map-playback-control .playback-progress{width:100%;height:18px;margin:0;accent-color:#0a5fff}.map-playback-control .playback-clock{flex:0 0 auto;min-width:11ch;text-align:right;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;color:#213140;white-space:nowrap}.map-playback-control .playback-stop,.map-playback-control.playing .playback-stop{min-width:0;border-color:#8d99a6;background:#fff;color:#40505f;box-shadow:none}.map-playback-control.playing .playback-stop svg{animation:none}.map-playback-control.paused{border-color:#9a4d00;background:#fff8ebfa}@keyframes playback-pulse{0%{transform:scale(.82);opacity:.7}to{transform:scale(1.12);opacity:1}}.map-key-column{width:8px;height:20px;border-radius:4px/2px;background:linear-gradient(90deg,#a80f00,#ffb000);box-shadow:inset 1px 0 #ffffff61}.map-key-vehicles,.map-key-tonnage,.map-key-load{width:10px;height:18px;clip-path:polygon(25% 0,75% 0,100% 18%,100% 82%,75% 100%,25% 100%,0 82%,0 18%);box-shadow:inset 1px 0 #fff6}.map-key-vehicles{background:linear-gradient(90deg,#075985,#38bdf8)}.map-key-tonnage{background:linear-gradient(90deg,#92400e,#fbbf24)}.map-key-load{background:linear-gradient(90deg,#78350f,#b45309 45%,#a855f7 55%,#581c87)}.map-key-surface{width:16px;height:7px;border-radius:4px;background:linear-gradient(90deg,#ffd400,#ff8a00 38%,#f03b12 68%,#b80f0a);box-shadow:0 0 5px #ea580c61}.map-key-speed{width:18px;height:4px;border-radius:3px;background:linear-gradient(90deg,#2563eb 0 25%,#eab308 25% 50%,#f97316 50% 75%,#dc2626 75%);box-shadow:0 0 7px #f973167a}.map-key-route,.map-key-speed-route,.map-key-geofence{width:16px;height:3px;border-radius:2px}.map-key-route{background:linear-gradient(90deg,#008c99,#0a5fff,#ff6b00,#b23cff);box-shadow:0 0 6px #38bdf88c}.map-key-speed-route{background:linear-gradient(90deg,#2563eb 0 25%,#eab308 25% 50%,#f97316 50% 75%,#dc2626 75%);box-shadow:0 0 6px #f9731680}.map-key-geofence,.map-key-geofence.lkw{background:#b23cff}.map-key-geofence.internal{background:#00d3a7}.map-key-geofence.both{background:#ffd23f}.map-key-geofence.unmatched{background:#9aa4b2}.map-key-playback{width:18px;height:18px;display:inline-grid;place-items:center}.map-key-playback svg{display:block}.playback-key-row{color:#0649c9;font-weight:750}.google-playback-vehicle{width:26px!important;height:26px!important;padding:0!important;display:grid!important;place-items:center!important;border:0!important;background:none!important;box-shadow:none!important;line-height:1!important;transform:translate(-50%,-50%)}.google-playback-vehicle-3d{transform:none!important}.google-playback-car{display:grid;place-items:center;transform-origin:center center;transition:transform 80ms linear}.google-playback-car svg{display:block}.map-key-empty{color:var(--muted);font-size:11px;font-weight:600}.legend-swatch{width:20px;height:9px}.legend-swatch.very-high{background:#a80f00}.legend-swatch.high{background:#f03b12}.legend-swatch.medium{background:#ff8a00}.legend-swatch.low{background:#ffd400}.legend-swatch.speed-blue{background:#2563eb}.legend-swatch.speed-yellow{background:#ca8a04}.legend-swatch.speed-orange{background:#f97316}.legend-swatch.speed-red{background:#dc2626}.map-scale{position:absolute;z-index:4;left:18px;bottom:14px;width:72px;height:19px;border-left:2px solid #17212b;border-right:2px solid #17212b;border-bottom:2px solid #17212b;font-size:10px;text-align:center}.workspace-main{position:relative}.truck-details-card{position:absolute;z-index:6;top:64px;right:16px;width:272px;background:#fff;border:1px solid var(--line-strong);padding:12px 14px;font-size:12px;box-shadow:0 6px 22px #0f172a29}.truck-details-card header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.truck-details-card header strong{flex:1;font-size:13px}.truck-details-card dl{display:grid;gap:4px;margin:0}.truck-details-card dl div{display:flex;justify-content:space-between;gap:10px}.truck-details-card dt{color:var(--muted)}.truck-details-card dd{margin:0;font-weight:600;text-align:right}.truck-details-card>p{margin:0;color:var(--muted)}.truck-details-day{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.truck-details-day h3{font-size:11px;margin:0 0 6px}.truck-details-day ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}.truck-details-day li{display:flex;justify-content:space-between;gap:8px;font-size:11px}.route-hover-preview{display:grid;gap:3px;font-size:12px;max-width:280px}.route-hover-preview strong{font-size:13px;line-height:1.25}.route-hover-preview .route-hover-meta{color:#5b6773;font-size:11px}.vehicle-multi-search{width:100%;box-sizing:border-box;margin-bottom:6px;padding:6px 8px;border:1px solid var(--line);border-radius:3px;font-size:12px}.recurrence-hint{font-weight:500;color:var(--muted);font-size:10px;margin-left:6px;text-transform:uppercase;letter-spacing:.04em}.timeline-panel{border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff;padding:13px 22px 12px;min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain}.timeline-header{height:42px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.timeline-header-actions,.rail-title-actions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.panel-fold-button{height:32px;padding:0 9px;border:1px solid var(--line);border-radius:3px;background:#fff;color:#385066;display:inline-flex;align-items:center;gap:5px;cursor:pointer;flex:0 0 auto;font:inherit;font-size:11px;font-weight:650}.panel-fold-button:hover{background:#f0f4f6;border-color:#8593a1}.panel-edge-handle{position:absolute;z-index:8;display:grid;place-items:center;border:1px solid #aeb8c2;background:#fffffff7;box-shadow:0 2px 10px #05121c29;color:#40505f;cursor:pointer;padding:0}.panel-edge-handle:hover{background:#fff9f5;border-color:var(--copper);color:var(--copper)}.panel-edge-handle--rail{top:50%;right:0;transform:translateY(-50%);width:15px;height:46px;border-right:0;border-radius:3px 0 0 3px}.panel-edge-handle--timeline{left:50%;bottom:0;transform:translate(-50%);width:46px;height:15px;border-bottom:0;border-radius:3px 3px 0 0}.compact-select-label{display:flex;align-items:center;gap:8px;font-size:10px}.compact-select-label select{height:32px;min-width:150px;border:1px solid var(--line);background:#fff;border-radius:3px;padding:0 10px;font-size:11px}.timeline-chart-wrap{height:168px;min-width:0}.timeline-chart,.profile-chart{height:100%!important;width:100%}.timeline-window-status{min-height:15px;margin:-1px 0 0;color:var(--muted);font-size:9px}.timeline-footer{height:31px;display:flex;justify-content:space-between;align-items:end}.range-tabs,.timeline-nav,.segment-control{display:inline-flex}.range-tabs button,.timeline-nav button,.segment-control button,.profile-period button{min-width:42px;height:32px;border:1px solid var(--line);border-right:0;background:#fff;font-size:11px;cursor:pointer}.range-tabs button:last-child,.timeline-nav button:last-child,.segment-control button:last-child{border-right:1px solid var(--line)}.range-tabs .selected,.segment-control .selected{color:var(--copper);border-color:var(--copper);background:#fff9f5}.timeline-nav button{display:inline-grid;place-items:center}.timeline-nav button:disabled,.profile-period button:disabled{color:#9aa6b2;background:#f4f6f7;cursor:not-allowed}.audit-rail{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;overflow:auto;overscroll-behavior:contain}.rail-section{padding:21px 20px;border-bottom:1px solid var(--line)}.rail-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.count-label{font-size:10px;color:var(--muted);white-space:nowrap}.hotspot-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px}.hotspot-list li{display:grid;grid-template-columns:25px 1fr;gap:9px;align-items:start}.hotspot-focus-button{display:grid;grid-template-columns:25px 1fr;gap:9px;align-items:start;width:100%;margin:0;padding:8px 8px 8px 4px;border:1px solid transparent;border-radius:4px;background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit}.hotspot-focus-button:hover,.hotspot-focus-button:focus-visible{border-color:var(--line);background:#f7f9fb;outline:none}.hotspot-list li:has(.hotspot-focus-button){display:block}.hotspot-rank{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--copper);font-weight:700;font-size:11px}.hotspot-rank.speed-band-blue{background:#2563eb}.hotspot-rank.speed-band-yellow{background:#a16207}.hotspot-rank.speed-band-orange{background:#ea580c}.hotspot-rank.speed-band-red{background:#b91c1c}.hotspot-copy{display:grid;gap:5px;min-width:0}.hotspot-copy>div{display:flex;justify-content:space-between;gap:8px}.hotspot-copy strong{font-size:12px}.hotspot-copy small{color:var(--muted);font-size:9px;text-align:right}.hotspot-copy>span{color:var(--muted);font-size:9px}.hotspot-copy>i{height:5px;background:#e3e7ea;display:block;overflow:hidden}.hotspot-copy>i b{display:block;height:100%;background:var(--copper)}.method-note{margin:14px 0 0;color:var(--muted);font-size:9px;line-height:1.4}.rail-table{width:100%;border-collapse:collapse;font-size:10px;display:block;overflow-x:auto}.rail-table thead th{text-align:right;color:var(--muted);font-size:9px;font-weight:600;padding:4px 6px;border-bottom:1px solid var(--line);white-space:nowrap}.rail-table thead th:first-child{text-align:left}.rail-table tbody th{text-align:left;font-weight:600;padding:6px;border-bottom:1px solid #eef1f3;display:grid;gap:2px}.rail-table tbody th small{color:var(--muted);font-size:9px;font-weight:400}.rail-table tbody td{text-align:right;padding:6px;border-bottom:1px solid #eef1f3;white-space:nowrap;font-variant-numeric:tabular-nums}.rail-table tbody tr[data-flagged=true] th small:first-of-type{color:#b91c1c;font-weight:600}.profile-section{flex:1;min-height:230px;padding-bottom:12px}.segment-control button{min-width:54px;height:29px}.profile-chart{height:166px!important}.profile-period{display:grid;grid-template-columns:36px 1fr 36px;border:1px solid var(--line);height:35px;margin-top:3px}.profile-period button{border:0;min-width:0;width:36px;height:33px;display:grid;place-items:center}.profile-period span{border-left:1px solid var(--line);border-right:1px solid var(--line);display:grid;place-items:center;font-size:10px}.quality-summary{border:0;border-top:1px solid var(--line);background:#f8fafb;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;text-align:left}.quality-summary:hover{background:#eef3f6}.quality-summary>span{display:flex;align-items:center;gap:8px;min-width:0}.quality-summary>span>svg{flex:0 0 auto;color:var(--green)}.quality-summary[data-tone=warning]>span>svg{color:var(--warning)}.quality-summary[data-tone=error]>span>svg{color:var(--danger)}.quality-summary span span{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.quality-summary strong{font-size:11px}.quality-summary small{color:var(--muted);font-size:10px}.quality-summary>b{color:#385066;font-size:10px;font-weight:700;white-space:nowrap}.css-chart{height:100%;display:flex;gap:2px;align-items:end;padding:12px 4px 20px 38px;border-bottom:1px solid var(--line)}.css-chart i,.css-chart button{flex:1;background:var(--teal);min-width:1px;border:0;padding:0}.empty-workspace{flex:1;min-height:560px;display:grid;place-items:center;background:#f4f6f8;overflow-y:auto}.empty-state{max-width:440px;padding:48px 30px;text-align:center;display:grid;justify-items:center}.empty-icon{width:54px;height:54px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--copper)}.empty-loader{color:var(--copper);animation:spin .9s linear infinite}.empty-state h2{margin:18px 0 7px;font-size:21px}.empty-state p{margin:0 0 22px;color:var(--muted);line-height:1.55;font-size:13px}.empty-state small{margin-top:13px;color:var(--subtle);font-size:10px}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:100;background:#18222c40;display:grid;place-items:center;padding:20px}.modal{width:min(850px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid #aeb8c2;box-shadow:0 15px 42px #111e2b38}.modal-header,.drawer-header{min-height:80px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 26px 14px}.modal-header h2,.drawer-header h2{margin:0;font-size:20px;letter-spacing:-.3px}.modal-header p,.drawer-header p{margin:5px 0 0;color:var(--muted);font-size:12px}.import-grid{display:grid;grid-template-columns:.9fr 1.15fr;padding:9px 24px 18px}.file-selection-grid{grid-template-columns:2fr 1fr}.import-grid>section{padding-right:20px}.import-grid>section+section{padding-left:24px;padding-right:0;border-left:1px solid var(--line)}.import-grid h3,.drawer-form h3{margin:0 0 14px;font-size:13px}.file-row{min-height:67px;border:1px solid var(--line);display:grid;grid-template-columns:34px 1fr 22px 24px;align-items:center;gap:9px;padding:10px;margin-bottom:10px}.file-row>span{display:grid;gap:3px;min-width:0}.file-row strong{font-size:12px}.file-row small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row button{border:0;background:transparent;display:grid;place-items:center;padding:0;cursor:pointer}.excel-icon,.valid-icon{color:var(--green)}.file-picker-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-bottom:10px}.file-picker-row .file-picker{margin-bottom:0}.file-picker-row>.secondary-button{white-space:nowrap}.app-toast{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;align-items:center;gap:10px;max-width:min(420px,calc(100vw - 36px));padding:12px 12px 12px 14px;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 10px 28px #0f17201f;font-size:13px;line-height:1.35}.app-toast--info{border-left:3px solid var(--teal)}.app-toast--ok{border-left:3px solid #2f7d4a}.app-toast--error{border-left:3px solid #b42318}.app-upload-status{position:fixed;left:18px;right:18px;bottom:18px;z-index:85;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;max-width:min(560px,calc(100vw - 36px));margin-inline:auto;padding:14px 16px;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:0 12px 32px #0f172024}.app-upload-status__copy{min-width:0;display:grid;gap:6px}.app-upload-status__copy strong{font-size:13px}.app-upload-status__copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.app-upload-status .progress-track{width:100%}.app-upload-status__pct{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.file-picker{min-height:67px;border:1px solid var(--line);display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:10px;margin-bottom:10px;position:relative;cursor:pointer}.file-picker:hover{border-color:#8c99a5;background:#f8fafb}.file-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-picker span{display:grid;gap:3px;min-width:0}.file-picker strong{font-size:12px}.file-picker small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker b{color:var(--teal);font-size:10px}.replace-files{margin-top:147px;min-height:36px}.helper-text{display:block;color:var(--muted);margin-top:7px;font-size:9px}.stored-zones{margin-top:10px;border:1px solid var(--line);border-radius:3px}.stored-zones>summary{display:flex;align-items:center;gap:8px;padding:9px 11px;font-size:11px;font-weight:650;cursor:pointer}.stored-zones>summary b{margin-left:auto;padding:1px 7px;border-radius:999px;background:#eef3f5;color:#2c3d4c;font-size:10px}.stored-zones ul{margin:0;padding:4px 11px 11px;list-style:none;max-height:220px;overflow-y:auto;display:grid;gap:2px}.stored-zones li{padding:4px 6px;border-radius:3px;color:#2c3d4c;font-size:10px;overflow-wrap:anywhere}.stored-zones li:nth-child(odd){background:#f7fafb}.stored-zones .helper-text{padding:0 11px 11px;margin-top:0}.selection-note{margin:0 0 15px;color:var(--muted);font-size:10px;line-height:1.45}.validation-stats{min-height:57px;border:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 12px;font-size:11px;margin-bottom:17px}.validation-stats span{display:flex;align-items:center;gap:6px;white-space:nowrap}.validation-line{margin:0 0 13px;display:flex;align-items:flex-start;gap:9px;color:#263342;font-size:11px;line-height:1.45}.validation-line svg{flex:0 0 auto;color:var(--warning)}.validation-line.error svg{color:var(--danger)}.validation-line.local-note svg{color:var(--green)}.warning-icon{color:var(--warning)}.timezone-label{display:grid;gap:7px;font-size:11px;margin:4px 0 15px}.select-wrap{position:relative}.select-wrap select{width:100%;height:38px;border:2px solid #1967d2;border-radius:3px;background:#fff;padding:0 34px 0 11px;appearance:none;font-size:12px}.select-wrap svg{position:absolute;right:10px;top:11px;pointer-events:none}.disclosure{border:0;background:transparent;display:flex;align-items:center;gap:7px;padding:4px 0;color:var(--muted);font-size:11px;cursor:pointer}.affected-row-summary{max-height:132px;overflow:auto;margin-top:5px;padding:7px 9px;border:1px solid var(--line);background:#f8fafb}.affected-row-summary p{display:grid;grid-template-columns:auto 1fr;gap:3px 6px;margin:0;padding:5px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px}.affected-row-summary p:last-child{border-bottom:0}.affected-row-summary p strong{color:var(--ink)}.affected-row-summary p span{grid-column:1 / -1}.modal-footer{position:sticky;bottom:0;z-index:1;background:#fff;border-top:1px solid var(--line);min-height:73px;padding:14px 18px;display:flex;justify-content:flex-end;align-items:center;gap:10px}.sync-window{color:var(--muted);font-variant-numeric:tabular-nums}.footer-hint{margin-right:auto;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.column-report{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.column-report>h3{margin:0 0 8px;font-size:12px}.column-report details{border:1px solid var(--line);border-radius:3px;margin-bottom:6px}.column-report summary{display:flex;align-items:center;gap:8px;padding:7px 9px;font-size:11px;cursor:pointer}.column-report summary b{margin-left:auto;padding:1px 7px;border-radius:999px;background:#eef3f5;color:#2c3d4c;font-size:10px;font-weight:600}.column-report ul{list-style:none;margin:0;padding:0 9px 8px;display:grid;gap:3px}.column-report li{display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:6px;font-size:10px}.column-report li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-report li em{color:var(--muted);font-style:normal}.column-report li.ignored span{color:var(--muted);text-decoration:line-through}.import-save-error{margin:0 24px 14px;border:1px solid #d88c8c;background:#fff6f6;color:#7f1d1d;padding:11px 13px;display:flex;gap:9px;align-items:flex-start;font-size:11px;line-height:1.45}.import-save-error svg{flex:0 0 auto}.import-progress{min-height:390px;display:grid;justify-items:center;align-content:center;padding:40px;text-align:center}.import-progress h3{margin:18px 0 6px;font-size:17px}.import-progress p{margin:0 0 20px;color:var(--muted);font-size:12px}.progress-track{width:min(470px,80vw);height:8px;background:#e2e6e9;overflow:hidden}.progress-track i{height:100%;display:block;background:var(--copper);transition:width .16s linear}.import-progress>strong{font-size:11px;margin:7px 0 23px;color:var(--muted)}.spin{color:var(--copper);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drawer-backdrop{place-items:stretch end;padding:0}.drawer{height:100%;max-height:100dvh;width:min(430px,92vw);background:#fff;box-shadow:-10px 0 32px #111e2b2e;display:flex;flex-direction:column;min-height:0;overflow:hidden}.drawer-header{border-bottom:1px solid var(--line);flex:0 0 auto}.quality-score{margin:20px 24px;padding:16px;background:#f4f6f7;display:grid;grid-template-columns:1fr auto;gap:10px;font-size:11px;flex:0 0 auto}.quality-score strong{font-size:24px}.quality-score strong span{font-size:11px;color:var(--muted)}.quality-score i{grid-column:1 / -1;display:block;height:7px;background:#dce2e5}.quality-score i b{display:block;height:100%;background:var(--warning)}.issue-list{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 24px 24px;display:grid;align-content:start;gap:10px}.quality-issue{border:1px solid var(--line);padding:13px;display:grid;grid-template-columns:22px 1fr;gap:9px}.quality-issue svg{color:var(--warning)}.quality-issue.error svg{color:var(--danger)}.quality-issue strong{font-size:12px}.quality-issue p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.quality-empty{color:var(--muted);display:flex;align-items:center;gap:9px;font-size:11px;line-height:1.45}.quality-empty svg{color:var(--green)}.drawer-footer{border-top:1px solid var(--line);padding:14px 20px;display:flex;justify-content:flex-end;flex:0 0 auto}.drawer-action-row{display:flex;flex-wrap:wrap;gap:8px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:12px}.infleet-sync-progress{display:grid;gap:6px;margin-top:4px;padding:10px 12px;border:1px solid var(--line);background:#f7f9fb}.infleet-sync-progress progress{width:100%;height:8px}.infleet-sync-progress small{color:var(--muted);font-size:11px}.drawer-form{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px;display:grid;gap:16px;align-content:start}.drawer-form label{display:grid;gap:7px;color:#273646;font-size:11px}.drawer-form input,.drawer-form select{width:100%;height:39px;border:1px solid var(--line);border-radius:3px;padding:0 10px;background:#fff;font-size:12px}.drawer-form .primary-button{justify-self:end;margin-top:5px}.form-note{color:var(--muted);font-size:10px;line-height:1.45;margin:-5px 0 2px}.infleet-sync-panel{display:grid;gap:12px;align-content:start;margin-top:6px;padding:14px;border:1px solid var(--line);background:#f8fafb}.infleet-sync-panel h3{margin:0}.infleet-sync-panel h3+.form-note{margin-top:0}.infleet-sync-panel label{display:grid;gap:6px;color:#273646;font-size:11px}.infleet-sync-panel label.checkbox-row{display:flex}.infleet-sync-panel input:not([type=checkbox]){width:100%;height:36px;border:1px solid var(--line);border-radius:3px;padding:0 10px;background:#fff;font-size:12px}.infleet-sync-panel .drawer-action-row label{flex:1 1 130px}.storage-admin-panel{display:grid;gap:12px;align-content:start;padding:14px;border:1px solid var(--line);background:#f8fafb}.storage-admin-panel h3,.storage-admin-panel h4{margin:0}.storage-admin-panel .form-note{margin:6px 0 0}.storage-admin-panel .primary-button,.storage-admin-panel .danger-button,.storage-admin-panel .secondary-button{justify-self:start;margin-top:0}.storage-admin-error{color:#ad2c22}.storage-confirm{display:grid;gap:10px;padding:12px;border:1px solid #e8c4c0;background:#fff6f5}.storage-confirm h4{margin:0}.storage-confirm p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.storage-confirm label{display:grid;gap:6px;color:#273646;font-size:11px}.storage-confirm input{width:100%;height:36px;border:1px solid var(--line);border-radius:3px;padding:0 10px;background:#fff;font-size:12px}.storage-backup-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.storage-backup-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);background:#fff}.storage-backup-item strong{display:block;font-size:12px}.storage-backup-item p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.storage-admin-modal-body{padding:0 26px 24px}@media(max-width:1320px){.top-command-bar{grid-template-columns:minmax(300px,1fr) auto;gap:18px;padding-inline:20px}.brand-block h1{font-size:23px}.audit-toolbar{padding-inline:12px}.filter-field--primary{flex-basis:130px;min-width:118px;max-width:178px}.vehicle-multi-field{flex-basis:148px;min-width:136px;max-width:196px}.layer-toggle{font-size:11px}.audit-workspace{grid-template-columns:minmax(0,1fr) 340px}.audit-workspace.audit-workspace--rail-collapsed,.audit-workspace.audit-workspace--full-view{grid-template-columns:minmax(0,1fr)}.rail-section{padding-inline:16px}.workspace-main{--timeline-row: 260px;grid-template-rows:minmax(0,1fr) var(--timeline-row)}.timeline-chart-wrap{height:140px}.profile-chart{height:145px!important}}@media(max-width:1040px){.top-command-bar{grid-template-columns:1fr auto}.audit-toolbar-layers{border-left:0;border-top:1px solid var(--line-soft);padding:10px 0 0;width:100%}}@media(max-width:780px){.top-command-bar{min-height:auto;display:flex;flex-wrap:wrap;gap:12px;padding:15px 16px}.brand-block{flex:1 0 100%}.brand-block h1{font-size:21px}.brand-block>small{display:block;color:var(--muted);margin-top:3px;font-size:10px}.header-actions{flex:1 1 100%}.header-command-group{flex:0 0 auto}.header-command-group>.command-button{font-size:11px;padding-inline:8px}.overflow-wrap{margin-left:auto}.audit-toolbar{padding:7px 10px 8px}.audit-toolbar-primary{flex-basis:100%}.filter-field--primary,.vehicle-multi-field{flex:1 1 calc(50% - 8px);min-width:140px;max-width:none;width:auto}.filter-panel{width:100%}.filter-panel>summary{width:100%;justify-content:center}.filter-panel-grid{grid-template-columns:1fr}.app-shell{height:auto;overflow-y:visible}.audit-workspace{display:block;overflow:visible}.workspace-main{display:block;overflow:visible;--timeline-row: 240px}.timeline-panel{overflow-y:visible}.audit-rail{overflow:visible}.map-panel{height:510px;border-right:0}.timeline-panel{height:var(--timeline-row);border-right:0}.audit-workspace.audit-workspace--timeline-collapsed .map-panel,.audit-workspace.audit-workspace--full-view .map-panel{height:min(78vh,760px)}.audit-rail{border-top:1px solid var(--line)}.profile-section{min-height:270px}.profile-chart{height:180px!important}.quality-summary{border-bottom:1px solid var(--line)}.import-grid{grid-template-columns:1fr}.import-grid>section{padding-right:0}.import-grid>section+section{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;margin-top:20px}.replace-files{margin-top:10px}.validation-stats{gap:12px;flex-wrap:wrap;padding-block:10px}.map-view-card{width:168px}}@media(max-width:480px){.app-shell{overflow-x:hidden}.top-command-bar{gap:9px;padding:12px}.brand-block h1{font-size:19px}.header-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:6px}.header-view-block{grid-column:1 / -1;width:100%;justify-items:stretch}.header-view-block>.segment-control{width:100%}.header-view-block>.segment-control button{flex:1;min-width:0;padding-inline:4px;font-size:9px}.header-command-group{grid-column:1;flex:none;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(0,1fr)}.header-command-group>.command-button{min-width:0;padding-inline:7px;gap:6px;font-size:10px}.command-button--icon-only{width:40px;padding-inline:0}.header-actions .overflow-wrap{margin:0;grid-column:2}.audit-toolbar{padding-inline:10px}.filter-field{font-size:9px}.filter-select-wrap select,.vehicle-multi>summary,.filter-panel>summary{height:36px;font-size:12px}.audit-toolbar-layers-label{display:none}.layer-toggle{font-size:10px}.map-panel{height:500px}.panel-heading{height:44px;padding:10px 12px}.panel-heading h2{font-size:14px}.map-experience-toolbar{top:48px;right:8px;bottom:56px}.map-view-card{width:152px;padding:8px 9px;gap:7px}.map-mode-control button{min-width:48px;padding-inline:6px;font-size:10px}.map-metric-select select{height:31px}.map-playback-control{left:8px;right:8px;bottom:10px;flex-wrap:wrap}.map-playback-control .playback-clock{font-size:9px}.map-view-card .segment-control button{height:25px;font-size:8px}.google-3d-area-label{max-width:86px;padding:1px 3px;font-size:7px}.google-3d-hotspot-badge{width:24px;height:24px;font-size:10px}.timeline-panel{padding-inline:14px}.compact-select-label{display:none}.timeline-header{height:47px}.modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.modal-backdrop{padding:10px}.modal-header{padding-inline:17px}.import-grid{padding-inline:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.flow-sankey-chart{width:100%}.sankey-fallback{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;font-size:10px}.sankey-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.sankey-fallback .link-button{border:0;background:none;padding:0;font:inherit;color:var(--copper);text-align:left;cursor:pointer}.sankey-fallback .link-button[aria-pressed=true]{text-decoration:underline;font-weight:700}.sankey-detail{margin-top:8px;display:grid;gap:6px}.sankey-detail h3{margin:0;font-size:11px}.sankey-detail .rail-title-row p{margin:0;font-size:10px;color:var(--muted)}.sankey-excluded{margin-top:8px;font-size:10px}.sankey-excluded summary{cursor:pointer;color:var(--muted)}.sankey-excluded[open] summary{margin-bottom:6px}.rail-table .link-button{border:0;background:none;padding:0;font:inherit;color:var(--copper);text-align:left;cursor:pointer}.rail-table .link-button[aria-pressed=true]{text-decoration:underline;font-weight:700}.playback-status-section{padding-bottom:12px}.playback-status-scroll{max-height:260px;overflow:auto;margin-top:10px}.playback-status-table tbody th{display:table-cell}.playback-status-vehicle{display:inline-flex;align-items:center;gap:6px}.playback-status-vehicle .map-key-playback{display:inline-flex}.playback-status-table tbody td{text-align:left}.playback-status-table tbody tr[data-state=silent] th,.playback-status-table tbody tr[data-state=not-seen] th{color:var(--muted)}.status-chip{display:inline-block;padding:1px 7px;border-radius:999px;border:1px solid transparent;font-size:9px;font-weight:700;letter-spacing:.01em;line-height:1.5;white-space:nowrap}.status-chip[data-tone=driving]{background:#008c99;color:#fff}.status-chip[data-tone=standing]{background:#94a3b8;color:#fff}.status-chip[data-tone=silent]{background:transparent;color:var(--muted);border-color:#cbd5e1}.status-chip[data-tone=not-seen]{background:transparent;color:var(--muted);border-style:dotted;border-color:#cbd5e1}.status-chip[data-tone=loaded]{background:#b45309;color:#fff}.status-chip[data-tone=empty]{background:#f1f5f9;color:#334155;border-color:#cbd5e1}
