/* Content and small-screen sizing; map interactions retain their existing layout. */
html { scroll-behavior:smooth; }
body { margin:0; }
#app[hidden] { display:none !important; }
#app, #header, #map-wrap, #sidebar, .store-info, #mobile-panel, #mobile-detail-panel { min-width:0; max-width:100%; }
#header { box-sizing:border-box; }
#site-nav { max-width:42vw; }
#page-info, .price-intro, #map-status { box-sizing:border-box; overflow-wrap:anywhere; }
.price-intro, #map-status { padding:12px 18px; background:var(--surface,#fff); color:var(--text,#222); }
.price-intro p { margin:6px 0; }
.price-nav { display:flex; flex-wrap:wrap; gap:8px 16px; padding:8px 0; }
.price-nav a, #price-data a, #map-status a { color:var(--accent,#176a50); text-decoration:underline; }
#price-stores { width:100%; table-layout:fixed; }
#price-stores th:first-child { width:53%; }
#price-stores th, #price-stores td { overflow-wrap:anywhere; white-space:normal; }
#price-data { scroll-margin-top:12px; }
#address-detail { max-width:min(90vw,480px); border:1px solid #aaa; border-radius:12px; }
.price-insight { border-left:3px solid var(--accent,#176a50); padding-left:12px; }
@media(max-width:700px) {
 #header { gap:5px; padding-left:8px; padding-right:8px; flex-wrap:wrap; }
 #header .header-title { min-width:0; }
 #page-info { padding-left:12px; padding-right:12px; }
 #price-stores { font-size:12px; }
 #price-stores th, #price-stores td { padding:5px; }
 #ad-bottom { display:none !important; }
 :root { --ad-bottom-h:0px; }
}
