.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}}

/* Side profiles stay upright; the independent arrow carries GPS bearing. */
.vehicle-bus .vehicle-marker-shell,.vehicle-minibus .vehicle-marker-shell,
.driver-navigation-map .vehicle-bus .vehicle-marker-shell,.driver-navigation-map .vehicle-minibus .vehicle-marker-shell{left:0;top:19px;width:72px;height:46px;transform:none}
.vehicle-bus .vehicle-car-art,.vehicle-minibus .vehicle-car-art,.vehicle-taxi .vehicle-car-art{width:72px;height:46px;object-fit:contain}
.vehicle-bus .vehicle-marker-direction,.vehicle-minibus .vehicle-marker-direction,.vehicle-taxi .vehicle-marker-direction{display:block;transform:rotate(calc(var(--vehicle-heading) + var(--map-bearing,0deg)))}
.station-vehicle-art.vehicle-bus,.station-vehicle-art.vehicle-minibus,.station-vehicle-art.vehicle-taxi{width:30px;height:24px}

[data-driver-recenter].is-following{background:#275e8c!important;color:#fff!important;border-color:#72b4e8!important;box-shadow:0 0 0 3px #4c9bd12b}
/* Map-first active journey: turn banner, floating tools and a compact arrival dock. */
.driver-panel-toggle{display:none}
.driver-navigation.is-driving{--nav-ink:#101923;--nav-accent:#63d6ee;z-index:1800}
.driver-navigation.is-driving .driver-turn{top:calc(env(safe-area-inset-top,0px) + 12px);inset-inline:12px 74px;width:auto;max-width:540px;min-height:96px;padding:18px 20px;gap:20px;border-radius:22px;background:#111b27!important;color:#fff!important;border:1px solid #ffffff21;box-shadow:0 8px 28px #07132140}
.driver-navigation.is-driving .driver-turn-arrow{color:#fff;font-size:54px;min-width:54px}
.driver-navigation.is-driving .driver-turn strong{color:#fff!important;font-size:32px;font-weight:800;letter-spacing:-1px}
.driver-navigation.is-driving .driver-turn p{font-size:16px;line-height:1.35;color:#dce5ed!important;overflow-wrap:anywhere;margin-top:5px}
.driver-navigation.is-driving .driver-exit{top:calc(env(safe-area-inset-top,0px) + 20px);inset-inline-end:12px;width:48px;height:48px;min-height:48px;padding:0;font-size:0;background:#fff!important;border:0;color:#172333!important;border-radius:50%;box-shadow:0 3px 14px #14283b35}
.driver-navigation.is-driving .driver-exit:after{content:'×';font-size:30px;line-height:1}
.driver-navigation.is-driving .driver-trip-strip{inset-inline:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);width:auto;max-width:520px;min-height:88px;padding:17px 12px;background:#fff!important;color:#101923;border:1px solid #d5dfe5;border-radius:24px;box-shadow:0 6px 28px #152f4333;gap:0;align-items:center}
.driver-navigation.is-driving .driver-trip-strip>div+div{border-inline-start:1px solid #e1e6ec}
.driver-navigation.is-driving .driver-trip-strip strong{color:#172333!important;font-size:25px;font-weight:800;letter-spacing:-.6px}
.driver-navigation.is-driving .driver-trip-strip>div:first-child strong{color:#168248!important}
.driver-navigation.is-driving .driver-trip-strip span{color:#647281!important;font-size:11px;line-height:1.3}
.driver-navigation.is-driving .driver-panel-toggle{display:flex;position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 110px);inset-inline-start:12px;z-index:660;background:#111b27!important;color:#fff!important;border:1px solid #405164;border-radius:24px;min-height:44px;gap:12px;padding:10px 18px;box-shadow:0 4px 16px #10233830;font-size:13px}
.driver-navigation.is-driving .driver-map-controls{bottom:calc(env(safe-area-inset-bottom,0px) + 169px);inset-inline-end:14px;inset-inline-start:auto;flex-direction:column;gap:14px}
.driver-navigation.is-driving .driver-speed{width:62px;height:62px;border:3px solid #fff;background:#172333;color:#fff;box-shadow:0 3px 16px #14283b40}
.driver-navigation.is-driving .driver-speed strong{font-size:25px;color:#fff!important}.driver-navigation.is-driving .driver-speed span{font-size:10px;color:#dce5ed!important}
.driver-navigation.is-driving [data-driver-recenter]{width:54px;height:54px;min-height:54px;padding:14px;border-radius:50%;background:#fff!important;color:#172333!important;border:1px solid #d5dfe5!important;box-shadow:0 4px 15px #14283b30}
.driver-navigation.is-driving [data-driver-recenter].is-following{background:#63d6ee!important;color:#102b3e!important;border-color:#9be9f8!important;box-shadow:0 4px 15px #14283b30}
.driver-navigation.is-driving [data-driver-recenter] svg{width:26px;height:26px}
.driver-navigation.is-driving .driver-navigation-stops{display:none;inset-inline-start:12px;inset-inline-end:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 165px);width:calc(100% - 96px);max-width:440px;max-height:calc(100dvh - 310px);overflow:auto;overscroll-behavior:contain;border-radius:20px;background:#142333;box-shadow:0 8px 28px #07132155;padding:10px}
.driver-navigation.is-driving.journey-panel-open .driver-navigation-stops{display:block}
.driver-navigation.is-driving.journey-panel-open .driver-panel-toggle span{transform:rotate(180deg)}
.driver-navigation.is-driving .journey-control-card{display:block;background:#142333!important;color:#edf4fa!important;border:0;box-shadow:none;padding:8px;border-radius:14px}
.driver-navigation.is-driving .journey-control-card .page-actions{display:flex;flex-wrap:wrap;gap:8px}
.driver-navigation.is-driving .journey-control-card .btn{min-height:46px;flex:1 1 150px;font-size:13px}
.driver-navigation.is-driving .journey-control-card [data-action="finish-journey"],.driver-navigation.is-driving .journey-control-card [data-action="cancel-journey"],.driver-navigation.is-driving .driver-navigation-stops>details{display:block}
.driver-navigation.is-driving .next-stop-card{margin-bottom:10px}.driver-navigation.is-driving .next-stop-card strong{color:#fff!important}
.driver-navigation.is-driving .leaflet-top{top:calc(env(safe-area-inset-top,0px) + 140px)}
@media(min-width:700px){.driver-navigation.is-driving .driver-map-controls{bottom:30px}.driver-navigation.is-driving .driver-navigation-stops{max-height:calc(100dvh - 300px)}}
@media(max-height:500px) and (orientation:landscape){.driver-navigation.is-driving .driver-turn{max-width:420px;min-height:78px;padding:12px 16px}.driver-navigation.is-driving .driver-turn strong{font-size:25px}.driver-navigation.is-driving .driver-turn p{font-size:13px}.driver-navigation.is-driving .driver-trip-strip{max-width:380px;min-height:70px;padding:10px}.driver-navigation.is-driving .driver-panel-toggle{bottom:94px}.driver-navigation.is-driving .driver-navigation-stops{inset-inline-start:auto;inset-inline-end:84px;bottom:16px;width:300px;max-height:calc(100dvh - 86px)}.driver-navigation.is-driving .driver-map-controls{bottom:18px}.driver-navigation.is-driving .leaflet-top{top:115px}}
.driver-navigation,.driver-navigation *{box-sizing:border-box}
.vehicle-suv .vehicle-marker-direction{display:block;transform:rotate(calc(var(--vehicle-heading) + var(--map-bearing,0deg)))}.station-vehicle-art.vehicle-suv{width:30px;height:24px}
