/* Resident-only additive PWA support. Zero insets preserve ordinary desktop layout. */
/* Paint the iOS status area ourselves; header padding keeps controls below it. */
@media(display-mode:standalone){
  html.resident-pwa{background:#202525}
  html.resident-pwa::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#202525;z-index:10000;pointer-events:none}
}
.resident-pwa{--pwa-top:env(safe-area-inset-top,0px);--pwa-right:env(safe-area-inset-right,0px);--pwa-bottom:env(safe-area-inset-bottom,0px);--pwa-left:env(safe-area-inset-left,0px)}
.resident-pwa body{padding-left:var(--pwa-left);padding-right:var(--pwa-right);padding-bottom:var(--pwa-bottom)}
.resident-pwa .site-header{height:calc(92px + var(--pwa-top));padding-top:var(--pwa-top);padding-left:max(5vw,var(--pwa-left));padding-right:max(5vw,var(--pwa-right))}
.resident-pwa .reservation-header{height:calc(88px + var(--pwa-top));padding-top:var(--pwa-top);padding-left:max(clamp(24px,5vw,76px),var(--pwa-left));padding-right:max(clamp(24px,5vw,76px),var(--pwa-right))}
.resident-pwa .checkout-header{padding-top:calc(18px + var(--pwa-top));padding-left:max(clamp(20px,5vw,72px),var(--pwa-left));padding-right:max(clamp(20px,5vw,72px),var(--pwa-right))}
.resident-pwa .drawer{padding-top:calc(36px + var(--pwa-top));padding-bottom:calc(36px + var(--pwa-bottom));padding-right:max(36px,var(--pwa-right))}
.resident-pwa .modal{padding-top:max(20px,var(--pwa-top));padding-bottom:max(20px,var(--pwa-bottom));padding-left:max(20px,var(--pwa-left));padding-right:max(20px,var(--pwa-right))}
.resident-pwa .reservation-modal{padding-top:max(24px,var(--pwa-top));padding-bottom:max(24px,var(--pwa-bottom));padding-left:max(24px,var(--pwa-left));padding-right:max(24px,var(--pwa-right))}
.resident-pwa .modal-card{max-height:min(94vh,calc(100dvh - 40px - var(--pwa-top) - var(--pwa-bottom)))}
.resident-pwa .reservation-modal-card{max-height:min(780px,90vh,calc(100dvh - 48px - var(--pwa-top) - var(--pwa-bottom)))}
.resident-pwa .toast,.resident-pwa .reservation-toast{bottom:calc(30px + var(--pwa-bottom))}
.resident-pwa .resident-chat{right:calc(24px + var(--pwa-right));bottom:calc(24px + var(--pwa-bottom))}
.resident-pwa .chat-panel{max-height:min(620px,calc(100dvh - 132px - var(--pwa-top) - var(--pwa-bottom)))}
.pwa-install[hidden]{display:none!important}.pwa-install{grid-column:1/-1;font:11px/1.7 Arial,sans-serif;letter-spacing:.06em;text-transform:none;max-width:520px}.pwa-install button,.pwa-install summary{color:inherit;background:none;border:0;padding:6px 0;font:inherit;text-align:left;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.pwa-install p{display:block;margin:8px 0 0;line-height:1.8;text-align:left}.pwa-install :focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:1050px){.resident-pwa .site-header .mobile-menu,.resident-pwa .reservation-header nav{top:calc(76px + var(--pwa-top));left:max(18px,var(--pwa-left));right:max(18px,var(--pwa-right))}}
@media(max-width:700px){
  .resident-pwa .site-header,.resident-pwa .reservation-header{height:calc(76px + var(--pwa-top));padding-left:max(18px,var(--pwa-left));padding-right:max(18px,var(--pwa-right))}
  .resident-pwa .checkout-header{padding-top:calc(14px + var(--pwa-top));padding-left:max(18px,var(--pwa-left));padding-right:max(18px,var(--pwa-right))}
  .resident-pwa .drawer{padding:calc(28px + var(--pwa-top)) max(20px,var(--pwa-right)) calc(28px + var(--pwa-bottom)) max(20px,var(--pwa-left))}
  .resident-pwa .resident-chat{right:calc(12px + var(--pwa-right));bottom:calc(12px + var(--pwa-bottom))}
  .resident-pwa .resident-chat.open{bottom:calc(12px + max(var(--pwa-bottom),var(--pwa-keyboard-inset,0px)))}
  .resident-pwa .chat-panel{right:0;width:calc(100vw - 24px - var(--pwa-left) - var(--pwa-right));max-height:calc(var(--pwa-visible-height,100dvh) - 110px - var(--pwa-top) - var(--pwa-bottom))}
  .resident-pwa .chat-head,.resident-pwa .chat-form,.resident-pwa .chat-disclaimer{flex-shrink:0}
  .resident-pwa .chat-messages{min-height:0;flex:1 1 auto;overflow-y:auto}
  .resident-pwa .chat-form input{font-size:16px}
  .resident-pwa .checkout-page .checkout-legal-modal .legal-review-card{height:calc(100dvh - 48px - var(--pwa-top) - var(--pwa-bottom));max-height:calc(100dvh - 48px - var(--pwa-top) - var(--pwa-bottom))}
}
@media(max-height:520px) and (max-width:950px){.resident-pwa .chat-head{padding:10px 16px}.resident-pwa .chat-head h2{font-size:20px}.resident-pwa .chat-form{padding:8px;grid-template-columns:1fr auto}.resident-pwa .chat-disclaimer{padding-bottom:6px}.resident-pwa .chat-panel{bottom:76px;max-height:calc(var(--pwa-visible-height,100dvh) - 124px - var(--pwa-top) - var(--pwa-bottom))}}

@media(max-height:520px) and (max-width:950px){.resident-pwa .chat-messages{min-height:0;flex:1 1 auto;overflow-y:auto}.resident-pwa .chat-head,.resident-pwa .chat-form,.resident-pwa .chat-disclaimer{flex-shrink:0}}
