/* pinn. – Winter & Christmas look (css/winterzeit.css, since 1.145.0)
   Switched on by js/winterzeit.js with two classes on <html>:
     pinn-winter  1 December – 6 January: snow on the logo, on headings and on the sidebar
     pinn-xmas    1 – 26 December: in addition fairy lights, a Santa hat on the logo, holly at headings and the bell
   Parts switched off in Settings → Appearance → Seasons (since 1.147.0; js/winterzeit.js also stops what it draws):
     pinn-nosnow    no snow on logo, sidebar, letters and tiles
     pinn-noland    no winter landscape on the family dashboard
     pinn-nolights  no fairy lights under the header
     pinn-nodeco    no Santa hat, no holly at the bell, no small tree in the sidebar
   pinn-season-live is set only while a snow shower runs (the lights twinkle only then – saves battery).
   On the family dashboard: snow on the family name, the clock and every tile, a winter landscape at the bottom.
   RULE: every decoration is an absolutely positioned pseudo element or lives in the fixed layer .pinn-season-layer,
   never takes space and never catches taps (pointer-events: none). Nothing here may change sizes, margins or the
   layout – new features therefore never get gaps or shifted parts because of the season look. */

/* ---------- Logo (header, sign-in) ---------- */
.pinn-logo-wrap { position: relative; display: inline-block; line-height: 0; flex-shrink: 0; -webkit-tap-highlight-color: transparent; }
.pinn-logo-wrap > img { display: block; }
html.pinn-winter .pinn-logo-wrap { cursor: pointer; }
html.pinn-winter .pinn-logo-wrap::before {
  content: ""; position: absolute; pointer-events: none; z-index: 1;
  left: -10%; top: -17%; width: 120%; height: 44%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 14'%3E%3Cpath d='M2 9C2 4 6 2 10 3C13 0 18 1 21 3C24 0 30 1 32 4C36 3 39 5 38 9C38 11 36 11.5 35 10.5C34.5 13 31 13.5 30.5 10.5C27 11.5 24 10.5 22 10.5C21 13.5 17 13.5 16.8 10.5C13 11.5 9 11 6.5 10.5C5.5 12.5 2 12.5 2 9Z' fill='%23fff' stroke='%23a9bfd1' stroke-width='.7'/%3E%3Cpath d='M7 5.5C10 4.5 13 4.8 15 5.6M24 4.6C27 4 30 4.4 32 5.4' fill='none' stroke='%23d9e6f0' stroke-width='.9' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
html.pinn-xmas .pinn-logo-wrap::after {
  content: ""; position: absolute; pointer-events: none; z-index: 2;
  left: -30%; top: -50%; width: 78%; height: 70%;
  transform: rotate(-16deg); transform-origin: 70% 90%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 28'%3E%3Cpath d='M5 21C6 12 12 4 21 3C26 2.5 29 5.5 28.5 10C26.5 8 23.5 8 21.5 10C19.5 12.5 20 17 21.5 21Z' fill='%23c8102e'/%3E%3Cpath d='M9 19C11 12 15 7 20 5.5' fill='none' stroke='%23e5384f' stroke-width='1.4' stroke-linecap='round' opacity='.7'/%3E%3Crect x='2' y='19' width='22.5' height='6.5' rx='3.2' fill='%23fff' stroke='%23d5dde4' stroke-width='.6'/%3E%3Ccircle cx='28.3' cy='10.5' r='3.3' fill='%23fff' stroke='%23d5dde4' stroke-width='.6'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* ---------- Snow lying on text and on dashboard tiles ----------
   js/winterzeit.js measures every letter, draws the snow only on its upward-facing parts (flat tops get a layer, round
   tops a blob in the middle, steep sides nothing) and hands the result over as an image in --pinn-snow. Dashboard tiles
   get a snow cap of their own, every tile a little different. */
html.pinn-winter .pinn-snowy { position: relative; }
html.pinn-winter .pinn-snowy::before {
  content: ""; position: absolute; pointer-events: none; z-index: 1;
  left: 0; top: calc(-1 * var(--pinn-snow-pad, 0px)); width: var(--pinn-snow-w, 0px); height: var(--pinn-snow-h, 0px);
  background: var(--pinn-snow, none) left top / 100% 100% no-repeat;
}

/* Parts switched off in the settings (Appearance → Seasons) */
html.pinn-nosnow .pinn-logo-wrap::before,
html.pinn-nosnow #sidebar .sidebar-foot:not(#sidebarVersionBtn)::before,
html.pinn-nosnow .pinn-snowy::before,
html.pinn-noland #dashboardScreen::after,
html.pinn-nolights #appShell > header::after,
html.pinn-nolights #appShell > header::before,
html.pinn-nodeco .pinn-logo-wrap::after,
html.pinn-nodeco .nt-bell::before,
html.pinn-nodeco #sidebar .sidebar-foot:not(#sidebarVersionBtn)::after { display: none !important; }

/* ---------- Bell: a sprig of holly ---------- */
html.pinn-xmas .nt-bell::before {
  content: ""; position: absolute; pointer-events: none; left: 1px; top: 0; width: 13px; height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M12 11C9 7 4 6 1 8C3 9 3 11 2 13C5 12 6 14 7 15C9 13 11 13 12 11Z' fill='%232f7a43'/%3E%3Cpath d='M12 11C15 7 20 6 23 8C21 9 21 11 22 13C19 12 18 14 17 15C15 13 13 13 12 11Z' fill='%23276b39'/%3E%3Ccircle cx='10' cy='7' r='2.6' fill='%23d1263b'/%3E%3Ccircle cx='14.2' cy='6.4' r='2.6' fill='%23e23447'/%3E%3Ccircle cx='12.2' cy='3.4' r='2.4' fill='%23c41d33'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* ---------- Fairy lights along the bottom of the header (inside its padding, nothing is covered) ---------- */
html.pinn-xmas #appShell > header { position: relative; }
html.pinn-xmas #appShell > header::after,
html.pinn-xmas #appShell > header::before {
  content: ""; position: absolute; pointer-events: none; left: 0; right: 0; bottom: 0; height: 11px;
  background-repeat: repeat-x; background-size: 64px 11px; background-position: 6px 0;
}
html.pinn-xmas #appShell > header::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 11'%3E%3Cpath d='M0 2Q16 6 32 2T64 2' fill='none' stroke='%23565048' stroke-width='.8'/%3E%3Cg stroke='%23565048' stroke-width='.6'%3E%3Crect x='7' y='3' width='2' height='2' fill='%23565048'/%3E%3Crect x='23' y='3.6' width='2' height='2' fill='%23565048'/%3E%3Crect x='39' y='3' width='2' height='2' fill='%23565048'/%3E%3Crect x='55' y='3.6' width='2' height='2' fill='%23565048'/%3E%3C/g%3E%3Cellipse cx='8' cy='7.6' rx='2.2' ry='3' fill='%23e23b3b'/%3E%3Cellipse cx='24' cy='8.2' rx='2.2' ry='2.8' fill='%23f2b632'/%3E%3Cellipse cx='40' cy='7.6' rx='2.2' ry='3' fill='%233aa35b'/%3E%3Cellipse cx='56' cy='8.2' rx='2.2' ry='2.8' fill='%233b8fe2'/%3E%3Ccircle cx='7.3' cy='6.6' r='.7' fill='%23fff' opacity='.6'/%3E%3Ccircle cx='23.3' cy='7.3' r='.7' fill='%23fff' opacity='.6'/%3E%3Ccircle cx='39.3' cy='6.6' r='.7' fill='%23fff' opacity='.6'/%3E%3Ccircle cx='55.3' cy='7.3' r='.7' fill='%23fff' opacity='.6'/%3E%3C/svg%3E");
}
/* Glow of every second bulb – only visible (and only animated) while snow is falling */
html.pinn-xmas #appShell > header::before {
  opacity: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 11'%3E%3Ccircle cx='8' cy='7.6' r='3.6' fill='%23ff6b6b' opacity='.55'/%3E%3Ccircle cx='40' cy='7.6' r='3.6' fill='%236fe08f' opacity='.55'/%3E%3C/svg%3E");
}
html.pinn-xmas.pinn-season-live #appShell > header::before { animation: pinnLightsTwinkle 1.6s steps(2, jump-none) infinite; }
@keyframes pinnLightsTwinkle { from { opacity: 0; } to { opacity: 1; } }
html.dark.pinn-xmas #appShell > header::after { filter: brightness(1.15); }

