@charset "UTF-8";
.peanuts-friends { width: min(220px, 65vw); height: 120px; object-fit: contain; flex: 0 0 auto; }
.season-calm .season-celebration { visibility: hidden; }
.season-calm .welcome-snoopy img, .season-calm .peanuts-welcome-image { animation: none; }
.season-settings { margin-top: 30px; }
.season-preview-exit { display: inline-block; margin-top: 10px; font-weight: 700; }
/* Calendar-driven colour only: no changes to permissions, visibility or saved layout. */
body.season-kerst {
  --season-canvas: #f7f4e7;
  --season-soft: #e3ecd8;
  --season-secondary: #f1e1d8;
  --season-highlight: #fff0c2;
  --season-extra: #f5dfd7;
  --season-action: #a33533;
  --season-hover: #8c282a;
  --season-action-ink: #fffdf5;
  --season-link: #8c302e;
  --season-dark-canvas: #242b24;
  --season-dark-soft: #354b35;
  --season-dark-secondary: #493733;
  --season-dark-highlight: #50462b;
  --season-dark-extra: #573831;
  --season-dark-action: #edc184;
  --season-dark-hover: #ffdcaa;
  --season-dark-link: #f3c2b3;
}
body.season-nieuwjaar {
  --season-canvas: #f6f1e8;
  --season-soft: #e7e0f2;
  --season-secondary: #e0e8f2;
  --season-highlight: #fff0b8;
  --season-extra: #f0e1ec;
  --season-action: #e9c768;
  --season-hover: #f7da87;
  --season-action-ink: #302e29;
  --season-link: #5d477c;
  --season-dark-canvas: #242331;
  --season-dark-soft: #40374f;
  --season-dark-secondary: #323f53;
  --season-dark-highlight: #51482c;
  --season-dark-extra: #4b3548;
  --season-dark-action: #e6cb83;
  --season-dark-hover: #ffe5a7;
  --season-dark-link: #d8c6f2;
}
body.season-valentijn {
  --season-canvas: #fff1ed;
  --season-soft: #f5dce4;
  --season-secondary: #e7e3f1;
  --season-highlight: #fff0cf;
  --season-extra: #f8ddda;
  --season-action: #a33b59;
  --season-hover: #8e2f4b;
  --season-action-ink: #fffdf5;
  --season-link: #8c3150;
  --season-dark-canvas: #30252a;
  --season-dark-soft: #503744;
  --season-dark-secondary: #3f3c4f;
  --season-dark-highlight: #4e432d;
  --season-dark-extra: #593b39;
  --season-dark-action: #eeb9ce;
  --season-dark-hover: #ffd6e3;
  --season-dark-link: #f6c3d6;
}
body.season-pasen {
  --season-canvas: #fcf8e6;
  --season-soft: #e4eecf;
  --season-secondary: #eae2f3;
  --season-highlight: #fff0b8;
  --season-extra: #f5e0d5;
  --season-action: #d8c179;
  --season-hover: #e8d48f;
  --season-action-ink: #302e29;
  --season-link: #5c487b;
  --season-dark-canvas: #292c24;
  --season-dark-soft: #3d4b34;
  --season-dark-secondary: #453d51;
  --season-dark-highlight: #51482c;
  --season-dark-extra: #514035;
  --season-dark-action: #e1ce8d;
  --season-dark-hover: #f7e6ac;
  --season-dark-link: #dbcbf0;
}
body.season-koningsdag {
  --season-canvas: #fff3e0;
  --season-soft: #f8e0c4;
  --season-secondary: #dde9ed;
  --season-highlight: #ffedbc;
  --season-extra: #f5ddd3;
  --season-action: #eca342;
  --season-hover: #f5b75f;
  --season-action-ink: #302e29;
  --season-link: #8a481b;
  --season-dark-canvas: #30281f;
  --season-dark-soft: #543e29;
  --season-dark-secondary: #34484e;
  --season-dark-highlight: #55482b;
  --season-dark-extra: #573c32;
  --season-dark-action: #f0be75;
  --season-dark-hover: #ffd59c;
  --season-dark-link: #f5c491;
}
body.season-sinterklaas {
  --season-canvas: #fff4e5;
  --season-soft: #f0dfcf;
  --season-secondary: #e7e1ed;
  --season-highlight: #fff0bc;
  --season-extra: #f2d9d5;
  --season-action: #9b3437;
  --season-hover: #83282e;
  --season-action-ink: #fffdf5;
  --season-link: #8b3039;
  --season-dark-canvas: #2c2424;
  --season-dark-soft: #4b3a31;
  --season-dark-secondary: #3f374b;
  --season-dark-highlight: #51442a;
  --season-dark-extra: #543533;
  --season-dark-action: #e9bd82;
  --season-dark-hover: #f9d5a6;
  --season-dark-link: #f2bcb8;
}
body.season-halloween {
  --season-canvas: #fbf1df;
  --season-soft: #f1dfc2;
  --season-secondary: #e8deed;
  --season-highlight: #ffe7b0;
  --season-extra: #eed8cf;
  --season-action: #edac58;
  --season-hover: #f9c276;
  --season-action-ink: #302e29;
  --season-link: #66436f;
  --season-dark-canvas: #2c252e;
  --season-dark-soft: #50412c;
  --season-dark-secondary: #46354e;
  --season-dark-highlight: #59472a;
  --season-dark-extra: #523b33;
  --season-dark-action: #edb76f;
  --season-dark-hover: #ffd39b;
  --season-dark-link: #e2c5eb;
}
body.season-dierendag {
  --season-canvas: #f5f6e6;
  --season-soft: #e1eccd;
  --season-secondary: #e0e9e3;
  --season-highlight: #fff0c0;
  --season-extra: #efe0d4;
  --season-action: #497154;
  --season-hover: #3c6246;
  --season-action-ink: #fffdf5;
  --season-link: #365e44;
  --season-dark-canvas: #252b23;
  --season-dark-soft: #384c32;
  --season-dark-secondary: #34463f;
  --season-dark-highlight: #4f472e;
  --season-dark-extra: #4d3f33;
  --season-dark-action: #c7dfa5;
  --season-dark-hover: #dcefc1;
  --season-dark-link: #c8e5bc;
}
body.season-hemelvaart {
  --season-canvas: #f0f7f3;
  --season-soft: #e4edde;
  --season-secondary: #dcecf3;
  --season-highlight: #fff3ce;
  --season-extra: #f1e5da;
  --season-action: #386779;
  --season-hover: #2e5668;
  --season-action-ink: #fffdf5;
  --season-link: #315c72;
  --season-dark-canvas: #232b2b;
  --season-dark-soft: #3b4938;
  --season-dark-secondary: #304751;
  --season-dark-highlight: #514a31;
  --season-dark-extra: #4b4137;
  --season-dark-action: #b9dce9;
  --season-dark-hover: #d4edf6;
  --season-dark-link: #c2e4ef;
}
body.season-pinksteren {
  --season-canvas: #fff6e5;
  --season-soft: #e6edce;
  --season-secondary: #e6eaf1;
  --season-highlight: #fff0b9;
  --season-extra: #f6dfd2;
  --season-action: #b24633;
  --season-hover: #993c2b;
  --season-action-ink: #fffdf5;
  --season-link: #8b3e2d;
  --season-dark-canvas: #2b2922;
  --season-dark-soft: #3e4b33;
  --season-dark-secondary: #394151;
  --season-dark-highlight: #51472c;
  --season-dark-extra: #573d31;
  --season-dark-action: #f0c18c;
  --season-dark-hover: #ffdcaf;
  --season-dark-link: #f4c1ab;
}
body.season-moederdag {
  --season-canvas: #fff1ed;
  --season-soft: #f0dfe7;
  --season-secondary: #e8e5f1;
  --season-highlight: #fff0ce;
  --season-extra: #f8e1d6;
  --season-action: #a54260;
  --season-hover: #8f3350;
  --season-action-ink: #fffdf5;
  --season-link: #8a3b58;
  --season-dark-canvas: #2e252b;
  --season-dark-soft: #4e3b48;
  --season-dark-secondary: #413e50;
  --season-dark-highlight: #50452e;
  --season-dark-extra: #543e34;
  --season-dark-action: #edbed1;
  --season-dark-hover: #ffdbe6;
  --season-dark-link: #edc8dc;
}
body.season-vaderdag {
  --season-canvas: #f1f5ec;
  --season-soft: #e1e9d5;
  --season-secondary: #deebf1;
  --season-highlight: #fff0c7;
  --season-extra: #eee1d4;
  --season-action: #3b6b81;
  --season-hover: #30596d;
  --season-action-ink: #fffdf5;
  --season-link: #345d73;
  --season-dark-canvas: #242b2a;
  --season-dark-soft: #3a4833;
  --season-dark-secondary: #324852;
  --season-dark-highlight: #50472f;
  --season-dark-extra: #4e4135;
  --season-dark-action: #bcdce7;
  --season-dark-hover: #d9eef5;
  --season-dark-link: #c3e2ec;
}
body.season-bevrijdingsdag {
  --season-canvas: #f6f4e9;
  --season-soft: #e5ebd9;
  --season-secondary: #e1eaf2;
  --season-highlight: #fff0bd;
  --season-extra: #f2ded9;
  --season-action: #315f8c;
  --season-hover: #264e78;
  --season-action-ink: #fffdf5;
  --season-link: #315879;
  --season-dark-canvas: #25292c;
  --season-dark-soft: #3b4735;
  --season-dark-secondary: #344652;
  --season-dark-highlight: #51472d;
  --season-dark-extra: #513b37;
  --season-dark-action: #bbd4e8;
  --season-dark-hover: #d5e8f6;
  --season-dark-link: #c4ddf0;
}

