html,body{min-width:0}body{width:100%}main,section,article,nav,form,fieldset,.controls,.filters,.row,.account-columns>*{min-width:0}img,video,iframe,canvas{max-width:100%}h1,h2,h3,p,a,small,label,button{overflow-wrap:anywhere}button{white-space:normal}input,select,textarea{min-width:0;max-width:100%}pre{max-width:100%;overflow:auto}.grid{grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr))}.account-menu{min-width:0}.account-menu summary{max-width:min(240px,55vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-dropdown{max-width:calc(100vw - 24px)}.detail-nav{position:sticky;top:0;z-index:15;background:#f1f5f5f5;backdrop-filter:blur(10px);width:100%;max-width:100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding:8px 0}.detail-nav button{flex:none;min-height:44px;white-space:nowrap}.detail-nav button[aria-current=location]{color:white;background:#007e87}#area-page>section{scroll-margin-top:80px}#map-page{max-width:1100px;margin:auto;padding:28px 20px}#map-page h1{font-size:clamp(30px,6vw,52px)}#area-map{height:450px;max-height:70dvh;width:100%;border-radius:16px;background:#dce9e9;z-index:0;isolation:isolate}#area-map:fullscreen{max-height:none;height:100dvh;border-radius:0}.map-consent{padding:20px;background:white;border:1px solid #d9e5e6;border-radius:16px}.map-tools{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.map-tools[hidden]{display:none}.map-search{display:block;margin:24px 0 10px;font-weight:650}.map-search input{display:block;margin-top:8px;width:100%}.map-area-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:12px}.map-area-list>div{padding:16px;background:white;border-radius:12px;min-width:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.map-area-list a{font-weight:700;flex-basis:100%;min-height:44px;display:flex;align-items:center}.map-area-list small{flex:1 1 120px;min-width:0}.ski-map-marker{background:#173343;border:3px solid white;border-radius:50%;box-shadow:0 2px 8px #17334366;display:grid;place-items:center;color:white;font-size:23px}.ski-map-marker:focus{outline:3px solid #ef873b}.leaflet-container{font:14px system-ui}.leaflet-control-attribution{max-width:100%;font-size:11px!important}.leaflet-tooltip{max-width:min(240px,75vw);white-space:normal}.account-card,.account-stat,.account-list>*{min-width:0}.pwa-card a{display:inline-block;min-height:44px;padding-top:10px}
@media(max-width:767px),(max-width:1024px) and (max-height:500px){input,select,textarea{font-size:16px}.controls{padding:16px}.filters>*{min-width:0!important;max-width:100%;flex:1 1 100%}.row{flex-wrap:wrap}.row>small{flex:1 1 120px;min-width:0}.card{padding:18px}.account-topbar{gap:8px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.account-topbar>a{min-width:0;overflow-wrap:anywhere}.account-dialog,dialog.camera-dialog{max-height:calc(100dvh - 24px);width:calc(100% - 24px);padding:18px}.account-stat{padding:14px}.account-stat strong{font-size:26px}.account-stat small{overflow-wrap:anywhere}.account-actions{flex-wrap:wrap}.account-actions>*{min-width:0;max-width:100%}.detail-nav{top:env(safe-area-inset-top,0px)}#area-page>section{scroll-margin-top:calc(80px + env(safe-area-inset-top,0px))}#map-page{padding:24px 16px}.map-tools button{flex:1 1 140px;min-height:44px}#area-map{height:380px}.account-menu summary{max-width:42vw}.account-toast{left:12px!important;right:12px!important;width:auto!important;max-width:calc(100% - 24px)!important}.auth-shell,.auth-panel,.auth-brand{min-width:0}.auth-panel{padding:24px 18px}.auth-form .form-row>*{min-width:0}.pwa-banner button{max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
.account-menu>div{max-width:calc(100vw - 24px)}
/* An opaque system-area cap ends at the safe-area edge; the header starts below it. */
html{background:#000;--ski-safe-top:env(safe-area-inset-top,0px)}body.ski-authenticated{padding-top:var(--ski-safe-top);min-height:100dvh;background:#f1f5f5}.ski-authenticated .account-topbar{position:sticky;top:var(--ski-safe-top);z-index:50;padding-top:12px;border-top:1px solid #49616e;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));background:#173343;color:white;border-bottom:1px solid #36515f;box-shadow:0 3px 12px #102b3718;isolation:isolate;backdrop-filter:none}.ski-authenticated .account-topbar a{color:white}.ski-authenticated .account-menu summary{background:#294b5b;color:white}.ski-authenticated .account-menu>div a,.ski-authenticated .account-menu>div button{color:#173343!important}.ski-authenticated .account-topbar~#area-page>section{scroll-margin-top:calc(90px + env(safe-area-inset-top,0px))}.ski-authenticated .account-topbar .account-brand{font-size:12px}.ski-authenticated .account-topbar .account-menu>div{max-height:calc(100dvh - env(safe-area-inset-top,0px) - var(--bottom-nav-size) - 90px);overflow-y:auto}.camera-dialog .row,.op-sheet-head{min-width:0}.camera-dialog h2,.op-sheet-head h2{min-width:0}.camera-dialog .row>button,.op-sheet-head>button{flex:none}.camera-rail{min-width:0}.is-offline{background:#f1f5f5}.ski-authenticated.is-offline{padding-top:env(safe-area-inset-top,0px)}

/* Keep scrolling content and iOS bounce out of the status area. In opaque iOS standalone mode the OS reserves it and the inset may be zero. */
body.ski-authenticated::before{content:"";position:fixed;inset:0 0 auto;height:var(--ski-safe-top);background:#000;z-index:55;pointer-events:none}html:has(body.ski-authenticated){overscroll-behavior-y:none}body.ski-authenticated{overscroll-behavior-y:none}

/* The native document never scrolls. Header and status surface stay outside the content scroller. */
html:has(body.ski-authenticated){height:100%;overflow:hidden;background:#173343}
body.ski-authenticated{position:fixed;inset:0;height:100%;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-top:var(--ski-safe-top);padding-bottom:0;background:#173343}
body.ski-authenticated::before{background:#173343;pointer-events:auto}
.ski-authenticated .account-topbar{position:relative;top:auto;flex:0 0 auto;padding-top:12px;box-shadow:none;border-top:1px solid #718794}
#ski-scroll{flex:1 1 auto;min-height:0;min-width:0;width:100%;overflow:auto;overscroll-behavior:contain;background:#f1f5f5;padding-bottom:24px;scroll-padding-top:16px}
#ski-scroll>#area-page,#ski-scroll>#account-page,#ski-scroll>#map-page{width:100%}
body.ski-authenticated.is-offline #ski-scroll{display:none}
.ski-authenticated .pwa-banner{flex:0 0 auto;width:calc(100% - 24px)}
@media(max-width:767px),(max-width:1024px) and (max-height:500px){#ski-scroll{padding-bottom:calc(var(--bottom-nav-size) + 24px)}}