/* ---------- Sidebar: snowy ground above the footer, a small tree at Christmas ---------- */
html.pinn-winter #sidebar .sidebar-foot:not(#sidebarVersionBtn) { position: relative; }
html.pinn-winter #sidebar .sidebar-foot:not(#sidebarVersionBtn)::before {
  content: ""; position: absolute; pointer-events: none; left: 0; right: 0; top: -8px; height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M0 10V6C10 3 18 5 26 4C36 2 44 5 54 5C64 5 70 2 80 3C90 4 98 6 108 4C113 3 117 4 120 5V10Z' fill='%23ffffff' opacity='.92'/%3E%3C/svg%3E") left top / 100% 100% no-repeat;
}
html.pinn-xmas #sidebar .sidebar-foot:not(#sidebarVersionBtn)::after {
  content: ""; position: absolute; pointer-events: none; right: 22px; top: -31px; width: 22px; height: 27px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 27'%3E%3Cpath d='M11 3L4 12H7.5L2.5 18H6.5L1 25H21L15.5 18H19.5L14.5 12H18Z' fill='%23e8f1ea'/%3E%3Cpath d='M11 3L4 12H7.5L2.5 18H6.5L1 25H11Z' fill='%23d3e3d7'/%3E%3Cpath d='M11 0.3L11.9 2.3L14 2.5L12.4 3.8L12.9 5.9L11 4.8L9.1 5.9L9.6 3.8L8 2.5L10.1 2.3Z' fill='%23f2c94c'/%3E%3Ccircle cx='9' cy='11' r='1.1' fill='%23e23b3b'/%3E%3Ccircle cx='13.5' cy='15.5' r='1.1' fill='%23f2b632'/%3E%3Ccircle cx='7.5' cy='19.5' r='1.1' fill='%233b8fe2'/%3E%3Ccircle cx='15' cy='21.5' r='1.1' fill='%23e23b3b'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* ---------- Dashboard: small winter landscape at the bottom (behind the tiles, nothing can be covered) ---------- */
