@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--paper:#f5f5ed;--white:#fffef8;--ink:#193b32;--muted:#68766b;--line:#d9dfd2;--accent:#d6e999;--orange:#ac6135}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px 'DM Sans',system-ui,sans-serif}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}:focus-visible{outline:3px solid #b86d2c;outline-offset:3px}header{height:85px;padding:0 4.2%;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line)}.brand{font:800 36px 'Manrope',sans-serif;letter-spacing:-2px;text-decoration:none}.brand-dot{color:var(--orange)}.territory{font-size:10px;letter-spacing:1.8px;margin-top:10px;border-left:1px solid #bdc7b5;padding-left:28px}.method-link{margin-left:auto;text-decoration:none;font-size:13px}.method-link span{margin-left:12px;font-size:19px}main{padding:0 4.2%}.workspace{max-width:1600px;margin:auto}.intro{display:flex;justify-content:space-between;align-items:center;margin:35px 0 27px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;margin:0 0 9px;color:var(--muted)}h1{font:650 36px/1.2 'Manrope',sans-serif;letter-spacing:-1.6px;margin:0}h2{font:650 23px/1.25 'Manrope',sans-serif;letter-spacing:-.7px;margin:0}h3{font-size:17px}.subtitle{color:var(--muted);margin:10px 0 0;font-size:14px}.update{font-size:11px;max-width:270px;display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;border-radius:50%;background:#81915d;flex-shrink:0}.toolbar{display:flex;align-items:center;gap:12px;position:relative}.search-label{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--white);padding:0 16px;border-radius:8px;height:46px;width:385px}.search-label>span{font-size:27px}.search-label input{width:100%;border:0;background:transparent;outline:none;font-size:13px;color:var(--ink)}.plain-button,.weekend{height:44px;border:1px solid var(--line);border-radius:8px;padding:0 16px;background:transparent;color:var(--ink);font-size:12px}.plain-button{border:0;font-size:14px}.weekend{margin-left:auto}.weekend span{margin-left:12px}.date-row{margin:18px 0 17px;display:flex;align-items:center;gap:14px}.days{display:flex;gap:7px;overflow:auto}.day{min-width:67px;padding:10px 12px;border:1px solid var(--line);background:var(--white);border-radius:7px;color:var(--muted);font-size:11px}.day strong{display:block;margin-top:4px;font-size:16px;color:var(--ink)}.day.active{background:var(--ink);border-color:var(--ink);color:#d7e4ce}.day.active strong{color:var(--white)}#selected-date{font-size:11px;margin-left:auto;text-align:right}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--white);height:530px}.map-container{position:relative;min-width:0}#map{height:100%;background:#e3e8d6}.leaflet-tile-pane{filter:saturate(.5) contrast(.92)}.leaflet-container{font-family:'DM Sans',sans-serif}.leaflet-control-attribution{font-size:9px!important}.map-caption{position:absolute;left:18px;top:18px;z-index:500;background:var(--white);padding:12px 15px;border:1px solid #d5dccc;border-radius:6px;box-shadow:0 3px 10px #193b3209}.map-caption strong{font-size:14px;display:block}.map-caption span{font-size:10px;color:var(--muted)}.map-reset{position:absolute;right:15px;top:17px;z-index:500;background:var(--white);border:1px solid var(--line);border-radius:5px;padding:10px;font-size:11px}.legend{position:absolute;left:18px;bottom:27px;z-index:500;background:var(--white);padding:13px 15px;border-radius:7px;width:246px;border:1px solid var(--line)}.legend-title{font-size:11px;font-weight:700}.scale{display:flex;gap:3px;height:7px;margin-top:10px}.scale i{flex:1;border-radius:1px}.scale-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-top:6px}.legend-other{display:flex;flex-direction:column;gap:6px;font-size:9px;margin-top:10px;color:var(--muted)}.swatch{display:inline-block;width:11px;height:10px;margin-right:6px;vertical-align:middle}.incompatible{background:#d0d2c9;border:1px solid #a9ada4}.missing{background:repeating-linear-gradient(45deg,#f8f7f0,#f8f7f0 2px,#8d90ab 2px,#8d90ab 3px);border:1px dashed #8d90ab}aside{overflow-y:auto;border-left:1px solid var(--line)}.panel-top{padding:24px 24px 18px;border-bottom:1px solid var(--line)}.panel-top h2{font-size:23px}#detail{padding:0 24px 24px}.empty{padding:30px 0}.empty p{font-size:13px;line-height:1.8;color:var(--muted)}.empty-mark{font:40px 'Manrope';color:#a4ad8c}.small{font-size:11px!important}.comparison{padding:30px 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:17px}.section-title>span{font-size:10px;color:var(--muted)}.ranking{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.zone-card{padding:18px 16px;text-align:left;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}.zone-card:hover{border-color:#55796b;background:#eff3e3}.zone-card .card-top{display:flex;align-items:center;justify-content:space-between}.rank-num{font-size:10px;color:var(--muted)}.zone-card strong{font-size:24px;font-weight:600}.zone-card h3{font-size:13px;margin:12px 0 6px}.zone-card p{font-size:10px;margin:0;line-height:1.7;color:var(--muted)}.disclaimer{background:#e9eddf;display:flex;gap:24px;align-items:center;padding:18px 24px;border-radius:8px;font-size:12px;margin-bottom:32px}.disclaimer strong{white-space:nowrap}.disclaimer p{line-height:1.6;color:var(--muted);margin:0;max-width:650px}.disclaimer a{white-space:nowrap;margin-left:auto;font-size:11px}footer{border-top:1px solid var(--line);padding:22px 4.2%;display:flex;justify-content:space-between;font-size:11px;gap:15px}.muted{color:var(--muted)}.notice{padding:12px 16px;background:#f6e9cd;border:1px solid #ddc9a0;border-radius:7px;font-size:12px;margin-bottom:14px}.search-results{position:absolute;left:0;top:48px;z-index:1001;width:385px;max-height:260px;overflow:auto;background:var(--white);box-shadow:0 5px 25px #193b3220;border:1px solid var(--line);border-radius:6px}.search-results button{display:block;width:100%;padding:12px;text-align:left;border:0;background:transparent;color:var(--ink)}.search-results button:hover{background:#e9eddf}.score-row{display:flex;align-items:center;gap:15px;padding:22px 0 18px}.score-number{font:650 61px/1 'Manrope',sans-serif;letter-spacing:-3px}.score-number small{font:12px 'DM Sans';letter-spacing:0;color:var(--muted)}.category{font-size:12px;font-weight:600;line-height:1.6}.badge{font-size:9px;background:#e9eddf;border-radius:4px;padding:4px 6px;display:inline-block;margin-top:5px}.detail-intro{font-size:12px;line-height:1.7;margin:0 0 15px}.factors{list-style:none;padding:0;margin:0}.factors li{border-top:1px solid var(--line);padding:11px 0;display:flex;gap:9px;font-size:11px;line-height:1.55}.factor-sign{flex-shrink:0;width:17px;height:17px;border-radius:50%;background:#e7eddf;display:grid;place-items:center;font-size:12px}.factor-sign.negative{background:#f0e5d5;color:#8b4a27}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin:15px 0}.metric{background:var(--white);padding:12px}.metric span{display:block;font-size:9px;color:var(--muted);line-height:1.4}.metric strong{font-size:18px;display:block;margin:4px 0}.metric small{font-size:9px;color:var(--muted)}.trend{display:flex;gap:5px;align-items:end;height:76px;margin:20px 0 10px}.trend button{flex:1;border:0;background:transparent;padding:0;color:var(--muted);font-size:8px;min-width:0}.trend .bar{display:block;background:#8ca898;border-radius:3px 3px 0 0;margin:3px 3px 4px;min-height:2px}.trend button.active .bar{background:var(--ink)}details{font-size:10px;line-height:1.7;margin-top:15px}summary{cursor:pointer;font-size:11px;font-weight:600}details p{color:var(--muted)}.back-button{border:0;background:transparent;color:var(--ink);font-size:11px;padding:12px 0 0}.method{max-width:850px;margin:45px auto;padding-bottom:50px}.method h1{margin-bottom:20px}.method h2{margin-top:35px;font-size:24px}.method p,.method li{line-height:1.8;color:#4d6255}.method .callout{background:#e9eddf;padding:22px;border-radius:8px}.method code{background:#e9eddf;padding:2px 5px}.method table{border-collapse:collapse;width:100%;font-size:12px}.method th,.method td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left}.method a{color:#386c56}body .leaflet-control-zoom{border:1px solid #c8d0bf!important;margin-bottom:27px!important}.leaflet-control-zoom a{background:#fffef8!important;color:#193b32!important}.tile-error{background:#f6e9cd;padding:8px;font-size:10px}
@media(min-width:1550px){.map-layout{height:620px}}@media(max-width:1050px){.map-layout{grid-template-columns:minmax(0,1fr) 310px}.ranking{grid-template-columns:repeat(3,1fr)}.territory{display:none}.date-row{align-items:start;flex-direction:column}#selected-date{margin:0}.intro{gap:20px}.update{max-width:190px}.disclaimer{align-items:start;flex-wrap:wrap}.disclaimer a{margin:0}}@media(max-width:700px){header{height:68px;padding:0 20px}.brand{font-size:31px}.method-link{font-size:11px}main{padding:0 16px}.intro{margin:24px 0 20px;display:block}h1{font-size:29px;letter-spacing:-1.2px}.subtitle{font-size:12px}.update{margin-top:15px;max-width:none;font-size:10px}.toolbar{gap:6px;flex-wrap:wrap}.search-label{width:100%}.plain-button{padding:0 5px;font-size:12px}.weekend{height:36px;font-size:11px}.search-results{width:100%}.date-row{margin:12px 0}.days{width:100%;padding:2px 2px 5px}.day{min-width:58px;padding:8px}.map-layout{display:flex;flex-direction:column;height:auto;border-radius:10px}.map-container{height:420px;flex-shrink:0}aside{border-left:0;border-top:1px solid var(--line);max-height:none}.panel-top{padding:22px 20px 13px}#detail{padding:0 20px 20px}.empty{padding:0}.empty-mark{display:none}.empty p.small{display:none}.legend{left:10px;bottom:24px;width:215px;padding:10px 12px}.map-caption{left:10px;top:10px;padding:9px 12px}.map-caption span{font-size:9px}.map-reset{right:10px;top:10px}.section-title{display:block}.section-title>span{display:block;margin-top:9px}.comparison h2{font-size:22px}.ranking{display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.zone-card{min-width:180px;scroll-snap-align:start}.disclaimer{padding:18px;gap:10px;margin-bottom:25px}.disclaimer strong{font-size:13px}footer{padding:20px;display:block;line-height:1.8}footer>span{display:block}.metric strong{font-size:21px}.method{margin:30px 6px}.method h1{font-size:30px}.method table{font-size:10px}.method th,.method td{padding:9px 4px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.region-label{font-size:9px;color:var(--muted);display:flex;flex-direction:column;gap:3px;min-width:135px}.region-label select{font:inherit;font-size:13px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:7px;height:34px;padding:0 25px 0 10px}.toolbar .search-label{flex:1;max-width:385px}.region-label select:focus-visible{outline:3px solid #b86d2c;outline-offset:2px}@media(max-width:900px){.toolbar{flex-wrap:wrap}.toolbar .search-label{min-width:230px;max-width:none}}@media(max-width:700px){.region-label{width:100%;flex-direction:row;align-items:center;justify-content:space-between;font-size:11px}.region-label select{width:72%;height:40px}.toolbar .search-label{flex-basis:100%;margin-top:5px}}

/* Let both biological and geographic selectors wrap on narrow screens. */
.toolbar{flex-wrap:wrap}.toolbar .search-label{flex:1;min-width:180px}.region-label select{max-width:230px}.search-results{top:100%;max-width:100%}
@media(max-width:700px){.toolbar .region-label{flex:1;min-width:130px}.region-label select{width:100%;max-width:100%}.toolbar .search-label{flex-basis:100%}}

/* Longer product name, with a compact two-line wordmark on small screens. */
.brand{font-size:30px;letter-spacing:-1.2px;line-height:1.1;white-space:nowrap}
@media(max-width:700px){header{gap:12px;padding-left:16px;padding-right:16px}.brand{font-size:22px;letter-spacing:-.7px;max-width:155px;white-space:normal;flex-shrink:0}.method-link{flex-shrink:0}}

/* Room for the common and scientific names in the mushroom selector. */
.toolbar .region-label:has(#species){min-width:280px;flex:0 1 430px}#species{width:100%;max-width:430px}#method-species{max-width:100%;font:inherit;color:var(--ink);padding:8px}
@media(max-width:700px){.toolbar .region-label:has(#species){min-width:0;flex-basis:100%;gap:10px}#species{min-width:0;width:calc(100% - 40px);max-width:100%;font-size:12px}}

/* Identity, loading feedback and installation. */
[hidden]{display:none!important}
.brand{display:flex;align-items:center;gap:10px;max-width:none}
.brand-icon{width:44px;height:44px;flex-shrink:0;border-radius:11px}
.brand-name{display:block}

.map-loading{position:absolute;z-index:700;left:50%;top:45%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;white-space:nowrap;padding:15px 20px;border:1px solid var(--line);border-radius:12px;background:var(--white);box-shadow:0 6px 28px #193b3229;font-size:14px;font-weight:600;pointer-events:none}
.loading-spinner{width:22px;height:22px;border:3px solid #d9dfd2;border-top-color:var(--ink);border-radius:50%;animation:loading-turn .85s linear infinite}
.is-loading #map .leaflet-overlay-pane{opacity:.35;pointer-events:none}
@keyframes loading-turn{to{transform:rotate(360deg)}}


@media(max-width:700px){header{height:auto;min-height:76px;padding-top:10px;padding-bottom:10px;gap:10px;flex-wrap:wrap}.brand{font-size:20px;max-width:none;gap:8px}.brand-name{max-width:126px}.brand-icon{width:36px;height:36px}.method-link{font-size:10px}.method-link span{margin-left:3px}}
@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none;border-style:dotted}}
@media(max-width:700px){header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px}.brand{grid-column:1;grid-row:1}.method-link{grid-column:2;grid-row:1;margin-left:0;justify-self:end}}

/* Compact atlas header: the introduction lives beside the brand. */
.atlas-header{height:auto;min-height:96px;padding-top:16px;padding-bottom:16px;gap:24px}
.atlas-header .brand{flex-shrink:0}
.atlas-header .brand-name{font:inherit;letter-spacing:inherit;margin:0}
.header-context{border-left:1px solid #bdc7b5;padding-left:24px;min-width:0}
.header-context .territory{display:block;margin:0;padding:0;border:0;font-size:9px;letter-spacing:1.4px;line-height:1.5}
.header-context .subtitle{font-size:12px;line-height:1.5;margin:5px 0 0;max-width:350px}
.atlas-header .method-link{white-space:nowrap}
.atlas-header + main .workspace{padding-top:22px}
.date-context{margin-left:auto;text-align:right;flex-shrink:0}
.date-context #selected-date{margin:0 0 6px}
.date-context .update{justify-content:flex-end;max-width:none;margin:0;font-size:10px;color:var(--muted)}
@media(max-width:1050px){
 .atlas-header{flex-wrap:wrap;gap:14px 22px}
 .header-context{order:3;flex-basis:100%;border:0;padding:0;display:flex;align-items:baseline;gap:16px}
 .header-context .subtitle{margin:0;max-width:none}
 .date-context{margin:0;display:flex;flex-wrap:wrap;gap:6px 16px;text-align:left;flex-shrink:1}
 .date-context #selected-date{margin:0}
 .date-context .update{justify-content:flex-start}
}
@media(max-width:700px){
 .atlas-header{gap:5px 12px;padding-top:12px;padding-bottom:12px}
 .atlas-header .header-context{grid-column:1 / -1;grid-row:2;display:block;margin-top:7px}
 .header-context .territory{font-size:8px;letter-spacing:1.1px}
 .header-context .subtitle{font-size:11px;margin-top:4px}
 .atlas-header + main .workspace{padding-top:16px}
}

/* Readable type scale: secondary labels stay legible without competing with headings. */
:root{--type-caption:12px;--type-small:14px;--type-body:16px}
body{font-size:var(--type-body)}
.eyebrow,.territory,.header-context .territory,.region-label,.rank-num,.badge,.metric small,.scale-labels,.legend-other,.trend button,.map-caption span,.tile-error{font-size:var(--type-caption)}
.header-context .territory{letter-spacing:1.1px}
.method-link,.header-context .subtitle,.search-label input,.plain-button,.weekend,.day,#selected-date,.date-context .update,.legend-title,.map-reset,.section-title>span,.zone-card p,.disclaimer,.disclaimer a,footer,.notice,.category,.factors li,.metric span,details,summary,.back-button,.method table{font-size:var(--type-small)}
.small{font-size:var(--type-small)!important}
.empty p,.detail-intro,.zone-card h3,.map-caption strong{font-size:var(--type-body)}
.region-label select,#species{font-size:var(--type-body);height:44px}
.region-label{gap:6px}
.search-label input{font-size:var(--type-body)}
.day{min-width:72px}.day strong{font-size:18px}
.date-context{flex-shrink:1;line-height:1.5}
.date-context .update{font-size:var(--type-caption)}
.legend{width:280px;line-height:1.5}
.swatch{width:13px;height:12px}
.map-caption{max-width:calc(100% - 155px)}
.map-caption span{display:block;line-height:1.5;margin-top:3px}
.map-reset{max-width:125px}
.metric strong{font-size:24px}
.score-number small{font-size:14px}
.factors li{line-height:1.65}.factor-sign{width:20px;height:20px}
.trend{height:100px;min-height:100px;overflow-x:auto;align-items:end}
.trend button{min-width:36px;flex-shrink:0}
.zone-card{padding:18px}.zone-card h3{line-height:1.45}
.disclaimer,footer,.notice,.section-title>span{line-height:1.6}
.leaflet-control-attribution{font-size:11px!important}
@media(min-width:701px){.map-layout{grid-template-columns:minmax(0,1fr) 370px}}
@media(max-width:1050px){.header-context{flex-wrap:wrap;gap:5px 16px}}
@media(max-width:700px){
 :root{--type-caption:13px;--type-small:14px}
 .brand{font-size:22px}.brand-name{max-width:140px}
 .method-link{font-size:14px}
 .header-context .territory{font-size:12px;letter-spacing:.8px}
 .header-context .subtitle{font-size:14px;line-height:1.5}
 .toolbar .region-label,.toolbar .region-label:has(#species){flex-direction:column;align-items:stretch;gap:5px;flex-basis:100%;min-width:0}
 .region-label select,#species{width:100%;max-width:100%;font-size:16px;height:46px}
 .toolbar{gap:12px}
 .plain-button,.weekend{font-size:14px;min-height:44px;padding:0 10px}
 .weekend span{margin-left:4px}
 .day{min-width:64px;padding:9px}
 .date-context{gap:4px;text-align:left}
 .date-context #selected-date{text-align:left}
 .date-context .update{font-size:13px}
 .map-container{height:460px}
 .map-caption{max-width:calc(100% - 130px);padding:9px 10px}
 .map-reset{max-width:110px;font-size:13px;padding:9px}
 .legend{width:calc(100% - 66px);max-width:300px;padding:10px 12px;bottom:36px}
 .legend-other{gap:7px}
 .zone-card{min-width:230px}
 .method table{font-size:14px;overflow-wrap:anywhere}
 .disclaimer strong{font-size:16px;white-space:normal}
 footer{font-size:14px}
}
.legend{max-width:calc(100% - 66px)}

/* Regional outlook: selection uses a ring, independent of the condition colour. */
.day{border:2px solid transparent;line-height:1.15;padding:7px 12px;color:var(--ink);flex-shrink:0}
.day strong{margin-top:2px}
.day-low{background:#f0dfbf}.day-fair{background:#e0e9d2}.day-good{background:#b9d3c9}.day-high{background:#75a395}.day-unknown{background:#ecece7;color:#59635d}
.day.active{background-color:var(--day-fill);border-color:var(--ink);color:var(--ink);box-shadow:0 0 0 1px var(--paper),0 0 0 3px var(--ink)}
.day-low{--day-fill:#f0dfbf}.day-fair{--day-fill:#e0e9d2}.day-good{--day-fill:#b9d3c9}.day-high{--day-fill:#75a395}.day-unknown{--day-fill:#ecece7}
.day.active strong{color:var(--ink)}
.day-score{display:block;font-size:11px;font-weight:500;line-height:1.15;margin-top:3px}
.days{padding:4px;max-width:100%}
.outlook-note{font-size:13px;color:var(--muted);line-height:1.5;margin:-5px 0 16px}
@media(max-width:700px){.day{min-width:72px}.outlook-note{margin:0 0 14px}}

/* Align controls themselves beneath the selector labels. */
.toolbar{align-items:flex-end}
@media(min-width:701px){.toolbar .search-label{height:44px}}
