/* Request Hub seasonal themes. All overrides are opt-in and preserve geometry. */
html[data-theme="christmas_light"]{
 color-scheme:light;
 --theme-page:#eaf0f0;--theme-page-top:#e7eff1;--theme-page-bottom:#f4f2ea;--theme-glow:#d4e5de;
 --theme-surface:#fffdf8;--theme-surface-soft:#f4f5ee;--theme-surface-strong:#fffefa;--theme-surface-hover:#e9eee5;
 --theme-text:#263d32;--theme-text-2:#46574c;--theme-muted:#607064;--theme-line:#d5ded2;--theme-line-strong:#acbcac;
 --theme-accent:#aa3442;--theme-accent-2:#be4651;--theme-accent-3:#477956;--theme-accent-soft:#f8e7e8;
 --theme-success:#18744c;--theme-success-soft:#e4f2e9;--theme-danger:#b6303e;--theme-danger-soft:#fce9ea;--theme-warning:#996009;--theme-warning-soft:#faf0d7;
 --theme-shadow:0 8px 24px #294b3c0c;--seasonal-button-text:#fff;--seasonal-gold:#966b28;
}
html[data-theme="christmas_night"]{
 color-scheme:dark;
 --theme-page:#101e21;--theme-page-top:#192c32;--theme-page-bottom:#0c181d;--theme-glow:#294942;
 --theme-surface:#1b2c29;--theme-surface-soft:#233630;--theme-surface-strong:#21332e;--theme-surface-hover:#30463b;
 --theme-text:#f5eedc;--theme-text-2:#e0ddcf;--theme-muted:#b3c2b8;--theme-line:#425247;--theme-line-strong:#697664;
 --theme-accent:#f1a5a4;--theme-accent-2:#ffc2b9;--theme-accent-3:#d5b87b;--theme-accent-soft:#492e32;
 --theme-success:#75d5a5;--theme-success-soft:#1c4535;--theme-danger:#ff9b99;--theme-danger-soft:#4b292b;--theme-warning:#f3c56d;--theme-warning-soft:#443921;
 --theme-shadow:0 10px 28px #0003;--seasonal-button-text:#321a1c;--seasonal-gold:#e8c88d;
}
html[data-theme="halloween"]{
 color-scheme:dark;
 --theme-page:#120f19;--theme-page-top:#221925;--theme-page-bottom:#120f19;--theme-glow:#613329;
 --theme-surface:#251e2c;--theme-surface-soft:#302634;--theme-surface-strong:#2d2332;--theme-surface-hover:#3b2e3d;
 --theme-text:#fff2e3;--theme-text-2:#e3cfda;--theme-muted:#c2afc5;--theme-line:#53404d;--theme-line-strong:#836152;
 --theme-accent:#ffb16a;--theme-accent-2:#ffc38b;--theme-accent-3:#bca1e1;--theme-accent-soft:#49302a;
 --theme-success:#79d5b3;--theme-success-soft:#203d37;--theme-danger:#ffa0a0;--theme-danger-soft:#492b34;--theme-warning:#f6cd7e;--theme-warning-soft:#493a26;
 --theme-shadow:0 10px 28px #0003;--seasonal-button-text:#301b10;--seasonal-gold:#ffca8d;
}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) #app{background:transparent}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) .shell{position:relative;isolation:isolate}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) .layout{position:relative;z-index:1}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) :is(.primary,.primary-mini,.fab,.mobile-create-icon,.tab.active,.page-btn.active,.composer-step b.done,.help-device-toggle button.active){color:var(--seasonal-button-text)}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) .badge.b-open{color:var(--open);background:color-mix(in srgb,var(--open) 13%,var(--surface))}
html[data-theme="christmas_light"]{--open:#2866ad}
html:is([data-theme="christmas_night"],[data-theme="halloween"]){--open:#96bcff}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) :is(.card,.dashboard-status-flow){background:linear-gradient(145deg,var(--theme-surface-strong),var(--theme-surface));box-shadow:inset 0 1px #ffffff08,var(--theme-shadow)}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) :is(.input,.select,textarea,.customer-suggestions,.multi-select-panel,.request-composer){color:var(--text);background-color:var(--surface)}
html:is([data-theme^="christmas_"],[data-theme="halloween"]) :is(button,input,select,textarea):focus-visible{outline:2px solid var(--theme-accent-3);outline-offset:2px}
.seasonal-background{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none}
html[data-theme^="christmas_"] .seasonal-background{opacity:.5;background-image:radial-gradient(circle at 24px 38px,#fff 0 1.5px,transparent 2.5px),radial-gradient(circle at 103px 147px,#ebf5ffb3 0 2px,transparent 3px),radial-gradient(circle at 69px 72px,#fff9 0 1px,transparent 2px);background-size:211px 263px,347px 389px,157px 191px;animation:request-snow 32s linear infinite}
html[data-theme="christmas_light"] .seasonal-background{opacity:.8;background-image:radial-gradient(circle at 24px 38px,#fff 0 2px,#7497ac70 2.6px,transparent 4px),radial-gradient(circle at 103px 147px,#fff 0 3px,#7497ac60 3.6px,transparent 5px),radial-gradient(circle at 69px 72px,#fff 0 1px,#7497ac50 1.8px,transparent 3px)}
@keyframes request-snow{to{background-position:0 526px,0 389px,0 382px}}
.seasonal-greeting{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:18px;height:52px;pointer-events:none;user-select:none;white-space:nowrap;color:var(--seasonal-gold)}
.seasonal-greeting span{font-family:Georgia,serif;font-style:italic;font-size:23px;letter-spacing:.01em;text-shadow:0 0 15px #f8b85225}
.seasonal-greeting img{height:42px;width:42px;object-fit:contain}
.seasonal-greeting img.seasonal-santa{width:154px;height:52px}
html[data-theme^="christmas_"] .shell::before{content:"";position:absolute;top:62px;left:0;right:0;height:72px;background:url('/assets/seasonal/garland-rich.webp') center -70px/768px 142px repeat-x;pointer-events:none;z-index:0}
html[data-theme^="christmas_"] .layout{padding-top:84px}
html[data-theme^="christmas_"] .dashboard-status-flow{border-color:color-mix(in srgb,var(--seasonal-gold) 38%,var(--line));background-image:url('/assets/seasonal/snow-natural.webp'),linear-gradient(135deg,var(--theme-surface-strong),var(--theme-surface));background-size:auto 22px,100% 100%;background-position:center bottom,center;background-repeat:repeat-x,no-repeat}
html[data-theme="halloween"] .top{box-shadow:0 2px 24px #e287351c;border-bottom-color:#8c583d66}
html[data-theme="halloween"] .dashboard-status-flow{border-color:#895438;box-shadow:inset 0 1px #ffc47816,0 5px 22px #eb813511}
.seasonal-bat{position:absolute;top:var(--y);left:0;width:var(--size);opacity:.22;animation:request-bat-flight var(--duration) linear var(--delay) infinite}
.seasonal-bat img{width:100%;display:block;animation:request-bat-wing 1.5s ease-in-out infinite alternate}
@keyframes request-bat-flight{0%{transform:translateX(-70px) translateY(0) rotate(-8deg)}50%{transform:translateX(50vw) translateY(-28px) rotate(7deg)}100%{transform:translateX(calc(100vw + 70px)) translateY(0) rotate(-8deg)}}
@keyframes request-bat-wing{to{transform:scaleY(.7)}}
.theme-preview-christmas_light{background:linear-gradient(135deg,#f8f3e9 40%,#36624a 40% 70%,#a73542 70%)}
.theme-preview-christmas_night{background:linear-gradient(135deg,#17332c 40%,#943c44 40% 70%,#dabd83 70%)}
.theme-preview-halloween{background:radial-gradient(circle at 68% 32%,#ffd392 0 15%,transparent 18%),linear-gradient(135deg,#6a3742,#18121f)}
@media(max-width:1100px){.seasonal-greeting{display:none}}
@media(max-width:899px){.seasonal-bat:nth-child(n+5){display:none}.seasonal-background{opacity:.3}html[data-theme^="christmas_"] .shell::before{top:58px;height:44px;background-size:512px 94.67px;background-position:center -48px}html[data-theme^="christmas_"] .layout{padding-top:56px}html[data-theme^="christmas_"] .dashboard-status-flow{background-size:auto 16px,100% 100%}html:is([data-theme^="christmas_"],[data-theme="halloween"]) .side::after{display:none}}
/* Mobile greeting scrolls with content; only the identity header stays fixed. */
.seasonal-greeting-mobile{display:none}
@media(max-width:899px){
 .seasonal-greeting-mobile{position:relative;inset:auto;transform:none;display:flex;z-index:1;width:100%;height:62px;padding:6px 12px;gap:12px}
 .seasonal-greeting-mobile span{font-size:clamp(17px,5vw,22px)}
 .seasonal-greeting-mobile img{width:34px;height:40px;flex-shrink:0}
 .seasonal-greeting-mobile img.seasonal-santa{width:clamp(108px,32vw,144px);height:50px}
 html[data-theme^="christmas_"] .shell::before{top:calc(58px + env(safe-area-inset-top,0px))}
 html[data-theme^="christmas_"] .seasonal-greeting-mobile{margin-top:44px}
 html:is([data-theme^="christmas_"],[data-theme="halloween"]) .layout{padding-top:12px}
}
@media(prefers-reduced-motion:reduce){html[data-theme^="christmas_"] .seasonal-background,.seasonal-bat,.seasonal-bat img{animation:none}.seasonal-bat{left:var(--y);opacity:.15}}
@media print{.seasonal-background,.seasonal-greeting,html:is([data-theme^="christmas_"],[data-theme="halloween"]) .side::after,html[data-theme^="christmas_"] .shell::before{display:none!important}}
