#weather-forecast{box-sizing:border-box;width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #e3ddea;border-radius:16px;background:#fff;color:#26354d;box-shadow:0 16px 60px #18264033;font-family:Inter,system-ui,sans-serif;overflow:auto;overscroll-behavior:contain}
#weather-forecast::backdrop{background:#18203566}
.weather-forecast-trigger{cursor:pointer;border-radius:5px}
.weather-forecast-trigger:focus-visible{outline:2px solid #8065a3;outline-offset:4px}
.forecast-heading{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 18px 12px;background:#fff;border-bottom:1px solid #eeeaf3;z-index:1}
.forecast-heading h2{margin:0;color:#4b2883;font-size:1.05rem;font-weight:600}
.forecast-heading p{margin:3px 0 0;color:#64748b;font-size:.8rem}
#weather-forecast button{min-height:44px;min-width:44px;border:0;border-radius:8px;background:#f5f1fa;color:#4b2883;cursor:pointer;font-size:1.2rem}
.forecast-days{padding:0 18px;margin:0;list-style:none}
.forecast-day{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:12px 0;border-bottom:1px solid #eef0f4}
.forecast-day:last-child{border-bottom:0}
.forecast-day-title{display:flex;align-items:center;gap:9px;font-size:.86rem;font-weight:500}
.forecast-day-title time{color:#64748b;font-size:.73rem;font-weight:400}
.forecast-symbol{width:26px;text-align:center;font-size:1.35rem}
.forecast-description{margin:3px 0 0 35px;color:#64748b;font-size:.75rem}
.forecast-temperatures{display:flex;gap:10px;justify-content:flex-end;font-size:1rem;font-variant-numeric:tabular-nums}
.forecast-temperatures .forecast-min{color:#64748b;font-weight:400}
.forecast-temperatures .forecast-max{color:#26354d;font-weight:600}
.forecast-details{margin:4px 0 0;color:#64748b;text-align:right;font-size:.68rem;line-height:1.5}
.forecast-footer{padding:10px 18px 14px;background:#faf9fc;color:#64748b;font-size:.7rem;line-height:1.5}
.forecast-footer a{color:#684395;text-decoration:underline}
.forecast-status{padding:22px 18px;color:#64748b;font-size:.85rem}
.forecast-status:empty{display:none}
#weather-forecast .forecast-retry{margin:0 18px 18px;padding:0 14px;font-size:.85rem}
#weather-forecast [hidden]{display:none!important}
@media(prefers-reduced-motion:no-preference){#weather-forecast[open]{animation:forecast-appear .16s ease-out}@keyframes forecast-appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}
