.weather-card{max-width:320px;padding:16px;border-radius:16px;background:#f7f7f7;box-shadow:0 4px 12px rgba(0,0,0,.1);font-family:sans-serif}.weather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.weather-header h2{margin:0;font-size:18px}.weather-header .date{font-size:12px;color:#666}.weather-temp{font-size:28px;font-weight:bold}.weather-body{display:flex;flex-direction:column;gap:8px}.weather-item{display:flex;justify-content:space-between;font-size:14px;padding:6px 0;border-bottom:1px solid #ddd}.weather-item:last-child{border-bottom:none}.weather-widget{display:block;width:100%;max-width:420px;box-sizing:border-box;padding:1.25rem;border-radius:1rem;background:var(--color-background, #fff);box-shadow:0 2px 12px rgba(0,0,0,.08)}.weather-widget__header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:1rem}.weather-widget__location{min-width:0;font-size:1.15rem;font-weight:600}.weather-widget__time{flex-shrink:0;font-size:.8rem;opacity:.65;white-space:nowrap}.weather-widget__main{display:flex;align-items:center;gap:1.25rem;margin-bottom:1rem}.weather-widget__condition{display:flex;flex:0 1 auto;min-width:0;flex-direction:column;align-items:center;justify-content:center}.weather-widget__icon{width:clamp(56px,18vw,72px);height:clamp(56px,18vw,72px)}.weather-widget__icon img{display:block;width:100%;height:100%}.weather-widget__description{max-width:140px;margin-top:.35rem;font-size:.85rem;line-height:1.2;text-align:center}.weather-widget__temperature{flex:0 1 auto;font-size:clamp(2rem,8vw,2.5rem);line-height:1;font-weight:500;white-space:nowrap}.weather-widget__details{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1rem}.weather-widget__detail{display:flex;min-width:0;flex-direction:column;gap:.2rem}.weather-widget__label{font-size:.75rem;opacity:.6}.weather-widget__value{overflow-wrap:anywhere;font-size:.95rem}.weather-widget__footer{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.08);font-size:.8rem;opacity:.7}@media(max-width: 480px){.weather-widget{padding:1rem}.weather-widget__header{align-items:flex-start;flex-direction:column;gap:.2rem}.weather-widget__time{white-space:normal}.weather-widget__main{gap:1rem}.weather-widget__description{max-width:110px;font-size:.8rem}.weather-widget__details{gap:.75rem}}@media(max-width: 340px){.weather-widget__main{gap:.75rem}.weather-widget__description{max-width:90px}.weather-widget__details{grid-template-columns:1fr}}.weather-widget{appearance:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.weather-widget:focus-visible{outline:3px solid currentColor;outline-offset:3px}.weather-widget:hover{box-shadow:0 4px 18px rgba(0,0,0,.12)}.weather-dialog[hidden]{display:none}.weather-dialog{position:fixed;inset:0;z-index:10000}.weather-dialog__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(2px)}.weather-dialog__panel{position:relative;z-index:1;width:min(900px,100% - 2rem);max-height:calc(100vh - 2rem);margin:1rem auto;overflow:hidden;border-radius:1rem;background:var(--color-background, #fff);box-shadow:0 10px 40px rgba(0,0,0,.25)}.weather-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(0,0,0,.08)}.weather-dialog__header h2{margin:0;font-size:1.4rem}.weather-dialog__updated{margin-top:.25rem;font-size:.8rem;opacity:.65}.weather-dialog__close{flex:0 0 auto;width:2.25rem;height:2.25rem;padding:0;border:0;border-radius:50%;background:rgba(0,0,0,0);font-size:1.75rem;line-height:1;cursor:pointer}.weather-dialog__close:hover{background:rgba(0,0,0,.08)}.weather-dialog__content{max-height:calc(100vh - 6rem);overflow-y:auto;padding:1.5rem}.weather-dialog__content h3{margin:0 0 1rem;font-size:1.1rem}.weather-dialog__current{margin-bottom:2rem}.weather-dialog__current-main{display:flex;align-items:center;gap:2rem}.weather-dialog__current-condition{display:flex;flex-direction:column;align-items:center;text-align:center}.weather-dialog__current-icon{width:80px;height:80px}.weather-dialog__current-icon img{width:100%;height:100%}.weather-dialog__current-temperature{font-size:3rem;line-height:1;white-space:nowrap}.weather-dialog__measurements{display:grid;grid-template-columns:repeat(4, 1fr);gap:1rem;margin-top:1.5rem}.weather-dialog__measurements div{display:flex;flex-direction:column;gap:.25rem}.weather-dialog__measurements span{font-size:.75rem;opacity:.6}.weather-dialog__measurements strong{font-size:.95rem}.weather-dialog__forecast{margin-top:2rem}.weather-hourly{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem}.weather-hourly__item{flex:0 0 82px;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.75rem .5rem;border-radius:.75rem;background:rgba(0,0,0,.035)}.weather-hourly__time{font-size:.75rem;font-weight:600}.weather-hourly__icon{width:42px;height:42px}.weather-hourly__icon img{width:100%;height:100%}.weather-hourly__temperature{font-size:1rem;font-weight:600}.weather-hourly__wind{font-size:.7rem;text-align:center;opacity:.65}.weather-daily{display:flex;flex-direction:column;gap:.5rem}.weather-daily__item{display:grid;grid-template-columns:70px 48px minmax(120px, 1fr) 80px 120px;align-items:center;gap:1rem;padding:.75rem;border-radius:.75rem;background:rgba(0,0,0,.035)}.weather-daily__date{font-size:.8rem;font-weight:600}.weather-daily__icon{width:42px;height:42px}.weather-daily__icon img{width:100%;height:100%}.weather-daily__description{font-size:.85rem}.weather-daily__temperature{display:flex;flex-direction:column;gap:.15rem}.weather-daily__temperature strong{font-size:1rem}.weather-daily__temperature span{font-size:.8rem;opacity:.6}.weather-daily__sun{font-size:.7rem;line-height:1.5;opacity:.65}@media(max-width: 700px){.weather-dialog__panel{width:100%;max-height:100vh;margin:0;border-radius:0}.weather-dialog__content{max-height:calc(100vh - 5rem);padding:1rem}.weather-dialog__measurements{grid-template-columns:repeat(2, 1fr)}.weather-daily__item{grid-template-columns:55px 42px minmax(0, 1fr) 60px}.weather-daily__sun{display:none}}@media(max-width: 480px){.weather-dialog__header{padding:1rem}.weather-dialog__content{padding:1rem}.weather-dialog__current-main{justify-content:center;gap:1.5rem}.weather-dialog__current-temperature{font-size:2.5rem}.weather-daily__description{font-size:.75rem}}body.weather-dialog-open{overflow:hidden}