/* Complete interface tokens; the classic palette is the opt-out fallback. */
:root{--surface:#fff;--field:#fff;--chrome:#f8f6f0;--chrome-ink:#253d34;--accent:#ad7840;--button-ink:#fff;--shadow:#263d3417;--backdrop:#12271fcc;--danger-surface:#fbe5e0;--danger-ink:#913c32;--danger-line:#dfb1aa;color-scheme:light}
:root[data-holiday="halloween"]{--cream:#19121f;--ink:#fff0df;--muted:#cdbed5;--line:#554261;--green:#ffac53;--gold:#ffbb6e;--soft:#302138;--soft-line:#654870;--surface:#25192e;--field:#201729;--chrome:#100c16;--chrome-ink:#fff0df;--accent:#f19940;--button-ink:#26162c;--accent-light:#26162c;--shadow:#0005;--backdrop:#09060ddb;--art-bg:#21132c;--art-first:#ce711e;--art-second:#83975a;--art-third:#6b478d;--art-symbol:#ffe7be;--danger-surface:#502732;--danger-ink:#ffbbc1;--danger-line:#9d5a67;--red:#ffbbc1;color-scheme:dark}
:root[data-holiday="thanksgiving"]{--cream:#f5e7d1;--ink:#432a1d;--muted:#72563f;--line:#d3b99a;--green:#824027;--gold:#895214;--soft:#eddbc0;--soft-line:#ccb08a;--surface:#fff6e6;--field:#fffbf2;--chrome:#563320;--chrome-ink:#fff0d7;--accent:#be792a;--shadow:#56332020;--backdrop:#352012cc}
:root[data-holiday="christmas"]{--cream:#edf2e8;--ink:#233d2c;--muted:#576b59;--line:#c5d3be;--green:#9d303a;--gold:#876521;--soft:#e0ead7;--soft-line:#bbcfb0;--surface:#fffdf4;--field:#fffef8;--chrome:#1d4433;--chrome-ink:#fff2d4;--accent:#c1923f;--shadow:#193c2420;--backdrop:#10281dd4;--accent-light:#fff0cf}
:root[data-holiday="new-year"]{--cream:#121c30;--ink:#f7efd9;--muted:#bcc9e0;--line:#455676;--green:#edc574;--gold:#edc574;--soft:#23314d;--soft-line:#536586;--surface:#1b2841;--field:#162239;--chrome:#0b1324;--chrome-ink:#fff1d0;--accent:#d7ad58;--button-ink:#182339;--accent-light:#182339;--shadow:#0004;--backdrop:#070c17db;--danger-surface:#4b283d;--danger-ink:#ffc2ce;--danger-line:#985d77;--red:#ffc2ce;color-scheme:dark}
:root[data-holiday="valentine"]{--cream:#fbe6ee;--ink:#58293d;--muted:#875568;--line:#dfb5c5;--green:#982f53;--gold:#a23157;--soft:#f5d5e2;--soft-line:#dca7bb;--surface:#fff5f8;--field:#fffbfd;--chrome:#772443;--chrome-ink:#fff0f5;--accent:#d77998;--shadow:#7724431d;--backdrop:#431427ce}
:root[data-holiday="st-patrick"]{--cream:#e7f0de;--ink:#25432b;--muted:#576e4c;--line:#bcd0aa;--green:#246540;--gold:#816019;--soft:#d9e8c9;--soft-line:#abc792;--surface:#f8fbed;--field:#fefff7;--chrome:#17472e;--chrome-ink:#f8edce;--accent:#c89d3d;--shadow:#17472e20;--backdrop:#0e2a1bcc}
:root[data-holiday="easter"]{--cream:#f1e7f8;--ink:#48315a;--muted:#765d86;--line:#d3bbdf;--green:#785090;--gold:#925b28;--soft:#e7d5f0;--soft-line:#c6a7d7;--surface:#fff8f2;--field:#fffcfa;--chrome:#674579;--chrome-ink:#fff2e1;--accent:#ddad60;--shadow:#6745791c;--backdrop:#352340cc}
:root[data-holiday="independence"]{--cream:#e8eef7;--ink:#263e5b;--muted:#586d88;--line:#c1cfe1;--green:#a33138;--gold:#a33138;--soft:#dce5f2;--soft-line:#b7c9e1;--surface:#fbfcff;--field:#fff;--chrome:#243e67;--chrome-ink:#fff4df;--accent:#cb5557;--shadow:#243e6720;--backdrop:#122239d4;--accent-light:#fff2d8}
body{background:var(--cream);color:var(--ink);accent-color:var(--green)}
header{background:var(--chrome);border-bottom:3px solid var(--accent);border-radius:0 0 16px 16px}
header .brand,header .nav,header .icon-button{color:var(--chrome-ink)}
header .nav.active{background:color-mix(in srgb,var(--accent) 24%,var(--chrome));color:var(--chrome-ink)}
.brand-mark{background:var(--green);color:var(--accent-light)}
.intro{position:relative;isolation:isolate}.intro>div,.intro>.primary{position:relative;z-index:1}
.season-watermark{position:absolute;right:180px;top:-12px;width:130px;height:130px;pointer-events:none;color:var(--accent);opacity:.14;z-index:0}.season-watermark svg{width:100%;height:100%;fill:currentColor}
.primary,.chip.include,#toast{background:var(--green);border-color:var(--green);color:var(--button-ink)}
.primary:hover{background:var(--green);filter:brightness(.93)}
.secondary,.item-card,.tote-card,.search,.chip,.detail-info span,.detail-info button{background:var(--surface);border-color:var(--line);color:var(--ink)}
.secondary:hover{background:var(--soft)}
.item-card,.tote-card{box-shadow:0 4px 16px var(--shadow)}.item-card:hover{box-shadow:0 8px 22px var(--shadow)}
input,select,textarea,.tag-tools input{background:var(--field);color:var(--ink);border-color:var(--line)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}
input:focus,textarea:focus,select:focus,.tag-entry:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 22%,transparent)}
input[type=checkbox]{accent-color:var(--green)}
.search input{background:transparent;box-shadow:none}.result-bar select{background:transparent}
.filter-panel,.empty,.upload{background:var(--soft);border-color:var(--soft-line)}
.filter-panel{border-left:4px solid var(--accent)}
.card-body .chip,.selected-tag,.title-suggestion{background:var(--soft);color:var(--ink);border-color:var(--soft-line)}
.card-photo,.detail-gallery img{background:var(--soft)}
.tote-badge{background:var(--chrome);color:var(--chrome-ink);border:1px solid var(--accent)}
.photo-count{background:var(--green);color:var(--button-ink)}
.chip.include{background:var(--green);color:var(--button-ink)}
.chip.exclude{background:var(--danger-surface);color:var(--danger-ink);border-color:var(--danger-line)}
.dialog-top{border-bottom:1px solid var(--line);padding-bottom:12px}dialog{background:var(--surface);border-color:var(--line);color:var(--ink)}dialog::backdrop{background:var(--backdrop)}
.tag-entry,.tag-autocomplete,.tag-autocomplete button{background:var(--field);color:var(--ink);border-color:var(--line)}
.tag-autocomplete button:hover,.tag-autocomplete button[aria-selected=true]{background:var(--soft)}
.edit-photo button{background:var(--danger-surface);color:var(--danger-ink)}
.placeholder svg,.empty-symbol svg{width:60px;height:60px;fill:currentColor}.placeholder,.empty-symbol{color:var(--green);opacity:.75}
.season-badge{background:var(--soft);color:var(--green);border-color:var(--soft-line)}
.theme-setting{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);border-radius:10px;padding:16px;margin:20px 0;background:var(--soft)}
.theme-setting label{font-size:14px;margin:0;cursor:pointer}.theme-setting small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:5px}
#holiday-theme-toggle{appearance:none;width:48px;height:28px;min-height:28px;flex:0 0 48px;border:1px solid var(--line);border-radius:20px;padding:3px;background:var(--field);cursor:pointer;position:relative;margin:0}
#holiday-theme-toggle::before{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--muted)}
#holiday-theme-toggle:checked{background:var(--green);border-color:var(--green)}#holiday-theme-toggle:checked::before{left:23px;background:var(--button-ink)}
#theme-preference-status{margin:-10px 0 17px;font-size:12px;color:var(--muted)}#theme-preference-status:empty{display:none}
[data-holiday=classic] header{border-bottom:1px solid var(--line);border-radius:0}[data-holiday=classic] .filter-panel{border-left:1px solid var(--soft-line)}
/* Paper labels always remain the requested three elements, in black and white. */
.label{background:#fff;color:#111}.label .label-title,.label .tote-code{color:#111}
@media(max-width:700px){.season-watermark{right:0;top:5px;width:100px;height:100px;opacity:.1}.theme-setting{gap:16px}}
@media print{:root{color-scheme:light}body,#labels-dialog,.label{background:#fff;color:#111}.label .label-title,.label .tote-code{color:#111}.season-watermark{display:none}}
.brand-mark svg [fill="var(--art-bg)"]{fill:var(--green)}.brand-mark svg [stroke="var(--art-bg)"]{stroke:var(--green)}
