.driver-navigation-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.driver-navigation-heading h3{margin:4px 0;font-size:24px}.driver-navigation-heading>div>span:last-child{color:var(--text-muted,#64748b)}.driver-navigation-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}.driver-navigation-main{min-width:0;background:white;border:1px solid #dbe4ea;border-radius:22px;overflow:hidden}.driver-turn{display:flex;align-items:center;gap:22px;min-height:115px;padding:22px 26px;background:#122b3c;color:white}.driver-turn-arrow{font-size:58px;line-height:1;min-width:58px;text-align:center}.driver-turn strong{font-size:30px;line-height:1.2}.driver-turn p{margin:6px 0 0;font-size:18px;color:#e2f1f8}.driver-navigation-map{position:relative}.driver-navigation-map [data-osm-route-map]{height:clamp(360px,54vh,650px)!important;min-height:360px}.driver-map-controls{position:absolute;bottom:65px;inset-inline-end:18px;z-index:500;display:flex;align-items:center;gap:12px}.driver-speed{background:#fff;border:4px solid #172235;border-radius:50%;width:78px;height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 3px 12px #0002;color:#172235}.driver-speed strong{font-size:28px;line-height:1}.driver-speed span{font-size:11px;margin-top:4px}.driver-trip-strip{display:grid;grid-template-columns:repeat(3,1fr);padding:20px 12px;gap:10px;text-align:center}.driver-trip-strip>div{display:flex;flex-direction:column;gap:5px}.driver-trip-strip strong{font-size:26px;color:#122b3c}.driver-trip-strip small{font-size:15px}.driver-trip-strip span,.driver-estimate-note{font-size:12px;color:#637384}.driver-estimate-note{margin:0;padding:0 20px 16px;text-align:center}.driver-navigation-stops summary{cursor:pointer;font-weight:700;padding:6px 0;min-height:40px}.driver-navigation-stops .page-actions .btn{min-height:48px}.driver-navigation-stops details .gps-control-card{box-shadow:none;border:0;padding:16px 0 0}.driver-navigation-stations{margin-top:18px}.driver-navigation-map .ride-map-status{display:none}
@media(max-width:1100px){.driver-navigation-layout{grid-template-columns:minmax(0,1fr)}.driver-navigation-stops{display:grid;grid-template-columns:1fr 1fr}.driver-navigation-stops>.journey-control-card{grid-column:1/-1}}
@media(max-width:600px){.driver-navigation-heading h3{font-size:20px}.driver-turn{padding:18px;gap:16px;min-height:105px}.driver-turn strong{font-size:25px}.driver-turn p{font-size:16px}.driver-navigation-map [data-osm-route-map]{height:48vh!important;min-height:330px}.driver-navigation-stops{display:flex}.driver-trip-strip strong{font-size:22px}.driver-map-controls{bottom:68px;inset-inline-end:12px}.driver-speed{width:64px;height:64px}.driver-navigation-main{border-radius:16px}}
/* Keep the driving controls clear of Leaflet's bottom-right zoom buttons. */
.driver-map-controls{inset-inline-end:auto;inset-inline-start:18px;bottom:100px}
@media(max-width:600px){.driver-map-controls{inset-inline-end:auto;inset-inline-start:12px;bottom:105px}}
/* Top-view school bus, aligned with the measured direction of travel. */
.vehicle-marker-pro{height:82px;align-content:center}
.vehicle-marker-shell{position:absolute;left:9px;top:7px;width:54px;height:70px;border:0;border-radius:0;background:none!important;box-shadow:none!important;transform:rotate(var(--vehicle-heading));transform-origin:50% 50%}
.vehicle-marker-shell::after{display:none}
.vehicle-bus-art{display:block;width:54px;height:70px;filter:drop-shadow(0 3px 2px #10283855)}
.vehicle-marker-pulse{top:16px;left:10px;width:52px;height:52px;border-color:#1594bb55;background:#1594bb18}
.vehicle-marker-direction{top:1px;left:25px;width:22px;height:15px;background:#167caa;clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%);transform-origin:50% 41px}
.vehicle-marker-speed{position:absolute;top:76px;left:50%;transform:translateX(-50%);margin:0;background:#15394c}
.driver-navigation-map .vehicle-marker-speed{display:none}
/* Navigation vehicle: original shaded car artwork, counter-rotated with the map. */
.vehicle-marker-shell{left:4px;top:-3px;width:64px;height:90px;transform:rotate(calc(var(--vehicle-heading) + var(--map-bearing,0deg)));transform-origin:50% 50%}
.vehicle-car-art{width:64px;height:90px;display:block;filter:drop-shadow(0 5px 3px #0f233344)}
.vehicle-marker-direction{display:none}
.driver-navigation-map .vehicle-marker-shell{transform:rotate(calc(var(--navigation-heading,var(--vehicle-heading)) + var(--map-bearing,0deg)))}
.driver-exit{display:none}
body:has(.driver-navigation.is-driving){overflow:hidden}
.driver-navigation.is-driving{position:fixed;inset:0;z-index:1800;background:#e5e9e4;height:100dvh;overflow:hidden}
.driver-navigation.is-driving .driver-navigation-heading,.driver-navigation.is-driving .driver-navigation-stations,.driver-navigation.is-driving .driver-estimate-note{display:none}
.driver-navigation.is-driving .driver-navigation-layout,.driver-navigation.is-driving .driver-navigation-main{display:block;position:absolute;inset:0;border:0;border-radius:0}
.driver-navigation.is-driving .driver-navigation-map{position:absolute;inset:0}
.driver-navigation.is-driving [data-osm-route-map]{height:100dvh!important;min-height:0!important}
.driver-navigation.is-driving .osm-route-map-shell{height:100%}
.driver-navigation.is-driving .driver-turn{position:absolute;top:max(14px,env(safe-area-inset-top));inset-inline-start:16px;z-index:650;width:min(460px,55vw);min-height:92px;border-radius:20px;box-shadow:0 6px 22px #112d3f33;padding:18px;pointer-events:none}
.driver-navigation.is-driving .driver-turn strong{font-size:28px}
.driver-navigation.is-driving .driver-turn p{font-size:16px}
.driver-navigation.is-driving .driver-trip-strip{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));inset-inline-start:16px;z-index:650;width:min(360px,49vw);background:white;border-radius:20px;box-shadow:0 5px 20px #152f4333;padding:14px}
.driver-navigation.is-driving .driver-trip-strip strong{font-size:24px}
.driver-navigation.is-driving .driver-exit{display:block;position:absolute;top:max(14px,env(safe-area-inset-top));inset-inline-end:16px;z-index:700;background:white;color:#15394c;border-radius:30px;box-shadow:0 4px 18px #112d3f33;min-height:48px}
.driver-navigation.is-driving .st-map-toolbar,.driver-navigation.is-driving .gps-map-status,.driver-navigation.is-driving .osm-map-legend,.driver-navigation.is-driving .leaflet-control-zoom,.driver-navigation.is-driving .leaflet-control-scale{display:none}
.driver-navigation.is-driving .driver-map-controls{bottom:max(20px,env(safe-area-inset-bottom));inset-inline-start:auto;inset-inline-end:16px}
.driver-navigation.is-driving .driver-navigation-stops{position:absolute;inset-inline-end:16px;bottom:115px;z-index:650;width:min(280px,34vw);display:block}
.driver-navigation.is-driving .driver-navigation-stops>details,.driver-navigation.is-driving .journey-control-card>.gps-control-head,.driver-navigation.is-driving .journey-control-card [data-action="finish-journey"],.driver-navigation.is-driving .journey-control-card [data-action="cancel-journey"]{display:none}
.driver-navigation.is-driving .journey-control-card{padding:14px;background:#fffffff5;border-radius:18px;box-shadow:0 4px 18px #112d3f22}
.driver-navigation.is-driving .next-stop-card{margin:0 0 8px}
.driver-navigation.is-driving .next-stop-card small{display:none}
.driver-navigation.is-driving .next-stop-card strong{font-size:16px}
.driver-navigation.is-driving .journey-control-card .btn{font-size:12px;min-height:44px;padding:10px}
@media(orientation:portrait){.driver-navigation.is-driving .driver-turn{top:76px;width:calc(100% - 32px)}.driver-navigation.is-driving .driver-trip-strip{width:calc(100% - 32px);bottom:20px}.driver-navigation.is-driving .driver-map-controls{bottom:128px;inset-inline-start:16px;inset-inline-end:auto}.driver-navigation.is-driving .driver-navigation-stops{bottom:215px;width:calc(100% - 32px)}.driver-navigation.is-driving .journey-control-card{display:flex;align-items:center;gap:10px}.driver-navigation.is-driving .next-stop-card{flex:1}.driver-navigation.is-driving .journey-control-card .page-actions{flex:1}}
@media(orientation:landscape) and (max-height:500px){.driver-navigation.is-driving .driver-turn{min-height:78px;padding:12px;gap:12px}.driver-navigation.is-driving .driver-turn-arrow{font-size:42px}.driver-navigation.is-driving .driver-turn strong{font-size:23px}.driver-navigation.is-driving .driver-trip-strip{padding:10px}.driver-navigation.is-driving .driver-navigation-stops{bottom:106px;width:220px}.driver-navigation.is-driving .driver-speed{width:62px;height:62px}.driver-navigation.is-driving .driver-turn p{font-size:14px}}

.driver-start-card{margin-top:12px}
.driver-start-card .journey-start-actions{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:12px}
.driver-start-card .btn{min-height:48px;color:#fff;border:1px solid transparent}
.driver-start-card .driver-start-school{background:#15803d;border-color:#15803d}
.driver-start-card .driver-start-school:hover{background:#166534;border-color:#166534}
.driver-start-card .driver-start-return{background:#2563eb;border-color:#2563eb}
.driver-start-card .driver-start-return:hover{background:#1d4ed8;border-color:#1d4ed8}
.driver-start-card .btn:focus-visible{outline:3px solid #93c5fd;outline-offset:3px}
.driver-start-card .btn:disabled{opacity:.55;cursor:wait}
.driver-start-card>small{display:block;margin-top:12px}
@media(max-width:600px){.driver-start-card .journey-start-actions{grid-template-columns:1fr}}
