:root {
  color-scheme:dark;
  --koa-yellow:#ffdd00;
  --koa-red:#d7192d;
  --koa-black:#151515;
  --bg:#07101b;
  --panel:#101a28;
  --panel-2:#172538;
  --panel-glass:rgba(10,20,33,.94);
  --line:#2d4058;
  --line-strong:#51677f;
  --text:#f7f9fc;
  --muted:#b5c0ce;
  --faint:#7d8da1;
  --accent:#ffdd00;
  --accent-strong:#f2c500;
  --green:#60b84f;
  --orange:#ef6b31;
  --danger:#fb7185;
  --nav-blue:#079ee8;
  --nav-blue-dark:#004f7c;
  --shadow:0 22px 70px rgba(0,0,0,.45);
  --font:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"Cascadia Code","SFMono-Regular",Consolas,monospace;
}

html[data-skin="technical"] {
  color-scheme:light;
  --bg:#e9e8e2;
  --panel:#fff;
  --panel-2:#f4f2eb;
  --panel-glass:rgba(255,255,255,.95);
  --line:#d4d0c5;
  --line-strong:#979184;
  --text:#171717;
  --muted:#5f5b54;
  --faint:#7e786d;
  --accent:#c91f2c;
  --accent-strong:#a71620;
  --green:#337c3d;
  --orange:#c54b24;
  --danger:#b91c1c;
  --shadow:0 20px 55px rgba(36,51,66,.22);
}

html[data-skin="heritage"] {
  color-scheme:light;
  --bg:#d8cebd;
  --panel:#f4efe6;
  --panel-2:#e9e0d1;
  --panel-glass:rgba(244,239,230,.95);
  --line:#c8bca8;
  --line-strong:#948670;
  --text:#29281f;
  --muted:#665f51;
  --faint:#837865;
  --accent:#a9232c;
  --accent-strong:#861c23;
  --green:#53734b;
  --orange:#b36b29;
  --danger:#a43f3f;
  --shadow:0 20px 55px rgba(69,58,42,.25);
}

* { box-sizing:border-box; }
html { min-width:320px; height:100%; background:var(--bg); }
body { height:100%; margin:0; overflow:hidden; background:var(--bg); color:var(--text); font-family:var(--font); }
button,input,select { font:inherit; }
button,select { cursor:pointer; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible { outline:3px solid color-mix(in srgb,var(--nav-blue) 70%,white); outline-offset:3px; }
button:disabled { cursor:not-allowed; opacity:.55; }
[hidden] { display:none!important; }
.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; }
.skip-link { position:fixed; z-index:300; top:8px; left:8px; min-height:44px; padding:11px 15px; border-radius:9px; background:var(--koa-yellow); color:var(--koa-black); font-weight:900; text-decoration:none; transform:translateY(-150%); }
.skip-link:focus { transform:none; }

