/* Compact day planning and focused dialogs. */
.trip-preparation-scroll { min-height:0; overflow:auto; overscroll-behavior:contain; }
.trip-preparation-scroll .trip-preparation-content { overflow:visible; }
.situation-advice { padding:16px; margin:12px 0; border:1px solid var(--separator,#dce5ec); border-radius:14px; background:var(--card,#fff); color:var(--label,#1c2734); font-size:15px; line-height:1.55; }
.situation-advice[hidden] { display:none; }
.trip-preparation-scroll .situation-advice { margin:0 18px 20px; padding:14px; color:var(--trip-ink,#1c2734); background:var(--trip-surface,#fff); }
.situation-advice h3,.situation-advice h4 { margin:0 0 8px; font-size:16px; line-height:1.4; }
.situation-advice p { margin:8px 0; }
.situation-advice ul { margin:8px 0; padding-left:20px; }
.situation-advice li { margin:8px 0; }
.situation-advice summary,.situation-advice a { display:inline-block; min-height:44px; padding:10px 0; color:var(--trip-action,#075b82); cursor:pointer; }
.situation-advice summary { display:list-item; }
.situation-advice a { overflow-wrap:anywhere; }
.situation-advice small,.situation-advice dt,.situation-advice dd { font-size:13px; }
.situation-advice dl { margin:8px 0; }
.situation-advice dd { margin:0 0 8px; }
.plan-trip-shortcut { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:48px; margin:12px 0; padding:12px 14px; border:1px solid #c6e1ef; border-radius:14px; background:#eaf6fc; color:#075b82; font:inherit; font-size:16px; line-height:1.35; font-weight:600; text-align:left; cursor:pointer; }
.plan-trip-shortcut > span { display:flex; align-items:center; gap:10px; min-width:0; }
.plan-trip-shortcut svg { flex-shrink:0; }
.trip-planning-actions { display:flex; flex:0 0 auto; gap:8px; padding:4px 12px; border-bottom:.5px solid var(--separator,#e2e7ec); background:var(--trip-surface,#fff); }
.trip-planning-actions > button { flex:1 1 0; min-width:0; min-height:44px; padding:7px 4px; border:0; border-radius:8px; background:none; color:var(--trip-action,#075b82); font:inherit; font-size:15px; line-height:1.35; font-weight:600; cursor:pointer; }
.trip-planning-actions > button:active { background:#5e7e9b12; }
.trip-planning-actions > button[hidden] { display:none; }
.trip-planning-actions[hidden] { display:none; }
#tripView .schedule-empty .empty-plan-create { padding:10px 16px; border-radius:12px; background:#0876bd; color:#fff; font-size:16px; font-weight:600; }
[data-sheet-state=collapsed] .trip-planning-actions { display:none; }
.trip-action-dialog.trip-preparation-dialog { max-width:500px; }
.trip-preparation-content { padding:4px 18px 20px; overflow:auto; overscroll-behavior:contain; color:var(--trip-ink,#1c2734); font-size:15px; line-height:1.55; }
.trip-preparation-content section { margin-top:18px; }
.trip-preparation-content h3 { margin:18px 0 8px; font-size:16px; line-height:1.4; }
.trip-preparation-content p { margin:8px 0; }
.trip-preparation-content ul { margin:8px 0; padding-left:20px; }
.trip-preparation-content li { margin:12px 0; padding-left:2px; }
.trip-preparation-content details { margin-top:4px; }
.trip-preparation-content summary { display:list-item; width:fit-content; min-height:44px; padding:10px 0; color:var(--trip-action,#075b82); cursor:pointer; }
.trip-preparation-content details p,.trip-preparation-content small { color:var(--trip-secondary,#526273); font-size:13px; line-height:1.55; }
.trip-preparation-content a { display:inline-block; min-height:44px; padding:10px 0; color:var(--trip-action,#075b82); overflow-wrap:anywhere; }
.trip-preparation-content [data-place-hours] { margin:6px 0; }
.trip-preparation-tip { margin:14px 0; }
.trip-preparation-tip + .trip-preparation-tip { padding-top:14px; border-top:.5px solid var(--separator,#e2e7ec); }
.trip-preparation-context { color:var(--trip-secondary,#526273); font-size:13px; }
.trip-preparation-content dl { display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr); gap:6px 12px; margin:8px 0; font-size:13px; }
.trip-preparation-content dt { font-weight:600; }
.trip-preparation-content dd { margin:0; overflow-wrap:anywhere; }
.plan-trip-shortcut:focus-visible,.trip-planning-actions > button:focus-visible,.trip-preparation-content summary:focus-visible { outline:2px solid #0876bd; outline-offset:2px; }
@media(prefers-color-scheme:dark) { .plan-trip-shortcut { background:#163b55; border-color:#42677e; color:#b4e1ff; } }
.trip-tools { display:flex; gap:8px; margin:8px 0 16px; flex-wrap:wrap; }
.planner-launch,.planner-secondary { border:0; border-radius:14px; padding:12px 16px; font:inherit; font-size:14px; font-weight:650; cursor:pointer; }
.planner-launch { background:#e0f1ff; color:#126ab9; }
.planner-secondary { background:var(--fill,#eef2f7); color:var(--label,#172333); }
.itinerary-days { display:flex; gap:8px; overflow-x:auto; padding:2px 0 12px; scrollbar-width:thin; }
.itinerary-days button { flex:0 0 auto; border:1px solid transparent; border-radius:16px; min-width:84px; padding:10px 13px; background:var(--card,#fff); color:var(--label,#172333); font:inherit; text-align:left; cursor:pointer; }
.itinerary-days strong,.itinerary-days small { display:block; }
.itinerary-days strong { font-size:14px; }
.itinerary-days small { font-size:11px; margin-top:3px; color:var(--label-2,#667583); }
.itinerary-days [aria-pressed=true] { background:#daf0ff; border-color:#aedcff; }
.itinerary-map-wrap { position:relative; margin:0 0 16px; border:1px solid var(--separator,#e7edf4); border-radius:20px; overflow:hidden; background:var(--card,#fff); }
.itinerary-map { height:220px; background:#e9eff4; }
.itinerary-map-status { position:absolute; top:80px; left:16px; right:16px; margin:0; padding:12px; border-radius:12px; background:var(--card,#fff); color:var(--label-2,#667583); font-size:13px; text-align:center; }
.itinerary-map-caption { display:block; padding:9px 12px; color:var(--label-2,#667583); font-size:11px; line-height:1.5; }
.itinerary-pin { border:2px solid #fff; border-radius:50%; height:30px; width:30px; padding:0; background:#167bc9; color:#fff; font-weight:750; box-shadow:0 2px 8px #143c6940; cursor:pointer; }
.schedule-stop { border:1px solid var(--separator,#e7edf4); border-radius:17px; overflow:hidden; margin:8px 0; background:var(--card,#fff); }
.schedule-card { display:flex; gap:8px; padding:10px 8px; align-items:flex-start; }
.schedule-card .plan-num { flex-shrink:0; margin-top:16px; width:20px; height:20px; font-size:11px; }
.schedule-photo { display:flex; align-items:center; justify-content:center; flex:0 0 48px; height:56px; border-radius:10px; overflow:hidden; background:var(--fill,#eef2f7); font-size:26px; }
.schedule-photo img { width:100%; height:100%; object-fit:cover; }
.schedule-info { flex:1; min-width:0; }
.schedule-name { display:block; border:0; background:none; padding:0; text-align:left; color:var(--label,#172333); font:inherit; font-size:14px; font-weight:700; line-height:1.4; overflow-wrap:anywhere; cursor:pointer; }
.schedule-info .plan-hours { font-size:11px; color:var(--label-2,#667583); margin:4px 0; }
.schedule-help { display:block; border:0; padding:2px 0; background:none; color:#176dad; font:inherit; font-size:10px; text-align:left; cursor:pointer; }
.schedule-card .plan-del { flex-shrink:0; width:28px; min-height:32px; margin-left:auto; }
.schedule-edit { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:5px 10px; border-top:1px solid var(--separator,#e7edf4); background:var(--bg,#f7f9fc); }
.schedule-edit .plan-order { flex-direction:row; display:flex; }
.schedule-edit .plan-move { width:36px; height:30px; }
.schedule-edit label { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--label-2,#667583); min-width:0; }
.schedule-edit select { max-width:100px; font:inherit; padding:5px; border:1px solid var(--separator,#e7edf4); border-radius:8px; background:var(--card,#fff); color:var(--label,#172333); }
.plan-leg { margin:4px 0 4px 38px; color:var(--label-2,#667583); font-size:11px; }
.schedule-empty { text-align:center; padding:26px 10px; background:var(--bg,#f7f9fc); border-radius:16px; margin-bottom:12px; font-size:14px; }
.schedule-empty button { display:block; margin:12px auto 0; background:none; border:0; color:#176dad; font:inherit; font-weight:650; cursor:pointer; }
.hours-summary { display:inline-flex; gap:5px; align-items:center; cursor:pointer; max-width:100%; color:inherit; border-bottom:1px dotted currentColor; }
.hours-summary:focus-visible { outline:2px solid #147ac8; outline-offset:3px; }
.travel-reference { margin:18px 0; padding:14px; background:var(--card,#fff); border-radius:16px; font-size:13px; line-height:1.6; }
.travel-reference summary { font-weight:650; cursor:pointer; }
.travel-reference a { display:block; padding:6px 0; color:#176dad; }
.travel-reference h3 { font-size:15px; margin:12px 0 8px; }
.itinerary-dialog,.hours-dialog { box-sizing:border-box; margin:auto; width:calc(100% - 24px); max-width:500px; max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); border:0; padding:0; border-radius:24px; color:var(--label,#172333); background:var(--card,#fff); overflow:hidden; }
.itinerary-dialog[open],.hours-dialog[open] { display:flex; flex-direction:column; }
.itinerary-dialog::backdrop,.hours-dialog::backdrop { background:#1324399c; }
.planner-header { display:flex; flex-shrink:0; justify-content:space-between; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--separator,#e7edf4); min-height:48px; font-size:13px; }
.planner-header h2 { font-size:18px; margin:0; }
.planner-header button { width:36px; min-height:36px; border:0; border-radius:50%; background:var(--fill,#eef2f7); color:inherit; font:inherit; font-size:20px; cursor:pointer; }
.planner-body { padding:24px 20px; overflow-y:auto; overscroll-behavior:contain; min-height:250px; }
.planner-body h2 { font-size:25px; line-height:1.4; margin:4px 0 26px; overflow-wrap:anywhere; }
.planner-body > label { display:block; font-size:14px; font-weight:600; margin:18px 0 8px; }
.planner-body > select,.planner-body > input { box-sizing:border-box; display:block; max-width:100%; width:100%; border:1px solid var(--separator,#dfe7ef); border-radius:13px; min-height:48px; padding:10px 12px; font:inherit; background:var(--bg,#f7f9fc); color:var(--label,#172333); }
.planner-body > p { font-size:13px; line-height:1.6; color:var(--label-2,#667583); }
.planner-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:24px; }
.planner-options button { min-height:52px; border:1px solid transparent; border-radius:16px; padding:12px 8px; font:inherit; font-size:14px; line-height:1.4; background:var(--bg,#f7f9fc); color:var(--label,#172333); overflow-wrap:anywhere; cursor:pointer; }
.planner-options [aria-pressed=true] { border-color:#5bb2ee; background:#e5f4ff; color:#125b97; }
.planner-footer { flex-shrink:0; padding:14px 16px max(16px,env(safe-area-inset-bottom)); border-top:1px solid var(--separator,#e7edf4); background:var(--card,#fff); }
.planner-footer .plan-start { margin:0; }
.planner-preview-actions { display:flex; gap:8px; margin-bottom:10px; }
.planner-preview-actions button { flex:1; min-width:0; font-size:12px; padding:10px; }
.planner-error { color:#bd3838 !important; min-height:1.4em; margin:14px 0 0; }
.planner-preview-days section { border:1px solid var(--separator,#e7edf4); border-radius:16px; padding:12px; margin:14px 0; }
.planner-preview-days h3 { margin:0 0 12px; font-size:14px; }
.planner-preview-days p { display:flex; align-items:center; gap:8px; font-size:13px; line-height:1.6; margin:8px 0; }
.planner-preview-days .plan-num { flex-shrink:0; width:20px; height:20px; font-size:11px; }
.curated-label { display:inline-block; font-size:11px; color:#176dad; background:#e5f4ff; padding:5px 10px; border-radius:20px; }
.planner-warnings p { font-size:12px; line-height:1.6; color:var(--label-2,#667583); }
.hours-body { overflow-y:auto; padding:8px 20px 24px; font-size:14px; line-height:1.65; overscroll-behavior:contain; }
.hours-body h3 { font-size:18px; }
.hours-body dl { margin:14px 0; }
.hours-body dt { font-size:12px; font-weight:650; color:var(--label-2,#667583); margin-top:16px; }
.hours-body dd { margin:5px 0; white-space:pre-line; overflow-wrap:anywhere; }
.hours-body a { color:#176dad; }
@media(min-width:700px) { .itinerary-map { height:290px; } }
@media(prefers-color-scheme:dark) { .planner-launch,.itinerary-days [aria-pressed=true],.planner-options [aria-pressed=true],.curated-label { background:#163b55; color:#9bd6ff; } .itinerary-map { background:#162b3a; } }
#planSaveStatus:empty { display:none; }
.hours-summary { border:0; border-bottom:1px dotted currentColor; background:none; padding:2px 0; text-align:left; font:inherit; }
.spot-card-hours { padding:0 14px 10px; }
.search-result-item { border-bottom:.5px solid var(--separator); }
.search-result-item:last-child { border-bottom:0; }
.search-result-item .search-row { border-bottom:0; padding-bottom:7px; }
.search-result-item.is-added { background:var(--green-bg); }
.search-result-hours { padding:0 16px 14px 57px; }
.planner-body { min-height:0; flex:1; }
.plan-photo-credits { margin:12px 0 2px; font-size:11px; color:var(--label-2,#667583); line-height:1.6; }
.plan-photo-credits p { margin:8px 0; }
.plan-photo-credits a { color:inherit; }
.schedule-photo img.schedule-photo-contain { object-fit:contain; }
.itinerary-route-legend { display:flex; gap:13px; flex-wrap:wrap; padding:9px 12px 0; font-size:11px; color:var(--label-2,#667583); }
.itinerary-route-legend span { display:inline-flex; align-items:center; gap:5px; }
.itinerary-route-legend span::before { content:''; width:13px; height:3px; border-radius:2px; background:#64748b; }
.itinerary-route-legend [data-route-mode=bus]::before { background:#137dcc; }
.itinerary-route-legend [data-route-mode=subway]::before { background:#9562ce; }
.plan-leg { display:flex; flex-wrap:wrap; align-items:center; gap:4px 9px; min-height:20px; margin:4px 0 4px 31px; line-height:1.5; }
.plan-leg[data-route-state=loading] { color:var(--label-2,#667583); }
.plan-leg[data-route-state=ready] { color:var(--label-2,#667583); }
.plan-leg[data-route-state=unavailable] { color:#956414; }
.route-leg-retry { border:0; background:none; padding:3px 0; color:#176dad; font:inherit; font-size:11px; text-decoration:underline; cursor:pointer; }
@media(prefers-color-scheme:dark) { .plan-leg[data-route-state=unavailable] { color:#eac084; } .route-leg-retry { color:#9bd6ff; } }

/* My Trip follows one navigation bar, a map content layer and a plain list. */
body.trip-map-active { --trip-surface:#fff; --trip-ink:#1c2734; --trip-secondary:#69737f; --trip-nav-surface:rgba(250,252,255,.91); --trip-nav-ink:#1c2734; --trip-action:#0876bd; --trip-nav-selection:#126c97; --trip-destructive:#c33e36; --trip-warning:#956414; overflow:hidden; background:#e7edf2; }
body.trip-map-active #selectScreen > .app-header,
body.trip-map-active .page-pad > .connection-note,
body.trip-map-active #continueTrip { display:none !important; }
body.trip-map-active #tripView { position:fixed; inset:0; z-index:1; margin:0; padding:0; overflow:hidden; }
body.trip-map-active #selectScreen { max-width:none; background:transparent; }
body.trip-map-active #selectScreen .page-pad { padding:0; }
body.trip-map-active #tripCount { display:none !important; }
#tripView .itinerary-map-wrap { position:absolute; inset:0; margin:0; border:0; border-radius:0; background:#e7edf2; }
#tripView .itinerary-map { position:absolute; inset:0; width:100%; height:100%; border-radius:0; }
#tripView .itinerary-map-status { top:calc(env(safe-area-inset-top) + 78px); left:16px; right:16px; width:fit-content; max-width:calc(100% - 32px); margin:0 auto; padding:10px 12px; border:1px solid var(--separator); border-radius:12px; background:var(--card); pointer-events:none; font-size:13px; }
.trip-map-controls { position:absolute; z-index:4; top:calc(env(safe-area-inset-top) + 8px); left:12px; right:12px; pointer-events:none; }
.trip-primary-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; height:52px; min-height:52px; padding:0; border:0; border-radius:0; background:transparent; color:var(--trip-nav-ink); box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; pointer-events:none; }
.trip-title-surface,.trip-action-surface { display:flex; align-items:center; min-width:0; height:52px; border:1px solid rgba(255,255,255,.8); border-radius:18px; background:var(--trip-nav-surface); color:var(--trip-nav-ink); box-shadow:0 2px 12px rgba(22,47,70,.10); -webkit-backdrop-filter:saturate(130%) blur(16px); backdrop-filter:saturate(130%) blur(16px); pointer-events:auto; }
.trip-title-surface { flex:0 1 auto; padding:0 12px; }
.trip-action-surface { flex:0 1 auto; gap:4px; padding:3px; }
#tripView .page-title { color:var(--trip-nav-ink); flex:1; min-width:0; margin:0; padding:0; background:none; border:0; box-shadow:none; font-size:17px; line-height:1.2; font-weight:600; letter-spacing:-.015em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#tripView .trip-guidance-start { flex:0 1 auto; width:auto; max-width:none; min-width:0; min-height:44px; margin:0; padding:5px 8px; border:0; border-radius:10px; background:none; color:var(--trip-action); box-shadow:none; font-size:15px; line-height:1.15; font-weight:600; }
#tripView .trip-guidance-start:disabled { color:#88919b; opacity:1; cursor:default; }
.trip-more { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border-radius:10px; color:var(--trip-nav-ink); }
.trip-more:active,#tripView .trip-guidance-start:active { background:#5e7e9b15; }
.trip-stop-sheet { position:absolute; z-index:5; left:8px; right:8px; bottom:calc(var(--tab-bar-height) + 10px); height:35dvh; min-height:64px; margin:0; padding:0; border:1px solid #dce2e8; border-radius:20px; background:var(--trip-surface); color:var(--trip-ink); box-shadow:0 -2px 16px rgba(22,47,70,.12); display:flex; flex-direction:column; overflow:hidden; transition:height .22s var(--ease); -webkit-backdrop-filter:none; backdrop-filter:none; }
.trip-stop-sheet.is-dragging { transition:none; user-select:none; }
.trip-sheet-heading { display:flex; align-items:center; gap:4px; flex:0 0 63px; min-height:63px; padding:8px; border-bottom:.5px solid #e2e7ec; background:var(--trip-surface); color:var(--trip-ink); }
.trip-sheet-handle { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; padding:0; border-radius:10px; touch-action:none; cursor:grab; color:var(--trip-secondary); }
.trip-sheet-handle:active { cursor:grabbing; }
.trip-sheet-chevron { font-size:23px; line-height:1; transition:transform .18s; }
[data-sheet-state=collapsed] .trip-sheet-chevron { transform:rotate(180deg); }
.visually-hidden { 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; }
#tripView .itinerary-days { display:block; flex:1; min-width:0; margin:0; padding:0; border:0; border-radius:0; background:none; overflow:visible; box-shadow:none; }
#tripDaySelect { width:100%; max-width:100%; min-height:44px; padding:7px 0; border:0; border-radius:0; background:transparent; color:var(--trip-ink); font:inherit; font-size:15px; font-weight:600; cursor:pointer; }
.trip-add-stop { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border-radius:10px; color:var(--trip-action); }
.trip-add-stop[hidden] { display:none; }
.trip-sheet-body { background:var(--trip-surface); color:var(--trip-ink); flex:1; min-height:0; padding:0 14px 12px; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; }
.trip-sheet-body[hidden] { display:none; }
#tripView .schedule-stop { border:0; border-bottom:.5px solid #e2e7ec; border-radius:0; margin:0; padding:0; background:none; box-shadow:none; }
#tripView .schedule-card { display:flex; align-items:center; gap:4px; min-height:80px; margin:0; padding:0; }
.schedule-primary { display:flex; align-items:center; gap:12px; flex:1; min-width:0; min-height:80px; padding:8px 0; text-align:left; color:var(--trip-ink); }
#tripView .schedule-photo { flex:0 0 44px; width:44px; height:44px; border-radius:8px; font-size:23px; }
#tripView .schedule-info { display:block; min-width:0; flex:1; }
#tripView .schedule-name { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; min-height:0; margin:0; padding:0; color:var(--trip-ink); font-size:17px; font-weight:500; line-height:1.2; }
.schedule-secondary { display:block; margin-top:3px; color:var(--trip-secondary); font-size:13px; line-height:1.25; font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.schedule-more { display:grid; place-items:center; flex:0 0 44px; width:44px; min-height:44px; padding:0; color:var(--trip-secondary); border-radius:10px; }
.schedule-more:active { background:#5e7e9b12; }
#tripView .plan-leg { color:var(--trip-secondary); display:flex; flex-wrap:nowrap; gap:6px; min-height:22px; margin:0 0 0 56px; padding:2px 0; line-height:1.4; font-size:13px; }
#tripView .route-leg-summary { color:var(--trip-secondary); min-width:0; white-space:normal; overflow-wrap:anywhere; }
#tripView .plan-leg[data-route-state=unavailable] .route-leg-summary { color:var(--trip-warning); }
#tripView .route-leg-retry { flex:0 0 auto; min-height:44px; padding:6px 0; font-size:12px; }
#tripView .schedule-empty { margin:0; padding:24px 10px; border-radius:0; background:none; font-size:15px; color:var(--trip-secondary); }
#tripView .schedule-empty strong { color:var(--trip-secondary); font-weight:400; }
#tripView .schedule-empty button { min-height:44px; margin:8px auto 0; padding:6px 12px; color:var(--trip-action); font-size:17px; }
.trip-sheet-body .connection-note,.trip-sheet-body #planSaveStatus,.trip-sheet-body .resume-card,.trip-sheet-body .plan-note { margin-top:12px; }
.trip-action-dialog { box-sizing:border-box; margin:auto; width:calc(100% - 32px); max-width:360px; max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding:0; border:0; border-radius:18px; background:var(--trip-surface,var(--card,#fff)); color:var(--trip-ink,var(--label,#1c2734)); box-shadow:0 12px 44px #13263833; overflow:hidden; }
.trip-action-dialog[open] { display:flex; flex-direction:column; }
.trip-action-dialog::backdrop { background:#13263860; }
.trip-dialog-heading { background:var(--trip-surface); color:var(--trip-ink); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-shrink:0; padding:8px 10px 8px 18px; border-bottom:.5px solid var(--separator); }
.trip-dialog-heading h2 { color:var(--trip-ink); flex:1; min-width:0; margin:0; padding:0; font-size:17px; line-height:1.3; font-weight:600; overflow-wrap:anywhere; }
.trip-dialog-heading > button { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; padding:0; border-radius:10px; color:var(--trip-ink); font-size:18px; }
.trip-action-list { padding:0 16px 8px; overflow:auto; }
.trip-action-list > button,.trip-action-list .end-guidance { display:block; width:100%; height:auto; min-height:48px; padding:12px 2px; border:0; border-bottom:.5px solid var(--separator); border-radius:0; background:none; color:var(--trip-ink); box-shadow:none; font-size:17px; font-weight:400; line-height:1.25; text-align:left; }
.trip-action-list > button:disabled { opacity:.38; }
.trip-action-list > .plan-del,.trip-action-list .end-guidance { color:var(--trip-destructive); }
.trip-action-list > button:last-child { border-bottom:0; }
.trip-menu-day { color:var(--trip-ink); display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:48px; padding:4px 2px; border-bottom:.5px solid var(--separator); font-size:17px; }
.trip-menu-day select { max-width:130px; min-height:44px; padding:6px; border:0; background:transparent; color:var(--trip-ink); font:inherit; font-size:15px; }
.trip-info-content { color:var(--trip-ink); background:var(--trip-surface); padding:14px 18px 20px; overflow:auto; font-size:14px; line-height:1.6; }
.trip-info-content .itinerary-route-legend { padding:0; }
.trip-info-content .itinerary-map-caption { padding:14px 0 0; font-size:13px; }
.trip-info-content .plan-photo-credits { font-size:12px; }
.trip-info-content .plan-photo-credits summary { min-height:44px; padding:12px 0; }
body.trip-map-active .app-tab-bar { z-index:30; }
@media(min-width:900px) {
  .trip-map-controls { right:auto; left:20px; width:380px; }
  #tripView .trip-stop-sheet { left:20px; right:auto; width:380px; bottom:calc(var(--tab-bar-height) + 10px); }
  #tripView .itinerary-map-status { top:calc(env(safe-area-inset-top) + 18px); left:430px; right:20px; }
}
@media(prefers-color-scheme:dark) {
  body.trip-map-active { color-scheme:dark; --trip-surface:#222c37; --trip-ink:#f0f3f7; --trip-secondary:#b5bec8; --trip-nav-surface:rgba(29,40,52,.94); --trip-nav-ink:#f0f3f7; --trip-action:#9ed4ff; --trip-nav-selection:#e8f5ff; --trip-destructive:#ff9a92; --trip-warning:#eac084; --label:#f0f3f7; --label-2:#b5bec8; --separator:#3f4a57; --card:#222c37; --fill:#35414d; --bg:#18232d; background:#172633; }
  #tripView .itinerary-map-wrap,#tripView .itinerary-map { background:#172633; }
  .trip-title-surface,.trip-action-surface { background:var(--trip-nav-surface); border-color:#55616d; color:var(--trip-nav-ink); box-shadow:0 2px 12px #0004; }
  #tripView .trip-guidance-start,.trip-add-stop { color:#9ed4ff; }
  #tripView .trip-guidance-start:disabled { color:#8c98a5; }
  .trip-stop-sheet { background:var(--trip-surface); color:var(--trip-ink); border-color:#3f4a57; }
  .trip-sheet-heading,#tripView .schedule-stop { border-color:#3f4a57; }
  #tripView .trip-sheet-heading,#tripView .trip-sheet-body { background:var(--trip-surface); color:var(--trip-ink); }
  #tripView .schedule-primary,#tripView .schedule-name { color:var(--trip-ink); }
  #tripView .trip-sheet-handle,#tripView .schedule-more,#tripView .schedule-secondary,#tripView .schedule-empty,#tripView .plan-leg { color:var(--trip-secondary); }
  #tripView .plan-leg[data-route-state=unavailable] { color:var(--trip-warning); }
  .trip-action-dialog,.trip-action-dialog .trip-dialog-heading,.trip-action-dialog .trip-action-list,.trip-action-dialog .trip-info-content { background:var(--trip-surface); color:var(--trip-ink); }
  body.trip-map-active .app-tab-bar::before { background:rgba(29,40,52,.96); border-color:#55616d; box-shadow:0 3px 18px #0005; }
  body.trip-map-active .app-tab-bar > button { color:#b5bec8; }
  body.trip-map-active .app-tab-bar > button[aria-current] { background:#28445a; color:#e8f5ff; }
}
@media(prefers-reduced-motion:reduce) { .trip-stop-sheet,.trip-sheet-chevron { transition:none; } }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { body.trip-map-active { --trip-nav-surface:var(--trip-surface); } }
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more) {
  body.trip-map-active { --trip-nav-surface:#fafcff; --trip-nav-ink:#1c2734; }
  .trip-title-surface,.trip-action-surface { background:var(--trip-nav-surface); border-color:#667583; -webkit-backdrop-filter:none; backdrop-filter:none; color:#1c2734; }
  .trip-stop-sheet { box-shadow:none; border-color:#667583; }
}
@media(prefers-color-scheme:dark) and (prefers-reduced-transparency:reduce), (prefers-color-scheme:dark) and (prefers-contrast:more) { body.trip-map-active { --trip-nav-surface:#222c37; --trip-nav-ink:#f0f3f7; } .trip-title-surface,.trip-action-surface { background:var(--trip-nav-surface); border-color:#9aaab9; color:var(--trip-nav-ink); } }

body.trip-map-active #hoursDialog .hours-body a { color:var(--trip-action); }

/* Explicit control-label colors also survive dynamic scheme changes in WebKit. */
body.trip-map-active .trip-more svg,body.trip-map-active .trip-more svg * { color:var(--trip-nav-ink); }
body.trip-map-active .trip-add-stop svg,body.trip-map-active .trip-add-stop svg * { color:var(--trip-action); }
body.trip-map-active .schedule-more svg,body.trip-map-active .trip-sheet-chevron { color:var(--trip-secondary); }
body.trip-map-active .app-tab-bar > button > span:last-child,body.trip-map-active .app-tab-bar > button svg,body.trip-map-active .app-tab-bar > button svg * { color:var(--trip-secondary); }
body.trip-map-active .app-tab-bar > button[aria-current] > span:last-child,body.trip-map-active .app-tab-bar > button[aria-current] svg,body.trip-map-active .app-tab-bar > button[aria-current] svg * { color:var(--trip-nav-selection); }
body.trip-map-active .trip-more svg,body.trip-map-active .trip-more svg * { fill:var(--trip-nav-ink); }
body.trip-map-active .trip-add-stop svg,body.trip-map-active .trip-add-stop svg * { stroke:var(--trip-action); }
body.trip-map-active .schedule-more svg,body.trip-map-active .schedule-more svg * { fill:var(--trip-secondary); }
body.trip-map-active .app-tab-bar > button svg,body.trip-map-active .app-tab-bar > button svg * { stroke:var(--trip-secondary); }
body.trip-map-active .app-tab-bar > button[aria-current] svg,body.trip-map-active .app-tab-bar > button[aria-current] svg * { stroke:var(--trip-nav-selection); }
@media(prefers-color-scheme:dark) {
  body.trip-map-active .trip-more svg,body.trip-map-active .trip-more svg * { fill:#f0f3f7; }
  body.trip-map-active .trip-add-stop svg,body.trip-map-active .trip-add-stop svg * { stroke:#9ed4ff; }
  body.trip-map-active .schedule-more svg,body.trip-map-active .schedule-more svg * { fill:#b5bec8; }
  body.trip-map-active .app-tab-bar > button svg,body.trip-map-active .app-tab-bar > button svg * { stroke:#b5bec8; }
  body.trip-map-active .app-tab-bar > button[aria-current] svg,body.trip-map-active .app-tab-bar > button[aria-current] svg * { stroke:#e8f5ff; }
}
@media(prefers-color-scheme:light) {
  body.trip-map-active .trip-more svg,body.trip-map-active .trip-more svg * { fill:#1c2734; }
  body.trip-map-active .trip-add-stop svg,body.trip-map-active .trip-add-stop svg * { stroke:#0876bd; }
  body.trip-map-active .schedule-more svg,body.trip-map-active .schedule-more svg * { fill:#69737f; }
  body.trip-map-active .app-tab-bar > button svg,body.trip-map-active .app-tab-bar > button svg * { stroke:#69737f; }
  body.trip-map-active .app-tab-bar > button[aria-current] svg,body.trip-map-active .app-tab-bar > button[aria-current] svg * { stroke:#126c97; }
}
