.journey-map-panel{border-top:1px solid #d7e3e8;border-bottom:1px solid #d7e3e8;background:#f8fbfc}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px}
.map-warning,.map-note,.tile-error,.route-status{padding:0 24px;font-size:.88rem;line-height:1.5}.gps-warning,.tile-error{color:#85430b;font-weight:600}.parked-note{color:#5f4c09;font-weight:600}
.journey-map-canvas{height:420px;width:100%;z-index:0;background:#e1e8ed}
.map-legend{display:flex;gap:12px;flex-wrap:wrap;padding:18px 24px 0;font-size:.78rem}
.map-legend span:before{content:'';display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;background:var(--pin)}
.done{--pin:#137955}.resolved{--pin:#697784}.next{--pin:#936400}.waiting{--pin:#246ab0}.problem{--pin:#b32e3d}.destination{--pin:#7344a6}.vehicle{--pin:#004b64}.parked{--pin:#7b6500}.stale{--pin:#b6520b}.shared{--pin:#263c4d}
.journey-pin{display:flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 4px;border-radius:18px;background:var(--pin);color:white;border:3px solid white;box-shadow:0 1px 6px #0008;font:bold 13px system-ui;white-space:nowrap}
.journey-pin.parked{border:3px double #fff3b0}.journey-pin.stale{border:3px dashed #ffe0a1}.journey-pin.next{outline:3px solid #ebbf56}.journey-pin.destination{border-radius:5px}
.journey-map-panel .leaflet-popup-content p{margin:6px 0 14px;font-size:12px}.journey-map-panel .leaflet-popup-content{overflow-wrap:anywhere}
.journey-map-panel .leaflet-control-zoom a{color:#172f3e}.journey-map-panel .leaflet-control-attribution{font-size:11px}
@media(max-width:600px){.journey-map-canvas{height:340px}.map-toolbar{padding:12px}.map-legend{padding:12px;gap:8px}.map-note,.map-warning,.tile-error{padding:0 12px}}
#schedule-dialog{width:min(960px,95vw);max-height:90vh;overflow:auto;padding:24px;border:1px solid #cad8df;border-radius:16px}#schedule-dialog::backdrop{background:#142f42aa}.check-label{display:inline-flex;align-items:center;gap:8px;margin:8px}.check-label input{width:auto}#schedule-weekdays{border:1px solid #cad8df;border-radius:8px;margin:16px 0}.schedule-preview{max-height:340px;overflow:auto;margin:16px 0}.schedule-preview table{width:100%;border-collapse:collapse;font-size:.85rem}.schedule-preview td,.schedule-preview th{padding:10px;text-align:left;border-bottom:1px solid #cad8df}.journey-date-filter{margin:12px 16px}.nav-summary{padding:18px 24px;background:#eef6f4;border-block:1px solid #d7e3e8}.nav-summary h3{margin:0 0 8px}.speed-reading{font-size:1.7rem;font-weight:700}.road-map-canvas{height:420px;width:100%}.road-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.road-panel{padding:18px 0}.road-panel>p,.road-panel>.road-controls,.road-panel>details{margin-left:24px;margin-right:24px}.road-instructions{max-height:240px;overflow:auto}.road-status{min-height:1.5em}.road-panel [hidden]{display:none!important}@media(max-width:600px){.road-map-canvas{height:340px}main header{flex-wrap:wrap;gap:10px}}
.turn-guidance{margin:14px 24px 4px;border:1px solid #cad8df;border-radius:12px;overflow:hidden;background:#fff}
.turn-current{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px 16px;background:#eef6f4}
.turn-current-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.turn-current-text{font-size:1.05rem;line-height:1.35}
.turn-current-distance{font-weight:700;white-space:nowrap}
.turn-next{margin:0;padding:12px 16px;border-top:1px solid #d7e3e8;font-weight:600;line-height:1.4}
.turn-upcoming{border-top:1px solid #d7e3e8;padding:0 16px 12px}.turn-upcoming summary{cursor:pointer;padding:12px 0;font-weight:600}
.turn-list{margin:0;padding:0;list-style:none;max-height:260px;overflow:auto}.turn-list li{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:9px 0;border-top:1px solid #edf2f4;line-height:1.35}.turn-step-distance{font-variant-numeric:tabular-nums;font-weight:700}
.maneuver-pin{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#fff;color:#172f3e;border:2px solid #172f3e;box-shadow:0 1px 5px #0006;font:bold 18px system-ui}.maneuver-icon{background:transparent;border:0}
@media(max-width:600px){.turn-guidance{margin:10px 12px 2px}.turn-current{grid-template-columns:1fr auto}.turn-current-label{grid-column:1/-1}.turn-current-text{font-size:1rem}.turn-list li{grid-template-columns:62px 1fr}}


/* Driver navigation-follow mode */
.map-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.follow-status{margin:0;padding:10px 24px;background:#eaf4f8;border-top:1px solid #d7e3e8;border-bottom:1px solid #d7e3e8;font-size:.84rem;font-weight:650;line-height:1.4}
.map-recenter{min-width:104px}
.navigation-heading-up .journey-pin,.navigation-heading-up .maneuver-pin{transform:rotate(var(--nav-counter-rotation));transition:transform .35s ease-out}
.turn-current{min-height:92px;padding:18px 20px}
.turn-current-icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:14px;background:#172f3e;color:#fff;font-size:2rem;font-weight:800;line-height:1;box-shadow:0 2px 8px #0002}
.turn-current>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.turn-current-text{display:block;font-size:1.35rem;font-weight:800;line-height:1.25}
.turn-current-distance{font-size:1.45rem;font-weight:850;white-space:nowrap;font-variant-numeric:tabular-nums}
.turn-current-text.turn-arrival{font-weight:850}
.journey-map-panel .leaflet-overlay-pane svg{overflow:visible}
@media(max-width:600px){
 .map-actions{width:100%;justify-content:flex-start}.map-toolbar{align-items:flex-start;flex-wrap:wrap}
 .follow-status{padding:9px 12px}
 .turn-current{grid-template-columns:48px 1fr;grid-template-areas:"icon text" "distance distance";gap:10px 12px;min-height:0;padding:14px}
 .turn-current-icon{grid-area:icon;width:48px;height:48px;border-radius:12px;font-size:1.7rem}
 .turn-current>div{grid-area:text}.turn-current-distance{grid-area:distance;font-size:1.25rem;padding-left:60px}
 .turn-current-text{font-size:1.12rem}
}
