.xf-forecast,.xf-discovery { --xf-bg:#fff; --xf-text:#16354a; --xf-muted:#496476; --xf-line:#bdd0df; --xf-tint:#edf5fa; --xf-accent:#08667e; color:var(--xf-text); text-align:left; margin:24px 0; min-width:0; }
.xionia-dark .xf-forecast,.xionia-dark .xf-discovery { --xf-bg:#142d40; --xf-text:#edf6fc; --xf-muted:#bdd4e3; --xf-line:#47667c; --xf-tint:#1b3a50; --xf-accent:#8cdeec; }
.xf-forecast h2,.xf-discovery h2 {font:700 22px/1.35 system-ui,sans-serif;margin:0 0 12px;color:inherit;}
.xf-days {display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:12px;}
.xf-day {display:flex;flex-direction:column;min-width:0;background:var(--xf-bg);border:1px solid var(--xf-line);border-top:4px solid var(--xf-accent);border-radius:12px;padding:14px;font:14px/1.5 system-ui,sans-serif;color:var(--xf-text);}
.xf-day h3 {margin:0;font-size:17px;color:inherit;}
.xf-day .xf-condition {min-height:42px;margin:8px 0;font-size:15px;}
.xf-day dl {display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 8px;margin:0 0 10px;}
.xf-day dt {color:var(--xf-muted);font-size:12px;align-self:center;}
.xf-day dd {margin:0;text-align:right;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.xf-day small,.xf-note {color:var(--xf-muted);font-size:12px;line-height:1.55;}
.xf-period {min-height:20px;}
.xf-day .xf-trend {display:block;color:var(--xf-accent);margin:5px 0;}
.xf-day button {margin-top:auto;min-height:44px;align-self:stretch;background:var(--xf-tint);color:var(--xf-text);border:1px solid var(--xf-line);border-radius:8px;font:600 13px system-ui;padding:10px;cursor:pointer;}
.xf-note {margin:10px 0 16px;}
.xf-discovery {padding:20px;border:1px solid var(--xf-line);border-radius:12px;background:var(--xf-bg);}
.xf-links {display:flex;flex-wrap:wrap;gap:10px 20px;list-style:none;padding:0;margin:12px 0;}
.xf-links li {margin:0;}
.xf-links a {color:var(--xf-accent);font-size:14px;line-height:1.6;text-decoration:underline;text-underline-offset:3px;}
.xf-discovery .map-place-search {margin:14px 0;}
.xf-comparison {overflow:auto;max-width:100%;}
.xf-comparison table {border-collapse:collapse;width:100%;text-align:left;}
.xf-comparison th,.xf-comparison td {padding:10px;border:1px solid var(--line,#bdd0df);white-space:nowrap;}
.xf-comparison thead {background:var(--panel,#edf5fa);}
.xf-comparison tr:nth-child(even) {background:color-mix(in srgb,var(--accent,#08667e) 6%,transparent);}
.xf-calibration-controls {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:15px 0;}
@media(max-width:600px){.xf-days{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.xf-day{padding:10px 8px}.xf-day dl{grid-template-columns:1fr;gap:0}.xf-day dt{margin-top:4px}.xf-day dd{text-align:left}.xf-day button{font-size:12px}.xf-discovery{padding:14px}.xf-links{display:grid;gap:8px}.xf-forecast h2{font-size:20px}}
@media(max-width:340px){.xf-days{grid-template-columns:minmax(0,1fr)}}

/* Model21: readable, shared model weights and height provenance. */
.xf-model-blend{max-width:100%;margin:12px 0 16px;padding:14px;border:1px solid #bbd0df;border-radius:12px;background:#f1f7fb;color:#183d55;text-align:left;font:14px/1.5 system-ui,sans-serif;white-space:normal}
.xf-model-blend h3{margin:0 0 8px;font:700 17px/1.35 system-ui,sans-serif;color:inherit}
.xf-model-blend p{margin:8px 0;font:inherit;color:inherit;white-space:normal}
.xf-model-blend .xf-blend-scroll{max-width:100%;overflow:auto}
.xf-model-blend table{width:100%;border-collapse:collapse;font:13px/1.4 system-ui,sans-serif;background:transparent;color:inherit}
.xf-model-blend th,.xf-model-blend td{padding:8px 6px;border-bottom:1px solid #c8dbe7;background:transparent;color:inherit;text-align:right;white-space:nowrap}
.xf-model-blend th:first-child{max-width:240px;text-align:left;white-space:normal}
.xf-model-blend summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}
.xionia-dark .xf-model-blend{background:#17364a;color:#e5f3fd;border-color:#486a81}
.xionia-dark .xf-model-blend th,.xionia-dark .xf-model-blend td{border-color:#486a81}
@media(max-width:600px){.xf-model-blend{padding:10px;font-size:13px}.xf-model-blend th,.xf-model-blend td{padding:7px 4px;font-size:12px}.xf-model-blend th:first-child{max-width:135px}}

/* v27: the first forecast stays compact, with every day reachable by touch or keyboard. */
.x27-primary-forecast{min-width:0;max-width:100%;margin:20px 0;}
.x27-primary-forecast .xf-forecast{margin:16px 0;}
.x27-primary-forecast .xf-days{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:clamp(235px,28vw,285px);gap:12px;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:3px 3px 12px;}
.x27-primary-forecast .xf-day{scroll-snap-align:start;}
.x27-primary-forecast .xf-day dl{grid-template-columns:auto minmax(0,1fr);gap:6px 8px;}
.x27-primary-forecast .xf-day dt{margin:0;}
.x27-primary-forecast .xf-day dd{text-align:right;}
.x27-primary-forecast .xf-days:focus-visible{outline:3px solid var(--xf-accent);outline-offset:2px;}
.x27-primary-forecast [hidden]{display:none!important;}
@media(prefers-reduced-motion:reduce){.x27-primary-forecast .xf-days{scroll-behavior:auto;scroll-snap-type:none;}}

/* v33.4: compact disclosure of the models actually used for wind and gust. */
.xf-wind-coverage{font:12px/1.45 system-ui,sans-serif;margin:0 0 8px;color:var(--xf-muted);overflow-wrap:anywhere;}
.xf-wind-coverage summary{cursor:pointer;min-height:44px;padding:7px 0;color:var(--xf-accent);font-weight:600;}
.xf-wind-coverage p{margin:3px 0 6px;font:inherit;}
.xf-wind-coverage summary:focus-visible{outline:2px solid var(--xf-accent);outline-offset:2px;}
#retry-city[hidden],#retry-forecast[hidden],#retry[hidden]{display:none!important;}

/* v33.5: native weather symbols, calmer daily cards and clear combined rows. */
.xf-forecast{--xf-line:#d6e3eb;--xf-muted:#546d7e}.xf-days{gap:14px}.xf-day{border-top-width:1px;border-radius:16px;padding:17px 15px;box-shadow:0 3px 14px #16354a08}.xf-day[data-today=true]{border-color:#74a9be;box-shadow:inset 0 3px #4a93ae,0 4px 16px #16354a0b}.xf-day h3{font-size:16px;font-weight:750;letter-spacing:-.01em}.xf-day .xf-condition{display:flex;align-items:center;gap:10px;min-height:70px;margin:8px 0 13px;font-size:14px;line-height:1.4;font-weight:650}.xf-condition .xw-weather-svg{width:58px;height:58px;flex:0 0 58px;filter:drop-shadow(0 3px 2px #16354a0a)}.xf-day dl{gap:7px 10px}.xf-day dd{font-weight:650}.xf-day dl dt:first-child,.xf-day dl dd:nth-child(2){padding:7px 0 11px;border-bottom:1px solid var(--xf-line);margin-bottom:3px}.xf-day dl dd:nth-child(2){font-size:16px;letter-spacing:-.03em}.xf-day button{margin-top:auto;background:var(--xf-tint);border-color:transparent}.xf-day button:hover{border-color:var(--xf-accent)}.xf-day button:focus-visible{outline:3px solid var(--xf-accent);outline-offset:3px}.xf-day .xf-coverage{font-size:11px;margin-bottom:7px}.xf-period{font-variant-numeric:tabular-nums;min-height:20px}.xf-combined-row>*{background:var(--xf-tint,#edf5fa)!important;font-weight:750;border-top:2px solid #7ea8bd!important}.xw-condition-cell .xw-weather-svg{width:34px;height:34px;vertical-align:middle;margin-right:7px}.xionia-dark .xf-combined-row>*{background:#1b3a50!important}.xionia-dark .xf-forecast{--xf-line:#47667c;--xf-muted:#bdd4e3}.xionia-dark .xf-day[data-today=true]{border-color:#6096ad}.xionia-dark .xw-weather-svg{filter:drop-shadow(0 2px 2px #0002)}
@media(max-width:600px){.xf-day{padding:13px 10px;border-radius:12px}.xf-day .xf-condition{flex-direction:column;align-items:flex-start;gap:3px;min-height:106px}.xf-condition .xw-weather-svg{width:48px;height:48px;flex-basis:48px}.x27-primary-forecast .xf-day .xf-condition{flex-direction:row;align-items:center;min-height:70px;gap:9px}.xf-day dl dt:first-child{border:0;padding-bottom:0;margin:0}.x27-primary-forecast .xf-day dl dt:first-child{border-bottom:1px solid var(--xf-line);padding-bottom:11px;margin-bottom:3px}}

/* v33.6: an explicit remaining-day window and a clear reading order on every card. */
.xf-day{--xf-weather:#7c9baa;position:relative;padding:17px 15px;gap:0;border-radius:17px;border-top:3px solid var(--xf-weather);box-shadow:0 3px 15px #16354a08;transition:border-color .15s,box-shadow .15s}
.xf-day[data-weather=sun]{--xf-weather:#d4b05d}
.xf-day[data-weather=rain],.xf-day[data-weather=drizzle],.xf-day[data-weather=showers]{--xf-weather:#71a4bf}
.xf-day[data-weather=snow]{--xf-weather:#8fb6c5}
.xf-day[data-weather=storm],.xf-day[data-weather=thunder]{--xf-weather:#9a94b6}
.xf-day[data-today=true]{border-color:#6d9eb3;box-shadow:0 4px 18px #16354a10;background:linear-gradient(160deg,var(--xf-tint),var(--xf-bg) 42%)}
.xf-day-heading{min-height:70px;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.xf-day h3{font-size:17px;line-height:1.35;letter-spacing:-.015em}
.xf-day[data-today=true] h3{color:var(--xf-accent)}
.xf-day .xf-period{display:flex;flex-wrap:wrap;gap:0 5px;min-height:0;padding:3px 7px;border-radius:7px;background:var(--xf-tint);border:1px solid var(--xf-line);color:var(--xf-text);font-size:11px;line-height:1.5;font-weight:600}
.xf-period-hours{white-space:nowrap;font-variant-numeric:tabular-nums}
.xf-day .xf-condition{margin:3px 0 13px;min-height:70px;gap:10px;align-items:center;font-size:14px}
.xf-condition .xw-weather-svg{width:62px;height:62px;flex:0 0 62px}
.xf-day .xf-temperatures,.xf-day .xf-precipitation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 13px}
.xf-day .xf-temperatures{padding-bottom:13px;border-bottom:1px solid var(--xf-line)}
.xf-day .xf-temperatures div,.xf-day .xf-precipitation div{min-width:0}
.xf-day .xf-temperatures dt,.xf-day .xf-temperatures dd,.xf-day .xf-precipitation dt,.xf-day .xf-precipitation dd,.xf-day .xf-metrics dt,.xf-day .xf-metrics dd{padding:0;margin:0;border:0;text-align:left;letter-spacing:normal}
.xf-day .xf-temperatures dt{font-size:11px;line-height:1.4;margin-bottom:4px}
.xf-day .xf-temperatures dd{font-size:clamp(21px,2.5vw,29px);line-height:1.2;font-weight:750;letter-spacing:-.045em;white-space:nowrap}
.xf-temperature-low dd{color:#30769d}
.xf-temperature-high dd{color:#a65232}
.xf-day .xf-precipitation>div{padding:8px 9px;background:var(--xf-tint);border-radius:9px}
.xf-day .xf-precipitation dt{font-size:11px;margin-bottom:3px}
.xf-day .xf-precipitation dd{font-size:15px;line-height:1.4;font-weight:700}
.xf-day .xf-metrics{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0 0 15px}
.xf-day .xf-metrics dt{font-size:12px;align-self:center}
.xf-day .xf-metrics dd{text-align:right;font-size:13px;font-weight:650;max-width:140px}
.xf-day .xf-coverage{font-size:11px;line-height:1.5;margin-bottom:8px}
.xf-day .xf-trend{align-self:flex-start;padding:2px 7px;margin:0 0 9px;border:1px dashed var(--xf-line);border-radius:6px;font-size:11px}
.xf-day button{margin-top:auto;border:1px solid var(--xf-line);border-radius:10px;min-height:44px}
.xf-day button:hover{background:var(--xf-bg)}
.x27-primary-forecast .xf-days{grid-auto-columns:clamp(248px,28vw,286px);padding:4px 4px 14px;scroll-padding-inline:4px}
.xionia-dark .xf-temperature-low dd{color:#90cbea}
.xionia-dark .xf-temperature-high dd{color:#efb38d}
.xionia-dark .xf-day[data-today=true]{border-color:#679db4;box-shadow:0 3px 16px #0002}
@media(hover:hover){.xf-day:hover{box-shadow:0 5px 20px #16354a14}.xionia-dark .xf-day:hover{box-shadow:0 5px 20px #0003}}
@media(max-width:600px){
 .xf-days{gap:9px}.xf-day{padding:12px 10px;border-radius:13px}
 .xf-day-heading{min-height:82px}.xf-day h3{font-size:15px}
 .xf-day .xf-condition{min-height:102px;flex-direction:column;align-items:flex-start;gap:4px}
 .xf-condition .xw-weather-svg{width:50px;height:50px;flex-basis:50px}
 .xf-day .xf-temperatures{gap:5px}.xf-day .xf-temperatures dd{font-size:20px}
 .xf-day .xf-temperatures dt{min-height:31px;font-size:10px}
 .xf-day .xf-precipitation{gap:5px}.xf-day .xf-precipitation>div{padding:7px 5px}
 .xf-day .xf-precipitation dt{font-size:10px;min-height:28px}.xf-day .xf-precipitation dd{font-size:13px}
 .xf-day .xf-metrics{grid-template-columns:minmax(0,1fr);gap:1px}
 .xf-day .xf-metrics dt{margin-top:5px;font-size:11px}.xf-day .xf-metrics dd{text-align:left;font-size:13px}
 .x27-primary-forecast .xf-day-heading{min-height:70px}
 .x27-primary-forecast .xf-day .xf-condition{flex-direction:row;align-items:center;min-height:70px;gap:10px}
 .x27-primary-forecast .xf-day .xf-temperatures{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .x27-primary-forecast .xf-day .xf-temperatures dt{min-height:0;font-size:11px}
 .x27-primary-forecast .xf-day .xf-temperatures dd{font-size:27px;text-align:left}
 .x27-primary-forecast .xf-day .xf-precipitation{grid-template-columns:repeat(2,minmax(0,1fr))}
 .x27-primary-forecast .xf-day .xf-precipitation dt{min-height:0;font-size:11px}
 .x27-primary-forecast .xf-day .xf-precipitation dd{font-size:15px;text-align:left}
 .x27-primary-forecast .xf-day .xf-metrics{grid-template-columns:minmax(0,1fr) auto;gap:8px}
 .x27-primary-forecast .xf-day .xf-metrics dt{margin:0;font-size:12px}
 .x27-primary-forecast .xf-day .xf-metrics dd{text-align:right}
 .x27-primary-forecast .xf-day dl dt:first-child{padding:0;border:0;margin-bottom:0}
}
@media(max-width:380px){.xf-days{grid-template-columns:minmax(0,1fr)}.xf-day .xf-condition{flex-direction:row;align-items:center;min-height:70px}.xf-day-heading{min-height:70px}.xf-day .xf-temperatures dd{font-size:27px}.xf-day .xf-temperatures dt,.xf-day .xf-precipitation dt{min-height:0}.xf-day .xf-metrics{grid-template-columns:minmax(0,1fr) auto;gap:8px}.xf-day .xf-metrics dd{text-align:right}.x27-primary-forecast .xf-days{grid-template-columns:none}}
@media(prefers-reduced-motion:reduce){.xf-day{transition:none}}

#xionia-forecast-recovery{width:100%;grid-column:1/-1;min-width:0}.xionia-weather-tools{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:22px 0;padding:14px 0;border-block:1px solid #829caa40;font:13px/1.7 system-ui}.xionia-weather-tools a{color:inherit;text-underline-offset:3px}

.xc-dashboard{display:grid;gap:22px;margin:24px 0;min-width:0}.xc-panel{padding:20px;border:1px solid var(--line,#cbd7df);border-radius:12px;background:var(--panel,#fff);color:var(--text,#122c40);min-width:0}.xc-panel h3{font-size:20px;margin:0 0 14px}.xc-panel label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.xc-panel select{font:inherit;color:inherit;background:var(--panel,#fff);border:1px solid var(--line,#cbd7df);border-radius:8px;padding:8px 12px;max-width:100%}.xc-plot{position:relative;min-width:0;margin-top:14px}.xc-plot svg{display:block;width:100%;height:auto;min-height:200px;overflow:visible;touch-action:pan-y}.xc-plot text{fill:var(--muted,#496476);font:13px system-ui,sans-serif}.xc-grid{stroke:var(--line,#cbd7df);stroke-width:1}.xc-cursor{stroke:var(--text,#122c40);stroke-dasharray:4 3;pointer-events:none}.xc-tooltip{position:absolute;z-index:5;top:38px;max-width:min(280px,100%);box-sizing:border-box;padding:10px 12px;border:1px solid var(--line,#cbd7df);border-radius:8px;background:var(--panel,#fff);color:var(--text,#122c40);box-shadow:0 4px 20px #0002;font:14px/1.5 system-ui,sans-serif;pointer-events:none;overflow-wrap:anywhere}.xc-tooltip strong{display:block;margin-bottom:4px}.xc-legend{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:14px;margin:5px 0}.xc-legend span:before{content:'';display:inline-block;width:18px;border-top:3px solid var(--c);margin-right:7px;vertical-align:middle}.xc-note{font-size:14px;color:var(--muted,#496476);margin:0}.xc-plot [role=slider]:focus-visible{outline:2px solid var(--accent,#096783);outline-offset:3px}@media(max-width:600px){.xc-panel{padding:12px}.xc-panel h3{font-size:18px}}.xionia-units-control{font-size:14px!important}

#temperature-chart.xc-dashboard{overflow:visible}#temperature-chart .xc-plot svg{min-width:0;width:100%;height:auto}.xionia-source-status{font:13px/1.4 system-ui,sans-serif;color:inherit;max-width:240px}

#legend.xc-legend span,.legend.xc-legend span{border-bottom:0;padding-bottom:0}

.xionia-gps-tools{box-sizing:border-box;width:100%;padding:7px 2px 2px;font:12px/1.45 system-ui,sans-serif;text-align:center;color:inherit;}
.xionia-gps-buttons{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px;}
.xionia-gps-tools button,.point-controls button,.point-actions button{font:inherit;min-height:36px;border:1px solid currentColor;border-radius:7px;padding:6px 11px;cursor:pointer;color:inherit;background:transparent;}
.xionia-gps-tools button:hover,.point-controls button:hover{background:color-mix(in srgb,currentColor 8%,transparent);}
.xionia-gps-tools button:disabled,.point-controls button:disabled{cursor:wait;opacity:.65;}
.xionia-gps-tools :is(a,button):focus-visible,.point-controls :is(a,button,input):focus-visible{outline:3px solid #d89016;outline-offset:3px;}
.xionia-gps-tools a{display:inline;color:inherit!important;font:inherit;text-decoration:underline;padding:0;border:0;background:none;margin:0;}
.xionia-gps-tools p{margin:5px 0 0;font:inherit;overflow-wrap:anywhere;}
.xionia-gps-status:empty{display:none;}
body[data-gps-active=true]>#widget-link,body[data-gps-active=true]>.xionia-recovery{display:none!important;}
#station-gps-result[hidden]{display:none!important;}
#station-gps-result{box-sizing:border-box;width:100%;margin:0;padding:8px;border-radius:10px;}
#station-location-tools{color:var(--widget-text,#15314a);background:var(--widget-bg,#f1f7fc);}
body[data-station-widget=true]{font-family:system-ui,sans-serif;background:var(--widget-bg,#f1f7fc);}
.point-page{box-sizing:border-box;width:100%;max-width:1180px;margin:0 auto;padding:14px;font:16px/1.65 system-ui,sans-serif;}
.point-page section{min-width:0;margin:22px 0;scroll-margin-top:18px;}
.point-page h1{font-size:clamp(24px,4vw,36px);line-height:1.3;text-wrap:balance;}
.point-controls{display:flex;align-items:end;justify-content:center;flex-wrap:wrap;gap:10px;}
.point-controls label{display:grid;gap:4px;text-align:start;font-size:14px;}
.point-controls input{box-sizing:border-box;max-width:100%;width:170px;padding:8px;border:1px solid #7896aa;border-radius:7px;font:inherit;}
.point-page .point-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;margin:12px 0;}
.point-page .point-note{font-size:14px;margin:10px auto;max-width:85ch;}
.point-page .point-table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;}
.point-page table{border-collapse:collapse;width:100%;min-width:760px;font-size:14px;}
.point-page th,.point-page td{padding:8px;border-bottom:1px solid #afc5d4;text-align:center;}
.point-page th{white-space:nowrap;}
.point-page #point-map{width:100%;height:400px;max-height:65svh;min-height:240px;position:relative;background:#dce9f1;}
.point-page #point-comparison select{font:inherit;padding:6px;max-width:100%;}
.point-page [hidden]{display:none!important;}
.point-page #point-status[data-error=true]{font-weight:600;}
@media(max-width:600px){.point-page{padding:8px;}.point-controls input{width:145px;}.point-page th,.point-page td{padding:7px 5px;}}

