/* Preference controls remain reachable on small screens. */
.city-bar { display:flex; align-items:center; gap:12px; margin:0 0 24px; color:var(--muted); font-size:12px; }
.city-bar label { color:var(--ink); font-weight:600; }
.city-bar select { font:inherit; font-weight:600; min-height:42px; min-width:135px; border:1px solid var(--line); border-radius:10px; padding:8px 14px; background:var(--cream); color:var(--ink); cursor:pointer; }
.city-bar select:focus-visible { outline:2px solid var(--forest); outline-offset:3px; }
@media(max-width:600px) { .city-bar { flex-wrap:wrap; gap:8px 12px; margin-bottom:20px; } .city-bar>span { flex-basis:100%; font-size:11px; } }
:root { color-scheme: light; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.brand { font-size:27px; letter-spacing:-1.1px; }
.brand-name { white-space:nowrap; }
.preferences { display:flex; align-items:center; gap:10px; }
.language-control { display:flex; align-items:center; gap:6px; min-height:36px; padding:0 9px; border:1px solid var(--line); background:#fff; border-radius:8px; }
.language-control>svg { width:15px; height:15px; color:#72876c; }
.language-control select { padding:7px 0; font-size:11px; border:0; background:transparent; cursor:pointer; min-width:65px; }
.theme-control { display:flex; align-items:center; gap:2px; padding:3px; border:1px solid var(--line); border-radius:9px; background:#edf2e8; }
.theme-control button { display:grid; place-items:center; width:29px; height:28px; border-radius:6px; color:#7a8b70; }
.theme-control button svg { width:16px; height:16px; }
.theme-control button[aria-pressed="true"] { background:white; color:#285e43; box-shadow:0 1px 5px #28482b15; }
.theme-control button:hover { color:#24553b; }
.topbar-right { gap:17px; }
.parking-sign { color:#223b35; }

/* The map tile image layer is toned separately; pins, photos and sign evidence
   keep their original colours. All map controls use the application palette. */
html[data-theme="dark"] { color-scheme:dark; --forest:#a8d2b5; --ink:#e2ebe4; --muted:#a1b1a6; --line:#34463d; --mint:#263b30; --lime:#c6e2ae; --cream:#14201d; }
html[data-theme="dark"] body { background:var(--cream); color:var(--ink); }
html[data-theme="dark"] :is(.sidebar,.topbar) { background:#192722; border-color:var(--line); }
html[data-theme="dark"] .brandmark { background:#bddda5; color:#173c2b; }
html[data-theme="dark"] .brandmark span { background:#173c2b; }
html[data-theme="dark"] :is(.workspace,.grow-card) { background:#23362c; border-color:#344739; }
html[data-theme="dark"] :is(.city-icon,.profile) { background:#334933; color:#c6e2ae; }
html[data-theme="dark"] .profile { border-color:#23362c; outline-color:#425341; }
html[data-theme="dark"] :is(.workspace small,.nav-label,.nav-button,.grow-card p,.help-button,.breadcrumb,.scope) { color:#a4b49f; }
html[data-theme="dark"] :is(.breadcrumb strong,.grow-card strong,.grow-card button) { color:#dbe7d2; }
html[data-theme="dark"] :is(.nav-button.active,.nav-button:hover) { background:#304635; color:#d9ebca; }
html[data-theme="dark"] .tiny { background:#3e3549; color:#d9c6f0; }
html[data-theme="dark"] .live-dot { background:#9dc58b; }
html[data-theme="dark"] :is(.eyebrow,.page-heading p,.banner-copy p) { color:#a3b599; }
html[data-theme="dark"] .scan-banner { background:#263b2d; border-color:#385137; }
html[data-theme="dark"] .pill.light { background:#314b33; border-color:#47613f; color:#d1e4bf; }
html[data-theme="dark"] .orbit { border-color:#3d5536; }
html[data-theme="dark"] .floating-bubble { background:#344b37; border-color:#4c6343; box-shadow:0 6px 16px #07130d33; }
html[data-theme="dark"] .floating-bubble>span:first-child { background:#45603e; color:#d5e8c2; }
html[data-theme="dark"] .floating-bubble small { color:#bdcfb1; }
html[data-theme="dark"] :is(.sparkle,.illustration-note) { color:#abc297; }
html[data-theme="dark"] :is(.primary,.chip.active) { background:#b9d99f; color:#193822; border-color:#b9d99f; }
html[data-theme="dark"] .primary:hover { background:#cce8b5; }
html[data-theme="dark"] :is(.secondary,.chip,.filter-button,.search-box,.extra-filters,.parking-layout,.fact,.review,.language-control,.map-heading,.map-locate,.reset-map,.map-error) { background:#1e2e27; border-color:var(--line); color:var(--ink); }
html[data-theme="dark"] :is(.secondary:hover,.place-card:hover,.place-card.selected) { background:#2c4030; border-color:#55754c; }
html[data-theme="dark"] :is(.place-card,.list-heading,.map-panel,.list-view .place-card,hr) { border-color:var(--line); }
html[data-theme="dark"] :is(.search-box input,.list-heading select,.extra-filters select,.field input,.field textarea,.field select,.language-control select) { background:transparent; color:var(--ink); border-color:var(--line); }
html[data-theme="dark"] :is(.field input,.field textarea,.field select,.extra-filters select) { background:#18271f; }
html[data-theme="dark"] select option { background:#1e2e27; color:var(--ink); }
html[data-theme="dark"] :is(input::placeholder,textarea::placeholder) { color:#91a28e; }
html[data-theme="dark"] :is(.place-card .address,.operator-label,.place-bottom,.list-heading select,.fact small,.detail-address,.dialog-intro,.check-row,.upload-zone p,.contribute-heading p,.review-header small,.review .unverified,.info-dialog p,.info-dialog li,.map-heading>span:last-child,.data-note,.data-note button,footer,footer button,.help-button,.text-button,.source-link,.info-dialog a) { color:#a8baa0; }
html[data-theme="dark"] :is(.save-button,.icon-button,.search-box svg,.search-box kbd) { color:#a3b597; }
html[data-theme="dark"] :is(.owner-badge,.p-icon) { background:#304d36; color:#c1deaf; }
html[data-theme="dark"] :is(.owner-badge.private,.p-icon.private) { background:#503d30; color:#e3bd9b; }
html[data-theme="dark"] :is(.owner-badge.unknown,.p-icon.unknown) { background:#3b4846; color:#c1d0ca; }
html[data-theme="dark"] .save-button.saved { color:#b9d99f; }
html[data-theme="dark"] .save-button.saved svg { fill:#4f6c43; }
html[data-theme="dark"] :is(.rating-text,.stars,.rating-picker button.active) { color:#d9b873; }
html[data-theme="dark"] .rating-picker button { color:#60735d; }
html[data-theme="dark"] :is(.view-switch,.theme-control) { background:#24372c; border-color:var(--line); }
html[data-theme="dark"] :is(.view-switch button,.theme-control button) { color:#a4b99a; }
html[data-theme="dark"] :is(.view-switch button.active,.theme-control button[aria-pressed="true"]) { background:#455e3d; color:#e8f2df; }
html[data-theme="dark"] .language-control>svg { color:#b2c4a5; }
html[data-theme="dark"] :is(dialog,.info-dialog) { background:#1c2c24; border-color:#40523f; box-shadow:0 25px 100px #0008; }
html[data-theme="dark"] dialog::backdrop { background:#06100bcc; }
html[data-theme="dark"] :is(.notice,.location-row,.upload-zone,.result-card) { background:#293e2c; border-color:#4b6241; }
html[data-theme="dark"] :is(.number-circle,.upload-zone>span) { background:#3b5737; color:#daedc6; }
html[data-theme="dark"] .warning { background:#473c26; border-color:#716140; }
html[data-theme="dark"] .error-message { background:#492f29; color:#f1b5a1; }
html[data-theme="dark"] .success-message { background:#304e32; color:#d4ebbf; }
html[data-theme="dark"] :is(.reviews-empty,.empty-state) { color:#a9bd9e; }
html[data-theme="dark"] .empty-state h3 { color:#cbe3b8; }
html[data-theme="dark"] #toast { background:#c1dea9; color:#163323; }
html[data-theme="dark"] :is(#map,#picker-map) { background:#18271f; }
html[data-theme="dark"] .leaflet-tile-pane { filter:invert(1) hue-rotate(155deg) saturate(.35) brightness(.8) contrast(.9); }
html[data-theme="dark"] .map-legend { background:#1e2e27ef; color:#dce7d7; }
html[data-theme="dark"] :is(.leaflet-control-zoom a,.leaflet-control-attribution,.leaflet-tooltip) { background:#23352b!important; color:#c8deba!important; border-color:#40573a!important; }
html[data-theme="dark"] .leaflet-control-attribution a { color:#d4e9c8; }
html[data-theme="dark"] .leaflet-control-zoom { border-color:#40573a!important; }
html[data-theme="dark"] .pin { border-color:#d4dec9; }
html[data-theme="dark"] .pin.selected { background:#3d704e; }
html[data-theme="dark"] .mobile-nav { background:#192a22f5; border-color:var(--line); }
html[data-theme="dark"] .mobile-nav button { color:#9caf91; }
html[data-theme="dark"] .mobile-nav button.active { color:#d1e7bb; }
html[data-theme="dark"] input[type="checkbox"] { accent-color:#b9d99f; }
html[data-theme="dark"] :is(button:focus-visible,a:focus-visible) { outline-color:#c1dfa2; }

.install-button { height:36px; display:inline-flex; align-items:center; gap:7px; padding:0 12px; border:1px solid #bdd0c5; border-radius:10px; background:#e7f1e3; color:#174e43; font:inherit; font-size:12px; font-weight:750; cursor:pointer; white-space:nowrap; }
.install-button[hidden] { display:none; }
.install-button svg { width:17px; height:17px; }
.install-button:hover { background:#dcebd8; }
.install-note { padding:12px 14px; border-radius:12px; background:#edf4e9; color:#345044!important; }
html[data-theme="dark"] .install-button { background:#304635; border-color:#4b6247; color:#d9ebca; }
html[data-theme="dark"] .install-button:hover { background:#3a533e; }
html[data-theme="dark"] .install-note { background:#293e2c; color:#b8c9b0!important; }

@media(max-width:1180px) { .brand { font-size:23px; padding-left:6px; } .scope { display:none; } }
@media(max-width:850px) { .brand { padding:0; } .brand-name { display:none; } .topbar-right { gap:12px; } }
@media(max-width:620px) {
  .breadcrumb:before { content:'P-Guide'; letter-spacing:-.8px; font-size:21px; margin-right:0; }
  .profile { display:none; }
  .install-button { width:32px; padding:0; justify-content:center; }
  .install-button span { display:none; }
  .topbar { position:sticky; top:0; z-index:26; gap:10px; padding:0 16px; }
  .preferences { gap:7px; }
  .language-control { padding:0 7px; gap:5px; }
  .language-control select { min-width:61px; font-size:11px; }
  .theme-control button { width:28px; }
  .banner-copy { max-width:100%; padding-right:90px; }
  .banner-copy h2 { font-size:19px; }
  .sign-illustration { right:-67px; width:166px; }
  html[lang="en"] .chip { padding:10px 8px; }
  html[lang="en"] .filter-button { font-size:9px; }
  html[lang="en"] .mobile-nav button { padding-left:10px; padding-right:10px; }
}
