/* Bid2Stay 29.2.15 — Compact Layout, Map Segments & Responsive Rhythm.
   Additive, late-loading, opt-in presentation layer. No auth, routing or data changes.
   Component ownership is deliberate: exclude Leaflet buttons, modal dismissals,
   floating navigation and payment/action widgets from generic resizing. */
html body[data-b2s-density="29.2.15"]{
  --b2s-compact-xs:6px;--b2s-compact-sm:10px;--b2s-compact-md:14px;
  --b2s-compact-lg:18px;--b2s-compact-xl:24px;
  --b2s-compact-border:#d9e1e9;
}
/* 1. All Map/Satellite/Hybrid selectors remain horizontal, readable and touch-sized.
   Many historical media queries used 1fr columns and overflow-wrap:break-word,
   which combined with the previous SVG injection to split Map and Satellite. */
html body[data-b2s-density] :is(
  .b2315-map-view,.b2s2877-location-map-views,.b2s282531-phone-map-views,
  .b2s282542-map-views,.s04-map-toolbar,.b2s-map-switcher,.map-layer-switcher
){box-sizing:border-box!important;max-width:100%!important;min-width:0!important;
  gap:4px!important;padding:4px!important;border-radius:12px!important;
  align-items:center!important;}
html body[data-b2s-density] :is(
  .b2315-map-view,.b2s2877-location-map-views,.b2s282531-phone-map-views,
  .b2s282542-map-views,.s04-map-toolbar
){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:min(100%,390px)!important;flex-wrap:nowrap!important;}
html body[data-b2s-density] :is(
  .b2315-map-view,.b2s2877-location-map-views,.b2s282531-phone-map-views,
  .b2s282542-map-views,.s04-map-toolbar,.b2s-map-switcher,.map-layer-switcher
) > button,
html body[data-b2s-density] :is(.b2s2057-map-tools,.b2s-map-style-bar)>button[data-b2s2057-map-button],
html body[data-b2s-density] :is(.b2s2057-map-tools,.b2s-map-style-bar)>button[data-b2s-map-style],
html body[data-b2s-density] .b2s-map-switcher-btn{
  box-sizing:border-box!important;display:inline-flex!important;
  align-items:center!important;justify-content:center!important;
  min-width:0!important;max-width:100%!important;width:100%!important;
  min-height:40px!important;height:40px!important;max-height:40px!important;
  padding:0 8px!important;margin:0!important;
  gap:5px!important;text-align:center!important;
  font:800 12px/1.2 Nunito,system-ui,sans-serif!important;
  letter-spacing:0!important;white-space:nowrap!important;
  overflow-wrap:normal!important;word-break:normal!important;text-transform:none!important;
}
/* Keep legacy hidden compatibility select out of segmented layout. */
html body[data-b2s-density] .b2315-map-view>.b2315-map-select-compat{display:none!important}
html body[data-b2s-density] :is(.b2s2057-map-tools,.b2s-map-style-bar){
  box-sizing:border-box;min-width:0;max-width:100%;gap:8px;
}
html body[data-b2s-density] .b2s2057-map-tools>.b2s-map-view-btn{
  flex:0 1 auto!important;width:auto!important;min-width:70px!important;
  padding-inline:12px!important;
}
html body[data-b2s-density] .b2s-map-style-bar{
  padding:8px 12px!important;gap:6px!important;align-items:center;
}
html body[data-b2s-density] .b2s-map-style-bar>button[data-b2s-map-style]{
  width:auto!important;min-width:75px!important;padding-inline:10px!important;
}
html body[data-b2s-density] :is(.b2s-map-switcher,.map-layer-switcher){
  display:flex!important;width:max-content!important;max-width:100%!important;
  overflow-x:auto!important;scrollbar-width:thin;
}
html body[data-b2s-density] :is(.b2s-map-switcher,.map-layer-switcher)>button{
  flex:0 0 auto!important;width:auto!important;min-width:72px!important;
}
/* Route-specific map wrappers: remove giant white gutters, do not change map canvas sizes. */
html body[data-b2s-density] :is(.b23-map-card,.b2s2833-map-card,.b2s2057-map-panel,
  .s04-location-map-shell,.b2s2877-location-map-shell,.b2s282531-phone-map-shell){
  box-sizing:border-box;max-width:100%;min-width:0;
}
html body[data-b2s-density] :is(.b23-map-card,.b2s2833-map-card,.b2s2057-map-panel){
  padding:clamp(12px,1.5vw,18px)!important;
}
html body[data-b2s-density] :is(.b23-map-head,.b2s2057-map-heading,.s04-map-topline){
  gap:10px!important;margin-block-end:10px!important;
}
html body[data-b2s-density] .s04-map-toolbar{margin:0 0 10px!important}
html body[data-b2s-density] .b23-map-note{margin-top:8px!important}
/* 2. Shared card density is capped, but forms maintain readable touch targets. */
html body[data-b2s-density] main :is(
  .dashboard-panel,.availability-card,.b2s-gh-welcome-card,.b2s-how-card,
  .b2s-gh-action-card,.b2s2833-request-card,.b23-card,.guest-card,.guest-panel,
  .s04-panel,.b2s2842-share-card,.b2s29053-card,
  .b2s2880-filter-panel,.b2s-gh-destination-card
){padding:16px!important;box-sizing:border-box;min-width:0;}
html body[data-b2s-density] main :is(
  .b2s30-card-content,.market-card-body,.b2s15-property-content
){padding:14px!important;min-width:0;}
html body[data-b2s-density] main :is(
  .b2s-how-grid,.b2s30-destination-grid,.b2s2880-two-grid,
  .b2s-gh-welcome-grid,.b2s-gh-action-grid,
  .b2s2880-main-grid,.b2s2880-filter-grid,.s04-grid,.b23-grid
){gap:14px!important;}
html body[data-b2s-density] main :is(
  .b2s-gh-section-head,.dashboard-section-head,.b2s-section-heading-row,
  .s04-panel-head,.starter-section-head
){gap:10px!important;margin-bottom:12px!important;}
html body[data-b2s-density] main :is(
  .b2s2833-form-section,.b2s-gh-section,.b2s-home-section,
  .b2s-gh-actions-section
){scroll-margin-top:85px;}
html body[data-b2s-density] main :is(
  .actions,.card-actions,.market-card-actions,.b2s15-property-actions,
  .b2s2842-share-actions,.dashboard-action-buttons,.s04-actions,.s04-footer-actions,
  .b2s-gh-actions,.b2s30-card-actions
){gap:8px!important;row-gap:8px!important;}
html body[data-b2s-density] main :is(.s04-field,.b23-field,.field){
  min-width:0;}
