/* Focused platform/accessibility improvements. No formal Core certification. */
:root{--muted:#52665b;font-size:16px}
button,a,input,select,summary{touch-action:manipulation}
button{min-height:44px}
button:active{filter:brightness(.94)}
.icon{width:20px;height:20px;vertical-align:middle;flex-shrink:0}
a .icon,.quiet .icon,.arrow .icon{width:16px;height:16px}
.quiet,.source-row a,.primary-link{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.close{display:grid;place-items:center;float:right;width:44px;height:44px;border-radius:8px}
.close .icon{width:22px;height:22px}
summary:focus-visible,#results:focus-visible,h2:focus-visible{outline:3px solid #cb8c2b;outline-offset:3px}
.brandmark .icon{width:27px;height:27px}
.pin .icon{width:17px;height:17px}
.filter-chips button{display:inline-flex;align-items:center;gap:5px}
.quiet,.map-button,.filter-chips button{font-size:14px}
.search input,select{font-size:16px}
.selectors label,.eyebrow{font-size:12px}
.intro,.results-heading strong,.result p,.result small,.notice,.detail .meta,.page-ref,footer,footer a{font-size:13px}
.result h3,.rule-section h3{font-size:16px}
.result small,.page-ref{color:var(--muted)}
.empty h3{font-size:18px;color:var(--green);margin:0 0 8px}
.empty p{margin:0 0 16px}
.empty .related{margin-top:12px}
.search-area h1{line-height:1.2}
.intro{line-height:1.55}
aside{min-height:0}
#results{min-height:0}
footer,.results-heading{flex-shrink:0}
.rule-text,.rule-section summary,dialog p,.related{font-size:16px;line-height:1.65}
.source-row a,.primary-link{font-size:14px;min-height:44px;border:0}
.rule-section summary,dialog summary{padding:12px 0;min-height:44px;cursor:pointer}
.map-note,.map-note b{font-size:12px}
.result:hover{background:#fff}
.result.active{background:#f0f5ee}
.save{width:44px;height:44px}
.save[aria-pressed=true] svg{fill:#f5d49d}
.close{min-width:44px}
.result .text{overflow-wrap:anywhere}
.search-area{padding:20px}
.intro{margin-bottom:16px}
.search-area h1{font-size:27px}
.results-heading{padding:6px 20px}
#results,.detail{overscroll-behavior:contain}
.detail-open #sidebar{visibility:hidden}
.detail{left:0;width:378px}
.leaflet-bottom.leaflet-right{margin:0}
.leaflet-control-zoom{margin-bottom:36px!important;margin-right:14px!important}
.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}
.leaflet-control-attribution{font-size:11px!important;max-width:100%;background:#fffffff2!important}
.map-note{bottom:35px;right:75px;max-width:360px}
.brand small{font-size:10px;letter-spacing:1px}
.season{gap:6px}
header{gap:16px}
header #account{max-width:140px;overflow-wrap:anywhere}
.skip{top:-100px}
.skip:focus{top:8px}
dialog{max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding:clamp(20px,5vw,32px);overflow-wrap:anywhere}
dialog h2{padding-right:44px}
dialog details{border-top:1px solid var(--border);margin-top:20px}
#google-button{max-width:100%;overflow-x:auto}
.related:disabled{cursor:wait}
#account-status{background:#f0f5ee;padding:12px;border-radius:8px}
#google-button{min-height:0}
button:disabled{cursor:wait;opacity:.65}
#delete-account{color:#873d30;border-color:#d9bcb5}
.search input{outline-offset:0}
#sidebar:focus-within{scroll-padding:16px}
.leaflet-control-scale{margin-bottom:8px!important}

@media(hover:hover) and (pointer:fine){.result:hover{background:#f0f5ee}
.quiet:hover,.map-button:hover{background:#edf3f0}
}

@media(min-width:1500px){.detail{left:0;width:420px}
}

@media(max-width:1000px){.detail{left:0;width:330px;max-width:none}
header>.quiet{margin-left:0}
.brand{margin-right:auto}
.map-caption{display:none}
}

@media(max-width:650px){
 header{height:calc(72px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));gap:8px}
.brand{font-size:18px;letter-spacing:1px}
.brand small{display:none}
header>.quiet{font-size:13px;max-width:100px;padding:6px}
header #account{max-width:80px}
kbd{display:none}

 main{height:calc(100dvh - 72px - env(safe-area-inset-top));padding-bottom:calc(64px + env(safe-area-inset-bottom));background:white}
.map-panel{height:100%;position:static}
#map{height:100%}
.map-top{top:12px;right:12px;left:12px;justify-content:flex-end}
.map-top button{font-size:13px}
.map-caption{display:none}
.map-note{bottom:calc(100px + env(safe-area-inset-bottom));left:12px;right:70px;font-size:12px;max-width:none}
.leaflet-control-zoom{margin-bottom:36px!important}
.leaflet-control-attribution{max-width:100%}

 #sidebar{display:none;position:absolute;top:0;bottom:calc(64px + env(safe-area-inset-bottom));height:auto;width:100%;border-radius:0;box-shadow:none;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
#sidebar.expanded{display:flex;height:auto}
.list-open .map-top,.list-open .map-note{display:none}
.search-area{padding:16px 16px 10px;flex-shrink:0}
.search-area h1{font-size:23px;margin:0 0 12px}
.search{height:48px}
.selectors label{font-size:12px}
select{padding:10px 4px;font-size:16px}
.filter-chips{flex-wrap:wrap}
.filter-chips button{font-size:12px;min-height:44px}
.results-heading{padding:4px 16px}
.results-heading strong{font-size:12px}
.result{padding:16px}
.result p,.result small{font-size:13px}

 .mobile-list{display:block;position:absolute;z-index:8;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));height:48px;font-size:16px;background:var(--green);color:white}
.detail{top:0;left:0;bottom:calc(64px + env(safe-area-inset-bottom));height:auto;width:100%;border-radius:0;max-width:none}
.detail-open .mobile-list{visibility:hidden}
.detail-open main{padding-bottom:env(safe-area-inset-bottom)}
.detail-open .detail{bottom:env(safe-area-inset-bottom)}
.detail-top{padding:8px 12px}
.map-status{top:70px;font-size:14px}
.list-open footer{display:block;padding:8px 16px;font-size:12px}

}

/* Short screens scroll the whole search/list column so controls cannot consume it. */
@media(max-height:600px){
 #sidebar{overflow-y:auto;overscroll-behavior:contain}

 #results{overflow-y:visible;flex:0 0 auto}

 .search-area{padding-top:12px;padding-bottom:10px}

 .search-area>.eyebrow,.intro{display:none}

 .search-area h1{font-size:23px;margin:0 0 12px}

 .selectors,.filter-chips{margin-top:8px}

 .list-open footer{display:none}

}

@media(max-height:450px) and (max-width:1000px){
 header{height:calc(56px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}

 main{height:calc(100dvh - 56px - env(safe-area-inset-top))}

 .search-area h1{display:none}

 .map-note{display:none}

}

@media(forced-colors:active){
 button,a,input,select,summary{forced-color-adjust:auto}

 .result.active,.filter-chips button[aria-pressed=true]{outline:2px solid Highlight;outline-offset:-2px}

}


/* V3: a compact landscape in the existing masthead, never over the map. */
header{position:relative;isolation:isolate}
header>.brand,header>.season,header>.quiet{position:relative;z-index:1}
.landscape{height:100%;width:clamp(140px,22vw,360px);flex:0 1 360px;overflow:hidden;pointer-events:none;align-self:stretch;opacity:.85}
.landscape svg{display:block;width:100%;height:100%;overflow:visible}
.landscape-ridge,.landscape-water{transform-box:fill-box;transform-origin:center}
@media(max-width:1100px){.landscape{position:absolute;right:20%;bottom:0;width:46%;height:100%;z-index:-1;opacity:.28}}
@media(max-width:650px){.landscape{right:0;width:65%;opacity:.22}}
@media(prefers-reduced-motion:reduce),(pointer:coarse),(max-width:1000px){
 .landscape-ridge,.landscape-water{transform:none!important}
}
@media(forced-colors:active){.landscape{display:none}}
