/* 1.12: one final theme layer covers old and new components consistently. */
:root{--trip-surface:#fff;--trip-panel:#f1f6fb;--trip-ink:#18374e;--trip-muted:#536d80;--trip-line:#d4e2ee;--trip-accent:#1769ed}
.trip-backdrop{position:fixed;inset:0;z-index:1100;background:#081724aa;backdrop-filter:blur(5px)}
.trip-sheet{position:fixed;z-index:1110;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:85dvh;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--trip-line);border-radius:25px;background:var(--trip-surface);color:var(--trip-ink);padding:22px;box-shadow:0 24px 90px #04162770}
.trip-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.trip-sheet-head h2{font-size:24px;letter-spacing:-.035em;margin:5px 0}.trip-sheet-head>button{width:46px;height:46px;flex:none;border-radius:15px;font-size:27px}
.trip-sheet p{font-size:13px;line-height:1.55;overflow-wrap:anywhere}.trip-muted{color:var(--trip-muted)}
.trip-sheet button,.share-view button,.break-reminder button,.focus-exit{min-height:45px;border:1px solid var(--trip-line);border-radius:13px;padding:10px 13px;background:var(--trip-panel);color:var(--trip-ink);font-size:12px;font-weight:800;touch-action:manipulation}
.trip-sheet button:active,.share-view button:active{transform:scale(.98)}
.trip-sheet .primary-btn{display:block;width:100%;background:var(--trip-accent);border-color:var(--trip-accent);color:white;font-size:14px}
.trip-field,.theme-picker{display:block;font-size:12px;font-weight:750;line-height:1.5;color:var(--trip-muted);margin:12px 0}
.trip-field input,.trip-field select,.theme-picker select,#live-share-url,.trip-action-row input{display:block;width:100%;min-width:0;min-height:46px;border:1px solid var(--trip-line);border-radius:12px;background:var(--trip-surface);color:var(--trip-ink);padding:10px;font:inherit;font-size:14px;margin-top:5px}
.trip-action-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.trip-action-row>button,.trip-action-row>.trip-file-button{flex:1;min-width:94px}.trip-action-row input{flex:2;min-width:170px;margin:0}
.trip-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.trip-summary{padding:14px;background:var(--trip-panel);border:1px solid var(--trip-line);border-radius:14px;font-weight:800}
.trip-sheet details{border-top:1px solid var(--trip-line);margin-top:17px;padding-top:13px}.trip-sheet summary{font-size:14px;font-weight:800;cursor:pointer;padding:6px 0}
.trip-table-wrap{overflow-x:auto;margin:10px 0}.trip-table{width:100%;border-collapse:collapse;font-size:12px}.trip-table th,.trip-table td{text-align:left;padding:8px 5px;border-bottom:1px solid var(--trip-line);white-space:nowrap}.trip-table button{padding:7px;min-height:42px}.trip-table tr.selected{background:var(--trip-panel)}
.trip-route-row{display:flex;gap:8px;padding:9px 0;border-bottom:1px solid var(--trip-line)}.trip-route-row>button:first-child{flex:1;min-width:0;text-align:left}.trip-route-row>button:last-child{flex:none;width:44px;font-size:22px}.trip-route-row strong,.trip-route-row small{display:block;overflow-wrap:anywhere}.trip-route-row small{font-size:10px;line-height:1.5;color:var(--trip-muted);margin-top:4px}
.trip-route-list{font-size:12px;color:var(--trip-muted);margin:12px 0}
.trip-file-button{position:relative;display:grid;place-items:center;min-height:45px;padding:10px;background:var(--trip-panel);border:1px solid var(--trip-line);border-radius:13px;font-size:12px;font-weight:800;cursor:pointer}.trip-file-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.trip-sheet .danger-action{color:#a52940;background:#fff0f2;border-color:#efbdc7}
#trip-feedback,#live-share-status{min-height:18px;font-size:12px;font-weight:750;color:var(--trip-accent)}
.focus-exit{position:fixed;z-index:820;top:calc(84px + env(safe-area-inset-top));right:12px;background:var(--trip-surface);box-shadow:0 6px 20px #1235}
body.ui-focus .discover-bar,body.ui-focus .mobile-dock,body.ui-focus .planner-peek,body.ui-focus .layers-fab,body.ui-focus .prototype-note,body.ui-focus .poi-search-area-btn,body.ui-focus .poi-status{display:none!important}
body.ui-focus .map-actions #map-style-fab,body.ui-focus .map-actions #measure-fab{display:none!important}
.break-reminder{position:fixed;z-index:1090;top:calc(100px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(380px,calc(100% - 28px));padding:17px;background:var(--trip-surface);border:1px solid #b4d9dd;border-radius:19px;box-shadow:0 10px 40px #0b283c66;color:var(--trip-ink)}.break-reminder p{font-size:12px;line-height:1.4}.break-reminder .trip-action-row{margin-bottom:0}
.share-view{top:auto;left:20px;bottom:20px;width:min(430px,calc(100vw - 40px));max-height:50dvh;overflow:auto;border:1px solid var(--trip-line);border-radius:22px;background:var(--trip-surface);color:var(--trip-ink)}
.share-view h1{font-size:24px;letter-spacing:-.03em;margin:7px 0 12px}.share-view>strong{font-size:16px;overflow-wrap:anywhere}.share-view .trip-action-row{margin-bottom:0}.share-stale{color:#9f491e!important}.share-progress{display:flex;gap:10px;align-items:center;font-size:12px}.share-progress progress{width:100%;height:10px;accent-color:#2476e8}.share-progress span{flex:none}
body.viewing-share .topbar,body.viewing-share .discover-bar,body.viewing-share .mobile-dock,body.viewing-share .map-scale,body.viewing-share .focus-exit{display:none!important}
body.ui-dark{color-scheme:dark;--ink:#ecf4fc;--surface:#101f30;--line:#334961;--control-ink:#eaf3fd;--control-shadow:0 6px 24px #0007;--trip-surface:#101f30;--trip-panel:#1b3046;--trip-ink:#edf5ff;--trip-muted:#b5c8dc;--trip-line:#3b526b;--trip-accent:#86b8ff;color:#edf5ff;background:#0b1622}
body.ui-dark :is(.panel,.layers-sheet,.discover-results,.place-card,.mobile-more,.google-sheet,.modal-card,.navigation-stats,.trip-sheet,.share-view,.break-reminder){background:#101f30!important;color:#edf5ff!important;border-color:#3b526b!important;box-shadow:0 14px 50px #0007}
body.ui-dark :is(.discover-heading,.place-card-header,.google-head,.trip-sheet-head){background:#101f30!important;border-color:#334961!important}
body.ui-dark :is(.field,.suggestions,.recent-section,.tools-section,.feature-box,.route-card,.preference-row,.mode-switch,.road-next,.trip-summary,.discover-controls,.filter-field){background:#1b3046!important;color:#edf5ff!important;border-color:#3b526b!important}
body.ui-dark :is(input,select,textarea){color-scheme:dark;background:#0d1d2e!important;color:#edf5ff!important;border-color:#465f79!important;caret-color:#a8ceff}
body.ui-dark :is(input,textarea)::placeholder{color:#a2b8cf!important;opacity:1}
body.ui-dark :is(button,.trip-file-button){background:#1e344b!important;color:#edf5ff!important;border-color:#48617b!important;box-shadow:none!important}
body.ui-dark :is(button,.trip-file-button):hover{background:#2a4562!important;border-color:#7bb1ef!important}
body.ui-dark :is(button):is([aria-pressed="true"],[aria-expanded="true"],.active){background:#244f78!important;color:#fff!important;border-color:#9dc8ff!important;box-shadow:inset 0 0 0 1px #6396cb!important}
body.ui-dark :is(.primary-btn,.place-primary,#google-route,#measure-done){background:#86b8ff!important;color:#0b1a2a!important;border-color:#86b8ff!important;box-shadow:0 5px 18px #0004!important}
body.ui-dark :is(.primary-btn,.place-primary,#google-route,#measure-done):hover{background:#a4ccff!important}
body.ui-dark :is(.primary-btn,.place-primary) span{color:#0b1a2a!important}
body.ui-dark :is(button):disabled{opacity:.45;cursor:default}
body.ui-dark :is(h1,h2,h3,strong,b,.next-instruction,.nav-sheet-summary,.nav-sheet-toggle,.field-label,.tools-section>summary,.map-style-title,.avatar-label,.place-note-label,.trip-sheet summary){color:#edf5ff!important}
body.ui-dark :is(p,small,.feature-content,.search-hint,.route-meta,.feature-heading span,.background-guidance,.trip-muted,.trip-field,.theme-picker,.nav-bottom,.nav-bottom #gps-status,.nav-bottom #nav-arrival-time,.nav-sheet-summary>span,.gps-quality,.road-context-note,.road-next,.nav-road-extra summary){color:#b5c8dc!important}
body.ui-dark :is(a,.eyebrow,.brand-accent,#trip-feedback,#live-share-status){color:#9cc8ff!important}
body.ui-dark :is(.brand,.engine-status,.version,.planner-peek,.layers-fab,.map-scale,.prototype-note,.poi-status,.poi-search-area-btn,.search-area-btn,.focus-exit){background:#13263a!important;color:#edf5ff!important;border-color:#49617a!important;text-shadow:none}
body.ui-dark .brand-icon{background:#86b8ff!important;color:#0b1a2a!important}.brand-icon{flex:none}
body.ui-dark .engine-status.ready,body.ui-dark .gps-quality.good{background:#163d35!important;color:#a8efcf!important}
body.ui-dark :is(.routing-help,.status:not(:empty),.gps-quality.weak,.share-stale){background:#422e22!important;color:#ffcea6!important;border-color:#875c40!important}
body.ui-dark :is(.suggestion,.recent-place,.discover-result){background:transparent!important;color:#edf5ff!important;border-color:#36506a!important}
body.ui-dark :is(.suggestion,.recent-place,.discover-result):hover{background:#244560!important}
body.ui-dark .route-card.selected{background:#1a3d60!important;border-color:#91c1ff!important}
body.ui-dark :is(.mobile-dock,.measure-panel,.navigation){background:#11283d!important;color:#edf5ff!important;border-color:#416181!important}
body.ui-dark :is(.speed-card,.nav-sheet-actions,.nav-road-extra,.nav-bottom){background:#14283d!important;border-color:#36506a!important}
body.ui-dark :is(.speed-card strong,.nav-bottom #nav-eta){color:#edf5ff!important}
body.ui-dark :is(.map-poi,.place-pin-discover,.avatar-pin,.road-object-pin,.report-pin span){background:#13293f!important;color:#eaf3ff!important;border-color:#9cc8ff!important}
body.ui-dark :is(.place-pin-glyph,.poi-symbol,.recent-place>span:first-child,.mobile-dock button span,.place-type){background:#264a6e!important;color:#d9edff!important}
body.ui-dark .place-detail{border-color:#36506a!important;color:#c9daeb!important}body.ui-dark .place-detail b{color:#eaf3ff!important}
body.ui-dark :is(.discover-controls button[aria-pressed="true"],.place-tools button[aria-pressed="true"]){background:#245b70!important;color:#eaffff!important;border-color:#83ccdf!important}
body.ui-dark :is(.danger-action,.nav-sheet-stop){background:#4c2638!important;color:#ffd4de!important;border-color:#ba738b!important}
body.ui-dark .map-scale i{border-color:#edf5ff!important}
body.ui-dark .leaflet-popup-content-wrapper,body.ui-dark .leaflet-popup-tip,body.ui-dark .leaflet-tooltip{background:#14283d;color:#edf5ff;border-color:#48617b}
body.ui-dark .map-scrim{background:linear-gradient(180deg,#05132138,transparent 25%,transparent 72%,#05132138)}
body.ui-dark :is(button,input,select,textarea,a,.trip-file-button):focus-visible{outline:3px solid #9bd2ff!important;outline-offset:3px}
@media(max-width:760px){
  .trip-sheet{top:auto;bottom:0;left:0;transform:none;width:100%;max-height:88dvh;border-radius:27px 27px 0 0;padding:20px 18px calc(22px + env(safe-area-inset-bottom))}
  .trip-sheet-head{position:sticky;top:-20px;z-index:2;background:var(--trip-surface);padding:14px 0;margin-top:-14px;border-bottom:1px solid var(--trip-line)}
  .trip-sheet-head h2{font-size:24px}.share-view{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;max-height:45dvh;padding:16px}
  .share-view .trip-action-row>button{min-width:80px;padding:8px;font-size:11px}.trip-table{font-size:11px}.trip-table button{font-size:11px}
}
@media(max-width:360px){.trip-form-grid{gap:8px}.trip-field{font-size:11px}.trip-action-row{gap:6px}.trip-sheet-head h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.trip-sheet button:active,.share-view button:active{transform:none}}
