/* Shared guardrails against clipped headings and squeezed grid content. */
html,body{max-width:100%;overflow-x:clip}
img,svg,video,canvas,iframe{max-width:100%}
input,select,textarea,button{max-width:100%;min-width:0}
textarea{resize:vertical}
pre{max-width:100%;overflow:auto}
code{overflow-wrap:anywhere}
:is(h1,h2,h3){max-width:100%;line-height:.96!important;text-wrap:balance;overflow-wrap:break-word}
:is(p,li,dd,dt,label,a,span,strong,small){overflow-wrap:break-word}
:is(.grid,.layout,.dashboard-grid,.portal-grid,.content-grid,.member-grid,.form-grid,.form-columns,.hero,.section-heading,.community-grid,.passport-grid,.membership-box,.route-map-grid,.spot-admin-layout,.leaderboard-layout,.goal-layout,.external-notice,.event-admin-layout,.checkin-layout,.member-admin-grid)>*{min-width:0}
.card,.stat,article,section,aside,form,fieldset{min-width:0}
.inline,.actions,.admin-actions,.growth-actions,.hero-actions,.route-map-actions{flex-wrap:wrap}
.leaflet-container{max-width:100%;overflow:hidden}
.phone-passport .progress-label{margin-bottom:8px}
.phone-passport .progress-track{margin-top:0}
.phone-passport .badge-title{display:block;margin:0 0 10px}
.phone-passport .badge-grid{margin-top:0}
.phone-passport .next-challenge{grid-auto-rows:auto;gap:4px}
.phone-passport .next-challenge>*{position:static;display:block;line-height:1.25}
.phone-passport .member-row>div:nth-child(2){gap:3px}
@media(max-width:900px){:is(h1,h2,h3){line-height:1!important}h1{font-size:clamp(3.1rem,14vw,6rem)!important}h2{font-size:clamp(2.5rem,11vw,4.8rem)!important}h3{font-size:clamp(1.65rem,8vw,3.2rem)!important}.section-heading,.rewards-section>header{align-items:start!important}}
@media(max-width:620px){h1{font-size:clamp(2.9rem,15vw,4.8rem)!important}h2{font-size:clamp(2.35rem,12vw,4rem)!important}h3{font-size:clamp(1.55rem,8vw,2.8rem)!important}table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.button,button,input,select,textarea{min-height:44px}}
