.weather-forecast-card::after { content: ''; position: absolute; bottom: 100%; left: 0; right: 0; height: 15px; }
.weather-widget:focus-within .weather-forecast-card, .weather-widget.is-forecast-open .weather-forecast-card { opacity: 1; visibility: visible; transform: translateY(0) rotate(-2deg); }
html.header-touch-input .weather-widget:hover:not(.is-forecast-open):not(:focus-within) .weather-forecast-card { opacity: 0; visibility: hidden; }
.weather-forecast-tabs { position: relative; display: flex; gap: 4px; padding: 9px 9px 7px; border-radius: 14px 14px 0 0; background: var(--orange); }
.weather-forecast-tab { flex: 1 1 0; min-width: 0; padding: 7px 3px; border: 0; border-radius: 8px; background: transparent; color: #fff; font: inherit; font-size: .64rem; font-weight: 850; line-height: 1.15; cursor: pointer; }
.weather-forecast-tab[aria-pressed="true"] { background: #fff8ef; color: #9d4b2f; box-shadow: 0 2px 7px rgba(50,25,15,.13); }
.weather-forecast-tab:focus-visible { outline: 2px solid white; outline-offset: 2px; }
.weather-forecast-list { align-items: stretch; }
.weather-hour { min-width: 0; align-content: start; }
.weather-hour-detail { color: #47665f; font-size: .61rem; font-weight: 750; line-height: 1.25; white-space: nowrap; }
.weather-hour-wind { display: inline-flex; align-items: center; justify-content: center; gap: 2px; }
.weather-hour-date { font-size: .58rem; font-weight: 700; }
.weather-hour-min { color: var(--muted); }
.weather-forecast-key { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 4px; color: #526d69; font-size: .6rem; font-weight: 700; line-height: 1.25; text-align: center; }
.weather-imgw-warnings { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; margin: 0 10px 10px; padding: 7px 9px; border: 1px solid rgba(181, 86, 49, .34); border-radius: 10px; background: #fff3e8; color: #793d28; font-size: .62rem; line-height: 1.22; }
.weather-imgw-warnings[hidden] { display: none; }
.weather-imgw-warnings__topline { display: flex; align-items: center; min-width: 0; gap: 6px; }
.weather-imgw-warnings__heading { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 4px; font-weight: 950; letter-spacing: .02em; white-space: nowrap; }
.weather-imgw-warnings__heading::before { content: ''; width: 0; height: 0; border-right: 5px solid transparent; border-bottom: 9px solid #b54f32; border-left: 5px solid transparent; filter: drop-shadow(0 1px 0 rgba(67, 33, 20, .15)); }
.weather-imgw-warnings__region { display: inline-flex; align-items: center; min-width: 0; width: fit-content; gap: 4px; padding: 2px 5px 2px 3px; border: 1px solid rgba(61, 150, 114, .22); border-radius: 999px; background: rgba(255, 255, 255, .42); color: #476960; font-size: .57rem; font-weight: 850; white-space: nowrap; }
.weather-imgw-warnings__region-ok { display: inline-grid; width: 14px; height: 14px; flex: 0 0 14px; place-items: center; border-radius: 50%; background: #3d9672; color: #fff; font-size: .62rem; font-weight: 950; line-height: 1; box-shadow: 0 1px 2px rgba(30, 94, 71, .28); }
.weather-imgw-warnings__clear { min-width: 0; color: #4f6961; font-weight: 720; }
.weather-imgw-warnings a { justify-self: end; color: inherit; font-size: .56rem; font-weight: 800; text-underline-offset: 2px; white-space: nowrap; }
.weather-imgw-warnings.is-clear { border-color: rgba(61, 124, 98, .29); background: #edf7f1; color: #287055; }
.weather-imgw-warnings.is-clear .weather-imgw-warnings__heading::before { border-bottom-color: #3c9671; }
.weather-imgw-warnings.is-unavailable { border-color: rgba(94, 109, 105, .25); background: #f1f5f3; color: #526d69; }
.weather-imgw-warnings.is-unavailable .weather-imgw-warnings__heading::before { border-bottom-color: #718883; }
.weather-imgw-warnings__list { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.weather-imgw-warning { display: grid; gap: 2px; }
.weather-imgw-warning__title { font-weight: 950; }
.weather-imgw-warning__period { color: #8a5947; font-size: .57rem; font-weight: 750; }
.weather-imgw-warning__text { color: #6f4c40; font-size: .57rem; }
.weather-imgw-warnings.is-level-2 { border-color: rgba(192, 129, 26, .42); background: #fff6dc; color: #785613; }
.weather-imgw-warnings.is-level-2 .weather-imgw-warnings__heading::before { border-bottom-color: #c4811a; }
.weather-imgw-warnings.is-level-2 .weather-imgw-warning__period, .weather-imgw-warnings.is-level-2 .weather-imgw-warning__text { color: #735f32; }
.weather-imgw-warnings.is-level-3 { border-color: rgba(172, 54, 54, .42); background: #fff0f0; color: #8e3030; }
.weather-imgw-warnings.is-level-3 .weather-imgw-warnings__heading::before { border-bottom-color: #b93838; }
.weather-imgw-warnings.is-level-3 .weather-imgw-warning__period, .weather-imgw-warnings.is-level-3 .weather-imgw-warning__text { color: #7b4a4a; }

/* Wspólny, niezależny od emoji zestaw ikon SVG. */
.weather-widget .weather-icon,
.weather-hour-icon { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; box-sizing: border-box; border: 0; border-radius: 50%; background: #fff0c7; box-shadow: 0 2px 5px rgba(54, 91, 82, .11); overflow: hidden; }
.weather-widget .weather-icon { width: 32px; height: 31px; flex-basis: 32px; }
.weather-vector { display: block; width: 78%; height: 78%; overflow: visible; }
.weather-hour-icon .weather-vector { width: 82%; height: 82%; }
.weather-icon .weather-vector { width: 84%; height: 84%; }
.weather-utility-icon { display: inline-block; width: 1em; height: 1em; flex: 0 0 1em; vertical-align: -.14em; }
.weather-hour-raindrops { display: inline-grid; grid-template-columns: repeat(2, .56em); grid-template-rows: repeat(2, .52em); align-items: center; justify-items: center; column-gap: 0; row-gap: 0; line-height: 1; transform: translateY(1px); }
.weather-hour-raindrops .weather-utility-icon { width: .56em; height: .56em; margin: 0; }
.weather-hour-raindrops .weather-utility-icon:first-child { grid-column: 1 / -1; }
.weather-hour-wind .weather-utility-icon { width: 1.05em; height: 1.05em; margin-right: 1px; }
.weather-forecast-key .weather-utility-icon { width: .9em; height: .9em; }

body.is-night .weather-forecast-tabs { background: #3a4b70; }
body.is-night .weather-forecast-tab[aria-pressed="true"] { background: #d9ece7; color: #203e3a; }
.weather-widget.is-night .weather-hour-detail, .weather-widget.is-night .weather-forecast-key, .weather-widget.is-night .weather-hour-min { color: #d4e9e3; }
.weather-widget.is-night .weather-icon, .weather-widget.is-night .weather-hour-icon { background: #465982; box-shadow: 0 2px 6px rgba(9,19,35,.24); }
.weather-widget.is-night .weather-imgw-warnings { border-color: rgba(255, 175, 134, .35); background: #523a48; color: #ffe2cd; }
.weather-widget.is-night .weather-imgw-warnings__region { border-color: rgba(151, 224, 191, .32); background: rgba(23, 59, 49, .38); color: #d9f8e8; }
.weather-widget.is-night .weather-imgw-warning__period, .weather-widget.is-night .weather-imgw-warning__text { color: #f7c4ae; }
.weather-widget.is-night .weather-imgw-warnings__region-ok { background: #63bc91; color: #153b31; }
.weather-widget.is-night .weather-imgw-warnings__clear { color: #bce7d4; }
.weather-widget.is-night .weather-imgw-warnings.is-clear { border-color: rgba(159, 221, 188, .32); background: #2d4d48; color: #d7faea; }
.weather-widget.is-night .weather-imgw-warnings.is-unavailable { border-color: rgba(213, 232, 225, .24); background: #3d506a; color: #e0eeeb; }
body.is-halloween .weather-forecast-tabs { background: #42224a; }
body.is-halloween .weather-forecast-tab[aria-pressed="true"] { background: #ffcc87; color: #38203f; }
body.is-halloween .weather-hour-detail, body.is-halloween .weather-forecast-key, body.is-halloween .weather-hour-min { color: #f5d6b6; }
body.is-halloween .weather-widget .weather-icon, body.is-halloween .weather-hour-icon { background: #4e2850; box-shadow: 0 2px 6px rgba(0,0,0,.25); }
body.is-halloween .weather-imgw-warnings { border-color: rgba(255, 190, 110, .35); background: #4a2948; color: #ffd9a6; }
body.is-halloween .weather-imgw-warnings__region { border-color: rgba(166, 222, 174, .32); background: rgba(41, 70, 55, .44); color: #d7f3d8; }
body.is-halloween .weather-imgw-warning__period, body.is-halloween .weather-imgw-warning__text { color: #f1bb9d; }
body.is-halloween .weather-imgw-warnings__region-ok { background: #8ac99a; color: #2d1c3a; }
body.is-halloween .weather-imgw-warnings__clear { color: #ccebd1; }

@media (max-width: 620px) {
  .weather-forecast-tab { min-height: 34px; }
  .weather-hour { padding-inline: 2px; }
  .weather-hour-icon { width: 30px; height: 30px; margin: 0 auto 1px; }
  .weather-hour-detail { font-size: .58rem; }
}
@media (max-width: 380px) {
  .weather-hour-wind { flex-direction: column; gap: 0; }
}
