/* V178 public mobile UI repair — homepage/listings only. Keeps admin separate. */
@media(max-width:760px){
  :root{--chsd-topbar-h:78px!important;--chsd-dock-h:82px!important;--chsd-safe:env(safe-area-inset-bottom,0px)!important;}
  html,body{overflow-x:hidden!important;background:#050913!important;}
  body{padding-bottom:calc(var(--chsd-dock-h) + var(--chsd-safe) + 8px)!important;}
  body:after{content:""!important;position:fixed!important;left:0!important;right:0!important;bottom:0!important;height:calc(var(--chsd-safe) + 8px)!important;background:#02050b!important;z-index:2147481900!important;pointer-events:none!important;}

  /* PUBLIC DOCK: hard edge, flush bottom, no floating pill */
  .v66Dock.chsdIconDock,
  nav.v66Dock.chsdIconDock,
  .luxuryDock.chsdIconDock{
    position:fixed!important;left:50%!important;right:auto!important;bottom:0!important;top:auto!important;transform:translate3d(-50%,0,0)!important;
    width:min(540px,100%)!important;max-width:540px!important;height:var(--chsd-dock-h)!important;min-height:var(--chsd-dock-h)!important;max-height:var(--chsd-dock-h)!important;
    display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:0!important;align-items:stretch!important;
    margin:0!important;padding:6px 6px calc(7px + var(--chsd-safe))!important;background:#02050b!important;color:#fff!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    overflow:visible!important;z-index:2147483000!important;isolation:isolate!important;
  }
  .v66Dock.chsdIconDock:before,.v66Dock.chsdIconDock:after,.luxuryDock.chsdIconDock:before,.luxuryDock.chsdIconDock:after{display:none!important;content:none!important;}
  .v66Dock.chsdIconDock a,.v66Dock.chsdIconDock button,.luxuryDock.chsdIconDock a,.luxuryDock.chsdIconDock button{
    height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;padding:4px 2px!important;border:0!important;border-radius:0!important;
    background:transparent!important;color:#fff!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;text-align:center!important;
    font-size:9px!important;line-height:1!important;font-weight:1000!important;text-decoration:none!important;box-shadow:none!important;transform:none!important;appearance:none!important;
  }
  .v66Dock.chsdIconDock .hot,.luxuryDock.chsdIconDock .hot,.luxuryDock.chsdIconDock .dockVideo{
    background:#ff1493!important;color:#fff!important;border-radius:0!important;height:100%!important;min-height:0!important;margin:0!important;box-shadow:none!important;transform:none!important;
  }
  .v66Dock.chsdIconDock .dockCustomIcon,.luxuryDock.chsdIconDock .dockCustomIcon{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;max-width:30px!important;max-height:30px!important;object-fit:contain!important;display:block!important;margin:0 auto 2px!important;}
  .v66Dock.chsdIconDock .hot .dockCustomIcon,.v66Dock.chsdIconDock .dockVideoIcon,.luxuryDock.chsdIconDock .dockVideo .dockCustomIcon{width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;}
  .v66Dock.chsdIconDock span,.luxuryDock.chsdIconDock span{display:block!important;font-size:9px!important;letter-spacing:.04em!important;text-transform:uppercase!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;color:#fff!important;margin:0!important;}

  /* PUBLIC POPUPS: exact usable window between topbar and dock */
  #listingSheet.sheet,#menuSheet.sheet,.chsdPublicSheet,.v68Sheet.sheet{
    position:fixed!important;left:50%!important;right:auto!important;top:var(--chsd-topbar-h)!important;bottom:calc(var(--chsd-dock-h) + var(--chsd-safe))!important;
    inset:var(--chsd-topbar-h) auto calc(var(--chsd-dock-h) + var(--chsd-safe)) 50%!important;transform:translateX(-50%)!important;
    width:min(540px,100%)!important;max-width:540px!important;height:auto!important;margin:0!important;padding:0!important;background:rgba(0,0,0,.62)!important;
    backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;z-index:2147482500!important;overflow:hidden!important;align-items:center!important;justify-content:center!important;
  }
  #listingSheet.sheet:not(.on),#menuSheet.sheet:not(.on){display:none!important;}
  #listingSheet.sheet.on,#menuSheet.sheet.on{display:flex!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;}
  #listingSheet .panel,#listingSheet .v68Panel,#menuSheet .panel,#menuSheet .chsdMenuPanel,.chsdPublicPanel{
    position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;
    width:100%!important;max-width:540px!important;height:100%!important;max-height:100%!important;min-height:0!important;margin:0 auto!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important;
    background:#fbf6ee!important;color:#08080a!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:10px 10px 14px!important;text-align:center!important;
  }
  #listingSheet .grab,#menuSheet .grab{width:44px!important;height:5px!important;border-radius:999px!important;background:#d8cfc2!important;margin:0 auto 8px!important;display:block!important;}
  #listingSheet .sheetTitle,#menuSheet .sheetTitle{position:sticky!important;top:0!important;z-index:10!important;background:#fbf6ee!important;display:flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:4px 48px 8px!important;text-align:center!important;}
  #listingSheet .sheetTitle h3,#menuSheet .sheetTitle h3{font-size:22px!important;line-height:1!important;letter-spacing:-.045em!important;margin:0!important;color:#07080b!important;text-align:center!important;}
  #listingSheet .sheetTitle .x,#menuSheet .sheetTitle .x{position:absolute!important;right:2px!important;top:3px!important;width:40px!important;height:40px!important;border-radius:14px!important;background:#07080b!important;color:#fff!important;display:grid!important;place-items:center!important;border:0!important;}

  /* Request tour should feel like a property action, not a generic form. */
  .v178TourBox{background:#fff!important;border-radius:26px!important;padding:12px!important;margin:8px 0 12px!important;box-shadow:0 16px 45px rgba(0,0,0,.12)!important;text-align:left!important;}
  .v178TourHero{position:relative;min-height:210px;border-radius:24px;overflow:hidden;background:#08080a;margin-bottom:10px;color:#fff;}
  .v178TourHero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.1) contrast(1.05) brightness(.78);}
  .v178TourHero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.75));}
  .v178TourHero div{position:absolute;z-index:2;left:14px;right:14px;bottom:14px;text-align:left;}
  .v178TourHero span{display:inline-flex;background:#ff1493;color:#fff;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:1000;letter-spacing:.12em;text-transform:uppercase;}
  .v178TourHero h4{font-size:28px;line-height:.9;margin:10px 0 5px;color:#fff;letter-spacing:-.05em;}
  .v178TourHero p{font-size:12px;line-height:1.25;margin:0;color:rgba(255,255,255,.82);font-weight:850;}
  .v178TourChips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 10px;}
  .v178TourChips button{border:1px solid rgba(0,0,0,.09);background:#f7f1e8;color:#08080a;border-radius:16px;min-height:44px;font-weight:1000;font-size:11px;text-transform:uppercase;letter-spacing:.05em;}
  .v178TourChips button.is-on{background:#08080a;color:#fff;border-color:#08080a;}
  #listingSheet .leadBox,#listingSheet .calc,#listingSheet .tabPane{max-width:100%!important;}
  #listingSheet .gallery{grid-auto-columns:86%!important;justify-content:start!important;}
  #listingSheet .gallery img{height:clamp(235px,42svh,390px)!important;border-radius:24px!important;}

  /* Homepage/listing cards: sharper and less basic without moving the engine. */
  .v75SpotCard,.smallListing,.listingHero,.v71FeatureCard{box-shadow:0 22px 70px rgba(0,0,0,.22)!important;}
  .v75SpotActions button,.actionGrid .act,.actionGrid .btn{border-radius:16px!important;font-weight:1000!important;}
}


/* V179 app-flush public popup patch — public home/listings only.
   Goal: modal sheets behave like an app screen between sticky top bar and bottom dock. */
@media(max-width:760px){
  body:not(.adminBody) #listingSheet.sheet,
  body:not(.adminBody) #menuSheet.sheet,
  body:not(.adminBody) .chsdPublicSheet,
  body:not(.adminBody) .v68Sheet.sheet{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    top:var(--chsd-topbar-h,78px)!important;
    bottom:var(--chsd-dock-h,82px)!important;
    width:min(540px,100vw)!important;
    max-width:540px!important;
    height:auto!important;
    transform:translate3d(-50%,0,0)!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:#fbf6ee!important;
    box-shadow:none!important;
    overflow:hidden!important;
    display:none!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }

  body:not(.adminBody) #listingSheet.sheet.on,
  body:not(.adminBody) #menuSheet.sheet.on,
  body:not(.adminBody) .chsdPublicSheet.on,
  body:not(.adminBody) .v68Sheet.sheet.on{
    display:flex!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  body:not(.adminBody) #listingSheet .panel,
  body:not(.adminBody) #listingSheet .v68Panel,
  body:not(.adminBody) #menuSheet .panel,
  body:not(.adminBody) #menuSheet .chsdMenuPanel,
  body:not(.adminBody) .chsdPublicPanel{
    flex:1 1 auto!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    background:#fbf6ee!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }

  body:not(.adminBody) #listingSheet .sheetTitle,
  body:not(.adminBody) #menuSheet .sheetTitle{
    position:sticky!important;
    top:0!important;
    z-index:30!important;
    min-height:54px!important;
    margin:0!important;
    padding:8px 58px 8px!important;
    background:#fbf6ee!important;
    border-bottom:1px solid rgba(0,0,0,.08)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.04)!important;
  }

  body:not(.adminBody) #listingSheet .grab,
  body:not(.adminBody) #menuSheet .grab{
    display:none!important;
  }

  body:not(.adminBody) #listingSheet .sheetTitle .x,
  body:not(.adminBody) #menuSheet .sheetTitle .x{
    right:10px!important;
    top:7px!important;
    border-radius:14px!important;
  }

  /* Put breathing room inside content, not outside the app sheet. */
  body:not(.adminBody) #listingSheet .tabPane,
  body:not(.adminBody) #listingSheet .leadBox,
  body:not(.adminBody) #listingSheet .calc,
  body:not(.adminBody) #listingSheet .payBox,
  body:not(.adminBody) #listingSheet form,
  body:not(.adminBody) #menuSheet .menuSupportLinks,
  body:not(.adminBody) #menuSheet .chsdMenuBody{
    margin-left:0!important;
    margin-right:0!important;
  }

  body:not(.adminBody) #listingSheet .tabPane,
  body:not(.adminBody) #listingSheet .leadBox,
  body:not(.adminBody) #listingSheet .calc,
  body:not(.adminBody) #listingSheet .payBox{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  body:not(.adminBody) #listingSheet .gallery,
  body:not(.adminBody) #listingSheet .v176TourHero,
  body:not(.adminBody) #listingSheet .v178TourHero,
  body:not(.adminBody) #listingSheet .v178TourBox{
    margin-left:0!important;
    margin-right:0!important;
  }

  body:not(.adminBody) #listingSheet .gallery{
    padding:0 0 12px!important;
    width:100%!important;
  }

  body:not(.adminBody) #listingSheet .gallery img{
    border-radius:0!important;
    width:100%!important;
    max-width:100%!important;
  }

  body:not(.adminBody) #listingSheet .v178TourBox{
    border-radius:0!important;
    box-shadow:none!important;
    border:0!important;
    padding:12px!important;
  }

  body:not(.adminBody) #listingSheet .v178TourHero,
  body:not(.adminBody) #listingSheet .v176TourHero{
    border-radius:0!important;
    margin:-12px -12px 12px!important;
    min-height:260px!important;
  }

  /* Full-bleed media viewers should feel native, not padded. */
  body:not(.adminBody) #listingSheet[data-mode="photos"] .panel,
  body:not(.adminBody) #listingSheet[data-mode="video"] .panel{
    background:#05070b!important;
    color:#fff!important;
  }

  body:not(.adminBody) #listingSheet[data-mode="photos"] .sheetTitle,
  body:not(.adminBody) #listingSheet[data-mode="video"] .sheetTitle{
    background:#05070b!important;
    color:#fff!important;
    border-bottom:1px solid rgba(255,255,255,.1)!important;
  }
}