body:is(.season-kerst, .season-nieuwjaar, .season-valentijn, .season-pasen, .season-koningsdag, .season-sinterklaas, .season-halloween, .season-dierendag, .season-hemelvaart, .season-pinksteren, .season-moederdag, .season-vaderdag, .season-bevrijdingsdag) {
  --cream: var(--season-canvas);
  --paper: #fffdf7;
  --ink: #302e29;
  --muted: #655d51;
  --olive: var(--season-link);
  --sage: var(--season-soft);
  --line: #a59c86;
  --clay: var(--season-link);
  --yellow: var(--season-action);
  --action: var(--season-action);
  --action-ink: var(--season-action-ink);
  --action-hover: var(--season-hover);
  --surface-green: var(--season-soft);
  --surface-yellow: var(--season-highlight);
  --surface-coral: var(--season-extra);
  --surface-blue: var(--season-secondary);
  --surface-muted: var(--season-soft);
  --field: #fffef9;
  --field-line: #6b6254;
  --danger: #96392c;
  --danger-soft: #fbe3d8;
  --warning-ink: #6e4b0c;
  --success-ink: #3a5327;
  --comic-outline: #37342c;
  --comic-shadow: #37342c;
  --dock: var(--season-canvas);
  --dock-line: #37342c;
  --app-accent: var(--season-action);
  --app-accent-ink: var(--season-action-ink);
}
body:is(.season-kerst, .season-nieuwjaar, .season-valentijn, .season-pasen, .season-koningsdag, .season-sinterklaas, .season-halloween, .season-dierendag, .season-hemelvaart, .season-pinksteren, .season-moederdag, .season-vaderdag, .season-bevrijdingsdag)[data-theme="dark"], body.display-home:is(.season-kerst, .season-nieuwjaar, .season-valentijn, .season-pasen, .season-koningsdag, .season-sinterklaas, .season-halloween, .season-dierendag, .season-hemelvaart, .season-pinksteren, .season-moederdag, .season-vaderdag, .season-bevrijdingsdag) {
  --cream: var(--season-dark-canvas);
  --paper: #30332b;
  --ink: #fff5dd;
  --muted: #d2cbb7;
  --olive: var(--season-dark-link);
  --sage: var(--season-dark-soft);
  --line: #898472;
  --clay: var(--season-dark-link);
  --yellow: var(--season-dark-action);
  --action: var(--season-dark-action);
  --action-ink: #302e29;
  --action-hover: var(--season-dark-hover);
  --surface-green: var(--season-dark-soft);
  --surface-yellow: var(--season-dark-highlight);
  --surface-coral: var(--season-dark-extra);
  --surface-blue: var(--season-dark-secondary);
  --surface-muted: var(--season-dark-soft);
  --field: var(--season-dark-canvas);
  --field-line: #a69d86;
  --danger: #ffc0a3;
  --danger-soft: #57382f;
  --warning-ink: #ffe296;
  --success-ink: #d6edb4;
  --comic-outline: #b6ae91;
  --comic-shadow: #10130d;
  --dock: var(--season-dark-canvas);
  --dock-line: #b6ae91;
  --app-accent: var(--season-dark-action);
  --app-accent-ink: #302e29;
}
@media (prefers-color-scheme: dark) {
  body:is(.season-kerst, .season-nieuwjaar, .season-valentijn, .season-pasen, .season-koningsdag, .season-sinterklaas, .season-halloween, .season-dierendag, .season-hemelvaart, .season-pinksteren, .season-moederdag, .season-vaderdag, .season-bevrijdingsdag)[data-theme="system"] {
  --cream: var(--season-dark-canvas);
  --paper: #30332b;
  --ink: #fff5dd;
  --muted: #d2cbb7;
  --olive: var(--season-dark-link);
  --sage: var(--season-dark-soft);
  --line: #898472;
  --clay: var(--season-dark-link);
  --yellow: var(--season-dark-action);
  --action: var(--season-dark-action);
  --action-ink: #302e29;
  --action-hover: var(--season-dark-hover);
  --surface-green: var(--season-dark-soft);
  --surface-yellow: var(--season-dark-highlight);
  --surface-coral: var(--season-dark-extra);
  --surface-blue: var(--season-dark-secondary);
  --surface-muted: var(--season-dark-soft);
  --field: var(--season-dark-canvas);
  --field-line: #a69d86;
  --danger: #ffc0a3;
  --danger-soft: #57382f;
  --warning-ink: #ffe296;
  --success-ink: #d6edb4;
  --comic-outline: #b6ae91;
  --comic-shadow: #10130d;
  --dock: var(--season-dark-canvas);
  --dock-line: #b6ae91;
  --app-accent: var(--season-dark-action);
  --app-accent-ink: #302e29;
}
}

