/* Seasonal artwork is separate from case data and semantic status colors. */
body[data-fun-theme][data-fun-theme="jedi"]{--bg:#0c132c;--card:#162344;--white:#162344;--card2:#1d2d50;--nav:#101b37;--text:#f1f6ff;--sub:#c2cde9;--sub2:#adc0df;--blue:#7fd6ff;--blue2:#6bb6f7;--sky:#9de9ef;--rim:#344563;--rim2:#556a8f;--fx-accent:#89ceff;--fx-alt:#b996ed;--fx-button-ink:#12243c}
body[data-fun-theme][data-fun-theme="christmas"]{--bg:#091f1b;--card:#13352d;--white:#13352d;--card2:#1d4437;--nav:#102a24;--text:#fff7e8;--sub:#c6dbcb;--sub2:#aacbb7;--blue:#94e1b8;--blue2:#66c899;--sky:#f0ca78;--rim:#355b4a;--rim2:#65886d;--fx-accent:#9cdab6;--fx-alt:#e5af71;--fx-button-ink:#163b2c}
body[data-fun-theme][data-fun-theme="halloween"]{--fx-accent:#e7a35a;--fx-alt:#af87d4;--fx-button-ink:var(--hall-ink)}
body[data-fun-theme][data-fun-theme="july4"]{--bg:#0b1732;--card:#182d4d;--white:#182d4d;--card2:#20385d;--nav:#101f3c;--text:#f4f8ff;--sub:#c7d3e9;--sub2:#acc3e1;--blue:#8ec3ff;--blue2:#74a4f0;--sky:#f1b8c4;--rim:#3b5273;--rim2:#6881a2;--fx-accent:#92bbff;--fx-alt:#eb8194;--fx-button-ink:#12243c}
body[data-fun-theme][data-fun-theme="valentine"]{--bg:#28162b;--card:#3c233e;--white:#3c233e;--card2:#4b2e4b;--nav:#321b35;--text:#fff1f7;--sub:#e5c8da;--sub2:#d2b1c7;--blue:#f3accd;--blue2:#e995c1;--sky:#ddbfef;--rim:#71506e;--rim2:#936889;--fx-accent:#efa3c7;--fx-alt:#c19bdc;--fx-button-ink:#4b1f41}
body.light[data-fun-theme="jedi"],body:not(.dark).office-season-jedi[data-fun-theme]{--bg:#edf3ff;--card:#fbfdff;--white:#fbfdff;--card2:#e1ebfb;--nav:#f7faff;--text:#203650;--sub:#4b6484;--sub2:#526d8c;--blue:#1c5d9f;--blue2:#2874b1;--sky:#5b468c;--rim:#c8d7ef;--rim2:#93b5d8;--fx-accent:#3b77b5;--fx-alt:#9874bf;--fx-button-ink:#fff}
body.light[data-fun-theme="christmas"],body:not(.dark).office-season-christmas[data-fun-theme]{--bg:#edf6f0;--card:#fffdf7;--white:#fffdf7;--card2:#e3efe5;--nav:#f8fcf8;--text:#203a2e;--sub:#496454;--sub2:#536e5e;--blue:#17643f;--blue2:#268252;--sky:#994636;--rim:#ccdccc;--rim2:#9cbdab;--fx-accent:#328563;--fx-alt:#c66d57;--fx-button-ink:#fff}
body.light[data-fun-theme="july4"],body:not(.dark).office-season-july4[data-fun-theme]{--bg:#eef3fd;--card:#fffdfb;--white:#fffdfb;--card2:#e5ecf8;--nav:#fafbff;--text:#23394f;--sub:#4e6582;--sub2:#536e8e;--blue:#205c9f;--blue2:#2b74b5;--sky:#a64256;--rim:#cfdced;--rim2:#9ab0ce;--fx-accent:#427bb6;--fx-alt:#ce6c7b;--fx-button-ink:#fff}
body.light[data-fun-theme="valentine"],body:not(.dark).office-season-valentine[data-fun-theme]{--bg:#fff0f5;--card:#fffafc;--white:#fffafc;--card2:#f5e2ed;--nav:#fff8fb;--text:#512c46;--sub:#7b4c69;--sub2:#7d536f;--blue:#a13b69;--blue2:#b54a7a;--sky:#75549c;--rim:#e9c9db;--rim2:#ce9bb5;--fx-accent:#c2668c;--fx-alt:#9874b9;--fx-button-ink:#fff}
body[data-fun-theme]:not([data-fun-theme="off"]){background:var(--bg)}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(#app-shell,#office-app-shell,#lab-board){background:var(--bg);isolation:isolate}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(.scroll,.office-scroll,.lb-scroll){position:relative;z-index:2;background-image:radial-gradient(ellipse at 5% 0%,color-mix(in srgb,var(--fx-accent) 12%,transparent),transparent 40%),radial-gradient(ellipse at 98% 70%,color-mix(in srgb,var(--fx-alt) 10%,transparent),transparent 45%);background-attachment:local}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(.card,.sh,.lb-card,.app-opt){background:var(--card)!important}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(.topbar,.office-nav,.nav,.lb-header){background:var(--nav);border-color:var(--rim);box-shadow:0 3px 20px color-mix(in srgb,var(--fx-accent) 10%,transparent);z-index:3}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(.btn-blue,.submit-btn,.chat-send,.ac-btn,.sh-status-action,.team-message-compose button){background:linear-gradient(130deg,var(--blue),var(--blue2));color:var(--fx-button-ink);text-shadow:none!important;animation:none!important;box-shadow:0 4px 15px color-mix(in srgb,var(--fx-accent) 20%,transparent)!important}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(button,input,textarea,select):focus-visible{outline:2px solid var(--blue);outline-offset:3px}
body[data-fun-theme]:not([data-fun-theme="off"]) :is(.office-theme-layer,.office-bulb-string,.office-halloween-banner,.decor-layer,#bulb-string){display:none!important}
.fun-season-scene{position:fixed;inset:76px 0 70px;overflow:hidden;pointer-events:none;user-select:none;z-index:1;contain:strict}
.fx-piece{position:absolute;display:block;pointer-events:none;animation-delay:var(--delay,0s)!important}.fx-piece svg{display:block;width:100%;height:100%}
.fx-aura{width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--fx-accent) 20%,transparent),transparent 68%);animation:fxAura 22s ease-in-out infinite}.fx-aura-right{background:radial-gradient(circle,color-mix(in srgb,var(--fx-alt) 20%,transparent),transparent 68%)}
@keyframes fxAura{50%{transform:translateY(-45px) scale(1.2);opacity:.5}}
.fx-star{color:#82bce6;font-size:12px;opacity:.6;animation:fxTwinkle 7s ease-in-out infinite}.fx-streak{width:2px;height:65px;background:linear-gradient(transparent,#a7deee,transparent);animation:fxWarp var(--duration) linear infinite;opacity:0}
@keyframes fxTwinkle{50%{opacity:.2;transform:scale(.75)}}@keyframes fxWarp{10%{opacity:.6}70%{opacity:0}100%{transform:translate3d(45vw,90vh,0) rotate(-35deg)}}
.fx-planet,.fx-gift,.fx-envelope{width:86px;height:86px;animation:fxFloat 12s ease-in-out infinite;opacity:.8}.fx-saber{width:5px;height:95px;border-radius:8px;background:linear-gradient(#fff,#62c5e1);box-shadow:0 0 12px #72c8ef;transform-origin:bottom;animation:fxSaber 8s ease-in-out infinite}.fx-saber.fx-right{background:linear-gradient(#fff,#8be9b1);animation-direction:reverse}
@keyframes fxSaber{0%,100%{transform:rotate(-15deg)}50%{transform:rotate(22deg) translateY(-10px)}}@keyframes fxFloat{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-24px) rotate(7deg)}}
.fx-lights{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-around;border-top:2px solid var(--rim2);padding:0 16px}.fx-lights i{width:9px;height:14px;border-radius:40% 40% 50% 50%;background:var(--color);box-shadow:0 0 10px var(--color);animation:fxTwinkle 5s ease-in-out infinite;animation-delay:var(--delay)}
.fx-flake,.fx-confetti{font-size:19px;line-height:1;color:var(--fx-accent);animation:fxFall var(--duration) linear infinite;opacity:0}
@keyframes fxFall{8%,80%{opacity:.7}100%{transform:translate3d(35px,100vh,0) rotate(210deg);opacity:0}}
.fx-ornament{width:50px;height:58px;background:radial-gradient(circle at 33% 24%,#fff0ba,#d49462);border-radius:50%;animation:fxFloat 12s ease-in-out infinite}.fx-ornament::before{content:'';position:absolute;top:-100px;left:24px;width:1px;height:100px;background:var(--rim2)}
.fx-web{width:135px;height:135px;opacity:.65}.fx-web-right{transform:scaleX(-1)}.fx-ghost{width:73px;height:87px;animation:fxFloat var(--duration) ease-in-out infinite;opacity:.9}.fx-leaf{width:26px;height:32px;animation:fxFall var(--duration) linear infinite;opacity:0}.fx-pumpkin{width:80px;height:80px;animation:fxPumpkin 9s ease-in-out infinite;opacity:.85}.fx-moon{width:86px;height:86px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe9b6,#deb46c);box-shadow:inset -15px 4px 0 #8b6991;opacity:.5}
@keyframes fxPumpkin{50%{transform:rotate(4deg) translateY(-5px)}}
.fx-firework{width:120px;height:120px;animation:fxBurst 9s ease-out infinite;opacity:0}.fx-firework i{position:absolute;left:59px;top:14px;width:2px;height:43px;border-radius:3px;background:linear-gradient(transparent,var(--color));transform-origin:1px 46px;transform:rotate(var(--angle))}
@keyframes fxBurst{0%,10%{transform:scale(.1);opacity:0}20%{transform:scale(.65);opacity:.8}36%{transform:scale(1);opacity:.35}50%,100%{transform:scale(1.2);opacity:0}}
.fx-heart{font-size:26px;opacity:.65;animation:fxLove var(--duration) ease-in-out infinite}@keyframes fxLove{50%{transform:translateY(-65px) rotate(12deg);opacity:.3}}
.fun-season-banner{display:flex;align-items:center;gap:14px;max-width:960px;min-height:80px;margin:16px auto 10px;padding:14px 20px;border:1px solid var(--rim2);border-radius:18px;background:linear-gradient(120deg,var(--card),color-mix(in srgb,var(--card) 88%,var(--fx-accent)));position:relative;overflow:hidden;box-shadow:0 7px 24px color-mix(in srgb,var(--fx-accent) 10%,transparent)}
.fun-season-banner::after{content:'';position:absolute;left:-40%;top:0;width:35%;height:100%;background:linear-gradient(100deg,transparent,color-mix(in srgb,var(--fx-accent) 10%,transparent),transparent);animation:fxBanner 20s ease-in-out infinite;pointer-events:none}@keyframes fxBanner{50%,100%{transform:translateX(450%)}}
.fun-season-banner strong{display:block;font:800 20px/1.3 var(--f);color:var(--text);letter-spacing:-.4px}.fun-season-banner div>span{display:block;margin-top:3px;color:var(--sub);font:500 12px/1.5 var(--f)}.fx-banner-mark{width:52px;height:52px;flex:none;font-size:40px;color:var(--blue);animation:fxFloat 8s ease-in-out infinite}.fx-banner-mark svg{width:100%;height:100%}
.fx-motion-toggle{margin-left:auto;flex:none;min-height:36px;padding:8px 10px;border:1px solid var(--rim2);border-radius:10px;background:var(--card);color:var(--sub);font:700 11px var(--f);cursor:pointer;z-index:1}.fx-motion-toggle:hover{color:var(--text);border-color:var(--blue)}
body[data-fun-paused="true"] :is(.fun-season-scene *,.fun-season-banner *,.fun-season-banner::after),body[data-fun-hidden="true"] :is(.fun-season-scene *,.fun-season-banner *,.fun-season-banner::after){animation-play-state:paused!important}
body:not(.app-authenticated):has(#office-app-shell) .fun-season-scene,body:not(.app-authenticated):has(#app-shell) .fun-season-scene{display:none}
@media(max-width:700px){.fun-season-scene{inset:66px 0 70px}.fx-piece{opacity:.35}.fx-piece:nth-child(n+14){display:none}.fx-aura{width:180px;height:180px}.fx-ghost,.fx-planet,.fx-gift,.fx-envelope{width:42px;height:50px}.fx-web{width:70px;height:70px}.fx-web-right{left:calc(100% - 70px)!important}.fx-saber{height:55px}.fx-moon{width:50px;height:50px}.fun-season-banner{margin:12px 12px 6px;gap:10px;padding:12px;min-height:72px;border-radius:14px}.fun-season-banner strong{font-size:15px;letter-spacing:-.15px}.fun-season-banner div>span{font-size:10px}.fx-banner-mark{width:34px;height:40px}.fx-motion-toggle{font-size:10px;padding:6px;min-height:34px}.fx-firework{width:80px;height:80px}}
@media(prefers-reduced-motion:reduce){.fun-season-scene *,.fun-season-banner *,.fun-season-banner::after{animation:none!important}.fx-flake,.fx-confetti,.fx-leaf,.fx-streak{display:none}.fx-firework{opacity:.2}.fx-motion-toggle{display:none}}
@media print{.fun-season-scene,.fun-season-banner{display:none!important}}
