/* Driving navigation: dark turn guidance, an open map and one white arrival sheet.
   Scoped to active driving so the rest of SchoolTrack keeps its existing theme. */
.nav-signal,.nav-stop-dock,.driver-panel-toggle{display:none}
.driver-navigation,.driver-navigation *{box-sizing:border-box}
.driver-navigation.is-driving{--nav-paper:#fff;--nav-ink:#18212c;--nav-muted:#65707f;--nav-cyan:#32c8ee;--nav-line:#e4e8ec;position:fixed;inset:0;z-index:1800;height:100dvh;overflow:hidden;background:#e8ebe6;color:var(--nav-ink);font-family:Arial,Helvetica,sans-serif}
.driver-navigation.is-driving .driver-navigation-layout{display:block;position:absolute;inset:0}
.driver-navigation.is-driving .driver-navigation-main{display:grid;grid-template-rows:minmax(0,1fr) auto;position:absolute;inset:0;background:#e8ebe6!important;border:0;border-radius:0;overflow:hidden}
.driver-navigation.is-driving .driver-navigation-map{position:relative;grid-row:1;inset:auto;min-height:0;overflow:hidden;border:0;perspective:none}
body .driver-navigation.is-driving [data-osm-route-map]{height:100%!important;min-height:0!important;width:100%}
.driver-navigation.is-driving .osm-route-map-shell{height:100%;min-height:0;transform:none!important;transform-origin:center}
.driver-navigation.is-driving .driver-navigation-heading,.driver-navigation.is-driving .driver-navigation-stations,.driver-navigation.is-driving .driver-estimate-note{display:none}
/* Guidance stays visually anchored to the top, like a driving instrument. */
.driver-navigation.is-driving .driver-turn{position:absolute;inset:auto;top:calc(env(safe-area-inset-top,0px) + 8px);inset-inline-start:8px;inset-inline-end:64px;width:auto;max-width:430px;min-height:76px;padding:12px 16px;gap:16px;z-index:650;display:flex;align-items:center;pointer-events:none;border:0!important;border-radius:16px;background:#171b23!important;color:white!important;box-shadow:0 3px 12px #18232b30}
.driver-navigation.is-driving .driver-turn-arrow{display:flex;align-items:center;justify-content:center;min-width:38px;width:38px;flex:none;background:none;border:0;padding:0;color:#fff;font-size:32px}
.nav-turn-icon{display:block;width:38px;height:38px;filter:brightness(0) invert(1)}
.driver-navigation.is-driving .driver-turn>div{min-width:0}
.driver-navigation.is-driving .driver-turn strong{display:block;font-size:24px!important;font-weight:750;letter-spacing:-.4px;line-height:1.15;color:#fff!important}
.driver-navigation.is-driving .driver-turn p{font-size:14px!important;line-height:1.35;margin:4px 0 0;color:#d4f6ff!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.driver-navigation.is-driving .driver-exit{display:grid;place-items:center;position:absolute;inset:auto;top:calc(env(safe-area-inset-top,0px) + 14px);inset-inline-end:10px;width:44px;height:44px;min-height:44px;padding:13px;z-index:720;border-radius:50%;border:1px solid #dde2e6!important;background:#fff!important;color:#18212c!important;font-size:0;box-shadow:0 2px 7px #14283b25}
.driver-navigation.is-driving .driver-exit:after{display:none}
.driver-exit img{width:18px;height:18px;display:block}
.driver-navigation.is-driving .nav-signal{display:flex;align-items:center;gap:6px;position:absolute;top:calc(env(safe-area-inset-top,0px) + 96px);inset-inline-start:12px;max-width:calc(100% - 80px);z-index:620;margin:0;padding:5px 8px;background:#fff;color:#77561c;border:1px solid #ddd4b6;border-radius:8px;font-size:10px;line-height:1.2;box-shadow:0 1px 4px #14283b14}
.driver-navigation.is-driving .nav-signal i{width:6px;height:6px;flex:none;background:#ba8324;border-radius:50%}
.driver-navigation.is-driving .nav-signal.is-live{color:#287159;border-color:#d6e6de}
.driver-navigation.is-driving .nav-signal.is-live i{background:#219366}
.driver-navigation.is-driving .nav-signal b{color:#6c7580;font-weight:400;border-inline-start:1px solid #dce2e7;padding-inline-start:6px}
/* Speed and recenter remain on the map, clear of the arrival sheet. */
.driver-navigation.is-driving .driver-map-controls{position:absolute;inset:auto;inset-inline:12px;bottom:24px;z-index:630;display:flex;flex-direction:row;justify-content:space-between;align-items:end;gap:12px;pointer-events:none;visibility:visible}
.driver-navigation.is-driving .driver-map-controls>*{pointer-events:auto}
.driver-navigation.is-driving .driver-speed{display:flex;align-items:center;justify-content:center;flex-direction:column;width:54px;height:54px;border-radius:50%;border:3px solid #fff;background:#252a33;color:#fff;box-shadow:0 2px 9px #17232d40}
.driver-navigation.is-driving .driver-speed strong{font-size:22px!important;line-height:1;font-weight:700;color:#fff!important}
.driver-navigation.is-driving .driver-speed span{font-size:9px;line-height:1.2;color:#e1e5e8!important;margin-top:2px}
.driver-navigation.is-driving [data-driver-recenter]{width:48px;height:48px;min-height:48px;border-radius:50%;border:1px solid #d6dfe6!important;padding:13px;background:#fff!important;color:#15212b!important;box-shadow:0 2px 9px #17232d30}
.driver-navigation.is-driving [data-driver-recenter].is-following{background:#32c8ee!important;border-color:#85e4fc!important;box-shadow:0 2px 9px #17232d30}
.driver-navigation.is-driving [data-driver-recenter] img{width:22px;height:22px;display:block}
/* One connected bottom sheet: journey summary, current student and actions. */
.driver-arrival-sheet{display:contents}
.driver-navigation.is-driving .driver-arrival-sheet{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-row:2;position:relative;padding:0 12px calc(env(safe-area-inset-bottom,0px) + 8px);background:#fff;color:#18212c;border:0;border-radius:20px 20px 0 0;box-shadow:0 -3px 15px #1830421a;z-index:650;max-height:52dvh;overflow:auto;overscroll-behavior:contain}
.driver-navigation.is-driving .driver-trip-strip{position:static;inset:auto;grid-column:1;display:grid;grid-template-columns:1fr 1fr 1fr;width:auto;max-width:none;min-height:62px;padding:10px 4px;gap:8px;align-items:center;background:transparent!important;color:#18212c;border:0;box-shadow:none;border-radius:0;text-align:center}
.driver-navigation.is-driving .driver-trip-strip>div{display:flex;flex-direction:column;gap:3px;border:0!important}
.driver-navigation.is-driving .driver-trip-strip>div:nth-child(2){order:-1}
.driver-navigation.is-driving .driver-trip-strip strong{font-size:19px!important;font-weight:700;line-height:1.1;letter-spacing:0;color:#18212c!important;font-variant-numeric:tabular-nums}
.driver-navigation.is-driving .driver-trip-strip>div:first-child strong{color:#18212c!important}
.driver-navigation.is-driving .driver-trip-strip small{font-size:12px;font-weight:500}
.driver-navigation.is-driving .driver-trip-strip span{font-size:10px;line-height:1.2;color:#717c89!important}
.driver-navigation.is-driving .driver-panel-toggle{display:flex;align-items:center;justify-content:center;position:static;inset:auto;grid-column:2;grid-row:1;align-self:center;width:40px;max-width:none;height:44px;min-height:44px;margin:0;padding:10px;border-radius:12px;border:0!important;background:#e5f8fd!important;color:#102633!important;font-size:0;box-shadow:none}
.driver-panel-toggle img{width:20px;height:20px}
.driver-navigation.is-driving.journey-panel-open .driver-panel-toggle img{transform:rotate(180deg)}
.driver-navigation.is-driving .nav-stop-dock{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column:1/-1;position:static;inset:auto;width:auto;max-width:none;max-height:none;overflow:visible;padding:9px 0 0;margin:0;gap:8px 12px;border:0;border-top:1px solid #e5e8ec;border-radius:0;background:transparent!important;box-shadow:none;backdrop-filter:none;color:#172332;visibility:visible}
.driver-navigation.is-driving .nav-stop-identity{display:flex;align-items:center;gap:8px;min-width:0}
.driver-navigation.is-driving .nav-stop-symbol{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:7px;border:0;border-radius:11px;background:#edf3f8;color:#506476}
.driver-navigation.is-driving .nav-stop-symbol .icon{width:18px;height:18px}
.driver-navigation.is-driving .nav-stop-identity>div{min-width:0;flex:1}
.driver-navigation.is-driving .nav-stop-identity strong{display:block;font-size:15px!important;line-height:1.3;font-weight:700;color:#172332!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.driver-navigation.is-driving .nav-stop-identity small{display:block;font-size:10px;color:#727d89}
.driver-navigation.is-driving .nav-stop-identity div>span,.driver-navigation.is-driving .nav-stop-index{display:none}
.driver-navigation.is-driving .nav-stop-dock .pickup-wait{display:flex;flex-direction:column;justify-content:center;align-items:end;gap:2px;margin:0;padding:0 2px;max-width:145px;background:transparent;border:0;border-radius:0;color:#8f6318}
.driver-navigation.is-driving .nav-stop-dock .pickup-wait span{max-width:none;font-size:10px;text-align:end;line-height:1.2;color:#8f6318}
.driver-navigation.is-driving .nav-stop-dock .pickup-wait strong{font-size:20px!important;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums;color:#956111!important}
.driver-navigation.is-driving .nav-stop-dock .pickup-wait.is-overdue strong,.driver-navigation.is-driving .nav-stop-dock .pickup-wait.is-overdue span{color:#b1293d!important}
.driver-navigation.is-driving .nav-student-actions{display:grid;grid-template-columns:1.3fr 1fr;grid-column:1/-1;gap:8px;margin:0}
.driver-navigation.is-driving .nav-student-actions .btn{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:9px 8px;font-size:12px;font-weight:700;line-height:1.2;white-space:normal;border-radius:12px;box-shadow:none}
.driver-navigation.is-driving .nav-student-actions .btn .icon{width:16px;height:16px;flex:none}
.driver-navigation.is-driving .nav-board{background:#17794f!important;color:#fff!important;border:1px solid #17794f!important}
.driver-navigation.is-driving .nav-absent{background:#fff0f2!important;color:#a92f45!important;border:1px solid #edbec8!important}
.driver-navigation.is-driving .nav-absent:disabled{background:#eff1f4!important;color:#84909b!important;border-color:#e1e5e8!important;opacity:1;cursor:not-allowed}
.driver-navigation.is-driving .nav-student-actions .btn:only-child{grid-column:1/-1}
.driver-navigation.is-driving .nav-route-progress,.driver-navigation.is-driving .nav-upcoming{display:none}
/* Expanded journey details retain every existing operation and contact. */
.driver-navigation.is-driving .driver-navigation-stops{display:none;position:absolute;inset:auto;inset-inline:8px;bottom:calc(var(--driver-sheet-height,190px) + 8px);width:auto;min-width:0;max-width:460px;max-height:calc(100dvh - var(--driver-sheet-height,190px) - 138px);z-index:670;overflow:auto;overscroll-behavior:contain;margin:0;padding:12px;border:1px solid #d7e0e7;border-radius:18px;background:#fff;color:#18212c;box-shadow:0 4px 30px #14283b35}
.driver-navigation.is-driving.journey-panel-open .driver-navigation-stops{display:block}
.driver-navigation.is-driving .journey-control-card{display:block;padding:8px!important;background:#fff!important;color:#18212c!important;border:0;box-shadow:none}
.driver-navigation.is-driving .journey-control-card .page-actions{display:flex;gap:8px;flex-wrap:wrap}
.driver-navigation.is-driving .journey-control-card .btn{min-height:44px;flex:1 1 130px;font-size:12px}
.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{background:#eef4f8!important;border:1px solid #dce5ee!important;margin:0 0 8px}
.driver-navigation.is-driving .next-stop-card strong{color:#172332!important}
.driver-navigation.is-driving .next-stop-card span,.driver-navigation.is-driving .next-stop-card small{color:#647281!important}
.driver-navigation.is-driving .nav-contact-actions{padding:8px}
.driver-navigation.is-driving .nav-contact-actions .btn{width:100%;min-height:44px;justify-content:center}
.driver-navigation.is-driving .driver-navigation-stops>details{background:#f5f8fb!important;color:#172332!important}
.driver-navigation.is-driving .leaflet-top{top:130px}
.driver-navigation.is-driving .schooltrack-map-label.is-driver{display:none}
.driver-navigation.is-driving .driver-map-attribution{font-size:8px;bottom:2px}
.driver-navigation.is-driving button:focus-visible{outline:3px solid #108bab;outline-offset:3px}
/* Landscape and desktop: the same sheet becomes one shallow horizontal row. */
@media(min-width:900px),(orientation:landscape) and (min-width:560px){
 .driver-navigation.is-driving .driver-arrival-sheet{grid-template-columns:minmax(220px,.75fr) minmax(360px,1.4fr) 44px;align-items:center;gap:16px;padding:10px 18px calc(env(safe-area-inset-bottom,0px) + 10px);border-radius:18px 18px 0 0;max-height:42dvh}
 .driver-navigation.is-driving .driver-trip-strip{grid-column:1;grid-row:1;min-height:60px;padding:6px 0}
 .driver-navigation.is-driving .nav-stop-dock{grid-column:2;grid-row:1;border-top:0;border-inline-start:1px solid #e5e8ec;padding:0;padding-inline-start:16px;gap:7px 10px}
 .driver-navigation.is-driving .driver-panel-toggle{grid-column:3;grid-row:1}
 .driver-navigation.is-driving .driver-navigation-stops{inset-inline-start:auto;inset-inline-end:10px;width:400px;max-width:calc(100% - 20px)}
 .driver-navigation.is-driving .driver-turn{inset-inline-end:80px;width:380px;max-width:calc(100% - 90px)}
 .driver-navigation.is-driving .driver-map-controls{inset-inline:18px;bottom:24px}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:500px){
 .driver-navigation.is-driving .driver-arrival-sheet{grid-template-columns:minmax(130px,.6fr) minmax(280px,1.4fr) 40px;gap:10px;padding:6px 12px}
 .driver-navigation.is-driving .driver-turn{min-height:66px;padding:10px 14px;width:300px;max-width:42vw}
 .driver-navigation.is-driving .driver-turn strong{font-size:21px!important}
 .driver-navigation.is-driving .driver-turn p{font-size:12px!important}
 .driver-navigation.is-driving .nav-signal{top:84px}
 .driver-navigation.is-driving .leaflet-top{top:114px}
 .driver-navigation.is-driving .driver-navigation-stops{max-height:calc(100dvh - var(--driver-sheet-height,108px) - 70px)}
 .driver-navigation.is-driving .driver-trip-strip strong{font-size:17px!important}
 .driver-navigation.is-driving .nav-stop-dock{padding-inline-start:10px}
}
@media(max-width:360px){
 .driver-navigation.is-driving .driver-turn{gap:10px;padding:10px}
 .driver-navigation.is-driving .driver-turn strong{font-size:21px!important}
 .driver-navigation.is-driving .driver-arrival-sheet{padding-inline:8px}
 .driver-navigation.is-driving .nav-stop-dock{gap:7px}
 .driver-navigation.is-driving .nav-stop-dock .pickup-wait{max-width:115px}
 .driver-navigation.is-driving .nav-student-actions .btn{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.driver-navigation.is-driving *{scroll-behavior:auto;transition:none!important}}

.driver-navigation.is-driving .vehicle-marker-pro{transform:none!important}
.driver-navigation.is-driving .nav-signal{top:var(--driver-turn-bottom,96px)}

.driver-navigation.is-driving .journey-control-card p,.driver-navigation.is-driving .journey-control-card small{color:#647281!important}
.driver-navigation.is-driving .driver-trip-strip strong{white-space:nowrap}

.driver-navigation.is-driving .leaflet-tile-pane{filter:saturate(.58) brightness(1.03)}

/* Keep the same clear decision colors in the expanded journey controls. */
.driver-navigation .journey-control-card [data-action="complete-journey-stop"]{background:#17794f!important;border-color:#17794f!important;color:#fff!important}
.driver-navigation .journey-control-card [data-action="missed-pickup"]{background:#fff0f2!important;border-color:#edbec8!important;color:#a92f45!important}
.driver-navigation .journey-control-card [data-action="complete-journey-stop"]:disabled,
.driver-navigation .journey-control-card [data-action="missed-pickup"]:disabled{background:#eff1f4!important;border-color:#e1e5e8!important;color:#84909b!important;opacity:1}
