.weather-module{min-width:0;max-width:100%;margin:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-variant-numeric:tabular-nums;box-shadow:0 8px 30px #15344908;container-type:inline-size}.weather-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.weather-heading h2{min-width:0;margin:0;font-size:1.05rem;line-height:1.3;overflow-wrap:anywhere}.weather-units{position:relative;flex:0 0 auto;font-size:.68rem;z-index:5}.weather-units-trigger{display:flex;align-items:center;min-height:30px;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--ink);font-weight:600}.weather-units-trigger:hover{border-color:var(--line)}.weather-units-popup{position:absolute;top:calc(100% + 8px);right:0;width:min(260px,75vw);padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 14px 40px #102f4930}.weather-units:not([open])>.weather-units-popup{display:none}.weather-units-popup button{width:100%;margin:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);text-align:left}.weather-units-popup .weather-unit-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 8px}.weather-unit-option small{font-size:.68rem;color:var(--muted);white-space:nowrap}.weather-unit-option[aria-pressed="true"]{background:var(--surface-soft);box-shadow:inset 3px 0 var(--accent);font-weight:650}.weather-units-popup button:hover{background:var(--surface-soft)}[data-weather-body],.weather-forecast-panel{min-width:0}.weather-module [hidden]{display:none!important}.weather-block-dashboard{display:flex;flex-direction:column;gap:12px}.weather-hero-card{display:grid;grid-template-columns:1fr;gap:14px;padding:14px;border-radius:calc(var(--radius) - 4px);background:linear-gradient(135deg,var(--surface-soft) 0%,var(--surface) 100%);border:1px solid var(--line)}@container (min-width:520px){.weather-hero-card{grid-template-columns:minmax(200px,auto) 1fr;align-items:center;gap:18px;padding:16px 18px}}.weather-hero-primary{display:flex;align-items:center;gap:14px}.weather-hero-icon-wrap{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:var(--surface);box-shadow:0 4px 14px #102f4912;flex-shrink:0;color:var(--accent)}.weather-cond-svg .sun-part{stroke:#f59e0b}.weather-cond-svg.is-rain .rain-part{stroke:#0ea5e9}.weather-cond-svg.is-thunder .bolt-part{stroke:#eab308}.weather-hero-temp-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.weather-hero-temp{font-size:2.1rem;font-weight:750;line-height:1.05;letter-spacing:-.03em;color:var(--ink)}.weather-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:.82rem}.weather-hero-cond{font-weight:650;color:var(--ink)}.weather-hero-hilow{color:var(--muted);font-size:.78rem;white-space:nowrap}.weather-metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}.weather-metric-tile{display:flex;flex-direction:column;justify-content:space-between;gap:4px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line)}.weather-metric-label{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--muted);line-height:1.2}.weather-metric-label svg{color:var(--accent);flex-shrink:0}.weather-metric-value{display:flex;align-items:center;gap:3px;font-size:.92rem;font-weight:700;color:var(--ink);line-height:1.25}.weather-context-strip{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;padding-top:8px;border-top:1px solid var(--line)}.weather-context-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:.73rem;font-weight:600;color:var(--ink);white-space:nowrap}.weather-days-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(122px,1fr);gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface-soft)}.weather-day-card{display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-align:left;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.weather-day-card:hover{background:var(--surface-soft)}.weather-day-card.is-active{border-color:var(--accent);background:var(--surface-soft);box-shadow:inset 0 0 0 1px var(--accent)}.weather-day-head{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:.75rem}.weather-day-name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weather-day-pop{font-size:.68rem;font-weight:600;color:#0284c7;white-space:nowrap}.weather-day-icon{display:flex;align-items:center;justify-content:center;height:30px;color:var(--accent)}.weather-day-temps{display:flex;align-items:center;gap:6px;font-size:.75rem}.weather-day-temps .t-min{color:var(--muted)}.weather-day-temps .t-max{font-weight:700;color:var(--ink)}.weather-temp-bar{position:relative;flex:1;height:5px;border-radius:999px;background:var(--line);overflow:hidden}.weather-temp-bar i{position:absolute;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#38bdf8,var(--accent),#f59e0b)}.weather-day-hourly{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(72px,1fr);gap:6px;overflow-x:auto;padding:10px;border-radius:var(--radius-sm);background:var(--surface-soft);border:1px solid var(--line);scrollbar-width:thin}.weather-hour-chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-size:.73rem;text-align:center}.weather-hour-time{font-size:.68rem;color:var(--muted);white-space:nowrap}.weather-hour-icon{display:flex;align-items:center;justify-content:center;height:24px;color:var(--accent)}.weather-hour-pop{font-size:.66rem;color:#0284c7;font-weight:600;white-space:nowrap}.weather-hour-wind{display:inline-flex;align-items:center;gap:2px;font-size:.66rem;color:var(--muted);white-space:nowrap}.weather-view--combo .weather-forecast-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.weather-scroll{width:100%;min-width:0;max-width:100%;overflow-x:scroll;overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:var(--accent) var(--surface-soft);padding-bottom:8px}.weather-scroll::-webkit-scrollbar{height:12px}.weather-scroll::-webkit-scrollbar-track{background:var(--surface-soft);border-radius:8px}.weather-scroll::-webkit-scrollbar-thumb{background:var(--accent);border:3px solid var(--surface-soft);border-radius:8px}.weather-timeline{min-width:100%}.weather-scroll.is-dragging,.weather-scroll.is-dragging *{cursor:grabbing!important;user-select:none}.weather-scroll-controls{display:flex;gap:6px;margin-bottom:6px}.weather-scroll-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:2px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft);color:var(--ink)}.weather-scroll-controls button:disabled{opacity:.35;cursor:default}.weather-hour-temp{font-size:.92rem}.weather-wind-arrow,.weather-wave-arrow{display:inline-block;font-size:1.1rem;line-height:1;width:1.1em;text-align:center;color:var(--accent);transform-origin:center;flex-shrink:0;margin-right:2px}.weather-pop-track{position:relative;height:30px;width:100%;border-radius:4px;background:#199ed00d;display:flex;align-items:flex-end;overflow:hidden}.weather-pop-bar{display:block;width:100%;background:#38aee0;border-radius:4px 4px 0 0}.weather-pop-value{position:absolute;bottom:1px;left:0;right:0;text-align:center;line-height:1.2;text-shadow:0 1px 2px var(--surface);color:var(--ink);font-size:.72rem}.weather-forecast-note,.weather-notice,.weather-data-note{font-size:.7rem;line-height:1.45;color:var(--muted);margin:8px 0 0}.weather-module :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.weather-html{display:flex;flex-direction:column;font-size:.73rem;width:max-content;min-width:100%}.weather-grid-head,.weather-grid-body{display:flex;align-items:stretch}.weather-cell{display:flex;align-items:center;justify-content:center;height:36px;min-height:36px;max-height:36px;padding:0 4px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}.weather-grid-head .weather-cell{height:32px;min-height:32px;max-height:32px;background:var(--surface);font-weight:600}.weather-hour-head{width:60px;flex:0 0 60px}.weather-labels-col{position:sticky;left:0;z-index:5;width:44px;flex:0 0 44px;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--line);will-change:transform}.weather-html .weather-html-label{width:44px;min-width:44px;max-width:44px;flex:0 0 44px;background:var(--surface);color:var(--muted);font-weight:600}.weather-labels-col .weather-html-label{width:100%;min-width:0;max-width:none;flex:0 0 36px;border-right:0}.weather-labels-col .weather-html-label svg{display:block;color:var(--accent)}.weather-grid-head .weather-date-label{position:sticky;left:0;z-index:6;width:44px;min-width:44px;max-width:44px;flex:0 0 44px;background:var(--surface);border-right:1px solid var(--line);font-size:.68rem;font-weight:700;color:var(--ink);will-change:transform}.weather-grid-head .weather-date-label:not(:first-child){border-left:1px solid var(--line)}.weather-day-spacer{width:44px;min-width:44px;max-width:44px;flex:0 0 44px;background:var(--surface);border-left:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.weather-hour-col{width:60px;flex:0 0 60px;display:flex;flex-direction:column;contain:layout style paint;content-visibility:auto}.weather-html-sun dl{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0}.weather-html-sun dl>div{flex:none;display:flex;align-items:center;gap:8px;white-space:nowrap}.weather-html-sun dt{font-weight:600}.weather-html-sun dd{margin:2px 0;font-size:.75rem}.weather-hint{position:fixed;z-index:1000;max-width:calc(100vw - 16px);padding:6px 10px;border-radius:6px;background:var(--ink);color:var(--surface);font-size:.75rem;line-height:1.4;pointer-events:none;box-shadow:0 3px 12px #0002}.weather-astro{display:flex;margin-top:8px}.weather-sun-segment{flex:none;min-width:0;border-right:1px solid var(--line);padding-block:8px}.weather-sun-label{position:sticky;left:0;display:flex;align-items:center;gap:6px;width:max-content;padding:0 6px;background:var(--surface);font-size:.72rem;line-height:1.5;white-space:nowrap;z-index:1}.weather-sun-label time{font-weight:650}.weather-sun-icon{color:var(--accent)}.weather-air{margin-top:4px;border-top:1px solid var(--line);padding-top:8px}.weather-air summary{position:sticky;left:0;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100cqi;max-width:100%;padding:4px 6px;font-size:.75rem;color:var(--muted);background:var(--surface)}.weather-air summary .chevron{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;line-height:1}.weather-air .weather-html{margin-top:6px;font-size:.7rem}.weather-air .weather-cell{height:32px;min-height:32px;max-height:32px;border-right:1px solid var(--line)}.weather-air .weather-labels-col .weather-cell{border-right:0;font-weight:600;color:var(--muted)}