/* Final responsive layer: public site, booking flow, auth and both portals. */
html,body{width:100%;max-width:100%;overflow-x:hidden}
body{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,svg,video,canvas{max-width:100%;height:auto}
button,a,input,select,textarea{touch-action:manipulation}
main,section,header,footer,.portal-app,.portal-main,.portal-content,.panel,.form-section{min-width:0}
.portal-content>*{min-width:0;max-width:100%}
.panel,.form-section,.control-panel,.builder-editor{overflow-wrap:anywhere}

@media(max-width:1100px){
  header{gap:18px;padding-inline:28px}
  .brand{min-width:0}.brand img{width:270px}
  .hero{height:560px}.hero-copy{max-width:650px}
  .search-dock{padding-inline:28px}
  .search-dock .finder-fields{grid-template-columns:1.2fr 1fr 1fr}.search-dock .search-btn{grid-column:1/-1;min-height:50px}
  .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .journey{grid-template-columns:minmax(0,1fr) minmax(350px,460px);gap:5vw;padding-inline:5vw}
  .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-app.open{grid-template-columns:235px minmax(0,1fr)}
  .portal-sidebar{padding-inline:12px}.portal-content{padding:20px}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr)}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .listing-type-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .builder-shell{grid-template-columns:190px minmax(0,1fr)}
  .builder-preview{display:none}
}