html.pinn-winter #dashboardScreen::after {
  content: ""; position: fixed; left: 0; right: 0; bottom: 0; z-index: 0; pointer-events: none;
  height: clamp(90px, 18vh, 170px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 140' preserveAspectRatio='xMidYMax slice'%3E%3Cpath d='M0 140V80C180 56 360 72 540 64C740 54 900 82 1100 68C1290 54 1450 72 1600 62V140Z' fill='%23dbe6f0'/%3E%3Crect x='118.6' y='73.9' width='2.7' height='4.8' fill='%235b3d2a'/%3E%3Cpath d='M110.7 74.6L120.0 56.8L129.3 74.6Z' fill='%236f8f80'/%3E%3Cpath d='M115.9 64.6L120.0 56.8L124.1 64.6Q121.9 65.7 120.0 64.2Q118.1 65.7 115.9 64.6Z' fill='%23f4f8fb'/%3E%3Cpath d='M110.7 74.6Q115.3 72.5 120.0 73.9Q124.7 72.5 129.3 74.6Q120.0 76.0 110.7 74.6Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M112.7 65.9L120.0 51.5L127.3 65.9Z' fill='%236f8f80'/%3E%3Cpath d='M116.8 57.8L120.0 51.5L123.2 57.8Q121.5 58.7 120.0 57.5Q118.5 58.7 116.8 57.8Z' fill='%23f4f8fb'/%3E%3Cpath d='M112.7 65.9Q116.4 64.2 120.0 65.4Q123.6 64.2 127.3 65.9Q120.0 67.1 112.7 65.9Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M114.9 58.7L120.0 46.8L125.1 58.7Z' fill='%236f8f80'/%3E%3Cpath d='M117.7 52.0L120.0 46.8L122.3 52.0Q121.0 52.8 120.0 51.8Q119.0 52.8 117.7 52.0Z' fill='%23f4f8fb'/%3E%3Cpath d='M114.9 58.7Q117.4 57.3 120.0 58.2Q122.6 57.3 125.1 58.7Q120.0 59.7 114.9 58.7Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='149.0' y='72.9' width='2.1' height='3.6' fill='%235b3d2a'/%3E%3Cpath d='M142.8 73.4L150.0 59.8L157.2 73.4Z' fill='%236f8f80'/%3E%3Cpath d='M146.9 65.8L150.0 59.8L153.1 65.8Q151.4 66.6 150.0 65.5Q148.6 66.6 146.9 65.8Z' fill='%23f4f8fb'/%3E%3Cpath d='M142.8 73.4Q146.4 71.8 150.0 72.9Q153.6 71.8 157.2 73.4Q150.0 74.5 142.8 73.4Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M144.4 66.8L150.0 55.7L155.6 66.8Z' fill='%236f8f80'/%3E%3Cpath d='M147.5 60.6L150.0 55.7L152.5 60.6Q151.1 61.2 150.0 60.4Q148.9 61.2 147.5 60.6Z' fill='%23f4f8fb'/%3E%3Cpath d='M144.4 66.8Q147.2 65.4 150.0 66.3Q152.8 65.4 155.6 66.8Q150.0 67.7 144.4 66.8Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M146.1 61.2L150.0 52.1L153.9 61.2Z' fill='%236f8f80'/%3E%3Cpath d='M148.3 56.1L150.0 52.1L151.7 56.1Q150.8 56.7 150.0 56.0Q149.2 56.7 148.3 56.1Z' fill='%23f4f8fb'/%3E%3Cpath d='M146.1 61.2Q148.0 60.2 150.0 60.9Q152.0 60.2 153.9 61.2Q150.0 62.0 146.1 61.2Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='468.8' y='66.4' width='2.4' height='4.2' fill='%235b3d2a'/%3E%3Cpath d='M461.8 67.0L470.0 51.2L478.2 67.0Z' fill='%236f8f80'/%3E%3Cpath d='M466.4 58.2L470.0 51.2L473.6 58.2Q471.6 59.1 470.0 57.9Q468.4 59.1 466.4 58.2Z' fill='%23f4f8fb'/%3E%3Cpath d='M461.8 67.0Q465.9 65.1 470.0 66.4Q474.1 65.1 478.2 67.0Q470.0 68.3 461.8 67.0Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M463.6 59.4L470.0 46.6L476.4 59.4Z' fill='%236f8f80'/%3E%3Cpath d='M467.2 52.2L470.0 46.6L472.8 52.2Q471.3 53.0 470.0 52.0Q468.7 53.0 467.2 52.2Z' fill='%23f4f8fb'/%3E%3Cpath d='M463.6 59.4Q466.8 57.8 470.0 58.8Q473.2 57.8 476.4 59.4Q470.0 60.4 463.6 59.4Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M465.5 53.0L470.0 42.5L474.5 53.0Z' fill='%236f8f80'/%3E%3Cpath d='M468.0 47.1L470.0 42.5L472.0 47.1Q470.9 47.7 470.0 46.9Q469.1 47.7 468.0 47.1Z' fill='%23f4f8fb'/%3E%3Cpath d='M465.5 53.0Q467.7 51.7 470.0 52.6Q472.3 51.7 474.5 53.0Q470.0 53.8 465.5 53.0Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='503.4' y='64.2' width='3.2' height='5.6' fill='%235b3d2a'/%3E%3Cpath d='M494.0 65.0L505.0 44.0L516.0 65.0Z' fill='%236f8f80'/%3E%3Cpath d='M500.2 53.2L505.0 44.0L509.8 53.2Q507.2 54.5 505.0 52.8Q502.8 54.5 500.2 53.2Z' fill='%23f4f8fb'/%3E%3Cpath d='M494.0 65.0Q499.5 62.5 505.0 64.2Q510.5 62.5 516.0 65.0Q505.0 66.7 494.0 65.0Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M496.4 54.8L505.0 37.8L513.6 54.8Z' fill='%236f8f80'/%3E%3Cpath d='M501.2 45.3L505.0 37.8L508.8 45.3Q506.7 46.3 505.0 44.9Q503.3 46.3 501.2 45.3Z' fill='%23f4f8fb'/%3E%3Cpath d='M496.4 54.8Q500.7 52.8 505.0 54.1Q509.3 52.8 513.6 54.8Q505.0 56.2 496.4 54.8Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M498.9 46.3L505.0 32.3L511.1 46.3Z' fill='%236f8f80'/%3E%3Cpath d='M502.3 38.5L505.0 32.3L507.7 38.5Q506.2 39.3 505.0 38.2Q503.8 39.3 502.3 38.5Z' fill='%23f4f8fb'/%3E%3Cpath d='M498.9 46.3Q502.0 44.6 505.0 45.7Q508.0 44.6 511.1 46.3Q505.0 47.4 498.9 46.3Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='758.9' y='60.6' width='2.2' height='3.9' fill='%235b3d2a'/%3E%3Cpath d='M752.3 61.2L760.0 46.5L767.7 61.2Z' fill='%236f8f80'/%3E%3Cpath d='M756.6 53.0L760.0 46.5L763.4 53.0Q761.5 53.9 760.0 52.7Q758.5 53.9 756.6 53.0Z' fill='%23f4f8fb'/%3E%3Cpath d='M752.3 61.2Q756.1 59.4 760.0 60.6Q763.9 59.4 767.7 61.2Q760.0 62.4 752.3 61.2Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M754.0 54.1L760.0 42.2L766.0 54.1Z' fill='%236f8f80'/%3E%3Cpath d='M757.4 47.4L760.0 42.2L762.6 47.4Q761.2 48.1 760.0 47.2Q758.8 48.1 757.4 47.4Z' fill='%23f4f8fb'/%3E%3Cpath d='M754.0 54.1Q757.0 52.6 760.0 53.6Q763.0 52.6 766.0 54.1Q760.0 55.0 754.0 54.1Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M755.8 48.1L760.0 38.3L764.2 48.1Z' fill='%236f8f80'/%3E%3Cpath d='M758.1 42.6L760.0 38.3L761.9 42.6Q760.8 43.2 760.0 42.4Q759.2 43.2 758.1 42.6Z' fill='%23f4f8fb'/%3E%3Cpath d='M755.8 48.1Q757.9 46.9 760.0 47.7Q762.1 46.9 764.2 48.1Q760.0 48.9 755.8 48.1Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='1388.6' y='61.7' width='2.9' height='5.0' fill='%235b3d2a'/%3E%3Cpath d='M1380.1 62.4L1390.0 43.5L1399.9 62.4Z' fill='%236f8f80'/%3E%3Cpath d='M1385.6 51.8L1390.0 43.5L1394.4 51.8Q1392.0 53.0 1390.0 51.4Q1388.0 53.0 1385.6 51.8Z' fill='%23f4f8fb'/%3E%3Cpath d='M1380.1 62.4Q1385.0 60.1 1390.0 61.6Q1395.0 60.1 1399.9 62.4Q1390.0 63.9 1380.1 62.4Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M1382.3 53.2L1390.0 37.9L1397.7 53.2Z' fill='%236f8f80'/%3E%3Cpath d='M1386.6 44.7L1390.0 37.9L1393.4 44.7Q1391.5 45.6 1390.0 44.3Q1388.5 45.6 1386.6 44.7Z' fill='%23f4f8fb'/%3E%3Cpath d='M1382.3 53.2Q1386.1 51.4 1390.0 52.6Q1393.9 51.4 1397.7 53.2Q1390.0 54.4 1382.3 53.2Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M1384.6 45.6L1390.0 33.0L1395.4 45.6Z' fill='%236f8f80'/%3E%3Cpath d='M1387.6 38.5L1390.0 33.0L1392.4 38.5Q1391.1 39.3 1390.0 38.3Q1388.9 39.3 1387.6 38.5Z' fill='%23f4f8fb'/%3E%3Cpath d='M1384.6 45.6Q1387.3 44.1 1390.0 45.1Q1392.7 44.1 1395.4 45.6Q1390.0 46.6 1384.6 45.6Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='1424.0' y='64.9' width='2.1' height='3.6' fill='%235b3d2a'/%3E%3Cpath d='M1417.8 65.4L1425.0 51.8L1432.2 65.4Z' fill='%236f8f80'/%3E%3Cpath d='M1421.9 57.8L1425.0 51.8L1428.1 57.8Q1426.4 58.6 1425.0 57.5Q1423.6 58.6 1421.9 57.8Z' fill='%23f4f8fb'/%3E%3Cpath d='M1417.8 65.4Q1421.4 63.8 1425.0 64.9Q1428.6 63.8 1432.2 65.4Q1425.0 66.5 1417.8 65.4Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M1419.4 58.8L1425.0 47.7L1430.6 58.8Z' fill='%236f8f80'/%3E%3Cpath d='M1422.5 52.6L1425.0 47.7L1427.5 52.6Q1426.1 53.2 1425.0 52.4Q1423.9 53.2 1422.5 52.6Z' fill='%23f4f8fb'/%3E%3Cpath d='M1419.4 58.8Q1422.2 57.4 1425.0 58.3Q1427.8 57.4 1430.6 58.8Q1425.0 59.7 1419.4 58.8Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M1421.1 53.2L1425.0 44.1L1428.9 53.2Z' fill='%236f8f80'/%3E%3Cpath d='M1423.3 48.1L1425.0 44.1L1426.7 48.1Q1425.8 48.7 1425.0 48.0Q1424.2 48.7 1423.3 48.1Z' fill='%23f4f8fb'/%3E%3Cpath d='M1421.1 53.2Q1423.0 52.2 1425.0 52.9Q1427.0 52.2 1428.9 53.2Q1425.0 54.0 1421.1 53.2Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='1528.8' y='64.4' width='2.4' height='4.2' fill='%235b3d2a'/%3E%3Cpath d='M1521.8 65.0L1530.0 49.2L1538.2 65.0Z' fill='%236f8f80'/%3E%3Cpath d='M1526.4 56.2L1530.0 49.2L1533.6 56.2Q1531.7 57.1 1530.0 55.9Q1528.3 57.1 1526.4 56.2Z' fill='%23f4f8fb'/%3E%3Cpath d='M1521.8 65.0Q1525.9 63.1 1530.0 64.4Q1534.1 63.1 1538.2 65.0Q1530.0 66.3 1521.8 65.0Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M1523.6 57.4L1530.0 44.6L1536.4 57.4Z' fill='%236f8f80'/%3E%3Cpath d='M1527.2 50.2L1530.0 44.6L1532.8 50.2Q1531.3 51.0 1530.0 50.0Q1528.7 51.0 1527.2 50.2Z' fill='%23f4f8fb'/%3E%3Cpath d='M1523.6 57.4Q1526.8 55.8 1530.0 56.8Q1533.2 55.8 1536.4 57.4Q1530.0 58.4 1523.6 57.4Z' fill='%23f4f8fb' opacity='.9'/%3E%3Cpath d='M1525.5 51.0L1530.0 40.5L1534.5 51.0Z' fill='%236f8f80'/%3E%3Cpath d='M1528.0 45.1L1530.0 40.5L1532.0 45.1Q1530.9 45.7 1530.0 44.9Q1529.1 45.7 1528.0 45.1Z' fill='%23f4f8fb'/%3E%3Cpath d='M1525.5 51.0Q1527.7 49.7 1530.0 50.6Q1532.3 49.7 1534.5 51.0Q1530.0 51.8 1525.5 51.0Z' fill='%23f4f8fb' opacity='.9'/%3E%3Crect x='1158' y='40' width='44' height='26' fill='%239a6446'/%3E%3Crect x='1188' y='18' width='7' height='14' fill='%237c4f37'/%3E%3Crect x='1186.5' y='15' width='10' height='4' rx='2' fill='%23fff'/%3E%3Cpath d='M1151 42L1180 20L1209 42Z' fill='%236e4330'/%3E%3Cpath d='M1149 43Q1150 39 1154 38L1180 18L1206 38Q1210 39 1211 43Q1180 35 1149 43Z' fill='%23fff'/%3E%3Crect x='1165' y='47' width='10' height='9' rx='1' fill='%23ffd27a'/%3E%3Crect x='1185' y='47' width='10' height='9' rx='1' fill='%23ffd27a'/%3E%3Crect x='1177' y='52' width='7' height='14' fill='%235a3a29'/%3E%3Cpath d='M0 140V102C220 86 420 106 640 98C860 90 1020 110 1240 100C1400 94 1500 102 1600 98V140Z' fill='%23eef3f8'/%3E%3Cpath d='M0 102C220 86 420 106 640 98C860 90 1020 110 1240 100C1400 94 1500 102 1600 98' fill='none' stroke='%23cfdce7' stroke-width='1.5'/%3E%3Crect x='57.7' y='97.0' width='4.6' height='8.1' fill='%235b3d2a'/%3E%3Cpath d='M44.0 98.2L60.0 67.8L76.0 98.2Z' fill='%232f5d48'/%3E%3Cpath d='M53.0 81.1L60.0 67.8L67.0 81.1Q63.2 83.0 60.0 80.5Q56.8 83.0 53.0 81.1Z' fill='%23ffffff'/%3E%3Cpath d='M44.0 98.2Q52.0 94.5 60.0 97.0Q68.0 94.5 76.0 98.2Q60.0 100.6 44.0 98.2Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M47.6 83.4L60.0 58.8L72.4 83.4Z' fill='%232f5d48'/%3E%3Cpath d='M54.5 69.6L60.0 58.8L65.5 69.6Q62.5 71.1 60.0 69.1Q57.5 71.1 54.5 69.6Z' fill='%23ffffff'/%3E%3Cpath d='M47.6 83.4Q53.8 80.5 60.0 82.4Q66.2 80.5 72.4 83.4Q60.0 85.4 47.6 83.4Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M51.2 71.1L60.0 50.8L68.8 71.1Z' fill='%232f5d48'/%3E%3Cpath d='M56.1 59.7L60.0 50.8L63.9 59.7Q61.8 60.9 60.0 59.3Q58.2 60.9 56.1 59.7Z' fill='%23ffffff'/%3E%3Cpath d='M51.2 71.1Q55.6 68.6 60.0 70.3Q64.4 68.6 68.8 71.1Q60.0 72.7 51.2 71.1Z' fill='%23ffffff' opacity='.9'/%3E%3Crect x='248.2' y='90.7' width='3.5' height='6.2' fill='%235b3d2a'/%3E%3Cpath d='M237.9 91.6L250.0 68.5L262.1 91.6Z' fill='%232f5d48'/%3E%3Cpath d='M244.7 78.7L250.0 68.5L255.3 78.7Q252.4 80.0 250.0 78.2Q247.6 80.0 244.7 78.7Z' fill='%23ffffff'/%3E%3Cpath d='M237.9 91.6Q243.9 88.8 250.0 90.7Q256.1 88.8 262.1 91.6Q250.0 93.4 237.9 91.6Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M240.6 80.4L250.0 61.7L259.4 80.4Z' fill='%232f5d48'/%3E%3Cpath d='M245.8 69.9L250.0 61.7L254.2 69.9Q251.9 71.0 250.0 69.5Q248.1 71.0 245.8 69.9Z' fill='%23ffffff'/%3E%3Cpath d='M240.6 80.4Q245.3 78.1 250.0 79.6Q254.7 78.1 259.4 80.4Q250.0 81.9 240.6 80.4Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M243.3 71.0L250.0 55.6L256.7 71.0Z' fill='%232f5d48'/%3E%3Cpath d='M247.1 62.4L250.0 55.6L252.9 62.4Q251.3 63.3 250.0 62.1Q248.7 63.3 247.1 62.4Z' fill='%23ffffff'/%3E%3Cpath d='M243.3 71.0Q246.7 69.2 250.0 70.4Q253.3 69.2 256.7 71.0Q250.0 72.3 243.3 71.0Z' fill='%23ffffff' opacity='.9'/%3E%3Crect x='282.4' y='90.3' width='5.1' height='9.0' fill='%235b3d2a'/%3E%3Cpath d='M267.4 91.6L285.0 58.0L302.6 91.6Z' fill='%232f5d48'/%3E%3Cpath d='M277.3 72.8L285.0 58.0L292.7 72.8Q288.5 74.8 285.0 72.1Q281.5 74.8 277.3 72.8Z' fill='%23ffffff'/%3E%3Cpath d='M267.4 91.6Q276.2 87.6 285.0 90.3Q293.8 87.6 302.6 91.6Q285.0 94.3 267.4 91.6Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M271.3 75.3L285.0 48.1L298.7 75.3Z' fill='%232f5d48'/%3E%3Cpath d='M279.0 60.0L285.0 48.1L291.0 60.0Q287.7 61.7 285.0 59.5Q282.3 61.7 279.0 60.0Z' fill='%23ffffff'/%3E%3Cpath d='M271.3 75.3Q278.1 72.0 285.0 74.2Q291.9 72.0 298.7 75.3Q285.0 77.5 271.3 75.3Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M275.3 61.7L285.0 39.3L294.7 61.7Z' fill='%232f5d48'/%3E%3Cpath d='M280.7 49.1L285.0 39.3L289.3 49.1Q286.9 50.5 285.0 48.7Q283.1 50.5 280.7 49.1Z' fill='%23ffffff'/%3E%3Cpath d='M275.3 61.7Q280.2 59.0 285.0 60.8Q289.8 59.0 294.7 61.7Q285.0 63.5 275.3 61.7Z' fill='%23ffffff' opacity='.9'/%3E%3Crect x='897.9' y='91.8' width='4.2' height='7.3' fill='%235b3d2a'/%3E%3Cpath d='M885.7 92.8L900.0 65.5L914.3 92.8Z' fill='%232f5d48'/%3E%3Cpath d='M893.7 77.5L900.0 65.5L906.3 77.5Q902.9 79.1 900.0 77.0Q897.1 79.1 893.7 77.5Z' fill='%23ffffff'/%3E%3Cpath d='M885.7 92.8Q892.9 89.5 900.0 91.7Q907.1 89.5 914.3 92.8Q900.0 95.0 885.7 92.8Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M888.8 79.5L900.0 57.4L911.2 79.5Z' fill='%232f5d48'/%3E%3Cpath d='M895.1 67.2L900.0 57.4L904.9 67.2Q902.2 68.5 900.0 66.7Q897.8 68.5 895.1 67.2Z' fill='%23ffffff'/%3E%3Cpath d='M888.8 79.5Q894.4 76.9 900.0 78.7Q905.6 76.9 911.2 79.5Q900.0 81.3 888.8 79.5Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M892.1 68.5L900.0 50.3L907.9 68.5Z' fill='%232f5d48'/%3E%3Cpath d='M896.5 58.3L900.0 50.3L903.5 58.3Q901.6 59.4 900.0 57.9Q898.4 59.4 896.5 58.3Z' fill='%23ffffff'/%3E%3Cpath d='M892.1 68.5Q896.1 66.3 900.0 67.8Q903.9 66.3 907.9 68.5Q900.0 69.9 892.1 68.5Z' fill='%23ffffff' opacity='.9'/%3E%3Crect x='938.5' y='94.4' width='3.0' height='5.3' fill='%235b3d2a'/%3E%3Cpath d='M929.5 95.2L940.0 75.2L950.5 95.2Z' fill='%232f5d48'/%3E%3Cpath d='M935.4 84.0L940.0 75.2L944.6 84.0Q942.1 85.2 940.0 83.6Q937.9 85.2 935.4 84.0Z' fill='%23ffffff'/%3E%3Cpath d='M929.5 95.2Q934.8 92.8 940.0 94.4Q945.2 92.8 950.5 95.2Q940.0 96.8 929.5 95.2Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M931.8 85.5L940.0 69.4L948.2 85.5Z' fill='%232f5d48'/%3E%3Cpath d='M936.4 76.5L940.0 69.4L943.6 76.5Q941.6 77.4 940.0 76.1Q938.4 77.4 936.4 76.5Z' fill='%23ffffff'/%3E%3Cpath d='M931.8 85.5Q935.9 83.6 940.0 84.9Q944.1 83.6 948.2 85.5Q940.0 86.8 931.8 85.5Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M934.3 77.4L940.0 64.1L945.7 77.4Z' fill='%232f5d48'/%3E%3Cpath d='M937.5 70.0L940.0 64.1L942.5 70.0Q941.1 70.8 940.0 69.7Q938.9 70.8 937.5 70.0Z' fill='%23ffffff'/%3E%3Cpath d='M934.3 77.4Q937.1 75.8 940.0 76.9Q942.9 75.8 945.7 77.4Q940.0 78.5 934.3 77.4Z' fill='%23ffffff' opacity='.9'/%3E%3Crect x='1287.8' y='91.3' width='4.5' height='7.8' fill='%235b3d2a'/%3E%3Cpath d='M1274.6 92.4L1290.0 63.0L1305.4 92.4Z' fill='%232f5d48'/%3E%3Cpath d='M1283.2 75.9L1290.0 63.0L1296.8 75.9Q1293.1 77.7 1290.0 75.3Q1286.9 77.7 1283.2 75.9Z' fill='%23ffffff'/%3E%3Cpath d='M1274.6 92.4Q1282.3 88.9 1290.0 91.2Q1297.7 88.9 1305.4 92.4Q1290.0 94.8 1274.6 92.4Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M1278.0 78.1L1290.0 54.3L1302.0 78.1Z' fill='%232f5d48'/%3E%3Cpath d='M1284.7 64.8L1290.0 54.3L1295.3 64.8Q1292.4 66.2 1290.0 64.3Q1287.6 66.2 1284.7 64.8Z' fill='%23ffffff'/%3E%3Cpath d='M1278.0 78.1Q1284.0 75.3 1290.0 77.2Q1296.0 75.3 1302.0 78.1Q1290.0 80.0 1278.0 78.1Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M1281.5 66.2L1290.0 46.6L1298.5 66.2Z' fill='%232f5d48'/%3E%3Cpath d='M1286.3 55.2L1290.0 46.6L1293.7 55.2Q1291.7 56.4 1290.0 54.9Q1288.3 56.4 1286.3 55.2Z' fill='%23ffffff'/%3E%3Cpath d='M1281.5 66.2Q1285.8 63.9 1290.0 65.4Q1294.2 63.9 1298.5 66.2Q1290.0 67.8 1281.5 66.2Z' fill='%23ffffff' opacity='.9'/%3E%3Crect x='1328.3' y='94.0' width='3.4' height='5.9' fill='%235b3d2a'/%3E%3Cpath d='M1318.5 94.8L1330.0 72.8L1341.5 94.8Z' fill='%232f5d48'/%3E%3Cpath d='M1324.9 82.5L1330.0 72.8L1335.1 82.5Q1332.3 83.8 1330.0 82.0Q1327.7 83.8 1324.9 82.5Z' fill='%23ffffff'/%3E%3Cpath d='M1318.5 94.8Q1324.2 92.2 1330.0 93.9Q1335.8 92.2 1341.5 94.8Q1330.0 96.6 1318.5 94.8Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M1321.0 84.1L1330.0 66.2L1339.0 84.1Z' fill='%232f5d48'/%3E%3Cpath d='M1326.0 74.1L1330.0 66.2L1334.0 74.1Q1331.8 75.2 1330.0 73.7Q1328.2 75.2 1326.0 74.1Z' fill='%23ffffff'/%3E%3Cpath d='M1321.0 84.1Q1325.5 81.9 1330.0 83.4Q1334.5 81.9 1339.0 84.1Q1330.0 85.5 1321.0 84.1Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M1323.6 75.2L1330.0 60.5L1336.4 75.2Z' fill='%232f5d48'/%3E%3Cpath d='M1327.2 66.9L1330.0 60.5L1332.8 66.9Q1331.3 67.8 1330.0 66.6Q1328.7 67.8 1327.2 66.9Z' fill='%23ffffff'/%3E%3Cpath d='M1323.6 75.2Q1326.8 73.4 1330.0 74.6Q1333.2 73.4 1336.4 75.2Q1330.0 76.3 1323.6 75.2Z' fill='%23ffffff' opacity='.9'/%3E%3Cellipse cx='640' cy='88' rx='15' ry='13' fill='%23fff' stroke='%23c9d6e0' stroke-width='1.2'/%3E%3Ccircle cx='640' cy='69' r='10' fill='%23fff' stroke='%23c9d6e0' stroke-width='1.2'/%3E%3Ccircle cx='640' cy='54' r='7.5' fill='%23fff' stroke='%23c9d6e0' stroke-width='1.2'/%3E%3Cpath d='M634 62Q640 65 646 62L647 65Q640 68 633 65Z' fill='%23c8102e'/%3E%3Cpath d='M643 64L646 73L649 72L646 64Z' fill='%23c8102e'/%3E%3Ccircle cx='637.4' cy='52' r='1.1' fill='%23333'/%3E%3Ccircle cx='642.6' cy='52' r='1.1' fill='%23333'/%3E%3Cpath d='M640 54.5L648 55.5L640 56.2Z' fill='%23f08a24'/%3E%3Crect x='633' y='43' width='14' height='3' rx='1' fill='%23333'/%3E%3Crect x='635' y='34' width='10' height='10' rx='1' fill='%23333'/%3E%3Cpath d='M630 68L616 60M620 62L618 56M650 68L663 62M659 64L662 58' stroke='%236b4a33' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='640' cy='73' r='1.2' fill='%23333'/%3E%3Ccircle cx='640' cy='80' r='1.2' fill='%23333'/%3E%3C/svg%3E") center bottom / cover no-repeat;
}

