/** Regular forecast v4: critical part (above VM_FORECAST_DEFERRED) is inlined; the full file loads async. */
.vm-forecast-v3 { --vm-fc-accent-from:#2563eb; --vm-fc-accent-to:#0284c7; --vm-fc-accent:linear-gradient(120deg,#2563eb,#0284c7); --vm-fc-chipbg:#eef4fc; --vm-fc-halo:radial-gradient(circle,rgba(96,165,250,.20),transparent 72%); --vm-fc-chip-bg:rgba(96,165,250,.12); --vm-fc-chip-border:rgba(100,116,139,.20); --vm-fc-shadow-sm:0 1px 3px rgba(15,23,42,.05); --vm-fc-shadow-md:0 6px 18px rgba(15,23,42,.06); --vm-fc-radius-lg:16px; --vm-fc-radius:16px; --vm-fc-gap:34px; --vm-fc-pad:16px; --vm-fc-bar-h:44px; --vm-fc-prose:860px; --vm-fc-surface:var(--vm-bg-primary,#fff); --vm-fc-soft:var(--vm-bg-secondary,#f1f5f9); --vm-fc-border:var(--vm-border-color,#cbd5e1); --vm-fc-line:rgba(148,163,184,.30); --vm-fc-muted:var(--vm-text-secondary,#475569); --vm-fc-danger:#b91c1c; --vm-fc-tgrad:linear-gradient(90deg,#6d28d9 0%,#4338ca 21.43%,#1d4ed8 42.86%,#036e88 57.14%,#707400 70%,#bf4a00 71.43%,#c42a16 85.71%,#b61b41 92.86%,#7e22ce 100%); color:var(--vm-text-primary,#0f172a); }
[data-theme="dark"] .vm-forecast-v3 { --vm-fc-accent-from:#7db4ff; --vm-fc-accent-to:#7dd3fc; --vm-fc-chipbg:#1c3049; --vm-fc-chip-bg:rgba(125,211,252,.12); --vm-fc-surface:#152238; --vm-fc-soft:#101c2e; --vm-fc-border:#334155; --vm-fc-line:rgba(148,163,184,.18); --vm-fc-danger:#fca5a5; --vm-fc-shadow-sm:0 1px 3px rgba(0,0,0,.25); --vm-fc-shadow-md:0 6px 18px rgba(0,0,0,.28); --vm-fc-tgrad:linear-gradient(90deg,#c4b5fd 0%,#a5b4fc 21.43%,#93c5fd 42.86%,#78dae5 57.14%,#d9e279 70%,#fdba74 71.43%,#fb7466 85.71%,#f57b94 92.86%,#d8b4fe 100%); }
@media(min-width:1024px) { .vm-forecast-v3 { --vm-fc-gap:48px; --vm-fc-pad:22px; } }
/* Base */
body.vm-forecast-page .ct-container[data-vm-forecast] { width:min(1320px,calc(100% - 48px)); max-width:1320px; padding-inline:0; display:block; }
body.vm-forecast-page #main { min-height:0!important; }
html:has(body.vm-forecast-page) { scroll-padding-top:60px; }
@media(min-width:1000px) { html:has(body.vm-forecast-page) { scroll-padding-top:calc(var(--vm-header-h,120px) + 60px); } }
.vm-forecast-v3 *, .vm-forecast-v3 *::before, .vm-forecast-v3 *::after { box-sizing:border-box; }
.vm-forecast-v3 h1,.vm-forecast-v3 h2,.vm-forecast-v3 h3 { color:var(--vm-text-primary,#0f172a); line-height:1.3; letter-spacing:-.02em; margin:0; }
.vm-forecast-v3 p { text-align:left!important; margin:0; line-height:1.6; }
.vm-forecast-v3 button { font-family:inherit; cursor:pointer; letter-spacing:normal; }
.vm-forecast-v3 [hidden] { display:none!important; }
.vm-forecast-v3 a { color:var(--vm-fc-accent-from); }
.vm-forecast-v3 :is(button,a,[tabindex]):focus-visible { outline:3px solid #3b82f6; outline-offset:3px; }
.vm-forecast-v3 .screen-reader-text { position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
/* Breadcrumb + heading (H1 unchanged; search sits to the right on desktop) */
.vm-forecast-breadcrumb { display:flex; flex-wrap:nowrap; gap:6px; font-size:.74rem; color:var(--vm-text-muted,#64748b); margin-bottom:14px; white-space:nowrap; overflow-x:auto; scrollbar-width:none; }
.vm-forecast-breadcrumb::-webkit-scrollbar { display:none; }
.vm-forecast-breadcrumb a { color:var(--vm-fc-muted); text-decoration:none; }
.vm-forecast-heading { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; margin-bottom:12px; }
.vm-forecast-eyebrow { display:block; color:var(--vm-fc-accent-from); font-size:.68rem; font-weight:750; text-transform:uppercase; letter-spacing:.1em; margin-bottom:6px; }
.vm-forecast-v3 .vm-forecast-title { font-size:clamp(1.55rem,3vw,2.4rem); font-weight:800; line-height:1.15; padding:0; margin:0; border:0; }
.vm-forecast-v3 .vm-forecast-heading__lead { margin:6px 0 0!important; font-size:.88rem; line-height:1.5; color:var(--vm-fc-muted); max-width:68ch; }
.vm-forecast-heading__meta { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:8px!important; font-size:.75rem; color:var(--vm-fc-muted); }
.vm-forecast-freshness::before { content:""; display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:#16a34a; vertical-align:1px; box-shadow:0 0 0 3px rgba(22,163,74,.16); }
.vm-forecast-freshness--warning::before { background:#d97706; box-shadow:0 0 0 3px rgba(217,119,6,.16); }
.vm-forecast-freshness--expired::before { background:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.16); }
.vm-forecast-v3 #vm-forecast-page-location-search { max-width:none!important; margin:0!important; }
.vm-forecast-v3 #vm-forecast-page-location-search .vm-location-search__field { height:44px; gap:10px; padding:0 12px 0 14px; }
.vm-forecast-v3 #vm-forecast-page-location-search .vm-location-search__icon { width:20px; height:20px; flex-basis:20px; }
.vm-forecast-v3 #vm-forecast-page-location-search .vm-location-search__input { font-size:16px!important; background:transparent!important; border:0!important; box-shadow:none!important; }
@media(min-width:900px) {
 .vm-forecast-heading { grid-template-columns:minmax(0,1fr) minmax(280px,380px); align-items:end; gap:24px; margin-bottom:16px; }
}
/* Sticky section bar (header scrolls away on phones; sticky on desktop) */
.vm-forecast-sectionbar { position:sticky; top:0; z-index:90; margin:0 0 16px; height:var(--vm-fc-bar-h); background:var(--vm-fc-surface); border-bottom:1px solid var(--vm-fc-border); box-shadow:0 6px 12px -12px rgba(15,23,42,.35); }
.vm-forecast-sectionbar__track { display:flex; align-items:stretch; gap:2px; height:100%; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent); padding-right:24px; }
.vm-forecast-sectionbar__track::-webkit-scrollbar { display:none; }
.vm-forecast-sectionbar a { display:flex; align-items:center; flex:0 0 auto; padding:0 12px; font-size:.84rem; font-weight:650; color:var(--vm-fc-muted); text-decoration:none; white-space:nowrap; border-bottom:2px solid transparent; scroll-snap-align:start; }
.vm-forecast-sectionbar a:hover { color:var(--vm-text-primary,#0f172a); }
.vm-forecast-sectionbar a[aria-current="true"] { color:var(--vm-fc-accent-from); border-bottom-color:var(--vm-fc-accent-from); }
@media(min-width:1000px) { .vm-forecast-sectionbar { top:var(--vm-header-h,120px); } }
/* Quality notice */
.vm-forecast-quality { font-size:.84rem; border:1px solid #eab308; border-radius:12px; padding:12px 16px; background:rgba(234,179,8,.08); margin:0 0 16px!important; }
.vm-forecast-quality--expired { border-color:#ef4444; }
/* Hero: today + next 24 hours (Atmospheric Bento) */
.vm-forecast-now { --vm-hero-bg:linear-gradient(130deg,var(--vm-fc-surface) 35%,var(--vm-fc-chipbg) 100%); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:18px 28px; padding:var(--vm-fc-pad); background:var(--vm-hero-bg); border:1px solid var(--vm-fc-border); border-radius:20px; box-shadow:0 10px 28px -8px rgba(15,23,42,.08),var(--vm-fc-shadow-sm); overflow:hidden; scroll-margin-top:60px; }
.vm-forecast-now[data-weather-theme="sunny"] { --vm-hero-bg:linear-gradient(130deg,#fffef9 0%,#fef3c7 48%,#e0f2fe 100%); }
.vm-forecast-now[data-weather-theme="cloudy"] { --vm-hero-bg:linear-gradient(130deg,#ffffff 0%,#f1f5f9 52%,#e2e8f0 100%); }
.vm-forecast-now[data-weather-theme="rainy"] { --vm-hero-bg:linear-gradient(130deg,#f8fafc 0%,#e0f2fe 50%,#dbeafe 100%); }
.vm-forecast-now[data-weather-theme="stormy"] { --vm-hero-bg:linear-gradient(130deg,#f8fafc 0%,#ede9fe 50%,#dbeafe 100%); }
.vm-forecast-now[data-weather-theme="snowy"] { --vm-hero-bg:linear-gradient(130deg,#ffffff 0%,#f0f9ff 50%,#e0e7ff 100%); }
.vm-forecast-now[data-weather-theme="night"] { --vm-hero-bg:linear-gradient(130deg,#f8fafc 0%,#eef2ff 52%,#e0e7ff 100%); }
[data-theme="dark"] .vm-forecast-now[data-weather-theme="sunny"] { --vm-hero-bg:linear-gradient(130deg,#16243a 0%,#1f3147 55%,#2b2927 100%); }
[data-theme="dark"] .vm-forecast-now[data-weather-theme="cloudy"] { --vm-hero-bg:linear-gradient(130deg,#152238 0%,#1c2c44 55%,#18263b 100%); }
[data-theme="dark"] .vm-forecast-now[data-weather-theme="rainy"] { --vm-hero-bg:linear-gradient(130deg,#132238 0%,#173052 55%,#1b395c 100%); }
[data-theme="dark"] .vm-forecast-now[data-weather-theme="stormy"] { --vm-hero-bg:linear-gradient(130deg,#151f36 0%,#222044 55%,#1b2c48 100%); }
[data-theme="dark"] .vm-forecast-now[data-weather-theme="snowy"] { --vm-hero-bg:linear-gradient(130deg,#15243b 0%,#1d3352 55%,#21304d 100%); }
[data-theme="dark"] .vm-forecast-now[data-weather-theme="night"] { --vm-hero-bg:linear-gradient(130deg,#111c30 0%,#172542 55%,#1e1b4b 100%); }
.vm-forecast-now h2 { font-size:1.05rem; font-weight:750; }
.vm-forecast-now-reading { display:flex; align-items:center; gap:14px; margin-top:10px; }
.vm-forecast-now-reading>img { width:76px; height:76px; flex:0 0 76px; background:var(--vm-fc-halo); border-radius:50%; filter:drop-shadow(0 4px 10px rgba(15,23,42,.12)); }
.vm-forecast-now-reading>div { display:flex; flex-direction:column; font-size:.9rem; line-height:1.35; min-width:0; }
.vm-forecast-now-temp { font-size:3.35rem; font-weight:800; letter-spacing:-.05em; line-height:1.02; font-variant-numeric:tabular-nums; }
.vm-forecast-now-label { font-weight:700; font-size:1rem; }
.vm-forecast-now-reading small { font-size:.76rem; color:var(--vm-fc-muted); margin-top:3px; }
.vm-forecast-now-metrics { display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; margin:0; align-content:center; }
.vm-forecast-now-metrics>div { background:var(--vm-fc-surface); border:1px solid var(--vm-fc-line); border-left:3px solid var(--vm-fc-accent-from); border-radius:12px; padding:10px 12px; min-width:0; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-now-metrics dt { font-size:.69rem; font-weight:650; text-transform:uppercase; letter-spacing:.03em; color:var(--vm-fc-muted); margin-bottom:3px; }
.vm-forecast-now-metrics dd { font-size:1.02rem; font-weight:750; margin:0; font-variant-numeric:tabular-nums; }
.vm-forecast-now-metrics dd small { display:block; font-size:.7rem; font-weight:500; margin-top:2px; color:var(--vm-fc-muted); }
/* Next 24 hours: icons never shrink (the old fixed strip height squeezed them to 14 px). */
.vm-forecast-next-hours { grid-column:1/-1; min-height:144px; margin:2px calc(var(--vm-fc-pad) * -1) calc(var(--vm-fc-pad) * -1); padding:12px calc(var(--vm-fc-pad) - 6px) 14px; background:var(--vm-fc-surface); border-top:1px solid var(--vm-fc-line); overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; scrollbar-color:var(--vm-fc-border) transparent; overscroll-behavior-x:contain; }
.vm-forecast-next-hours__list { display:flex; gap:3px; margin:0; padding:0; list-style:none; }
.vm-forecast-next-hour { flex:1 0 54px; display:flex; flex-direction:column; align-items:center; gap:3px; margin:0; padding:7px 2px 6px; border-radius:12px; font-variant-numeric:tabular-nums; transition:background-color .15s; }
.vm-forecast-next-hour:hover { background:var(--vm-fc-soft); }
.vm-forecast-next-hour time { font-size:.72rem; line-height:1.2; color:var(--vm-fc-muted); font-weight:650; }
.vm-forecast-next-hour img { flex:none; width:34px; height:34px; }
.vm-forecast-next-hour strong { font-size:.95rem; line-height:1.2; font-weight:750; }
.vm-forecast-next-hour small { font-size:.66rem; line-height:1.2; min-height:.8rem; }
.vm-forecast-next-hour__pop { color:var(--vm-fc-muted); }
.vm-forecast-next-hour__wind { font-size:.62rem; line-height:1.15; color:var(--vm-fc-muted); font-weight:600; white-space:nowrap; padding-top:2px; border-top:1px solid var(--vm-fc-line); width:88%; text-align:center; }
.vm-forecast-next-hour--now { background:var(--vm-fc-chipbg); box-shadow:inset 0 0 0 1.5px var(--vm-fc-accent-from); }
.vm-forecast-next-hour--now time { color:var(--vm-fc-accent-from); font-weight:800; }
.vm-forecast-next-hour--midnight { border-left:1px dashed var(--vm-fc-border); border-radius:0 12px 12px 0; }
.vm-forecast-next-hour--midnight time { color:var(--vm-fc-accent-from); font-weight:750; }
@media(min-width:900px) {
 .vm-forecast-next-hours { min-height:152px; }
 .vm-forecast-next-hour { flex-basis:52px; }
 .vm-forecast-next-hour img { width:40px; height:40px; }
 .vm-forecast-next-hour time { font-size:.74rem; }
 .vm-forecast-next-hour strong { font-size:1rem; }
}
/* Ukratko: up to four quick answers under the hero */
.vm-forecast-quick { margin-top:14px; }
.vm-forecast-v3 .vm-forecast-quick__title { font-size:.72rem; font-weight:750; letter-spacing:.06em; text-transform:uppercase; color:var(--vm-fc-muted); margin:0 0 8px; }
.vm-forecast-quick__list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:0; }
.vm-forecast-quick__item { min-width:0; padding:12px 14px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-left:4px solid var(--vm-fc-accent-from); border-radius:14px; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-quick__item dt { font-size:.69rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--vm-fc-muted); margin:0 0 3px; }
.vm-forecast-quick__item dd { display:flex; flex-direction:column; gap:1px; margin:0; line-height:1.3; min-width:0; }
.vm-forecast-quick__item strong { font-size:.96rem; font-weight:750; overflow-wrap:anywhere; }
.vm-forecast-quick__item small { font-size:.73rem; color:var(--vm-fc-muted); }
.vm-forecast-quick__item--rain { border-left-color:#3b82f6; }
.vm-forecast-quick__item--warmest { border-left-color:#f97316; }
.vm-forecast-quick__item--trend { border-left-color:#8b5cf6; }
.vm-forecast-quick__item--wind { border-left-color:#14b8a6; }
.vm-forecast-quick__item--normal { border-left-color:#0ea5e9; }
.vm-forecast-quick__item--sun { border-left-color:#eab308; }
@media(max-width:767px) { .vm-forecast-quick__list { grid-template-columns:1fr 1fr; gap:8px; } .vm-forecast-quick__item { padding:10px 11px; } }
/* Section system: eyebrow + H2 + lead, separated by a hairline */
.vm-forecast-section { margin-top:var(--vm-fc-gap); padding-top:var(--vm-fc-gap); border-top:1px solid var(--vm-fc-line); min-width:0; }
.vm-forecast-now + .vm-forecast-section, .vm-forecast-quick + .vm-forecast-section { border-top:0; padding-top:0; }
/* Section heads are centred (eyebrow pill, H2, lead); controls sit centred under them. */
.vm-forecast-section__head { display:flex; flex-direction:column; align-items:center; gap:14px; margin:0 auto 22px; text-align:center; }
.vm-forecast-section__head>div { min-width:0; max-width:var(--vm-fc-prose); }
.vm-forecast-section__head .vm-forecast-eyebrow { display:inline-block; margin-bottom:10px; padding:4px 11px; border-radius:999px; background:var(--vm-fc-chip-bg); line-height:1.4; }
.vm-forecast-v3 .vm-forecast-section__title { font-size:1.3rem; font-weight:780; }
.vm-forecast-v3 .vm-forecast-section__lead { margin:8px auto 0!important; font-size:.86rem; color:var(--vm-fc-muted); max-width:68ch; text-align:center!important; }
@media(min-width:1024px) { .vm-forecast-v3 .vm-forecast-section__title { font-size:1.55rem; } }
.vm-forecast-coverage { font-weight:700; color:var(--vm-text-primary,#0f172a); white-space:nowrap; }
/* Shared value bands also color chart points and bars. Values retain their units and labels. */
.vm-forecast-v3 .vm-forecast-value { color:var(--vm-value-color,#475569); }
.vm-forecast-rain--dry,.vm-forecast-value--unknown { --vm-value-color:#475569; }
.vm-forecast-rain--trace { --vm-value-color:#0369a1; }
.vm-forecast-rain--light { --vm-value-color:#1d4ed8; }
.vm-forecast-rain--moderate { --vm-value-color:#4338ca; }
.vm-forecast-rain--heavy { --vm-value-color:#6d28d9; }
.vm-forecast-rain--intense { --vm-value-color:#a21caf; }
[data-theme="dark"] .vm-forecast-rain--dry,[data-theme="dark"] .vm-forecast-value--unknown { --vm-value-color:#cbd5e1; }
[data-theme="dark"] .vm-forecast-rain--trace { --vm-value-color:#7dd3fc; }
[data-theme="dark"] .vm-forecast-rain--light { --vm-value-color:#93c5fd; }
[data-theme="dark"] .vm-forecast-rain--moderate { --vm-value-color:#c4b5fd; }
[data-theme="dark"] .vm-forecast-rain--heavy { --vm-value-color:#c4b5fd; }
[data-theme="dark"] .vm-forecast-rain--intense { --vm-value-color:#f0abfc; }
/* One-degree temperature shades, shared with the chart palette. */
.vm-forecast-temp--t-30 { --vm-value-color:#6d28d9; }
.vm-forecast-temp--t-29 { --vm-value-color:#6a29d8; }
.vm-forecast-temp--t-28 { --vm-value-color:#672ad7; }
.vm-forecast-temp--t-27 { --vm-value-color:#652bd6; }
.vm-forecast-temp--t-26 { --vm-value-color:#622cd5; }
.vm-forecast-temp--t-25 { --vm-value-color:#5f2dd4; }
.vm-forecast-temp--t-24 { --vm-value-color:#5c2ed3; }
.vm-forecast-temp--t-23 { --vm-value-color:#592fd2; }
.vm-forecast-temp--t-22 { --vm-value-color:#5731d1; }
.vm-forecast-temp--t-21 { --vm-value-color:#5432d0; }
.vm-forecast-temp--t-20 { --vm-value-color:#5133cf; }
.vm-forecast-temp--t-19 { --vm-value-color:#4e34ce; }
.vm-forecast-temp--t-18 { --vm-value-color:#4b35cd; }
.vm-forecast-temp--t-17 { --vm-value-color:#4936cc; }
.vm-forecast-temp--t-16 { --vm-value-color:#4637cb; }
.vm-forecast-temp--t-15 { --vm-value-color:#4338ca; }
.vm-forecast-temp--t-14 { --vm-value-color:#4039cb; }
.vm-forecast-temp--t-13 { --vm-value-color:#3e3bcc; }
.vm-forecast-temp--t-12 { --vm-value-color:#3b3ccd; }
.vm-forecast-temp--t-11 { --vm-value-color:#393ece; }
.vm-forecast-temp--t-10 { --vm-value-color:#363fcf; }
.vm-forecast-temp--t-9 { --vm-value-color:#3441d0; }
.vm-forecast-temp--t-8 { --vm-value-color:#3142d1; }
.vm-forecast-temp--t-7 { --vm-value-color:#2f44d1; }
.vm-forecast-temp--t-6 { --vm-value-color:#2c45d2; }
.vm-forecast-temp--t-5 { --vm-value-color:#2a47d3; }
.vm-forecast-temp--t-4 { --vm-value-color:#2748d4; }
.vm-forecast-temp--t-3 { --vm-value-color:#254ad5; }
.vm-forecast-temp--t-2 { --vm-value-color:#224bd6; }
.vm-forecast-temp--t-1 { --vm-value-color:#204dd7; }
.vm-forecast-temp--t0 { --vm-value-color:#1d4ed8; }
.vm-forecast-temp--t1 { --vm-value-color:#1a51d1; }
.vm-forecast-temp--t2 { --vm-value-color:#1755ca; }
.vm-forecast-temp--t3 { --vm-value-color:#1358c3; }
.vm-forecast-temp--t4 { --vm-value-color:#105cbd; }
.vm-forecast-temp--t5 { --vm-value-color:#0d5fb6; }
.vm-forecast-temp--t6 { --vm-value-color:#0a62af; }
.vm-forecast-temp--t7 { --vm-value-color:#0666a8; }
.vm-forecast-temp--t8 { --vm-value-color:#0369a1; }
.vm-forecast-temp--t9 { --vm-value-color:#036c95; }
.vm-forecast-temp--t10 { --vm-value-color:#036e88; }
.vm-forecast-temp--t11 { --vm-value-color:#04717c; }
.vm-forecast-temp--t12 { --vm-value-color:#047370; }
.vm-forecast-temp--t13 { --vm-value-color:#047663; }
.vm-forecast-temp--t14 { --vm-value-color:#047857; }
.vm-forecast-temp--t15 { --vm-value-color:#1a7746; }
.vm-forecast-temp--t16 { --vm-value-color:#2f7634; }
.vm-forecast-temp--t17 { --vm-value-color:#457623; }
.vm-forecast-temp--t18 { --vm-value-color:#5a7511; }
.vm-forecast-temp--t19 { --vm-value-color:#707400; }
.vm-forecast-temp--t20 { --vm-value-color:#bf4a00; }
.vm-forecast-temp--t21 { --vm-value-color:#c04800; }
.vm-forecast-temp--t22 { --vm-value-color:#c14600; }
.vm-forecast-temp--t23 { --vm-value-color:#c24400; }
.vm-forecast-temp--t24 { --vm-value-color:#c34200; }
.vm-forecast-temp--t25 { --vm-value-color:#c44000; }
.vm-forecast-temp--t26 { --vm-value-color:#c43c04; }
.vm-forecast-temp--t27 { --vm-value-color:#c43709; }
.vm-forecast-temp--t28 { --vm-value-color:#c4330d; }
.vm-forecast-temp--t29 { --vm-value-color:#c42e12; }
.vm-forecast-temp--t30 { --vm-value-color:#c42a16; }
.vm-forecast-temp--t31 { --vm-value-color:#c02518; }
.vm-forecast-temp--t32 { --vm-value-color:#bd211a; }
.vm-forecast-temp--t33 { --vm-value-color:#b91c1c; }
.vm-forecast-temp--t34 { --vm-value-color:#b81c2f; }
.vm-forecast-temp--t35 { --vm-value-color:#b61b41; }
.vm-forecast-temp--t36 { --vm-value-color:#ae1d60; }
.vm-forecast-temp--t37 { --vm-value-color:#a61e80; }
.vm-forecast-temp--t38 { --vm-value-color:#9e209f; }
.vm-forecast-temp--t39 { --vm-value-color:#8e21b7; }
.vm-forecast-temp--t40 { --vm-value-color:#7e22ce; }
[data-theme="dark"] .vm-forecast-temp--t-30 { --vm-value-color:#c4b5fd; }
[data-theme="dark"] .vm-forecast-temp--t-29 { --vm-value-color:#c2b5fd; }
[data-theme="dark"] .vm-forecast-temp--t-28 { --vm-value-color:#c0b5fd; }
[data-theme="dark"] .vm-forecast-temp--t-27 { --vm-value-color:#beb5fd; }
[data-theme="dark"] .vm-forecast-temp--t-26 { --vm-value-color:#bcb5fd; }
[data-theme="dark"] .vm-forecast-temp--t-25 { --vm-value-color:#bab5fd; }
[data-theme="dark"] .vm-forecast-temp--t-24 { --vm-value-color:#b8b5fd; }
[data-theme="dark"] .vm-forecast-temp--t-23 { --vm-value-color:#b6b5fd; }
[data-theme="dark"] .vm-forecast-temp--t-22 { --vm-value-color:#b3b4fc; }
[data-theme="dark"] .vm-forecast-temp--t-21 { --vm-value-color:#b1b4fc; }
[data-theme="dark"] .vm-forecast-temp--t-20 { --vm-value-color:#afb4fc; }
[data-theme="dark"] .vm-forecast-temp--t-19 { --vm-value-color:#adb4fc; }
[data-theme="dark"] .vm-forecast-temp--t-18 { --vm-value-color:#abb4fc; }
[data-theme="dark"] .vm-forecast-temp--t-17 { --vm-value-color:#a9b4fc; }
[data-theme="dark"] .vm-forecast-temp--t-16 { --vm-value-color:#a7b4fc; }
[data-theme="dark"] .vm-forecast-temp--t-15 { --vm-value-color:#a5b4fc; }
[data-theme="dark"] .vm-forecast-temp--t-14 { --vm-value-color:#a4b5fc; }
[data-theme="dark"] .vm-forecast-temp--t-13 { --vm-value-color:#a3b6fc; }
[data-theme="dark"] .vm-forecast-temp--t-12 { --vm-value-color:#a1b7fc; }
[data-theme="dark"] .vm-forecast-temp--t-11 { --vm-value-color:#a0b9fc; }
[data-theme="dark"] .vm-forecast-temp--t-10 { --vm-value-color:#9fbafc; }
[data-theme="dark"] .vm-forecast-temp--t-9 { --vm-value-color:#9ebbfc; }
[data-theme="dark"] .vm-forecast-temp--t-8 { --vm-value-color:#9dbcfc; }
[data-theme="dark"] .vm-forecast-temp--t-7 { --vm-value-color:#9bbdfd; }
[data-theme="dark"] .vm-forecast-temp--t-6 { --vm-value-color:#9abefd; }
[data-theme="dark"] .vm-forecast-temp--t-5 { --vm-value-color:#99bffd; }
[data-theme="dark"] .vm-forecast-temp--t-4 { --vm-value-color:#98c0fd; }
[data-theme="dark"] .vm-forecast-temp--t-3 { --vm-value-color:#97c2fd; }
[data-theme="dark"] .vm-forecast-temp--t-2 { --vm-value-color:#95c3fd; }
[data-theme="dark"] .vm-forecast-temp--t-1 { --vm-value-color:#94c4fd; }
[data-theme="dark"] .vm-forecast-temp--t0 { --vm-value-color:#93c5fd; }
[data-theme="dark"] .vm-forecast-temp--t1 { --vm-value-color:#90c7fd; }
[data-theme="dark"] .vm-forecast-temp--t2 { --vm-value-color:#8ec9fd; }
[data-theme="dark"] .vm-forecast-temp--t3 { --vm-value-color:#8bcafd; }
[data-theme="dark"] .vm-forecast-temp--t4 { --vm-value-color:#88ccfd; }
[data-theme="dark"] .vm-forecast-temp--t5 { --vm-value-color:#85cefc; }
[data-theme="dark"] .vm-forecast-temp--t6 { --vm-value-color:#83d0fc; }
[data-theme="dark"] .vm-forecast-temp--t7 { --vm-value-color:#80d1fc; }
[data-theme="dark"] .vm-forecast-temp--t8 { --vm-value-color:#7dd3fc; }
[data-theme="dark"] .vm-forecast-temp--t9 { --vm-value-color:#7bd6f1; }
[data-theme="dark"] .vm-forecast-temp--t10 { --vm-value-color:#78dae5; }
[data-theme="dark"] .vm-forecast-temp--t11 { --vm-value-color:#76ddda; }
[data-theme="dark"] .vm-forecast-temp--t12 { --vm-value-color:#73e0ce; }
[data-theme="dark"] .vm-forecast-temp--t13 { --vm-value-color:#71e4c3; }
[data-theme="dark"] .vm-forecast-temp--t14 { --vm-value-color:#6ee7b7; }
[data-theme="dark"] .vm-forecast-temp--t15 { --vm-value-color:#83e6ab; }
[data-theme="dark"] .vm-forecast-temp--t16 { --vm-value-color:#99e59e; }
[data-theme="dark"] .vm-forecast-temp--t17 { --vm-value-color:#aee492; }
[data-theme="dark"] .vm-forecast-temp--t18 { --vm-value-color:#c4e385; }
[data-theme="dark"] .vm-forecast-temp--t19 { --vm-value-color:#d9e279; }
[data-theme="dark"] .vm-forecast-temp--t20 { --vm-value-color:#fdba74; }
[data-theme="dark"] .vm-forecast-temp--t21 { --vm-value-color:#fdb269; }
[data-theme="dark"] .vm-forecast-temp--t22 { --vm-value-color:#fcaa5e; }
[data-theme="dark"] .vm-forecast-temp--t23 { --vm-value-color:#fca252; }
[data-theme="dark"] .vm-forecast-temp--t24 { --vm-value-color:#fb9a47; }
[data-theme="dark"] .vm-forecast-temp--t25 { --vm-value-color:#fb923c; }
[data-theme="dark"] .vm-forecast-temp--t26 { --vm-value-color:#fb8c44; }
[data-theme="dark"] .vm-forecast-temp--t27 { --vm-value-color:#fb864d; }
[data-theme="dark"] .vm-forecast-temp--t28 { --vm-value-color:#fb8055; }
[data-theme="dark"] .vm-forecast-temp--t29 { --vm-value-color:#fb7a5e; }
[data-theme="dark"] .vm-forecast-temp--t30 { --vm-value-color:#fb7466; }
[data-theme="dark"] .vm-forecast-temp--t31 { --vm-value-color:#fa746b; }
[data-theme="dark"] .vm-forecast-temp--t32 { --vm-value-color:#f9746f; }
[data-theme="dark"] .vm-forecast-temp--t33 { --vm-value-color:#f87474; }
[data-theme="dark"] .vm-forecast-temp--t34 { --vm-value-color:#f77884; }
[data-theme="dark"] .vm-forecast-temp--t35 { --vm-value-color:#f57b94; }
[data-theme="dark"] .vm-forecast-temp--t36 { --vm-value-color:#e884b2; }
[data-theme="dark"] .vm-forecast-temp--t37 { --vm-value-color:#db8ecf; }
[data-theme="dark"] .vm-forecast-temp--t38 { --vm-value-color:#ce97ed; }
[data-theme="dark"] .vm-forecast-temp--t39 { --vm-value-color:#d3a6f6; }
[data-theme="dark"] .vm-forecast-temp--t40 { --vm-value-color:#d8b4fe; }
/* Daily scan rows: one line per day on a shared temperature scale; the selected day expands in place. */
.vm-forecast-v3 { --vm-day-cols:52px 32px minmax(0,1fr) 58px 12px; --vm-day-areas:"date icon range rain chev"; }
.vm-forecast-days-head { display:grid; grid-template-columns:var(--vm-day-cols); grid-template-areas:var(--vm-day-areas); column-gap:8px; padding:0 12px 6px; font-size:.64rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--vm-text-muted,#64748b); }
.vm-forecast-days-head>span:nth-child(1) { grid-column:date-start / range-start; }
.vm-forecast-days-head>span:nth-child(2) { grid-area:range; text-align:center; }
.vm-forecast-days-head>span:nth-child(3) { grid-area:rain; text-align:right; }
.vm-forecast-days-head>span:nth-child(4) { grid-area:wind; text-align:right; display:none; }
.vm-forecast-days-list { display:flex; flex-direction:column; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:var(--vm-fc-radius); box-shadow:var(--vm-fc-shadow-sm); overflow:hidden; }
.vm-forecast-day-wrap { display:block; min-width:0; }
.vm-forecast-v3 .vm-forecast-day { display:grid; grid-template-columns:var(--vm-day-cols); grid-template-areas:var(--vm-day-areas); align-items:center; column-gap:8px; width:100%; min-height:60px; margin:0; padding:8px 12px; background:transparent; border:0; border-top:1px solid var(--vm-fc-line); border-radius:0; box-shadow:none; color:var(--vm-text-primary,#0f172a); font:inherit; font-size:.84rem; line-height:1.25; text-align:left; text-transform:none; scroll-margin-top:64px; transition:background-color .15s ease; }
.vm-forecast-v3 .vm-forecast-day-wrap:first-child>.vm-forecast-day { border-top:0; }
.vm-forecast-v3 .vm-forecast-day:hover { background:var(--vm-fc-soft); }
.vm-forecast-v3 .vm-forecast-day:focus-visible { outline-offset:-3px; }
.vm-forecast-v3 .vm-forecast-day[aria-expanded="true"] { background:var(--vm-fc-chipbg); box-shadow:inset 4px 0 0 var(--vm-fc-accent-from); }
.vm-forecast-day-date { grid-area:date; display:flex; flex-direction:column; min-width:0; }
.vm-forecast-day-date strong { font-size:.86rem; font-weight:720; }
.vm-forecast-day-date time { font-size:.7rem; color:var(--vm-fc-muted); margin-top:2px; }
.vm-forecast-day-long { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.vm-forecast-day-icon { grid-area:icon; display:grid; place-items:center; width:34px; height:34px; }
.vm-forecast-day-icon img { width:34px; height:34px; }
.vm-forecast-day-label { grid-area:label; display:none; min-width:0; font-size:.8rem; color:var(--vm-fc-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vm-forecast-day-range { grid-area:range; display:grid; grid-template-columns:26px minmax(24px,1fr) 30px; align-items:center; gap:6px; font-weight:750; font-variant-numeric:tabular-nums; min-width:0; }
.vm-forecast-day-range .vm-forecast-min { text-align:right; font-size:.84rem; }
.vm-forecast-day-range .vm-forecast-max { font-size:.95rem; }
.vm-forecast-range { position:relative; height:8px; border-radius:999px; background:var(--vm-fc-soft); box-shadow:inset 0 0 0 1px var(--vm-fc-line); }
.vm-forecast-range__fill { position:absolute; inset:0; border-radius:999px; background-image:var(--vm-fc-tgrad); background-size:var(--vm-range-bgw,100%) 100%; background-position:var(--vm-range-bgx,0%) 0; background-repeat:no-repeat; clip-path:inset(0 calc(100% - var(--hi,0%)) 0 var(--lo,0%) round 999px); }
.vm-forecast-range--empty .vm-forecast-range__fill { display:none; }
.vm-forecast-range__norm,.vm-forecast-days-norm__key::after { position:absolute; top:-4px; bottom:-4px; left:var(--norm,50%); width:2px; margin-left:-1px; border-radius:1px; background:var(--vm-text-primary,#0f172a); opacity:.55; pointer-events:none; }
.vm-forecast-days-norm { display:flex; align-items:center; gap:8px; margin:10px 0 0; font-size:.73rem; color:var(--vm-fc-muted); }
.vm-forecast-days-norm__key { position:relative; flex:none; width:22px; height:8px; border-radius:999px; background:var(--vm-fc-soft); box-shadow:inset 0 0 0 1px var(--vm-fc-line); }
.vm-forecast-days-norm__key::after { content:""; }
.vm-forecast-dashboard { margin:1.5rem 0; }
.vm-forecast-day-rain { grid-area:rain; display:flex; flex-direction:column; align-items:flex-end; gap:1px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.vm-forecast-day-rain strong { font-size:.8rem; font-weight:700; }
.vm-forecast-day-rain small { font-size:.7rem; color:var(--vm-fc-muted); }
.vm-forecast-day[data-dry] .vm-forecast-day-rain strong { font-weight:500; }
.vm-forecast-day-wind { grid-area:wind; display:none; flex-direction:column; align-items:flex-end; gap:1px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.vm-forecast-day-wind strong { font-size:.78rem; font-weight:650; }
.vm-forecast-day-wind small { font-size:.68rem; color:var(--vm-fc-muted); }
.vm-forecast-day-flag { grid-area:icon; align-self:start; justify-self:end; display:grid; place-items:center; width:15px; height:15px; margin:-3px -5px 0 0; border-radius:50%; background:var(--vm-fc-danger); color:var(--vm-fc-surface); font-size:.62rem; font-weight:800; line-height:1; }
.vm-forecast-day-chevron { grid-area:chev; display:grid; place-items:center; color:var(--vm-fc-accent-from); }
.vm-forecast-day-chevron svg { display:block; transition:transform .18s ease; }
.vm-forecast-day[aria-expanded="true"] .vm-forecast-day-chevron svg { transform:rotate(180deg); }
/* Detail panel (inline under the row below 1200px, beside the list above) */
.vm-forecast-detail { min-width:0; width:100%; padding:14px 12px 16px; background:var(--vm-fc-soft); border-top:1px solid var(--vm-fc-line); scroll-margin-top:64px; }
@media(max-width:1199px) { .vm-js .vm-forecast-detail[data-initial] { display:none; } .vm-js .vm-forecast-day-wrap:has(>[data-initial]) .vm-forecast-day { background:transparent; box-shadow:none; } .vm-js .vm-forecast-day-wrap:has(>[data-initial]) .vm-forecast-day-chevron svg { transform:none; } }
.vm-forecast-detail-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.vm-forecast-detail-head h3 { font-size:1.1rem; font-weight:780; }
.vm-forecast-detail-head .vm-forecast-eyebrow { margin-bottom:4px; }
.vm-forecast-v3 .vm-forecast-detail-close { min-width:36px; width:36px; height:36px; border-radius:50%; background:var(--vm-fc-surface); color:var(--vm-text-primary,#0f172a); border:1px solid var(--vm-fc-border); padding:0; font-size:1.3rem; line-height:1; }
.vm-forecast-detail-summary { display:flex; flex-wrap:wrap; gap:6px 8px; margin:0 0 12px!important; font-size:.77rem; line-height:1.35!important; color:var(--vm-fc-muted); }
.vm-forecast-detail-summary>span { display:inline-flex; align-items:center; padding:4px 10px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-line); border-radius:999px; font-weight:600; }
.vm-forecast-detail-summary:empty { display:none; }
.vm-forecast-detail-hazards { color:var(--vm-fc-danger); font-weight:700!important; border-color:var(--vm-fc-danger)!important; }
.vm-forecast-detail #vm-forecast-selected-parts { margin-bottom:14px; }
.vm-forecast-detail #vm-forecast-selected-parts>.vm-forecast-scroll-note { margin:0 0 8px!important; font-size:.75rem; }
.vm-forecast-detail #vm-forecast-selected-hours { min-width:0; }
.vm-forecast-detail .vm-forecast-hour-scroll { max-height:none; overflow-x:auto; overflow-y:visible; }
.vm-forecast-detail-toggle { display:flex; gap:4px; margin-bottom:12px; padding:4px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-line); border-radius:10px; }
.vm-forecast-detail-toggle button { flex:1; padding:8px 10px; border:0; border-radius:7px; color:var(--vm-fc-muted); background:transparent; font-size:.78rem; font-weight:650; min-height:38px; }
.vm-forecast-detail-toggle button[aria-pressed="true"] { color:var(--vm-fc-accent-from)!important; background:var(--vm-fc-chipbg)!important; box-shadow:none; }
/* Hourly table */
.vm-forecast-hour-scroll { overflow:auto; max-height:530px; max-width:100%; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:12px; scrollbar-width:thin; scrollbar-color:var(--vm-fc-border) var(--vm-fc-soft); }
.vm-forecast-v3 .vm-forecast-hour-table { width:100%; min-width:700px; border-collapse:separate; border-spacing:0; border:0; margin:0; font-size:max(13px,.875rem); line-height:1.4; font-variant-numeric:tabular-nums; }
.vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table { min-width:0; }
.vm-forecast-hour-table caption { text-align:left; font-size:max(13px,.8125rem); font-weight:700; padding:10px 12px; color:var(--vm-text-primary,#0f172a); background:var(--vm-fc-surface); border-bottom:1px solid var(--vm-fc-line); }
.vm-forecast-v3 .vm-forecast-hour-table :is(th,td) { border:0; border-bottom:1px solid var(--vm-fc-border); padding:9px 8px; text-align:center; vertical-align:middle; white-space:nowrap; }
.vm-forecast-v3 .vm-forecast-hour-table tbody tr { --vm-hour-row-bg:var(--vm-fc-surface); }
.vm-forecast-v3 .vm-forecast-hour-table tbody tr:nth-child(even) { --vm-hour-row-bg:var(--vm-fc-soft); }
.vm-forecast-v3 .vm-forecast-hour-table tbody tr:hover { --vm-hour-row-bg:var(--vm-fc-chipbg); }
.vm-forecast-v3 .vm-forecast-hour-table tbody :is(th,td) { height:54px; background:var(--vm-hour-row-bg); }
.vm-forecast-v3 .vm-forecast-hour-table :is(th,td):nth-child(3),.vm-forecast-v3 .vm-forecast-hour-table :is(th,td):nth-child(6) { border-left:1px solid var(--vm-fc-border); }
.vm-forecast-v3 .vm-forecast-hour-table tbody tr:last-child :is(th,td) { border-bottom:0; }
.vm-forecast-v3 .vm-forecast-hour-table thead th { position:sticky; top:0; z-index:2; background:var(--vm-fc-soft); color:var(--vm-text-primary,#0f172a); font-weight:750; white-space:normal; }
.vm-forecast-hour-table th:first-child { position:sticky; left:0; background:var(--vm-fc-surface); z-index:1; }
.vm-forecast-hour-table thead th:first-child { z-index:3; background:var(--vm-fc-soft); }
.vm-forecast-hour-table td img { width:32px; height:32px; display:block; margin:auto; background:var(--vm-fc-halo); border-radius:50%; }
.vm-forecast-hour-table small { display:block; font-size:max(13px,.8125rem); font-weight:400; color:var(--vm-fc-muted); margin-top:3px; }
.vm-forecast-uv { display:inline-flex; align-items:center; justify-content:center; min-width:30px; min-height:28px; padding:3px 7px; border-radius:8px; font-size:max(13px,.8125rem); font-weight:750; line-height:1.25; color:var(--vm-uv-text,#475569); background:var(--vm-uv-bg,#e2e8f0); }
.vm-forecast-uv--low { --vm-uv-text:#166534; --vm-uv-bg:#dcfce7; }
.vm-forecast-uv--moderate { --vm-uv-text:#1f2937; --vm-uv-bg:#fef08a; }
.vm-forecast-uv--high { --vm-uv-text:#1f2937; --vm-uv-bg:#fed7aa; }
.vm-forecast-uv--very-high { --vm-uv-text:#b91c1c; --vm-uv-bg:#fee2e2; }
.vm-forecast-uv--extreme { --vm-uv-text:#7e22ce; --vm-uv-bg:#f3e8ff; }
.vm-forecast-uv--unknown { --vm-uv-text:#475569; --vm-uv-bg:#e2e8f0; }
[data-theme="dark"] .vm-forecast-uv--low { --vm-uv-text:#bbf7d0; --vm-uv-bg:#14532d; }
[data-theme="dark"] .vm-forecast-uv--moderate { --vm-uv-text:#0f172a; --vm-uv-bg:#facc15; }
[data-theme="dark"] .vm-forecast-uv--high { --vm-uv-text:#0f172a; --vm-uv-bg:#fb923c; }
[data-theme="dark"] .vm-forecast-uv--very-high { --vm-uv-text:#fecaca; --vm-uv-bg:#7f1d1d; }
[data-theme="dark"] .vm-forecast-uv--extreme { --vm-uv-text:#e9d5ff; --vm-uv-bg:#581c87; }
[data-theme="dark"] .vm-forecast-uv--unknown { --vm-uv-text:#cbd5e1; --vm-uv-bg:#334155; }
.vm-forecast-v3 .vm-forecast-uv-legend { margin:12px 0 0; color:var(--vm-fc-muted); font-size:max(13px,.8125rem); line-height:1.65; }
.vm-forecast-scroll-note { font-size:max(13px,.8125rem); color:var(--vm-fc-muted); margin:10px 0 0!important; }
.vm-forecast-parts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:8px; }
.vm-forecast-part { display:flex; flex-direction:column; gap:4px; align-items:center; padding:12px 8px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:12px; font-size:.76rem; text-align:center; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-part time,.vm-forecast-part small { font-size:.68rem; color:var(--vm-fc-muted); }
.vm-forecast-part b { font-size:1.35rem; line-height:1.15; }
.vm-forecast-part img { width:44px; height:44px; }
.vm-forecast-empty { padding:24px; font-size:.85rem; color:var(--vm-fc-muted); }
.vm-forecast-color-legend { margin-top:12px; color:var(--vm-fc-muted); font-size:.73rem; }
.vm-forecast-color-legend summary { cursor:pointer; width:fit-content; padding:8px 0; font-weight:650; }
.vm-forecast-color-legend p { max-width:90ch; margin:8px 0!important; }
.vm-forecast-color-legend>div { display:flex; flex-wrap:wrap; gap:8px 16px; margin:10px 0; }
.vm-forecast-color-legend>div>strong { flex-basis:100%; }
.vm-forecast-color-legend .vm-forecast-value { font-weight:650; }
.vm-forecast-temperature-scale::after { content:""; flex-basis:100%; height:6px; order:1; border-radius:9px; background:var(--vm-fc-tgrad); }
.vm-forecast-temperature-scale>.vm-forecast-value { order:2; }
/* Meteogram box reservations (the charts render lazily; no layout shift when they appear) */
.vm-forecast-period-toggle { display:inline-flex; gap:4px; padding:4px; background:var(--vm-fc-chipbg); border:1px solid var(--vm-fc-line); border-radius:999px; }
.vm-forecast-v3 .vm-forecast-period-btn { min-height:36px; padding:6px 16px; font-size:.84rem; font-weight:650; border:0; background:transparent; color:var(--vm-fc-muted); border-radius:999px; }
.vm-forecast-v3 .vm-forecast-period-btn[aria-pressed="true"] { color:var(--vm-fc-accent-from)!important; background:var(--vm-fc-surface)!important; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-v3 .vm-forecast-when-ready { visibility:hidden; }
.vm-forecast-v3.is-ready .vm-forecast-when-ready { visibility:visible; }
.vm-forecast-meteogram { min-width:0; overflow:hidden; padding:14px 14px 12px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:var(--vm-fc-radius); box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-chart-days { height:32px; margin:0 0 6px; overflow:hidden; }
.vm-forecast-chart-icons { position:relative; height:44px; margin:0 0 2px; overflow:hidden; }
.vm-forecast-meteogram__plot { position:relative; height:560px; max-width:100%; overflow:hidden; }
.vm-forecast-meteogram__plot canvas { max-width:100%!important; }
.vm-forecast-meteogram__legend { display:flex; flex-wrap:wrap; gap:6px 16px; margin:10px 0 0; padding:0; list-style:none; font-size:.74rem; color:var(--vm-fc-muted); min-height:20px; }
/* Progressive enhancement and fixed-size icons */
.vm-forecast-v3 .vm-forecast-enhance { display:none!important; }
.vm-forecast-v3.is-ready .vm-forecast-enhance { display:revert!important; }
.vm-forecast-v3.is-ready .vm-forecast-sectionbar a.vm-forecast-enhance { display:flex!important; }
.vm-forecast-v3 .vm-forecast-detail-toggle.vm-forecast-enhance { display:flex!important; visibility:hidden; }
.vm-forecast-v3.is-ready .vm-forecast-detail-toggle.vm-forecast-enhance { visibility:visible; }
.vm-forecast-v3 :is(.vm-forecast-now,.vm-forecast-day,.vm-forecast-hour-table,.vm-forecast-part,.vm-forecast-chart-icons,.vm-forecast-next-hours) img { min-height:0!important; object-fit:contain!important; background-color:transparent!important; }
/* Responsive */
@media(min-width:430px) {
 .vm-forecast-v3 { --vm-day-cols:56px 34px minmax(0,1fr) 58px 46px 14px; --vm-day-areas:"date icon range rain wind chev"; }
 .vm-forecast-day-wind { display:flex; }
 .vm-forecast-days-head>span:nth-child(4) { display:block; }
}
@media(min-width:600px) {
 .vm-forecast-v3 { --vm-day-cols:104px 40px minmax(110px,1.1fr) minmax(150px,1.3fr) 72px 70px 18px; --vm-day-areas:"date icon label range rain wind chev"; }
 .vm-forecast-day-label { display:block; }
 .vm-forecast-day-long { position:static; width:auto; height:auto; overflow:visible; clip:auto; }
 .vm-forecast-day-short { display:none; }
 .vm-forecast-v3 .vm-forecast-day { min-height:60px; padding:8px 16px; }
 .vm-forecast-days-head { padding-inline:16px; }
 .vm-forecast-detail { padding:18px 20px 20px; }
}
@media(min-width:1200px) {
 .vm-forecast-v3 { --vm-day-cols:100px 38px minmax(120px,1fr) 64px 58px 16px; --vm-day-areas:"date icon range rain wind chev"; }
 .vm-forecast-day-label { display:none; }
 .vm-forecast-days-head { max-width:470px; }
 .vm-forecast-days-list { display:grid; grid-template-columns:470px minmax(0,1fr); grid-template-rows:repeat(var(--vm-forecast-day-count,10),max-content) minmax(0,1fr); column-gap:24px; align-items:start; background:none; border:0; border-radius:0; box-shadow:none; overflow:visible; }
 .vm-forecast-day-wrap { display:contents; }
 .vm-forecast-v3 .vm-forecast-day { grid-column:1; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-top-width:0; }
 .vm-forecast-v3 .vm-forecast-day-wrap:first-child>.vm-forecast-day { border-top-width:1px; border-radius:var(--vm-fc-radius) var(--vm-fc-radius) 0 0; }
 .vm-forecast-v3 .vm-forecast-day-wrap:last-child>.vm-forecast-day { border-radius:0 0 var(--vm-fc-radius) var(--vm-fc-radius); }
 .vm-forecast-detail { grid-column:2; grid-row:1/-1; align-self:start; position:sticky; top:calc(var(--vm-header-h,120px) + var(--vm-fc-bar-h,44px) + 14px); padding:20px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:var(--vm-fc-radius); box-shadow:var(--vm-fc-shadow-sm); }
 .vm-forecast-v3.is-ready .vm-forecast-detail .vm-forecast-detail-close { display:none!important; }
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table { min-width:0; }
 .vm-forecast-parts { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:1023px) { .vm-forecast-hour-scroll { max-height:400px; } }
@media(max-width:899px) {
 .vm-forecast-now { grid-template-columns:1fr; gap:14px; border-radius:16px; }
 .vm-forecast-now-temp { font-size:2.9rem; }
}
@media(max-width:768px) {
 .vm-forecast-meteogram { padding:10px 8px 10px; }
 .vm-forecast-meteogram__plot { height:470px; }
 .vm-forecast-chart-days { height:28px; }
 .vm-forecast-chart-icons { height:38px; }
}
@media(max-width:639px) {
 .vm-forecast-parts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .vm-forecast-part { padding:10px 6px; gap:3px; }
 .vm-forecast-part img { width:38px; height:38px; }
 .vm-forecast-part b { font-size:1.25rem; }
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table { font-size:.78rem; }
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table :is(th,td) { padding:7px 4px; }
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table small { font-size:.69rem; }
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table td img { width:26px; height:26px; }
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table :is(th,td):nth-child(6),
 .vm-forecast-v3 .vm-forecast-detail .vm-forecast-hour-table :is(th,td):nth-child(7) { display:none; }
 .vm-forecast-detail>.vm-forecast-detail-summary+div+#vm-forecast-selected-parts+#vm-forecast-selected-hours>.vm-forecast-scroll-note { display:none; }
}
@media(max-width:600px) {
 body.vm-forecast-page .ct-container[data-vm-forecast] { width:calc(100% - 24px); }
 .vm-forecast-v3.vm-forecast-article { margin-top:14px; }
 .vm-forecast-breadcrumb { font-size:.68rem; margin-bottom:10px; }
 .vm-forecast-eyebrow { font-size:.62rem; }
 .vm-forecast-heading__meta { font-size:.7rem; }
 .vm-forecast-heading__cadence { display:none; }
 .vm-forecast-now { padding:14px; }
 .vm-forecast-now-reading>img { width:60px; height:60px; flex-basis:60px; }
 .vm-forecast-now-metrics { gap:12px 14px; }
 .vm-forecast-now-metrics>div { padding-left:10px; }
 .vm-forecast-now-metrics dt { font-size:.66rem; }
 .vm-forecast-now-metrics dd { font-size:.92rem; }
 .vm-forecast-detail-head h3 { font-size:1rem; }
}
@media(max-width:480px) {
 .vm-forecast-meteogram__plot { height:430px; }
 .vm-forecast-chart-icons { height:34px; }
 .vm-forecast-v3 .vm-forecast-period-btn { padding:6px 12px; font-size:.8rem; }
}

@media(prefers-reduced-motion:reduce) { .vm-forecast-v3 *, .vm-forecast-v3 *::before { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
/* VM_FORECAST_DEFERRED */
/* Chart rails: HTML icon strip, day names and wind arrows aligned to the chart scale. */
.vm-forecast-chart-days__inner { display:flex; height:100%; overflow:hidden; border:1px solid var(--vm-fc-line); border-radius:8px; }
.vm-forecast-chart-days__item { display:flex; align-items:center; justify-content:center; min-width:0; padding:0 4px; border-left:1px solid var(--vm-fc-line); background:var(--vm-fc-soft); color:var(--vm-text-primary,#0f172a); font-size:.8rem; font-weight:750; line-height:1; white-space:nowrap; overflow:hidden; text-overflow:clip; }
.vm-forecast-chart-days__item--alt { background:var(--vm-fc-surface); }
.vm-forecast-chart-days__item--today { background:var(--vm-fc-chipbg); color:var(--vm-fc-accent-from); font-weight:800; }
.vm-forecast-chart-days__item:first-child { border-left:0; }
.vm-forecast-chart-icons { background:rgba(148,163,184,.07); border-radius:10px; }
.vm-forecast-chart-icons__row { position:relative; height:100%; padding:0; overflow:hidden; }
.vm-forecast-chart-icons__chip { position:absolute; top:50%; left:-100px; transform:translate(-50%,-50%); width:46px; height:46px; display:flex; align-items:center; justify-content:center; }
.vm-forecast-chart-icons__chip img { width:36px; height:36px; display:block; filter:drop-shadow(0 2px 3px rgba(15,23,42,.16)); }
.vm-forecast-meteogram__legend li { display:inline-flex; align-items:center; gap:6px; margin:0; }
.vm-forecast-meteogram__key { display:inline-block; width:18px; height:0; border-top:2.5px solid; }
.vm-forecast-meteogram__key--temp { border-image:linear-gradient(90deg,#1d4ed8,#047857,#bf4a00) 1; }
.vm-forecast-meteogram__key--rain { height:10px; border:0; border-radius:2px; background:linear-gradient(90deg,rgba(29,78,216,.35),#1d4ed8); }
.vm-forecast-meteogram__key--wind { border-color:#10b981; }
.vm-forecast-meteogram__key--gust { border-top-style:dashed; border-color:#34d399; }
.vm-forecast-meteogram__key--pres { border-color:#5aa0d8; }
.vm-forecast-wind-scale { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; margin:8px 0 0; color:var(--vm-text-muted,#64748b); font-size:.72rem; font-weight:600; }
.vm-forecast-wind-scale::before { content:"Strelice vetra:"; font-weight:700; }
.vm-forecast-wind-scale span { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.vm-forecast-wind-scale i { display:inline-block; width:10px; height:10px; border-radius:50%; background:var(--vm-wind-dot); }
.vm-forecast-meteogram__note { margin-top:8px!important; font-size:.74rem; color:var(--vm-fc-muted); }
.vm-forecast-no-data { text-align:center; padding:3rem 1rem; color:var(--vm-text-muted,#64748b); }
/* Descriptive forecast */
.vm-forecast-summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 32px; max-width:var(--vm-fc-prose); margin-inline:auto; }
.vm-forecast-summary-grid>div:last-child { grid-column:1/-1; border-top:1px solid var(--vm-fc-line); padding-top:16px; }
.vm-forecast-summary-grid h3 { font-size:.9rem; margin-bottom:6px; }
.vm-forecast-summary-grid p { font-size:.9rem; color:var(--vm-fc-muted); }
.vm-forecast-method { font-size:.72rem; color:var(--vm-text-muted,#64748b); max-width:var(--vm-fc-prose); margin:16px auto 0!important; }
.vm-forecast-v3 .vm-forecast-narrative__lead { font-size:1rem; line-height:1.6; max-width:var(--vm-fc-prose); margin:0 auto 18px; }
/* Sun and Moon */
.vm-forecast-sky__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.vm-forecast-sky__card { min-width:0; padding:18px 20px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:var(--vm-fc-radius-lg); box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-v3 .vm-forecast-sky__card h3 { font-size:.9rem; margin:0 0 10px; }
.vm-forecast-sky__sun { display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; margin:0; }
.vm-forecast-sky__sun>div { display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; column-gap:8px; }
.vm-forecast-sky__sun img { grid-row:1/3; width:44px; height:44px; }
.vm-forecast-sky__sun dt { font-size:.72rem; color:var(--vm-fc-muted); }
.vm-forecast-sky__sun dd { margin:0; font-size:1.15rem; font-weight:750; font-variant-numeric:tabular-nums; }
.vm-forecast-sky__sun .vm-forecast-sky__length { grid-column:1/-1; display:flex; align-items:baseline; gap:8px; padding-top:10px; border-top:1px solid var(--vm-fc-line); }
.vm-forecast-sky__sun .vm-forecast-sky__length dd { font-size:.95rem; }
.vm-forecast-sky__moon { display:flex; align-items:center; gap:12px; }
.vm-forecast-sky__moon img { width:56px; height:56px; flex:0 0 56px; }
.vm-forecast-v3 .vm-forecast-sky__moon p { display:flex; flex-direction:column; margin:0; }
.vm-forecast-sky__moon strong { font-size:1.05rem; }
.vm-forecast-sky__moon span { font-size:.8rem; color:var(--vm-fc-muted); }
.vm-forecast-v3 .vm-forecast-sky__note { font-size:.78rem; color:var(--vm-fc-muted); margin:10px 0 0; }
.vm-forecast-sky__moontimes { margin-top:12px; }
.vm-forecast-v3 .vm-forecast-sky__subtitle { margin:14px 0 8px; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--vm-fc-muted); }
.vm-forecast-sky__phases { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; margin:0; padding:0; list-style:none; }
.vm-forecast-sky__phases li { display:flex; align-items:center; gap:8px; min-width:0; }
.vm-forecast-sky__phases img { flex:0 0 32px; width:32px; height:32px; }
.vm-forecast-sky__phases span { display:flex; flex-direction:column; font-size:.8rem; line-height:1.3; }
.vm-forecast-sky__phases time { font-size:.74rem; color:var(--vm-fc-muted); }
@media(max-width:600px) { .vm-forecast-sky__grid { grid-template-columns:1fr; } }
/* FAQ */
.vm-forecast-faq__list { display:grid; gap:10px; max-width:var(--vm-fc-prose); margin-inline:auto; }
.vm-forecast-faq__item { background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:14px; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-faq__item[open] { border-color:var(--vm-fc-accent-from); }
.vm-forecast-faq__item summary { position:relative; min-height:48px; padding:14px 46px 14px 18px; font-size:.92rem; font-weight:650; list-style:none; cursor:pointer; }
.vm-forecast-faq__item summary::-webkit-details-marker { display:none; }
.vm-forecast-faq__item summary::after { content:""; position:absolute; right:18px; top:50%; width:8px; height:8px; border-right:2px solid var(--vm-fc-muted); border-bottom:2px solid var(--vm-fc-muted); transform:translateY(-70%) rotate(45deg); transition:transform .2s; }
.vm-forecast-faq__item[open] summary::after { transform:translateY(-30%) rotate(-135deg); }
.vm-forecast-faq__item summary:focus-visible { outline:2px solid var(--vm-fc-accent-from); outline-offset:2px; border-radius:14px; }
.vm-forecast-v3 .vm-forecast-faq__item p { margin:0; padding:0 18px 16px; font-size:.9rem; line-height:1.65; color:var(--vm-fc-muted); }
@media(prefers-reduced-motion:reduce) { .vm-forecast-faq__item summary::after { transition:none; } }
/* Related forecasts */
.vm-forecast-related { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:var(--vm-fc-gap) 0 0; }
.vm-forecast-related a.vm-forecast-cta { --vm-cta-color:#1d4ed8; --vm-cta-tint:#eaf2ff; display:flex; align-items:flex-start; gap:16px; padding:20px; min-width:0; border:1px solid #b7cff7; border-radius:var(--vm-fc-radius-lg); background:linear-gradient(120deg,var(--vm-cta-tint),var(--vm-fc-surface) 85%); box-shadow:var(--vm-fc-shadow-sm); color:var(--vm-text-primary,#0f172a); text-decoration:none; transition:border-color .18s,box-shadow .18s; }
.vm-forecast-related a.vm-forecast-cta--editorial { --vm-cta-color:#0f766e; --vm-cta-tint:#e6f7f1; border-color:#a8d9cd; }
.vm-forecast-related a:only-child { grid-column:1/-1; }
.vm-forecast-related a.vm-forecast-cta:hover { border-color:var(--vm-cta-color); box-shadow:var(--vm-fc-shadow-md); }
.vm-forecast-cta-icon { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; color:var(--vm-cta-color); border:1px solid currentColor; border-radius:12px; }
.vm-forecast-cta-icon svg { width:24px; height:24px; }
.vm-forecast-cta-copy { display:flex; flex-direction:column; gap:6px; min-width:0; }
.vm-forecast-cta-kicker { font-size:.65rem; font-weight:750; letter-spacing:.07em; text-transform:uppercase; color:var(--vm-cta-color); }
.vm-forecast-cta-copy strong { font-size:1rem; line-height:1.4; }
.vm-forecast-cta-description { font-size:.78rem; line-height:1.5; color:var(--vm-fc-muted); }
.vm-forecast-cta-action { display:flex; align-items:center; gap:12px; color:var(--vm-cta-color); font-size:.78rem; font-weight:750; margin-top:4px; }
.vm-forecast-cta-action>span { font-size:1.3rem; line-height:1; }
[data-theme="dark"] .vm-forecast-related a.vm-forecast-cta { --vm-cta-color:#93c5fd; --vm-cta-tint:#162e4d; border-color:#375782; }
[data-theme="dark"] .vm-forecast-related a.vm-forecast-cta--editorial { --vm-cta-color:#5eead4; --vm-cta-tint:#143832; border-color:#35655c; }
.vm-forecast-v3 .vm-forecast-dashboard>.vm-activity { margin:var(--vm-fc-gap) 0 0; border-radius:var(--vm-fc-radius-lg); box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-v3 .vm-forecast-dashboard>.vm-activity h2 { font-weight:780; }
.vm-forecast-v3 .vm-forecast-dashboard>.vm-activity .vm-activity__eyebrow { font-size:.68rem; letter-spacing:.1em; }
/* Full hourly table */
.vm-forecast-all-hours { margin-top:var(--vm-fc-gap); background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:var(--vm-fc-radius-lg); box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-all-hours>summary { cursor:pointer; padding:16px 20px; font-weight:700; font-size:.92rem; text-align:center; }
.vm-forecast-all-hours>div { padding:0 16px 16px; }
.vm-forecast-full-day { margin-top:18px; }
.vm-forecast-full-day h3 { font-size:.95rem; margin-bottom:8px; }
/* Local context and surroundings */
.vm-forecast-local p { color:var(--vm-fc-muted); max-width:var(--vm-fc-prose); margin:0 auto 12px; font-size:.92rem; line-height:1.7; }
.vm-forecast-local-links { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 10px; max-width:var(--vm-fc-prose); margin:8px auto 0; font-size:.84rem; font-weight:650; }
.vm-forecast-local-links a { display:inline-flex; align-items:center; padding:6px 14px; background:var(--vm-fc-chipbg); border:1px solid var(--vm-fc-line); border-radius:999px; color:var(--vm-text-primary,#0f172a); text-decoration:none; transition:border-color .15s,color .15s; }
.vm-forecast-local-links a:hover { border-color:var(--vm-fc-accent-from); color:var(--vm-fc-accent-from); }
/* Climate normals 1991–2020 */
.vm-forecast-climate { max-width:var(--vm-fc-prose); margin:22px auto 18px; }
.vm-forecast-climate__title { margin:0 0 10px; font-size:.98rem; font-weight:750; }
.vm-forecast-climate__wrap { overflow-x:auto; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:14px; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-climate__wrap:focus-visible { outline:2px solid var(--vm-fc-accent-from); outline-offset:2px; }
.vm-forecast-v3 .vm-forecast-climate__table { width:100%; margin:0; border:0; border-collapse:collapse; font-size:.84rem; font-variant-numeric:tabular-nums; }
.vm-forecast-v3 .vm-forecast-climate__table :is(th,td) { padding:7px 12px; border:0; border-bottom:1px solid var(--vm-fc-line); text-align:right; white-space:nowrap; background:transparent; }
.vm-forecast-v3 .vm-forecast-climate__table :is(tbody,tfoot) th { text-align:left; font-weight:650; }
.vm-forecast-v3 .vm-forecast-climate__table thead th { font-size:.7rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--vm-fc-muted); background:var(--vm-fc-soft); }
.vm-forecast-v3 .vm-forecast-climate__table thead th:first-child { text-align:left; }
.vm-forecast-v3 .vm-forecast-climate__table tfoot :is(th,td) { border-bottom:0; font-weight:750; background:var(--vm-fc-soft); }
.vm-forecast-v3 .vm-forecast-climate__current :is(th,td) { background:var(--vm-fc-chip-bg); }
.vm-forecast-climate__current th::after { content:" · sada"; font-size:.72rem; font-weight:500; color:var(--vm-fc-muted); }
.vm-forecast-local .vm-forecast-climate__note { max-width:none; margin:8px 0 0; font-size:.76rem; }
.vm-forecast-v3 .vm-forecast-more .vm-crosslink-box { max-width:var(--vm-fc-prose); margin:0 auto 16px; padding:18px 20px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:var(--vm-fc-radius); box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-v3 .vm-crosslink-title { margin:0 0 12px; font-size:.98rem; }
.vm-forecast-v3 .vm-crosslink-cards { display:flex; flex-direction:row; flex-wrap:wrap; gap:10px; }
.vm-forecast-v3 .vm-crosslink-card { display:flex; flex-direction:row; align-items:center; gap:6px; min-width:auto; padding:8px 14px; background:var(--vm-fc-chipbg); border:1px solid var(--vm-fc-line); border-radius:999px; box-shadow:none; color:var(--vm-text-primary,#0f172a); text-decoration:none; transition:border-color .15s,transform .15s; }
.vm-forecast-v3 .vm-crosslink-card:hover { border-color:var(--vm-fc-accent-from); transform:translateY(-1px); }
.vm-forecast-v3 .vm-crosslink-card__name { font-weight:700; font-size:.88rem; }
.vm-forecast-v3 .vm-crosslink-card__type { font-size:.7rem; color:var(--vm-fc-muted); padding:1px 7px; background:rgba(100,116,139,.12); border-radius:999px; }
.vm-forecast-v3 .vm-crosslink-card__dist { font-size:.78rem; font-weight:600; color:var(--vm-fc-muted); }
[data-theme="dark"] .vm-forecast-v3 .vm-crosslink-card__type { background:rgba(148,163,184,.15); }
/* Air quality (server-rendered; the EEA colour of each level arrives inline as --aq) */
.vm-forecast-air__hero { display:flex; align-items:center; gap:20px; padding:18px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-top:4px solid var(--aq); border-radius:var(--vm-fc-radius-lg); box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-air__ring { position:relative; flex:0 0 112px; width:112px; height:112px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.vm-forecast-air__ring svg { position:absolute; inset:0; width:100%; height:100%; }
.vm-forecast-air__ring-track { fill:none; stroke:rgba(16,24,40,.08); stroke-width:11; }
.vm-forecast-air__ring-arc { fill:none; stroke:var(--aq); stroke-width:11; stroke-linecap:round; }
.vm-forecast-air__ring-num { position:relative; font-size:2rem; font-weight:850; line-height:1; font-variant-numeric:tabular-nums; }
.vm-forecast-air__ring-label { position:relative; margin-top:2px; font-size:.62rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--vm-fc-muted); }
.vm-forecast-air__info { flex:1; min-width:0; }
.vm-forecast-v3 .vm-forecast-air__info p { margin:0 0 6px; }
.vm-forecast-air__level { display:flex; align-items:center; gap:8px; }
.vm-forecast-air__pill { display:inline-block; padding:3px 10px; border-radius:999px; background:var(--aq); color:var(--aq-ink,#0f172a); font-size:.76rem; font-weight:750; line-height:1.4; white-space:nowrap; }
.vm-forecast-air__pill--none { background:var(--vm-fc-soft); color:var(--vm-fc-muted); font-weight:600; }
.vm-forecast-air__level .vm-forecast-air__pill { padding:4px 14px; font-size:1rem; }
.vm-forecast-air__when { font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--vm-fc-muted); }
.vm-forecast-v3 .vm-forecast-air__lead { font-size:.9rem; line-height:1.5; }
.vm-forecast-v3 .vm-forecast-air__meta { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:.78rem; color:var(--vm-fc-muted); }
.vm-forecast-air__scale { position:relative; display:flex; gap:2px; height:8px; margin-top:10px; }
.vm-forecast-air__scale span { flex:1 1 0; border-radius:2px; }
.vm-forecast-air__scale i { position:absolute; top:50%; width:14px; height:14px; border-radius:50%; background:var(--aq); border:2px solid var(--vm-fc-surface); box-shadow:0 0 0 1px rgba(15,23,42,.35); transform:translate(-50%,-50%); }
.vm-forecast-v3 .vm-forecast-air__h3 { margin:22px 0 10px; font-size:.98rem; }
.vm-forecast-air__days { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.vm-forecast-air__day { display:flex; flex-direction:column; gap:6px; min-width:0; padding:12px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-left:4px solid var(--aq); border-radius:12px; }
.vm-forecast-air__day-name { display:flex; align-items:baseline; justify-content:space-between; gap:6px; }
.vm-forecast-air__day-name small,.vm-forecast-air__day-peak { font-size:.72rem; color:var(--vm-fc-muted); }
.vm-forecast-air__day-max { font-size:.82rem; }
.vm-forecast-air__day .vm-forecast-air__pill { align-self:flex-start; }
.vm-forecast-air__strip { margin:12px 0 0; }
.vm-forecast-air__bars { display:block; width:100%; height:64px; cursor:crosshair; touch-action:pan-y; }
.vm-forecast-air__midnight { stroke:var(--vm-fc-muted); stroke-width:1; opacity:.45; vector-effect:non-scaling-stroke; }
.vm-forecast-air__nowline { stroke:var(--vm-text-primary,#0f172a); stroke-width:1.5; stroke-dasharray:3 3; vector-effect:non-scaling-stroke; }
.vm-forecast-air__strip-days { display:flex; margin-top:4px; font-size:.68rem; color:var(--vm-fc-muted); }
.vm-forecast-air__strip-days span { flex-basis:0; min-width:0; padding-left:4px; border-left:1px solid var(--vm-fc-line); white-space:nowrap; overflow:hidden; }
.vm-forecast-air__readout { min-height:1.3em; margin-top:6px; font-size:.78rem; color:var(--vm-fc-muted); }
.vm-forecast-air__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.vm-forecast-air__card { min-width:0; padding:16px 18px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:14px; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-v3 .vm-forecast-air__card h3 { margin:0 0 8px; font-size:.92rem; }
.vm-forecast-air__best { display:grid; gap:6px; margin:0; padding:0; list-style:none; font-size:.86rem; }
.vm-forecast-v3 .vm-forecast-air__small { margin:8px 0 0; font-size:.76rem; color:var(--vm-fc-muted); }
.vm-forecast-v3 .vm-forecast-air__warn { color:#b45309; }
.vm-forecast-v3 .vm-forecast-air__measured { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; margin:0; font-size:.86rem; }
.vm-forecast-air__measured strong { font-size:1.4rem; font-weight:800; font-variant-numeric:tabular-nums; }
.vm-forecast-air__measured small { color:var(--vm-fc-muted); }
.vm-forecast-air__pollutants { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:10px; margin:0; padding:0; list-style:none; }
.vm-forecast-air__pollutant { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:4px 10px; padding:12px 14px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-left:4px solid var(--aq,var(--vm-fc-border)); border-radius:12px; }
.vm-forecast-air__p-name strong { display:block; font-size:.95rem; }
.vm-forecast-air__p-name small { font-size:.72rem; color:var(--vm-fc-muted); }
.vm-forecast-air__p-value { font-size:.78rem; color:var(--vm-fc-muted); text-align:right; white-space:nowrap; }
.vm-forecast-air__p-value strong { font-size:1.2rem; color:var(--vm-text-primary,#0f172a); font-variant-numeric:tabular-nums; }
.vm-forecast-air__pollutant .vm-forecast-air__pill { grid-column:1/-1; justify-self:start; }
.vm-forecast-air__p-who,.vm-forecast-air__p-about { grid-column:1/-1; font-size:.74rem; line-height:1.4; }
.vm-forecast-air__p-about { color:var(--vm-fc-muted); }
.vm-forecast-v3 .vm-forecast-air__note { margin:12px 0 0; padding:10px 12px; font-size:.84rem; background:rgba(245,158,11,.1); border-left:3px solid #f59e0b; border-radius:12px; }
.vm-forecast-air__advice { margin-top:16px; padding:14px 18px; background:var(--vm-fc-surface); border:1px solid var(--vm-fc-border); border-radius:14px; box-shadow:var(--vm-fc-shadow-sm); }
.vm-forecast-air__advice summary { cursor:pointer; font-size:.9rem; font-weight:700; }
.vm-forecast-air__advice summary:focus-visible { outline:2px solid var(--vm-fc-accent-from); outline-offset:3px; }
.vm-forecast-v3 .vm-forecast-air__advice p { margin:10px 0 0; font-size:.86rem; }
.vm-forecast-air__advice ul { margin:10px 0 0 18px; padding:0; font-size:.86rem; line-height:1.5; }
.vm-forecast-air__pollen { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin-top:16px; font-size:.84rem; }
.vm-forecast-air__pollen-label { font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--vm-fc-muted); }
.vm-forecast-air__pollen-chip { padding:3px 10px; background:var(--vm-fc-soft); border:1px solid var(--vm-fc-line); border-radius:999px; }
.vm-forecast-air__pollen-chip--1 b { color:#15803d; }
.vm-forecast-air__pollen-chip--2 b { color:#b45309; }
.vm-forecast-air__pollen-chip--3 b { color:#dc2626; }
.vm-forecast-air__link { margin-left:auto; font-weight:650; }
.vm-forecast-v3 .vm-forecast-air__source { margin:14px 0 0; font-size:.72rem; color:var(--vm-fc-muted); }
[data-theme="dark"] .vm-forecast-air__ring-track { stroke:rgba(148,163,184,.18); }
[data-theme="dark"] .vm-forecast-v3 .vm-forecast-air__warn { color:#fbbf24; }
[data-theme="dark"] .vm-forecast-air__pollen-chip--1 b { color:#4ade80; }
[data-theme="dark"] .vm-forecast-air__pollen-chip--2 b { color:#fbbf24; }
[data-theme="dark"] .vm-forecast-air__pollen-chip--3 b { color:#f87171; }
[data-theme="dark"] .vm-forecast-v3 .vm-forecast-air__note { background:rgba(245,158,11,.14); }
@media(max-width:767px) {
 .vm-forecast-air__hero { display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center; gap:4px 14px; padding:14px; }
 .vm-forecast-air__info { display:contents; }
 .vm-forecast-air__ring { grid-row:1/3; width:88px; height:88px; }
 .vm-forecast-air__ring-num { font-size:1.55rem; }
 .vm-forecast-air__level { grid-column:2; grid-row:1; }
 .vm-forecast-v3 .vm-forecast-air__meta { grid-column:2; grid-row:2; }
 .vm-forecast-v3 .vm-forecast-air__lead { grid-column:1/-1; grid-row:3; margin-top:8px; }
 .vm-forecast-air__scale { grid-column:1/-1; grid-row:4; }
 .vm-forecast-air__p-about { display:none; }
 .vm-forecast-air__days { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .vm-forecast-air__grid { grid-template-columns:1fr; }
 .vm-forecast-air__pollutants { grid-template-columns:1fr; }
 .vm-forecast-air__link { margin-left:0; flex-basis:100%; }
}
/* Dark details for rails */
[data-theme="dark"] .vm-forecast-chart-days__inner { border-color:rgba(148,163,184,.18); }
[data-theme="dark"] .vm-forecast-chart-days__item { background:var(--vm-fc-soft); border-left-color:rgba(148,163,184,.15); color:#e2e8f0; }
[data-theme="dark"] .vm-forecast-chart-days__item--alt { background:var(--vm-fc-surface); }
[data-theme="dark"] .vm-forecast-chart-days__item--today { background:var(--vm-fc-chipbg); color:var(--vm-fc-accent-from); }
[data-theme="dark"] .vm-forecast-chart-icons { background:rgba(15,23,42,.24); }
[data-theme="dark"] .vm-forecast-wind-scale { color:#94a3b8; }
@media(max-width:1023px) { .vm-forecast-summary-grid { grid-template-columns:1fr; gap:14px; } }
@media(max-width:768px) {
 .vm-forecast-chart-days__item { font-size:.7rem; padding:0 2px; }
 .vm-forecast-chart-icons__chip { width:38px; height:38px; }
 .vm-forecast-chart-icons__chip img { width:28px; height:28px; }
 .vm-forecast-meteogram__legend { gap:4px 12px; font-size:.7rem; }
}
@media(max-width:600px) {
 .vm-forecast-related { grid-template-columns:1fr; }
 .vm-forecast-related a.vm-forecast-cta { padding:18px 14px; gap:12px; }
 .vm-forecast-cta-icon { width:38px; height:38px; border-radius:11px; }
 .vm-forecast-cta-copy strong { font-size:.93rem; }
 .vm-forecast-cta-kicker { font-size:.59rem; }
}
@media(max-width:480px) {
 .vm-forecast-chart-days__item { font-size:.64rem; }
 .vm-forecast-chart-icons__chip { width:30px; height:30px; }
 .vm-forecast-chart-icons__chip img { width:24px; height:24px; }
 .vm-forecast-wind-scale { gap:4px 8px; font-size:.62rem; }
 .vm-forecast-wind-scale span { font-size:0; gap:3px; }
 .vm-forecast-wind-scale span::after { content:attr(data-short); font-size:.62rem; }
 .vm-forecast-wind-scale i { width:8px; height:8px; }
}
/* R6: one sub-heading style across sections */
.vm-forecast-v3 :is(.vm-forecast-summary-grid h3,.vm-forecast-sky__card h3,.vm-forecast-air__card h3,.vm-forecast-full-day h3,.vm-crosslink-title), .vm-forecast-v3 .vm-forecast-air__h3, .vm-forecast-v3 .vm-forecast-climate__title { font-size:1rem; font-weight:750; letter-spacing:-.01em; line-height:1.35; }
.vm-forecast-v3 .vm-forecast-more .vm-crosslink-title { display:flex; align-items:center; gap:8px; }
@media(max-width:600px) {
 .vm-forecast-section__head { margin-bottom:18px; }
 .vm-forecast-v3 .vm-forecast-more .vm-crosslink-box { padding:16px; }
 .vm-forecast-faq__item summary { padding:13px 42px 13px 14px; }
 .vm-forecast-v3 .vm-forecast-faq__item p { padding:0 14px 14px; }
}
