/* One scroll container per panel. Defaults leave at least half of the map visible. */
#businessSide{height:18%!important;max-height:18%!important;min-height:0!important;align-self:end;display:block;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin}
#businessSide.menuSized{height:var(--menu-height)!important;max-height:min(var(--menu-height),calc(100% - 32px))!important}
#businessSide .list{height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important;flex:none}
#businessSide .filters,#businessSide .mobileSideHead,#businessSide .browseHeading{position:static!important;flex:none}
#businessSide .mobileSideHead{display:flex!important;min-height:44px;align-items:center;gap:8px;padding:0 9px}
#businessSide .mobileSideHead strong{font-size:14px;white-space:nowrap}
#businessSide .browseHeading{display:none}
#businessSide #mobileFilterToggle{margin-left:auto;width:auto!important;min-height:36px;min-width:44px;padding:5px 10px;font-size:12px;border:1px solid #dbe3eb;background:white;border-radius:8px}
#businessSide #mobileListClose{width:40px;height:40px;min-width:40px;border:0;border-radius:8px;background:#f2f6f4;font-size:25px;color:#405a4c}
#businessSide:not(.mobileFiltersOpen) .listRegionFilter,#businessSide:not(.mobileFiltersOpen) .personalPlaceTabs,#businessSide:not(.mobileFiltersOpen) #hiddenPlacesHelp,#businessSide:not(.mobileFiltersOpen) #cats,#businessSide:not(.mobileFiltersOpen) #subs{display:none!important}
#businessSide .benefitTabs{margin:4px 0}.side .sort{margin-top:3px}
#businessSide>.menuResizeGrip{min-height:24px;height:24px}
#detail.show{display:block!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-width:thin}
#detail .detailBody,#detail .detailSummary{overflow:visible!important;max-height:none!important;flex:none}
#detail .detailHeader,#detail .detailHeader *,#businessSide .menuResizeHeader,#businessSide .menuResizeHeader *{position:static;touch-action:pan-y pinch-zoom!important;cursor:auto;-webkit-user-select:auto;user-select:auto}
#detail .detailHeader button,#businessSide .mobileSideHead button{cursor:pointer}
/* Nearby results can be closed without clearing the search origin or map pins. */
.nearbyResults{display:flex;flex-direction:column;max-height:var(--nearby-max-height,196px)!important;overflow:hidden!important;padding:0 8px 8px;box-sizing:border-box}
.nearbyResizeGrip{display:flex;flex:0 0 24px;min-height:24px;align-items:center;justify-content:center;touch-action:none;cursor:ns-resize;user-select:none}
.nearbyResizeGrip span{width:42px;height:4px;border-radius:8px;background:#b6c8c1}
.nearbyResults .nearbyResultsHead{flex:none;gap:4px;padding:0 0 4px}
.nearbyResultsHead>strong{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nearbyResults .nearbyResultsHead button{min-height:36px;min-width:40px;padding:4px 7px}
.nearbyResults #nearbyClose{font-size:24px;border:0;background:#f2f6f4}
#nearbyResultsBody{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
#nearbyResultsBody[hidden]{display:none!important}
.nearbyResultsMeta{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.nearbyResultsMeta small{font-size:10px;line-height:1.4;color:#718174;flex:1}
.nearbyResultsMeta button{flex:none;min-height:28px;padding:4px 7px;font-size:11px;border:0;background:transparent;color:#2e644c}
.nearbyResults .nearbyResultCard{padding:8px 10px}
.nearbyResults.isCollapsed{height:52px;max-height:52px!important;padding:7px 8px}
.nearbyResults.isCollapsed .nearbyResizeGrip{position:absolute;inset:0 110px 0 0;min-height:0;opacity:0}
.nearbyResults.isCollapsed .nearbyResultsHead{padding:0}
.nearbyResults.nearbyDragging{transition:none!important;user-select:none}
.nearbyReopen{position:absolute;z-index:13;bottom:14px;left:14px;min-height:40px;padding:8px 13px;border:1px solid #bed8c9;border-radius:20px;background:#fff;color:#2a624a;font:600 12px/1.4 system-ui,sans-serif;box-shadow:0 3px 12px #244c381c}
.nearbyReopen[hidden],.nearbyReopen.nearbyFiltersOpen,.mapwrap.listOpen .nearbyReopen,.mapwrap.detailOpen .nearbyReopen{display:none!important}
.nearbyReopen:focus-visible,.nearbyResizeGrip:focus-visible{outline:2px solid #247f78;outline-offset:-2px}
@media(max-width:900px){.nearbyResults{padding:0 8px 6px}.nearbyReopen{left:10px}.nearbyResults .nearbyResultCard{flex-basis:225px}}
/* On desktop the freed space belongs to the map, not an empty sidebar column. */
@media(min-width:901px){
 .content{--desktop-list-offset:350px}
 .content>.mapwrap{grid-column:1/-1;grid-row:1}
 .content>#businessSide{grid-column:1;grid-row:1;z-index:14;border:1px solid #dce6e2;border-radius:14px 14px 0 0;box-shadow:0 3px 14px #244c3817}
 .content.desktopListCollapsed{--desktop-list-offset:0px}
 #desktopListToggle{left:var(--desktop-list-offset)}
 .mapwrap #areaLegend{left:calc(var(--desktop-list-offset) + 14px)!important;max-width:calc(100% - var(--desktop-list-offset) - 28px)}
 .mapwrap.detailOpen #areaLegend{max-width:calc(100% - var(--desktop-list-offset) - clamp(360px,34vw,440px))}
 .nearbyResults,.nearbyReopen{left:calc(var(--desktop-list-offset) + 14px)}
}
@media(min-width:901px) and (max-width:1199px){.content{--desktop-list-offset:300px}}
@media(min-width:1500px){.content{--desktop-list-offset:380px}}

/* 2026-09-20: expand the PANEL first; then scroll at full height. */
.sheetDragSurface,.sheetDragSurface *{touch-action:pan-x pinch-zoom!important;-webkit-user-select:none;user-select:none}
.sheetDragSurface input,.sheetDragSurface textarea,.sheetDragSurface select,.sheetDragSurface [contenteditable="true"]{touch-action:auto!important;-webkit-user-select:text;user-select:text}
#businessSide>.menuResizeGrip{height:12px;min-height:12px}
#businessSide .mobileSideHead{min-height:36px;padding:0 7px}
#businessSide .mobileSideHead button{min-height:32px;height:32px}
#businessSide .filters{padding:5px 8px}
#businessSide:not(.mobileFiltersOpen)>.filters{display:none!important}
#businessSide .listRegionFilter,#businessSide .benefitTabs,#businessSide #cats,#businessSide #subs{display:none!important}
#businessSide .personalPlaceTabs{flex-wrap:wrap}
#businessSide #list{padding-top:3px}
#businessSide .card{padding-top:7px;padding-bottom:7px}
.nearbyResults{height:92px;max-height:var(--nearby-max-height,92px)!important}
.nearbyResults .nearbyResizeGrip{height:10px;min-height:10px;flex-basis:10px}
.nearbyResults .nearbyResultsHead{min-height:28px;padding-bottom:0}
.nearbyResults .nearbyResultsHead button{min-height:28px;height:28px;padding:2px 6px}
.nearbyResults .nearbyResultsMeta{display:none}
.nearbyResults.nearbyTall .nearbyResultsMeta{display:flex}
.nearbyResults .nearbyResultCard{padding:3px 7px;gap:0;font-size:11px}
.nearbyResults .nearbyResultCard strong{font-size:12px;line-height:1.4}
.nearbyResults.isCollapsed{height:52px!important}
.nearbyResults.isCollapsed .nearbyResizeGrip{display:none}
.nearbyResults.nearbyTall .nearbyResultCards{flex-wrap:wrap;overflow-x:hidden}
.nearbyResults.nearbyTall .nearbyResultCard{flex:1 0 210px}
#reviewModal .modal{width:min(680px,calc(100vw - 24px));height:min(88dvh,850px);max-height:min(88dvh,850px);overflow:auto;box-sizing:border-box;padding:0 18px 12px;overscroll-behavior:contain}
.reviewEditorHeader{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;background:white;padding:12px 0;border-bottom:1px solid #e3ebe7}
.reviewEditorHeader h3{margin:0;flex:1;font-size:18px}
#reviewEditorClose{flex:none;width:44px;height:44px;border:0;border-radius:9px;background:#f2f6f4;color:#355b50;font-size:28px;cursor:pointer}
.reviewPlaceName{font-size:13px;font-weight:650;color:#275b50;margin:9px 0}
#reviewSaveStatus:empty{display:none}
#reviewSaveStatus,.reviewConnectionNote{font-size:12px;line-height:1.6;color:#87621c}
#reviewModal #rText{min-height:160px;resize:vertical}
#reviewModal .modalactions{position:sticky;bottom:-12px;z-index:2;background:white;padding:10px 0;border-top:1px solid #e3ebe7}
.ratingOnlyRecords{margin:12px 0;padding:10px;border:1px solid #e3ebe7;border-radius:10px;font-size:13px}
.ratingOnlyRecords h3{font-size:13px;margin:0 0 6px}.ratingOnlyRecords p{margin:5px 0}.ratingOnlyRecords small{display:block;color:#718077;font-size:11px}
.registrantDescription small{color:#718077;font-size:11px}.registrantDescription p{margin:3px 0 8px;white-space:pre-wrap}
@media(max-width:900px){#reviewModal .modal{width:calc(100vw - 16px);height:90dvh;max-height:90dvh;padding-left:14px;padding-right:14px}}

#detail.sheetDragSurface,#detail.sheetDragSurface *,#businessSide.sheetDragSurface,#businessSide.sheetDragSurface *,#areaLegend.sheetDragSurface,#areaLegend.sheetDragSurface *,#areaPanel.sheetDragSurface,#areaPanel.sheetDragSurface *,#nearbyResults.sheetDragSurface,#nearbyResults.sheetDragSurface *{touch-action:pan-x pinch-zoom!important}
#detail.sheetDragSurface input,#detail.sheetDragSurface textarea,#businessSide.sheetDragSurface input,#businessSide.sheetDragSurface select,#areaLegend.sheetDragSurface select{touch-action:auto!important}
#nearbyApproximate{margin:4px 0 8px;padding:7px 10px;white-space:normal;line-height:1.4}

/* Anchored sheet headers: scrolling content never carries the grip/title/close away.
   The outer panel still scrolls so expand-first, anywhere-drag and saved positions
   use the same container. Sticky offsets match each grip's actual occupied height. */
#businessSide{--list-header-grip:12px;scroll-padding-top:64px}
#businessSide>.menuResizeGrip{position:sticky;top:0;z-index:12;height:var(--list-header-grip);min-height:var(--list-header-grip);margin:0;background:#fff;border-radius:0}
#businessSide>.mobileSideHead{position:sticky!important;top:var(--list-header-grip);z-index:11;background:#fff;box-shadow:0 1px 0 #e3ebe7}
#detail{--detail-header-inset:16px;--detail-header-grip:34px;scroll-padding-top:144px}
#detail>.detailResizeHandle{position:sticky;top:var(--detail-header-inset);z-index:12;height:var(--detail-header-grip);min-height:var(--detail-header-grip);margin:0;background:#fff;box-shadow:0 calc(-1 * var(--detail-header-inset)) 0 var(--detail-header-inset) #fff;border-radius:0}
#detail>.detailHeader{position:sticky!important;top:calc(var(--detail-header-inset) + var(--detail-header-grip));z-index:11;background:#fff;box-shadow:0 1px 0 #e3ebe7}
@media(max-width:900px){#detail{--detail-header-inset:10px}}