/* Explicit hidden states must win over the component layout declarations below. */
.season-banner[hidden], .season-preview-badge[hidden], .season-replay[hidden],
.season-secondary[hidden], .season-celebration[hidden] { display: none !important; }

/* A compact welcome panel. The illustration sits beside the information. */
.season-banner {
  display: grid; grid-template-columns: 116px minmax(0, 1fr) auto;
  align-items: center; gap: 18px 22px; margin: 22px 0 26px; padding: 18px 22px;
  border: 2px solid var(--comic-outline); border-radius: 15px;
  background: linear-gradient(105deg, var(--surface-blue), var(--surface-yellow));
  color: var(--ink); box-shadow: var(--shadow);
}
.season-art {
  display: block; width: 116px; max-width: 100%; height: auto; aspect-ratio: 1;
  object-fit: contain; border-radius: 18px;
  background: radial-gradient(circle, #fff9e8 0 55%, transparent 72%);
}
.season-copy { min-width: 0; }
.season-eyebrow {
  margin: 0 0 5px; color: var(--olive); font: 800 .7rem/1.5 var(--sans);
  letter-spacing: .08em; text-transform: uppercase;
}
.season-title {
  margin: 0 0 8px; font: 700 clamp(1.35rem, 2.3vw, 1.85rem)/1.25 var(--serif);
  letter-spacing: -.025em; color: var(--ink);
}
.season-message { max-width: 66ch; margin: 0; color: var(--muted); font-size: .94rem; line-height: 1.55; }
.season-secondary { margin-top: 8px; font-size: .85rem; }
.season-preview-exit { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; font-size: .85rem; }
.season-copy > .season-preview-badge:first-child { margin: 0 0 8px; }
.season-preview-badge {
  display: inline-flex; align-items: center; gap: 6px; margin: 10px 8px 0 0; padding: 4px 9px;
  border: 1px solid var(--comic-outline); border-radius: 7px;
  background: var(--paper); color: var(--ink); font-size: .75rem; font-weight: 700; line-height: 1.5;
}
.season-replay {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-width: 44px; min-height: 44px; padding: 9px 13px; margin: 0;
  border: 2px solid var(--comic-outline); border-radius: 9px;
  background: var(--paper); color: var(--olive); box-shadow: 2px 2px 0 var(--comic-shadow);
  font: 700 .85rem/1.35 var(--sans); text-decoration: none; cursor: pointer;
}
.season-replay:hover { background: var(--surface-yellow); color: var(--ink); }
.season-copy .season-replay { margin-top: 12px; }
.season-replay:focus-visible, .season-option:focus-visible {
  outline: 3px solid var(--clay); outline-offset: 4px;
}
.season-replay[disabled] { opacity: .65; cursor: default; }

/* A keyboard-friendly list of previews in the app settings. */
.season-calendar { display: grid; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); gap: 12px; margin: 20px 0 0; padding: 0; list-style: none; }
.season-calendar > li { min-width: 0; margin: 0; padding: 0; }
.season-option {
  display: grid; grid-template-columns: 24px minmax(0, 1fr); align-content: start; gap: 4px 10px;
  min-height: 112px; padding: 13px 14px; border: 2px solid var(--comic-outline); border-radius: 10px;
  background: var(--paper); color: var(--ink); box-shadow: 2px 2px 0 var(--comic-shadow);
  text-decoration: none; font-size: .94rem; line-height: 1.4;
}
.season-option > span:first-child { grid-column: 1; grid-row: 1 / 4; font-size: 1.4rem; color: var(--olive); }
.season-option > :is(strong, small, .season-option-action) { grid-column: 2; min-width: 0; }
.season-option strong { display: block; font-weight: 750; }
.season-option-action { color: var(--olive); font-size: .78rem; margin-top: 3px; }
.season-option small { color: var(--muted); font-size: .78rem; }
.season-option:hover { background: var(--surface-blue); color: var(--ink); }
.season-option[aria-current], .season-option.is-current {
  background: var(--surface-yellow); color: var(--ink); outline: 1px solid var(--comic-outline); outline-offset: -5px;
}
.season-calendar > .season-option { height: 100%; }

