/* ============================================================
   Bid2Stay Release 12.8.3.24 — Mobile Responsive & UX Upgrade
   Additive responsive layer. Desktop baseline remains unchanged.
   ============================================================ */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ min-width:0; }
button,a,input,select,textarea{ touch-action:manipulation; }
img,svg,video,canvas{ max-width:100%; }

/* Mobile public navigation additions */
.b2s-mobile-nav-actions{display:none}
.b2s-mobile-sidebar-overlay{display:none}

@media (max-width:900px){
  /* Dashboard shell and off-canvas navigation */
  .topbar{height:64px!important;min-height:64px!important;}
  .topbar-inner{padding:0 14px!important;gap:10px!important;}
  .logo img{height:38px!important;max-width:150px!important;}
  .header-actions{gap:8px!important;}
  .mobile-toggle{display:grid!important;place-items:center!important;flex:0 0 42px!important;}
  .currency{padding:2px!important;}
  .currency button{min-height:32px!important;padding:0 10px!important;font-size:10px!important;}
  .layout{display:block!important;min-height:calc(100dvh - 64px)!important;}
  .sidebar{
    display:block!important;position:fixed!important;top:64px!important;left:0!important;bottom:0!important;
    width:min(84vw,310px)!important;height:auto!important;z-index:1200!important;
    transform:translateX(-105%)!important;transition:transform .24s ease!important;
    box-shadow:18px 0 48px rgba(0,0,0,.34)!important;padding-bottom:max(24px,env(safe-area-inset-bottom))!important;
  }
  body.b2s-sidebar-open{overflow:hidden!important;}
  body.b2s-sidebar-open .sidebar{transform:translateX(0)!important;}
  .b2s-mobile-sidebar-overlay{
    position:fixed;inset:64px 0 0;z-index:1190;border:0;background:rgba(2,6,12,.58);
    backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
  }
  body.b2s-sidebar-open .b2s-mobile-sidebar-overlay{display:block;}
  .main{padding:18px 16px 38px!important;min-width:0!important;}
  .page,.guest-shell,.hotel-shell,.admin-shell,.market-page,.detail-page{width:100%!important;min-width:0!important;}
  .page-head,.guest-head,.hotel-head,.admin-head,.market-head{flex-direction:column!important;align-items:stretch!important;gap:12px!important;}
  .page-head h1,.guest-head h1,.hotel-head h1,.admin-head h1,.market-head h1{font-size:27px!important;overflow-wrap:anywhere;}
  .actions,.admin-actions,.hotel-actions,.guest-actions{width:100%;}
  .actions>.btn,.admin-actions>.btn,.hotel-actions>.btn,.guest-actions>.btn{flex:1 1 auto;}
  .guest-grid,.hotel-grid,.admin-grid,.grid.two,.grid.three{grid-template-columns:1fr!important;}
  .guest-grid>*,.hotel-grid>*,.admin-grid>*{grid-column:auto!important;}
  .card,.guest-card,.hotel-card,.admin-card,.analytics-card,.detail-card{padding:15px!important;}
  .metrics,.guest-metrics,.hotel-metrics,.admin-metrics,.analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
  .metric,.guest-metric,.hotel-metric,.admin-metric,.analytics-metric{padding:14px!important;min-width:0;}
  .metric strong,.guest-metric strong,.hotel-metric strong,.admin-metric strong,.analytics-metric strong{font-size:22px!important;overflow-wrap:anywhere;}
  .form,.b2s-contact-grid{grid-template-columns:1fr!important;}
  .form .wide,.b2s-contact-field.full,.b2s-contact-submit{grid-column:auto!important;}
  .tabs,.guest-tabs,.hotel-tabs,.admin-tabs{overflow-x:auto!important;flex-wrap:nowrap!important;padding-bottom:4px!important;scrollbar-width:none;}
  .tabs::-webkit-scrollbar,.guest-tabs::-webkit-scrollbar,.hotel-tabs::-webkit-scrollbar,.admin-tabs::-webkit-scrollbar{display:none;}
  .tab,.guest-tab,.hotel-tab,.admin-tab{flex:0 0 auto!important;white-space:nowrap!important;}
  .hotel-summary,.admin-summary,.guest-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .chart{min-width:520px;}

  /* Tables become readable card lists on mobile */
  table.b2s-mobile-card-table{display:block!important;min-width:0!important;width:100%!important;border:0!important;}
  table.b2s-mobile-card-table thead{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
  table.b2s-mobile-card-table tbody{display:grid!important;gap:12px!important;width:100%!important;}
  table.b2s-mobile-card-table tr{display:block!important;width:100%!important;padding:5px 13px!important;border:1px solid #e4e6ea!important;border-radius:12px!important;background:#fff!important;box-shadow:0 8px 24px rgba(15,23,42,.05)!important;}
  table.b2s-mobile-card-table td{display:grid!important;grid-template-columns:minmax(105px,38%) minmax(0,1fr)!important;gap:12px!important;align-items:start!important;width:100%!important;padding:10px 0!important;border:0!important;border-bottom:1px solid #eef0f3!important;text-align:right!important;overflow-wrap:anywhere!important;}
  table.b2s-mobile-card-table td:last-child{border-bottom:0!important;}
  table.b2s-mobile-card-table td::before{content:attr(data-label);text-align:left!important;color:#5d6470!important;font-size:9px!important;font-weight:900!important;letter-spacing:.07em!important;text-transform:uppercase!important;}
  table.b2s-mobile-card-table td[data-b2s-mobile-full="true"]{display:block!important;text-align:left!important;padding:14px 0!important;}
  table.b2s-mobile-card-table td[data-b2s-mobile-full="true"]::before{display:none!important;}
  table.b2s-mobile-card-table td .btn,table.b2s-mobile-card-table td button{margin:2px!important;}
  .table-wrap,.hotel-table-wrap,.admin-table-wrap{overflow:visible!important;border:0!important;background:transparent!important;}

  /* Admin intelligence report filters */
  .b2s-report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .b2s-report-filter-actions{align-self:end!important;}
  .b2s-report-pagination{gap:12px!important;flex-direction:column!important;align-items:stretch!important;}
  .b2s-report-pagination-actions{justify-content:space-between!important;}

  /* Public header */
  .b2s-global-header{position:sticky!important;top:0!important;z-index:1300!important;}
  .b2s-global-nav{max-height:calc(100dvh - 70px)!important;overflow-y:auto!important;padding-bottom:max(20px,env(safe-area-inset-bottom))!important;}
  .b2s-mobile-nav-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;padding-top:14px;margin-top:6px;border-top:1px solid rgba(255,255,255,.1);}
  .b2s-mobile-nav-actions a{display:flex!important;align-items:center!important;justify-content:center!important;min-height:46px!important;padding:0 12px!important;border-radius:9px!important;font-weight:900!important;}
  .b2s-mobile-nav-actions .b2s-mobile-login{border:1px solid rgba(245,173,22,.65)!important;color:#fff!important;}
  .b2s-mobile-nav-actions .b2s-mobile-signup{background:linear-gradient(180deg,#ffd05b,#f5ad16)!important;color:#07101b!important;}

  /* Login and registration pages */
  .b2s-login-shell,.b2s-register-shell,.b2s-partner-shell{width:min(720px,calc(100% - 28px))!important;grid-template-columns:1fr!important;gap:28px!important;padding:34px 0 52px!important;min-height:auto!important;}
  .b2s-login-intro,.b2s-register-intro,.b2s-partner-intro{text-align:center!important;margin:0 auto!important;max-width:650px!important;}
  .b2s-login-benefits,.b2s-register-benefits,.b2s-partner-benefits{width:max-content;max-width:100%;margin-left:auto!important;margin-right:auto!important;text-align:left!important;}
  .b2s-login-card,.b2s-register-card,.b2s-partner-card{width:100%!important;max-width:620px!important;margin:0 auto!important;}
}

@media (max-width:680px){
  /* Clean compact mobile public header */
  .b2s-global-header,.b2s-global-header-inner{min-height:64px!important;}
  .b2s-global-header-inner{width:calc(100% - 22px)!important;gap:8px!important;}
  .b2s-global-brand img{width:136px!important;min-width:136px!important;max-width:136px!important;height:39px!important;min-height:39px!important;max-height:39px!important;}
  .b2s-global-actions{display:none!important;}
  .b2s-global-menu{margin-left:auto!important;width:44px!important;height:42px!important;}
  .b2s-global-nav{top:64px!important;left:10px!important;right:10px!important;border:1px solid rgba(245,173,22,.24)!important;border-radius:0 0 14px 14px!important;}

  /* Homepage hero: shorter and faster to the core action */
  .ok-hero{min-height:auto!important;background-position:58% center!important;}
  .ok-hero-inner{width:calc(100% - 28px)!important;min-height:auto!important;padding:30px 0 74px!important;gap:30px!important;}
  .ok-copy{max-width:none!important;}
  .ok-eyebrow{margin-bottom:15px!important;font-size:11px!important;line-height:1.4!important;}
  .ok-copy h1{font-size:clamp(36px,10.4vw,44px)!important;line-height:.99!important;letter-spacing:-.045em!important;}
  .ok-divider{margin:20px 0 16px!important;width:68px!important;}
  .ok-copy p{font-size:15.5px!important;line-height:1.55!important;}
  .ok-actions{margin-top:22px!important;gap:10px!important;}
  .ok-action{min-height:54px!important;padding:0 16px!important;font-size:13px!important;}
  .b2s-bid-card{padding:22px 16px 0!important;border-radius:18px!important;}
  .b2s-bid-card h2{font-size:29px!important;}
  .b2s-bid-card>p{margin:7px 0 20px!important;font-size:14px!important;}
  .b2s-bid-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;}
  .b2s-field.wide{grid-column:1/-1!important;}
  .b2s-field label{font-size:9px!important;letter-spacing:.1em!important;}
  .b2s-field input,.b2s-field select{min-height:52px!important;padding:0 12px!important;font-size:15px!important;}
  .b2s-market-average{position:static!important;display:block!important;transform:none!important;margin-top:7px!important;font-size:10px!important;line-height:1.35!important;}
  .b2s-bid-submit{min-height:56px!important;font-size:15px!important;}
  .b2s-bid-stats{grid-template-columns:1fr 1fr!important;gap:0!important;margin:22px -16px 0!important;padding:18px 14px!important;}
  .b2s-bid-stat{grid-template-columns:38px 1fr!important;gap:9px!important;}
  .b2s-bid-stat:first-child{padding:0 12px 0 0!important;border-right:1px solid rgba(104,132,163,.42)!important;border-bottom:0!important;}
  .b2s-bid-stat:last-child{padding-left:12px!important;}
  .b2s-bid-stat-icon{width:36px!important;height:36px!important;font-size:17px!important;}
  .b2s-bid-stat strong{font-size:19px!important;}
  .b2s-bid-stat span{font-size:7.5px!important;}
  .ok-trust{width:calc(100% - 28px)!important;grid-template-columns:1fr 1fr!important;margin:-42px auto 20px!important;padding:10px!important;}
  .ok-trust-item{min-height:68px!important;padding:10px!important;justify-content:flex-start!important;border-right:0!important;border-bottom:1px solid rgba(99,125,154,.28)!important;}
  .ok-trust-item:nth-child(odd){border-right:1px solid rgba(99,125,154,.28)!important;}
  .ok-trust-item:nth-last-child(-n+2){border-bottom:0!important;}
  .ok-trust-icon{width:34px!important;height:34px!important;font-size:15px!important;}
  .ok-trust-item strong{font-size:8px!important;}
  .ok-trust-item span{font-size:8px!important;}

  /* Dashboard density and safe-area handling */
  .topbar,.topbar-inner{height:60px!important;min-height:60px!important;}
  .topbar-inner{padding:0 11px!important;}
  .logo img{height:35px!important;max-width:135px!important;}
  .sidebar{top:60px!important;}
  .b2s-mobile-sidebar-overlay{inset:60px 0 0!important;}
  .main{padding:14px 11px calc(28px + env(safe-area-inset-bottom))!important;}
  .page-head h1,.guest-head h1,.hotel-head h1,.admin-head h1,.market-head h1{font-size:25px!important;}
  .page-head p,.guest-head p,.hotel-head p,.admin-head p,.market-head p{font-size:12px!important;line-height:1.5!important;}
  .metrics,.guest-metrics,.hotel-metrics,.admin-metrics,.analytics-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .metric,.guest-metric,.hotel-metric,.admin-metric,.analytics-metric{padding:12px!important;min-height:96px;}
  .metric span,.guest-metric span,.hotel-metric span,.admin-metric span,.analytics-metric span{font-size:9px!important;line-height:1.35!important;}
  .metric strong,.guest-metric strong,.hotel-metric strong,.admin-metric strong,.analytics-metric strong{font-size:20px!important;}
  .card,.guest-card,.hotel-card,.admin-card,.analytics-card,.detail-card{padding:13px!important;border-radius:11px!important;}
  .btn,a.btn,button.btn{min-height:42px!important;}
  input,select,textarea,.field input,.field select,.field textarea{font-size:16px!important;}
  .b2s-report-filter-grid{grid-template-columns:1fr!important;}
  .b2s-report-filter-actions .btn{width:100%!important;}
  .b2s-report-meta{align-items:flex-start!important;flex-direction:column!important;gap:8px!important;}
  .b2s-report-pagination-actions{display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;gap:8px!important;}
  .b2s-report-pagination-actions .btn{padding:0 10px!important;}

  /* Authentication screens */
  .b2s-login-shell,.b2s-register-shell,.b2s-partner-shell{width:calc(100% - 22px)!important;padding:24px 0 40px!important;gap:22px!important;}
  .b2s-login-intro h1,.b2s-register-intro h1,.b2s-partner-intro h1{font-size:37px!important;line-height:1.02!important;}
  .b2s-login-intro>p,.b2s-register-intro>p,.b2s-partner-intro>p{font-size:14px!important;line-height:1.55!important;}
  .b2s-login-card,.b2s-register-card,.b2s-partner-card{padding:22px 17px!important;border-radius:16px!important;}
  .b2s-login-card h2,.b2s-register-card h2,.b2s-partner-card h2{font-size:27px!important;}
}

@media (max-width:370px){
  .currency{display:none!important;}
  .b2s-bid-grid{grid-template-columns:1fr!important;}
  .b2s-field.wide{grid-column:auto!important;}
  .metrics,.guest-metrics,.hotel-metrics,.admin-metrics,.analytics-metrics{grid-template-columns:1fr!important;}
  .ok-trust{grid-template-columns:1fr!important;}
  .ok-trust-item,.ok-trust-item:nth-child(odd){border-right:0!important;border-bottom:1px solid rgba(99,125,154,.28)!important;}
  .ok-trust-item:last-child{border-bottom:0!important;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}
