/* Rapid Deals V32 — shared responsive hardening
   Public website + Admin + Agent/Owner/Tenant portal.
   Loaded last so it resolves older fixed-width and button/grid conflicts. */

html{max-width:100%;overflow-x:hidden}
body{max-width:100%}
img,svg,video,canvas{max-width:100%}
button,input,select,textarea{max-width:100%}

/* ---------- Public website ---------- */
body:not(.rapid-admin-console):not(.agent-surface) main,
body:not(.rapid-admin-console):not(.agent-surface) .site-shell{min-width:0}

body:not(.rapid-admin-console):not(.agent-surface) :where(.button,button,input[type="submit"],input[type="button"]){box-sizing:border-box}
body:not(.rapid-admin-console):not(.agent-surface) :where(.button,.rapid-header-ask,.pf-purpose-tabs-v15 a,.pf-public-filter-v15 button,.pf-public-filter-v15>a){line-height:1.2}

/* Property search: use a true container-safe 12-column grid on wide screens. */
@media(min-width:1181px){
  .pf-public-filter-v15{grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:10px!important;overflow:hidden}
  .pf-public-filter-v15 label{min-width:0}
  .pf-public-filter-v15 label:nth-of-type(1){grid-column:span 2}
  .pf-public-filter-v15 label:nth-of-type(2){grid-column:span 1}
  .pf-public-filter-v15 label:nth-of-type(3){grid-column:span 1}
  .pf-public-filter-v15 label:nth-of-type(4){grid-column:span 1}
  .pf-public-filter-v15 label:nth-of-type(5){grid-column:span 1}
  .pf-public-filter-v15 label:nth-of-type(6){grid-column:span 1}
  .pf-public-filter-v15 label:nth-of-type(7){grid-column:span 2}
  .pf-public-filter-v15 label:nth-of-type(8){grid-column:span 1}
  .pf-public-filter-v15 button,.pf-public-filter-v15>a{grid-column:span 1;width:100%;min-width:0!important}
}