@media(max-width:820px){
  header{padding-inline:20px}.brand img{width:240px}
  .hero{height:540px;padding-inline:28px}.hero-copy{max-width:570px}.hero-copy h1{font-size:clamp(48px,8vw,68px)}
  .search-dock{padding:22px 20px 30px}.search-dock .finder-fields{grid-template-columns:1fr 1fr}
  .search-dock .finder label:first-child,.search-dock .search-btn{grid-column:1/-1}
  .metrics article{padding:24px}
  .stays,.public-info,.steps{padding:70px 28px}
  .journey{grid-template-columns:1fr;padding:70px 28px}.app-card{max-width:620px;width:100%;margin-inline:auto}
  .complaint-center{padding:70px 28px;gap:32px}
  .portal-app.open{display:block}
  .portal-sidebar{position:fixed;top:0;bottom:0;left:-330px;width:min(330px,86vw);z-index:12;transition:left .25s ease}
  .portal-sidebar.mobile-open{left:0}
  .portal-main{width:100%;max-width:100%;height:100dvh}
  .portal-menu{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid #ddd;background:#fff}
  .portal-top{height:78px;padding-inline:16px}.portal-top h2{font-size:19px}
  .portal-content{padding:18px}
  .dashboard-grid{grid-template-columns:1fr}
  .control-grid,.studio-layout,.invoice-builder,.cms-layout{grid-template-columns:1fr}
  .site-preview,.cms-preview{min-height:0;position:static}
  .integration-grid,.settings-list,.module-placeholder{grid-template-columns:repeat(2,minmax(0,1fr))}
  .builder-shell{display:block}.builder-rail{position:static;display:flex;overflow-x:auto;margin-bottom:12px}.builder-rail h3{display:none}.builder-rail button{width:auto;min-height:44px;white-space:nowrap}
  .studio-body{padding:18px;overflow-x:hidden}.studio-toolbar{gap:10px;align-items:flex-start}.studio-toolbar>div{display:flex;flex-wrap:wrap;justify-content:flex-end}
}

@media(max-width:700px){
  body{font-size:16px}
  input,select,textarea{font-size:16px!important}
  .announcement{height:32px;padding-inline:12px;text-align:center}.announcement span:first-child{font-size:11px}
  header{height:72px;padding:0 14px;gap:8px}.brand{flex:1;min-width:0}.brand img{width:min(215px,70vw);height:54px}.menu{flex:0 0 44px;width:44px;height:44px;padding:0}
  .mobile-menu-panel{width:min(360px,90vw);padding:20px max(18px,env(safe-area-inset-right)) 28px 20px}
  .hero{height:auto;min-height:500px;padding:66px 20px 54px;align-items:flex-start}.hero-copy{margin:0;max-width:540px}.hero-copy h1{font-size:clamp(42px,12vw,60px);line-height:1.02;margin-block:14px 18px}.hero-copy p{font-size:16px;line-height:1.58;max-width:92%}
  .search-dock{padding:14px 12px 26px}.search-dock .finder{border-radius:14px;overflow:hidden}.search-dock .stay-tabs{overflow-x:auto}.search-dock .stay-tabs button{min-width:104px;min-height:46px}.search-dock .finder-fields{grid-template-columns:1fr 1fr;padding:16px 12px;gap:15px 9px}.search-dock .finder label{padding-inline:3px}.search-dock .finder label:first-child,.search-dock .search-btn{grid-column:1/-1}
  .metrics{grid-template-columns:1fr 1fr}.metrics article{padding:18px 14px;min-height:98px}.metrics b{font-size:25px}.metrics span{font-size:12px}
  .stays,.public-info,.steps{padding:58px 16px}.section-head h2,.public-info h2,.steps h2,.journey h2,.complaint-center h2{font-size:clamp(34px,10vw,46px);line-height:1.06}.section-head .outline{width:100%;min-height:48px}
  .filter-row{display:grid;grid-template-columns:1fr;overflow:visible}.filter-row input{width:100%;min-height:48px}
  .property-grid{grid-template-columns:1fr}.property-img{height:220px}.property-info{padding:16px}.features{flex-wrap:wrap}.property-plan-grid{gap:5px}.property-plan{min-width:0}.book-selected{min-height:48px}
  .journey{padding:58px 16px}.journey-actions{display:grid;grid-template-columns:1fr}.journey-actions button{min-height:50px}.app-card{border-radius:22px}.app-actions{grid-template-columns:1fr 1fr}
  .info-grid,.team-grid{grid-template-columns:1fr}.complaint-center{grid-template-columns:1fr;padding:58px 16px}.complaint-center form{padding:18px 15px}.complaint-center form>div{grid-template-columns:1fr}.complaint-center button{width:100%;min-height:50px}
  footer{grid-template-columns:1fr!important;padding:44px 18px max(92px,env(safe-area-inset-bottom))!important;gap:28px!important}.brand-group{grid-column:1!important}.group-logos{grid-template-columns:1fr!important}.group-statement{flex-direction:column!important;text-align:center}
  .drawer{width:100%;right:-105%;height:100dvh;padding:22px 16px max(16px,env(safe-area-inset-bottom))}.drawer h2{font-size:clamp(28px,9vw,38px);padding-right:32px}.drawer>.summary{padding:13px;margin-block:10px}.summary>div{gap:12px}.summary>div span{max-width:58%}.drawer-plan-picker section{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-dates{grid-template-columns:1fr}.installment-picker>div{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .modal{top:auto;bottom:0;left:0;transform:translateY(104%);width:100%;max-height:90dvh;overflow:auto;padding:28px 18px max(20px,env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.modal.open{transform:translateY(0)}.methods{grid-template-columns:1fr 1fr}.methods button{min-height:54px;padding:12px 8px}
  .portal-gate.open{display:block}.gate-visual{display:none}.gate-form{min-height:100dvh;padding:78px 18px 34px;justify-content:flex-start}.gate-form>*{max-width:520px}.gate-form h2{font-size:clamp(35px,10vw,46px)}.auth-switch button,.google-login,.portal-submit{min-height:54px}.two-fields{grid-template-columns:1fr}.remember{gap:14px;align-items:flex-start}.remember a{text-align:right}
  .portal-top{height:74px;padding-inline:10px;gap:8px}.portal-top small{font-size:8px}.portal-top h2{font-size:17px}.portal-tools #globalCreate{width:42px;padding:0;font-size:20px}.portal-tools #globalCreate span{display:none}.portal-tools .bell{display:none}.avatar{width:40px;height:40px}
  .portal-content{padding:14px 12px 78px;overflow-x:hidden}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:14px}.kpi b{font-size:22px}.panel{padding:15px;margin-bottom:12px}.panel-head{gap:8px;align-items:flex-start}.panel-head h3{font-size:15px}.rent-hero{grid-template-columns:1fr;padding:18px}.rent-hero b{font-size:29px}.rent-hero button{grid-column:1;grid-row:auto;min-height:48px}.quick-grid{grid-template-columns:1fr 1fr;gap:8px}.quick-grid button{min-height:90px;padding:12px 5px}
  .portal-content .panel{overflow-x:auto;-webkit-overflow-scrolling:touch}.portal-content .data-table,.permission-matrix{min-width:660px}.ops-toolbar{flex-direction:column;align-items:stretch}.ops-toolbar>div{width:100%}.ops-search,.ops-filter{min-width:0;flex:1;width:100%}.ops-primary,.ops-secondary{min-height:44px}
  .ops-modal{padding:10px}.ops-dialog{max-height:94dvh}.ops-dialog-head{padding:14px 16px}.ops-form{padding:16px}.ops-form-grid,.pro-grid,.pro-grid.three,.form-two,.form-three{grid-template-columns:1fr}.ops-form .wide,.pro-grid .wide{grid-column:auto}.ops-form-actions{flex-direction:column-reverse}.ops-form-actions button{width:100%;min-height:46px}
  .listing-type-grid{grid-template-columns:1fr 1fr;gap:8px}.listing-type-grid button{min-height:108px;padding:12px}.listing-workspace{grid-template-columns:1fr}.listing-actions{position:sticky;bottom:62px;background:#f3f4f5;padding-block:10px;z-index:2}.photo-grid{grid-template-columns:1fr 1fr}.feature-checks{grid-template-columns:1fr 1fr}
  .integration-grid,.settings-list,.module-placeholder{grid-template-columns:1fr}.control-panel{padding:15px}.preview-hero{padding:28px 18px}.preview-search{grid-template-columns:1fr}.cms-section{grid-template-columns:34px minmax(0,1fr) auto}.cms-preview{padding:12px}.builder-editor{padding:13px}.builder-editor-head{display:block}.builder-save{width:100%;margin-top:10px}.builder-fields{grid-template-columns:1fr}.builder-fields .wide{grid-column:auto}.builder-section-row{grid-template-columns:34px minmax(0,1fr)}.builder-row-actions{grid-column:1/-1;justify-content:flex-end}.charge-rule,.menu-editor-row,.builder-add{grid-template-columns:1fr}.charge-rule button{justify-self:end}.menu-editor-row button{min-height:38px}
  .invoice-paper{width:100%!important;max-width:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:18px 14px!important;box-shadow:none}.invoice-head{gap:12px;align-items:flex-start}.invoice-head img{width:45%;height:auto}.invoice-head b{font-size:20px}.invoice-to{gap:14px;flex-direction:column;padding:20px 0}.invoice-paper table{font-size:11px}.invoice-paper th,.invoice-paper td{padding:8px 5px}.invoice-total{width:100%;max-width:280px}.email-preview{padding:12px}.email-card .email-content{padding:20px}
  .studio-toolbar{padding:10px 12px}.studio-toolbar b{font-size:14px}.studio-toolbar button{padding:8px;font-size:11px;margin-left:3px}.studio-body{padding:12px}.quick-menu{position:fixed!important;top:78px!important;right:10px!important;left:10px!important;width:auto!important;max-height:calc(100dvh - 155px);overflow-y:auto}
  .mobile-dock{padding-bottom:env(safe-area-inset-bottom);height:calc(62px + env(safe-area-inset-bottom))}
}

@media(max-width:430px){
  .brand img{width:min(190px,68vw)}
  .hero{min-height:480px;padding-top:58px}.hero-copy h1{font-size:clamp(38px,11.8vw,50px)}.hero-copy p{max-width:100%;font-size:15px}
  .search-dock .finder-fields{grid-template-columns:1fr}.search-dock .finder label:first-child,.search-dock .search-btn{grid-column:auto}.search-dock .stay-tabs button{min-width:0;font-size:11px}
  .metrics article{padding:15px 11px}.metrics b{font-size:22px}
  .property-plan-grid{grid-template-columns:1fr}.property-plan,.property-plan.active{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;text-align:left;padding:10px}.property-plan b{margin:0}.property-plan small{text-align:right}
  .app-actions{grid-template-columns:1fr}.methods{grid-template-columns:1fr}.drawer-plan-picker section{grid-template-columns:1fr}.drawer-plan-picker button{min-height:48px}.installment-picker>div{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .kpi-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.listing-type-grid,.feature-checks,.photo-grid{grid-template-columns:1fr}.portal-top h2{max-width:150px}.portal-content{padding-inline:10px}
  .group-brand img{height:68px!important}.group-brand{min-height:116px!important}
}

@media(max-height:560px) and (orientation:landscape) and (max-width:900px){
  .hero{min-height:420px}.mobile-menu-panel{overflow-y:auto}.drawer{overflow:auto}.drawer>.summary{overflow:visible}.portal-gate.open{overflow:auto}.gate-form{min-height:620px}.portal-top{position:sticky}
}

@media print{
  .invoice-paper{width:210mm!important;max-width:none!important;min-width:0!important;min-height:297mm!important;padding:18mm!important;box-shadow:none!important}
  .studio-toolbar,.portal-sidebar,.portal-top,.mobile-dock{display:none!important}
}