html body[data-b2s-density] main :is(
  .s04-field,.b23-field,.b2s2833-form-section
) :is(label,small){line-height:1.4;}
html body[data-b2s-density] main :is(.dashboard-panel,.b2s-gh-welcome-card,.b2s-how-card)
 :is(h2,h3,p){margin-block-start:0;}
html body[data-b2s-density] main :is(
  .b2s-gh-welcome-card,.b2s-how-card,.dashboard-panel
)>:last-child{margin-block-end:0;}
/* Existing text CTA buttons can wrap meaningfully, but must not expand all cards. */
html body[data-b2s-density] main :is(.b2s15-property-actions,.market-card-actions,
 .b2s30-card-actions,.b2s2842-share-actions)>:is(a,button){
  min-width:0;max-width:100%;box-sizing:border-box;
}
/* 3. Operational workspaces: consistent rhythm without impacting data grids. */
html body[data-b2s-density].admin-page main.admin-main :is(
  .dashboard-panel,.card,.provider-onboarding-panel,.b2s29053-card
){padding:16px!important;min-width:0;}
html body[data-b2s-density].admin-page main.admin-main :is(
  .b2s2880-main-grid,.b2s2880-health-grid,.b2s2880-stage-grid,
  .b2s2880-commercial-grid,.b2s2880-two-grid
){gap:14px!important;align-items:start;}
html body[data-b2s-density].admin-page main.admin-main :is(
  .table-wrap,.dashboard-table-wrap,.admin-table-wrap
){max-width:100%;overflow-x:auto;}
/* 4. Responsive compaction; never squash mobile map buttons to split labels. */
@media(max-width:820px){
 html body[data-b2s-density] main :is(
   .dashboard-panel,.availability-card,.b2s-gh-welcome-card,.b2s-how-card,
   .b2s-gh-action-card,.b2s2833-request-card,.b23-card,.guest-card,.guest-panel,
   .s04-panel,.b2s2842-share-card,.b2s29053-card,.b2s2880-filter-panel,
   .b2s-gh-destination-card
 ){padding:14px!important;}
 html body[data-b2s-density] main :is(.b2s30-card-content,.market-card-body,.b2s15-property-content){padding:13px!important}
 html body[data-b2s-density] main :is(
   .b2s-how-grid,.b2s30-destination-grid,.b2s2880-two-grid,
   .b2s-gh-welcome-grid,.b2s-gh-action-grid,.s04-grid,.b23-grid
 ){gap:12px!important}
 html body[data-b2s-density] :is(
   .b2315-map-view,.b2s2877-location-map-views,.b2s282531-phone-map-views,
   .b2s282542-map-views,.s04-map-toolbar
 ){width:min(100%,390px)!important;}
 html body[data-b2s-density] :is(.b23-map-card,.b2s2833-map-card,.b2s2057-map-panel){padding:12px!important}
 html body[data-b2s-density] .b2s-map-style-note{flex-basis:100%;margin-left:0;font-size:11px}
}
@media(max-width:360px){
 html body[data-b2s-density] :is(
  .b2315-map-view,.b2s2877-location-map-views,.b2s282531-phone-map-views,
  .b2s282542-map-views,.s04-map-toolbar
 )>button{padding:0 4px!important;font-size:11px!important;}
}
@media(prefers-reduced-motion:reduce){
 html body[data-b2s-density] main :is(.dashboard-panel,.b2s-gh-welcome-card,.b2s15-property-card){transition:none}
}