@media(max-width:1180px){
  .pf-public-filter-v15{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
  .pf-public-filter-v15 label:first-of-type{grid-column:span 2!important}
  .pf-public-filter-v15 button,.pf-public-filter-v15>a{width:100%!important;min-width:0!important}
}

@media(max-width:900px){
  .site-shell{width:min(calc(100% - 32px),var(--rapid-shell,1560px))!important}
  .pf-public-filter-v15{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:12px!important}
  .pf-public-filter-v15 label:first-of-type{grid-column:1/-1!important}
  .pf-public-filter-v15 input,.pf-public-filter-v15 select,.pf-public-filter-v15 button,.pf-public-filter-v15>a{min-height:46px!important}
  .pf-public-filter-v15 button,.pf-public-filter-v15>a{font-size:12px!important}
  .pf-properties-head-v15{padding-top:38px!important}
  .pf-properties-head-v15 .site-shell{gap:18px!important}
  .pf-properties-head-v15 h1{font-size:clamp(42px,9vw,62px)!important}
  .pf-properties-summary-v15{min-width:0!important}
  .pf-public-card-v15{min-width:0!important}
}

@media(max-width:680px){
  .site-shell{width:min(calc(100% - 24px),var(--rapid-shell,1560px))!important}
  .rapid-global-header{min-width:0;padding-inline:12px!important}
  .rapid-global-brand{min-width:0}
  .rapid-global-brand .brand-logo{width:min(210px,56vw)!important;height:auto!important}
  .rapid-global-actions{gap:7px!important}
  .rapid-header-ask{min-height:44px!important;padding-inline:12px!important;font-size:11px!important}
  .rapid-index-trigger{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .pf-properties-head-v15 .site-shell{align-items:flex-start!important;flex-direction:column!important}
  .pf-properties-summary-v15{text-align:left!important}
  .pf-purpose-tabs-v15{overflow-x:auto!important;overscroll-behavior-inline:contain;scrollbar-width:none;padding-bottom:2px}
  .pf-purpose-tabs-v15::-webkit-scrollbar{display:none}
  .pf-purpose-tabs-v15 a{flex:0 0 auto;min-height:44px!important}
  .pf-public-filter-v15{grid-template-columns:1fr 1fr!important}
  .pf-public-filter-v15 label:first-of-type{grid-column:1/-1!important}
  .pf-results-bar-v15{align-items:flex-start!important;flex-direction:column!important;gap:8px!important}
  .pf-public-card-v15{grid-template-columns:1fr!important;grid-template-rows:auto!important}
  .pf-public-image-v15{min-height:220px!important;aspect-ratio:16/10}
  .pf-public-copy-v15{padding:16px!important}
  .pf-public-side-v15{grid-column:auto!important;align-items:stretch!important;flex-direction:column!important;padding:15px!important;border-left:0!important;border-top:1px solid #e7e0d8}
  .pf-public-actions-v15{grid-column:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important}
  .pf-public-actions-v15 a{width:100%;min-width:0;white-space:normal!important;text-align:center}
  .listing-empty{padding-inline:18px!important}
  .listing-empty>div,.result-actions,.hero-actions{align-items:stretch}
  .listing-empty>div .button{min-height:46px}
}

@media(max-width:480px){
  .site-shell{width:min(calc(100% - 20px),var(--rapid-shell,1560px))!important}
  .rapid-global-brand .brand-logo{width:min(184px,54vw)!important}
  .rapid-header-ask{padding-inline:10px!important;font-size:10px!important}
  .pf-public-filter-v15{grid-template-columns:1fr!important}
  .pf-public-filter-v15 label:first-of-type{grid-column:auto!important}
  .pf-public-filter-v15 button,.pf-public-filter-v15>a{width:100%!important}
  .pf-public-actions-v15{grid-template-columns:1fr!important}
  .pf-properties-head-v15 h1{font-size:42px!important}
  .pf-properties-head-v15 p{font-size:14px;line-height:1.55}
  .pf-public-price-v15{font-size:24px!important}
  .listing-empty>div{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .listing-empty>div .button{width:100%}
}

/* Public forms and dialogs should never create horizontal scrolling. */
@media(max-width:760px){
  body:not(.rapid-admin-console):not(.agent-surface) :where(form,fieldset,.modal,.dialog,[role="dialog"]){max-width:100%}
  body:not(.rapid-admin-console):not(.agent-surface) :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){min-width:0;font-size:16px}
  body:not(.rapid-admin-console):not(.agent-surface) :where(.property-enquiry-form,.advisory-enquiry-form,.contact-form){grid-template-columns:1fr!important}
  body:not(.rapid-admin-console):not(.agent-surface) :where(.property-enquiry-wide,.wide){grid-column:auto}
}

/* ---------- Admin portal ---------- */
body.rapid-admin-console{max-width:100%;overflow-x:hidden}
body.rapid-admin-console :where(.rd-admin-workspace,.rd-admin-main,.admin-panel,.panel,.table-wrap,.rd-admin-topbar,.rd-admin-title-row){min-width:0}
body.rapid-admin-console :where(button,.auth-button,.rd-admin-primary-button,.rd-admin-secondary-button,.rd-admin-inline-button){line-height:1.2}
body.rapid-admin-console :where(.table-wrap,.ps-table-wrap,.rd-table-wrap){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.rapid-admin-console :where(table){max-width:none}

@media(max-width:1024px){
  body.rapid-admin-console :where(input,select,textarea){min-width:0}
  body.rapid-admin-console .rd-admin-main{padding-inline:20px}
  body.rapid-admin-console :where(.admin-toolbar,.button-row,.admin-actions-row,.rd-admin-page-actions,.rd-update-actions){flex-wrap:wrap}
  body.rapid-admin-console :where(.admin-tabs,.ps-tabs,.rd-tabs){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
}

@media(max-width:720px){
  body.rapid-admin-console .rd-admin-topbar{gap:8px;min-width:0}
  body.rapid-admin-console .rd-admin-top-actions{margin-inline-start:auto;gap:6px;min-width:0}
  body.rapid-admin-console .rd-admin-user-menu>summary{min-width:44px;min-height:44px;padding:4px}
  body.rapid-admin-console .rd-admin-avatar{width:36px;height:36px;flex:0 0 auto}
  body.rapid-admin-console .rd-admin-mobile-menu>summary{min-width:44px;min-height:44px;padding-inline:10px}
  body.rapid-admin-console .rd-admin-main{padding:16px 12px 30px}
  body.rapid-admin-console .rd-admin-title-row{gap:10px}
  body.rapid-admin-console .rd-admin-title-row h1{font-size:24px;overflow-wrap:anywhere}
  body.rapid-admin-console :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){width:100%;font-size:16px}
  body.rapid-admin-console :where(.auth-button,.rd-admin-primary-button,.rd-admin-secondary-button,.rd-admin-inline-button,.ps-btn){min-height:44px}
  body.rapid-admin-console :where(.button-row,.admin-button-row,.admin-actions-row,.rd-admin-page-actions){gap:8px}
  body.rapid-admin-console :where(.table-wrap,.ps-table-wrap,.rd-table-wrap){margin-inline:-12px;padding-inline:12px}
  body.rapid-admin-console .ps-media-manager-modal{padding:8px!important}
  body.rapid-admin-console .ps-media-manager-card{width:100%!important;max-height:96dvh!important}
  body.rapid-admin-console .ps-media-manager-toolbar{align-items:stretch!important;flex-direction:column!important}
  body.rapid-admin-console .ps-media-manager-toolbar>div{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}
  body.rapid-admin-console .ps-media-manager-toolbar .ps-btn{width:100%}
  body.rapid-admin-console .ps-mm-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:480px){
  body.rapid-admin-console .rd-admin-main{padding-inline:10px}
  body.rapid-admin-console .rd-admin-topbar{padding-inline:10px}
  body.rapid-admin-console .rd-admin-crumb{max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.rapid-admin-console :where(.button-row,.admin-button-row,.admin-actions-row,.rd-admin-page-actions){display:grid!important;grid-template-columns:1fr!important;width:100%}
  body.rapid-admin-console :where(.button-row,.admin-button-row,.admin-actions-row,.rd-admin-page-actions)>*{width:100%!important;min-width:0!important}
  body.rapid-admin-console .ps-mm-card-grid{grid-template-columns:1fr!important}
  body.rapid-admin-console .ps-media-manager-grid{grid-template-columns:1fr!important}
  body.rapid-admin-console .ps-media-manager-toolbar>div{grid-template-columns:1fr!important}
}

/* ---------- Agent / staff / owner / tenant portal ---------- */
body.agent-surface{max-width:100%;overflow-x:hidden}
body.agent-surface :where(.agent-shell,.agent-workspace,.agent-main,.agent-panel,.agent-card,.agent-panel-body,.agent-panel-head,.agent-topbar){min-width:0}
body.agent-surface :where(.agent-table-wrap,.table-wrap){max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.agent-surface :where(.agent-button,button){line-height:1.2}

@media(max-width:980px){
  body.agent-surface .agent-topbar{min-width:0}
  body.agent-surface .agent-topbar-actions{min-width:0;gap:7px}
  body.agent-surface .agent-icon-button{min-width:44px;min-height:44px}
  body.agent-surface :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){min-width:0;font-size:16px}
  body.agent-surface :where(.agent-tabs,.pf-inventory-tabs-v15,.rapid-drive-tabs){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}
}

@media(max-width:760px){
  body.agent-surface .agent-topbar{grid-template-columns:minmax(0,1fr) auto!important;padding:8px 10px!important}
  body.agent-surface .agent-global-search{grid-column:1/-1!important;width:100%;margin:0!important}
  body.agent-surface .agent-main{padding:16px 10px calc(92px + env(safe-area-inset-bottom))!important}
  body.agent-surface .agent-panel-head{gap:10px}
  body.agent-surface :where(.agent-inline-actions,.agent-filter-actions,.agent-record-footer,.agent-workday-strip){max-width:100%}
  body.agent-surface :where(.agent-button,.agent-form button,.agent-service[type="submit"]){min-height:44px}
  body.agent-surface .agent-mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-inline:max(5px,env(safe-area-inset-left)) max(5px,env(safe-area-inset-right))}
  body.agent-surface .agent-mobile-nav :where(a,button){min-width:0;overflow:hidden;text-overflow:ellipsis}
  body.agent-surface .agent-mobile-nav :where(a,button) span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.agent-surface :where(.agent-table-wrap,.table-wrap){margin-inline:-10px;padding-inline:10px}
  body.agent-surface .ps-media-manager-modal{padding:8px!important}
  body.agent-surface .ps-media-manager-card{width:100%!important;max-height:96dvh!important}
  body.agent-surface .ps-media-manager-toolbar{align-items:stretch!important;flex-direction:column!important}
  body.agent-surface .ps-media-manager-toolbar>div{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}
  body.agent-surface .ps-media-manager-toolbar .ps-btn{width:100%}
  body.agent-surface .ps-mm-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:480px){
  body.agent-surface .agent-main{padding-inline:8px!important}
  body.agent-surface .agent-title h1{font-size:23px!important;overflow-wrap:anywhere}
  body.agent-surface .agent-metrics{grid-template-columns:1fr!important}
  body.agent-surface :where(.agent-inline-actions,.agent-filter-actions,.agent-record-footer,.agent-quick-actions){display:grid!important;grid-template-columns:1fr!important;width:100%}
  body.agent-surface :where(.agent-inline-actions,.agent-filter-actions,.agent-record-footer,.agent-quick-actions) :where(.agent-button,a,button){width:100%!important;min-width:0!important}
  body.agent-surface .ps-mm-card-grid{grid-template-columns:1fr!important}
  body.agent-surface .ps-media-manager-grid{grid-template-columns:1fr!important}
  body.agent-surface .ps-media-manager-toolbar>div{grid-template-columns:1fr!important}
}

/* Keep focus/tap targets comfortable on touch devices without changing desktop density. */
@media(hover:none) and (pointer:coarse){
  body.rapid-admin-console :where(button,a.auth-button,.rd-admin-primary-button,.rd-admin-secondary-button,.rd-admin-inline-button),
  body.agent-surface :where(button,.agent-button),
  body:not(.rapid-admin-console):not(.agent-surface) :where(button,.button,.pf-purpose-tabs-v15 a,.pf-public-filter-v15>a){min-height:44px}
}
