.weer-shell{--weer-line:#cbd6e1;--weer-muted:#536578;--weer-text:#172839;--weer-accent:#133d62;--weer-accent-2:#1b527d;--weer-panel:#e9eff5;color:var(--weer-text);background:#fff;border:1px solid var(--weer-line);margin-bottom:28px;font:14px/1.45 Arial,Helvetica,sans-serif;box-shadow:0 5px 20px #133d6210}
.weer-topline{padding:20px 24px;background:linear-gradient(110deg,var(--weer-accent),var(--weer-accent-2));color:#fff;display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}
.weer-eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.13em;color:#e3e9f0}
.weer-topline h1{font-size:1.9rem;line-height:1.1;margin:6px 0 6px}
.weer-topline p{margin:0;color:#d3ddea;font-size:.93rem}
.weer-statusbox{text-align:right;min-width:120px}
.weer-status-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#c7d3e0}
.weer-statusbox strong{display:block;font-size:.95rem}
.weer-notice{margin:0;padding:8px 24px;background:var(--weer-panel);border-bottom:1px solid var(--weer-line);color:var(--weer-muted);font-size:.76rem}
.weer-current{display:flex;align-items:center;gap:22px;padding:22px 24px;border-bottom:1px solid var(--weer-line);flex-wrap:wrap}
.weer-current-icon{font-size:3.6rem;line-height:1}
.weer-current-main{min-width:160px}
.weer-temp{font-size:2.6rem;font-weight:900;line-height:1}
.weer-desc{font-size:1.05rem;font-weight:700;margin-top:2px}
.weer-sub{color:var(--weer-muted);font-size:.82rem;margin-top:2px}
.weer-current-extra{display:grid;grid-template-columns:repeat(4,auto);gap:16px 24px;margin-left:auto}
.weer-current-extra div{text-align:center}
.weer-current-extra span{display:block;color:var(--weer-muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em}
.weer-current-extra strong{display:block;font-size:1.05rem;margin-top:2px}
.weer-hours-section,.weer-days-section,.weer-map-section{padding:18px 24px;border-bottom:1px solid var(--weer-line)}
.weer-hours-section h2,.weer-days-section h2,.weer-map-section h2{margin:0 0 12px;font-size:1rem}
.weer-hours{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.weer-hour{flex:0 0 auto;min-width:64px;text-align:center;padding:10px 8px;border:1px solid var(--weer-line);border-radius:6px;background:#f7f9fb}
.weer-hour-time{font-size:.72rem;color:var(--weer-muted);font-weight:700}
.weer-hour-icon{font-size:1.4rem;margin:4px 0}
.weer-hour-temp{font-weight:900;font-size:.92rem}
.weer-hour-rain{font-size:.68rem;color:var(--weer-muted);margin-top:2px}
.weer-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.weer-day{border:1px solid var(--weer-line);border-radius:6px;padding:12px;background:#f7f9fb}
.weer-day-label{font-weight:900;font-size:.85rem}
.weer-day-icon{font-size:1.8rem;margin:6px 0}
.weer-day-range{font-size:.95rem;font-weight:700}
.weer-day-desc{color:var(--weer-muted);font-size:.76rem;margin-top:2px}
.weer-day-rain{font-size:.72rem;color:var(--weer-muted);margin-top:4px}
.weer-map{display:grid;gap:6px;max-width:520px;margin:0 auto;grid-template-columns:repeat(3,1fr);grid-template-areas:". groningen ." "friesland drenthe ." "noordholland flevoland overijssel" "zuidholland utrecht gelderland" "zeeland noordbrabant limburg"}
.weer-tile{border:1px solid var(--weer-line);border-radius:6px;background:#f0f5fa;padding:10px 6px;font:inherit;cursor:pointer;text-align:center;color:var(--weer-text);min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.weer-tile:hover{background:#dfe8f0}
.weer-tile.is-active{background:var(--weer-accent);color:#fff;border-color:var(--weer-accent)}
.weer-tile-name{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.weer-tile-icon{font-size:1.3rem}
.weer-tile-temp{font-weight:900;font-size:.95rem}
.weer-tile[data-tile="groningen"]{grid-area:groningen}
.weer-tile[data-tile="friesland"]{grid-area:friesland}
.weer-tile[data-tile="drenthe"]{grid-area:drenthe}
.weer-tile[data-tile="noordholland"]{grid-area:noordholland}
.weer-tile[data-tile="flevoland"]{grid-area:flevoland}
.weer-tile[data-tile="overijssel"]{grid-area:overijssel}
.weer-tile[data-tile="zuidholland"]{grid-area:zuidholland}
.weer-tile[data-tile="utrecht"]{grid-area:utrecht}
.weer-tile[data-tile="gelderland"]{grid-area:gelderland}
.weer-tile[data-tile="zeeland"]{grid-area:zeeland}
.weer-tile[data-tile="noordbrabant"]{grid-area:noordbrabant}
.weer-tile[data-tile="limburg"]{grid-area:limburg}
.weer-province-detail{margin-top:14px;padding:12px 14px;border:1px solid var(--weer-line);border-radius:6px;background:#f7f9fb;font-size:.85rem}
.weer-province-detail strong{display:block;font-size:.95rem;margin-bottom:4px}
.weer-map-note{color:var(--weer-muted);font-size:.72rem;margin:12px 0 0;text-align:center}
.weer-bottom{padding:10px 24px;color:var(--weer-muted);font-size:.72rem}
@media(max-width:650px){.weer-topline{padding:16px}.weer-current{padding:16px}.weer-current-extra{grid-template-columns:repeat(2,auto);margin-left:0}.weer-hours-section,.weer-days-section,.weer-map-section{padding:14px 16px}.weer-map{max-width:none}}
.weer-toolbar{display:flex;align-items:center;gap:10px;padding:12px 24px;background:#eef5f8;border-bottom:1px solid var(--weer-line);flex-wrap:wrap}.weer-toolbar label{font-weight:800}.weer-toolbar select{min-width:190px;padding:8px 10px;border:1px solid #9eb3c4;border-radius:6px;background:#fff}.weer-retry{margin-left:auto;padding:8px 12px;border:1px solid var(--weer-accent);border-radius:6px;background:#fff;color:var(--weer-accent);font-weight:800;cursor:pointer}
.weer-official{display:grid;grid-template-columns:auto 1fr auto;gap:8px 16px;align-items:center;padding:12px 24px;background:#fff8dd;border-bottom:1px solid #e8cf76}.weer-official a{font-weight:800;color:#075985}.weer-error,.weer-signals{margin:14px 24px 0;padding:11px 13px;border-radius:7px}.weer-error{background:#fff0f0;border:1px solid #e8a4a4;color:#7b1717}.weer-signals{background:#fff7df;border:1px solid #e6c45d;color:#5f4a09}
.weer-confidence-section,.weer-rain-section{padding:18px 24px;border-bottom:1px solid var(--weer-line)}.weer-shell h3{margin:0 0 12px;font-size:1rem}.weer-section-title{display:flex;justify-content:space-between}.weer-section-title h3{margin:0}.weer-confidence-track{height:9px;border-radius:99px;background:#dbe6ed;overflow:hidden;margin:10px 0}.weer-confidence-track span{display:block;height:100%;background:linear-gradient(90deg,#d97706,#16a34a)}.weer-models{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.weer-model{padding:9px;border:1px solid var(--weer-line);border-radius:7px;background:#f2f7fb}
.weer-chart{min-height:175px;border:1px solid var(--weer-line);border-radius:8px;background:linear-gradient(#fff,#f2f8fc);padding:8px;overflow:hidden}.weer-chart svg{display:block;width:100%;height:170px}.weer-chart text{fill:var(--weer-muted);font-size:10px}.weer-chart .weer-grid{stroke:#d7e3eb}.weer-chart .weer-area{fill:#38bdf833}.weer-chart .weer-line{fill:none;stroke:#0284c7;stroke-width:3}
.weer-days{grid-template-columns:repeat(7,minmax(105px,1fr))}.weer-map-layout{display:grid;grid-template-columns:minmax(220px,310px) 1fr;gap:25px;align-items:center}.weer-nl-map{width:100%;max-height:390px;filter:drop-shadow(0 5px 10px #123b5d24)}.weer-nl-map path{fill:#dbeaf2;stroke:#fff;stroke-width:3;cursor:pointer;transform-box:fill-box;transform-origin:center}.weer-nl-map path:hover,.weer-nl-map path:focus{fill:#8ed0e3;outline:none}.weer-nl-map path.is-active{fill:var(--weer-accent-2)}.weer-shell button:focus-visible,.weer-shell select:focus-visible,.weer-shell [tabindex]:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}.weer-shell.is-loading [data-weer-hours]:empty,.weer-shell.is-loading [data-weer-days]:empty{min-height:72px;background:#edf2f6}
@media(max-width:900px){.weer-days{grid-template-columns:repeat(4,1fr)}.weer-map-layout{grid-template-columns:260px 1fr}}@media(max-width:650px){.weer-toolbar,.weer-official,.weer-confidence-section,.weer-rain-section{padding:14px 16px}.weer-official{grid-template-columns:1fr}.weer-retry{margin-left:0}.weer-models{grid-template-columns:1fr}.weer-days{display:flex;overflow-x:auto}.weer-day{flex:0 0 128px}.weer-map-layout{grid-template-columns:1fr}.weer-nl-map{max-height:310px}}
.weer-topline h2{font-size:1.9rem;line-height:1.1;margin:6px 0}.weer-chart-bar{fill:#1594c6}.weer-chart-bar:hover{fill:#075985}.weer-day-meta,.weer-detail-meta{color:var(--weer-muted);font-size:.7rem;margin-top:4px}.weer-signal{display:flex;gap:8px;flex-wrap:wrap}.weer-signal strong{margin-right:4px}

/* Geographic province map: coordinates projected from CBS/PDOK data. */
.weer-map{grid-template-areas:none;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.weer-nl-map{max-height:474px;background:#edf7fc;border:1px solid var(--weer-line);border-radius:10px;filter:none}.weer-nl-map path{fill:#c9dfcc;stroke:#fff;stroke-width:.65;stroke-linejoin:round}.weer-nl-map path:focus-visible{stroke:#a34300;stroke-width:2}.weer-nl-map path[aria-pressed="true"]{fill:var(--weer-accent-2)}
@media(max-width:650px){.weer-nl-map{max-height:430px;max-width:360px;justify-self:center}.weer-map{max-width:520px}}

/* Live weather labels share the geographic map; no separate province tiles. */
.weer-map-layout{display:block}.weer-nl-map{display:block;width:100%;max-width:720px;max-height:none;margin:0 auto}.weer-map-label{pointer-events:none}.weer-map-label text{fill:#172839;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-family:Arial,Helvetica,sans-serif}.weer-map-name{font-size:10px;font-weight:700}.weer-map-reading{font-size:15px;font-weight:800}
@media(max-width:650px){.weer-map-section{padding:14px 6px}.weer-nl-map{max-width:100%;max-height:none}}