/* Brief decoration stays at the two screen edges, away from the readable centre. */
.season-celebration {
  position: fixed; inset: 0; z-index: 60; overflow: hidden; pointer-events: none;
  contain: strict; opacity: .8;
  -webkit-mask-image: linear-gradient(to right, #000 0, #000 18px, transparent 64px, transparent calc(100% - 64px), #000 calc(100% - 18px));
  mask-image: linear-gradient(to right, #000 0, #000 18px, transparent 64px, transparent calc(100% - 64px), #000 calc(100% - 18px));
}
.season-particle {
  position: absolute; top: -30px; left: var(--x, 8px); display: block;
  width: 24px; height: 24px; color: var(--olive); opacity: 0;
  font: 700 var(--size, 18px)/1 var(--serif); text-align: center;
  text-shadow: 0 1px 0 var(--paper); transform: translateY(-30px);
}
.season-particle:nth-child(2n) { left: auto; right: var(--x, 8px); }
.season-particle:nth-child(3n) { color: var(--yellow); }
.season-particle:nth-child(4n) { color: var(--clay); }
.season-particle:nth-child(5n) { --x: 26px; }
.season-particle:empty::before { content: '✦'; }
.season-celebration[data-motion="snow"] .season-particle:empty::before { content: '❄'; }
.season-celebration[data-motion="hearts"] .season-particle:empty::before { content: '♥'; }
.season-celebration[data-motion="petals"] .season-particle:empty::before { content: '❀'; }
.season-celebration[data-motion="confetti"] .season-particle:empty::before { content: '▪'; }
@media (prefers-reduced-motion: no-preference) {
  @keyframes fasch-season-drift {
    0% { opacity: 0; transform: translate3d(0, -20px, 0) rotate(-12deg); }
    8% { opacity: .8; }
    82% { opacity: .65; }
    100% { opacity: 0; transform: translate3d(var(--drift, 8px), calc(100vh + 60px), 0) rotate(120deg); }
  }
  .season-particle {
    animation: fasch-season-drift 6.6s ease-out var(--delay, 0s) 1 both;
  }
  .season-particle:nth-child(3n + 1) { --delay: .15s; --drift: -8px; }
  .season-particle:nth-child(3n + 2) { --delay: .3s; --drift: 6px; }
  .season-replay:active { transform: translate(2px, 2px); box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) {
  .season-celebration { visibility: hidden; }
  .season-particle { animation: none; }
}
@media (max-width: 760px) {
  .page-home .site-header .quick-add-button { display: none; }
  .season-banner .season-message { display: none; }
  .season-preview-exit { font-size: .78rem; }
  .season-banner {
    grid-template-columns: 84px minmax(0, 1fr); gap: 14px; margin: 18px 0 22px; padding: 16px;
    border-radius: 12px;
  }
  .season-art { width: 84px; }
  .season-title { font-size: 1.3rem; }
  .season-message { font-size: .87rem; }
  .season-banner > .season-replay { grid-column: 2; justify-self: start; }
  .season-calendar { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
  .season-option { padding: 12px; font-size: .88rem; }
  .season-celebration {
    -webkit-mask-image: linear-gradient(to right, #000 0, transparent 24px, transparent calc(100% - 24px), #000 100%);
    mask-image: linear-gradient(to right, #000 0, transparent 24px, transparent calc(100% - 24px), #000 100%);
  }
  .season-particle { --size: 14px; }
}
@media (max-width: 380px) {
  .season-banner { grid-template-columns: 68px minmax(0, 1fr); padding: 14px; gap: 11px; }
  .season-art { width: 68px; }
  .season-title { font-size: 1.17rem; }
  .season-eyebrow { font-size: .62rem; }
  .season-calendar { grid-template-columns: 1fr; }
}
@media print {
  .season-celebration, .season-replay, .season-preview-badge { display: none; }
  .season-banner { background: #fff; color: #222; border-color: #555; box-shadow: none; }
}
