.theme-button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #ffffff60;border-radius:9px;background:#ffffff0d;color:#fff}
.theme-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8}
.clear-place{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:50%;font-size:26px;line-height:1;background:transparent;color:var(--muted)}
.clear-place:hover{background:#e8f2e3;color:var(--ink)}
.new-walk{display:block;margin:12px 0 2px auto;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;color:var(--green);background:transparent;font-weight:600}
.appearance-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.appearance-choices button{min-height:64px;padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font:inherit}
.appearance-choices button[aria-pressed=true]{border:2px solid var(--green);background:#eaf4e4}
.access-note{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f3f8ef;font-size:13px;line-height:1.55}
.access-note p{margin:5px 0 10px}.access-note details{margin-top:8px}.access-note li{margin:8px 0}.access-note ul{padding-left:18px}
.gate-closed-button{display:block;width:100%;min-height:44px;padding:9px 12px;border:1px solid #bad0b4;border-radius:8px;background:#eef5e9;color:var(--forest);font:inherit;font-weight:650}
.phone-gate-action{margin-top:8px;font-size:13px;min-height:40px}.access-note small,.data-freshness{color:var(--muted)}
.data-freshness{font-size:12px;line-height:1.6;margin:14px 0}
.closure-options{display:grid;gap:10px}.closure-options button{min-height:48px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:12px;text-align:left;font:inherit}
.closure-options small{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:700px){.header-actions{gap:6px}.theme-button{flex-basis:40px;width:40px}.topbar{gap:7px}.brand{gap:8px;font-size:21px}.brand-mark{width:38px;height:38px;flex-basis:38px}#language{max-width:100px;padding:9px 6px}.access-note{font-size:14px}}
@media(max-width:360px){.brand{font-size:19px}.brand-mark{width:32px;height:32px;flex-basis:32px}.topbar{padding-left:10px;padding-right:10px}#language{max-width:90px;font-size:13px}}

/* Charcoal & Mint: shared surfaces and accents for the entire dark UI. */
:root[data-theme=dark]{color-scheme:dark;--page:#101619;--paper:#182125;--surface:#202c30;--surface-hover:#2c3c40;--selected:#243b32;--accent-ink:#101619;--forest:#f0f5f2;--ink:#f0f5f2;--muted:#b5c3c1;--line:#43575c;--green:#a8dab5;--lime:#a8dab5;--blue:#9dccf0;background:var(--page)}
[data-theme=dark] body,[data-theme=dark] .workspace{background:var(--page);color:var(--ink)}
[data-theme=dark] .topbar{background:var(--paper);color:#fff}
[data-theme=dark] .places,[data-theme=dark] .search-results,[data-theme=dark] .walk-choice,[data-theme=dark] .stop-row,[data-theme=dark] .qr-box,[data-theme=dark] .feature-grid button,[data-theme=dark] .dialog-card select,[data-theme=dark] .dialog-card textarea,[data-theme=dark] .share-row input{background:var(--surface);color:var(--ink);border-color:var(--line)}
[data-theme=dark] .swap,[data-theme=dark] .dialog-close,[data-theme=dark] .map-tools button,[data-theme=dark] .map-heading,[data-theme=dark] .map-legend,[data-theme=dark] .phone-route-card,[data-theme=dark] .phone-nav{background:var(--paper);color:var(--ink);border-color:var(--line)}
[data-theme=dark] .phone-nav button{color:var(--muted)}
[data-theme=dark] .place-actions button,[data-theme=dark] .result-quick-actions button,[data-theme=dark] .share-buttons button,[data-theme=dark] .share-buttons a,[data-theme=dark] .share-row button,[data-theme=dark] .phone-route-actions button,[data-theme=dark] .hide-stops,[data-theme=dark] .stops-actions button,[data-theme=dark] .stop-filters button,[data-theme=dark] .report-pin-row button,[data-theme=dark] .gate-closed-button{background:var(--surface);border-color:var(--line);color:var(--ink)}
[data-theme=dark] .data-note,[data-theme=dark] .access-note,[data-theme=dark] .guidance-card,[data-theme=dark] .report-pin-row,[data-theme=dark] .welcome-languages{background:var(--surface);border-color:var(--line);color:var(--muted)}
[data-theme=dark] .walk-choice.is-selected,[data-theme=dark] label.walk-choice:hover,[data-theme=dark] .appearance-choices button[aria-pressed=true],[data-theme=dark] .phone-nav button[aria-current=page],[data-theme=dark] .stop-filters button.active,[data-theme=dark] .search-results [aria-selected=true],[data-theme=dark] .search-results button:hover,[data-theme=dark] .feature-grid button:hover,[data-theme=dark] .stop-row:hover,[data-theme=dark] .clear-place:hover,[data-theme=dark] .search-button:hover{background:var(--selected);color:var(--ink);border-color:var(--green)}
[data-theme=dark] .primary,[data-theme=dark] #phone-start-walk,[data-theme=dark] .welcome-languages button[aria-pressed=true],[data-theme=dark] .end-letter{background:var(--lime);border-color:var(--lime);color:var(--accent-ink)}
[data-theme=dark] .primary>span:last-child{color:var(--accent-ink)}
[data-theme=dark] .start-letter,[data-theme=dark] .feature-icon,[data-theme=dark] .step-number,[data-theme=dark] .walk-choice-badge,[data-theme=dark] .route-badge,[data-theme=dark] .control-heading output,[data-theme=dark] .stop-symbol,[data-theme=dark] .success-mark{background:var(--selected);color:var(--green)}
[data-theme=dark] .step-number.other{background:#253d4c;color:#a6d8fc}
[data-theme=dark] .route-warning,[data-theme=dark] .status.error,[data-theme=dark] .phone-notice,[data-theme=dark] .map-error{background:#443823;color:#ffe0a6;border-color:#7e6540}
[data-theme=dark] .phone-walk-switch{background:#342943}
[data-theme=dark] .phone-walk-switch button{color:#dfd1ef}
[data-theme=dark] .phone-walk-switch button[aria-pressed=true]{background:#b89af4;color:#201431}
[data-theme=dark] .phone-route-label{color:#c3a6ff}
[data-theme=dark] .phone-route-label:before,[data-theme=dark] .route-line{background:#ba97ff;box-shadow:none}
[data-theme=dark] .connector-line{border-color:#86d3ff;background:repeating-linear-gradient(to right,#86d3ff 0,#86d3ff 6px,transparent 6px,transparent 9px)}
[data-theme=dark] .network-line{background:#74bc88;box-shadow:none}
[data-theme=dark] .map-wrap,[data-theme=dark] #map{background:var(--page)}
[data-theme=dark] #map .ghw-osm-tiles{filter:invert(1) hue-rotate(175deg) saturate(.55) brightness(.85);opacity:.85}
[data-theme=dark] .leaflet-popup-content-wrapper,[data-theme=dark] .leaflet-popup-tip,[data-theme=dark] .leaflet-tooltip{background:var(--surface);color:var(--ink);border-color:var(--line)}
[data-theme=dark] .leaflet-control-attribution{background:#182125e8!important;color:var(--muted)}
[data-theme=dark] .leaflet-control-attribution a{color:var(--ink)}
[data-theme=dark] .leaflet-popup-content button{background:var(--selected);color:var(--green)}
[data-theme=dark] .map-pin>div{background:var(--surface);border-color:var(--green)}
[data-theme=dark] .map-pin.start-pin>div{background:var(--lime)}
[data-theme=dark] .map-pin.start-pin span{color:var(--accent-ink)}
[data-theme=dark] .map-instruction{background:var(--surface);color:white}
[data-theme=dark] .stop-pin{background:var(--surface)}
[data-theme=dark] .route-bar{background:#35505a}
[data-theme=dark] button:focus-visible,[data-theme=dark] a:focus-visible,[data-theme=dark] input:focus-visible,[data-theme=dark] summary:focus-visible{outline-color:var(--lime)}
[data-theme=dark] .planner{background:var(--page)}
[data-theme=dark] #language,[data-theme=dark] #language option{background:var(--surface);color:var(--ink);border-color:var(--line)}
[data-theme=dark] h1>span{color:var(--green)}
[data-theme=dark] .high-contrast{--forest:#f0f5f2;--ink:#fff;--muted:#cddbd8;--line:#718f94;--green:#b9efc9;--lime:#b9efc9;--paper:#101619;--surface:#182125}
