/* 8.11: tourist-first journey form and readable water route labels. */
.uv-transit .sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.uv-app89 .journey-place{padding:8px 10px;margin-top:10px}
.uv-app89 .journey-input-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:6px}
.uv-app89 .journey-input-row input{min-width:0;width:100%;font-size:16px;margin:0}
.uv-app89 .journey-map-button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;background:#eef1e8;color:var(--brand);border-radius:12px;display:grid;place-items:center}
.uv-app89 .journey-map-button svg{width:20px;height:20px}
.uv-app89 .journey-gps-quick{display:inline-flex;align-items:center;gap:7px;min-height:38px;margin-top:7px;padding:7px 10px;border:1px solid #d9dfd5;border-radius:10px;background:#f6f8f3;color:#36544a;font-size:12px;font-weight:700}
.uv-app89 .journey-gps-quick svg{width:16px;height:16px}.uv-app89 .journey-gps-quick:disabled{opacity:.55}
.uv-app89 .journey-options{margin:10px 0 14px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 12px}
.uv-app89 .journey-options>summary{min-height:46px;display:flex;align-items:center;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
.uv-app89 .journey-options>summary:after{content:'＋';margin-left:auto}.uv-app89 .journey-options[open]>summary:after{content:'−'}
.uv-app89 .journey-options>label,.uv-app89 .journey-options>select{display:block;width:100%}
.uv-app89 .journey-options>select{margin:5px 0 10px;min-height:44px}
.uv-app89 .journey-options #journeySwap,.uv-app89 .journey-options #journeyDepartures{width:100%;margin:4px 0 8px}
.uv-app89 #journeyFind{margin-top:14px}
.uv-app89 .point-controls{margin-top:4px}
.uv-app89 .point-controls>small{display:none}
.uv-app89 .point-controls button{min-height:38px}
.uv-transit .water-shape svg{z-index:1}
.uv-transit .water-shape b{position:absolute;inset:0;z-index:2;display:grid;place-items:center;margin:0;padding:0;pointer-events:none;font-variant-numeric:tabular-nums;font-weight:800;text-shadow:0 1px 1px #ffffff55}
.uv-transit .water-ferry b{font-size:13px}
.uv-transit .uv-water-route{opacity:.52!important}
@media(max-width:600px){
 .uv-app89 #view-journey .journey-intro{display:none}
 .uv-app89 .journey-place{margin-top:8px}
 .uv-app89 #journeyFind{min-height:50px}
 .uv-app89 .journey-gps-quick{min-height:40px}
}
@media(max-width:600px) and (max-height:740px) and (orientation:portrait){
 /* Compact phones should expose the complete core form without a preliminary
    inner-scroll: origin, destination and the primary action stay in view. */
 .uv-app89[data-panel="journey"] #drawer.drawer{height:86%;max-height:calc(100% - 8px)}
 .uv-app89 #view-journey .journey-place{margin-top:5px;padding:6px 10px}
 .uv-app89 #view-journey .journey-place .field{margin-top:2px;margin-bottom:1px!important;font-size:11px}
 .uv-app89 #view-journey .journey-input-row input{min-height:44px;padding-top:8px;padding-bottom:8px}
 .uv-app89 #view-journey .journey-gps-quick{margin-top:4px;min-height:38px;padding-top:6px;padding-bottom:6px}
 .uv-app89 #view-journey #journeyFind{margin-top:6px;min-height:48px}
 .uv-app89 #view-journey .journey-options{margin:6px 0 10px}
}

/* 8.12 journey alternatives: lightweight relative labels, not new controls. */
.journey-choice-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.journey-choice-tag{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--brand,#b6174b) 10%,transparent);font-size:.72rem;font-weight:700;letter-spacing:.01em}


/* 8.12 mobile acceptance: on short landscape screens prioritize the two
   journey fields over editorial intro copy. The drawer itself remains unchanged. */
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 /* Override the older .uv-short-viewport 65% height rule: in short landscape
    the journey drawer uses the full viewport height available between 6px edges. */
 .uv-app89 #drawer.drawer{position:fixed;top:6px!important;bottom:calc(var(--uv-dock-space,82px) + 6px)!important;left:6px;right:auto;width:min(420px,55vw);height:auto!important;max-height:none!important;min-height:0}
 .uv-app89 #drawer .drawer-body{min-height:0;max-height:none;padding-top:2px;padding-bottom:6px}
 .uv-app89[data-panel="journey"] .site-header,.uv-app89[data-panel="itinerary"] .site-header{visibility:hidden}
 .uv-app89 #view-journey .journey-intro{display:none}
 .uv-app89 #view-journey .journey-place{margin-top:2px;padding:3px 8px}
 .uv-app89 #view-journey .journey-place>.field{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
 .uv-app89 #view-journey .journey-input-row input{min-height:42px;padding-top:8px;padding-bottom:8px}
 .uv-app89 #view-journey .journey-map-button{width:42px;min-width:42px;height:42px;min-height:42px}
 .uv-app89 #view-journey .journey-gps-quick{margin-top:3px;min-height:36px;padding-top:5px;padding-bottom:5px}
 .uv-app89 #view-journey #journeyFind{margin-top:4px;min-height:44px}
}


/* 8.12 dev.6: one mobile panel geometry, dock stays independently reachable.
   Visual viewport variables follow the keyboard without changing layout modes. */
.uv-app89 #searchDestination{display:none!important}
.uv-app89 .locate-hero[data-state="active"],
.uv-app89[data-panel]:not([data-panel=""]) .locate-hero,
.uv-app89.uv-itinerary .locate-hero,
.uv-app89.uv-picking .locate-hero{display:none!important}
@media(max-width:760px), (max-width:900px) and (max-height:520px) and (orientation:landscape){
 .uv-app89{--uv-dock-space:calc(74px + max(8px,env(safe-area-inset-bottom)))}
 .uv-app89 .app-dock{position:fixed;z-index:1700;top:calc(var(--uv-viewport-top,0px) + var(--uv-app-height,100dvh) - var(--uv-dock-space));bottom:auto;left:12px;right:12px;width:auto;height:64px;min-height:64px;margin:8px 0 0;padding:6px;display:flex!important;visibility:visible!important;pointer-events:auto}
 .uv-app89 .map-wrap{margin-bottom:var(--uv-dock-space)}
 .uv-app89[data-panel="journey"] #drawer.drawer,
 .uv-app89[data-panel="itinerary"] #drawer.drawer,
 .uv-app89.uv-keyboard-open #drawer.drawer{
  position:fixed!important;z-index:1600;top:var(--uv-viewport-top,0px)!important;bottom:auto!important;left:0!important;right:0!important;
  width:100%!important;max-width:none!important;height:calc(var(--uv-app-height,100dvh) - var(--uv-dock-space))!important;
  max-height:none!important;min-height:0;border-radius:0;border:0;transition:none
 }
 .uv-app89[data-panel="journey"] #drawer .drawer-head,
 .uv-app89[data-panel="itinerary"] #drawer .drawer-head{padding:max(8px,env(safe-area-inset-top)) 10px 8px 16px;background:#fff}
 .uv-app89 #drawer .drawer-body{min-height:0;overflow:auto;overflow-anchor:none;scroll-behavior:auto}
 .uv-app89[data-panel="journey"] #drawer .drawer-body,
 .uv-app89[data-panel="itinerary"] #drawer .drawer-body{flex:1;max-height:none;padding:8px 16px 18px}
 .uv-app89 #drawer.drawer.compact{position:fixed!important;top:auto!important;bottom:calc(100% - var(--uv-viewport-top,0px) - var(--uv-app-height,100dvh) + var(--uv-dock-space))!important;height:auto!important;max-height:none!important;min-height:0;left:0!important;right:0!important;width:100%!important;max-width:none!important;border-radius:18px 18px 0 0}
 .uv-app89 #drawer.drawer.compact .drawer-body{display:none}
 .uv-app89 #compactBtn{display:inline-flex}
 .uv-app89 #compactBtn[aria-expanded="false"] svg{transform:rotate(180deg)}
 .uv-app89 .journey-suggestions{max-height:none;overflow:visible}
 .uv-app89[data-panel="journey"] .site-header,
 .uv-app89[data-panel="journey"] .app-heading,
 .uv-app89[data-panel="itinerary"] .site-header{visibility:hidden;pointer-events:none}
 .uv-app89[data-panel="journey"] .close-journey,
 .uv-app89[data-panel="itinerary"] .close-journey{display:none!important}
}

.uv-app89 .journey-loading{
 display:grid;justify-items:center;gap:6px;margin:12px 0;padding:14px 12px;border:1px solid var(--line);
 border-radius:16px;background:#fff;text-align:center
}
.uv-app89 .journey-loading strong{font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:16px}
.uv-app89 .journey-loading small{color:var(--muted);font-size:12px}
.uv-app89 .journey-loader-track{position:relative;width:156px;height:30px;overflow:hidden}
.uv-app89 .journey-loader-track:before{
 content:'';position:absolute;left:8px;right:8px;top:14px;border-top:2px dashed color-mix(in srgb,var(--brand) 28%,transparent)
}
.uv-app89 .journey-loader-track:after{
 content:'';position:absolute;left:5px;right:5px;top:10px;height:10px;
 background:radial-gradient(circle,var(--brand) 0 3px,transparent 3.5px) left center/50px 10px repeat-x;opacity:.45
}
.uv-app89 .journey-loader-vehicle{
 position:absolute;z-index:2;left:8px;top:4px;width:38px;height:21px;border-radius:10px 10px 7px 7px;
 background:var(--brand);box-shadow:0 2px 7px #25291c24;animation:uvJourneyRide 1.25s ease-in-out infinite alternate
}
.uv-app89 .journey-loader-vehicle:before{
 content:'';position:absolute;left:7px;top:5px;width:8px;height:6px;border-radius:2px;background:#fff;
 box-shadow:11px 0 0 #fff
}
.uv-app89 .journey-loader-vehicle:after{
 content:'';position:absolute;left:8px;right:8px;bottom:-5px;height:4px;border-bottom:2px solid var(--brand);border-radius:50%
}
@keyframes uvJourneyRide{from{transform:translateX(0)}to{transform:translateX(102px)}}
@media(prefers-reduced-motion:reduce){.uv-app89 .journey-loader-vehicle{animation:uvJourneyPulse 1s ease-in-out infinite}}
@keyframes uvJourneyPulse{50%{opacity:.5}}



/* 8.12 dev.7: journey map isolation and touch guard.
   The itinerary map contains only the selected journey; normal map overlays stay in memory but hidden. */
.uv-app89 .site-branding{display:flex;align-items:baseline;gap:9px;min-width:0}
.uv-app89 .site-branding .brand{flex:0 0 auto}
.uv-app89 .brand-version{font-size:10px;line-height:1.2;font-weight:600;letter-spacing:.035em;color:var(--muted);white-space:nowrap}
.uv-app89.uv-itinerary .smooth-vehicle,
.uv-app89.uv-itinerary .smooth-water-vehicle,
.uv-app89.uv-itinerary .raw-fix,
.uv-app89.uv-itinerary .uv-network-route,
.uv-app89.uv-itinerary .uv-water-route,
.uv-app89.uv-itinerary .stop-hit,
.uv-app89.uv-itinerary .user-person-marker{display:none!important}
.uv-app89 .journey-stop-icon{background:transparent!important;border:0!important}
.uv-app89 .journey-map-stop{display:block;width:10px;height:10px;margin:2px;border:2px solid #fff;border-radius:50%;background:#b6174b;box-shadow:0 1px 4px #25291c55}
.uv-app89 .journey-map-stop.water{background:#126b78}
@media(max-width:520px){
 .uv-app89 .site-branding{gap:6px}
 .uv-app89 .brand-version{font-size:9px;letter-spacing:.01em}
}


/* 8.12 dev.10: service alert center and simplified map controls. */
.uv-app89 .leaflet-control-zoom{display:none!important}
.uv-app89 .alert-button{position:relative}
.uv-app89 .alert-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border:2px solid #fff;border-radius:999px;background:var(--brand);color:#fff;font-size:10px;font-weight:800;line-height:14px;text-align:center;box-sizing:border-box}
.uv-app89 .alerts-intro{margin-bottom:12px}.uv-app89 .alerts-intro h3{margin:2px 0 4px}
.uv-app89 .alert-filters{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.uv-app89 .alert-filters::-webkit-scrollbar{display:none}
.uv-app89 .alert-filters button{flex:0 0 auto;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:700}
.uv-app89 .alert-filters button[aria-pressed="true"]{background:#eef1e8;color:var(--brand);border-color:#cfd8cb}
.uv-app89 .alerts-source{margin:0 0 10px;font-size:11px}.uv-app89 .alerts-list{display:grid;gap:10px;padding-bottom:12px}.uv-app89 .alerts-empty{padding:18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);background:#fafbf8}
.uv-app89 .alert-card{position:relative;padding:13px 14px;border:1px solid var(--line);border-left:4px solid #b7c0b3;border-radius:14px;background:#fff;box-shadow:0 4px 16px #25291c0a}
.uv-app89 .alert-card.severity-major{border-left-color:var(--brand)}.uv-app89 .alert-card.severity-minor{border-left-color:#ad7b18}.uv-app89 .alert-card.alert-for-you{box-shadow:0 0 0 2px #b6174b12,0 4px 16px #25291c0a}
.uv-app89 .alert-card-head,.uv-app89 .alert-card-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.uv-app89 .alert-card-meta{display:flex;flex-wrap:wrap;gap:5px}.uv-app89 .alert-kind,.uv-app89 .alert-state{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border-radius:999px;background:#f0f2ed;color:#4d574c;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.uv-app89 .alert-state.active{background:#f9e8ee;color:#8d123a}.uv-app89 .alert-state.resolved{background:#edf4ed;color:#3d6546}.uv-app89 .alert-state.personal{background:#f6eaf0;color:var(--brand)}
.uv-app89 .alert-time{white-space:nowrap;color:var(--muted);font-size:10px}.uv-app89 .alert-card h3{margin:9px 0 7px;font-size:16px;line-height:1.25}.uv-app89 .alert-body{margin:8px 0;white-space:pre-line;font-size:13px;line-height:1.45;color:#394139}.uv-app89 .alert-validity{margin:7px 0;padding:7px 9px;border-radius:9px;background:#f7f8f5;font-size:12px;font-weight:700}
.uv-app89 .alert-lines{display:flex;flex-wrap:wrap;gap:5px}.uv-app89 .alert-lines span{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:25px;padding:0 7px;border-radius:7px;background:#25291c;color:#fff;font-size:11px;font-weight:800}.uv-app89 .alert-card-foot{margin-top:9px;font-size:11px}.uv-app89 .alert-card-foot a{color:var(--brand);font-weight:700;text-decoration:none}
@media(max-width:520px){.uv-app89 .alert-card{padding:12px}.uv-app89 .alert-card-head{align-items:flex-start}.uv-app89 .alert-time{font-size:9px}}

.uv-app89 .alert-kind.secondary{background:#f7f4ed;color:#6a5a38}


/* 8.12 dev.12 — compact service alerts + map incident affordances. */
.uv-app89 .alert-card{padding:0;overflow:hidden;border-left-width:1px;box-shadow:none}
.uv-app89 .alert-card[open]{box-shadow:0 5px 18px #25291c0b}
.uv-app89 .alert-card.lifecycle-active{border-left:4px solid var(--brand)}
.uv-app89 .alert-card.lifecycle-resolved{opacity:.72}
.uv-app89 .alert-compact{display:grid;grid-template-columns:9px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none}
.uv-app89 .alert-compact::-webkit-details-marker{display:none}
.uv-app89 .alert-compact::marker{display:none;content:''}
.uv-app89 .alert-compact-main{min-width:0}
.uv-app89 .alert-compact h3{margin:0;font-size:14px;line-height:1.25;font-weight:750}
.uv-app89 .alert-compact-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:5px}
.uv-app89 .alert-severity-dot{width:8px;height:8px;border-radius:50%;background:#aeb7aa;box-shadow:0 0 0 3px #aeb7aa18}
.uv-app89 .severity-major .alert-severity-dot,.uv-app89 .severity-critical .alert-severity-dot{background:var(--brand);box-shadow:0 0 0 3px #b6174b18}
.uv-app89 .severity-minor .alert-severity-dot{background:#ad7b18;box-shadow:0 0 0 3px #ad7b181c}
.uv-app89 .alert-chevron{font-size:22px;line-height:1;color:var(--muted);transform:rotate(90deg);transition:transform .16s ease}
.uv-app89 .alert-card[open] .alert-chevron{transform:rotate(-90deg)}
.uv-app89 .alert-state,.uv-app89 .alert-line-mini{min-height:19px;padding:2px 6px;font-size:9px;letter-spacing:.02em}
.uv-app89 .alert-line-mini{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#25291c;color:#fff;font-weight:800}
.uv-app89 .alert-when{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.uv-app89 .alert-expanded{padding:0 12px 12px 31px;border-top:1px solid #eef0eb}
.uv-app89 .alert-detail-head{display:flex;flex-wrap:wrap;gap:5px;padding-top:10px}
.uv-app89 .alert-expanded .alert-body{margin:9px 0 8px;font-size:12.5px;line-height:1.45}
.uv-app89 .alert-resolution{margin:8px 0;padding:7px 9px;border-radius:8px;background:#edf4ed;color:#3d6546;font-size:11px;font-weight:700}
.uv-app89 .alert-scope-detail{display:grid;gap:2px;margin:8px 0}
.uv-app89 .alert-scope-detail p{margin:0;color:var(--muted);font-size:11px}
.uv-app89 .alert-card-foot{align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid #eef0eb}
.uv-app89 .alert-card-foot a{white-space:nowrap}
.uv-app89 .vehicle-alert-tool{
 position:absolute;z-index:5;right:-7px;top:-7px;width:18px;height:18px;border:2px solid #fff;border-radius:50%;
 display:grid;place-items:center;background:#b6174b;color:#fff;box-shadow:0 2px 7px #25291c40;pointer-events:none
}
.uv-app89 .vehicle-alert-tool svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uv-app89 .water-alert-tool{right:-5px;top:-6px}
.uv-app89 .leaflet-interactive.uv-route-alert{filter:drop-shadow(0 1px 1px #b6174b22)}
.uv-app89 .map-alert-link,.uv-app89 .detail-alert-callout{
 display:flex;align-items:center;justify-content:center;width:100%;min-height:36px;margin-top:9px;padding:7px 10px;
 border:1px solid #e8b9c8;border-radius:10px;background:#fff5f8;color:#8d123a;font-weight:800;font-size:11px;cursor:pointer
}
.uv-app89 .detail-alert-callout{margin:8px 0 2px}
@media(max-width:520px){
 .uv-app89 .alerts-list{gap:7px}
 .uv-app89 .alert-compact{padding:10px}
 .uv-app89 .alert-expanded{padding:0 10px 10px 27px}
 .uv-app89 .alert-compact h3{font-size:13.5px}
}

.uv-app89 .alert-source-links{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.uv-app89 .alert-source-links a{font-size:11px}

/* 8.12 dev.13 — contextual incidents and map control refinement. */
.uv-app89 .map-wrap > .locate-hero{bottom:32px!important}
.uv-app89 .leaflet-interactive.uv-route-alert{
 filter:drop-shadow(0 1px 1px #b6174b2b);
 stroke-linecap:butt
}
.uv-app89 .journey-alert{
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;
 margin:10px 0;padding:10px 11px;border:1px solid #e5aabd;border-left:4px solid var(--brand);
 border-radius:12px;background:#fff5f8;color:#5f1830
}
.uv-app89 .journey-alert strong{font-size:12.5px;line-height:1.35}
.uv-app89 .journey-alert span{grid-column:1;color:#7b4a5b;font-size:10.5px}
.uv-app89 .journey-alert-open{
 grid-column:2;grid-row:1 / span 2;min-height:34px;padding:6px 9px;border:1px solid #e5aabd;
 border-radius:9px;background:#fff;color:#8d123a;font-size:10.5px;font-weight:800
}
.uv-app89 .journey-alert-compact{margin:8px 0 2px;padding:8px 9px}
@media(max-width:520px){
 .uv-app89 .map-wrap > .locate-hero{bottom:28px!important;right:10px!important}
 .uv-app89 .journey-alert{grid-template-columns:minmax(0,1fr) auto}
}

@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 .uv-app89[data-panel]:not([data-panel=""]) .site-header{visibility:hidden!important;pointer-events:none!important}
 .uv-app89[data-panel]:not([data-panel=""]) #drawer{z-index:1600!important}
}

@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 .uv-app89.uv-panel-open .site-header{visibility:hidden!important;pointer-events:none!important}
 .uv-app89.uv-panel-open #drawer{z-index:1800!important}
}


/* 8.13 driver utility — hidden development surface, full-height and task-first. */
.uv-app89 .developer-menu>summary{font-weight:800}
.uv-app89 .driver-view{max-width:860px;margin:0 auto;padding-bottom:32px}
.uv-app89[data-panel^="driver-"] .site-header,
.uv-app89[data-panel^="driver-"] .app-heading,
.uv-app89[data-panel^="driver-"] .app-dock,
.uv-app89[data-panel^="driver-"] .toolbar,
.uv-app89[data-panel^="driver-"] .locate-hero{display:none!important}
.uv-app89[data-panel^="driver-"] .map-wrap{margin:0!important}
.uv-app89[data-panel^="driver-"] #drawer.drawer{
 position:fixed!important;z-index:2400!important;inset:0!important;width:100%!important;max-width:none!important;
 height:var(--uv-app-height,100dvh)!important;max-height:none!important;border:0!important;border-radius:0!important;
 box-shadow:none!important;background:#f7f8f5
}
.uv-app89[data-panel^="driver-"] #drawer .drawer-head{
 min-height:68px;padding:max(10px,env(safe-area-inset-top)) 18px 10px;background:#fff;border-bottom:1px solid var(--line)
}
.uv-app89[data-panel^="driver-"] #drawer .drawer-head h2{font-size:20px}
.uv-app89[data-panel^="driver-"] #compactBtn{display:none!important}
.uv-app89[data-panel^="driver-"] #drawer .drawer-body{
 flex:1!important;max-height:none!important;padding:18px 18px calc(28px + env(safe-area-inset-bottom))!important;overflow:auto!important
}
.driver-home-head{margin-bottom:18px}.driver-home-head h3,.driver-view>h3{margin:4px 0 6px;font-size:25px;line-height:1.05}
.driver-menu{display:grid;gap:12px}
.driver-menu-card{
 width:100%;min-height:92px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#fff;
 display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:14px;text-align:left;color:var(--ink)
}
.driver-menu-card.primary-card{border-color:#d8a6b8;background:#fff7fa}
.driver-menu-card svg{width:28px;height:28px;color:var(--brand)}
.driver-menu-card span{display:grid;gap:4px}.driver-menu-card strong{font-size:18px}.driver-menu-card small{color:var(--muted);font-size:12px;line-height:1.35}
.driver-sources{margin-top:24px;display:grid;gap:8px}.driver-source-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line)}
.driver-source-row small{grid-column:1/-1;color:var(--muted)}.driver-source-row.legacy{opacity:.62}
.driver-code-filters{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px;margin:14px 0 16px}
.driver-code-filters label,.driver-guide-head label,.driver-upload-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted)}
.driver-code-filters select,.driver-code-filters input,.driver-guide-head select,.driver-upload-form input,.driver-upload-form select,.driver-upload-form textarea{
 width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit
}
.driver-code-results{display:grid;gap:10px}.driver-code-card{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff}
.driver-code-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.driver-route-label{font-weight:800}
.driver-source-chip{display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf4ed;color:#3d6546;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.driver-source-chip.legacy{background:#f4eee4;color:#795d31}.driver-display-code{display:block;margin-top:8px;font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:38px;line-height:1;font-variant-numeric:tabular-nums;color:var(--brand)}
.driver-display-text{margin:7px 0 5px;font-size:15px;font-weight:750;line-height:1.25}.driver-code-source{color:var(--muted)}
.driver-empty{padding:16px;border:1px dashed var(--line);border-radius:14px;background:#fff;color:var(--muted)}
.driver-guide-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);gap:12px;align-items:end;margin-bottom:16px}
.driver-guide-head .eyebrow{margin:0}.driver-trip-choices{display:grid;gap:10px}
.driver-trip-choice{min-height:68px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;font-size:15px;font-weight:850}
.driver-trip-choice small{display:block;margin-top:4px;color:var(--muted);font-weight:600}
.driver-session{display:grid;gap:14px}.driver-session-line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:4px}
.driver-session-line span{display:inline-flex;padding:7px 10px;border-radius:10px;background:#25291c;color:#fff;font-weight:900}.driver-session-line strong{text-align:right;font-size:16px}
.driver-next-stop,.driver-code-now{padding:18px;border-radius:20px;background:#fff;border:1px solid var(--line);display:grid;gap:5px}
.driver-next-stop small,.driver-code-now small{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.driver-next-stop>strong{font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:34px;line-height:1.02}
.driver-next-stop>span{color:var(--muted);font-size:12px}.driver-code-now{border-color:#d8a6b8;background:#fff7fa}
.driver-code-now>strong{font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:72px;line-height:.9;color:var(--brand);font-variant-numeric:tabular-nums}
.driver-code-now>span{font-size:18px;font-weight:850;line-height:1.15}.driver-code-confidence{font-style:normal;font-size:11px;color:var(--muted)}
.driver-code-confidence.good{color:#3d6546}.driver-code-confidence.warn{color:#8a6215}.driver-code-confidence.low{color:#8c4056}
.driver-guide-actions{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:8px}.driver-guide-actions button{min-height:58px;border-radius:14px;font-size:13px;font-weight:850}
.driver-guide-actions .primary{font-size:16px}.driver-gps-box{padding:12px;border-radius:16px;background:#eef1e8}.driver-gps-box p{margin:6px 0 0}
.driver-session-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.driver-session-links button{min-height:44px}
.driver-upload-lead{font-size:16px;line-height:1.35;max-width:620px}.driver-upload-form{display:grid;gap:14px;margin-top:16px}
.driver-upload-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.driver-upload-form input[type="file"]{padding:12px;background:#fff}
@media(max-width:620px){
 .uv-app89[data-panel^="driver-"] #drawer .drawer-body{padding:14px 14px calc(22px + env(safe-area-inset-bottom))!important}
 .driver-code-filters,.driver-guide-head,.driver-upload-row{grid-template-columns:1fr}
 .driver-guide-head{gap:6px}.driver-display-code{font-size:42px}.driver-code-now>strong{font-size:78px}
 .driver-next-stop>strong{font-size:30px}.driver-guide-actions{grid-template-columns:1fr 1.4fr 1fr;gap:6px}
 .driver-guide-actions button{padding:8px 5px;font-size:11px}.driver-guide-actions .primary{font-size:15px}
}


/* 8.13 dev.2 — veil-first driver reminder. */
.driver-code-actions{display:flex;justify-content:flex-end;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.driver-start-guide{min-height:46px;padding:10px 16px;border:0;border-radius:12px;background:var(--brand);color:#fff;font-size:13px;font-weight:900}
.driver-guide-unavailable{display:block;margin-top:10px;color:#8a6215;line-height:1.35}
.driver-guide-head{display:block;margin-bottom:12px}
.driver-guide-head h3{margin:4px 0 0;font-size:24px;line-height:1.08}
.driver-guide-selection{margin-bottom:12px}
.driver-code-selected{border-color:#d8a6b8;background:#fff7fa}
.driver-code-selected .driver-display-code{font-size:52px}
.driver-choice-help{margin:8px 0 10px;color:var(--muted);font-size:13px;line-height:1.4}
.driver-gps-live{display:flex;align-items:center;gap:8px}
.driver-gps-dot{width:10px;height:10px;border-radius:50%;background:#3d6546;box-shadow:0 0 0 5px #3d65461f}
.driver-gps-box>button{margin-top:10px;min-height:42px}
.driver-session-line strong{max-width:70%;font-size:12px;color:var(--muted);font-weight:750}
@media(max-width:620px){
 .driver-start-guide{width:100%;min-height:50px;font-size:15px}
 .driver-code-selected .driver-display-code{font-size:54px}
 .driver-session-line strong{max-width:62%;font-size:11px}
}


/* 8.13 dev.3 — direct driver entry in Profile. */
.uv-app89 .driver-profile-card{
 width:100%;margin-top:12px;text-align:left;cursor:pointer;color:var(--ink);
 appearance:none;-webkit-appearance:none;
}
.uv-app89 .driver-profile-card[hidden]{display:none!important}
.uv-app89 .driver-profile-card svg{color:var(--brand)}
.uv-app89 .driver-profile-card h3{margin:8px 0 4px}


/* 8.13 dev.4 — compact driver cockpit with timetable delta. */
.driver-cockpit{gap:12px}
.driver-cockpit-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.driver-line-badge{display:inline-flex;align-items:center;min-height:40px;padding:8px 13px;border-radius:12px;background:#25291c;color:#fff;font-size:16px;font-weight:900}
.driver-clock{display:grid;justify-items:end;line-height:1}
.driver-clock small{font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--muted)}
.driver-clock strong{font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:30px;font-variant-numeric:tabular-nums}
.driver-stop-timing{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:7px 0 2px}
.driver-stop-timing>span{font-size:14px;color:var(--muted)}
.driver-stop-timing b{margin-left:4px;color:var(--ink);font-size:20px;font-variant-numeric:tabular-nums}
.driver-delay-status{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.driver-delay-status.on-time{background:#e8f3e8;color:#315f39}
.driver-delay-status.late{background:#fff0f1;color:#9d2439}
.driver-delay-status.early{background:#fff6df;color:#845c0c}
.driver-delay-status.neutral{background:#eef0eb;color:var(--muted)}
.driver-code-inline{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px}
.driver-code-inline>strong{font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:58px;line-height:.9;color:var(--brand);font-variant-numeric:tabular-nums}
.driver-code-inline>span{font-size:17px;font-weight:850;line-height:1.15}
.driver-cockpit .driver-code-now{padding:14px 16px}
.driver-cockpit .driver-next-stop{padding:18px 16px}
.driver-cockpit .driver-next-stop>strong{font-size:36px}
.driver-cockpit .driver-gps-box{padding:11px 12px}
@media(max-width:620px){
 .driver-clock strong{font-size:28px}
 .driver-stop-timing{align-items:flex-end}
 .driver-stop-timing b{font-size:19px}
 .driver-delay-status{font-size:11px;padding:6px 9px}
 .driver-code-inline>strong{font-size:56px}
 .driver-code-inline>span{font-size:16px}
 .driver-cockpit .driver-next-stop>strong{font-size:32px}
}


/* 8.13 dev.5 — driver cockpit hierarchy: glanceable while driving. */
#view-driver-guide.session-active .driver-guide-head{display:none}
#view-driver-guide.session-active{max-width:760px}
.driver-cockpit{
 gap:10px;
 min-height:calc(var(--uv-app-height,100dvh) - 118px);
 align-content:start
}
.driver-cockpit-bar{
 min-height:52px;
 padding:0 2px 2px;
 border-bottom:1px solid #e5e8e1
}
.driver-line-block{display:flex;align-items:center;gap:9px}
.driver-line-block>small,.driver-clock>small{
 font-size:9px;font-weight:900;letter-spacing:.11em;color:var(--muted)
}
.driver-line-badge{
 min-height:38px;padding:7px 13px;border-radius:11px;
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:20px;line-height:1
}
.driver-clock strong{font-size:32px;letter-spacing:-.025em}

.driver-hero-stop{
 min-height:202px;
 padding:18px 18px 16px!important;
 border:0!important;
 border-radius:22px!important;
 background:#fff!important;
 box-shadow:0 8px 28px #25291c0b;
 justify-content:start
}
.driver-hero-stop>small{
 font-size:10px!important;letter-spacing:.13em!important
}
.driver-cockpit .driver-hero-stop>strong{
 margin-top:7px;
 font-size:clamp(38px,7vw,58px);
 line-height:.96;
 letter-spacing:-.035em
}
.driver-stop-timing{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 align-items:end;
 gap:12px;
 margin-top:auto
}
.driver-scheduled{display:grid;gap:1px}
.driver-scheduled>small{
 font-size:9px!important;font-weight:900;letter-spacing:.09em;color:var(--muted)
}
.driver-scheduled>b{
 margin:0;
 font-family:'Bricolage Grotesque',Inter,sans-serif;
 font-size:34px!important;
 line-height:1;
 letter-spacing:-.03em;
 font-variant-numeric:tabular-nums
}
.driver-delay-status{
 min-height:38px;
 padding:7px 12px;
 border-radius:12px;
 font-size:13px
}
.driver-hero-stop>#driverStopProgress{
 margin-top:7px;
 font-size:11px;
 color:var(--muted)
}

.driver-following-row{
 display:grid;
 grid-template-columns:auto minmax(0,1fr);
 align-items:center;
 gap:10px;
 min-height:52px;
 padding:11px 14px;
 border:1px solid var(--line);
 border-radius:15px;
 background:#f0f2ed
}
.driver-following-label{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-width:38px;
 min-height:27px;
 padding:4px 8px;
 border-radius:8px;
 background:#25291c;
 color:#fff;
 font-size:9px;
 font-weight:900;
 letter-spacing:.08em
}
.driver-following-row strong{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:14px;
 line-height:1.25
}

.driver-veil-strip{
 display:grid;
 grid-template-columns:auto minmax(0,1fr);
 align-items:center;
 gap:5px 12px;
 padding:11px 14px!important;
 border:1px solid #ead3dc!important;
 border-radius:16px!important;
 background:#fff7fa!important
}
.driver-veil-strip>small{
 grid-column:1/-1;
 font-size:9px!important
}
.driver-veil-strip .driver-code-inline{
 grid-column:1/-1;
 grid-template-columns:auto minmax(0,1fr);
 gap:12px
}
.driver-veil-strip .driver-code-inline>strong{font-size:44px}
.driver-veil-strip .driver-code-inline>span{font-size:15px}
.driver-veil-strip .driver-code-confidence{display:none}

.driver-cockpit-status{
 display:grid;
 grid-template-columns:auto minmax(0,1fr) auto;
 align-items:center;
 gap:7px 10px;
 min-height:44px;
 padding:8px 10px!important;
 border:1px solid #dfe5dc;
 background:#f7f9f5!important
}
.driver-cockpit-status .driver-gps-live{gap:7px}
.driver-cockpit-status .driver-gps-live strong{font-size:11px}
.driver-cockpit-status #driverGpsStatus{
 margin:0;
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:11px
}
.driver-cockpit-status #driverReachedStatus{
 grid-column:1/-1;
 margin:0;
 color:#8a6215;
 font-size:10px
}
.driver-cockpit-status #driverReachedStatus:empty{display:none}
.driver-cockpit-status #driverGpsToggle{
 margin:0;
 min-height:32px;
 padding:5px 8px;
 border:0;
 background:transparent;
 color:var(--muted);
 font-size:10px;
 font-weight:800
}

.driver-cockpit-actions{
 display:block;
 margin-top:0;
 text-align:center
}
.driver-cockpit-actions #driverOpenCodes{
 min-height:40px;
 padding:7px 14px;
 border:0;
 background:transparent;
 color:var(--brand);
 font-size:12px;
 font-weight:850
}
.driver-cockpit-actions #driverOpenUpload{display:none}

@media(max-width:620px){
 .uv-app89[data-panel="driver-guide"] #drawer .drawer-body{
  padding:10px 12px calc(16px + env(safe-area-inset-bottom))!important
 }
 .driver-cockpit{
  min-height:auto;
  gap:8px
 }
 .driver-cockpit-bar{min-height:45px}
 .driver-line-badge{min-height:34px;padding:6px 11px;font-size:18px}
 .driver-clock strong{font-size:28px}
 .driver-hero-stop{
  min-height:184px;
  padding:15px 15px 13px!important;
  border-radius:19px!important
 }
 .driver-cockpit .driver-hero-stop>strong{
  font-size:clamp(36px,10vw,50px)
 }
 .driver-scheduled>b{font-size:31px!important}
 .driver-delay-status{min-height:34px;padding:6px 9px;font-size:11px}
 .driver-following-row{min-height:46px;padding:9px 11px}
 .driver-following-row strong{font-size:12px}
 .driver-veil-strip{padding:9px 11px!important}
 .driver-veil-strip .driver-code-inline>strong{font-size:38px}
 .driver-veil-strip .driver-code-inline>span{font-size:13px}
 .driver-cockpit-status{min-height:40px;padding:7px 9px!important}
 .driver-cockpit-actions #driverOpenCodes{min-height:36px}
}
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 .uv-app89[data-panel="driver-guide"] #drawer .drawer-body{
  padding:6px 10px 8px!important
 }
 .driver-cockpit{
  grid-template-columns:1.4fr .9fr;
  grid-template-areas:
   "bar bar"
   "hero veil"
   "hero following"
   "hero gps"
   "actions actions";
  gap:7px 9px
 }
 .driver-cockpit-bar{grid-area:bar;min-height:38px}
 .driver-hero-stop{grid-area:hero;min-height:0;height:100%;padding:12px 14px!important}
 .driver-following-row{grid-area:following;min-height:40px}
 .driver-veil-strip{grid-area:veil}
 .driver-cockpit-status{grid-area:gps}
 .driver-cockpit-actions{grid-area:actions}
 .driver-cockpit .driver-hero-stop>strong{font-size:38px}
 .driver-scheduled>b{font-size:27px!important}
}

.driver-menu-card[hidden]{display:none!important}

/* 8.14 dev.2 — dedicated local MapLibre driver view. */
.driver-view-switch{
 display:grid;grid-template-columns:1fr 1fr;gap:4px;
 padding:4px;border:1px solid var(--line);border-radius:14px;background:#eef1e8
}
.driver-view-switch button{
 min-height:38px;padding:6px 10px;border:0;border-radius:10px;background:transparent;
 font-size:12px;font-weight:900
}
.driver-view-switch button[aria-pressed="true"]{
 background:#fff;color:var(--brand);box-shadow:0 2px 8px #25291c12
}
#driverMapCanvas{
 position:absolute;z-index:1350;inset:0 0 clamp(276px,40dvh,348px) 0;
 overflow:hidden;background:#f4f1e9
}
#driverMapCanvas[hidden]{display:none!important}
#driverMapCanvas .maplibregl-map,#driverMapCanvas .maplibregl-canvas-container,#driverMapCanvas .maplibregl-canvas{
 width:100%;height:100%
}
#driverMapCanvas .maplibregl-ctrl-bottom-right{right:7px;bottom:5px}
#driverMapCanvas .maplibregl-ctrl-attrib{
 border-radius:8px;background:#ffffffd9;color:#69665f;font-size:9px
}
#driverMapCanvas .maplibregl-ctrl-attrib a{color:#69665f}
.uv-app89.uv-driver-map-mode #map{visibility:hidden!important;pointer-events:none!important}

.uv-driver-vehicle{width:44px;height:50px;filter:drop-shadow(0 4px 6px #25291c38);pointer-events:none}
.uv-driver-vehicle svg{display:block;width:100%;height:100%;overflow:visible}
.uv-driver-vehicle-shadow{fill:#fff;stroke:#fff;stroke-width:4;stroke-linejoin:round}
.uv-driver-vehicle-body{fill:#b6174b;stroke:#7f1036;stroke-width:1;stroke-linejoin:round}
.uv-driver-vehicle-core{fill:#fff;opacity:.96}

.driver-map-hud{display:grid;gap:7px;min-width:0}
.driver-map-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.driver-map-line,.driver-map-clock{display:flex;align-items:center;gap:8px}
.driver-map-line small,.driver-map-clock small{
 font-size:8px;font-weight:900;letter-spacing:.11em;color:var(--muted)
}
.driver-map-line strong{
 display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:5px 10px;
 border-radius:9px;background:#25291c;color:#fff;
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:16px;line-height:1
}
.driver-map-clock strong{
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:24px;line-height:1;font-variant-numeric:tabular-nums
}
.driver-map-next{
 display:grid;gap:4px;padding:10px 12px 9px;border:0;border-radius:16px;background:#fff;
 box-shadow:0 5px 18px #25291c0d
}
.driver-map-next>small{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--muted)}
.driver-map-next>strong{
 min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:clamp(25px,6vw,34px);
 line-height:1;letter-spacing:-.03em
}
.driver-map-timing{
 display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:3px
}
.driver-map-timing>div{display:grid;gap:0}
.driver-map-timing small{font-size:8px;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.driver-map-timing b{
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:23px;line-height:1;font-variant-numeric:tabular-nums
}
.driver-map-timing .driver-delay-status{min-height:31px;padding:5px 9px;font-size:10px}
.driver-map-following{
 display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;
 min-height:39px;padding:7px 10px;border:1px solid var(--line);border-radius:12px;background:#eef1e8
}
.driver-map-following strong{
 min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.2
}
.driver-map-meta{
 display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;
 min-height:28px;padding:0 2px;color:var(--muted)
}
.driver-map-meta>span{font-size:10px;font-weight:750;white-space:nowrap}
.driver-map-meta>span b{color:var(--brand);font-size:15px;margin-left:3px}
.driver-map-meta>small{
 min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:9px
}

.uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer.drawer{
 inset:auto 0 0 0!important;
 width:100%!important;max-width:none!important;
 height:clamp(276px,40dvh,348px)!important;max-height:none!important;
 border:0!important;border-top:1px solid var(--line)!important;border-radius:20px 20px 0 0!important;
 box-shadow:0 -12px 36px #25291c26!important;background:#f7f8f5
}
.uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer .drawer-head{
 min-height:44px;padding:6px 11px;background:#fff;border-bottom:1px solid #eceee9
}
.uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer .drawer-head h2{font-size:16px}
.uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer .drawer-body{
 padding:6px 11px calc(9px + env(safe-area-inset-bottom))!important;overflow:hidden!important
}
.uv-app89.uv-driver-map-mode #view-driver-guide.session-active{max-width:760px}
.uv-app89.uv-driver-map-mode .driver-cockpit{min-height:0!important;gap:6px;align-content:start}
.uv-app89.uv-driver-map-mode .driver-cockpit-only,
.uv-app89.uv-driver-map-mode .driver-cockpit>.driver-cockpit-bar{display:none!important}
.uv-app89.uv-driver-map-mode .driver-view-switch{min-height:38px}

@media(max-width:620px){
 #driverMapCanvas{inset:0 0 clamp(286px,42dvh,350px) 0}
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer.drawer{
  height:clamp(286px,42dvh,350px)!important
 }
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer .drawer-body{
  padding:5px 9px calc(8px + env(safe-area-inset-bottom))!important
 }
 .driver-map-next>strong{font-size:clamp(24px,7vw,31px)}
 .driver-map-clock strong{font-size:22px}
}
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 #driverMapCanvas{inset:0 min(42vw,360px) 0 0}
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer.drawer{
  inset:0 0 0 auto!important;width:min(42vw,360px)!important;height:100dvh!important;
  border:0!important;border-left:1px solid var(--line)!important;border-radius:18px 0 0 18px!important;
  box-shadow:-10px 0 34px #25291c24!important
 }
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer .drawer-head{min-height:43px}
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"] #drawer .drawer-body{padding:5px 9px 8px!important}
 .uv-app89.uv-driver-map-mode .driver-cockpit{
  display:grid!important;grid-template-columns:1fr!important;grid-template-areas:none!important;gap:6px
 }
 .driver-map-next>strong{font-size:24px}
 .driver-map-timing b{font-size:20px}
}


.driver-off-route-warning{
 display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;
 padding:10px 12px;border:1px solid #d8892d;border-radius:14px;
 background:#fff4df;color:#69400e;box-shadow:0 4px 16px #8c5a1714
}
.driver-off-route-warning[hidden]{display:none!important}
.driver-off-route-warning>svg{
 width:20px;height:20px;margin-top:1px;stroke-width:2.4;flex:0 0 20px
}
.driver-off-route-warning>div{display:grid;gap:2px;min-width:0}
.driver-off-route-warning strong{
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:14px;line-height:1.1
}
.driver-off-route-warning span{font-size:11px;line-height:1.3;font-weight:650}
.uv-app89.uv-driver-map-mode .driver-off-route-warning{
 padding:8px 10px;border-radius:12px
}
.uv-app89.uv-driver-map-mode .driver-off-route-warning span{font-size:10px}
@media(max-width:620px){
 .driver-off-route-warning{padding:8px 10px;gap:8px}
 .driver-off-route-warning>svg{width:18px;height:18px}
 .driver-off-route-warning strong{font-size:13px}
 .driver-off-route-warning span{font-size:10px}
}


@media(max-width:900px){
 .uv-app89.uv-driver-map-mode:has(#driverOffRouteWarning:not([hidden])) #driverMapCanvas{
  inset-bottom:clamp(330px,49dvh,410px)
 }
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"]:has(#driverOffRouteWarning:not([hidden])) #drawer.drawer{
  height:clamp(330px,49dvh,410px)!important
 }
}
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
 .uv-app89.uv-driver-map-mode:has(#driverOffRouteWarning:not([hidden])) #driverMapCanvas{
  inset:0 min(47vw,400px) 0 0
 }
 .uv-app89.uv-driver-map-mode[data-panel="driver-guide"]:has(#driverOffRouteWarning:not([hidden])) #drawer.drawer{
  width:min(47vw,400px)!important;height:100dvh!important
 }
}


/* 8.15 — multilingual preferences */
.uv-app89 .profile-language-card{
 display:grid;gap:7px;margin:14px 0;padding:13px 14px;border:1px solid var(--line);
 border-radius:14px;background:#fafbf8
}
.uv-app89 .profile-language-card label{
 font-family:'Bricolage Grotesque',Inter,sans-serif;font-size:13px;font-weight:750;color:var(--ink)
}
.uv-app89 .profile-language-card select{
 width:100%;min-height:44px;padding:9px 36px 9px 11px;border:1px solid var(--line);
 border-radius:11px;background:#fff;color:var(--ink);font:600 14px/1.2 Inter,sans-serif
}
.uv-app89 .profile-language-card p{margin:0;font-size:11px;line-height:1.4}
