:root { font-family: 'Segoe UI', system-ui, sans-serif; color: #172a21; background: #f6f7f1; --accent: #226b48; --muted: #64766b; --line: #e4e9df; --tint: #eaf1e6; }
.account-shell { display:block; max-width:1100px; margin:40px auto; padding:0 24px 40px; }
.account-shell > p:empty { display:none; }
.account-page .brand-word { color:inherit; text-decoration:none; }
.district-editor > a { display:inline-block; margin:0 20px 18px 0; }
.account-shell > h1 { font-size:clamp(28px,4vw,44px); letter-spacing:-1px; margin:16px 0; }
.account-shell > p { line-height:1.6; }
.account-nav { display:flex; align-items:center; flex-wrap:wrap; gap:16px; font-size:13px; }
.account-nav a,.account-shell a { color:var(--accent); }
.account-nav button { padding:8px 12px; background:var(--tint); color:var(--accent); }
.role-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:28px 0; }
.role-card { display:flex; flex-direction:column; gap:14px; padding:26px; border:1px solid var(--line); border-radius:20px; background:white; min-width:0; }
.role-card h2 { margin:0; font-size:21px; }
.role-card p { flex:1; margin:0; line-height:1.6; color:var(--muted); }
.role-card code { overflow-wrap:anywhere; font-size:13px; }
.role-card button { margin-top:8px; }
.login-form { max-width:480px; display:grid; gap:16px; padding:26px; background:white; border:1px solid var(--line); border-radius:20px; }
.login-form label,.directory-row label { display:grid; gap:8px; min-width:0; }
.login-form input,.directory-row input { width:100%; min-width:0; }
#password-hint { font-size:13px; color:var(--muted); overflow-wrap:anywhere; }
.platform-tabs { display:flex; gap:24px; margin:24px 0; }
.platform-tabs a { padding:12px 0; text-decoration:none; }
.platform-tabs a[aria-current] { border-bottom:3px solid var(--accent); font-weight:600; }
.platform-restaurant { display:flex; align-items:center; gap:24px; padding:20px; margin:12px 0; background:white; border:1px solid var(--line); border-radius:16px; }
.platform-restaurant > div { flex:1; }
.platform-restaurant h3 { margin:0 0 8px; }
.publication-state { font-size:13px; color:var(--muted); }
#platform-directories details { border:1px solid var(--line); border-radius:16px; padding:20px; background:white; margin:16px 0; }
#platform-directories summary { cursor:pointer; font-weight:600; }
.directory-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; border:0; border-top:1px solid var(--line); padding:16px 0; margin-top:16px; }
.directory-row legend { font-size:14px; padding-right:8px; }
header:has(.account-nav) { flex-wrap:wrap; gap:16px; }
@media(max-width:750px){.role-cards { grid-template-columns:1fr; }.account-shell { margin:24px auto; padding:0 16px 24px; }.account-nav { width:100%; }.platform-restaurant { flex-wrap:wrap; gap:16px; }.platform-restaurant > div { flex-basis:100%; }.directory-row { grid-template-columns:1fr; }}
.district-editor { max-width:760px; }
.district-editor p { line-height:1.6; color:var(--muted); }
#district-editor { display:grid; gap:18px; padding:24px; background:white; border-radius:20px; }
#district-editor label { display:grid; gap:8px; }
.booking-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.booking-jump { margin:12px 0; }
.booking-form label { display:grid; gap:8px; font-size:13px; min-width:0; }
.booking-form input { padding:12px; min-width:0; }
.booking-form label:has(textarea),.booking-form button { grid-column:1/-1; }
.booking-form textarea { width:100%; resize:vertical; font:inherit; border:1px solid var(--line); border-radius:12px; padding:12px; }
.booking-section a,#my-bookings-link { color:var(--accent); }
#my-bookings-link { font-size:12px; padding:10px 0; }
.reservation-list { display:grid; gap:16px; margin-top:20px; }
.reservation-row { padding:20px; border:1px solid var(--line); background:white; border-radius:18px; overflow-wrap:anywhere; }
.reservation-row h3 { margin:0 0 8px; }
.reservation-row p { font-size:14px; line-height:1.6; }
.reservation-status { display:inline-block; padding:8px 12px; border-radius:10px; font-size:13px; background:#fff1c9; color:#735300; }
.reservation-status.confirmed { background:var(--tint); color:var(--accent); }
.reservation-status.rejected,.reservation-status.cancelled { background:#f5e6e3; color:#903f36; }
.reservation-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
#restaurant-bookings { margin-top:24px; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
body:has(dialog[open]) { overflow: hidden; }
button, input, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button { border: 0; cursor: pointer; padding: 12px 18px; border-radius: 14px; background: var(--accent); color: white; min-height: 44px; }
button:disabled { opacity: .5; cursor: default; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #5a9672; outline-offset: 3px; }
button:hover:not(:disabled) { filter: brightness(.96); }
header { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 1220px; margin: auto; padding: 26px 32px 18px; }
.brand { display: flex; align-items: center; gap: 18px; }
.brand-word { font-size: 28px; font-weight: 750; letter-spacing: -1.5px; }
.brand-dot { margin-left: 3px; font-size: 13px; color: var(--accent); }
#city { color: var(--muted); font-size: 14px; border-left: 1px solid #d9e1d3; padding-left: 18px; }
.language { display: flex; align-items: center; gap: 9px; font-size: 12px; color: var(--muted); }
select { min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: white; color: #172a21; max-width: 100%; }
#locale { border: 0; padding: 8px 12px; background: white; }
main { max-width: 1220px; margin: auto; padding: 18px 32px 44px; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.discovery-intro { grid-column: 1 / -1; padding: 12px 0 2px; }
#discovery-eyebrow { font-size: 11px; letter-spacing: 2px; color: var(--accent); font-weight: 650; margin: 0 0 12px; }
h1 { font-size: clamp(32px, 4.7vw, 54px); font-weight: 650; letter-spacing: -2px; line-height: 1.08; margin: 0; max-width: 650px; }
#discovery-subtitle { margin: 14px 0 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.search-bar { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; margin: 0 0 6px; }
input { min-width: 0; width: 100%; padding: 17px 20px; border: 1px solid var(--line); border-radius: 16px; background: white; color: #172a21; font-size: 16px; }
input::placeholder { color: #7b8a7f; }
#filters { background: var(--tint); color: var(--accent); }
#filters[aria-expanded=true] { background: #dbe9d4; }
#filter-panel { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: white; }
#filter-panel label { display: flex; flex-direction: column; gap: 7px; font-size: 12px; color: var(--muted); min-width: 0; }
#filter-panel select { width: 100%; font-size: 14px; }
.map-shell { position: sticky; top: 20px; overflow: hidden; background: #e7eee2; border-radius: 24px; height: min(65vh,620px); min-height: 390px; border: 1px solid var(--line); }
#map { width: 100%; height: 100%; }
.map-note { position: absolute; inset: 30% 20px auto; margin: auto; max-width: 330px; padding: 20px; text-align: center; line-height: 1.6; background: white; border-radius: 16px; box-shadow: 0 4px 20px #2038260a; }
aside { min-width: 0; font-size: 14px; }
aside p { color: var(--muted); font-size: 12px; line-height: 1.6; margin: 8px 0; }
.catalog-tabs { display: flex; gap: 8px; padding: 5px; border-radius: 16px; background: #e9eee2; margin-bottom: 16px; }
.catalog-tabs button { flex: 1; color: var(--muted); background: transparent; padding: 10px 12px; border-radius: 12px; }
.catalog-tabs button[aria-pressed=true] { color: #172a21; background: white; box-shadow: 0 2px 6px #2038260a; }
#locate { background: transparent; border: 1px solid #d8e2d2; color: var(--accent); padding: 10px 14px; font-size: 12px; }
#status { margin: 12px 0 18px; }
#location-status:empty, #save-status:empty { display: none; }
#save-status { color: #a12828; }
#results { display: grid; gap: 18px; }
.result-row { position: relative; min-width: 0; }
.result { display: flex; flex-direction: column; align-items: stretch; width: 100%; padding: 0; overflow: hidden; border-radius: 20px; text-align: left; color: #172a21; background: white; border: 1px solid #e8ece2; box-shadow: 0 4px 14px #22362504; gap: 0; }
.result:hover:not(:disabled) { filter: none; box-shadow: 0 8px 24px #2236250d; }
.result-photo { width: 100%; height: 200px; margin: 0; }
.result-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.result-text { display: flex; flex-direction: column; gap: 7px; padding: 18px 20px; min-width: 0; }
.result-text strong { font-size: 23px; letter-spacing: -.6px; font-weight: 650; padding-right: 24px; overflow-wrap: anywhere; }
.result-text > span { color: var(--muted); font-size: 12px; line-height: 1.5; }
.result-text .result-cuisine { font-size: 10px; letter-spacing: 1.1px; text-transform: uppercase; }
.favorite-toggle { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; background: #fff; color: var(--accent); font-size: 25px; box-shadow: 0 2px 12px #0001; }
.favorite-toggle[aria-pressed=true] { color: #b84346; background: #fff4f0; }
.selection-marker { width: 18px; height: 18px; border-radius: 50%; border: 3px solid white; background: var(--accent); box-shadow: 0 0 0 2px var(--accent); pointer-events: none; }
.restaurant-marker { width: 36px; height: 36px; min-height: 36px; padding: 0; background: var(--accent); border: 3px solid white; border-radius: 50%; box-shadow: 0 2px 8px #163c3040; }
.google-marker { position: absolute; transform: translate(-50%,-50%); }
.maplibregl-ctrl-attrib { max-width: 100%; }
.maplibregl-ctrl-group button { min-height: 0; padding: 0; border-radius: 0; }
.result-row:not(:has(.result-photo:not([hidden]))) .result-text { padding-right: 62px; }
#branch-detail { position: fixed; inset: auto; top: 50%; left: 50%; transform: translate(-50%,-50%); margin: 0; max-width: 700px; width: calc(100% - 24px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; border: 0; border-radius: 26px; padding: 28px; background: #fffefa; color: #172a21; box-shadow: 0 20px 80px #0f2b2440; }
dialog::backdrop { background: #172a2166; backdrop-filter: blur(4px); }
#detail-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 1.5px; color: var(--muted); margin: 0 0 16px; padding-right: 44px; }
#close-detail { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; padding: 0; display: grid; place-items: center; background: var(--tint); color: #172a21; font-size: 28px; border-radius: 50%; }
#detail-favorite { background: var(--tint); color: var(--accent); font-size: 12px; padding: 10px 14px; margin: 0 0 8px; }
#detail-favorite[aria-pressed=true] { color: #b84346; }
.profile-name { margin: 14px 0 8px; font-size: clamp(28px,5vw,40px); line-height: 1.12; letter-spacing: -1.3px; font-weight: 650; overflow-wrap: anywhere; }
.profile-subtitle { text-transform: uppercase; font-size: 11px; letter-spacing: 1.1px; color: var(--muted); }
.profile-note { color: var(--muted); font-size: 12px; line-height: 1.7; }
.profile-section { padding: 22px 0; border-bottom: 1px solid var(--line); }
.profile-section h3 { margin: 0 0 14px; font-size: 19px; font-weight: 600; letter-spacing: -.4px; }
.profile-section p { font-size: 14px; line-height: 1.7; margin: 8px 0; color: var(--muted); }
.profile-music { padding: 20px; margin-top: 20px; background: #edf3e8; border: 0; border-radius: 18px; }
.profile-gallery > h3 { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); }
.detail-photo { margin: 0; }
.detail-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 18px; }
.detail-photo figcaption { margin-top: 8px; color: var(--muted); font-size: 11px; }
.profile-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.profile-tags span { border-radius: 9px; padding: 8px 12px; background: var(--tint); color: var(--accent); font-size: 12px; }
.menu-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 12px 0; font-size: 14px; }
.menu-row + .menu-row { border-top: 1px solid #edf1e7; }
.menu-row strong { white-space: nowrap; font-weight: 600; }
.profile-map { height: 250px; width: 100%; margin: 14px 0; border-radius: 18px; overflow: hidden; background: #e7eee2; }
.profile-map .maplibregl-ctrl-attrib { font-size: 10px; }
.profile-map + .profile-note:empty { display: none; }
.profile-map-link { display: inline-flex; align-items: center; min-height: 44px; padding: 12px 18px; border-radius: 14px; background: var(--accent); color: white; text-decoration: none; font-size: 13px; }
.profile-contacts { display: grid; grid-template-columns: auto 1fr; gap: 12px 20px; margin: 0; font-size: 14px; }
.profile-contacts dt { color: var(--muted); }
.profile-contacts dd { margin: 0; overflow-wrap: anywhere; }
.profile-branch { padding: 18px; background: var(--tint); border-radius: 16px; }
.profile-branch + .profile-branch { margin-top: 10px; }
.profile-booking { text-align: center; margin: 22px 0 0; }
.mock-badge { display: inline-block; margin-left: 9px; padding: 4px 7px; border-radius: 6px; color: #77591d; background: #f9edcd; font-size: 10px; font-weight: 500; vertical-align: middle; letter-spacing: 0; text-transform: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); }
@media (min-width:1000px) { #results { grid-template-columns: repeat(2,minmax(0,1fr)); } .result-photo { height: 160px; } .result-text { padding: 15px; } .result-text strong { font-size: 19px; } }
@media (max-width:700px) { header { padding: 22px 20px 10px; } .brand { gap: 10px; } #city { padding-left: 10px; font-size: 12px; } .brand-word { font-size: 25px; } .language > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); } main { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 16px 20px 32px; } h1 { letter-spacing: -1.4px; max-width: 320px; font-size: 38px; } .search-bar { grid-template-columns: repeat(2,minmax(0,1fr)); } .search-bar input { grid-column: 1 / -1; } #filter-panel { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 16px; } .map-shell { position: relative; top: auto; height: 270px; min-height: 270px; border-radius: 20px; } #results { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } .result-photo { height: 150px; } .result-text { padding: 15px; } .result-text strong { font-size: 19px; } }
@media (max-width:480px) { #results { grid-template-columns: minmax(0,1fr); gap: 18px; } .result-photo { height: 205px; } .result-text strong { font-size: 22px; } #branch-detail { padding: 22px; border-radius: 22px; } .profile-contacts { grid-template-columns: 1fr; gap: 6px; } .profile-contacts dd { margin-bottom: 10px; } .menu-row { font-size: 13px; gap: 10px; } #discovery-subtitle { font-size: 14px; } }
@media (prefers-reduced-motion:no-preference) { button, .result { transition: background-color .15s, box-shadow .15s; } }

/* Discovery views share the same results and filter state. */
main { grid-template-columns: minmax(0,1fr); }
.discovery-intro { padding: 0; }
h1 { font-size: clamp(28px,3.2vw,40px); }
#discovery-subtitle { margin-top: 8px; }
.discovery-toolbar { display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; }
#demo-editor { color:var(--accent); font-size:12px; padding:10px 0; }
.view-switch { display:flex; background:#e9eee2; padding:4px; border-radius:14px; }
.view-switch button { background:transparent; color:var(--muted); min-width:100px; }
.view-switch button[aria-pressed=true] { background:white; color:var(--accent); box-shadow:0 2px 6px #20382612; }
.discovery-workspace { position:relative; min-width:0; }
.map-overlays { display:contents; }
.discovery-workspace .map-shell { position:relative; top:auto; height: min(72dvh,780px); min-height:480px; }
#discovery-panel { background:#fffefa; border:1px solid var(--line); border-radius:20px; padding:16px; }
[data-view=map] #discovery-panel { position:absolute; top:16px; left:16px; width:280px; box-shadow:0 8px 28px #172a2120; }
[data-view=map] #results { display:none; }
[data-view=map] #status { margin-bottom:0; }
[data-view=map] .catalog-tabs { margin-bottom:10px; }
[data-view=list] .map-shell { position:absolute; width:100%; visibility:hidden; pointer-events:none; }
[data-view=list] .map-shell * { visibility:hidden !important; pointer-events:none !important; }
[data-view=list] #map-preview { display:none; }
[data-view=list] #results { grid-template-columns:repeat(3,minmax(0,1fr)); }
#sheet-toggle { display:none; }
#map-preview { position:absolute; right:64px; bottom:48px; width:330px; background:#fffefa; border-radius:20px; box-shadow:0 8px 28px #172a2130; overflow:hidden; }
#map-preview .result-photo { height:145px; }
.preview-text { position:relative; padding:16px; }
.preview-text strong { display:block; font-size:21px; padding-right:34px; }
.preview-text p { color:var(--muted); font-size:12px; line-height:1.5; }
.preview-save { position:absolute; right:8px; top:7px; background:transparent; color:var(--accent); font-size:24px; padding:8px; }
@media(max-width:900px) { [data-view=list] #results { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
  main { padding:12px 12px 24px; gap:12px; }
  .discovery-intro { padding:0 8px; }
  h1 { font-size:30px; }
  #discovery-eyebrow,#discovery-subtitle { display:none; }
  .discovery-toolbar { justify-content:center; }
  .view-switch { width:100%; }
  .view-switch button { flex:1; }
  .discovery-workspace .map-shell { height:72dvh; min-height:480px; }
  [data-view=map] .map-overlays { display:flex; flex-direction:column-reverse; gap:8px; position:absolute; bottom:64px; left:8px; right:8px; max-height:calc(100% - 128px); pointer-events:none; }
  [data-view=map] #discovery-panel { position:relative; width:100%; padding:10px 14px; overflow:auto; pointer-events:auto; }
  [data-view=map] #sheet-toggle { display:block; width:100%; background:transparent; color:var(--accent); padding:4px 8px; }
  [data-view=map] .catalog-tabs { margin:4px 0; }
  [data-view=map] #locate { min-height:36px; padding:6px 10px; }
  [data-view=map] #status { margin:4px 0; }
  [data-view=map][data-expanded=true] #results { display:grid; grid-template-columns:1fr; margin-top:12px; }
  [data-view=map][data-expanded=true] #map-preview { display:none; }
  #map-preview { position:relative; bottom:auto; left:auto; right:auto; width:100%; display:flex; flex-shrink:0; pointer-events:auto; }
  #map-preview .result-photo { width:90px; height:auto; flex-shrink:0; }
  #map-preview .result-photo img { min-height:150px; }
  .preview-text { flex:1; min-width:0; padding:12px; }
  .preview-text strong { font-size:17px; }
  .preview-text p { margin:6px 0; }
  .preview-text button:not(.preview-save) { min-height:36px; padding:7px 12px; }
}
@media(max-width:480px) { [data-view=list] #results { grid-template-columns:1fr; } }

.admin-page .brand-word { color:inherit; text-decoration:none; }
.admin-shell { display:grid; grid-template-columns:230px minmax(0,1fr); gap:40px; max-width:1220px; margin:auto; padding:24px 32px 48px; }
.admin-sidebar h1 { font-size:28px; letter-spacing:-.8px; margin:18px 0 28px; }
.admin-badge { display:inline-block; margin:0; padding:6px 10px; border-radius:8px; background:var(--tint); color:var(--accent); font-size:12px; font-weight:600; }
.admin-sidebar nav,.admin-guest-links { display:grid; gap:8px; }
.admin-sidebar nav a { padding:14px 16px; border-radius:12px; text-decoration:none; color:var(--muted); font-weight:600; }
.admin-sidebar nav a[aria-current] { background:var(--accent); color:white; }
.admin-guest-links { margin-top:32px; border-top:1px solid var(--line); padding-top:20px; }
.admin-guest-links a { color:var(--accent); font-size:14px; padding:8px 0; }
.admin-content { min-width:0; }
.admin-content > p:first-child { margin-top:0; color:var(--muted); }
.admin-context { padding:22px 24px; background:white; border:1px solid var(--line); border-radius:20px; }
.admin-context label { display:grid; gap:10px; font-size:13px; color:var(--muted); }
.admin-context select { font-size:19px; font-weight:600; width:100%; color:#172a21; }
.admin-context p,.admin-content section > p { color:var(--muted); font-size:14px; line-height:1.6; }
.admin-context p { margin-bottom:0; }
.admin-content h2 { font-size:26px; margin-bottom:10px; }
.admin-demo-note { color:var(--muted); font-size:12px; line-height:1.7; border-top:1px solid var(--line); padding-top:20px; margin-top:32px; }
.admin-content #restaurant-bookings { margin-top:20px; }
.admin-content #restaurant-bookings h2 { font-size:18px; }
.admin-content #district-editor { border:1px solid var(--line); }
@media(max-width:700px) {
 .admin-shell { grid-template-columns:minmax(0,1fr); gap:24px; padding:18px 20px 32px; }
 .admin-sidebar h1 { max-width:none; margin:12px 0 18px; font-size:28px; }
 .admin-sidebar nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .admin-sidebar nav a { padding:12px 10px; text-align:center; font-size:14px; }
 .admin-guest-links { display:flex; flex-wrap:wrap; gap:20px; margin-top:12px; padding-top:8px; }
 .admin-context { padding:18px; }
}
.admin-content #restaurant-bookings > h2,.admin-content #restaurant-bookings > p.profile-note { display:none; }
.workspace-form { display:grid; gap:20px; }
.workspace-form label { display:grid; gap:8px; margin:14px 0; font-size:13px; min-width:0; }
.workspace-form input,.workspace-form textarea { width:100%; min-width:0; padding:12px; border:1px solid var(--line); border-radius:12px; background:white; font:inherit; }
.workspace-form textarea { resize:vertical; }
.workspace-form fieldset { min-width:0; margin:20px 0; padding:18px; border:1px solid var(--line); border-radius:18px; background:white; }
.workspace-form legend { font-weight:600; padding:0 8px; }
.workspace-translations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.workspace-form .workspace-check { display:flex; align-items:center; gap:10px; }
.workspace-check input { width:18px; height:18px; accent-color:var(--accent); }
.workspace-actions { display:flex; gap:10px; flex-wrap:wrap; }
.workspace-actions button[type=button],.workspace-form fieldset > button { background:var(--tint); color:var(--accent); }
.workspace-form p { color:var(--muted); font-size:14px; line-height:1.6; }
.workspace-photo { width:180px; height:120px; object-fit:cover; border-radius:12px; margin:16px 0; }
.menu-dish-photo { width:64px; height:64px; object-fit:cover; border-radius:12px; }
@media(max-width:700px){.workspace-translations { grid-template-columns:minmax(0,1fr); gap:0; }.admin-sidebar nav { grid-template-columns:repeat(2,minmax(0,1fr)); }}

.workspace-location-map { height:360px; width:100%; border:1px solid var(--line); border-radius:18px; overflow:hidden; margin:16px 0; }
@media(max-width:700px){.workspace-location-map { height:300px; }}
.music-schedule { padding:8px 16px; background:white; border:1px solid var(--line); border-radius:16px; }
.music-slot { display:grid; grid-template-columns:minmax(130px,1fr) minmax(95px,120px) minmax(95px,120px) 44px; gap:10px; align-items:center; padding:10px 0; }
.music-slot + .music-slot { border-top:1px solid var(--line); }
.workspace-form .music-slot label { margin:0; }
.music-slot label > span { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.music-slot select { width:100%; }
.music-slot .music-remove { padding:8px; background:var(--tint); color:var(--accent); font-size:22px; }
.workspace-form .music-add { margin-top:12px; background:var(--tint); color:var(--accent); }
@media(max-width:600px) {
 .music-schedule { padding:6px 12px; }
 .music-slot { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px; gap:8px; }
 .music-slot > label:first-child { grid-column:1/-1; }
}
.hours-slot { grid-template-columns:minmax(130px,1fr) minmax(95px,120px) minmax(95px,120px) minmax(95px,auto); }
.hours-slot > strong { font-size:14px; font-weight:600; }
.workspace-form .hours-slot .workspace-check > span { position:static; width:auto; height:auto; overflow:visible; clip:auto; white-space:normal; }
.workspace-form .hours-slot .workspace-check input { width:18px; height:18px; }
@media(max-width:600px) {
 .hours-slot { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .hours-slot > strong { grid-column:1; grid-row:1; }
 .hours-slot > .workspace-check { grid-column:2; grid-row:1; justify-self:end; }
 .hours-slot > label:not(.workspace-check) { grid-row:2; }
}

.schedule-note { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px 14px; color:var(--muted); font-size:13px; line-height:1.5; }
.schedule-note a,.schedule-validation a { color:var(--accent); }
.schedule-note.schedule-error { color:#903f36; }
.workspace-form input[aria-invalid=true] { border-color:#bd5146; }
.schedule-validation { display:grid; gap:8px; color:#903f36; font-size:14px; }
.schedule-validation:empty { display:none; }
.menu-category { background:white; border:1px solid var(--line); border-radius:16px; margin-top:14px; overflow:hidden; }
.menu-category > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; padding:18px; font-weight:600; }
.menu-category > summary::before { content:'›'; color:var(--accent); }
.menu-category[open] > summary::before { transform:rotate(90deg); }
.menu-category > summary > span:first-child { flex:1; }
.menu-category-count { color:var(--muted); font-weight:400; font-size:12px; }
.menu-item { border-top:1px solid var(--line); }
.menu-item-row { display:grid; grid-template-columns:44px minmax(90px,1fr) 100px minmax(100px,auto) auto; align-items:center; gap:12px; padding:14px 18px; }
.workspace-form .menu-item-row label { margin:0; }
.menu-item-row > label:not(.workspace-check) > span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.menu-item-row > strong { overflow-wrap:anywhere; font-size:14px; }
.menu-item-thumb { width:44px; height:44px; border-radius:10px; background:var(--tint); color:var(--accent); display:grid; place-items:center; overflow:hidden; }
.menu-item-thumb img { width:100%; height:100%; object-fit:cover; }
.menu-edit-button,.menu-category-add { background:var(--tint); color:var(--accent); }
.menu-category-add { margin:12px 18px; }
.menu-category > p { padding:0 18px; }
.menu-item-editor { padding:0 18px 18px; background:#f5f8f2; }
@media(max-width:850px){.menu-item-row { grid-template-columns:44px minmax(0,1fr) 100px; gap:10px; }.menu-item-row > .workspace-check { grid-column:2; }.menu-item-row > button { grid-column:3; font-size:13px; padding:10px 8px; }}
@media(max-width:480px){.menu-item-row { grid-template-columns:36px minmax(0,1fr) 80px; padding:12px; gap:8px; }.menu-item-thumb { width:36px; height:36px; }.menu-item-row .workspace-check { font-size:12px; }.menu-item-editor { padding:0 12px 12px; }}

/* Version 16: list-first discovery and matching personal screens. */
body.discovery-page,body.account-page,body.reservations-page { background:#f6f6f0; color:#173629; }
body.discovery-page header,body.account-page header,body.reservations-page header { max-width:1220px; min-height:72px; padding:14px 32px; gap:22px; border-bottom:1px solid var(--line); }
body.discovery-page .brand,body.account-page .brand-word,body.reservations-page .brand-word { color:inherit; text-decoration:none; white-space:nowrap; }
body.discovery-page .brand-word,body.account-page .brand-word,body.reservations-page .brand-word { font-weight:800; }
body.discovery-page .brand-dot,body.account-page .brand-dot,body.reservations-page .brand-dot { font-size:20px; margin-left:0; }
.primary-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.primary-nav a { color:#334f3e; text-decoration:none; font-size:14px; white-space:nowrap; padding:9px 0; }
.primary-nav a:hover,.primary-nav a[aria-current=page] { color:var(--accent); }
.primary-nav a[aria-current=page] { border-bottom:2px solid var(--accent); font-weight:700; }
body.discovery-page .account-nav,body.account-page .account-nav,body.reservations-page .account-nav { gap:12px; }
body.discovery-page .account-nav a,body.account-page .account-nav a,body.reservations-page .account-nav a { color:var(--accent); font-size:13px; }
body.discovery-page .account-nav button,body.account-page .account-nav button,body.reservations-page .account-nav button { background:var(--tint); color:var(--accent); }
body.discovery-page #locale,body.account-page #locale,body.reservations-page #locale { border:1px solid var(--line); border-radius:10px; min-height:40px; }
body.discovery-page main { padding-top:30px; gap:14px; }
body.discovery-page h1 { max-width:none; font-size:clamp(30px,3.4vw,42px); font-weight:750; letter-spacing:-1.6px; }
body.discovery-page #discovery-eyebrow,body.discovery-page #favorites-eyebrow { color:var(--accent); font-size:11px; font-weight:800; letter-spacing:2px; margin:0 0 10px; }
body.discovery-page #discovery-subtitle,body.discovery-page #favorites-subtitle { margin:8px 0 0; color:var(--muted); font-size:15px; line-height:1.5; }
body.discovery-page .search-bar { margin:7px 0 0; }
body.discovery-page .search-bar input { min-height:56px; background:#fffefa; box-shadow:0 4px 14px #102c1a08; }
body.discovery-page .search-bar button { min-height:56px; }
body.discovery-page #filter-panel { background:#fffefa; box-shadow:0 5px 18px #102c1a09; }
body.discovery-page #filter-panel label { font-size:13px; }
.active-filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-height:42px; }
.filter-chip { background:#e7f1e8; border:1px solid #c6deca; color:var(--accent); border-radius:100px; min-height:38px; padding:8px 13px; font-size:13px; font-weight:650; }
body.discovery-page .discovery-toolbar { justify-content:flex-end; margin:0 0 2px; }
body.discovery-page #my-bookings-link { display:none; }
body.discovery-page .view-switch { border-radius:12px; }
body.discovery-page .view-switch button { min-width:92px; padding:10px 15px; }
body.discovery-page .discovery-workspace { margin-top:0; }
body.discovery-page [data-view=list] #discovery-panel { border:0; background:transparent; padding:0; }
body.discovery-page #status { color:var(--muted); font-size:13px; margin:4px 0 16px; }
body.discovery-page .catalog-tabs { display:none; }
body.discovery-page [data-view=list] #locate,body.discovery-page [data-view=list] #location-status { display:none; }
body.discovery-page [data-view=list] #results { gap:16px; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); }
body.discovery-page .result { border-radius:17px; background:#fffefa; box-shadow:0 5px 16px #102c1a08; height:100%; }
body.discovery-page .result:hover:not(:disabled) { box-shadow:0 12px 28px #102c1a17; }
body.discovery-page .result-photo { height:155px; }
body.discovery-page .result-text { gap:7px; padding:16px; }
body.discovery-page .result-text strong { color:#173629; font-size:20px; font-weight:750; padding-right:32px; }
body.discovery-page .result-text > span { font-size:13px; line-height:1.4; }
body.discovery-page .result-text .result-cuisine { color:var(--accent); font-size:11px; font-weight:750; letter-spacing:1px; }
body.discovery-page .result-text .result-dishes { color:#173629; font-weight:600; }
body.discovery-page .result-text .result-match { width:max-content; max-width:100%; background:#e7f1e8; color:var(--accent); border-radius:8px; padding:8px 10px; font-size:12px; }
body.discovery-page .result-text .result-more { color:var(--accent); font-weight:750; margin-top:4px; }
body.discovery-page .favorite-toggle { top:10px; right:10px; width:40px; height:40px; min-height:40px; }
body.discovery-page [data-view=map] .map-shell { height:min(65dvh,670px); min-height:420px; border-radius:20px; }
body.discovery-page [data-view=map] #discovery-panel { width:260px; background:#fffefa; }
body.discovery-page [data-view=map] #status { font-size:12px; margin:9px 0; }
body.discovery-page [data-view=map] #location-status { font-size:12px; }
body.discovery-page #branch-detail { background:#fffefa; }
body.discovery-page .profile-name { margin-top:8px; }
.profile-summary { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 5px; }
.profile-summary span { background:var(--tint); color:var(--accent); border-radius:100px; padding:8px 12px; font-size:13px; line-height:1.35; }
body.discovery-page .booking-jump { margin:18px 0 4px; }
.favorites-intro { position:relative; padding:0 170px 0 0; }
.favorites-intro #favorites-back { position:absolute; right:0; bottom:7px; display:inline-flex; align-items:center; min-height:42px; padding:10px 15px; border:1px solid var(--line); border-radius:11px; color:var(--accent); background:#fffefa; text-decoration:none; font-size:13px; font-weight:700; }
body.discovery-page:has(#discovery-workspace[data-mode=favorites]) .discovery-intro,body.discovery-page:has(#discovery-workspace[data-mode=favorites]) .active-filters,body.discovery-page:has(#discovery-workspace[data-mode=favorites]) .discovery-toolbar { display:none; }
body.discovery-page:has(#discovery-workspace[data-mode=favorites]) #favorites-note { font-size:13px; color:var(--muted); }
body.discovery-page:has(#discovery-workspace[data-mode=favorites]) #discovery-panel { border:0; background:transparent; padding:0; }
body.discovery-page:has(#discovery-workspace[data-mode=favorites]) #status { margin:8px 0 16px; }
body.discovery-page:has(#discovery-workspace[data-mode=favorites]) #locate,body.discovery-page:has(#discovery-workspace[data-mode=favorites]) #location-status { display:none; }
body.account-page .account-shell { max-width:1100px; margin:30px auto; }
body.account-page #account-current:not(:empty) { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:18px 20px; background:#fffefa; border:1px solid var(--line); border-radius:16px; }
body.account-page #account-current > span { flex-basis:100%; }
body.account-page #account-current > a { display:inline-flex; align-items:center; min-height:42px; padding:9px 14px; border-radius:10px; background:var(--tint); color:var(--accent); text-decoration:none; font-weight:700; font-size:13px; }
body.account-page .login-form { background:#fffefa; }
body.reservations-page main { display:block; max-width:900px; padding:28px 32px 55px; }
body.reservations-page #reservation-back { margin:0 0 22px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:#fffefa; color:var(--accent); text-decoration:none; font-size:13px; font-weight:700; }
body.reservations-page #my-reservations { display:flex; flex-direction:column; gap:0; }
body.reservations-page #my-reservations > h2 { order:0; margin:8px 0 5px; font-size:clamp(30px,3.4vw,42px); line-height:1.12; letter-spacing:-1.4px; }
body.reservations-page #my-reservations > .profile-note { order:1; margin:0 0 23px; font-size:14px; }
body.reservations-page #my-reservations > .reservation-tabs { order:2; display:flex; gap:8px; margin-bottom:14px; }
.reservation-tabs button { border:1px solid var(--line); background:#fffefa; color:var(--muted); border-radius:100px; padding:9px 16px; font-size:13px; }
.reservation-tabs button[aria-pressed=true] { border-color:var(--accent); background:var(--tint); color:var(--accent); font-weight:750; }
body.reservations-page #my-reservations > .reservation-list { order:3; margin:0; }
body.reservations-page #my-reservations > .reservation-empty { order:4; background:#fffefa; border:1px solid var(--line); border-radius:16px; padding:24px; color:var(--muted); }
body.reservations-page #my-reservations > button { order:5; align-self:flex-start; margin-top:18px; background:var(--tint); color:var(--accent); font-size:13px; }
body.reservations-page #my-reservations > p[role=status] { order:6; }
body.reservations-page .reservation-row { background:#fffefa; padding:22px; }
body.reservations-page .reservation-row h3 { font-size:21px; margin-bottom:10px; }
body.reservations-page .reservation-row p { font-size:13px; }
body.reservations-page .reservation-status { border-radius:100px; }
body.reservations-page .reservation-next { padding-top:14px; border-top:1px solid var(--line); color:#345846; }
body.reservations-page .reservation-actions button { background:var(--tint); color:var(--accent); font-size:13px; }
@media(max-width:900px) {
 body.discovery-page header,body.account-page header,body.reservations-page header { flex-wrap:wrap; }
 .primary-nav { margin-left:0; }
 body.discovery-page .account-nav,body.account-page .account-nav,body.reservations-page .account-nav { margin-left:auto; }
}
@media(max-width:700px) {
 body.discovery-page header,body.account-page header,body.reservations-page header { padding:16px 20px; gap:11px 18px; }
 .primary-nav { order:3; width:100%; gap:22px; }
 body.discovery-page .language,body.account-page .language,body.reservations-page .language { margin-left:auto; }
 body.discovery-page .account-nav,body.account-page .account-nav,body.reservations-page .account-nav { order:4; margin-left:0; }
 body.discovery-page main { padding:23px 20px 34px; gap:13px; }
 body.discovery-page h1 { font-size:32px; }
 body.discovery-page #discovery-eyebrow,body.discovery-page #discovery-subtitle { display:block; }
 body.discovery-page .search-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.discovery-page .search-bar input { grid-column:1/-1; }
 body.discovery-page .search-bar button { min-height:46px; }
 body.discovery-page [data-view=list] #results { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body.discovery-page [data-view=map] .map-overlays { bottom:32px; max-height:calc(100% - 64px); }
 body.discovery-page [data-view=map] #discovery-panel { width:100%; }
 body.reservations-page main { padding:24px 20px 42px; }
}
@media(max-width:480px) {
 body.discovery-page [data-view=list] #results { grid-template-columns:1fr; }
 body.discovery-page .result-photo { height:200px; }
 body.discovery-page .result-text strong { font-size:22px; }
 .favorites-intro { padding:0; }
 .favorites-intro #favorites-back { position:static; margin-top:17px; }
 .primary-nav { gap:18px; }
 .primary-nav a { font-size:13px; }
}

/* Version 19: Yelp-inspired production interface. */
:root { --ink:#202e28; --surface:#fff; --surface-raised:#fff; --page:#fff; --paper:#f7f8f4; --soft:#edf3e9; --accent:#205c44; --accent-strong:#183e32; --muted:#738077; --line:#e2e6df; --warm:#c77845; color:var(--ink); background:var(--page); }
body,body.discovery-page,body.account-page,body.reservations-page { background:var(--page); color:var(--ink); }
body > header { max-width:1540px; min-height:76px; padding:14px 42px; border-bottom:1px solid var(--line); background:var(--surface); }
.brand-word { color:var(--accent-strong); font-size:29px; font-weight:800; letter-spacing:-1.4px; }
.brand-dot { color:var(--warm); }
#city { border-color:var(--line); }
.primary-nav { gap:27px; }
.primary-nav a { color:#536059; font-size:13px; }
.language { margin-left:0; }
#locale { min-height:38px; padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); font-size:11px; font-weight:700; }
.theme-toggle { width:36px; height:36px; min-height:36px; flex:none; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--soft); color:var(--accent); font-size:18px; line-height:1; }
.theme-toggle:hover { filter:none; background:var(--paper); }
body.discovery-page main { max-width:none; padding:0 0 52px; gap:0; }
.discovery-intro { padding:29px max(42px,calc((100vw - 1456px)/2)); background:var(--paper); border-bottom:1px solid var(--line); }
body.discovery-page #discovery-eyebrow,body.discovery-page #favorites-eyebrow { margin:0 0 6px; color:var(--accent); font-size:11px; font-weight:750; letter-spacing:1.5px; }
body.discovery-page h1 { font-size:clamp(30px,3vw,42px); font-weight:750; letter-spacing:-1.4px; }
body.discovery-page #discovery-subtitle,body.discovery-page #favorites-subtitle { margin-top:7px; }
body.discovery-page .search-bar { width:min(calc(100% - 84px),1456px); margin:20px auto 0; padding:7px; grid-template-columns:minmax(0,1.5fr) auto auto; gap:7px; background:var(--surface); border:1px solid #d2d9ce; border-radius:13px; box-shadow:0 4px 14px #183e3208; }
body.discovery-page .search-bar input { min-height:48px; padding:10px 16px; border:0; border-radius:8px; background:var(--surface); box-shadow:none; }
body.discovery-page .search-bar button { min-height:48px; border-radius:9px; }
body.discovery-page #filters { padding-inline:20px; border:1px solid var(--line); background:var(--surface); color:var(--accent); }
body.discovery-page #filters[aria-expanded=true] { background:var(--soft); }
body.discovery-page #filter-panel { margin-top:4px; padding:18px; border-radius:11px; background:var(--surface); box-shadow:0 12px 30px #183e3212; }
.active-filters { width:min(calc(100% - 84px),1456px); margin:10px auto 0; }
.filter-chip { background:var(--surface); border-color:var(--line); }
body.discovery-page .discovery-toolbar { width:min(calc(100% - 84px),1456px); margin:16px auto 0; }
.view-switch { background:var(--paper); border:1px solid var(--line); padding:3px; border-radius:10px; }
.view-switch button { min-height:38px; min-width:82px; padding:8px 13px; }
.view-switch button[aria-pressed=true] { background:var(--accent-strong); color:white; box-shadow:none; }
body.discovery-page .discovery-workspace { width:min(calc(100% - 84px),1456px); margin:20px auto 0; }
body.discovery-page [data-view=list] #results { grid-template-columns:minmax(0,780px); max-width:780px; gap:0; }
body.discovery-page [data-view=list] #discovery-panel { display:grid; grid-template-columns:minmax(0,1fr); }
body.discovery-page .result-row { padding:0 0 23px; margin-bottom:23px; border-bottom:1px solid var(--line); }
body.discovery-page .result { display:grid; grid-template-columns:190px minmax(0,1fr); height:auto; border:0; border-radius:0; background:transparent; box-shadow:none; }
body.discovery-page .result:hover:not(:disabled) { box-shadow:none; }
body.discovery-page .result-photo { width:190px; height:210px; border-radius:12px; overflow:hidden; }
body.discovery-page .result-text { padding:2px 0 2px 20px; gap:8px; }
body.discovery-page .result-text strong { color:var(--ink); font-size:21px; }
body.discovery-page .result-text .result-cuisine { color:var(--muted); font-weight:500; letter-spacing:.4px; }
body.discovery-page .result-text .result-dishes { color:var(--ink); font-size:13px; font-weight:500; line-height:1.7; }
body.discovery-page .result-text .result-match { background:var(--soft); color:var(--accent); }
body.discovery-page .favorite-toggle { top:10px; left:144px; right:auto; background:#fffffff0; color:var(--accent); box-shadow:0 2px 10px #0002; }
body.discovery-page #status { max-width:780px; margin-bottom:22px; }
body.discovery-page [data-view=map] .map-shell { height:min(70dvh,720px); border-radius:14px; }
body.discovery-page [data-view=map] #discovery-panel { background:var(--surface); border-radius:14px; }
#map-preview { background:var(--surface); }
#branch-detail { max-width:1060px; padding:32px; border-radius:16px; background:var(--surface); color:var(--ink); }
#close-detail { background:var(--soft); color:var(--ink); }
.profile-name { font-size:clamp(30px,5vw,42px); }
.profile-summary span,.profile-tags span,.profile-branch { background:var(--soft); }
.profile-section p { color:var(--muted); }
.profile-music { background:var(--paper); }
.booking-form,.login-form,.role-card,.platform-restaurant,#platform-directories details,#district-editor,.reservation-row,.admin-context,.workspace-form fieldset,.music-schedule,.menu-category { background:var(--surface-raised); }
input,select,textarea,.workspace-form input,.workspace-form textarea { background:var(--surface); color:var(--ink); border-color:var(--line); }
body.account-page #account-current:not(:empty),body.account-page .login-form,body.reservations-page #reservation-back,.reservation-tabs button,body.reservations-page #my-reservations > .reservation-empty,body.reservations-page .reservation-row { background:var(--surface); color:var(--ink); }

:root[data-theme=dark] { --ink:#edf2f7; --surface:#141a22; --surface-raised:#111720; --page:#0d1117; --paper:#101722; --soft:#1b2530; --accent:#74c69a; --accent-strong:#172a21; --muted:#98a6b5; --line:#303b48; --warm:#f09362; background:var(--page); color:var(--ink); }
:root[data-theme=dark] body,:root[data-theme=dark] body.discovery-page,:root[data-theme=dark] body.account-page,:root[data-theme=dark] body.reservations-page { background:var(--page); color:var(--ink); }
:root[data-theme=dark] .brand-word { color:#dce8e2; }
:root[data-theme=dark] .primary-nav a { color:#aab6c3; }
:root[data-theme=dark] .discovery-intro { background:linear-gradient(120deg,#101722,#111b18); }
:root[data-theme=dark] body.discovery-page .search-bar { border-color:#3a4654; box-shadow:0 8px 24px #0005; }
:root[data-theme=dark] body.discovery-page .favorite-toggle { background:#141a22ed; color:var(--accent); }
:root[data-theme=dark] body.discovery-page .result-text strong,:root[data-theme=dark] body.discovery-page .result-text .result-dishes { color:var(--ink); }
:root[data-theme=dark] body.discovery-page #branch-detail,:root[data-theme=dark] body.discovery-page [data-view=map] #discovery-panel,:root[data-theme=dark] body.discovery-page #map-preview { background:var(--surface); color:var(--ink); }
:root[data-theme=dark] body.discovery-page .favorites-intro #favorites-back { background:var(--surface); }
:root[data-theme=dark] .map-shell,:root[data-theme=dark] .profile-map { background:#18202a; }
:root[data-theme=dark] .map-shell canvas,:root[data-theme=dark] .profile-map canvas { filter:brightness(.64) saturate(.76); }
:root[data-theme=dark] .catalog-tabs { background:var(--paper); }
:root[data-theme=dark] .catalog-tabs button[aria-pressed=true] { background:var(--soft); color:var(--ink); }
:root[data-theme=dark] .favorite-toggle[aria-pressed=true] { background:#3d282d; color:#ff9a9e; }
:root[data-theme=dark] .menu-item-editor { background:#0f151c; }
:root[data-theme=dark] .reservation-status { background:#4a391d; color:#f1cd8a; }
:root[data-theme=dark] .reservation-status.rejected,:root[data-theme=dark] .reservation-status.cancelled { background:#46292e; color:#ffaaa2; }
:root[data-theme=dark] dialog::backdrop { background:#05070bbd; }

@media(max-width:900px) {
  body > header { padding-inline:26px; }
  .discovery-intro { padding-inline:26px; }
  body.discovery-page .search-bar,.active-filters,body.discovery-page .discovery-toolbar,body.discovery-page .discovery-workspace { width:calc(100% - 52px); }
}
@media(max-width:700px) {
  body > header { padding:12px 18px; gap:10px 14px; }
  .brand-word { font-size:24px; }
  .theme-toggle { width:34px; height:34px; min-height:34px; order:2; }
  .primary-nav { order:3; width:100%; gap:18px; }
  .language { margin-left:auto; }
  .discovery-intro { padding:23px 18px 17px; }
  body.discovery-page h1 { font-size:29px; }
  body.discovery-page #discovery-subtitle { display:block; }
  body.discovery-page .search-bar { width:calc(100% - 36px); margin-top:15px; grid-template-columns:1fr 1fr; }
  body.discovery-page .search-bar input { grid-column:1/-1; }
  body.discovery-page #filter-panel { grid-template-columns:1fr 1fr; }
  .active-filters,body.discovery-page .discovery-toolbar,body.discovery-page .discovery-workspace { width:calc(100% - 36px); }
  body.discovery-page [data-view=list] #results { grid-template-columns:1fr; max-width:none; }
  body.discovery-page .result { grid-template-columns:112px minmax(0,1fr); }
  body.discovery-page .result-photo { width:112px; height:194px; }
  body.discovery-page .result-text { padding-left:13px; }
  body.discovery-page .result-text strong { font-size:18px; }
  body.discovery-page .result-text .result-dishes { font-size:11px; }
  body.discovery-page .favorite-toggle { left:75px; width:32px; height:32px; min-height:32px; }
  #branch-detail { width:100%; max-height:100dvh; border-radius:0; padding:24px 18px; }
}
@media(max-width:420px) {
  body.discovery-page #filter-panel { grid-template-columns:1fr; }
  body.discovery-page .result-text .result-match { display:none; }
}