.app-shell { display:grid; grid-template-rows:74px minmax(0,1fr); width:100%; max-width:100vw; height:100%; min-width:0; }
.app-header { position:relative; z-index:50; display:grid; grid-template-columns:minmax(260px,1fr) auto minmax(260px,1fr); align-items:center; gap:24px; min-width:0; padding:8px clamp(14px,2.4vw,36px); border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--panel) 97%,transparent); box-shadow:0 8px 28px rgba(0,0,0,.2); backdrop-filter:blur(18px); }
.app-header::after { position:absolute; right:0; bottom:-1px; left:0; height:4px; background:linear-gradient(90deg,var(--koa-red) 0 31%,var(--koa-yellow) 31% 100%); content:""; }
.koa-brand { display:flex; width:max-content; min-width:0; align-items:center; gap:11px; color:var(--text); text-decoration:none; }
.koa-logo { width:56px; height:56px; flex:0 0 auto; object-fit:contain; filter:drop-shadow(0 4px 7px rgba(0,0,0,.18)); }
.koa-wordmark { display:grid; gap:4px; line-height:1; }
.koa-wordmark small { color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.koa-wordmark strong { font-size:20px; font-weight:950; letter-spacing:-.035em; }
.park-lockup { display:flex; align-items:center; justify-self:center; gap:11px; text-align:left; }
.park-lockup > span:last-child { display:grid; gap:3px; }
.park-lockup small { color:var(--muted); font:750 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.park-lockup strong { font-size:13px; }
.live-dot { width:9px; height:9px; border-radius:50%; background:var(--green); box-shadow:0 0 0 5px color-mix(in srgb,var(--green) 13%,transparent),0 0 15px var(--green); animation:pulse 2s infinite; }
.header-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.park-link,.partner-link,.install-button,.planner-button { min-height:44px; border:1px solid var(--line); border-radius:10px; background:var(--panel-2); color:var(--text); font-size:12px; font-weight:850; text-decoration:none; }
.park-link { display:flex; align-items:center; justify-content:center; padding:0 13px; border-color:var(--koa-red); background:var(--koa-red); color:#fff; }
.park-link:hover { background:#b61123; }
.partner-link { display:grid; align-content:center; padding:0 13px; line-height:1.05; }
.partner-link small { color:var(--muted); font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.partner-link strong { margin-top:3px; font-size:12px; }
.install-button { padding:0 14px; border-color:var(--koa-red); color:var(--koa-red); background:color-mix(in srgb,var(--koa-red) 5%,var(--panel)); }
.planner-button { display:flex; align-items:center; gap:8px; padding:0 15px; border-color:#c5a600; background:linear-gradient(120deg,var(--koa-yellow),#f3c900); color:var(--koa-black); box-shadow:0 7px 20px rgba(215,25,45,.14); }
.planner-button svg { width:18px; fill:none; stroke:currentColor; stroke-width:1.8; }

.navigator,.map-workspace { width:100%; max-width:100vw; min-width:0; min-height:0; }
.map-workspace { position:relative; display:grid; grid-template-rows:78px minmax(0,1fr) 50px; height:100%; background:var(--bg); }
.destination-picker { position:relative; z-index:12; display:grid; grid-template-columns:minmax(190px,.72fr) minmax(220px,1.2fr) minmax(200px,.78fr) auto; align-items:center; gap:11px; padding:10px clamp(14px,2vw,28px); border-bottom:1px solid var(--line); background:var(--panel); box-shadow:0 10px 28px rgba(0,0,0,.18); }
.destination-copy { display:grid; gap:3px; min-width:0; }
.destination-copy small { color:var(--accent); font:800 10px var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.destination-copy strong { overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.site-search-block,.site-search-wrap,.site-select-wrap { position:relative; min-width:0; }
.site-search-wrap { display:block; }
.site-search-wrap svg { position:absolute; z-index:1; top:50%; left:14px; width:19px; fill:none; stroke:var(--muted); stroke-width:1.8; transform:translateY(-50%); pointer-events:none; }
.site-search,.site-select-wrap select { width:100%; min-width:0; height:48px; border:1px solid var(--line); border-radius:10px; outline:0; background:var(--panel-2); color:var(--text); font-size:14px; font-weight:700; }
.site-search { padding:0 13px 0 43px; }
.site-select-wrap select { padding:0 36px 0 13px; }
.site-search:focus,.site-select-wrap select:focus { border-color:var(--nav-blue); box-shadow:0 0 0 3px color-mix(in srgb,var(--nav-blue) 15%,transparent); }
.site-search-results { position:absolute; z-index:70; top:calc(100% + 7px); right:0; left:0; max-height:280px; overflow:auto; border:1px solid var(--line-strong); border-radius:11px; padding:6px; background:var(--panel); box-shadow:var(--shadow); }
.site-search-results [role="option"] { display:grid; width:100%; min-height:46px; gap:3px; border:0; border-radius:8px; padding:10px 12px; background:transparent; color:var(--text); font-size:13px; text-align:left; }
.site-search-results [role="option"] strong { font-size:13px; }
.site-search-results [role="option"] span,.empty-search { color:var(--muted); font-size:11px; }
.empty-search { margin:0; padding:12px; }
.site-search-results [role="option"]:hover,.site-search-results [role="option"][aria-selected="true"] { background:var(--panel-2); }
.picker-route-button { display:flex; min-width:130px; height:48px; align-items:center; justify-content:center; gap:9px; border:1px solid #c5a600; border-radius:10px; padding:0 16px; background:linear-gradient(120deg,var(--koa-yellow),#f3c900); box-shadow:0 8px 25px rgba(215,25,45,.13); color:var(--koa-black); font-size:13px; font-weight:900; }
.picker-route-button svg { width:18px; fill:none; stroke:currentColor; stroke-width:2; }

.map-frame { position:relative; min-width:0; min-height:0; overflow:hidden; background:#06101b; isolation:isolate; touch-action:none; }
.map-frame::before { position:absolute; z-index:0; inset:0; background:radial-gradient(circle at 55% 55%,rgba(10,60,65,.14),transparent 50%),linear-gradient(rgba(8,17,28,.82),rgba(5,10,18,.96)); content:""; }
.travel-map { position:absolute; z-index:2; inset:0; overflow:hidden; background:#d8e5e9; opacity:0; transition:opacity .25s ease; pointer-events:none; }
.map-frame[data-travel-mode="true"] .travel-map { opacity:1; pointer-events:auto; }
.road-map { position:absolute; inset:0; }
.map-frame[data-travel-mode="true"] .vector-map { opacity:0; pointer-events:none; }
.map-frame[data-travel-mode="true"] .route-console,.map-frame[data-travel-mode="true"] .map-actions,.map-frame[data-travel-mode="true"] .map-view-switcher,.map-frame[data-travel-mode="true"] .skin-switcher,.map-frame[data-travel-mode="true"] .speed-limit-badge,.map-frame[data-travel-mode="true"] .scale-bar,.map-frame[data-travel-mode="true"] .aerial-context-note { display:none; }
.travel-map-status { position:absolute; z-index:5; top:50%; left:50%; display:flex; width:min(330px,calc(100% - 36px)); align-items:center; gap:12px; border:1px solid rgba(15,23,42,.16); border-radius:13px; padding:13px 15px; background:rgba(255,255,255,.94); box-shadow:0 16px 45px rgba(15,23,42,.2); color:#172033; transform:translate(-50%,-50%); }
.travel-map-status > span:last-child { display:grid; gap:3px; }
.travel-map-status strong { font-size:13px; }
.travel-map-status small { color:#596579; font-size:10px; line-height:1.35; }
.travel-map-status[data-status="ready"] { display:none; }
.travel-map-status[data-status="unavailable"] .travel-map-spinner { animation:none; border-color:var(--koa-red); }
.travel-map-status[data-status="unavailable"] .travel-map-spinner::after { content:"!"; }
.travel-map-spinner { display:grid; width:34px; height:34px; flex:0 0 auto; place-items:center; border:4px solid #bdd2dc; border-top-color:var(--nav-blue); border-radius:50%; animation:travel-spin .85s linear infinite; }
.travel-tools { position:absolute; z-index:7; top:18px; right:18px; display:flex; gap:7px; }
.travel-tools button { display:flex; min-height:46px; align-items:center; gap:7px; border:1px solid rgba(15,23,42,.18); border-radius:11px; padding:0 13px; background:rgba(255,255,255,.94); box-shadow:0 8px 26px rgba(15,23,42,.19); color:#172033; font-size:11px; font-weight:850; }
.travel-tools button > span { font-size:17px; }
.travel-tools button[data-voice-toggle][aria-pressed="false"] { color:#687386; }
.travel-speed { position:absolute; z-index:7; top:18px; left:18px; display:grid; width:68px; height:68px; place-items:center; align-content:center; border:3px solid #182131; border-radius:50%; background:rgba(255,255,255,.95); box-shadow:0 8px 26px rgba(15,23,42,.2); color:#172033; line-height:1; }
.travel-speed strong { font-size:25px; letter-spacing:-.04em; }
.travel-speed small { margin-top:3px; font-size:8px; font-weight:900; }
.travel-vehicle-marker { display:grid; width:52px; height:52px; place-items:center; border:4px solid #fff; border-radius:50%; background:var(--nav-blue); box-shadow:0 4px 18px rgba(0,50,86,.42); }
.travel-vehicle-marker span { width:27px; height:31px; background:#fff; clip-path:polygon(50% 0,94% 100%,50% 78%,6% 100%); filter:drop-shadow(0 1px 1px rgba(0,0,0,.3)); transform:rotate(var(--vehicle-bearing,0deg)); }
.travel-destination-marker { display:grid; justify-items:center; filter:drop-shadow(0 5px 8px rgba(0,0,0,.28)); }
.travel-destination-marker img { width:46px; height:46px; object-fit:contain; }
.travel-destination-marker span { margin-top:2px; border:2px solid #151515; border-radius:6px; padding:4px 7px; background:var(--koa-yellow); color:#151515; font-size:9px; font-weight:950; text-transform:uppercase; white-space:nowrap; }
.travel-map .maplibregl-ctrl-bottom-left,.travel-map .maplibregl-ctrl-bottom-right { bottom:108px; }
.travel-map .maplibregl-ctrl-attrib { color:#293347; font-size:9px; }
.app-shell[data-navigation-state="public-road"] .map-workspace,.app-shell[data-navigation-state="approaching-entrance"] .map-workspace { grid-template-rows:minmax(0,1fr); }
.app-shell[data-navigation-state="public-road"] .destination-picker,.app-shell[data-navigation-state="approaching-entrance"] .destination-picker,.app-shell[data-navigation-state="public-road"] .map-footer,.app-shell[data-navigation-state="approaching-entrance"] .map-footer { display:none; }
.vector-map { position:absolute; z-index:1; top:0; left:50%; display:block; width:auto; min-width:100%; height:100%; translate:-50% 0; transform:translate3d(var(--map-x,0),var(--map-y,0),0) scale(var(--map-scale,1)); transform-origin:center; transition:transform .2s ease; user-select:none; }
.map-frame.dragging .vector-map { transition:none; }
.map-image-layer image { filter:brightness(.5) saturate(.72) contrast(1.13); transition:filter .25s ease,opacity .25s ease; }
.map-plan-base { opacity:0; }
.map-plan-detail { opacity:1; }
.map-aerial-layer { opacity:0; }
.map-tone { fill:rgba(2,10,18,.25); transition:fill .25s ease; }
.map-grid { fill:transparent; stroke:rgba(34,211,238,.075); stroke-width:1; opacity:.72; }
html[data-skin="technical"] .map-image-layer image { filter:none; }
html[data-skin="technical"] .map-tone { fill:rgba(255,255,255,.04); }
html[data-skin="technical"] .map-grid { stroke:rgba(15,23,42,.06); }
html[data-skin="heritage"] .map-image-layer image { filter:sepia(.4) saturate(.68) contrast(.96) brightness(.97); }
html[data-skin="heritage"] .map-tone { fill:rgba(104,78,35,.08); }
html[data-skin="heritage"] .map-grid { stroke:rgba(70,54,34,.09); }
.map-frame[data-map-layer="full"] .map-plan-base,.map-frame[data-map-layer="full"] .map-plan-detail { opacity:1; }
.map-frame[data-map-layer="aerial"] .map-plan-base,.map-frame[data-map-layer="aerial"] .map-plan-detail { opacity:0; }
.map-frame[data-map-layer="aerial"] .map-aerial-layer { opacity:1; }
.map-frame[data-map-layer="aerial"] .map-grid { opacity:.18; }
.map-frame[data-map-layer="aerial"] [data-site-layer],.map-frame[data-map-layer="aerial"] .route-layer,.map-frame[data-map-layer="aerial"] .gate-marker,.map-frame[data-map-layer="aerial"] .checkin-marker,.map-frame[data-map-layer="aerial"] .vehicle-marker,.map-frame[data-map-layer="aerial"] .destination-pin,.map-frame[data-map-layer="aerial"] .route-console,.map-frame[data-map-layer="aerial"] .guidance-panel,.map-frame[data-map-layer="aerial"] .speed-limit-badge,.map-frame[data-map-layer="aerial"] .skin-switcher,.map-frame[data-map-layer="aerial"] .scale-bar { opacity:0; pointer-events:none; }
.aerial-context { opacity:0; transition:opacity .25s ease; pointer-events:none; }
.map-frame[data-map-layer="aerial"] .aerial-context { opacity:1; }
.aerial-marker circle { fill:var(--koa-yellow); stroke:var(--koa-black); stroke-width:4; }
.aerial-marker > path { fill:var(--koa-red); stroke:#fff; stroke-width:2.5; }
.aerial-marker rect { fill:rgba(255,255,255,.95); stroke:var(--koa-black); stroke-width:1.5; }
.aerial-marker text { fill:var(--koa-black); font:900 9px var(--mono); text-anchor:middle; }
.aerial-context-note { position:absolute; z-index:8; bottom:24px; left:20px; display:grid; width:min(370px,calc(100% - 96px)); gap:4px; border:1px solid #c5a600; border-radius:12px; padding:14px 16px; background:rgba(255,255,255,.96); box-shadow:var(--shadow); color:var(--koa-black); opacity:0; transform:translateY(8px); transition:opacity .2s ease,transform .2s ease; pointer-events:none; }
.aerial-context-note small { color:var(--koa-red); font:850 10px var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.aerial-context-note strong { font-size:15px; }
.aerial-context-note span { color:#5e5a50; font-size:12px; line-height:1.45; }
.map-frame[data-map-layer="aerial"] .aerial-context-note { opacity:1; transform:none; }

[data-road-layer] { display:none; }
.site-pad { fill:transparent!important; stroke:transparent; stroke-width:2; transition:fill .15s,stroke .15s; }
.site-hit { cursor:pointer; fill:transparent; stroke:transparent; stroke-width:4; }
.site-marker-group:has(.site-hit:hover) .site-pad,.site-marker-group:focus-within .site-pad { fill:color-mix(in srgb,var(--nav-blue) 30%,transparent)!important; stroke:var(--nav-blue); stroke-width:3; }
.site-hit:focus-visible { outline:none; stroke:#fff; }
.site-pad.selected,.site-marker-group:has(.site-hit.selected) .site-pad { fill:color-mix(in srgb,var(--nav-blue) 72%,transparent)!important; stroke:#fff; stroke-width:4; filter:drop-shadow(0 0 9px var(--nav-blue)); }
.site-label { display:none; }
.route-layer path { fill:none; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.route-layer [data-route-shadow] { stroke:rgba(2,8,16,.88); stroke-width:22; }
.route-layer [data-route-path] { stroke:var(--nav-blue); stroke-width:9; filter:url(#route-glow); animation:route-flow 1.25s linear infinite,route-in .8s ease both; }
.map-frame[data-map-layer="navigation"] .route-layer [data-route-shadow] { stroke:var(--nav-blue-dark); stroke-width:10; }
.map-frame[data-map-layer="navigation"] .route-layer [data-route-path] { stroke-width:5; }
#route-arrow path { fill:var(--nav-blue); }
.gate-marker circle { fill:var(--panel); stroke:var(--green); stroke-width:5; }
.gate-marker path { stroke:var(--green); stroke-width:4; }
.gate-marker rect { fill:var(--panel-glass); stroke:var(--green); stroke-width:1; }
.gate-marker text { fill:var(--text); font:800 10px var(--mono); text-anchor:middle; }
.checkin-marker circle { fill:var(--koa-yellow); stroke:var(--koa-black); stroke-width:3; }
.checkin-marker > text:not(.checkin-label) { fill:var(--koa-black); font:950 17px var(--font); text-anchor:middle; }
.checkin-marker rect { fill:rgba(255,255,255,.96); stroke:var(--koa-black); stroke-width:1.5; }
.checkin-marker .checkin-label { fill:var(--koa-black); font:900 9px var(--mono); text-anchor:middle; }
.vehicle-marker { display:none; filter:drop-shadow(0 4px 8px rgba(0,0,0,.55)); }
.vehicle-marker circle { fill:var(--nav-blue); stroke:#fff; stroke-width:4; }
.vehicle-marker path { fill:var(--nav-blue); stroke:#fff; stroke-width:3; }
.destination-pin > path { fill:var(--nav-blue); stroke:#fff; stroke-width:4; }
.destination-pin circle { fill:#fff; }
.destination-pin text { fill:#073552; font:900 12px var(--mono); text-anchor:middle; }
.destination-pin.is-hidden { display:none; }

.route-console { position:absolute; z-index:6; top:20px; left:20px; display:grid; width:280px; gap:8px; }
.console-card { display:flex; min-height:62px; align-items:center; gap:11px; padding:10px 12px; border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line)); border-radius:11px; background:var(--panel-glass); box-shadow:0 10px 30px rgba(0,0,0,.25); backdrop-filter:blur(15px); }
.console-card > span:last-child { display:grid; min-width:0; gap:3px; }
.console-card small { color:var(--muted); font:750 10px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.console-card strong { overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.console-card strong i { color:var(--accent); font-style:normal; }
.console-card strong b { font-weight:900; }
.console-card em { display:block; overflow:hidden; color:var(--muted); font-size:11px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.console-card em b { font-weight:750; }
.console-icon { display:grid!important; width:38px; height:38px; flex:0 0 auto; place-items:center; border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line)); border-radius:9px; background:color-mix(in srgb,var(--accent) 8%,var(--panel)); color:var(--accent); }
.console-icon svg { width:21px; fill:none; stroke:currentColor; stroke-width:1.8; }
.clearance-card { border-color:color-mix(in srgb,var(--green) 34%,var(--line)); }
.clearance-card .console-icon,.clearance-card strong { color:var(--green); }
.clearance-card.warning { border-color:color-mix(in srgb,var(--danger) 50%,var(--line)); }
.clearance-card.warning .console-icon,.clearance-card.warning strong { color:var(--danger); }

.map-actions { position:absolute; z-index:9; top:20px; right:20px; display:grid; gap:4px; padding:5px; border:1px solid var(--line); border-radius:12px; background:var(--panel-glass); box-shadow:var(--shadow); backdrop-filter:blur(15px); }
.map-actions button { display:grid; width:44px; height:44px; place-items:center; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--text); font-size:24px; font-weight:750; }
.map-actions button:hover { border-color:var(--line); background:var(--panel-2); color:var(--nav-blue); }
.map-actions svg { width:22px; fill:none; stroke:currentColor; stroke-width:1.8; }
.map-actions button + button { border-top-color:var(--line); border-radius:5px; }
.map-view-switcher { position:absolute; z-index:9; top:20px; right:82px; display:flex; gap:3px; padding:4px; border:1px solid var(--line); border-radius:11px; background:var(--panel-glass); box-shadow:var(--shadow); backdrop-filter:blur(15px); }
.map-view-switcher button { min-height:44px; border:1px solid transparent; border-radius:8px; padding:0 13px; background:transparent; color:var(--muted); font-size:12px; font-weight:850; }
.map-view-switcher button:hover { color:var(--text); background:var(--panel-2); }
.map-view-switcher button.active { border-color:color-mix(in srgb,var(--nav-blue) 65%,var(--line)); background:var(--nav-blue); color:#fff; box-shadow:0 4px 14px color-mix(in srgb,var(--nav-blue) 30%,transparent); }

.guidance-panel { position:absolute; z-index:8; bottom:118px; left:20px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; width:min(560px,calc(100% - 420px)); min-width:390px; align-items:center; gap:13px; padding:13px 15px; border:1px solid color-mix(in srgb,var(--nav-blue) 55%,var(--line)); border-radius:13px; background:var(--panel-glass); box-shadow:var(--shadow); backdrop-filter:blur(16px); }
.maneuver-arrow { display:grid; width:50px; height:50px; flex:0 0 auto; place-items:center; border:1px solid #007eb9; border-radius:11px; background:var(--nav-blue); color:#fff; font-size:32px; font-weight:900; }
.guidance-copy { display:grid; min-width:0; gap:3px; }
.guidance-copy > small { color:var(--nav-blue); font:800 10px var(--mono); letter-spacing:.07em; text-transform:uppercase; }
.guidance-copy strong { overflow:hidden; font-size:18px; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }
.guidance-copy em { overflow:hidden; color:var(--muted); font-size:12px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.guidance-status { display:grid; max-width:135px; gap:3px; padding-left:13px; border-left:1px solid var(--line); text-align:right; }
.guidance-status b { color:var(--green); font-size:11px; }
.guidance-status small { color:var(--muted); font-size:10px; line-height:1.25; }

.speed-limit-badge { position:absolute; z-index:8; right:20px; bottom:124px; display:grid; width:68px; height:84px; place-items:center; align-content:center; border:4px solid var(--koa-red); border-radius:13px; background:#fff; box-shadow:var(--shadow); color:#111; line-height:1; text-align:center; }
.speed-limit-badge small { font-size:9px; font-weight:900; text-transform:uppercase; }
.speed-limit-badge strong { margin:2px 0; font-size:34px; letter-spacing:-.06em; }
.speed-limit-badge span { font-size:9px; font-weight:900; }
.connection-status { position:absolute; z-index:7; right:100px; bottom:130px; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.status-pill { display:flex; min-height:32px; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px; padding:6px 10px; background:var(--panel-glass); box-shadow:0 8px 24px rgba(0,0,0,.18); color:var(--muted); backdrop-filter:blur(12px); }
.status-pill i { width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:var(--green); }
.status-pill b { font-size:10px; font-weight:800; }

.skin-switcher { position:absolute; z-index:7; top:210px; right:82px; display:grid; grid-template-columns:repeat(3,1fr); width:300px; gap:4px; padding:5px; border:1px solid var(--line); border-radius:11px; background:var(--panel-glass); box-shadow:var(--shadow); backdrop-filter:blur(15px); }
.skin-switcher button { display:flex; min-width:0; min-height:44px; align-items:center; justify-content:center; gap:6px; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--muted); text-align:left; }
.skin-switcher button:hover,.skin-switcher button.active { border-color:#c5a600; background:color-mix(in srgb,var(--koa-yellow) 20%,var(--panel)); color:var(--text); }
.skin-switcher i { width:23px; height:25px; border:1px solid var(--line-strong); border-radius:4px; background:linear-gradient(145deg,#061421,#0e4050); }
.skin-switcher button:nth-child(2) i { background:linear-gradient(145deg,#f8fafc,#dbe6ed); }
.skin-switcher button:nth-child(3) i { background:linear-gradient(145deg,#e7ddca,#b6aa90); }
.skin-switcher span { display:grid; font-size:10px; font-weight:850; }
.skin-switcher small { color:var(--faint); font-size:9px; font-weight:650; }

.navigation-sheet { position:absolute; z-index:10; right:100px; bottom:18px; left:20px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; min-width:0; min-height:86px; border:1px solid var(--line-strong); border-radius:15px; padding:13px 14px; background:var(--panel-glass); box-shadow:var(--shadow); backdrop-filter:blur(18px); }
.sheet-handle { display:none; }
.sheet-trip { display:grid; grid-template-columns:minmax(150px,1fr) auto auto; align-items:center; gap:22px; min-width:0; }
.sheet-destination { display:grid; min-width:0; gap:3px; }
.sheet-destination small,.sheet-metric small { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.sheet-destination strong { overflow:hidden; font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.sheet-metric { display:grid; min-width:62px; gap:2px; padding-left:15px; border-left:1px solid var(--line); }
.sheet-metric strong { font-size:16px; }
.sheet-actions { display:flex; min-width:0; align-items:center; gap:8px; }
.sheet-actions button { min-height:52px; border-radius:10px; padding:0 17px; font-size:13px; font-weight:900; }
.sheet-secondary { border:1px solid var(--line-strong); background:var(--panel-2); color:var(--text); }
.sheet-primary { display:flex; min-width:170px; align-items:center; justify-content:center; gap:9px; border:1px solid #007eb9; background:var(--nav-blue); box-shadow:0 8px 24px color-mix(in srgb,var(--nav-blue) 30%,transparent); color:#fff; }
.sheet-primary svg { width:20px; fill:#fff; stroke:#fff; stroke-width:1; }
.sheet-primary.continue { background:var(--green); border-color:color-mix(in srgb,var(--green) 70%,black); }
.sheet-danger { border:1px solid color-mix(in srgb,var(--danger) 60%,var(--line)); background:color-mix(in srgb,var(--danger) 12%,var(--panel)); color:var(--danger); }

.registration-stop { position:absolute; z-index:18; right:50%; bottom:118px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; width:min(720px,calc(100% - 36px)); align-items:center; gap:14px; border:2px solid var(--koa-yellow); border-radius:14px; padding:14px; background:var(--panel); box-shadow:var(--shadow); transform:translateX(50%); }
.registration-icon { display:grid; width:50px; height:50px; place-items:center; border-radius:10px; background:var(--koa-yellow); color:var(--koa-black); font-size:27px; font-weight:950; }
.registration-stop div { display:grid; gap:2px; }
.registration-stop small { color:var(--koa-red); font:850 10px var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.registration-stop strong { font-size:16px; }
.registration-stop p { margin:0; color:var(--muted); font-size:11px; }
.registration-stop button { min-height:48px; border:1px solid #c5a600; border-radius:10px; padding:0 15px; background:var(--koa-yellow); color:var(--koa-black); font-size:12px; font-weight:900; }
.scale-bar { position:absolute; z-index:4; right:20px; bottom:220px; color:var(--muted); font:750 10px var(--mono); text-align:right; }
.scale-bar span { display:block; width:112px; height:7px; margin-left:auto; border:solid var(--muted); border-width:0 1px 1px; }

.map-footer { position:relative; z-index:10; display:grid; grid-template-columns:1fr minmax(300px,1.4fr) 1fr; align-items:center; gap:20px; padding:8px clamp(14px,2vw,28px); border-top:1px solid var(--line); background:var(--panel); }
.map-footer p { display:grid; margin:0; color:var(--muted); font-size:10px; }
.map-footer strong { color:var(--text); font-size:12px; }
.map-footer .map-notice { display:block; text-align:center; line-height:1.4; }
.map-footer p:last-child { justify-items:end; }
.map-footer .footer-park { display:flex; align-items:center; gap:9px; }
.footer-park > img { width:34px; height:34px; object-fit:contain; }
.footer-park > span { display:grid; gap:2px; }
.footer-status { display:flex; align-items:center; gap:7px; color:var(--green); font-size:10px; font-weight:850; text-transform:uppercase; }
.footer-status i { width:8px; height:8px; border-radius:50%; background:var(--green); }

.control-panel { position:absolute; z-index:40; top:0; bottom:0; left:0; display:flex; width:min(430px,calc(100% - 24px)); flex-direction:column; border-right:1px solid var(--line-strong); background:color-mix(in srgb,var(--panel) 98%,transparent); box-shadow:var(--shadow); transform:translateX(-105%); transition:transform .24s ease; }
.control-panel.open { transform:none; }
.control-panel > header { display:flex; min-height:76px; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line); background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 9%,var(--panel)),var(--panel)); }
.control-panel > header > span { display:grid; gap:3px; }
.control-panel > header > .planner-brand { display:flex; align-items:center; gap:10px; }
.planner-brand > img { width:42px; height:42px; object-fit:contain; }
.planner-brand > span { display:grid; gap:3px; }
.control-panel > header small { color:var(--accent); font:800 10px var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.control-panel > header strong { font-size:20px; }
.control-panel > header button,.navigation-drawer header button { display:grid; width:44px; height:44px; flex:0 0 auto; place-items:center; border:1px solid var(--line); border-radius:10px; background:var(--panel-2); color:var(--text); font-size:25px; }
.planner-scroll { overflow:auto; overscroll-behavior:contain; }
.control-section { padding:20px; border-bottom:1px solid var(--line); }
.section-label { display:flex; align-items:center; gap:11px; margin-bottom:15px; }
.section-label > span { display:grid; width:34px; height:34px; flex:0 0 auto; place-items:center; border:1px solid var(--line-strong); border-radius:8px; color:var(--accent); font:800 12px var(--mono); }
.section-label div { display:grid; }
.section-label b { font-size:14px; }
.section-label small { margin-top:3px; color:var(--faint); font-size:11px; }
.site-facts { display:grid; grid-template-columns:1.1fr 1fr .8fr; gap:8px; }
.site-facts span { min-width:0; padding:11px; border:1px solid var(--line); border-radius:9px; background:var(--panel-2); }
.site-facts small,.site-facts b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.site-facts small { margin-bottom:4px; color:var(--faint); font-size:9px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.site-facts b { font-size:12px; }
.location-button { display:flex; width:100%; min-height:58px; align-items:center; gap:12px; border:1px solid color-mix(in srgb,var(--nav-blue) 45%,var(--line)); border-radius:11px; padding:10px 13px; background:color-mix(in srgb,var(--nav-blue) 7%,var(--panel)); color:var(--text); text-align:left; }
.location-button + .location-button { margin-top:8px; }
.location-button:hover,.location-button.active { background:color-mix(in srgb,var(--nav-blue) 14%,var(--panel)); }
.location-button svg { width:25px; flex:0 0 auto; fill:none; stroke:var(--nav-blue); stroke-width:1.8; }
.location-button > span { display:grid; gap:3px; }
.location-button b { font-size:13px; }
.location-button small { color:var(--muted); font-size:11px; }
.entrance-button { border-color:var(--line); background:var(--panel-2); }
.entrance-button svg { stroke:var(--green); }
.address-divider { display:flex; align-items:center; gap:9px; margin:14px 0; color:var(--faint); font-size:9px; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.address-divider::before,.address-divider::after { height:1px; flex:1; background:var(--line); content:""; }
.address-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.address-form input { min-width:0; height:48px; border:1px solid var(--line); border-radius:9px; padding:0 12px; outline:none; background:var(--panel-2); color:var(--text); font-size:13px; }
.address-form input:focus { border-color:var(--nav-blue); }
.address-form button { min-width:64px; border:0; border-radius:9px; padding:0 14px; background:var(--line-strong); color:var(--text); font-size:12px; font-weight:850; }
.rig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.rig-grid label { display:grid; gap:7px; color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.rig-grid label > span { position:relative; }
.rig-grid input { width:100%; height:48px; border:1px solid var(--line); border-radius:9px; padding:0 28px 0 10px; outline:none; background:var(--panel-2); color:var(--text); font:750 13px var(--mono); }
.rig-grid input:focus { border-color:var(--nav-blue); }
.rig-grid i { position:absolute; top:16px; right:9px; color:var(--faint); font:750 10px var(--mono); text-transform:none; }
.route-button { display:flex; width:calc(100% - 40px); min-height:58px; align-items:center; justify-content:space-between; gap:10px; margin:20px; border:1px solid #c5a600; border-radius:11px; padding:0 15px; background:linear-gradient(120deg,var(--koa-yellow),#f3c900); box-shadow:0 9px 25px rgba(215,25,45,.14); color:var(--koa-black); font-size:14px; font-weight:900; }
.route-button kbd { border:1px solid rgba(4,16,20,.2); border-radius:6px; padding:5px 7px; background:rgba(255,255,255,.28); font:750 9px var(--mono); }
.safety-note { margin:0 21px 22px; color:var(--faint); font-size:10px; line-height:1.55; }
.panel-scrim { position:fixed; z-index:35; inset:70px 0 0; background:rgba(0,0,0,.48); opacity:0; transition:opacity .2s; pointer-events:none; }
.panel-scrim.visible { opacity:1; pointer-events:auto; }

.navigation-drawer { position:absolute; z-index:38; top:18px; right:18px; display:flex; width:min(430px,calc(100% - 36px)); max-height:calc(100% - 36px); flex-direction:column; overflow:hidden; border:1px solid var(--line-strong); border-radius:15px; background:color-mix(in srgb,var(--panel) 98%,transparent); box-shadow:var(--shadow); backdrop-filter:blur(18px); }
.navigation-drawer > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:17px 18px 15px; border-bottom:1px solid var(--line); }
.navigation-drawer header small { color:var(--accent); font:800 10px var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.navigation-drawer h2 { margin:4px 0; font-size:20px; }
.navigation-drawer header p { margin:0; color:var(--muted); font-size:11px; }
.route-phase { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 18px; background:color-mix(in srgb,var(--nav-blue) 9%,var(--panel)); color:var(--nav-blue); font-size:12px; font-weight:850; }
.route-phase strong { font:750 12px var(--mono); }
.turn-list { margin:0; padding:8px 18px 8px 50px; overflow:auto; list-style:none; counter-reset:turn; }
.turn-list li { position:relative; min-height:58px; padding:12px 0 12px 4px; border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; line-height:1.45; }
.turn-list li::before { position:absolute; top:12px; left:-34px; display:grid; width:26px; height:26px; place-items:center; border:1px solid var(--line-strong); border-radius:50%; color:var(--accent); font:750 10px var(--mono); content:counter(turn); counter-increment:turn; }
.turn-list li strong { display:block; margin-bottom:3px; color:var(--text); font-size:13px; }
.turn-list li.checkpoint::before { border-color:var(--orange); color:var(--orange); content:"✓"; }
.turn-list li.internal::before { border-color:var(--green); color:var(--green); }
.drawer-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:13px 15px; border-top:1px solid var(--line); }
.drawer-actions button,.drawer-actions a { display:grid; min-height:44px; place-items:center; border:1px solid var(--line); border-radius:9px; padding:0 9px; background:var(--panel-2); color:var(--text); font-size:11px; font-weight:850; text-align:center; text-decoration:none; }
.drawer-actions a { grid-column:1/-1; border-color:color-mix(in srgb,var(--nav-blue) 50%,var(--line)); color:var(--nav-blue); }
.drawer-disclaimer { margin:0; padding:0 16px 14px; color:var(--faint); font-size:9px; line-height:1.5; }
.toast { position:fixed; z-index:120; right:18px; bottom:max(18px,env(safe-area-inset-bottom)); max-width:370px; padding:13px 16px; border:1px solid var(--line-strong); border-radius:10px; background:var(--panel); box-shadow:var(--shadow); color:var(--text); font-size:12px; font-weight:750; opacity:0; transform:translateY(15px); transition:.2s; pointer-events:none; }
.toast.visible { opacity:1; transform:none; }

@keyframes pulse { 50% { opacity:.48; } }
@keyframes route-flow { to { stroke-dashoffset:-32; } }
@keyframes route-in { from { stroke-dasharray:1 5000; } to { stroke-dasharray:5000 0; } }
@keyframes travel-spin { to { transform:rotate(360deg); } }

@media (max-width:1120px) {
  .park-link { display:none; }
  .destination-picker { grid-template-columns:minmax(170px,.65fr) minmax(190px,1fr) minmax(180px,.75fr) auto; }
  .route-console { width:245px; }
  .console-card { min-height:56px; }
  .guidance-panel { width:min(500px,calc(100% - 370px)); min-width:350px; }
  .skin-switcher { width:255px; }
  .skin-switcher i { display:none; }
  .sheet-trip { gap:13px; }
  .sheet-actions .sheet-secondary { display:none; }
}

@media (max-width:820px) {
  .app-shell { grid-template-rows:62px minmax(0,1fr); }
  .app-header { grid-template-columns:minmax(0,1fr) auto; gap:8px; min-height:62px; overflow:hidden; padding:5px 10px; }
  .park-lockup,.park-link,.partner-link,.install-button { display:none!important; }
  .koa-logo { width:50px; height:50px; }
  .koa-wordmark small { font-size:9px; }
  .koa-wordmark strong { font-size:17px; }
  .planner-button { width:46px; min-height:46px; justify-content:center; padding:0; }
  .planner-button span { display:none; }
  .planner-button svg { width:21px; }
  .koa-brand { max-width:calc(100% - 58px); }
  .header-actions { position:absolute; top:8px; right:10px; }
  .map-workspace { grid-template-rows:112px minmax(0,1fr); }
  .app-shell[data-navigation-state="public-road"] .map-workspace,.app-shell[data-navigation-state="approaching-entrance"] .map-workspace { grid-template-rows:minmax(0,1fr); }
  .destination-picker { grid-template-columns:minmax(0,1fr) 54px; grid-template-rows:48px 48px; gap:7px; padding:7px 9px 10px; }
  .destination-copy { display:none; }
  .site-search-block { grid-column:1; grid-row:1; }
  .site-select-wrap { grid-column:1; grid-row:2; }
  .site-search,.site-select-wrap select { height:48px; font-size:15px; }
  .picker-route-button { grid-column:2; grid-row:1/3; min-width:54px; height:100%; padding:0; }
  .picker-route-button span { display:none; }
  .picker-route-button svg { width:23px; }
  .map-footer { display:none; }
  .route-console { top:9px; left:9px; width:min(225px,calc(100% - 140px)); }
  .route-console .clearance-card,.route-console .eta-card { display:none; }
  .console-card { min-height:48px; padding:7px 9px; }
  .console-icon { width:34px!important; height:34px; }
  .console-card small { font-size:9px; }
  .console-card strong { font-size:12px; }
  .map-actions { top:9px; right:9px; }
  .map-actions button { width:44px; height:44px; }
  .map-view-switcher { top:65px; right:9px; flex-direction:column; }
  .map-view-switcher button { width:62px; min-height:44px; padding:0 5px; font-size:10px; }
  .skin-switcher { display:none; }
  .guidance-panel { top:65px; right:80px; bottom:auto; left:9px; width:auto; min-width:0; grid-template-columns:auto minmax(0,1fr); padding:10px 11px; }
  .maneuver-arrow { width:48px; height:48px; font-size:30px; }
  .guidance-copy > small { font-size:9px; }
  .guidance-copy strong { font-size:16px; white-space:normal; }
  .guidance-copy em { font-size:11px; white-space:normal; }
  .guidance-status { grid-column:1/-1; display:flex; max-width:none; justify-content:space-between; gap:8px; padding:7px 0 0; border-top:1px solid var(--line); border-left:0; text-align:left; }
  .speed-limit-badge { right:9px; bottom:172px; width:62px; height:76px; border-width:3px; }
  .speed-limit-badge strong { font-size:31px; }
  .connection-status { right:80px; bottom:174px; left:9px; justify-content:flex-start; }
  .status-pill { min-height:30px; padding:5px 9px; }
  .status-pill b { font-size:9px; }
  .navigation-sheet { right:9px; bottom:max(9px,env(safe-area-inset-bottom)); left:9px; width:auto; max-width:calc(100% - 18px); grid-template-columns:minmax(0,1fr); gap:11px; min-height:152px; border-radius:18px; padding:13px; }
  .sheet-handle { display:block; width:42px; height:5px; margin:-6px auto 0; border-radius:999px; background:var(--line-strong); }
  .sheet-trip { grid-template-columns:minmax(110px,1fr) minmax(46px,auto) minmax(54px,auto); gap:8px; min-width:0; }
  .sheet-trip > * { min-width:0; }
  .sheet-destination strong { font-size:17px; }
  .sheet-destination small,.sheet-metric small { font-size:9px; }
  .sheet-metric { min-width:53px; padding-left:9px; }
  .sheet-metric strong { font-size:14px; }
  .sheet-actions { display:grid; grid-template-columns:minmax(94px,.7fr) minmax(0,1.3fr); gap:8px; }
  .sheet-actions button { min-width:0; min-height:52px; padding:0 13px; }
  .sheet-secondary { display:block!important; }
  .sheet-primary { min-width:0; }
  .sheet-danger { grid-column:1; }
  .sheet-primary.continue { grid-column:2; }
  .registration-stop { right:9px; bottom:9px; left:9px; grid-template-columns:auto minmax(0,1fr); width:auto; transform:none; }
  .registration-stop button { grid-column:1/-1; width:100%; }
  .scale-bar { display:none; }
  .control-panel { position:fixed; top:62px; bottom:0; width:min(430px,calc(100% - 12px)); border-radius:0 16px 0 0; }
  .panel-scrim { inset:62px 0 0; }
  .navigation-drawer { position:fixed; top:auto; right:0; bottom:0; left:0; width:100%; max-height:82dvh; border-width:1px 0 0; border-radius:18px 18px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .toast { right:10px; bottom:max(10px,env(safe-area-inset-bottom)); left:10px; max-width:none; }
  .aerial-context-note { right:80px; bottom:170px; left:9px; width:auto; }
  .travel-tools { top:9px; right:9px; }
  .travel-tools button { width:46px; min-height:46px; justify-content:center; padding:0; }
  .travel-tools button b { display:none; }
  .travel-speed { top:9px; left:9px; width:58px; height:58px; }
  .travel-speed strong { font-size:22px; }
  .travel-map .maplibregl-ctrl-bottom-left { bottom:166px; }
  .travel-map .maplibregl-ctrl-bottom-right { bottom:166px; }
  .map-frame[data-travel-mode="true"] .guidance-panel { top:72px; right:9px; left:9px; }
  .map-frame[data-travel-mode="true"] .connection-status { display:none; }
  .app-shell[data-navigation-state="public-road"] .sheet-actions,.app-shell[data-navigation-state="approaching-entrance"] .sheet-actions { grid-template-columns:minmax(0,1fr) auto; }
  .app-shell[data-navigation-state="public-road"] .sheet-danger,.app-shell[data-navigation-state="approaching-entrance"] .sheet-danger { grid-column:2; min-width:76px; }
}

@media (max-width:430px) {
  .koa-wordmark small { font-size:8px; }
  .koa-wordmark strong { font-size:16px; }
  .route-console { width:min(205px,calc(100% - 130px)); }
  .console-icon { display:none!important; }
  .guidance-panel { right:73px; }
  .guidance-copy strong { font-size:15px; }
  .map-view-switcher button { width:55px; }
  .sheet-trip { gap:7px; }
  .sheet-destination strong { font-size:15px; }
  .sheet-metric { min-width:46px; padding-left:7px; }
  .sheet-metric strong { font-size:13px; }
  .sheet-actions .sheet-secondary { padding:0 10px; font-size:11px; }
  .sheet-primary { font-size:12px!important; }
  .connection-status .status-pill:first-child { display:none; }
  .rig-grid { gap:5px; }
  .site-facts { gap:5px; }
  .route-button { align-items:flex-start; flex-direction:column; justify-content:center; }
}

@media (max-height:690px) and (max-width:820px) {
  .map-frame:not([data-travel-mode="true"]) .guidance-panel { display:none; }
  .speed-limit-badge { bottom:146px; transform:scale(.88); transform-origin:right bottom; }
  .connection-status { bottom:151px; }
  .navigation-sheet { min-height:132px; padding-block:10px; }
  .sheet-actions button { min-height:46px; }
}

@media print {
  html { color-scheme:light; }
  body { height:auto; overflow:visible; background:#fff; color:#111; }
  .app-shell { display:block; height:auto; }
  .app-header,.destination-picker,.map-actions,.map-view-switcher,.skin-switcher,.connection-status,.speed-limit-badge,.navigation-sheet,.registration-stop,.scale-bar,.control-panel,.panel-scrim,.toast { display:none!important; }
  .map-workspace { display:block; }
  .map-frame { height:5.2in; border:1px solid #777; }
  .map-image-layer image { filter:none!important; }
  .map-tone,.map-grid { display:none; }
  .route-console { position:absolute; }
  .guidance-panel { bottom:10px; }
  .map-footer { display:flex; }
  .navigation-drawer { position:static!important; display:block!important; width:100%!important; max-height:none!important; border:0!important; box-shadow:none!important; background:#fff!important; color:#111!important; }
  .navigation-drawer header button,.drawer-actions,.drawer-disclaimer { display:none!important; }
  .turn-list { overflow:visible; }
  .turn-list li strong,.navigation-drawer h2 { color:#111; }
  .navigation-drawer header p,.turn-list li { color:#444; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
