/* Local search is a single aligned form; labels stay above equal controls. */
:root[data-theme] body #app .places-filters{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:16px;align-items:end}
:root[data-theme] body #app .places-filters label.field{display:flex!important;flex-direction:column;align-items:stretch;gap:8px;margin:0!important;min-width:0;font-size:15px;line-height:1.8}
:root[data-theme] body #app .places-filters :is(input,select,button[type=submit]){height:52px;min-height:52px;max-height:52px;margin:0!important;box-sizing:border-box;font-size:16px;line-height:1.5;padding:12px 16px;width:100%;min-width:0}
:root[data-theme] body #app .places-filters button[type=submit]{display:flex;align-items:center;justify-content:center;align-self:end}
:root[data-theme] body #app .place-numbered .place-card-top{padding-inline-end:0}
:root[data-theme] body #app .motoryar-map-pin svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:root[data-theme] body #app .street-map-status:empty{display:none}
:root[data-theme] body [hidden]{display:none!important}
:root[data-theme] body #app .place-selected>.place-card{border-color:var(--ui-accent);box-shadow:0 0 0 2px var(--ui-soft)}
:root[data-theme] body #app .place-card-actions [aria-pressed=true]{background:var(--ui-soft)!important;color:var(--ui-accent)!important;border-color:var(--ui-accent)}
:root[data-theme] body #app .leaflet-tooltip{font-family:var(--font-product);font-size:13px;background:var(--ui-surface);color:var(--ui-fg);border-color:var(--ui-line);direction:rtl}
@media(max-width:600px){:root[data-theme] body #app .places-filters{grid-template-columns:minmax(0,1fr);gap:14px}}

/* Directory: stacked introduction/search beside the map, then 3/2/1 results. */
:root[data-theme] body #app .places-directory-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px;align-items:start;margin-bottom:24px;min-width:0}
:root[data-theme] body #app .places-directory-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;min-width:0}
:root[data-theme] body #app .places-directory-top>.places-map-panel{position:sticky;top:24px;order:0;width:100%;min-width:0}
:root[data-theme] body #app .places-directory-top .motoryar-street-map{height:clamp(320px,31vw,420px)!important;min-height:280px!important}
:root[data-theme] body #app .places-directory-intro>*{min-width:0;max-width:100%;box-sizing:border-box;margin:0}
:root[data-theme] body #app .places-directory-intro .places-hero{padding:24px;gap:16px}
:root[data-theme] body #app .places-directory-intro .places-hero h1{font-size:26px;line-height:1.7;overflow-wrap:anywhere}
:root[data-theme] body #app .places-directory-intro .places-hero>span{display:none}
:root[data-theme] body #app .places-directory-intro .places-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:24px}
:root[data-theme] body #app .places-directory-intro .places-filters button{grid-column:1/-1}
:root[data-theme] body #app .places-directory-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
:root[data-theme] body #app .places-directory-layout>.places-map-panel{position:static;order:0;width:100%;min-width:0}
:root[data-theme] body #app .places-directory-layout .motoryar-street-map{height:clamp(280px,33vw,440px)!important;min-height:280px!important}
:root[data-theme] body #app .places-directory-layout .places-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
:root[data-theme] body #app .places-directory-layout .place-numbered{display:flex;min-width:0;max-width:100%}
:root[data-theme] body #app .places-directory-layout .place-card{display:flex;flex-direction:column;flex:1;min-width:0;max-width:100%;box-sizing:border-box;padding:24px}
:root[data-theme] body #app .places-directory-layout .place-card :is(h3,p,span,a,button){min-width:0;max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
:root[data-theme] body #app .places-directory-layout .place-card-actions{margin-top:auto;padding-top:20px;min-width:0;gap:12px}
:root[data-theme] body #app .places-directory-layout .place-navigation{width:100%;min-width:0;flex-wrap:wrap}
:root[data-theme] body #app .places-directory-layout .empty{grid-column:1/-1}
@media(max-width:1099px){:root[data-theme] body #app .places-directory-layout .places-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){
 :root[data-theme] body #app .places-directory-top{grid-template-columns:minmax(0,1fr);gap:20px}
 :root[data-theme] body #app .places-directory-top>.places-map-panel{position:static}
 :root[data-theme] body #app .places-directory-top .motoryar-street-map{height:320px!important}
}
@media(max-width:600px){
 :root[data-theme] body #app .places-directory-layout .places-cards{grid-template-columns:minmax(0,1fr)}
 :root[data-theme] body #app .places-directory-layout .place-card{padding:20px}
 :root[data-theme] body #app .places-directory-intro .places-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;column-gap:12px}
 :root[data-theme] body #app .places-directory-intro .places-hero{padding:20px}
}

/* Keep selected-place text inside narrow phone maps. */
:root[data-theme] body #app .places-directory-top .leaflet-popup-content{max-width:min(240px,calc(100vw - 120px));overflow-wrap:anywhere}

@media(max-width:600px){:root[data-theme] body #app .places-directory-top .leaflet-top.leaflet-right{top:auto;bottom:12px;right:auto;left:0}}

@media(max-width:600px){:root[data-theme] body #app .places-directory-intro .places-filters>label.field{grid-column:auto;grid-row:1}}