/* Compact map labels must fit even inside legacy 170px desktop sidebars. */
html body[data-b2s-density] :is(.b2315-map-view,.b2s2057-map-tools,.b2s2877-location-map-views,.b2s282531-phone-map-views) > button:is([data-b2315-map-button],[data-b2s2057-map-button],[data-b2s2877-map-view],[data-b2s282531-map-view]){
  padding-inline:2px!important;font-size:11px!important;letter-spacing:0!important;
}
/* Specificity bridge: old 29.2.11 button repair used three-class !important
   selectors, so the newer owned map controls need an explicit component owner. */
html body[data-b2s-density][data-b2s-button-layout] main .b23-map-card .b2315-map-view{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:min(100%,390px)!important;max-width:100%!important;
  min-width:0!important;gap:4px!important;flex-wrap:nowrap!important;
  padding:4px!important;box-sizing:border-box!important;
}
html body[data-b2s-density][data-b2s-button-layout] main .b23-map-card .b2315-map-view>button[data-b2315-map-button]{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;flex:1 1 0!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
  height:42px!important;min-height:42px!important;max-height:42px!important;
  padding:0 2px!important;margin:0!important;
  font:800 11px/1.2 Nunito,system-ui,sans-serif!important;
  letter-spacing:0!important;white-space:nowrap!important;
  overflow-wrap:normal!important;word-break:normal!important;
}
html body[data-b2s-density][data-b2s-button-layout] main .b2s2057-map-panel .b2s2057-map-tools>button[data-b2s2057-map-button]{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;width:auto!important;flex:0 0 auto!important;
  min-width:66px!important;max-width:100%!important;
  height:42px!important;min-height:42px!important;max-height:42px!important;
  padding:0 10px!important;font:800 12px/1.2 Nunito,system-ui,sans-serif!important;
  letter-spacing:0!important;white-space:nowrap!important;
  overflow-wrap:normal!important;word-break:normal!important;
}
@media(max-width:380px){
 html body[data-b2s-density][data-b2s-button-layout] main .b2s2057-map-panel .b2s2057-map-tools>button[data-b2s2057-map-button]{padding-inline:6px!important;min-width:60px!important;font-size:11px!important}
}
