.weather-widget { position:absolute; top:20px; right:85px; display:flex; gap:12px; align-items:center; padding:10px 18px; border:1px solid #ffffffaa; border-radius:16px; background:#fffffff0; color:#0f172a; box-shadow:0 8px 24px #0f172a20; font:inherit; cursor:pointer; z-index:var(--z-map-tools); }
.weather-widget:hover { background:#fff; }
.weather-widget #weather-icon { font-size:28px; }
.weather-widget-text { display:flex; flex-direction:column; text-align:left; }
.weather-widget-text strong { font-size:18px; }
.weather-widget-text small { color:#475569; font-size:10px; }
.weather-modal-overlay { position:fixed; inset:0; display:grid; place-items:center; padding:20px; background:#0f172a66; z-index:var(--z-workspace-modal); }
.weather-dialog { box-sizing:border-box; width:min(540px,100%); max-height:90vh; overflow:auto; background:#fff; border:1px solid #cbd5e1; border-radius:20px; padding:24px; box-shadow:0 24px 64px #0f172a40; color:#0f172a; }
.weather-dialog header { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.weather-dialog h2 { margin:0; font-size:20px; }
.weather-dialog button { min-height:44px; cursor:pointer; font:inherit; border:1px solid #cbd5e1; border-radius:10px; padding:8px 14px; background:#f8fafc; color:#164e63; }
.weather-source,.weather-warning { color:#475569; font-size:12px; line-height:1.6; }
.weather-warning { padding:12px; background:#fff7ed; border:1px solid #fed7aa; border-radius:10px; }
.weather-days { display:grid; gap:10px; }
.weather-day { display:grid; grid-template-columns:65px 30px 1fr auto; align-items:center; gap:10px; padding:12px; border:1px solid #e2e8f0; border-radius:12px; }
.weather-day strong { font-size:13px; }
.weather-day small { display:block; font-size:10px; color:#64748b; }
.weather-day p { margin:0; font-size:12px; }
.weather-day-icon { font-size:24px; }
.weather-retry { margin-top:16px; width:100%; }
@media(max-width:480px) { .weather-dialog { padding:16px; } .weather-day { grid-template-columns:54px 22px 1fr auto; padding:8px; gap:6px; } }