html.dark.pinn-winter #dashboardScreen::after { filter: brightness(.78); }
/* The sign-in link at the bottom stays readable on the snowy hills (colour unchanged, only a halo) */
html.dark.pinn-winter #dashboardScreen .dash-footer button { text-shadow: 0 0 4px rgba(0, 0, 0, .9), 0 0 10px rgba(0, 0, 0, .6); }

/* ---------- Layer for snow and Santa (fixed, above the app, below pop-ups) ---------- */
.pinn-season-layer { position: fixed; inset: 0; z-index: 150; pointer-events: none; overflow: hidden; contain: strict; }
.pinn-season-flake {
  position: absolute; top: -12px; left: var(--x); width: var(--s); height: var(--s); border-radius: 50%;
  background: #fff; box-shadow: 0 0 2px rgba(70, 105, 135, 0.45); opacity: var(--o);
  will-change: transform;
  animation: pinnSnowFall var(--d) linear var(--w) var(--n) both;
}
html.dark .pinn-season-flake { box-shadow: 0 0 3px rgba(255, 255, 255, 0.35); }
@keyframes pinnSnowFall {
  0%   { transform: translate3d(0, -2vh, 0); }
  50%  { transform: translate3d(var(--dx), 52vh, 0); }
  100% { transform: translate3d(calc(var(--dx) * -0.4), 106vh, 0); }
}

