.forecast-map{color:var(--ink,#16334c)}
.forecast-map-toolbar,.forecast-map-surface-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}
.forecast-map-toolbar>label:not(.forecast-map-toggle),.forecast-map-surface-tools>label:not(.forecast-map-toggle){display:grid;grid-template-columns:minmax(0,1fr);gap:6px;min-width:130px;font-size:.88rem;font-weight:700}
.forecast-map select{max-width:100%;min-height:42px;min-width:130px}
.forecast-map-toggle{display:flex;align-items:center;gap:8px;min-height:42px;font-size:.88rem}
.forecast-map-status,.forecast-map-grid-status{padding:10px 14px;background:var(--surface,#eef8fc);border-left:4px solid #2689b3;border-radius:8px;font-size:.86rem;line-height:1.5}
.forecast-map-stage{position:relative;height:clamp(540px,77vh,920px);overflow:hidden;background:#d9edf2;border:1px solid var(--line,#bfd9e4);border-radius:18px;touch-action:none;isolation:isolate}
.forecast-map-stage>svg{position:absolute;width:100%;height:100%;inset:0}
.forecast-map-land{fill:#f4f9f9;stroke:none}
.forecast-map-border{fill:transparent;stroke:#548297;stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:pointer}
.forecast-map-border.is-selected{stroke:#127ca7;stroke-width:2.5}
.forecast-map-border:focus,.forecast-map-border:focus-visible{outline:none;stroke:#127ca7;stroke-width:2.5}
.forecast-map-county{fill:transparent;stroke:#82a5b5;stroke-width:.65;vector-effect:non-scaling-stroke;cursor:pointer;outline:none}
.forecast-map-county:hover{fill:#2689b30a;stroke:#347f9c;stroke-width:1.1}
.forecast-map-county:focus,.forecast-map-county:focus-visible,.forecast-map-county.is-selected{outline:none;fill:#2689b30a;stroke:#127ca7;stroke-width:1.8}
.forecast-map-toolbar select[data-fc-county]{width:230px}
.forecast-map-zoom{position:absolute;left:12px;top:12px;display:grid;gap:7px;z-index:4}
.forecast-map-zoom button{display:grid;place-items:center;width:43px;height:43px;min-width:0;padding:0;background:var(--surface,#fff);color:var(--ink,#16334c);border:1px solid var(--line,#c5dce5);border-radius:10px;font-size:1.4rem;box-shadow:0 3px 10px #16334c18}
.forecast-map-caption{position:absolute;right:12px;top:12px;z-index:3;display:grid;gap:4px;max-width:220px;padding:10px 13px;background:var(--surface,#fff);border:1px solid var(--line,#c5dce5);border-radius:10px;box-shadow:0 3px 12px #16334c18;pointer-events:none;font-size:.79rem}
.forecast-map-caption strong{font-size:.93rem}
.forecast-map-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.forecast-map-place{position:absolute;transform:translate(-50%,-50%);width:116px;min-height:76px;padding:5px 7px;border:1px solid #b8ceda;border-radius:12px;background:#ffffffed;color:#14334a;box-shadow:0 3px 10px #16334c25;pointer-events:auto;text-align:center;line-height:1.2;cursor:pointer;box-sizing:border-box}
.forecast-map-place.is-local{border:2px solid #e34a63}
.forecast-map-place.is-stale{border-style:dashed}
.forecast-map-place strong{display:block;font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}
.forecast-map-place .forecast-map-values{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:3px}
.forecast-map-place img{width:34px;height:34px;object-fit:contain;flex:none}
.forecast-map-place b,.forecast-map-place em{font-size:.91rem;font-weight:800;font-style:normal;white-space:nowrap}
.forecast-map-place b{color:#b63827}.forecast-map-place em{color:#1261a3}
.forecast-map-place .forecast-map-hour-value{color:#16334c;font-size:1.05rem}
.forecast-map-place .forecast-map-card-note{display:block;margin-top:2px;font-size:.64rem;color:#52697b;line-height:1.15;white-space:nowrap}
.forecast-map-toolbar select[data-fc-mode]{width:260px}
.forecast-map-place .is-empty{font-size:.75rem;color:#586d7f}
.forecast-map-note,.forecast-map-info{font-size:.82rem;line-height:1.55;margin:12px 0;color:var(--muted,#526f85)}
.forecast-map-info>summary{cursor:pointer;font-weight:750}
.forecast-map-temperature-legend{display:grid;gap:7px;font-size:.79rem;padding:8px 0;max-width:760px}
.forecast-map-temperature-legend strong{font-size:.79rem}
.forecast-map-temperature-bar{height:15px;border-radius:5px}
.forecast-map-temperature-ticks{position:relative;height:20px;font-size:.73rem}
.forecast-map-temperature-ticks span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.forecast-map-temperature-ticks span:first-child{transform:none}.forecast-map-temperature-ticks span:last-child{transform:translateX(-100%)}
.forecast-map-dialog{width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid var(--line,#bfd6e3);border-radius:18px;background:var(--surface,#fff);color:var(--ink,#16334c);box-shadow:0 24px 90px #00152566;overflow:hidden}
.forecast-map-dialog:not([open]){display:none}.forecast-map-dialog[open]{display:flex;flex-direction:column}
.forecast-map-dialog::backdrop{background:#061e33a8;backdrop-filter:blur(3px)}
.forecast-map-dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:center;flex:none;padding:18px 22px;border-bottom:1px solid var(--line,#d5e4eb);background:var(--surface,#fff)}
.forecast-map-dialog-header h3{font-size:1.45rem;margin:3px 0;line-height:1.25}.forecast-map-dialog-header p{font-size:.8rem;color:var(--muted,#60788d);margin:4px 0 0}.forecast-map-dialog-header button{flex:none;white-space:nowrap}
.forecast-map-dialog-body{padding:18px 22px;overflow:auto;overscroll-behavior:contain;min-height:0}
.forecast-map-dialog-summary{font-size:.9rem;line-height:1.55;margin:0 0 16px}
.forecast-map-dialog-summary-box{margin:0 0 14px;font-size:.82rem}.forecast-map-dialog-summary-box>summary{cursor:pointer;font-weight:700;padding:5px 0}.forecast-map-dialog-summary-box .forecast-map-dialog-summary{margin:8px 0 3px}
.forecast-map-timeline-tools{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:12px}.forecast-map-timeline-tools label{display:grid;gap:5px;min-width:0;font-size:.82rem;font-weight:750}.forecast-map-timeline-tools select{min-width:0;max-width:100%}.forecast-map-timeline-tools p{font-size:.8rem;color:var(--muted,#60788d);margin:0 0 7px}
.forecast-map-timeline-status{font-size:.82rem;padding:9px 12px;border-left:3px solid #2991b2;background:#eff8fc;color:#234f64;border-radius:6px;margin:14px 0 7px}
.forecast-map-timeline-hint{font-size:.77rem;color:var(--muted,#60788d);margin:7px 0}
.forecast-map-timeline-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line,#d9e7ef);border-radius:12px;background:#f8fcff;scrollbar-color:#92b9cd #eaf3f8}
.forecast-map-timeline-scroll:focus-visible{outline:2px solid #2689b3;outline-offset:2px}
.forecast-map-timeline-scroll svg{display:block;width:100%;min-width:900px;height:auto;font-family:inherit}
.forecast-map-timeline-scroll .is-grid{stroke:#d4e4ed;stroke-width:1}.forecast-map-timeline-scroll .is-zero{stroke:#91aebd;stroke-width:1.4}
.forecast-map-timeline-scroll .axis-label{font-size:12px;fill:#4a667b}.forecast-map-timeline-scroll .hour-label{font-size:12px;fill:#24495e;font-weight:650}.forecast-map-timeline-scroll .date-label{font-size:10px;fill:#54738a}.forecast-map-timeline-scroll .missing-label{fill:#718795;font-size:13px}
.forecast-map-timeline-scroll .hour-temperature{font-size:13px;font-weight:750;fill:#143f58}.forecast-map-timeline-scroll .night-band{fill:#153b6420}.forecast-map-timeline-scroll .day-divider{stroke:#8eaec0;stroke-dasharray:4 4;stroke-width:1}
.forecast-map-timeline-scroll .temperature-line{fill:none;stroke:#148bad;stroke-width:2.8;stroke-linejoin:round;stroke-linecap:round}.forecast-map-timeline-scroll .temperature-point{fill:#148bad;stroke:#fff;stroke-width:1}
.forecast-map-timeline-scroll .precipitation-bar{fill:#4677c8;stroke:none}.forecast-map-timeline-scroll .precipitation-value{fill:#2d5595;font-size:12px;font-weight:700}.forecast-map-timeline-scroll .precipitation-axis{fill:#466291;font-size:12px}.forecast-map-timeline-scroll .precipitation-heading{fill:#2d5595;font-size:12px;font-weight:700}
.forecast-map-rain-cell{white-space:nowrap;color:#2d5595;font-weight:650}
.forecast-map-timeline-list{font-size:.85rem;margin-top:15px}.forecast-map-timeline-list summary{cursor:pointer;font-weight:750;padding:7px 0}
.forecast-map-timeline-table{overflow-x:auto}.forecast-map-timeline-table table{width:100%;border-collapse:collapse;font-size:.83rem}.forecast-map-timeline-table th,.forecast-map-timeline-table td{padding:8px;text-align:left;border-bottom:1px solid var(--line,#dce8f0);vertical-align:middle}.forecast-map-timeline-table tbody th{font-weight:550}.forecast-map-timeline-table td img{vertical-align:middle;margin-right:7px}.forecast-map-timeline-table time{white-space:nowrap}
.forecast-map:fullscreen.has-forecast-dialog,.forecast-map.is-fullscreen.has-forecast-dialog{overflow:hidden}
.forecast-map [hidden]{display:none!important}
.forecast-map.is-fullscreen,.forecast-map:fullscreen{padding:12px;overflow:auto;box-sizing:border-box;background:var(--background,#e9f3f7);max-height:100dvh}
.forecast-map.is-fullscreen .forecast-map-stage,.forecast-map:fullscreen .forecast-map-stage{height:calc(100dvh - 260px);min-height:340px}
@media(max-width:600px){.forecast-map-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.forecast-map-toolbar>label,.forecast-map-toolbar>button{min-width:0}.forecast-map-toolbar select{min-width:0;width:100%}.forecast-map-toggle{grid-column:1/-1}.forecast-map-stage{height:650px}.forecast-map-caption{max-width:156px;font-size:.72rem}.forecast-map-place{width:104px;min-height:73px}.forecast-map-place strong{font-size:.71rem}.forecast-map-place b,.forecast-map-place em{font-size:.85rem}.forecast-map-surface-tools>label:not(.forecast-map-toggle){min-width:110px}.forecast-map .panel-heading h2{font-size:1.3rem}}

@media(max-width:600px){.forecast-map-toolbar>label:not(.forecast-map-toggle){min-width:0}.forecast-map-toolbar select[data-fc-mode],.forecast-map-toolbar select[data-fc-county]{width:100%;min-width:0}}
@media(max-width:600px){.forecast-map-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:13px}.forecast-map-dialog-header{align-items:start;padding:14px;gap:10px}.forecast-map-dialog-header h3{font-size:1.2rem}.forecast-map-dialog-header button{padding:8px 10px;font-size:.8rem}.forecast-map-dialog-body{padding:14px}.forecast-map-timeline-tools label{width:100%}.forecast-map-timeline-tools select{width:100%}.forecast-map-timeline-table th,.forecast-map-timeline-table td{padding:6px}}

@media(max-width:600px){
 .forecast-map-timeline-table table,.forecast-map-timeline-table tbody{display:block;width:100%}
 .forecast-map-timeline-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .forecast-map-timeline-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) max-content max-content;gap:0 10px;border-bottom:1px solid var(--line,#dce8f0);padding:7px 0}
 .forecast-map-timeline-table tbody th{grid-column:1/-1;padding:3px 0 7px;border:0}
 .forecast-map-timeline-table tbody td{padding:3px 0 5px;border:0;min-width:0;font-size:.8rem}
 .forecast-map-timeline-table tbody td::before{content:attr(data-label);display:block;font-size:.68rem;line-height:1.4;font-weight:550;color:var(--muted,#60788d);margin-bottom:3px}
 .forecast-map-timeline-table td img{display:block;margin:0 0 2px}
}
