/* ================================================================
   themes/christmas.css — seasonal palette

   Pine carries the brand and cranberry the accents. Red stays off the
   primary actions so a seasonal button never reads like the delete
   button beside it. Like thanksgiving.css this file is overrides only:
   danger, validation and allergen severity keep their default values.

   Loaded after default.css; [data-theme="christmas"] and :root carry
   the same specificity, so source order decides and this wins.
   ================================================================ */

[data-theme="christmas"] {
    /* ── Primitive palette ───────────────────────────────────────── */
    --palette-white:           #FFFFFF;
    --palette-snow:            #FAF9F5;
    --palette-whisper:         #FDFDFB;
    --palette-frost:           #F3F6F2;
    --palette-ice:             #E6EDE7;
    --palette-icicle:          #D3DED6;
    --palette-sleet:           #C2D0C6;
    --palette-slush:           #8E9B93;

    --palette-ink:             #18261F;
    --palette-ink-soft:        #33443A;
    --palette-ink-mid:         #4A5B51;
    --palette-ink-muted:       #5A6A61;
    --palette-ink-faint:       #7E8C84;

    --palette-pine:            #1F5C3D;
    --palette-pine-lit:        #2B7350;
    --palette-pine-deep:       #174A30;
    --palette-pine-darker:     #103522;
    --palette-pine-tint:       #5E9A78;
    --palette-pine-mint:       #9FD3B0;
    --palette-pine-frost:      #C3E6CF;
    --palette-pine-wash:       #EAF2EC;

    --palette-cranberry:       #A3203A;
    --palette-cranberry-lit:   #B8344D;
    --palette-cranberry-deep:  #861A30;
    --palette-cranberry-night: #4A0F1E;
    --palette-cranberry-tint:  #E7A3B0;
    --palette-cranberry-wash:  #FBEEF0;
    /* Ornament red. Decorative only: it is too close to the danger red to
       carry meaning. */
    --palette-holly:           #C8102E;

    /* Gold is ornament at full strength (3.2:1 on white); anything that
       carries a shape or a word uses the deep or dark member. */
    --palette-gold:            #B8862B;
    --palette-gold-deep:       #8A6414;
    --palette-gold-dark:       #7A5710;
    --palette-gold-lit:        #E8B84A;
    --palette-gold-soft:       #F3DFA8;
    --palette-gold-wash:       #FBF4E2;

    /* Night forest for the footer and inverse surfaces; cranberry night for
       the dark band, so the two dark surfaces on a page differ. */
    --palette-forest-night:    #0F2117;
    --palette-forest-deep:     #08150E;
    --palette-forest-hover:    #1A3326;

    /* ── Page & surfaces ─────────────────────────────────────────── */
    --body-bg:        var(--palette-snow);
    --body-text:      var(--palette-ink);
    --page-bg:        var(--palette-snow);
    --surface-bg:     var(--palette-whisper);
    --surface-raised: var(--palette-white);
    --surface-muted:  var(--palette-ice);
    --surface-sunken: var(--palette-frost);

    --surface-inverse:       var(--palette-forest-night);
    --surface-inverse-deep:  var(--palette-forest-deep);
    --surface-inverse-hover: var(--palette-forest-hover);
    --surface-inverse-text:  var(--palette-white);
    --surface-inverse-alt:   var(--palette-pine-darker);

    /* ── Section rhythm ──────────────────────────────────────────── */
    --hero-bg:          var(--palette-snow);
    --band-bg:          var(--palette-pine-wash);
    --band-border:      #CFE0D4;
    --band-text-muted:  var(--palette-ink-mid);
    --section-alt-bg:   var(--palette-whisper);
    --section-dark-bg:  var(--palette-cranberry-night);
    --card-fill:        #F4F8F5;
    --card-fill-border: var(--palette-icicle);
    --btn-secondary-fill:       var(--palette-gold-wash);
    --btn-secondary-fill-hover: var(--palette-gold-soft);

    --scrim-rgb: 15, 33, 23;

    --fill-neutral:     rgba(74, 91, 81, 0.10);
    --chip-inactive-bg: rgba(194, 208, 198, 0.50);
    --card-border:      rgba(31, 92, 61, 0.18);
    --outline-accent:   rgba(184, 134, 43, 0.40);

    --hero-fallback-from: var(--palette-pine-lit);
    --hero-fallback-mid:  var(--palette-pine);
    --hero-fallback-to:   var(--palette-pine-darker);

    --on-inverse-warm-rgb: 255, 250, 240;
    --link-on-inverse-hover: var(--palette-gold-lit);
    --footer-brand-hover:    var(--link-on-inverse-hover);
    --label-on-inverse:      var(--palette-gold-lit);

    /* ── Gate pages ──────────────────────────────────────────────── */
    --gate-bg:            #07110B;
    --gate-surface:       var(--palette-forest-night);
    --gate-surface-hover: #15301F;
    --gate-field-bg:      #050D08;
    --gate-text:          #F2F5F0;
    --gate-text-mid:      #B5C7BB;
    --gate-text-muted:    #8FA597;
    --gate-text-faint:    #4F6657;
    --gate-placeholder:   #3E5446;
    --gate-accent:        var(--palette-gold-lit);
    --gate-accent-text:   #1A1306;
    --gate-success:       #6FCF97;
    --gate-success-rgb:   111, 207, 151;

    /* ── Text ────────────────────────────────────────────────────── */
    --text-primary:   var(--palette-ink);
    --text-secondary: var(--palette-ink-soft);
    --text-subtle:    var(--palette-ink-mid);
    --text-muted:     var(--palette-ink-muted);
    --text-faint:     var(--palette-ink-faint);
    --text-inverse:   var(--palette-white);
    --text-on-brand:  var(--palette-white);
    --text-on-accent: var(--palette-white);

    --text-neutral:       var(--palette-ink-mid);
    --text-neutral-faint: var(--palette-ink-faint);
    --border-neutral:     var(--palette-sleet);

    /* ── Borders ─────────────────────────────────────────────────── */
    --border-subtle:  var(--palette-icicle);
    --border-default: var(--palette-sleet);
    --border-strong:  var(--palette-slush);
    --divider:        #DDE6DF;

    /* ── Brand ───────────────────────────────────────────────────── */
    --brand-primary:        var(--palette-pine);
    --brand-primary-rgb:    31, 92, 61;
    --brand-primary-hover:  var(--palette-pine-lit);
    --brand-primary-active: var(--palette-pine-deep);
    --brand-primary-deep:   var(--palette-pine-darker);
    --brand-primary-shade:  var(--palette-pine-darker);
    --brand-primary-tint:   var(--palette-pine-tint);
    --brand-on-inverse:       var(--palette-pine-mint);
    --brand-on-inverse-hover: var(--palette-pine-frost);

    /* "Accepted" badges and success-adjacent marks: a lighter pine, so they
       read as related to the brand without being the brand. */
    --brand-secondary:        var(--palette-pine-lit);
    --brand-secondary-rgb:    43, 115, 80;
    --brand-secondary-subtle: rgba(var(--brand-secondary-rgb), 0.12);

    --brand-tertiary:      var(--palette-cranberry);
    --avatar-gradient-to:  var(--palette-cranberry);

    /* ── Accents ─────────────────────────────────────────────────── */
    --accent-primary:         var(--palette-cranberry);
    --accent-primary-rgb:     163, 32, 58;
    --accent-primary-hover:   var(--palette-cranberry-deep);
    --accent-primary-subtle:  rgba(var(--accent-primary-rgb), 0.12);
    --accent-secondary:       var(--palette-holly);
    --accent-secondary-rgb:   200, 16, 46;
    --accent-secondary-light: var(--palette-cranberry-tint);

    --accent-harvest:        var(--palette-cranberry);
    --accent-harvest-rgb:    163, 32, 58;
    --accent-harvest-subtle: rgba(var(--accent-harvest-rgb), 0.10);
    --accent-gold:           var(--palette-gold-deep);
    --accent-gold-rgb:       138, 100, 20;
    --accent-tertiary:       var(--palette-pine-lit);
    --accent-tertiary-rgb:   43, 115, 80;

    --highlight-bg:   var(--palette-gold-soft);
    --highlight-text: var(--palette-ink);

    /* ── Actions ─────────────────────────────────────────────────── */
    --action-secondary-bg:     transparent;
    --action-secondary-text:   var(--text-secondary);
    --action-secondary-border: var(--border-default);
    --action-secondary-hover:  var(--surface-muted);

    --action-neutral-bg:   var(--palette-ink-mid);
    --action-neutral-text: var(--palette-white);

    --action-disabled-bg:     var(--palette-ice);
    --action-disabled-text:   var(--palette-ink-faint);
    --action-disabled-border: var(--palette-sleet);

    /* ── Status ──────────────────────────────────────────────────────
       Hue stays with the meaning; only neutrals and notices pick up the
       palette. */
    --status-neutral-fg:     var(--palette-ink-mid);
    --status-neutral-bg:     rgba(74, 91, 81, 0.10);
    --status-neutral-border: var(--border-subtle);

    --notice-urgent-bg:     var(--palette-cranberry-wash);
    --notice-urgent-border: #EFC9D1;

    --badge-new-bg:     var(--palette-pine-wash);
    --badge-new-border: #C5DFCD;
    --badge-new-text:   var(--palette-pine-deep);

    --toggle-track-off: var(--palette-ink-faint);

    --sponsored-accent:       var(--palette-pine-deep);
    --media-placeholder-bg:   var(--palette-frost);
    --media-placeholder-icon: var(--palette-sleet);
    --skeleton-base:  #E9EFEA;
    --skeleton-shine: #F4F8F5;

    --preview-bar-bg:   var(--palette-gold-lit);
    --preview-bar-text: #1A1306;

    /* ── Long-form reading surfaces ──────────────────────────────── */
    --editorial-bg:          var(--palette-snow);
    --editorial-surface:     var(--palette-white);
    --editorial-surface-alt: #F4F7F3;
    --editorial-fill:        #EDF2EE;
    --editorial-fill-alt:    #E4EBE6;
    --editorial-border:      #D8E2DB;
    --editorial-border-soft: #E3EAE5;
    --editorial-border-dash: #E3EAE5;
    --editorial-hover-fill:  #E6EDE8;
    --editorial-ghost-bg:    #F1F5F2;
    --editorial-media-bg:    #EEF3EF;
    --editorial-rule:        var(--palette-sleet);
    --editorial-article-bg:     var(--editorial-surface);
    --editorial-article-radius: 14px;
    --editorial-article-pad-b:  32px;
    --editorial-text:        var(--palette-ink);
    --editorial-text-strong: #0E1813;
    --editorial-text-soft:   var(--palette-ink-soft);
    --editorial-text-mid:    var(--palette-ink-mid);
    --editorial-text-muted:  var(--palette-ink-mid);
    --editorial-text-faint:  var(--palette-ink-muted);
    --editorial-text-dim:    var(--palette-ink-faint);

    --editorial-cta-from:   var(--palette-cranberry-wash);
    --editorial-cta-to:     #F6FAF7;
    --editorial-cta-border: #EBCFD5;

    --editorial-notice-bg:     var(--palette-gold-wash);
    --editorial-notice-border: #EEDDB0;
    --editorial-notice-text:   var(--palette-gold-dark);
    --editorial-paused-bg:     #FBF0D6;
    --editorial-paused-fg:     var(--palette-gold-dark);
    --editorial-paused-dot:    var(--palette-gold);
    --editorial-retired-bg:    #EEF2EF;
    --editorial-retired-fg:    var(--palette-ink-mid);
    --editorial-retired-dot:   #9AA79F;

    /* ── Forms ───────────────────────────────────────────────────── */
    --field-bg:            var(--surface-raised);
    --field-border:        var(--palette-ink-faint);
    --field-border-focus:  var(--brand-primary);
    --field-placeholder:   var(--text-muted);
    --field-focus-ring:    rgba(var(--brand-primary-rgb), 0.18);
    --field-disabled-bg:   var(--palette-frost);
    --field-disabled-text: var(--palette-ink-faint);

    --focus-ring: var(--brand-primary);

    /* ── Elevation ───────────────────────────────────────────────── */
    --shadow-color-rgb: 15, 33, 23;

    /* ── Bootstrap bridge ────────────────────────────────────────────
       Secondary buttons go slate-green rather than cranberry: Bootstrap's
       secondary is a quiet action, and red would make it shout. */
    --bs-link:       var(--palette-pine);
    --bs-link-hover: var(--palette-pine-deep);

    --bs-primary-bg:        var(--palette-pine);
    --bs-primary-fg:        var(--palette-white);
    --bs-primary-border:    var(--palette-pine);
    --bs-primary-hover:     var(--palette-pine-lit);
    --bs-primary-active:    var(--palette-pine-deep);
    --bs-primary-focus-rgb: 43, 115, 80;

    --bs-secondary-bg:        var(--palette-ink-mid);
    --bs-secondary-fg:        var(--palette-white);
    --bs-secondary-border:    var(--palette-ink-mid);
    --bs-secondary-hover:     #3D4C43;
    --bs-secondary-active:    var(--palette-ink-soft);
    --bs-secondary-focus-rgb: 74, 91, 81;

    --bs-field-bg:           var(--palette-white);
    --bs-field-fg:           var(--palette-ink);
    --bs-field-border:       var(--palette-ink-faint);
    --bs-field-focus-border: var(--palette-pine-lit);
    --bs-field-focus-rgb:    43, 115, 80;
    --bs-field-disabled-bg:  var(--palette-frost);

    --bs-alert-success-fg:   #1F5232; --bs-alert-success-bg:   #E3F0E6; --bs-alert-success-border:   #C9E2D0;
    --bs-alert-info-fg:      #0F4C5C; --bs-alert-info-bg:      #E1F1F5; --bs-alert-info-border:      #C4E3EB;
    --bs-alert-warning-fg:   #664D03; --bs-alert-warning-bg:   #FBF1D6; --bs-alert-warning-border:   #F2E2B0;
    --bs-alert-secondary-fg: #3F4A44; --bs-alert-secondary-bg: #E9EEEA; --bs-alert-secondary-border: #D6DED9;

    /* ── Admin console ───────────────────────────────────────────────
       Stays dark; only the accents move. */
    --adm-accent:      #C23B54;
    --adm-accent-rgb:  194, 59, 84;
    --adm-accent-lt:   #E0667D;
    --adm-accent-soft: #F0A3B1;
    --adm-gold:        var(--palette-gold-lit);
    --adm-gold-rgb:    232, 184, 74;
    --adm-gold-soft:   var(--palette-gold-soft);
    --adm-on-medal:    #1A1306;
}
