/* Premium campsite weather dashboard — mobile-first, accessible contrast */
.wx-dashboard{display:grid;gap:13px;min-width:0;margin:16px 0 22px;color:#e8f4ed}
.wx-hero{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:12px;align-items:center;padding:22px 20px;border:1px solid #587e82;border-radius:19px;min-height:220px;background:linear-gradient(140deg,#236f93,#27565d 55%,#173d45);overflow:hidden;position:relative}
.wx-sun,.wx-cloud-sun{background:linear-gradient(140deg,#367fa9,#215e90 54%,#1b516d)}
.wx-cloud,.wx-rain,.wx-shower,.wx-sleet,.wx-snow{background:linear-gradient(140deg,#435d80,#284958 60%,#1a3743)}
.wx-moon,.wx-cloud-moon{background:linear-gradient(140deg,#152d5c,#273f60 65%,#1d414b)}
.wx-unknown{background:linear-gradient(140deg,#2b4f55,#23423e)}
.wx-hero:after{content:"";position:absolute;width:160px;height:160px;right:-60px;bottom:-90px;border:35px solid #d2edf518;border-radius:50%;pointer-events:none}
.wx-caption{display:block;font-size:10px;font-weight:800;letter-spacing:1.25px;color:#d1f0f7;margin-bottom:13px}
.wx-title{display:block;font-size:29px;letter-spacing:-.7px;color:#fff;line-height:1.2}
.wx-temp{font-size:clamp(32px,5vw,49px);font-weight:800;line-height:1.3;letter-spacing:-2px;color:#f4ffec;margin-top:7px}
.wx-hero-text p{font-size:10px;line-height:1.7;color:#d0e3eb;margin:9px 0 0}
.wx-hero-icon{display:grid;place-items:center;z-index:1}
.wx-icon{width:106px;height:106px;filter:drop-shadow(0 4px 5px #0e26343b)}
.wx-icon.small{width:44px;height:44px;filter:none}
.wx-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.wx-metric{display:grid;align-content:start;gap:8px;background:#1b3939;border:1px solid #456b65;border-radius:12px;padding:14px 12px;min-width:0}
.wx-metric-hdr{display:flex;align-items:center;gap:7px}
.wx-metric-hdr span{font-size:11px;font-weight:700;color:#b9d6c7}
.wx-metric strong{font-size:clamp(13px,2vw,19px);letter-spacing:-.3px;line-height:1.4;color:#eaf4df;overflow-wrap:anywhere}
.wx-metric small{font-size:10px;line-height:1.6;color:#adc8bc}
.wx-grade-good{border-color:#4d8e7d}.wx-grade-good strong{color:#adeccd}
.wx-grade-moderate{border-color:#8b9267}.wx-grade-moderate strong{color:#eff1ab}
.wx-grade-bad{border-color:#b48c55}.wx-grade-bad strong{color:#f7d293}
.wx-grade-very-bad{border-color:#b57073}.wx-grade-very-bad strong{color:#f5aeab}
.wx-grade-unknown strong{color:#d2deda}
.wx-hour-title{display:flex;justify-content:space-between;align-items:baseline;gap:9px;margin-top:4px}
.wx-hour-title strong{font-size:15px}.wx-hour-title small{font-size:11px;color:#bed0c4}
.wx-hours{display:flex;overflow-x:auto;gap:8px;padding:1px 0 11px;scroll-snap-type:x proximity;max-width:100%}
.wx-hour{flex:0 0 116px;scroll-snap-align:start;text-align:center;background:#1a3939;border:1px solid #4a6b66;border-radius:12px;padding:12px 6px;display:flex;align-items:center;flex-direction:column;gap:6px}
.wx-hour span{font-size:10px;color:#d7e7e2}.wx-hour strong{font-size:19px;color:#f2f5df}.wx-hour small{font-size:10px;color:#b6cec7}
.wx-disclaimer{font-size:10px;line-height:1.8;color:#bed1c4;margin:0;padding:12px;background:#203735;border-left:3px solid #92bf9e;border-radius:7px}
@media(max-width:930px){.wx-info{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.wx-hero{grid-template-columns:minmax(0,1fr) 91px;gap:0;padding:17px 14px;min-height:180px}.wx-icon{width:82px;height:82px}.wx-icon.small{width:42px;height:42px}.wx-title{font-size:24px}.wx-temp{font-size:39px}.wx-info{gap:7px}.wx-metric{padding:12px 10px}.wx-metric strong{font-size:15px}.wx-metric small{font-size:10px}}

.wx-api-links{display:flex;gap:8px;flex-wrap:wrap}
.wx-api-links a{font-size:11px;border:1px solid #597565;background:#28473e;color:#e2f3da;padding:9px 11px;border-radius:9px;text-decoration:none;font-weight:700}
.wx-api-links a:hover{background:#385b4d}

.wx-grade-very-good{border-color:#39a68b}.wx-grade-very-good strong{color:#a4ffd8}
