.import-source-job-panel{display:grid;gap:14px;margin-bottom:16px;padding:18px;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#f8fafceb}.import-source-job-panel label{display:grid;gap:6px;font-weight:600}.import-source-job-panel textarea{width:100%;resize:vertical}.import-source-job-panel .secondary.active{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor}.import-source-job-status{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:11px 12px;border-radius:12px;background:#e2e8f0b8}.import-source-job-status span{color:#64748b;font-size:12px}.import-source-job-status.processing,.import-source-job-status.pending{background:#fef3c7cc}.import-source-job-status.completed{background:#dcfce7d1}.import-source-job-status.failed{background:#fee2e2d1}.fleet-map-view{display:flex;flex-direction:column;height:100%;width:100%;font-family:system-ui,sans-serif}.fleet-map-view__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb}.fleet-map-view__header h1{font-size:18px;margin:0}.fleet-map-view__header-actions{display:flex;gap:8px}.fleet-map-view__header-actions button{padding:6px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer}.fleet-map-view__issues-toggle--active{background:#fef3c7!important;border-color:#f59e0b!important}.fleet-map-view__error{padding:8px 16px;background:#fee2e2;color:#991b1b}.fleet-map-view__issues{padding:12px 16px;background:#fffbeb;border-bottom:1px solid #fde68a;max-height:220px;overflow-y:auto}.fleet-map-view__issues table{width:100%;border-collapse:collapse;font-size:13px}.fleet-map-view__issues th,.fleet-map-view__issues td{text-align:left;padding:4px 8px;border-bottom:1px solid #fde68a}.fleet-map-view__issues h2{font-size:14px;margin:8px 0 4px}.fleet-map-view__issues-route-chip{display:inline-flex;align-items:center;gap:4px;margin-right:8px}.fleet-map-view__body{display:flex;flex:1;min-height:0}.fleet-map-view__map{position:relative;flex:1;min-width:0}.fleet-map-view__card-overlay{position:absolute;top:12px;right:12px;z-index:500}.fleet-map__load-error{padding:16px;color:#991b1b}.fleet-summary-bar{display:flex;gap:16px;padding:10px 16px;border-bottom:1px solid #e5e7eb;overflow-x:auto;font-size:13px}.fleet-summary-bar__stat{display:flex;flex-direction:column;align-items:center;min-width:64px}.fleet-summary-bar__value{font-size:18px;font-weight:700}.fleet-summary-bar__label{color:#6b7280;white-space:nowrap}.fleet-summary-bar__stat--warning .fleet-summary-bar__value{color:#b45309}.fleet-summary-bar__sync{margin-left:auto;align-self:center;color:#6b7280;white-space:nowrap}.fleet-vehicle-list{width:320px;flex-shrink:0;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden}.fleet-vehicle-list__search{margin:10px;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px}.fleet-vehicle-list__filter-group{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 8px}.fleet-vehicle-list__filter-chip{padding:4px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;font-size:12px;cursor:pointer}.fleet-vehicle-list__filter-chip--active{background:#dbeafe;border-color:#2563eb;color:#1e3a8a}.fleet-vehicle-list__items{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.fleet-vehicle-list__empty{padding:16px;color:#6b7280;font-size:13px}.fleet-vehicle-list__item{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:none;border-bottom:1px solid #f3f4f6;border-left:4px solid transparent;background:#fff;cursor:pointer;font-size:13px}.fleet-vehicle-list__item--selected{background:#eff6ff}.fleet-vehicle-list__item--active_run{border-left-color:#16a34a}.fleet-vehicle-list__item--assigned{border-left-color:#2563eb}.fleet-vehicle-list__item--unassigned{border-left-color:#9ca3af}.fleet-vehicle-list__item--conflict{border-left-color:#dc2626}.fleet-vehicle-list__item-registration{font-weight:700}.fleet-vehicle-list__item-status{color:#374151}.fleet-vehicle-list__item-route{color:#6b7280;font-size:12px}.fleet-vehicle-list__item-badge{color:#b91c1c;font-weight:600;font-size:12px}.fleet-vehicle-list__item-freshness{font-size:11px;color:#6b7280}.fleet-vehicle-list__item-freshness[data-freshness=stale]{color:#b45309;font-weight:600}.fleet-vehicle-card{background:#fff;border-radius:10px;box-shadow:0 8px 24px #0f172a40;padding:16px;width:300px;position:relative;font-size:13px}.fleet-vehicle-card__close{position:absolute;top:8px;right:8px;border:none;background:none;font-size:18px;cursor:pointer;line-height:1}.fleet-vehicle-card__title{margin:0 0 2px;font-size:16px}.fleet-vehicle-card__subtitle{margin:0 0 8px;color:#6b7280}.fleet-vehicle-card__facts{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:0 0 10px}.fleet-vehicle-card__facts dt{color:#6b7280}.fleet-vehicle-card__facts dd{margin:0}.fleet-vehicle-card__facts dd[data-freshness=stale]{color:#b45309;font-weight:600}.fleet-vehicle-card__no-route{color:#6b7280;font-style:italic}.fleet-vehicle-card__conflict{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px}.fleet-vehicle-card__conflict ul{margin:4px 0 0;padding-left:18px}.fleet-vehicle-card__center{margin-top:10px;flex:1;padding:6px;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer}.fleet-vehicle-card__assign{margin-top:10px;flex:1;padding:6px;border-radius:6px;border:1px solid #2563eb;background:#eff6ff;color:#1e3a8a;cursor:pointer;font-weight:600}.google-api-usage-page{height:100%;overflow:auto;padding:28px;background:#f5f7fa;color:#101828}.google-api-usage-page__header,.google-api-usage-page__section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.google-api-usage-page__header{max-width:1280px;margin:0 auto 18px}.google-api-usage-page__header h1,.google-api-usage-page__section h2{margin:0}.google-api-usage-page__header p,.google-api-usage-page__section-heading p,.google-api-usage-page__footnote{margin:6px 0 0;color:#667085}.google-api-usage-page__eyebrow{color:#175cd3!important;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.google-api-usage-page__header button,.google-api-usage-page__section-heading a{min-height:38px;padding:8px 13px;border:1px solid #b2ccff;border-radius:9px;background:#fff;color:#175cd3;font-weight:750;text-decoration:none;cursor:pointer}.google-api-usage-page__notice,.google-api-usage-page__error,.google-api-usage-page__section{max-width:1280px;margin:0 auto 16px;border:1px solid #e4e7ec;border-radius:14px;background:#fff;box-shadow:0 5px 18px #0f172a0f}.google-api-usage-page__notice,.google-api-usage-page__error{display:flex;gap:8px;padding:12px 14px}.google-api-usage-page__notice{border-color:#b2ccff;background:#eff8ff;color:#1849a9}.google-api-usage-page__error{border-color:#fda29b;background:#fff1f3;color:#b42318}.google-api-usage-page__section{padding:20px}.google-api-usage-page__status{padding:5px 9px;border-radius:999px;background:#ecfdf3;color:#027a48;font-size:12px;font-weight:800;white-space:nowrap}.google-api-usage-page__status.is-danger{background:#fef3f2;color:#b42318}.google-api-usage-page__cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.google-api-usage-page__cards article{display:grid;gap:5px;min-width:0;padding:14px;border:1px solid #e4e7ec;border-radius:12px;background:#fcfcfd}.google-api-usage-page__cards span,.google-api-usage-page__cards small,.google-api-usage-page__details dt{color:#667085;font-size:12px}.google-api-usage-page__cards strong{font-size:24px;font-variant-numeric:tabular-nums}.google-api-usage-page__meter{margin-top:18px}.google-api-usage-page__meter>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:13px}.google-api-usage-page__meter progress{width:100%;height:12px;accent-color:#2e90fa}.google-api-usage-page__details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 0}.google-api-usage-page__details div{padding-top:10px;border-top:1px solid #eaecf0}.google-api-usage-page__details dd{margin:4px 0 0;font-weight:700}.google-api-usage-page__table-wrap{overflow-x:auto;margin-top:18px}.google-api-usage-page table{width:100%;min-width:880px;border-collapse:collapse}.google-api-usage-page th,.google-api-usage-page td{padding:10px;border-bottom:1px solid #eaecf0;text-align:left;vertical-align:top}.google-api-usage-page th{background:#f9fafb;color:#475467;font-size:12px}.google-api-usage-page td{font-size:13px}.google-api-usage-page td strong,.google-api-usage-page td small{display:block}.google-api-usage-page td small{margin-top:2px;color:#667085}@media (max-width:900px){.google-api-usage-page{padding:14px}.google-api-usage-page__cards,.google-api-usage-page__details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.google-api-usage-page__header,.google-api-usage-page__section-heading{flex-direction:column}.google-api-usage-page__cards,.google-api-usage-page__details{grid-template-columns:1fr}}.app-shell{display:flex;flex-direction:column;height:100vh;width:100vw}.app-shell__nav{display:flex;gap:4px;padding:8px 12px;background:#111827;flex-shrink:0}.app-shell__nav button{padding:8px 16px;border:none;border-radius:6px 6px 0 0;background:transparent;color:#d1d5db;cursor:pointer;font-size:14px;font-weight:500}.app-shell__nav button:hover{background:#1f2937}.app-shell__nav-item--active{background:#fff!important;color:#111827!important}.app-shell__content{flex:1;min-height:0;position:relative}:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:radial-gradient(circle at top left,#dbeafe 0%,transparent 28%),radial-gradient(circle at top right,#fce7f3 0%,transparent 24%),linear-gradient(180deg,#f8fafc,#eef2ff);color:#0f172a}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden}.shell{width:100%;max-width:1280px;margin:0 auto;padding:56px 24px 80px}.editor-shell{width:100%;max-width:none;margin:0 auto;height:100dvh;padding:10px 10px 12px;display:flex;flex-direction:column;gap:8px;overflow-x:hidden;overflow-y:hidden}.editor-shell>.editor-grid{flex:1 1 auto;min-height:0}.hero{padding:32px;border:1px solid rgba(15,23,42,.08);border-radius:24px;background:#ffffffb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 24px 64px #0f172a14}.eyebrow{margin:0 0 12px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:#2563eb}h1{margin:0;font-size:clamp(40px,7vw,72px);line-height:.95}.lede{max-width:62ch;margin:18px 0 0;font-size:18px;line-height:1.6;color:#334155}.card{min-width:0;max-width:100%;margin-top:20px;padding:24px 28px;border-radius:20px;background:#fffc;border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 40px #0f172a0d}.card h2{margin:0 0 14px;font-size:18px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.grid-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;margin-top:20px}.editor-grid{width:100%;max-width:100%;display:grid;grid-template-columns:clamp(365px,22vw,405px) minmax(0,1fr);gap:16px;align-items:stretch;min-height:0;height:100%}.editor-sidebar{min-width:0;display:flex;flex-direction:column;gap:6px;min-height:0;max-height:none;height:100%;overflow:hidden}.compact-route-header-bar{flex:0 0 auto;display:grid;gap:3px;padding:4px 2px 0}.compact-route-header-title-row{display:flex;align-items:center;gap:6px;min-width:0}.compact-route-header-title-row h2{min-width:0;margin:0;font-size:16px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-route-header-meta{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-route-header-edit{margin-left:auto;width:30px;min-width:30px;height:30px;padding:0}.sidebar-action-toolbar{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:2px 0}.toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.toolbar-divider{width:1px;align-self:stretch;background:#94a3b859;margin:0 2px}.sidebar-action-toolbar .toolbar-icon-button,.sidebar-action-toolbar .route-action-button{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;height:32px;padding:0;font-size:15px;line-height:1}.sidebar-action-toolbar .route-action-button{color:#0f172a}.sidebar-action-toolbar .danger{color:#b91c1c}.sidebar-stops-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px}.postanki-card-content{display:flex;flex-direction:column;gap:6px;min-height:0}.postanki-count-row{flex:0 0 auto}.editor-map-panel{min-width:0;margin-top:0;min-height:0;display:flex;flex-direction:column;position:relative;background:transparent;border:none;border-radius:0;box-shadow:none;padding:0}.editor-map-panel .map-shell{flex:1 1 auto;min-height:0;height:100%}.route-tabs-card{margin-top:0;min-width:0;padding:3px 8px}.route-tabs-toolbar{display:flex;flex-wrap:wrap;gap:2px 4px;align-items:center}.route-tabs-spacer{flex:1 1 auto;min-width:0}.route-tabs-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;min-width:0;flex:1 1 420px}.route-tabs-actions input{min-width:0;flex:1 1 220px;max-width:100%}.field-inline{display:flex;flex-direction:column;gap:2px;min-width:0}.field-inline>span{font-size:.7rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.field-inline input,.field-inline select{min-width:0;height:30px;padding:5px 8px}.route-tabs-toolbar .compact-field{flex:1 1 180px}.route-tabs-toolbar .compact-field input,.route-tabs-toolbar .compact-field select{min-width:0;width:100%;height:30px;padding-top:4px;padding-bottom:4px}.route-tabs-toolbar .compact-checkbox{align-self:center;padding-bottom:0;margin-inline-end:2px;font-size:11px}.route-tabs-toolbar .compact-action{height:30px;padding:0 8px;white-space:nowrap}.route-tabs-toolbar .compact-create-route{flex:0 0 auto}.route-search-field{position:relative;flex:1 1 260px}.route-search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;max-height:360px;overflow-y:auto;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 12px 32px #0f172a29;padding:6px}.route-search-results-header{padding:4px 8px;font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.route-search-group{display:grid;gap:2px;margin-bottom:4px}.route-search-group-date{padding:4px 8px;font-size:11px;font-weight:700;color:#1d4ed8}.route-search-result{display:grid;gap:1px;width:100%;text-align:left;padding:6px 8px;border:none;border-radius:8px;background:transparent;cursor:pointer}.route-search-result:hover,.route-search-result.active{background:#eff6ff}.route-search-result-name{font-weight:700;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-search-result-meta{font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-day-nav{display:flex;align-items:center;gap:3px;padding:0;flex-wrap:nowrap}.route-day-nav-inline{margin-left:auto}.compact-day-button{height:30px;padding:0 8px}.route-day-nav-date{height:30px;min-width:130px;max-width:150px;padding:4px 8px}.route-day-count{margin-left:2px}.compact-assignment-card{padding:12px 14px}.compact-import-actions{min-width:0;display:grid;gap:6px;padding:0 2px}.compact-import-actions .compact-import-label{margin:0;font-size:12px;font-weight:700;color:var(--muted)}.compact-route-summary{display:grid;gap:4px;padding:10px 12px;border-radius:14px;background:#f8fafce0;border:1px solid rgba(15,23,42,.08)}.compact-route-header{min-width:0;display:grid;gap:4px}.compact-route-title-row{display:flex;align-items:center;gap:10px;min-width:0}.compact-route-title-row h2{min-width:0;margin:0;font-size:17px;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-route-meta{margin:0}.compact-route-date-row{display:flex;align-items:center;gap:6px;margin:2px 0}.compact-route-date-row input[type=date]{height:26px;padding:2px 6px;font-size:12px}.route-id-inline{display:inline-block;max-width:100%;vertical-align:bottom;overflow-wrap:anywhere}.compact-assignment-grid,.compact-dates,.compact-summary{margin-bottom:0}.compact-assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-assignment-grid>*,.compact-assignment-grid label{min-width:0}.compact-assignment-grid input{min-width:0;width:100%}.compact-assignment-grid .compact-assignment-driver{grid-column:1 / -1}.compact-route-summary .metric-row strong{overflow-wrap:anywhere}.compact-notes textarea{min-height:72px}.sticky-actions{position:sticky;bottom:0;z-index:2;padding:10px 0 4px;background:linear-gradient(180deg,#f8fafc00,#f8fafcf5 18px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sticky-actions button{flex:1 1 150px}.shell-banner{margin:0;padding:4px 10px;border-radius:12px;font-size:12px;line-height:1.25}.shell-banner-info{background:#eff6ffeb;border:1px solid rgba(59,130,246,.18);color:#1d4ed8}.shell-banner-error{background:#fef2f2eb;border:1px solid rgba(239,68,68,.18);color:#b91c1c}.shell-toast-layer{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:40;display:grid;gap:6px;width:min(480px,calc(100vw - 48px));pointer-events:none}.shell-toast{pointer-events:auto;margin:0;padding:8px 14px;border-radius:12px;font-size:12px;line-height:1.4;box-shadow:0 8px 24px #0f172a1f;overflow-wrap:anywhere;white-space:normal}.shell-toast-info{background:#eff6fff0;border:1px solid rgba(59,130,246,.18);color:#1d4ed8}.shell-toast-error{background:#fef2f2f0;border:1px solid rgba(239,68,68,.18);color:#b91c1c}.autocomplete-field{position:relative;display:grid;gap:8px}.autocomplete-field>span{font-size:.84rem;font-weight:700;color:var(--muted)}.autocomplete-field input{width:100%}.autocomplete-list{display:grid;gap:8px;margin-top:8px;max-height:240px;overflow:auto;padding-right:2px}.candidate-row{width:100%;display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(148,163,184,.8);background:#f8fafcf5;color:#0f172a}.candidate-row.current{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb2e}.candidate-row.active{background:#eff6ff}.candidate-main,.candidate-meta{display:flex;gap:8px;align-items:center;justify-content:space-between;min-width:0}.candidate-main strong{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.candidate-main span,.candidate-meta span:last-child{color:#64748b;font-size:12px}.compact-advanced{margin-top:10px;padding:14px}.compact-preview{margin-top:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:20px;background:#0f172a70}.modal-shell{width:min(850px,100%);max-height:min(88vh,920px);overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);border-radius:20px;background:#fffffffa;border:1px solid rgba(15,23,42,.1);box-shadow:0 36px 120px #0f172a47}.modal-header{display:flex;justify-content:space-between;gap:16px;padding:18px 18px 0;align-items:flex-start}.modal-header h2{margin:0}.modal-eyebrow{margin-bottom:6px}.modal-body{min-width:0;min-height:0;overflow:auto;padding:12px 18px 18px}.modal-body .card{margin-top:0;padding:18px}.modal-body .subcard,.modal-body .preview-card,.modal-body .advanced-card{max-width:100%}.modal-body .summary-grid,.modal-body .grid-2,.modal-body .grid-3{min-width:0}.modal-body textarea,.modal-body input,.modal-body select{max-width:100%}body.modal-open{overflow:hidden}.route-tabs-scroll{display:flex;gap:6px;overflow-x:auto;padding-top:2px;padding-bottom:1px;scrollbar-width:thin}.route-tab{min-width:168px;flex:0 0 auto;display:grid;gap:0;align-items:start;text-align:left;padding:2px 8px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a}.route-tab.active{border-color:#1d4ed8;background:#eff6ff;box-shadow:0 0 0 1px #1d4ed824}.route-tab-name{font-weight:700;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-tab-line{min-width:0;display:flex;align-items:center;gap:8px}.route-tab-assignment{min-width:0;color:#334155;font-size:9.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-tab-meta{min-width:0;margin-left:auto;color:#64748b;font-size:8.5px;white-space:nowrap}.compact-route-card,.sidebar-collapsible,.compact-runtime-details{margin-top:0}.compact-route-card-header{margin-bottom:4px}.compact-route-card{padding:10px 12px}.compact-route-name-row{display:grid;gap:4px}.compact-route-name-inline label{display:flex;align-items:center;gap:8px;font-size:12px;color:#64748b}.compact-route-name-inline input{flex:1 1 auto;min-width:0}.compact-return-to-start{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px}.compact-return-to-start-status{margin:0}.compact-route-mode{margin-bottom:0}.compact-return-to-start{margin:2px 0 4px}.sidebar-collapsible{padding:10px 12px}.sidebar-collapsible>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;font-weight:700}.sidebar-collapsible>summary::-webkit-details-marker{display:none}.sidebar-collapsible[open]>summary{margin-bottom:10px}.route-details-modal{width:min(820px,calc(100vw - 28px));max-height:calc(100vh - 28px)}.route-details-modal-body{display:grid;gap:10px;overflow:auto}.route-details-modal .card{margin-top:0}.sidebar-bottom-strip{flex:0 0 auto;display:grid;gap:6px;padding:6px 0 2px;border-top:1px solid rgba(148,163,184,.24)}.sidebar-bottom-strip-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}.sidebar-bottom-strip-summary{min-width:0;display:grid;gap:2px}.sidebar-bottom-strip-summary strong{font-size:13px;line-height:1.2}.sidebar-bottom-strip-summary span,.sidebar-bottom-strip-meta{font-size:11px;color:#475569}.sidebar-bottom-strip-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.sidebar-bottom-legs{min-width:0;padding:8px 10px}.sidebar-bottom-legs summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}.sidebar-bottom-legs summary::-webkit-details-marker{display:none}.sidebar-bottom-legs-list{display:grid;gap:6px;margin-top:8px}.sidebar-bottom-leg-row{padding:6px 8px;font-size:12px}.compact-runtime-details,.compact-runtime-grid .metric{padding:8px 10px}.map-panel-overlay{position:absolute;inset:10px 10px auto 10px;z-index:5;display:flex;flex-wrap:wrap;gap:6px;pointer-events:none}.create-route-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;background:#0f172a57}.create-route-modal{width:min(360px,calc(100vw - 24px));background:#fffffffa;border:1px solid rgba(15,23,42,.12);border-radius:18px;padding:14px;box-shadow:0 24px 64px #0f172a33}.compact-modal-header{margin-bottom:10px}.compact-modal-actions{justify-content:flex-end;margin-top:12px}.toolbar-actions{display:flex;flex-wrap:wrap;gap:10px}.toolbar-actions button{flex:1 1 160px}.stack{display:grid;gap:18px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.row{display:flex;align-items:center}.gap{gap:10px}.wrap{flex-wrap:wrap}.metric,.metric-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.metric span,.metric-row span{color:#64748b}.metric strong,.metric-row strong{text-align:right;overflow-wrap:anywhere;min-width:0}.field-note{display:block;margin:6px 0 12px;color:#475569;font-size:12px;line-height:1.45}.link-action{display:inline-block;margin:2px 0 4px;padding:0;border:none;background:none;color:#2563eb;font-size:12px;font-weight:600;cursor:pointer}.link-action:disabled{color:#94a3b8;cursor:not-allowed}.path-footer-note{margin:0 0 10px;font-size:11px}.path-footer-legs{max-height:220px;overflow-y:auto}.path-footer-summary-line{margin:0 0 10px;font-size:13px;color:#334155}.sidebar-path-footer .toolbar-actions button{flex:1 1 0;min-width:0;padding-left:8px;padding-right:8px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-note.error{color:#b91c1c}.empty-state{margin:0;padding:14px 16px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;color:#475569;font-size:14px}.runtime-note{margin:0;color:#334155}.small{font-size:12px}.pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:12px;font-weight:700}.pill.green{background:#dcfce7;color:#166534}.pill.yellow{background:#fef3c7;color:#92400e}.info{border-color:#bfdbfe;background:#eff6ff}.error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.map-shell{position:relative;height:560px;border-radius:16px;overflow:hidden;border:1px solid #cbd5e1}.google-map-shell{position:relative}.actual-gps-track-toggle{position:absolute;top:12px;right:12px;z-index:1000;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(203,213,225,.95);border-radius:9px;background:#fffffff0;box-shadow:0 3px 12px #0f172a24;color:#334155;font-size:11px;font-weight:700;cursor:pointer}.actual-gps-track-toggle[data-checked=true]{border-color:#334155;background:#334155;color:#fff}.actual-gps-track-toggle__swatch{display:inline-block;width:14px;height:3px;border-radius:999px;background:repeating-linear-gradient(90deg,currentColor 0 3px,transparent 3px 5px)}.google-map-canvas{height:100%;width:100%;min-height:100%}.google-map-loading{position:absolute;z-index:2;inset:14px auto auto 14px}.candidate-list{display:grid;gap:10px;margin:12px 0}.candidate-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border:1px solid #dbe4f0;border-radius:14px;background:#f8fafc;text-align:left}.candidate-row.active{border-color:#0f766e;background:#ecfdf5;box-shadow:0 0 0 1px #0f766e1f}.candidate-row strong{display:block;margin-bottom:2px}.candidate-row span{color:#64748b;font-size:12px}.candidate-meta{display:grid;gap:6px;justify-items:end;text-align:right}.preview-card{padding:16px;border-radius:16px;border:1px solid #cbd5e1;background:linear-gradient(180deg,#f8fafc,#eff6ff)}.subcard{margin-top:16px;padding:16px;border-radius:16px;border:1px solid #dbe4f0;background:#f8fafc}.subcard .card-header{margin-bottom:10px}.source-list{margin:10px 0 0;padding-left:20px;color:#334155;line-height:1.55}.source-details{display:grid;gap:10px}.runtime-details{margin-top:0;padding-top:14px}.runtime-details>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;list-style:none}.runtime-details>summary::-webkit-details-marker{display:none}.runtime-details[open]{padding-bottom:16px}.runtime-details .grid-2{margin-top:12px}.stops-list{display:grid;gap:8px;margin-top:0;padding-right:2px}.stop-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;min-height:40px;padding:6px 10px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;cursor:pointer}.stop-row.active{border-color:#1d4ed8;box-shadow:0 0 0 1px #1d4ed81f;background:#eff6ff}.stop-row.excluded{border-style:dashed;border-color:#f59e0b;background:#fffbeb;opacity:.9}.stop-row.completed{border-color:#bbf7d0;background:#f0fdf4}.stop-row .muted{margin-top:4px;font-size:12px;line-height:1.45}.stop-row-body{display:contents}.stop-row-label{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-weight:800;font-size:13px}.stop-row-label.selected{background:#fed7aa;color:#c2410c}.stop-row-address{min-width:0;display:flex;align-items:center;gap:8px;color:#0f172a;line-height:1.25;overflow:hidden}.stop-row-address-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-row-source{color:#64748b;font-size:11px;white-space:nowrap}.stop-row-excluded{color:#b45309;font-size:12px}.stop-row-completed{color:#15803d;font-size:12px;font-weight:700}.stop-row-actions{flex-shrink:0;display:flex;gap:4px}.compact-icon-button{height:28px;min-width:28px;padding:0 8px}.stop-row:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.route-leg-connector{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px;padding:0 8px 4px 38px;margin-top:-2px;color:#64748b;font-size:11px;line-height:1.25}.route-leg-connector.return-leg{color:#0f766e}.route-leg-connector-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-leg-connector-value{flex:0 0 auto;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.link-button{border:none;background:none;padding:0;color:#2563eb;font-size:12px;font-weight:600;cursor:pointer;text-align:left;width:fit-content}.link-button:hover:not(:disabled){text-decoration:underline}.link-button:disabled{color:#94a3b8;cursor:not-allowed}.stop-add-row{display:grid;gap:8px;padding:8px 10px;border:1px dashed #93c5fd;border-radius:14px;background:#f8fafc}.stop-add-row-main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center}.stop-add-row-icon{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-weight:800;font-size:15px}.stop-add-row-field{gap:0}.stop-add-row-field input{width:100%}.stop-add-row-coords-toggle{margin-left:38px}.stop-detail-modal{width:min(680px,calc(100vw - 24px));max-height:min(86vh,860px)}.stop-detail-modal .modal-body{max-height:calc(86vh - 72px)}.stop-detail-modal .card{margin-top:0;box-shadow:none;background:transparent;border:none;padding:0}.layer-grid{display:grid;gap:10px}.layer-item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}.layer-item strong{display:block}.layer-item span{color:#64748b;font-size:13px;text-align:right}.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:12px}.notice{margin:0 0 12px;padding:10px 12px;border-radius:12px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155}.notice.warning{border-color:#fcd34d;background:#fffbeb;color:#92400e}button,input,select{font:inherit}label{display:grid;gap:6px;margin-bottom:12px;font-size:14px;color:#0f172a}input,select{padding:10px 12px;border-radius:12px;border:1px solid #cbd5e1;background:#fff}button{padding:10px 14px;border-radius:12px;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}button:hover{transform:translateY(-1px)}button.primary{background:#1d4ed8;color:#fff}button.secondary{background:#eef2ff;color:#1e3a8a;border-color:#c7d2fe}button.danger{background:#fef2f2;color:#991b1b;border-color:#fecaca}button:disabled{opacity:.6;cursor:not-allowed;transform:none}.module-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:0;margin:0;list-style:none}.module-list li{padding:14px 16px;border-radius:14px;background:#eff6ff;border:1px solid #bfdbfe;font-weight:600}.muted{color:#334155}.mobile-workspace-switcher{display:none}@media (max-width: 960px){.grid-layout,.grid-3,.grid-2{grid-template-columns:1fr}.route-tabs-actions{justify-content:flex-start}.route-tabs-toolbar{align-items:stretch}.route-tabs-toolbar .compact-field,.route-tabs-toolbar .compact-new-route,.route-tabs-toolbar .compact-action{flex:1 1 100%}.route-tabs-actions input{min-width:0;width:100%}.toolbar-actions button{flex:1 1 100%}}@media (min-width: 768px) and (max-width: 1199px){.editor-grid{grid-template-columns:clamp(340px,30vw,380px) minmax(0,1fr)}}@media (max-width: 767px){.mobile-workspace-switcher{display:flex;flex:0 0 auto;gap:6px;padding:2px}.mobile-workspace-switcher button{flex:1 1 0;height:36px;border-radius:10px;border:1px solid rgba(15,23,42,.12);background:#fff;font-weight:600;color:#334155}.mobile-workspace-switcher button.active{background:#2563eb;border-color:#2563eb;color:#fff}.editor-grid{grid-template-columns:1fr}.editor-grid.mobile-view-sidebar .editor-map-panel,.editor-grid.mobile-view-map .editor-sidebar{display:none}.editor-shell{height:100dvh;min-height:100dvh;overflow-x:hidden}.editor-sidebar{overflow-y:auto}.map-shell,.editor-map-panel .map-shell{height:100%;min-height:0}.stops-list{max-height:none}}.routeplan-layout-selector{position:fixed;top:7px;right:12px;z-index:95}.routeplan-layout-selector__button{display:grid;width:34px;min-width:34px;height:34px;place-items:center;padding:0;border:1px solid #dbe3ef;border-radius:9px;background:#fff;color:#344054;box-shadow:0 1px 2px #0f172a0f}.routeplan-layout-selector__button svg{width:17px;height:17px}.routeplan-layout-selector__popover{position:absolute;top:calc(100% + 8px);right:0;width:280px;max-width:calc(100vw - 24px);padding:12px;border:1px solid #dbe3ef;border-radius:14px;background:#fff;box-shadow:0 18px 48px #0f172a2e}.routeplan-layout-selector__title{margin:0 0 8px;font-size:12px;font-weight:800;color:#344054}.routeplan-layout-selector__option{display:grid;gap:3px;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left}.routeplan-layout-selector__option:hover{background:#f7f9fc}.routeplan-layout-selector__option.is-selected{border-color:#b9cdfd;background:#edf3ff}.routeplan-layout-selector__option-title{font-size:12.5px;font-weight:750}.routeplan-layout-selector__option-description{color:#667085;font-size:11px;line-height:1.35}.route-undo{margin-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 0;border-top:1px solid rgba(15,23,42,.08)}.route-undo p{margin:.2rem 0 0}.route-history{margin-top:1rem;border-top:1px solid rgba(15,23,42,.08);padding-top:.85rem}.route-history__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.route-history__header h3{margin:0;font-size:.98rem}.route-history__list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.route-history__item{border-left:2px solid rgba(37,99,235,.22);padding-left:.75rem}.route-history__item-header{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.route-history__detail,.route-history__actor{margin:.2rem 0 0}.route-import-modal-overlay{z-index:5000}.route-import-modal-overlay .route-import-modal-shell{position:relative;z-index:5001;isolation:isolate}.import-resolution-guide{display:grid;gap:4px;margin:12px 0;padding:12px 14px;border:1px solid rgba(217,119,6,.32);border-radius:12px;background:#fffbebf5;color:#92400e}.import-resolution-guide.resolved{border-color:#16a34a4d;background:#f0fdf4f5;color:#166534}.import-resolution-guide span{font-size:12px;line-height:1.4}.import-review-actions{position:sticky;top:-12px;z-index:3;padding:10px 0;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.import-exclude-all{border-color:#b91c1c59;color:#991b1b}.import-stop-card.needs-resolution{border-color:#d9770685;box-shadow:0 0 0 1px #d9770614}.import-stop-card.resolved{border-color:#16a34a52}.import-stop-card.excluded{opacity:.72;border-style:dashed}.import-stop-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0;padding:8px 10px;border-radius:10px;background:#f8fafceb;font-size:12px}.import-stop-card.needs-resolution .import-stop-status strong{color:#b45309}.import-stop-card.resolved .import-stop-status strong{color:#15803d}.import-stop-card.excluded .import-stop-status strong{color:#64748b}@media (max-width: 720px){.import-stop-status{align-items:flex-start;flex-direction:column}}.route-run-panel{position:relative;display:flex;width:100%;min-width:0;flex:0 0 auto;flex-direction:column;overflow:hidden;border:1px solid rgba(203,213,225,.96);border-radius:11px;background:#fff;color:#0f172a;box-shadow:0 1px 2px #0f172a0f}.route-run-panel[data-expanded=false]{height:48px;max-height:48px}.route-run-panel__toggle{display:grid;width:100%;min-width:0;min-height:48px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 9px;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.route-run-panel__toggle:hover{background:#f8fafc}.route-run-panel__toggle:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.route-run-panel__identity,.route-run-panel__headline,.route-run-panel__summary,.route-run-panel__summary>span{min-width:0}.route-run-panel__identity{display:flex;align-items:center;gap:6px;white-space:nowrap}.route-run-panel__identity>strong{font-size:12px}.route-run-panel__state{display:inline-flex;min-height:20px;align-items:center;padding:1px 6px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:9px;font-weight:800}.route-run-panel__state--active{background:#dcfce7;color:#166534}.route-run-panel__headline{display:flex;min-width:0;align-items:center;gap:7px;overflow:hidden}.route-run-panel__summary{display:flex;min-width:0;flex:0 1 auto;gap:6px}.route-run-panel__summary>span{display:grid;gap:0}.route-run-panel__summary-secondary,.route-run-panel__summary-progress{display:none!important}.route-run-panel__summary-label{color:#64748b;font-size:8px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.route-run-panel__summary strong{display:block;max-width:86px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.route-run-panel__warning{min-width:0;flex:1 1 auto;overflow:hidden;font-size:9.5px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.route-run-panel__warning--warning{color:#92400e}.route-run-panel__warning--danger{color:#b91c1c}.route-run-panel__warning--info{color:#1d4ed8}.route-run-panel__chevron{display:inline-flex;width:26px;height:26px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:#f1f5f9;color:#334155;font-size:16px;transition:transform .16s ease}.route-run-panel[data-expanded=false] .route-run-panel__chevron{transform:rotate(180deg)}.route-run-panel__body{max-height:min(55vh,520px);min-height:0;overflow:auto;padding:10px;border-top:1px solid #e2e8f0;overscroll-behavior:contain}.route-run-panel__body-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.route-run-panel__body-toolbar p{margin:2px 0 0}.route-run-panel__active,.route-run-panel__idle{display:grid;gap:7px}.route-run-panel__arrival-summary{padding:6px 0;margin:4px 0;border-top:1px dashed #e2e8f0;border-bottom:1px dashed #e2e8f0}.route-run-panel__progress-summary{padding:4px 0}.route-run-panel__finish-confirmation{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border:1px solid #fde68a;border-radius:9px;background:#fffbeb}.route-run-panel__preview{padding:8px 10px;border-radius:8px;background:#f8fafc;font-size:13px}.route-run-panel__preview-list,.route-run-panel__history-list,.route-run-panel__segment-list,.assignment-warnings-list{padding:0;margin:4px 0 0;list-style:none}.route-run-panel__history{margin-top:10px}.route-run-panel__execution-group{margin-bottom:10px}.route-run-panel__execution-heading{margin-bottom:4px;font-weight:600}.route-run-panel__segment-list{padding-left:8px}.route-run-panel__segment-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:2px 0}.assignment-picker-dialog{display:flex;width:100%;max-width:560px;max-height:85vh;flex-direction:column}.assignment-picker-body{min-height:0;flex:1;overflow-y:auto;padding:4px 0}.assignment-picker-search{width:100%;padding:8px 12px;margin-bottom:8px;border:1px solid #d1d5db;border-radius:8px}.assignment-picker-list{max-height:320px;padding:0;margin:0;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;list-style:none}.assignment-picker-item{display:flex;width:100%;flex-direction:column;gap:2px;padding:8px 12px;border:0;border-bottom:1px solid #f3f4f6;background:#fff;font-size:13px;text-align:left;cursor:pointer}.assignment-picker-item:last-child{border-bottom:0}.assignment-picker-item--selected{background:#eff6ff}.assignment-picker-item-title{font-weight:700}.assignment-picker-item-sub{color:#6b7280;font-size:12px}.assignment-picker-add-driver{padding-top:12px;margin-top:12px;border-top:1px dashed #d1d5db;font-size:13px}.run-transition-scenario-choice{display:flex;flex-direction:column;gap:4px;padding:8px 0}.run-transition-current-segment,.run-transition-handover{padding:8px 10px;margin:8px 0;border-radius:8px;background:#f8fafc}.run-transition-current-segment ul{padding:0;margin:4px 0 0;list-style:none}.assignment-picker-overlay{z-index:5000}@media (max-width: 720px){.route-run-panel[data-expanded=false]{height:52px;max-height:52px}.route-run-panel__toggle{min-height:52px}.route-run-panel__body{max-height:min(60vh,520px);padding:9px 10px calc(12px + env(safe-area-inset-bottom,0px))}.route-run-panel__body-toolbar,.route-run-panel__finish-confirmation{align-items:stretch;flex-direction:column}}.operational-alerts-banner{margin:10px 12px 0;padding:12px 14px;border:1px solid #f59e0b;border-radius:12px;background:#fffbeb;color:#78350f;box-shadow:0 6px 18px #78350f1f}.operational-alerts-banner__heading,.operational-alerts-banner__item{display:flex;align-items:center;justify-content:space-between;gap:12px}.operational-alerts-banner__heading span,.operational-alerts-banner__item small{font-size:12px;color:#92400e}.operational-alerts-banner__items{display:grid;gap:8px;margin-top:10px}.operational-alerts-banner__item{padding-top:8px;border-top:1px solid rgba(245,158,11,.35)}.operational-alerts-banner__item>div{display:grid;gap:2px}.operational-alerts-banner__item button{flex:0 0 auto;border:1px solid #d97706;border-radius:8px;background:#fff;color:#92400e;padding:6px 9px;font-weight:700;cursor:pointer}.operational-alerts-banner__more{margin:8px 0 0;font-size:12px;color:#92400e}@media (max-width: 720px){.operational-alerts-banner{margin:8px}.operational-alerts-banner__heading,.operational-alerts-banner__item{align-items:flex-start;flex-direction:column}}.operational-alerts-banner__heading-actions{display:inline-flex;align-items:center;gap:9px}.operational-alerts-banner__dismiss{display:grid;width:28px;height:28px;padding:0;place-items:center;border:1px solid rgba(217,119,6,.45);border-radius:8px;background:#fff;color:#92400e;cursor:pointer}.operational-alerts-banner__dismiss:hover{background:#fef3c7}.operational-alerts-banner__dismiss:focus-visible,.operational-alerts-banner__restore:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}.operational-alerts-banner__dismiss svg{width:16px;height:16px;fill:currentColor}.operational-alerts-banner--collapsed{display:flex;width:fit-content;max-width:calc(100% - 24px);margin-left:auto;padding:0;border-radius:999px;box-shadow:none}.operational-alerts-banner__restore{display:inline-flex;min-height:32px;align-items:center;gap:6px;padding:5px 10px;border:0;border-radius:999px;background:transparent;color:#78350f;font-weight:750;cursor:pointer}.operational-alerts-banner__restore small{color:#92400e;font-size:11px;font-weight:650}@media (max-width:720px){.operational-alerts-banner__heading-actions{width:100%;justify-content:space-between}.operational-alerts-banner--collapsed{margin:6px 8px 0 auto}}
