/*public/assets/weather.css*/
.weather-module{min-width:0;max-width:100%;margin:0;padding:14px;border:1px solid var(--line,#ccd7df);border-radius:var(--radius,18px);background:var(--surface,#fff);color:var(--ink,#163347);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;cursor:pointer;list-style:none;border:1px solid transparent;border-radius:var(--radius-sm,8px);background:var(--surface-soft,#ecf4f8);color:var(--ink,#163347);font-weight:600;}
.weather-units-trigger::-webkit-details-marker{display:none;}.weather-units-trigger:hover{border-color:var(--line,#ccd7df);}
.weather-units-popup{position:absolute;top:calc(100% + 8px);right:0;width:min(260px,75vw);padding:10px;background:var(--surface,#fff);border:1px solid var(--line,#ccd7df);border-radius:var(--radius-sm,12px);box-shadow:0 14px 40px #102f4930;}
.weather-units:not([open])>.weather-units-popup{display:none;}
.weather-units-popup button{font:inherit;cursor:pointer;width:100%;margin:0;border:0;border-radius:var(--radius-sm,8px);background:transparent;color:var(--ink,#163347);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,#627584);white-space:nowrap;}
.weather-unit-option[aria-pressed="true"]{background:var(--surface-soft,#ecf4f8);box-shadow:inset 3px 0 var(--accent,#1681a0);font-weight:650;}.weather-units-popup button:hover{background:var(--surface-soft,#ecf4f8);}

[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,18px) - 4px);background:linear-gradient(135deg,var(--surface-soft,#ecf4f8) 0%,var(--surface,#fff) 100%);border:1px solid var(--line,#ccd7df);}
@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,#fff);box-shadow:0 4px 14px #102f4912;flex-shrink:0;color:var(--accent,#1681a0);}
.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,#163347);}
.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,#163347);}
.weather-hero-hilow{color:var(--muted,#627584);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,10px);background:var(--surface,#fff);border:1px solid var(--line,#ccd7df);}
.weather-metric-label{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--muted,#627584);line-height:1.2;}
.weather-metric-label svg{color:var(--accent,#1681a0);flex-shrink:0;}
.weather-metric-value{display:flex;align-items:center;gap:3px;font-size:.92rem;font-weight:700;color:var(--ink,#163347);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,#ccd7df);}
.weather-context-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--surface,#fff);border:1px solid var(--line,#ccd7df);font-size:.73rem;font-weight:600;color:var(--ink,#163347);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,#1681a0) var(--surface-soft,#ecf4f8);}
.weather-day-card{display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:10px;border:1px solid var(--line,#ccd7df);border-radius:var(--radius-sm,12px);background:var(--surface,#fff);color:var(--ink,#163347);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;}
.weather-day-card:hover{background:var(--surface-soft,#ecf4f8);}
.weather-day-card.is-active{border-color:var(--accent,#1681a0);background:var(--surface-soft,#ecf4f8);box-shadow:inset 0 0 0 1px var(--accent,#1681a0);}
.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,#1681a0);}
.weather-day-temps{display:flex;align-items:center;gap:6px;font-size:.75rem;}
.weather-day-temps .t-min{color:var(--muted,#627584);}
.weather-day-temps .t-max{font-weight:700;color:var(--ink,#163347);}
.weather-temp-bar{position:relative;flex:1;height:5px;border-radius:999px;background:var(--line,#ccd7df);overflow:hidden;}
.weather-temp-bar i{position:absolute;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#38bdf8,var(--accent,#1681a0),#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,12px);background:var(--surface-soft,#ecf4f8);border:1px solid var(--line,#ccd7df);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,#fff);border:1px solid var(--line,#ccd7df);font-size:.73rem;text-align:center;}
.weather-hour-time{font-size:.68rem;color:var(--muted,#627584);white-space:nowrap;}
.weather-hour-icon{display:flex;align-items:center;justify-content:center;height:24px;color:var(--accent,#1681a0);}
.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,#627584);white-space:nowrap;}

.weather-view--combo .weather-forecast-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--line,#ccd7df);}

.weather-scroll{width:100%;min-width:0;max-width:100%;overflow-x:scroll;overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:var(--accent,#1681a0) var(--surface-soft,#ecf4f8);padding-bottom:8px;}
.weather-scroll::-webkit-scrollbar{height:12px;}.weather-scroll::-webkit-scrollbar-track{background:var(--surface-soft,#ecf4f8);border-radius:8px;}.weather-scroll::-webkit-scrollbar-thumb{background:var(--accent,#1681a0);border:3px solid var(--surface-soft,#ecf4f8);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,#ccd7df);border-radius:6px;background:var(--surface-soft,#ecf4f8);color:var(--ink,#163347);cursor:pointer;}
.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,#1681a0);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,#fff);color:var(--ink,#163347);font-size:.72rem;}

.weather-forecast-note,.weather-notice,.weather-data-note{font-size:.7rem;line-height:1.45;color:var(--muted,#627584);margin:8px 0 0;}
.weather-module :focus-visible{outline:2px solid var(--accent,#1681a0);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,#ccd7df);box-sizing:border-box;text-align:center;white-space:nowrap;}
.weather-grid-head .weather-cell{height:32px;min-height:32px;max-height:32px;background:var(--surface,#fff);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,#fff);border-right:1px solid var(--line,#ccd7df);will-change:transform;}
.weather-html .weather-html-label{width:44px;min-width:44px;max-width:44px;flex:0 0 44px;box-sizing:border-box;background:var(--surface,#fff);color:var(--muted,#627584);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,#1681a0);}
.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,#fff);border-right:1px solid var(--line,#ccd7df);font-size:.68rem;font-weight:700;color:var(--ink,#163347);will-change:transform;}
.weather-grid-head .weather-date-label:not(:first-child){border-left:1px solid var(--line,#ccd7df);}
.weather-day-spacer{width:44px;min-width:44px;max-width:44px;flex:0 0 44px;background:var(--surface,#fff);border-left:1px solid var(--line,#ccd7df);border-right:1px solid var(--line,#ccd7df);border-bottom:1px solid var(--line,#ccd7df);box-sizing:border-box;}
.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,#163347);color:var(--surface,#fff);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,#ccd7df);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,#fff);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,#1681a0);}
.weather-air{margin-top:4px;border-top:1px solid var(--line,#ccd7df);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%;box-sizing:border-box;padding:4px 6px;cursor:pointer;list-style:none;font-size:.75rem;color:var(--muted,#627584);background:var(--surface,#fff);}
.weather-air summary::-webkit-details-marker{display:none;}
.weather-air summary .chevron{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;line-height:1;transition:transform .2s ease;transform-origin:center;}
.weather-air[open] summary .chevron{transform:rotate(180deg);}
.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,#ccd7df);}
.weather-air .weather-labels-col .weather-cell{border-right:0;font-weight:600;color:var(--muted,#627584);}