/* RC-V15-INTEGRATE-02 bridge: only what v1.5 sources do not cover for our 05 markup (hidden-but-kept texts, our Calculate/Copy/result, Tools disclosure, a11y safeguards). */
.v15-keep{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html[data-theme] .v15-home #view .rcx-map-ui .rcx-eyebrow-ws{display:block;margin:0 0 3px;color:#d4633c}
html[data-theme] .v15-home .v15-actions{display:grid;grid-template-columns:1fr auto;gap:10px;margin:12px 0}
html[data-theme] .v15-home .v15-calc{min-height:52px;width:100%;border-radius:12px;font-size:16px}
html[data-theme] .v15-home .v15-copy{min-height:52px;padding:0 14px;border-radius:12px;font-weight:700}
html[data-theme] .v15-home .res .ws-stale{display:block;margin-top:4px;font-weight:700}
html[data-theme] .v15-home .res .ws-stale[hidden]{display:none}
html[data-theme] .v15-home .res.is-stale .big{outline:2px dashed currentColor;outline-offset:-6px}
html[data-theme] .v15-home .set .field input,html[data-theme] .v15-home .ab input{min-height:52px;font-size:16px}
html[data-theme] .v15-home .set .chip{min-height:44px}
html[data-theme] .v15-home .swap{min-width:44px;min-height:44px}
html[data-theme] .v15-home [data-result]{margin:8px 0 12px}
html[data-theme] .v15-home [data-result].is-stale{outline:2px dashed var(--t-warm);outline-offset:2px}
.rcx-bottom .rcx-more-btn,.rcx-bottom .rcx-off{font:inherit;background:none;border:0;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;cursor:pointer}
.rcx-bottom .rcx-off{cursor:default;opacity:1}
.rcx-bottom .rcx-off small{font-size:10px;line-height:1}
.rcx-more{position:fixed;left:8px;right:8px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:60;display:grid;gap:4px;padding:8px;border-radius:16px;background:var(--t-surface);border:1px solid var(--t-border);box-shadow:0 12px 32px #0003}
.rcx-more[hidden]{display:none}
.rcx-more a{min-height:44px;display:flex;align-items:center;padding:0 12px;border-radius:10px;color:var(--t-text);text-decoration:none;font-weight:600}
@media(min-width:1024px){.rcx-more,.rcx-bottom{display:none!important}}
html[data-theme] .rcx-appbar a:focus-visible,html[data-theme] .rcx-appbar button:focus-visible,html[data-theme] .rcx-bottom a:focus-visible,html[data-theme] .rcx-bottom button:focus-visible,html[data-theme] .rcx-more a:focus-visible,html[data-theme] .v15-home #view a:focus-visible,html[data-theme] .v15-home #view button:focus-visible,html[data-theme] .v15-home #view summary:focus-visible,html[data-theme] .v15-home #view input:focus-visible,html[data-theme] .v15-home #view select:focus-visible{outline:3px solid var(--t-action)!important;outline-offset:2px!important}
@media(prefers-reduced-motion:reduce){html[data-theme] .v15-home *,html[data-theme] .rcx-appbar *{transition:none!important;animation:none!important}}
html[data-theme] .v15-home #calc>[data-map-route][hidden]{display:none!important}
html[data-theme] .v15-home #calc>[data-result],html[data-theme] .v15-home #calc>[data-notice]{order:3}
html[data-theme] .v15-home #calc>.v15-actions{order:6}
html[data-theme] .rcx-bottom .rcx-more-btn,html[data-theme] .rcx-bottom .rcx-off{gap:3px;min-height:49px;border-radius:11px;color:var(--rcx-muted);font-size:.65rem;font-weight:760}
html[data-theme] .rcx-bottom .rcx-more-btn[aria-expanded=true]{color:var(--rcx-ink);background:var(--rcx-soft)}
/* Calculate = v1.5 .rcx-cta declarations (that class is display:none on mobile in v1.5) */
html[data-theme] .v15-home .v15-calc{display:flex;align-items:center;justify-content:center;white-space:nowrap;background:#142c45;border:0;color:#fff!important;border-radius:12px;padding:12px 17px;text-decoration:none;font-weight:760}
html[data-theme=dark] .v15-home .v15-calc{background:#ff6a3d;color:#0b1220!important}
html[data-theme] .v15-home #view .res .big strong{color:#fff}/* v1.5 paints this digit roll (lively.js .lv-roll) in white; we render the static number */
html[data-theme] .v15-home #view .rc-telemetry .rc-data strong{color:inherit}
html[data-theme] .v15-home .v15-copy{white-space:nowrap;font-size:.9rem}
@media(max-width:1023px){html[data-theme] .v15-home .v15-actions{grid-template-columns:1fr}}
/* ---- Design review -01 (REPORT e3250ce8…) fixes on top of literal v1.5 ---- */
/* B02 EPA group: single column, label above its select */
html[data-theme] .v15-home .set .row .epa-picker{grid-column:1/-1;border:0;padding:0;margin:0 0 8px;min-width:0}
html[data-theme] .v15-home .epa-row,html[data-theme] .epa-row{display:grid!important;grid-template-columns:1fr!important;gap:6px}
html[data-theme] .v15-home .epa-picker legend{font-size:14px;font-weight:700;margin-bottom:4px}
html[data-theme] .v15-home .epa-row select{min-height:52px;font-size:16px;border-radius:12px}
/* B03 meaningful text >= 14px (values 16px) */
html[data-theme] .v15-home #view .mini small,html[data-theme] .v15-home #view .res .big small,html[data-theme] .v15-home #rnote,html[data-theme] .v15-home .rcx-map-banner,html[data-theme] .v15-home .rcx-map-label span,html[data-theme] .v15-home .rcx-map-commands button,html[data-theme] .v15-home .set summary small,html[data-theme] .v15-home .set .field span,html[data-theme] .v15-home .prsrc,html[data-theme] .v15-home .v15-hint,html[data-theme] .v15-home .fineprint,html[data-theme] .v15-home .rc-telemetry label,html[data-theme] .v15-home .rc-telemetry p,html[data-theme] .v15-home .rc-telemetry .rc-pair,html[data-theme] .v15-home .field-err{font-size:14px!important;line-height:1.35}
html[data-theme] .v15-home [data-result] .caption,html[data-theme] .v15-home [data-result] .metric small,html[data-theme] .v15-home [data-result] .summary,html[data-theme] .v15-home [data-result] details summary,html[data-theme] .v15-home [data-result] .fineprint,html[data-theme] [data-result] .caption,html[data-theme] [data-result] .metric small,html[data-theme] [data-result] .summary,html[data-theme] [data-result] details summary,html[data-theme] [data-result] .fineprint{font-size:14px!important}
html[data-theme] .rcx-bottom a,html[data-theme] .rcx-bottom .rcx-off{font-size:14px;min-height:56px;line-height:1.1;gap:2px}
html[data-theme] .rcx-bottom .rcx-off small{font-size:14px;font-weight:600}
html[data-theme] .rcx-bottom svg{width:20px;height:20px}
/* B06 selected tab cue (>=3:1, distinct from 3px focus outline) */
html[data-theme] .rcx-bottom a[aria-current=page]{box-shadow:inset 0 3px 0 var(--rcx-ink);font-weight:800}
/* contrast fixes found by self-test: eyebrow and dark swap glyph */
html[data-theme] .v15-home #view .rcx-map-ui .rcx-eyebrow-ws{color:#b8461a}
html[data-theme=dark] .v15-home #view .rcx-map-ui .rcx-eyebrow-ws{color:#ff9a73}
html[data-theme=dark] .v15-home .swap{color:#152239}
/* B04 hint + B05 errors */
html[data-theme] .v15-home .v15-hint{margin:6px 0 8px;color:var(--rcx-muted)}
html[data-theme] .v15-home .v15-hint b{color:var(--rcx-ink)}
html[data-theme] .field-err{margin:4px 0 8px;color:var(--t-error);font-weight:700;font-size:14px}
html[data-theme] [aria-invalid=true]{outline:2px solid var(--t-error)!important;outline-offset:1px}
html[data-theme] .v15-home .set .field:has([aria-invalid=true]){border-color:var(--t-error)}
html[data-theme] .v15-home [aria-invalid=true]:focus-visible{outline:3px solid var(--t-action)!important;outline-offset:2px}
/* Settings fields: our longer 05 labels need a stacked label + 52px input (v1.5 .field assumed one short label) */
html[data-theme] .v15-home .set .row{display:grid;grid-template-columns:1fr;gap:10px;margin:8px 0}
@media(min-width:1024px){html[data-theme] .v15-home .set .row{grid-template-columns:1fr 1fr}}
html[data-theme] .v15-home .set .field{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start;height:auto;min-height:0;padding:8px 12px 4px;gap:2px}
html[data-theme] .v15-home .set .field span{display:block;white-space:normal;line-height:1.3}
html[data-theme] .v15-home .set .field input{position:static;inset:auto;min-height:52px;padding:0}
html[data-theme] .v15-home .set .row>.field-err,html[data-theme] .v15-home .set .row>.epa-picker{grid-column:1/-1}
/* F02 regress: dark input/select borders >=3:1 (v1.5 dark line #3b526b was 1.66:1) */
html[data-theme=dark] .v15-home .sheet :is(.field,.ab,select,input:not([type=checkbox])){border-color:#7d93ad!important}
/* ===== RC-V15-INTEGRATE-03 ===== */
/* B03: nav/theme/compare labels >=14px */
html[data-theme] .rcx-links a,html[data-theme] .rcx-theme,html[data-theme] .rcx-morebtn,html[data-theme] .rcx-more a{font-size:14px!important}
html[data-theme] .cmp-row{font-size:14px!important}
@media(min-width:1024px) and (max-width:1150px){html[data-theme] .rcx-links a{padding:0 6px!important}}
/* N02: header targets >=44 */
html[data-theme] .rcx-brand{min-height:44px;display:inline-flex;align-items:center}
html[data-theme] .rcx-theme,html[data-theme] .rcx-morebtn{min-height:44px!important;min-width:44px}
/* D01: More disclosure (mobile/tablet where header links are hidden) */
html[data-theme] .rcx-morebtn{display:none;align-items:center;justify-content:center;padding:0 12px;border-radius:12px;border:1px solid var(--rcx-line,#c9d3df);background:transparent;color:inherit;font:700 14px system-ui,sans-serif;cursor:pointer}
html[data-theme] .rcx-morebtn[aria-expanded=true]{box-shadow:inset 0 -3px 0 currentColor}
html[data-theme] .rcx-actions{display:flex;gap:8px;align-items:center}
html[data-theme] nav.v15-morepanel{position:fixed;top:64px;right:12px;z-index:95;display:flex;flex-direction:column;min-width:220px;padding:8px;border-radius:14px;background:#fff;color:#142c45;border:1px solid #9fb0c3;box-shadow:0 12px 32px #0b122033}
html[data-theme=dark] nav.v15-morepanel{background:#152239;color:#f0f5fc;border-color:#7d93ad}
html[data-theme] nav.v15-morepanel[hidden]{display:none}
html[data-theme] nav.v15-morepanel a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:10px;color:inherit;text-decoration:none;font-weight:650}
html[data-theme] nav.v15-morepanel a:hover{background:#8aa0b833}
@media(max-width:1023px){html[data-theme] .rcx-morebtn{display:inline-flex}}
/* N03: skip link above sticky chrome, readable both themes */
html[data-theme] .skip:focus,html[data-theme] .skip:focus-visible{z-index:1000!important;position:fixed!important;left:12px!important;top:8px!important;background:#142c45!important;color:#fff!important;outline:3px solid var(--t-action)!important;outline-offset:2px;padding:12px 16px;min-height:44px;border-radius:10px}
html[data-theme=dark] .skip:focus,html[data-theme=dark] .skip:focus-visible{background:#f0f5fc!important;color:#0b1626!important}
/* N04: shared bottom reserve on all pages while the fixed bar is shown */
@media(max-width:1023px){html[data-theme]{scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom));scroll-padding-top:72px}html[data-theme] body{padding-bottom:calc(88px + env(safe-area-inset-bottom))!important}}
/* N01: visible From/To labels inside the 52px rows */
html[data-theme] .v15-home .ab label{display:flex;align-items:center;gap:8px}
html[data-theme] .v15-home .v15-ablbl{flex:0 0 3em;font:800 14px/1.2 system-ui,sans-serif;color:var(--rcx-ink,inherit)}
/* N05: deferred visible on disabled shortcuts */
html[data-theme] .v15-def{font-size:14px;font-weight:600;opacity:1}
/* N06: no overlap at narrow desktop — omit redundant telemetry below 1280 (result metrics stay in sheet) */
@media(max-width:1279px){html[data-theme] .v15-home .rc-telemetry{display:none!important}}
/* W09: decorative ring removed from the text area */
html[data-theme] .v15-home .res .big:after{content:none!important;display:none!important}
/* W02: one dominant total — secondary result amount is not a second hero number */
html[data-theme] .v15-home [data-result] .big{font-size:1.5rem!important;line-height:1.2;background:none!important;color:inherit!important;-webkit-text-fill-color:currentColor}
/* W12: semantic theme focus after literal globals; desktop current link has a non-colour cue */
html[data-theme] .v15-home :focus-visible{outline:3px solid var(--t-action)!important;outline-offset:2px}
html[data-theme] .rcx-links a[aria-current]{box-shadow:inset 0 -3px 0 currentColor;font-weight:800}
/* N06/mobile: map overlays must not collide — on <=1023 keep label + Deferred shortcuts, drop duplicated state line and banner (same message as label + #rnote) */
@media(max-width:1023px){html[data-theme] .v15-home [data-rcx-map-state]{display:none!important}}

/* ===== RC-V15-INTEGRATE-04: layout repair after 16:55 review ===== */
/* (1) shortcuts: compact v1.5 chips, one shared 'Coming soon' caption, no per-chip badge */
html[data-theme] .v15-home .v15-def{display:none!important}
html[data-theme] .v15-home .rcx-map-commands{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-wrap:nowrap;max-width:none}
html[data-theme] .v15-home .rcx-map-commands .v15-soon{font:700 14px/1.2 system-ui,sans-serif;color:#1b354f;background:rgba(255,255,255,.94);border-radius:8px;padding:3px 8px;white-space:nowrap}
html[data-theme=dark] .v15-home .rcx-map-commands .v15-soon{color:#ecf5ff;background:rgba(20,38,57,.94)}
html[data-theme] .v15-home .rcx-map-commands button{white-space:nowrap;font-size:14px!important;line-height:1.15;padding:6px 10px!important;min-height:0;opacity:1;cursor:default}
/* (2) eyebrow one line, card as v1.5 */
html[data-theme] .v15-home #view .rcx-map-ui .rcx-eyebrow-ws{white-space:nowrap;font-size:.62rem!important;letter-spacing:.12em}
html[data-theme] .v15-home .rcx-map-label strong{white-space:nowrap}
/* (3) saturated card always; example/stale differ by label/badge only */
html[data-theme] .v15-home #view .res .big{animation:none!important;opacity:1!important;filter:none!important}
html[data-theme] .v15-home .res.is-stale .big{outline:none}
html[data-theme] .v15-home .res .ws-stale{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:8px;background:#ffffff;color:#8a2c06;font-weight:800}
html[data-theme] .v15-home .res .ws-stale[hidden]{display:none}
/* (4) Manual estimate banner back on mobile, below label/chips */
@media(max-width:1023px){html[data-theme] .v15-home .rcx-map-banner{display:block!important;font-size:14px}}

@media(max-width:1023px){html[data-theme] .v15-home .rcx-map-banner{left:12px!important;right:12px!important;max-width:none!important;width:auto!important}}
html[data-theme] .v15-home .v15-calc{white-space:nowrap}
@media(min-width:1024px){html[data-theme] .v15-home .rcx-map-commands{flex-direction:row;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:46%}}
@media(max-width:374px){html[data-theme] .v15-home #view .mini>div{padding-left:7px!important;padding-right:7px!important}html[data-theme] .v15-home #view .mini small{white-space:nowrap}}
/* v1.5-like compact chip row on mobile (wraps only when narrow) */
@media(max-width:1023px){html[data-theme] .v15-home .rcx-map-commands{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;max-width:54%;gap:5px}html[data-theme] .v15-home .rcx-map-commands .v15-soon{flex-basis:100%;text-align:right;background:none;padding:0 2px;font-size:14px}html[data-theme] .v15-home .rcx-map-commands button{padding:5px 9px!important}}
/* ===== B07 (PM, design review 03): light resting boundaries of real address/settings containers use existing --t-input-border (#6b7a88) ===== */
html[data-theme=light] .v15-home .sheet .ab,html[data-theme=light] .v15-home .sheet .set .field{border-color:var(--t-input-border,#6b7a88)!important}
/* RC-V15-ABOUT320-01: breadcrumb items as wrapping flex row — the long current-page span wraps inside its own box instead of under the 44px Home target (320px overlap on /about/) */
html[data-theme] nav.breadcrumb{display:flex;flex-wrap:wrap;align-items:center}
/* RC-V15-ROUTE-09: live Google map inside the v1.5 hero map; schematic svg hidden only once a map exists */
html[data-theme] .v15-home #view #map.has-map>svg{display:none}html[data-theme] .v15-home #view #map .gmap{position:absolute;inset:0;z-index:1}
/* RC-V15-11: stops + places along the route (mobile-first: fields 52px, targets >=44px, existing palette vars) */
html[data-theme] .v15-home #calc>.v15-stops,html[data-theme] .v15-home #calc>.v15-addstop{order:1}
html[data-theme] .v15-home #calc>[data-map-route],html[data-theme] .v15-home #calc>.v15-places{order:2}
html[data-theme] .v15-home #calc>.v15-addstop[hidden],html[data-theme] .v15-home #calc>.v15-places[hidden]{display:none!important}
html[data-theme] .v15-home .v15-stop{display:flex;gap:8px;align-items:flex-end;margin:8px 0 0}
html[data-theme] .v15-home .v15-stop .field,html[data-theme] .v15-home .v15-places .field{flex:1;display:block;margin:0}
html[data-theme] .v15-home #calc .v15-stop .field>span,html[data-theme] .v15-home #calc .v15-places .field>span{display:block;font-size:14px;font-weight:600;letter-spacing:normal;text-transform:none;margin:0 0 4px;color:inherit}
html[data-theme] .v15-home .v15-stop input,html[data-theme] .v15-home .v15-places select{box-sizing:border-box;width:100%;min-height:52px;padding:0 12px;font:inherit;font-size:16px;color:inherit;background:transparent;border:1px solid var(--t-input-border,#6b7a88);border-radius:12px}
html[data-theme] .v15-home .v15-places select option{color:#152239;background:#fff}
html[data-theme] .v15-home .v15-stopdel{flex:0 0 auto;min-width:52px;min-height:52px;font-size:22px;line-height:1;color:inherit;background:transparent;border:1px solid var(--t-input-border,#6b7a88);border-radius:12px;cursor:pointer}
html[data-theme] .v15-home .v15-addstop,html[data-theme] .v15-home .v15-pl-btns .btn{min-height:44px;margin:8px 0 0}
html[data-theme] .v15-home .v15-places{margin:8px 0 0}
html[data-theme] .v15-home .v15-pl-h{font-size:14px;font-weight:700;margin:8px 0}
html[data-theme] .v15-home .v15-pl-btns{display:flex;flex-wrap:wrap;gap:8px}
html[data-theme] .v15-home .v15-pl-btns .btn{flex:1 1 auto;margin:8px 0 0}
html[data-theme] .v15-home .v15-pl-out{font-size:14px}
html[data-theme] .v15-home .v15-pl-out ul{list-style:none;margin:6px 0 0;padding:0}
html[data-theme] .v15-home .v15-pl-out li{display:flex;flex-direction:column;padding:8px 0;border-top:1px solid var(--t-input-border,#6b7a88)}
html[data-theme] .v15-home .v15-pl-sw{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px currentColor}
html[data-theme] .v15-home .v15-pl-sum,html[data-theme] .v15-home .v15-pl-attr{margin:8px 0 0}
html[data-theme] .v15-home #calc>.v15-addstop,html[data-theme] .v15-home #calc>[data-map-route],html[data-theme] .v15-home #calc .v15-pl-btns .btn{border-color:var(--t-input-border,#6b7a88)}/* RC-V15-11: non-text boundary >=3:1 like B07 */
/* RC-V15-12 D11-01/D11-05: stop + "Search near" labels sit ABOVE the field at every width (desktop layout); no floating label over the value; × aligned to the field */
html[data-theme] .v15-home #calc .v15-stop .field,html[data-theme] .v15-home #calc .v15-places .field{position:static;border:0;padding:0;min-height:0;border-radius:0;background:none;box-shadow:none}
html[data-theme] .v15-home #calc .v15-stop .field>span,html[data-theme] .v15-home #calc .v15-places .field>span{position:static;z-index:auto;pointer-events:auto;margin:0 0 4px}
html[data-theme] .v15-home #calc .v15-stop .field input,html[data-theme] .v15-home #calc .v15-places .field select{position:static;inset:auto;display:block;height:52px;padding:0 12px;border-radius:12px}
html[data-theme] .v15-home #calc .v15-stop{align-items:flex-end}
/* RC-V15-12 D11-02: total card never wider than the panel */
html[data-theme] .v15-home .res .big{min-width:0}html[data-theme] .v15-home .res #tot{white-space:nowrap;max-width:100%}
/* RC-V15-12.1 D11-06: "+ Add stop" and "Try route lookup" share one row on phones (fields first, then buttons); >=50px targets */
html[data-theme] .v15-home #calc>.v15-rbtns{order:2;display:flex;gap:8px;margin:8px 0 0}
html[data-theme] .v15-home #calc>.v15-rbtns>.btn{flex:1 1 0;min-width:0;min-height:50px;margin:0;white-space:normal;line-height:1.15;padding-left:8px;padding-right:8px;border-color:var(--t-input-border,#6b7a88)}
html[data-theme] .v15-home #calc>.v15-rbtns>.v15-addstop[hidden]{display:none!important}
html[data-theme] .v15-home #calc>#rnote{order:2}
@media(min-width:1024px){html[data-theme] .v15-home #calc>.v15-rbtns{flex-direction:column;align-items:flex-start;gap:0;margin:0}html[data-theme] .v15-home #calc>.v15-rbtns>.btn{flex:none;width:auto;margin:8px 0 0;white-space:nowrap;padding-left:19px;padding-right:19px}}  /* desktop: same stacked auto-width buttons as 12 */
/* RC-V15-12.1 (Kubit): places block BELOW the total at every width (phone flex order too) */
html[data-theme] .v15-home #calc>.v15-places{order:3}
/* RC-V15-12.1: "Copy estimate link" never wider than the panel (1024: was +6px) */
html[data-theme] .v15-home .v15-actions{grid-template-columns:minmax(0,1fr) auto}html[data-theme] .v15-home .v15-actions>*{min-width:0;max-width:100%}
@media(max-width:1023px){html[data-theme] .v15-home .v15-actions{grid-template-columns:minmax(0,1fr)}}
/* RC-V15-12.2 D11-06 A: route hint sits right after the total (DOM after .res; same flex order as .res on phones) */
html[data-theme] .v15-home #calc>#rnote{order:3}
/* RC-V15-12.2 D11-06 B: "+ Add stop" / "Try route lookup" labels 15px on one line, buttons >=50px */
@media(max-width:1023px){html[data-theme] .v15-home #calc>.v15-rbtns>.btn{font-size:15px;white-space:nowrap}}
/* RC-V15-12.3: "Try route lookup" below 360px: horizontal padding 8px -> 6px (-2px per side); 15px, 50px, no wrap unchanged */
@media(max-width:359px){html[data-theme] .v15-home #calc>.v15-rbtns>[data-map-route]{padding-left:6px;padding-right:6px}}
/* RC-V15-12.3 fallback (Kubit): -2px padding was not enough at 320 (text 128.1 > content 112), so below 360px the "Try route lookup" label may wrap; 15px and >=50px unchanged, text/aria unchanged */
@media(max-width:359px){html[data-theme] .v15-home #calc>.v15-rbtns>[data-map-route]{white-space:normal}}
/* RC-V15-12.5 MAP04 (Design Lead FAIL 12.4): mobile sheet must not overlap the Google attribution strip (Map data / Terms). Overrides v15-home.css @media(max-width:700px) .sheet margin:-8px 0 0!important (same selector, later file). */
@media(max-width:700px){html[data-theme] #view[data-view]>.hero>.sheet,html[data-theme] #view[data-view]>.hero>.map.live~.sheet{margin-top:0!important}}
/* RC-V15-12.5b (Kubit 11:53 variant b, rule as given by Design): below 360 the map is fixed at 222px (320: clamp(230px,29svh,300px) -> 222) to win back the 8px of the removed -8px sheet overlap. */
@media(max-width:359px){html[data-theme] #view[data-view]>.hero>.map{height:222px!important}}
/* RC-V15-12.5c.1 (Design FAIL-2, 1280): the bottom-anchored Trip intelligence panel keeps its height when the route/state lines change (2 + 3 lines reserved). */
@media(min-width:1280px){html[data-theme] .v15-home .rc-telemetry [data-rc-tstate]{min-height:2lh}html[data-theme] .v15-home .rc-telemetry .rc-footnote [data-rc-route]{min-height:3lh}}
/* RC-V15-12.5d: city suggestions (suggest.js). Absolute listbox under the field: opening it does not move layout (CLS 0). Colors via theme vars (light + dark). */
html[data-theme] .rc-sg-host{position:relative}
/* RC-V15-12.5d.2: stop/places .field{position:static} was overriding host; listbox must anchor to the field */
html[data-theme] .v15-home #calc .v15-stop .field.rc-sg-host,html[data-theme] .v15-home #calc .v15-places .field.rc-sg-host{position:relative!important}
html[data-theme] .rc-sg{position:absolute;left:0;right:0;top:100%;z-index:60;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--t-surface,#fff);color:var(--t-text,#0e141b);border:1px solid var(--t-border,#c3ced8);border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.22);max-height:min(360px,60vh);overflow-y:auto;overscroll-behavior:contain}
html[data-theme] .rc-sg[hidden]{display:none}
html[data-theme] .rc-sg-opt{display:flex;align-items:center;min-height:44px;padding:0 14px;font-size:.95rem;line-height:1.2;cursor:pointer;overflow-wrap:anywhere;text-align:left}
html[data-theme] .rc-sg-opt.is-active,html[data-theme] .rc-sg-opt:hover{background:var(--t-action-soft,#e1f3fd)}
html[data-theme] .rc-sg-opt mark{background:none;color:inherit;font-weight:700}
html[data-theme] .footer .rc-geo-attr{margin-top:8px}

/* RC-V15-12.5d.1: mobile map plaques — hide Route workspace chip; compact one-line banner (~≤36px).
   Desktop ≥768 unchanged. On <768 reserve bottom ~20px (Google attribution) and right ~60px (Google controls / .gm-control-active).
   Preview Maps key is locked to roadcost.online, so intersection is checked via reserved rects; live Google nodes verified when host allows. */
@media(max-width:767px){
  /* RC-V15-12.5d.2: visually-hidden (not display:none) so "Schematic map…" stays for AT */
  html[data-theme] .v15-home .rcx-map-ui{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;padding:0!important;margin:-1px!important}
  /* Design FIX-banner-top: top pill, leave Google logo/controls at bottom clear */
  html[data-theme] .v15-home .rcx-map-banner{
    left:8px!important;right:68px!important;top:8px!important;bottom:auto!important;
    max-width:none!important;width:auto!important;
    padding:5px 10px!important;margin:0!important;
    font-size:12px!important;line-height:1.25!important;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    max-height:36px;border-radius:10px;pointer-events:none;z-index:5
  }
  html[data-theme] .v15-home .rcx-map-banner-full{display:none!important}
  html[data-theme] .v15-home .rcx-map-banner-short{display:inline!important}
  /* RC-V15-12.5d.2 MINOR-451: do NOT put z-index on every .rc-sg-host — equal z on From+To
     made the later To label paint over From's first listbox row. Raise only the open host. */
  html[data-theme] .v15-home .rc-sg-host{overflow:visible!important;z-index:auto}
  html[data-theme] .v15-home .rc-sg-host:focus-within,
  html[data-theme] .v15-home .rc-sg-host:has(.rc-sg:not([hidden])){z-index:90}
  html[data-theme] .v15-home .ab,html[data-theme] .v15-home .v15-stops,html[data-theme] .v15-home .v15-stop{overflow:visible!important}
  html[data-theme] .v15-home .rc-sg{z-index:80;max-height:min(280px,45vh)}
}
@media(min-width:768px){
  html[data-theme] .v15-home .rcx-map-banner-short{display:none!important}
  html[data-theme] .v15-home .rcx-map-banner-full{display:inline!important}
}