.pinn-santa { position: absolute; left: 0; top: var(--y); width: 210px; height: 62px; will-change: transform; animation: pinnSantaFly var(--d) linear 0s 1 both; }
.pinn-santa.rtl { animation-name: pinnSantaFlyBack; }
.pinn-santa svg { display: block; width: 100%; height: 100%; animation: pinnSantaBob 1.4s ease-in-out infinite alternate; }
.pinn-santa.rtl svg { transform: scaleX(-1); }
@keyframes pinnSantaFly { from { transform: translate3d(-230px, 0, 0); } to { transform: translate3d(calc(100vw + 20px), -26px, 0); } }
@keyframes pinnSantaFlyBack { from { transform: translate3d(calc(100vw + 20px), 0, 0); } to { transform: translate3d(-230px, -26px, 0); } }
@keyframes pinnSantaBob { from { translate: 0 -3px; } to { translate: 0 4px; } }

/* Power saving: in idle mode everything stands still (js/winterzeit.js also starts nothing new there) */
html.pinn-ruhe .pinn-season-layer *, html.pinn-ruhe #appShell > header::before { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
  .pinn-season-layer { display: none; }
  html.pinn-xmas.pinn-season-live #appShell > header::before { animation: none; }
}

/* ---------- Settings → Appearance → Seasons (collapsible block, since 1.147.0) ---------- */
#seasonDetails > summary { list-style: none; }
#seasonDetails > summary::-webkit-details-marker { display: none; }
#seasonDetails > summary .accordion-chevron { transition: transform 0.18s ease; }
#seasonDetails[open] > summary .accordion-chevron { transform: rotate(90deg); }
