/* Touch and small-screen adjustments shared by the site and resident/staff pages. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%}
button,input,textarea,select{touch-action:manipulation}
.panel-back-link{display:none}
@media(max-width:850px){
  .panel-layout,.panel-layout>*{min-width:0}
  .panel-back-link{display:inline-flex;align-items:center;min-height:44px;margin-bottom:16px;text-underline-offset:4px}
}
@media(max-width:760px){
  body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  html{scroll-padding-top:20px}
  header:not(.portal-header){position:static}
  .container{width:calc(100% - 36px);min-width:0}
  .header-inner{gap:8px 12px;padding-block:10px}
  .header-inner .brand-logo{width:128px}
  .header-phone{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:1rem;padding:8px}
  .header-inner nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:1rem;margin-top:6px}
  .header-inner nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 4px;text-align:center;border-radius:4px;background:#f3f6f8}
  .hero{padding-top:28px;gap:24px}
  .hero-copy,.resident-grid>*,.contact-grid>*,.utility-notices>*,.safety-link-grid>*{min-width:0}
  .hero{grid-template-columns:minmax(0,1fr)}
  .hero-visual,.service-band .container>*{min-width:0}
  .service-band .container{flex-wrap:wrap;justify-content:center;padding-block:12px;gap:8px 16px;text-align:center}
  .service-band span:not(:first-child){border-left:0;padding-left:0}
  .service-band span{overflow-wrap:anywhere}
  .hero h1{font-size:clamp(2rem,8vw,3rem);overflow-wrap:anywhere}
  .hero-visual{height:240px}
  .actions,.resident-actions{display:grid;grid-template-columns:1fr;gap:12px}
  .button{width:100%;max-width:100%;min-height:48px;font-size:1rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
  .button:hover{transform:none}
  .hero-contact{flex-wrap:wrap;gap:14px}
  .hero-contact>a,.resident-other-links a,.portal-help>a,.footer-main>a:last-child{display:inline-flex;align-items:center;min-height:44px}
  .portal-help summary,.waste-year summary{min-height:48px;line-height:1.5}
  .resident-email,.contact-details a,.footer-main p{overflow-wrap:anywhere}
  .resident-other-links{display:grid;gap:4px}
  .urgent,.utility-card,.safety-links,.safety-link-grid>div,.elip-notice{padding:20px}
  .urgent strong,.urgent span,.utility-links a{overflow-wrap:anywhere}
  .urgent>a{white-space:normal;overflow-wrap:anywhere}
  .waste-toolbar{padding:18px;gap:16px}
  .waste-table-wrap{overflow:visible;min-width:0}
  .waste-table,.waste-year .waste-table{display:block;width:100%;min-width:0;font-size:1rem}
  .waste-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .waste-table tbody{display:grid;gap:12px}
  .waste-table tr{display:block;padding:16px;border:1px solid var(--line);border-radius:5px;background:#fff}
  .waste-table tbody th{display:block;width:auto;border:0;padding:0 0 10px;line-height:1.5;font-weight:700;overflow-wrap:anywhere}
  .waste-regular tbody th{padding-left:22px}
  .waste-dot{left:0;top:6px;width:12px;height:12px}
  .waste-table td,.waste-table td[data-waste-next]{display:block;padding:8px 0 0;border:0;white-space:normal;line-height:1.5;overflow-wrap:anywhere}
  .waste-table td::before{content:attr(data-label);display:block;color:var(--muted);font-size:.875rem;font-weight:400;margin-bottom:2px}
  .waste-note,.waste-help p,.waste-event ul{font-size:1rem}
  .footer-bottom{flex-wrap:wrap;align-items:flex-start;gap:12px;font-size:.875rem}
  .footer-bottom .office-panel-link{width:100%;justify-content:center;text-align:center}
}
@media(max-width:540px){
  .portal-header{padding:12px 16px;flex-wrap:wrap;gap:8px 14px}
  .portal-header>a:last-child,.header-links a{display:inline-flex;align-items:center;min-height:44px;font-size:1rem}
  .header-links{flex:1;justify-content:flex-end;gap:4px 12px}
  .portal-main{padding:0 16px;margin-top:24px;padding-bottom:env(safe-area-inset-bottom,0px)}
  .portal-main .card{padding:18px;min-width:0}
  .portal-main p,.portal-main h1,.portal-main h2,.portal-main h3,.portal-main label{overflow-wrap:anywhere}
  .portal-main input,.portal-main select,.portal-main textarea{font-size:1rem;min-height:48px}
  .portal-main input[type=file]{padding:8px;font-size:1rem}
  .portal-main input[type=file]::file-selector-button{display:block;margin:0 0 8px;min-height:44px;max-width:100%;font-size:1rem}
  .form-grid,.edit-grid,.filters{grid-template-columns:minmax(0,1fr)}
  .form-grid>*,.edit-grid>*,.filters>*{min-width:0}
  .portal-main .button{width:100%;font-size:1rem;min-height:48px;line-height:1.4;text-align:center}
  .ticket-row{min-width:0;min-height:48px}
  .ticket-row-top{gap:8px}
  .ticket-number{overflow-wrap:anywhere}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .panel-heading{align-items:stretch;gap:16px}
  .data-list{grid-template-columns:minmax(0,1fr)}
  .bottom-contact a{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:360px){
  .portal-header .header-links{flex-basis:100%;justify-content:flex-start}
  .header-inner .brand-logo{width:112px}
  .header-phone{font-size:.9375rem}
}
