/* Transparent footer across all themes, including the original appearance. */
body.public .footer {
  background: transparent !important;
  border-top: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
/* Seasonal overrides exclude default so the original site palette remains intact. */
.army-background-details { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.season-army { z-index: -1; }
.army-plane { position: absolute; width: 85px; color: #425238; opacity: .12; animation: army-fly 50s linear infinite; }
.army-plane-0 { top: 22%; animation-delay: -8s; }
.army-plane-1 { top: 52%; width: 55px; animation-duration: 70s; animation-delay: -38s; }
.army-plane-2 { top: 78%; width: 70px; animation-duration: 60s; animation-delay: -23s; }
@keyframes army-fly { from { transform: translateX(-140px) rotate(90deg); } to { transform: translateX(calc(100vw + 140px)) rotate(90deg); } }
html[data-season="army"] body::before {
  background-color: #dce2cc;
  background-image: linear-gradient(rgba(239,242,227,.75),rgba(239,242,227,.75)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='280' viewBox='0 0 400 280'%3E%3Cpath fill='%23aeb99a' d='M0 0h400v280H0z'/%3E%3Cpath fill='%23788762' d='M0 25Q70 5 100 45T220 65Q260 120 160 125T0 170zM240 175Q300 120 350 160T400 190v90H270Q215 230 240 175z'/%3E%3Cpath fill='%23929d77' d='M130 0Q105 45 150 70T280 30L310 0zM15 215Q65 155 120 205T205 280H0z'/%3E%3Cpath fill='%23515f43' d='M325 30Q385 0 400 50v55q-55 25-80-5T325 30zM145 150q70-40 90 10t-40 45-50-55z'/%3E%3C/svg%3E");
  background-size: cover,cover;
  background-repeat: no-repeat;
  background-position: center;
}
@media(prefers-reduced-motion:reduce) { .army-plane { animation:none; left:12%; }.army-plane-1 { left:65%; }.army-plane-2 { left:40%; } }
html:where([data-season]:not([data-season="default"])) body.app .ops-summary-tile,
html:where([data-season]:not([data-season="default"])) body.app .ops-pill,
html:where([data-season]:not([data-season="default"])) body.app .slot-chip,
html:where([data-season]:not([data-season="default"])) body.app .btn-ghost,
html:where([data-season]:not([data-season="default"])) body.app .btn-ghost:hover,
html:where([data-season]:not([data-season="default"])) body.app .icon-btn,
html:where([data-season]:not([data-season="default"])) body.app .icon-btn:hover,
html:where([data-season]:not([data-season="default"])) body.app .ops-code {
  background: var(--surface); color: var(--ink); border-color: var(--line);
}
html:where([data-season]:not([data-season="default"])) body.app .ops-summary-tile strong { color: var(--ink); }
html:where([data-season]:not([data-season="default"])) body.app .ops-summary-tile .muted { color: var(--muted); }
html:where([data-season]:not([data-season="default"])) body.app .hours-grid .hr {
  background: var(--surface); color: var(--ink); border-color: var(--line);
}
html:where([data-season]:not([data-season="default"])) body.app .hours-grid .hr.on {
  background: var(--grad); color: var(--button-ink);
}
html:where([data-season]:not([data-season="default"])) body.app .badge-ok { background: #def8ef; color: #086450; }
html:where([data-season]:not([data-season="default"])) body.app .badge-warn { background: #fff1d6; color: #794300; }
html:where([data-season]:not([data-season="default"])) body.app .badge-bad { background: #ffe3e6; color: #a21d33; }
html:where([data-season]:not([data-season="default"])) body.app .badge-info { background: #e2e8ff; color: #3342b8; }
html:where([data-season]:not([data-season="default"])) body.app .badge-muted { background: #eceff8; color: #46516a; }
html:where([data-season]:not([data-season="default"])) body.app input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html:where([data-season]:not([data-season="default"])) body.app select,
html:where([data-season]:not([data-season="default"])) body.app textarea {
  background: var(--surface); color: var(--ink); -webkit-text-fill-color: var(--ink);
  border-color: var(--line); caret-color: var(--ink);
}
html:where([data-season]:not([data-season="default"])) body.app input::placeholder,
html:where([data-season]:not([data-season="default"])) body.app textarea::placeholder {
  color: var(--muted); -webkit-text-fill-color: var(--muted); opacity: 1;
}
html:where([data-season]:not([data-season="default"])) body.app input:-webkit-autofill {
  -webkit-text-fill-color: var(--ink); -webkit-box-shadow: 0 0 0 1000px var(--surface) inset;
}
html:where([data-season]:not([data-season="default"])) body.app .shortcut-card {
  background: var(--surface); color: var(--ink); border-color: var(--line);
}
html:where([data-season]:not([data-season="default"])) body.app .shortcut-card strong { color: var(--ink); }
html:where([data-season]:not([data-season="default"])) body.app .shortcut-card .muted { color: var(--muted); }
html:where([data-season]:not([data-season="default"])) body.app .pw-wrap .pw-toggle {
  background: var(--surface-soft); color: var(--ink); border-color: var(--line);
}
html[data-season="newyear"] {
  --brand: #f2d27a; --brand-2: #ff8fb1; --brand-3: #e9bd55; --bg: #0b0f2b;
  --season-light: #1d2459; --season-soft: #2a1d4d; --season-motif: "✦  ·  Szczęśliwego Nowego Roku  ·  ✦";
}
html[data-season="christmas"] {
  --brand: #aa1830; --brand-2: #86132a; --brand-3: #ab2437; --bg: #f5f8fa;
  --season-light: #e2eef5; --season-soft: #fff8ed; --season-motif: "Wesołych Świąt Bożego Narodzenia";
}
html[data-season="valentine"] {
  --brand: #b5203f; --brand-2: #bf3667; --brand-3: #b62b4b; --bg: #fff5f8;
  --season-light: #fbe0e9; --season-soft: #fff1f6; --season-motif: "♡  ·  ♥  ·  ♡  ·  ♥  ·  ♡";
}
html[data-season="easter"] {
  --brand: #35672c; --brand-2: #756094; --brand-3: #756015; --bg: #fcfbef;
  --season-light: #f7ecc0; --season-soft: #eee3f6; --season-motif: "✿  ·  🥚  ·  🐣  ·  🥚  ·  ✿";
}
html[data-season="may"] {
  --brand: #b1263b; --brand-2: #a12438; --brand-3: #c34551; --bg: #fff7f7;
  --season-light: #f7e0e3; --season-soft: #ffffff; --season-motif: "3 MAJA";
}
html[data-season="uprising"] {
  --brand: #ac2335; --brand-2: #191919; --brand-3: #8f1e2f; --bg: #f5f5f5;
  --season-light: #e8e8e8; --season-soft: #ffffff; --season-motif: "1 SIERPNIA  ·  PAMIĘTAMY";
}
html[data-season="army"] {
  --brand: #9d2939; --brand-2: #4e6340; --brand-3: #9c3342; --bg: #faf8f2;
  --season-light: #e5eadb; --season-soft: #fff5f5; --season-motif: "🇵🇱  ·  15 SIERPNIA  ·  🇵🇱";
}
html[data-season="halloween"] {
  --brand: #ffaf61; --brand-2: #bc9ce8; --brand-3: #f6b975; --bg: #18121f;
  --season-light: #392639; --season-soft: #2a223c; --season-motif: "✦  🎃  ✦  ☾  ✦  🎃  ✦";
}
html[data-season="independence"] {
  --brand: #b1263b; --brand-2: #a12438; --brand-3: #c34551; --bg: #fff7f7;
  --season-light: #f7e0e3; --season-soft: #ffffff; --season-motif: "11 LISTOPADA";
}
html:where([data-season]:not([data-season="default"])) {
  --grad: linear-gradient(135deg, var(--brand), var(--brand-2) 65%, var(--brand-3));
  --grad-soft: linear-gradient(135deg, var(--season-light), var(--season-soft));
}
html:where([data-season]:not([data-season="default"])) body::before {
  background: radial-gradient(ellipse at 12% 0%, var(--season-light), transparent 60%),
    radial-gradient(ellipse at 100% 10%, var(--season-soft), transparent 60%), var(--bg);
}
html:where([data-season]:not([data-season="default"])) body.public::after { background-image: none; }
html:where([data-season]:not([data-season="default"])) .blob.b1 { background: var(--season-light); }
html:where([data-season]:not([data-season="default"])) .blob.b2 { background: var(--season-soft); }
html:where([data-season]:not([data-season="default"])) .blob.b3 { background: var(--season-light); }
html:where([data-season]:not([data-season="default"])) .bg-scene::after {
  content: var(--season-motif); position: absolute; left: 0; right: 0; bottom: 18px;
  text-align: center; color: var(--brand); opacity: .28; font-size: clamp(16px, 2.5vw, 28px);
  font-weight: 800; letter-spacing: .22em; white-space: nowrap; pointer-events: none;
}
html:where([data-season]:not([data-season="default"])) .hero-visual::before {
  content: var(--season-motif); display: block; text-align: center; font-weight: 800;
  letter-spacing: .12em; color: var(--brand); margin-bottom: 14px; font-size: clamp(14px, 2vw, 20px);
  pointer-events: none;
}
html:where([data-season]:not([data-season="default"])) :focus-visible { outline-color: var(--brand); }
html:where([data-season]:not([data-season="default"])) input:focus,
html:where([data-season]:not([data-season="default"])) select:focus,
html:where([data-season]:not([data-season="default"])) textarea:focus { border-color: var(--brand); }
@media (max-width: 600px) {
  html:where([data-season]:not([data-season="default"])) .bg-scene::after { font-size: 13px; letter-spacing: .08em; }
}

/* Decorative layer cannot intercept clicks, selection or keyboard focus. */
.season-decorations, .season-decorations * { pointer-events: none !important; user-select: none; }
.season-decorations { position: fixed; inset: 0; z-index: 35; overflow: hidden; }
.season-art { position: absolute; width: clamp(50px, 7vw, 92px); height: auto; filter: drop-shadow(0 5px 8px rgba(30,25,40,.12)); }
.season-left { left: 8px; bottom: 18px; }
.season-right { right: 8px; top: 105px; }
.christmas-ornament { top: 32px; bottom: auto; width: clamp(58px,6vw,86px); opacity: .94; }
.christmas-left { left: 5px; }.christmas-right { right: 5px; transform: scaleX(-1); }
.christmas-winter-scene { position: fixed; top: auto; bottom: -1px; left: 0; width: 100%; height: auto; aspect-ratio: 1200 / 162; display: block; z-index: -1; }
.season-christmas:has(.christmas-winter-scene) { z-index: -1; }
.season-christmas .christmas-ornament { display: none; }
@media(max-width:720px) { .christmas-winter-scene { height: auto; top: auto; bottom: -1px; } }
.season-halloween .season-left { top: auto; bottom: 18px; left: 10px; }
.season-easter .season-right { top: auto; bottom: 18px; }
.season-valentine .season-right { top: 125px; width: 58px; }
.season-garland { position: absolute; top: 0; left: 0; right: 0; height: 60px; display: flex; justify-content: space-around;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 -3Q100 48 200 -3Q300 48 400 -3Q500 48 600 -3Q700 48 800 -3Q900 48 1000 -3Q1100 48 1200 -3' fill='none' stroke='%232c4235' stroke-width='2'/%3E%3C/svg%3E") center top / 100% 60px no-repeat;
}
.christmas-evergreen { position: absolute; top: -8px; left: 0; right: 0; display: flex; height: 65px; overflow: hidden; }
.evergreen-section { flex: 1 1 0; min-width: 0; width: 8.333%; height: 65px; overflow: visible; }
.evergreen-bauble { filter: drop-shadow(0 0 4px rgba(255,218,135,.6)); animation: evergreen-shimmer 6s ease-in-out infinite alternate; }
.evergreen-lights { fill: #fff0af; filter: drop-shadow(0 0 4px #ffd566);
  animation: evergreen-twinkle var(--twinkle-duration,6s) ease-in-out infinite;
  animation-delay: var(--twinkle-delay,0s);
}
@keyframes evergreen-twinkle {
  0%,100% { opacity: .55; filter: drop-shadow(0 0 2px #ffd566); }
  30%,55% { opacity: 1; filter: drop-shadow(0 0 6px #ffd566) drop-shadow(0 0 3px #fff0af); }
  75% { opacity: .7; filter: drop-shadow(0 0 3px #ffd566); }
}
.evergreen-section:nth-child(3n) .evergreen-bauble { animation-delay: -2s; }
.evergreen-section:nth-child(3n+1) .evergreen-bauble { animation-delay: -4s; }
@keyframes evergreen-shimmer { from { filter: drop-shadow(0 0 2px rgba(255,218,135,.3)); } to { filter: drop-shadow(0 0 7px rgba(255,218,135,.85)); } }
@media(max-width:720px) {
  .christmas-evergreen { height: 44px; }
  .evergreen-section { height: 44px; }
  .evergreen-section:nth-child(n+7) { display: none; }
}
.season-bulb { position: relative; flex: none; width: 12px; height: 19px; border-radius: 42% 42% 55% 55%;
  background: radial-gradient(ellipse at 35% 25%, #fff9df 0%, var(--bulb) 38%, var(--bulb-dark) 100%);
  color: var(--bulb); margin-top: 22px; box-shadow: 0 0 14px 4px currentColor;
  animation: season-glow var(--light-duration, 6s) ease-in-out infinite;
  animation-delay: var(--light-delay, 0s) !important;
}
.season-bulb:nth-child(4n+2), .season-bulb:nth-child(4n+3) { margin-top: 31px; }
.season-bulb:nth-child(4n+1) { transform: rotate(-10deg); }
.season-bulb:nth-child(4n) { transform: rotate(10deg); }
.season-bulb::before { content: ""; position: absolute; top: -9px; left: 3px; width: 6px; height: 10px;
  background: linear-gradient(90deg,#223b2c,#647966,#223b2c); border-radius: 2px 2px 1px 1px;
}
.season-bulb::after { content: ""; position: absolute; top: 3px; left: 3px; width: 3px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.65); }
.bulb-0 { --bulb: #ff5269; --bulb-dark: #94233b; animation-delay: -2.4s; }
.bulb-1 { --bulb: #ffd963; --bulb-dark: #a57620; animation-delay: -1.1s; }
.bulb-2 { --bulb: #67d6a0; --bulb-dark: #207344; animation-delay: -3.6s; }
.bulb-3 { --bulb: #79c8ff; --bulb-dark: #275d97; animation-delay: -.3s; }
.season-snow { position: absolute; top: -35px; color: #85aab8; font-size: 17px; opacity: .55; animation: season-snowfall 18s linear infinite; }
.snow-0 { left: 3%; animation-delay: -2s; }.snow-1 { left: 12%; animation-delay: -12s; }
.snow-2 { left: 21%; animation-delay: -6s; }.snow-3 { left: 30%; animation-delay: -16s; }
.snow-4 { left: 39%; animation-delay: -9s; }.snow-5 { left: 48%; animation-delay: -4s; }
.snow-6 { left: 57%; animation-delay: -14s; }.snow-7 { left: 66%; animation-delay: -7s; }
.snow-8 { left: 75%; animation-delay: -11s; }.snow-9 { left: 84%; animation-delay: -1s; }
.snow-10 { left: 91%; animation-delay: -15s; }.snow-11 { left: 97%; animation-delay: -5s; }
.season-float { animation: season-float 6s ease-in-out infinite; }
.season-bats { position: absolute; top: 105px; right: 10px; width: 135px; opacity: .65; }
.season-flag { transform-origin: left center; animation: season-flag 7s ease-in-out infinite; }
.season-uprising .season-art { animation: none; }
/* Full-width memorial flag at every viewport size. */
  html[data-season="uprising"] .nav::before {
    content: ""; position: absolute; top: 0; bottom: -10px; left: 0; right: 0;
    z-index: -1; pointer-events: none;
    background: linear-gradient(to bottom, #fff 0 50%, #c8243d 50% 100%);
    box-shadow: 0 3px 10px rgba(0,0,0,.12);
  }
  html[data-season="uprising"] .nav-inner { position: relative; z-index: 1; background: rgba(255,255,255,.94); }
@keyframes season-glow {
  0%, 100% { opacity: .6; }
  18%, 40% { opacity: 1; }
  65%, 82% { opacity: .75; }
}
@keyframes season-snowfall { from { transform: translate3d(0,-20px,0) rotate(0); } to { transform: translate3d(20px,calc(100vh + 60px),0) rotate(100deg); } }
@keyframes season-float { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-12px) rotate(3deg); } }
@keyframes season-flag { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@media (max-width: 720px) {
  .season-art { width: 42px; opacity: .7; }
  .season-left { left: 2px; bottom: 10px; }.season-right { right: 2px; }
  .season-halloween .season-left, .season-easter .season-right { bottom: 10px; }
  .christmas-ornament { top: 24px; width: 35px; opacity: .8; }
  .season-valentine .season-right { width: 36px; }
  .season-bats { width: 80px; opacity: .4; }
  .season-bulb { width: 7px; height: 11px; }
  .season-bulb:nth-child(even), .season-snow:nth-child(n+7) { display: none; }
  .season-snow { font-size: 12px; opacity: .35; }
}
@media (prefers-reduced-motion: reduce) {
  .season-decorations * { animation: none !important; }
  .season-particles { display: none; }
}
@media print { .season-decorations { display: none !important; } }

/* Site-wide treatment: surfaces, navigation, typography, inputs and panels. */
html:where([data-season]:not([data-season="default"])) {
  --ink: #202b3c; --ink-2: #455060; --muted: #606977;
  --surface: #fff; --surface-soft: var(--season-soft); --button-ink: #fff;
  --line: #d9d8d3; --glass: rgba(255,255,255,.92); --glass-strong: #fff;
  --glass-border: #e5e1d9; --ornament: var(--brand); --season-border: var(--line);
  --grad: linear-gradient(135deg, var(--brand), var(--brand-2) 70%, var(--brand-3));
  --grad-soft: linear-gradient(135deg, var(--season-light), var(--season-soft));
  --shadow-s: 0 4px 18px rgba(25,28,35,.08);
  --shadow-m: 0 15px 42px rgba(25,28,35,.10);
  --shadow-l: 0 30px 70px rgba(25,28,35,.14);
}
html[data-season="christmas"] {
  --ornament: #a17b2b; --season-border: #d9c697; --r-l: 26px;
  --surface: #fffaf0; --surface-soft: #fbe8dd; --line: #dfc3ad;
  --glass: rgba(255,250,240,.96); --glass-strong: #fffaf0;
  --grad-soft: linear-gradient(135deg,#f8ded7,#fff1d2);
}
html[data-season="valentine"] {
  --season-border: #edbbcc; --r-l: 32px; --r-xl: 40px; --surface-soft: #fff0f5;
  --line: #edd0db; --ink: #432431; --ink-2: #60414e; --muted: #745461;
}
html[data-season="easter"] {
  --season-border: #d7dcb1; --r-l: 30px; --r-xl: 42px; --surface-soft: #f2ecfa;
  --line: #d8dcc9; --ink: #2c3c2a; --ink-2: #465441; --muted: #64705a;
}
html[data-season="may"], html[data-season="independence"] {
  --season-border: #edc0c5; --r-l: 18px; --r-xl: 24px; --surface-soft: #fff1f2;
  --line: #edcdd1;
}
html[data-season="uprising"] {
  --ink: #191919; --ink-2: #363636; --muted: #606060; --line: #d1d1d1;
  --season-border: #242424; --r-l: 8px; --r-xl: 10px; --surface-soft: #f0f0f0;
  --ornament: #191919;
}
html[data-season="army"] {
  --season-border: #a9b18c; --r-l: 12px; --r-xl: 16px; --surface-soft: #edf0e2;
  --ink: #293022; --ink-2: #48523c; --muted: #68705a; --line: #c8cfb8;
  --bg: #e5e8da; --season-light: #c6ceaf; --season-soft: #edf0e4;
  --surface: #fafbf5; --glass: rgba(250,251,245,.96); --glass-strong: #fafbf5;
  --brand: #485b36; --brand-2: #35482b; --brand-3: #5b693e;
}
html[data-season="newyear"], html[data-season="halloween"] {
  color-scheme: dark;
  --ink: #faf9f6; --ink-2: #e1dfe4; --muted: #bcb8c5;
  --surface: #24252b; --surface-soft: #303139; --line: #50505c;
  --glass: rgba(36,37,43,.96); --glass-strong: #292a31; --glass-border: #55545b;
  --season-border: #77694c; --button-ink: #18181b; --ornament: #ead08a;
  --grad-soft: linear-gradient(135deg, #343127, #30313a);
  --shadow-s: 0 6px 20px rgba(0,0,0,.2); --shadow-m: 0 18px 44px rgba(0,0,0,.25);
}
html[data-season="newyear"] {
  --r-l: 16px; --r-xl: 22px;
  --surface: #171d4a; --surface-soft: #222a63; --line: #424b99; --glass: rgba(23,29,74,.96);
  --glass-strong: #1c2356; --glass-border: #4a53a3; --season-border: #5a63b3; --ornament: #f2d27a;
  --grad-soft: linear-gradient(135deg, #1f2760, #2c2060);
}
html[data-season="newyear"] body::before {
  background: radial-gradient(ellipse at 12% 0, rgba(255,214,120,.16), transparent 45%),
    radial-gradient(ellipse at 90% 18%, rgba(255,143,177,.14), transparent 50%),
    linear-gradient(180deg, #0b0f2b 0%, #141a47 55%, #1d1745 100%);
}
.ny-garland { position: absolute; top: 0; left: 0; right: 0; height: 4px; opacity: .9;
  background: linear-gradient(90deg,#f2d27a,#ff8fb1,#7fd6ff,#b69cff,#ffb35c,#f2d27a); }
html[data-season="halloween"] {
  --surface: #291f33; --surface-soft: #362940; --glass: rgba(41,31,51,.96);
  --glass-strong: #30243b; --season-border: #73508e; --line: #604875;
  --grad-soft: linear-gradient(135deg, #3d2934, #3d2b53); --ornament: #ffaf61;
  --r-l: 24px; --r-xl: 34px;
}
html:where([data-season]:not([data-season="default"])) body::before {
  background: radial-gradient(ellipse at 0 0, var(--season-light), transparent 60%),
    radial-gradient(ellipse at 100% 25%, var(--season-soft), transparent 55%), var(--bg);
}
html:where([data-season]:not([data-season="default"])) body.public::after { background-image: none; }
html:where([data-season]:not([data-season="default"])) .blob.b1, html:where([data-season]:not([data-season="default"])) .blob.b3 { background: var(--season-light); }
html:where([data-season]:not([data-season="default"])) .blob.b2 { background: var(--season-soft); }
html:where([data-season]:not([data-season="default"])) .glass, html:where([data-season]:not([data-season="default"])) .card { border-color: var(--season-border); }
html:where([data-season]:not([data-season="default"])) .card { border-top: 3px solid var(--ornament); }
html:where([data-season]:not([data-season="default"])) .nav-inner { background: var(--glass-strong); border-bottom: 3px solid var(--ornament); }
html:where([data-season]:not([data-season="default"])) .sidebar { background: var(--glass); border-right: 3px solid var(--ornament); }
html:where([data-season]:not([data-season="default"])) .hero-visual::before {
  content: ""; margin: 0; background: var(--grad-soft); border: 2px solid var(--season-border);
  box-shadow: inset 0 0 0 14px var(--surface), 0 20px 60px rgba(0,0,0,.09);
}
html:where([data-season]:not([data-season="default"])) .about-photo { background: var(--grad-soft); border: 2px solid var(--season-border); }
html:where([data-season]:not([data-season="default"])) .btn-primary, html:where([data-season]:not([data-season="default"])) .btn-primary:hover,
html:where([data-season]:not([data-season="default"])) .offer-card .oico, html:where([data-season]:not([data-season="default"])) .float-card .ico-wrap,
html:where([data-season]:not([data-season="default"])) .step .sico, html:where([data-season]:not([data-season="default"])) .stat .sico, html:where([data-season]:not([data-season="default"])) .mat-card .mico,
html:where([data-season]:not([data-season="default"])) .tabs .active {
  background: var(--grad); color: var(--button-ink); box-shadow: var(--shadow-s);
}
html:where([data-season]:not([data-season="default"])) .btn-soft, html:where([data-season]:not([data-season="default"])) .eyebrow, html:where([data-season]:not([data-season="default"])) .feature .fico,
html:where([data-season]:not([data-season="default"])) .empty-ico, html:where([data-season]:not([data-season="default"])) .notif .nico {
  background: var(--grad-soft); color: var(--brand); border: 1px solid var(--season-border);
}
html:where([data-season]:not([data-season="default"])) .nav-links a:hover, html:where([data-season]:not([data-season="default"])) .side-nav a:hover,
html:where([data-season]:not([data-season="default"])) .side-nav a.active, html:where([data-season]:not([data-season="default"])) .side-foot a:hover,
html:where([data-season]:not([data-season="default"])) .side-logout:hover { background: var(--surface-soft); color: var(--brand); }
html:where([data-season]:not([data-season="default"])) input, html:where([data-season]:not([data-season="default"])) select, html:where([data-season]:not([data-season="default"])) textarea,
html:where([data-season]:not([data-season="default"])) input:focus, html:where([data-season]:not([data-season="default"])) select:focus, html:where([data-season]:not([data-season="default"])) textarea:focus {
  background: var(--surface); color: var(--ink); border-color: var(--line);
}
html:where([data-season]:not([data-season="default"])) input::placeholder, html:where([data-season]:not([data-season="default"])) textarea::placeholder { color: var(--muted); }
html:where([data-season]:not([data-season="default"])) input:focus, html:where([data-season]:not([data-season="default"])) select:focus, html:where([data-season]:not([data-season="default"])) textarea:focus { border-color: var(--brand); }
html:where([data-season]:not([data-season="default"])) :focus-visible { outline: 3px solid var(--brand); outline-offset: 3px; }
html:where([data-season]:not([data-season="default"])) .tabs, html:where([data-season]:not([data-season="default"])) .chat-suggest button,
html:where([data-season]:not([data-season="default"])) .slot, html:where([data-season]:not([data-season="default"])) .svc-opt.sel,
html:where([data-season]:not([data-season="default"])) .nav-toggle { background: var(--surface); color: var(--ink); border-color: var(--line); }
html:where([data-season]:not([data-season="default"])) .chip, html:where([data-season]:not([data-season="default"])) .tag { background: var(--surface-soft); color: var(--ink); border-color: var(--line); }
html:where([data-season]:not([data-season="default"])) .table th { background: var(--surface-soft); color: var(--ink); }
html:where([data-season]:not([data-season="default"])) .table tbody tr:hover { background: var(--surface-soft); }
html:where([data-season]:not([data-season="default"])) .section-title { position: relative; padding-bottom: 18px; }
html:where([data-season]:not([data-season="default"])) .section-title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 70px; height: 4px; border-radius: 4px; background: var(--grad); }
html:where([data-season]:not([data-season="default"])) .center .section-title::after { left: calc(50% - 35px); }
html:where([data-season]:not([data-season="default"])) .footer { border-top: 3px solid var(--ornament); background: var(--surface); }
html:where([data-season]:not([data-season="default"])) .cta-band, html:where([data-season]:not([data-season="default"])) .welcome { background: var(--grad); color: var(--button-ink); }
html:where([data-season]:not([data-season="default"])) .cta-band p, html:where([data-season]:not([data-season="default"])) .welcome p { color: inherit; }
html[data-season="christmas"] .card { border-top: 4px solid #a17b2b; }
html[data-season="christmas"] .nav-inner { border-bottom: 4px solid #a17b2b; box-shadow: 0 4px 0 #aa1830, var(--shadow-m); }
html[data-season="valentine"] .card { border-top-width: 2px; box-shadow: 0 16px 40px rgba(155,34,78,.10); }
html[data-season="valentine"] .hero-visual::before { border-radius: 44% 56% 48% 52%; }
html[data-season="easter"] .hero-visual::before { border-radius: 50% 50% 42% 42%; background: linear-gradient(135deg,#fff2ae,#e0edc9 55%,#e4d3f5); }
html[data-season="easter"] .card { border-top: 4px solid #b8a2cd; border-bottom: 2px solid #e9d675; }
html[data-season="may"] .nav-inner, html[data-season="independence"] .nav-inner { border-top: 4px solid #fff; border-bottom: 4px solid #ba263e; }
html[data-season="may"] .card, html[data-season="independence"] .card { border-top: 4px solid #c22b42; }

html[data-season="uprising"] .hero-visual::before { border-radius: 8px; background: linear-gradient(135deg,#d9d9d9,#ededed); box-shadow: 8px 8px 0 #242424; }
html[data-season="uprising"] .card { border-top: 4px solid #191919; border-bottom: 2px solid #ac2335; }
html[data-season="uprising"] .season-left { color: #171717; background: transparent; border: 0; padding: 0; filter: none; width: clamp(62px,8vw,110px); }
html[data-season="army"] .nav-inner { border-bottom: 5px solid #586847; }
html[data-season="army"] .card { border-top: 4px solid #586847; border-left: 2px solid #ad293b; }
html[data-season="army"] .hero-visual::before { border-radius: 14px; background: repeating-linear-gradient(135deg,#eef0e4 0 30px,#e3e8d7 30px 60px); }
html[data-season="army"] .nav-inner { border-bottom-color: #586847; }
html[data-season="army"] .sidebar { border-right-color: #586847; }
html[data-season="army"] .card { border-color: #a7b18f; border-top: 4px solid #485b36; border-left: 2px solid #b62b3b; }
html[data-season="army"] .bg-scene::after { content: "ŚWIĘTO WOJSKA POLSKIEGO"; opacity: .45; color: #35482b; letter-spacing: .12em; }
@media(max-width:720px) {
  html[data-season="army"] .bg-scene::after { font-size: 11px; letter-spacing: .025em; }
}
html[data-season="halloween"] .card { border-top: 3px solid #b89bdd; border-bottom: 2px solid #dc8847; }
html[data-season="halloween"] .hero-visual::before { border-radius: 50%; background: radial-gradient(circle at 50% 45%,#dbad77,#a987b3 45%,#30243b 70%); }
html[data-season="halloween"] .season-bats { fill: #b89bdd; opacity: .85; }
html[data-season="halloween"] .season-bats g { fill: #b89bdd; }
html[data-season="newyear"] .card { border: 1px solid #5a63b3; border-top: 3px solid #f2d27a; }
html[data-season="newyear"] .hero-visual::before { border-radius: 12px; background: repeating-linear-gradient(135deg,#1c2356 0 24px,#252d6b 24px 25px); }
.season-newyear .season-right { top: 100px; }
.season-fireworks { position: absolute; top: 160px; right: 12px; width: 110px; color: #d7bd75; opacity: .65; }
.confetti { position: absolute; top: -20px; width: 5px; height: 11px; background: #d7bd75; animation: season-confetti 22s linear infinite; }
.confetti:nth-child(even) { background: #cbd0d6; }.confetti:nth-child(3n) { background: #fff; }
.confetti-0{left:3%;animation-delay:-1s}.confetti-1{left:9%;animation-delay:-9s}.confetti-2{left:14%;animation-delay:-17s}
.confetti-3{left:20%;animation-delay:-6s}.confetti-4{left:25%;animation-delay:-20s}.confetti-5{left:31%;animation-delay:-12s}
.confetti-6{left:36%;animation-delay:-4s}.confetti-7{left:42%;animation-delay:-15s}.confetti-8{left:47%;animation-delay:-8s}
.confetti-9{left:53%;animation-delay:-19s}.confetti-10{left:59%;animation-delay:-11s}.confetti-11{left:64%;animation-delay:-2s}
.confetti-12{left:70%;animation-delay:-16s}.confetti-13{left:75%;animation-delay:-7s}.confetti-14{left:81%;animation-delay:-21s}
.confetti-15{left:86%;animation-delay:-13s}.confetti-16{left:92%;animation-delay:-5s}.confetti-17{left:97%;animation-delay:-18s}
@keyframes season-confetti { from { transform: translate3d(0,-20px,0) rotate(0); } to { transform: translate3d(-25px,calc(100vh + 40px),0) rotate(360deg); } }
@media(max-width:720px) { .season-fireworks { width: 60px; opacity: .4; }.confetti:nth-child(n+9) { display:none; } }
@media(prefers-reduced-motion:reduce) { .season-confetti { display:none; } }

/* Keep booking, account and chat surfaces readable in the two dark themes. */
html:where([data-season]:not([data-season="default"])) .user-chip, html:where([data-season]:not([data-season="default"])) .list-item,
html:where([data-season]:not([data-season="default"])) .slot-chip, html:where([data-season]:not([data-season="default"])) .summary,
html:where([data-season]:not([data-season="default"])) .notif.unread, html:where([data-season]:not([data-season="default"])) .cal-day,
html:where([data-season]:not([data-season="default"])) .cal-day.has, html:where([data-season]:not([data-season="default"])) .cal-day:hover:not(:disabled),
html:where([data-season]:not([data-season="default"])) .svc-opt, html:where([data-season]:not([data-season="default"])) .svc-opt.sel,
html:where([data-season]:not([data-season="default"])) .stepper .st, html:where([data-season]:not([data-season="default"])) .stepper .st.on,
html:where([data-season]:not([data-season="default"])) .pager a, html:where([data-season]:not([data-season="default"])) .pager span,
html:where([data-season]:not([data-season="default"])) .msg.bot, html:where([data-season]:not([data-season="default"])) .typing,
html:where([data-season]:not([data-season="default"])) .chat-form { background: var(--surface); color: var(--ink); border-color: var(--line); }
html:where([data-season]:not([data-season="default"])) .date-box, html:where([data-season]:not([data-season="default"])) .auth-icon,
html:where([data-season]:not([data-season="default"])) .contact-info .item .ico-wrap, html:where([data-season]:not([data-season="default"])) .pager .cur,
html:where([data-season]:not([data-season="default"])) .cat-tree a.active, html:where([data-season]:not([data-season="default"])) .slot.sel,
html:where([data-season]:not([data-season="default"])) .stepper .st.on i, html:where([data-season]:not([data-season="default"])) .chat-fab,
html:where([data-season]:not([data-season="default"])) .chat-head, html:where([data-season]:not([data-season="default"])) .msg.user {
  background: var(--grad); color: var(--button-ink); box-shadow: var(--shadow-s);
}
html:where([data-season]:not([data-season="default"])) .cal-day.sel { color: var(--button-ink) !important; }
html:where([data-season]:not([data-season="default"])) .chat-head .icon-btn { color: var(--button-ink); }
html:where([data-season]:not([data-season="default"])) .chat-suggest button:hover { color: var(--button-ink); }
html:where([data-season]:not([data-season="default"])) .welcome h2 { color: var(--button-ink); }
html:where([data-season]:not([data-season="default"])) .welcome .btn, html:where([data-season]:not([data-season="default"])) .cta-band .btn-light {
  background: var(--surface); color: var(--brand);
}

/* Memorial masonry: neutral grey mortar and staggered courses. */
html[data-season="uprising"] { --bg: #d4d4d4; --season-light: #cdcdcd; --season-soft: #e6e6e6; --glass: rgba(250,250,250,.96); }
html[data-season="uprising"] body::before {
  background-color: #d4d4d4;
  background-image: radial-gradient(ellipse at 50% 0,rgba(255,255,255,.55),rgba(50,50,50,.08)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='120' viewBox='0 0 240 120'%3E%3Cdefs%3E%3ClinearGradient id='g' x2='0' y2='1'%3E%3Cstop stop-color='%23dedede'/%3E%3Cstop offset='1' stop-color='%23cacaca'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M0 0h240v120H0z'/%3E%3Cpath d='M0 0h240M0 60h240M0 120h240M120 0v60M0 60v60M240 60v60' fill='none' stroke='%23a7a7a7' stroke-width='3'/%3E%3Cpath d='M0 3h240M0 63h240' stroke='%23eeeeee' stroke-width='1'/%3E%3C/svg%3E");
  background-size: cover,240px 120px;
}
html[data-season="uprising"] .blob { display: none; }
html[data-season="uprising"] body.app .season-uprising .season-left {
  position: absolute; left: 50%; top: 50%; bottom: auto;
  width: min(65vw, 650px); opacity: .32;
  transform: translate(-50%, -50%); filter: none;
}
html[data-season="uprising"] body.app .season-uprising { z-index: -1; }
html[data-season="uprising"] .bg-scene::after { color: #242424; opacity: .5; }
/* Flags stand separately from the portrait, never as a photo backdrop. */
.season-uprising .season-right, .season-army .season-right { top: auto; bottom: 18px; }
html[data-season="may"] .hero-visual::before, html[data-season="independence"] .hero-visual::before { background: linear-gradient(135deg,#f5f5f5,#e2e2e2); }
@media(max-width:720px) {
  html[data-season="uprising"] .season-left { width: 48px; opacity: .7; }
  .season-independence .season-right,
  .season-uprising .season-right, .season-army .season-right { bottom: 10px; }
}

/* Dense grass-like blades hang down from the top edge. */
.season-cress { position: absolute; top: 0; left: 0; width: 100%; height: 30px; opacity: .95; }
.season-easter .season-right { bottom: 100px; }
.season-national-ribbon { position: absolute; top: 0; left: 0; right: 0; height: 10px; background: linear-gradient(#fff 0 50%,#c8243d 50%); border-top: 1px solid #e4e4e4; box-shadow: 0 2px 6px rgba(0,0,0,.08); }
.season-may .season-left, .season-may .season-right, .season-independence .season-left, .season-independence .season-right, .season-army .season-left, .season-army .season-right { top: 14px; bottom: auto; width: 62px; opacity: 1; animation: none; }
.season-may .season-rosette , .season-independence .season-rosette { top: 102px; width: 38px; opacity: .85; filter: none; }
.rosette-left { left: 10px; }.rosette-right { right: 10px; }
html[data-season="may"] .bg-scene::after { content: "3 MAJA"; top: auto; bottom: 18px; opacity: .18; letter-spacing: .25em; }
html[data-season="independence"] .bg-scene::after { content: "11 LISTOPADA"; top: auto; bottom: 18px; opacity: .18; letter-spacing: .25em; }
@media (max-width: 1329.98px) {
  .season-may .season-left, .season-may .season-right , .season-independence .season-left, .season-independence .season-right { display: none; }
  html[data-season="may"] .nav::before, html[data-season="army"] .nav::before {
    content: ""; position: absolute; top: 0; bottom: -10px; left: 0; right: 0;
    z-index: -1; pointer-events: none;
    background: linear-gradient(to bottom, #fff 0 50%, #c8243d 50% 100%);
    box-shadow: 0 3px 10px rgba(0,0,0,.12);
  }
  html[data-season="may"] .nav-inner, html[data-season="army"] .nav-inner { position: relative; z-index: 1; background: rgba(255,255,255,.94); }
  .season-may .season-national-ribbon { display: none; }
}
@media(max-width:720px) {
  .season-cress { height: 20px; }
  .season-easter .season-right { bottom: 90px; }
  .season-may .season-left, .season-may .season-right , .season-independence .season-left, .season-independence .season-right { top: 8px; bottom: auto; width: 32px; }
  .season-may .season-rosette , .season-independence .season-rosette { top: 90px; width: 24px; opacity: .55; }
  .rosette-left { left: 3px; }.rosette-right { right: 3px; }
  .season-national-ribbon { height: 7px; }
}

/* Materiały: karty identyczne jak na innych stronach (szkło motywu). Tylko lista nie ma rozmycia (ciężka). */
html:where([data-season]:not([data-season="default"])) body.panel-materials .card:has(.table-wrap) {
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials .reveal,
html:where([data-season]:not([data-season="default"])) body.panel-materials .page-enter {
  opacity: 1; transform: none; animation: none; transition: none;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials .blob { display: none; }
body.panel-materials .season-decorations * { animation: none !important; }
body.panel-materials .season-particles, body.panel-materials .season-confetti { display: none; }
html:where([data-season]:not([data-season="default"])) body.panel-materials .page-enter > * {
  animation: none !important; transform: none !important; opacity: 1 !important;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials [data-tilt],
html:where([data-season]:not([data-season="default"])) body.panel-materials [data-spotlight] {
  transform: none !important; transition: none;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials [data-spotlight]::before { display: none; }
html:where([data-season]:not([data-season="default"])) body.panel-materials { scrollbar-gutter: stable; }
/* Karta z listą wygląda identycznie jak pozostałe karty motywu (tło, ramki, cień); tylko bez przycinania i filtrów. */
html:where([data-season]:not([data-season="default"])) body.panel-materials .card:has(.table-wrap) {
  overflow: visible; filter: none; transform: none;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials .table-wrap {
  overflow: visible;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials .table {
  border-collapse: separate; border-spacing: 0;
}
html:where([data-season]:not([data-season="default"])) body.panel-materials .table tbody tr,
html:where([data-season]:not([data-season="default"])) body.panel-materials .table tbody tr:hover {
  background: transparent; transition: none;
}

/* ===== Halloween 2.0 — "Żywa noc" ===== */
.hw-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
html[data-season="halloween"] .season-left { filter: drop-shadow(0 0 14px rgba(255,140,40,.7)); animation: hw-flicker 3.4s ease-in-out infinite; will-change: opacity; }
@keyframes hw-flicker {
  0%,100% { opacity: .85; }
  18% { opacity: 1; }
  23% { opacity: .7; }
  60% { opacity: .95; }
}
html[data-season="halloween"] ::selection { background: #ff8a2b; color: #18121f; }
html[data-season="halloween"] h1, html[data-season="halloween"] h2 { text-shadow: 0 0 22px rgba(255,150,60,.28); }
html[data-season="halloween"] .card { transition: box-shadow .35s, transform .35s; }
html[data-season="halloween"] .card:hover { box-shadow: 0 0 0 1px rgba(255,160,70,.35), 0 12px 38px rgba(255,120,30,.22); transform: translateY(-3px); }
html[data-season="halloween"] .btn:not(.btn-ghost):hover { box-shadow: 0 0 22px rgba(255,150,60,.55); }
@media print { .hw-canvas { display: none !important; } }

/* Halloween: nietoperze, duch i pająk latają ZA treścią strony (za oknami/kartami), nie przed nią. */
.season-halloween { z-index: -1; }

/* ===== Wydajność na telefonach i ekranach dotykowych (motywy sezonowe) =====
   Trzy duże, animowane i mocno rozmyte plamy tła oraz rozmycie za każdą kartą zużywają procesor i pamięć GPU,
   przez co karty mrugały podczas przewijania, a przeglądarka mogła zgłaszać "problem repeatedly occurred". */
@media (max-width: 900px), (pointer: coarse) {
  html:where([data-season]:not([data-season="default"])) .bg-scene .blob { display: none; }
  html:where([data-season]:not([data-season="default"])) .card,
  html:where([data-season]:not([data-season="default"])) .glass,
  html:where([data-season]:not([data-season="default"])) .modal,
  html:where([data-season]:not([data-season="default"])) .nav,
  html:where([data-season]:not([data-season="default"])) .nav-menu,
  html:where([data-season]:not([data-season="default"])) .hero-person,
  html:where([data-season]:not([data-season="default"])) .offer-card {
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  html:where([data-season]:not([data-season="default"])) .card,
  html:where([data-season]:not([data-season="default"])) .glass { background: var(--glass-strong, var(--glass)); }
  html:where([data-season]:not([data-season="default"])) .reveal { transform: none; transition: opacity .35s ease; }
  html:where([data-season]:not([data-season="default"])) .season-art { filter: none; }
  html[data-season="halloween"] .season-left { filter: none; animation: none; }
  .season-decorations .confetti:nth-child(n+7), .season-fireworks { display: none; }
  .army-plane-1, .army-plane-2 { display: none; }
}

/* Okrąg za zdjęciem nie prześwituje już przez zanikający dół zdjęcia: kończy się wyżej i sam delikatnie zanika. */
html:where([data-season]:not([data-season="default"])) .hero-visual::before {
  -webkit-mask-image: linear-gradient(#000 76%, transparent 91%);
  mask-image: linear-gradient(#000 76%, transparent 91%);
}
@media (min-width: 721px) {
  html:where([data-season]:not([data-season="default"])) .hero-visual::before { bottom: 13%; }
}

/* Stabilne warstwy: płótna efektów mają własną warstwę GPU, więc nie mrugają przy przewijaniu */
.hw-canvas { transform: translateZ(0); backface-visibility: hidden; -webkit-backface-visibility: hidden; }

/* Napis świąteczny nad sceną na węższych ekranach (scena kurczy się razem ze stroną) */
@media (max-width: 1100px) {
  html[data-season="christmas"] .bg-scene::after { bottom: calc(var(--scene-top, 4px) + 14px); }
}

/* =====================================================================
   TELEFONY: lekki tryb dla WSZYSTKICH stylów (także podstawowego).
   Powód zacinania i komunikatu "A problem repeatedly occurred": zbyt wiele
   pełnoekranowych, rozmytych i animowanych warstw naraz (blur 70px,
   backdrop-filter na każdej karcie, drop-shadow na zdjęciu, pulsujący przycisk czatu).
   ===================================================================== */
@media (max-width: 900px), (pointer: coarse) {
  /* rozmyte, animowane plamy tła */
  .bg-scene .blob, .blob { display: none !important; animation: none !important; will-change: auto !important; }
  /* zdjęcie nieba na całym ekranie z maską */
  body.public::after { display: none !important; }
  /* backdrop-filter to najdroższy efekt na telefonach */
  *, *::before, *::after { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
  .card, .glass, .nav-inner, .nav-menu, .sidebar, .chat-panel, .toast { background: var(--glass-strong, rgba(255,255,255,.9)); }
  .footer { background: var(--glass-strong, rgba(255,255,255,.8)); }
  .modal { background: rgba(23,33,61,.5); }
  /* lżejsze cienie */
  .card, .glass { box-shadow: 0 4px 14px rgba(40,50,100,.10); }
  /* zdjęcie: bez drop-shadow i bez rozmycia okręgu */
  .hero-photo { filter: none !important; transform: none !important; transition: none !important; }
  .hero-visual::before { filter: none !important; transform: none !important; transition: none !important; }
  /* nieskończone animacje, które cały czas przemalowują ekran */
  .chat-fab::before, .float-card, .skeleton::after { animation: none !important; }
  [data-tilt] { will-change: auto !important; transform: none !important; }
  /* pojawianie się kart: tylko przezroczystość */
  .reveal { transform: none !important; transition: opacity .3s ease !important; }
  .page-enter > *, .fade-in { animation: none !important; }
  /* dekoracje sezonowe w tle: bez cieni i animacji CSS */
  .season-decorations svg, .season-decorations img { filter: none !important; }
  .season-decorations, .season-decorations * { animation: none !important; }
  /* styl "powstanie": bez ciężkiej tekstury w tle i cienia paska */
  html[data-season="uprising"] body::before { background-image: radial-gradient(ellipse at 50% 0, rgba(255,255,255,.5), rgba(50,50,50,.06)) !important; background-size: cover !important; }
  html[data-season="uprising"] .nav::before { box-shadow: none !important; }
  html[data-season="uprising"] body.app .season-uprising .season-left { width: min(60vw, 260px); opacity: .22; }
}

/* Halloween na telefonie: bez poświaty nagłówków i bez animowanych cieni */
@media (max-width: 900px), (pointer: coarse) {
  html[data-season="halloween"] h1, html[data-season="halloween"] h2 { text-shadow: none; }
  html[data-season="halloween"] .card { transition: none; }
  html[data-season="halloween"] .card:hover { transform: none; box-shadow: none; }
}

/* =====================================================================
   CIEMNE MOTYWY (Halloween, Noworoczny): jasne tła zapisane na sztywno w app.css
   dawały jasny tekst na jasnym tle, czyli niewidoczne dane (rezerwacja, czat,
   powiadomienia, godziny, formularze, stopka). Wszystko mapujemy na ciemne powierzchnie.
   ===================================================================== */
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(
  .slot, .slot-chip, .cal-day, .svc-opt, .summary, .viewer, .msg.bot, .typing, .chat-suggest button,
  .stepper .st, .hours-grid .hr, .ops-segment, .ops-code, .cart-item, .list-item, .shortcut-card,
  .pager a, .pager span, .chip, .user-chip, .tabs, .icon-btn, .btn-ghost, .toast, .soon, .ops-pill,
  .ops-day-card, .ops-empty-mini, .ops-summary-tile, .about-social, .nav-toggle, .chat-form, .notif, .hours-legend .hl
):not(.sel):not(.active):not(.picked) {
  background-color: var(--surface); color: var(--ink); border-color: var(--line);
}
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(
  .cal-day.has, .notif.unread, .stepper .st.on, .svc-opt.sel, .ops-notif-unread, .booking-page .cal-day.picked
) { background-color: var(--surface-soft); color: var(--ink); }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.cal-day:hover:not(:disabled), .icon-btn:hover, .btn-ghost:hover, .pager a:hover) {
  background-color: var(--surface-soft); color: var(--ink);
}
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.slot-chip small, .chip small) { color: var(--muted); }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="file"]), select, textarea
) {
  background-color: var(--surface); color: var(--ink); -webkit-text-fill-color: var(--ink);
  border-color: var(--line); caret-color: var(--ink);
}
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(input, select, textarea):focus { background-color: var(--surface-soft); }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(input, textarea)::placeholder { color: var(--muted); -webkit-text-fill-color: var(--muted); opacity: 1; }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill) {
  -webkit-text-fill-color: var(--ink); -webkit-box-shadow: 0 0 0 1000px var(--surface) inset;
}
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.welcome .btn, .cta-band .btn-light) { color: #1d1428; }
/* Ciemne motywy: przycisk na jasnym pasie (CTA / powitanie) — jasne tło i ciemny, czytelny napis. */
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.welcome .btn, .cta-band .btn-light),
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.welcome .btn, .cta-band .btn-light):is(:hover, :focus-visible) {
  background: #fff8ee; color: #1d1428; border-color: rgba(29,20,40,.18); box-shadow: 0 12px 28px rgba(20,10,40,.32); text-shadow: none; font-weight: 800;
}
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.welcome .btn, .cta-band .btn-light):is(:hover, :focus-visible) { background: #fff; }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.welcome .btn, .cta-band .btn-light) :is(svg, .ico) { color: #1d1428; stroke: currentColor; }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.cta-band h2, .cta-band p) { color: #1d1428; text-shadow: none; }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.footer, .footer a, .footer p, .footer h4, .footer li) { color: var(--ink-2); }
:is(html[data-season="halloween"], html[data-season="newyear"]) .footer { background: var(--glass-strong); }
:is(html[data-season="halloween"], html[data-season="newyear"]) code { background: rgba(255,255,255,.1); color: var(--ink); }

/* Dekoracje po bokach: własna warstwa kompozytora (animujemy tylko transform/opacity), więc przy przewijaniu nie mrugają */
.season-art, .season-flag, .season-float, .season-bulb, .season-snow, .confetti { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.season-art { will-change: transform; }

/* Ciemne motywy: karty-wiersze tabel w panelu admina (telefon) miały na sztywno jasne tło, więc etykiety były niewidoczne */
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.admin-data-page .table.responsive tr, .table.responsive tr) {
  background-color: var(--surface); border-color: var(--line); color: var(--ink);
}
:is(html[data-season="halloween"], html[data-season="newyear"]) .table.responsive td::before { color: var(--muted); }
:is(html[data-season="halloween"], html[data-season="newyear"]) :is(.table td, .table th) { color: var(--ink); }
:is(html[data-season="halloween"], html[data-season="newyear"]) .table th { color: var(--muted); }
:is(html[data-season="halloween"], html[data-season="newyear"]) .table td a:not(.btn) { color: var(--brand); }

/* Tablety: mniej elementów dekoracyjnych w DOM */
@media (max-width: 1100px) {
  .season-snow:nth-child(n+9), .season-bulb:nth-child(n+15), .season-fireworks { display: none; }
}

/* ===== Majówka: jasne, wiosenne niebo ze słońcem ===== */
html[data-season="may"] { --bg: #eef6fc; --season-light: #e3f0fb; --season-soft: #fff4f5; }
html[data-season="may"] body::before {
  background:
    radial-gradient(circle at 88% -4%, rgba(255,240,180,.95) 0, rgba(255,232,150,.5) 14%, rgba(255,232,150,0) 40%),
    linear-gradient(180deg, #dcecf9 0%, #eef6fc 38%, #ffffff 72%, #fdeef1 100%);
}

/* Materiały: wiersze są przezroczyste w karcie (karta ma tło), a okno uprawnień używa ciemnych powierzchni */
:is(html[data-season="halloween"], html[data-season="newyear"]) body.panel-materials .table.responsive tr { background-color: transparent; }
html:where([data-season]:not([data-season="default"])) .perm-section { background: var(--surface-soft); border-color: var(--line); }
html:where([data-season]:not([data-season="default"])) .perm-item { background: var(--surface); color: var(--ink); }
html:where([data-season]:not([data-season="default"])) .perm-item small { color: var(--muted); }
