/* WorkFlow LUNA V33.8.29 · Full-app opt-in Ultimate Fantasy.
   Isolation contract: ALL selectors below are gated by [data-fantasy-theme].
   Existing 5 app themes, 5 calendar themes, Dark Glass, and 10 shift skins unchanged. */
body[data-fantasy-theme]{--fantasy-night:#0c0b22;--fantasy-mid:#341c59;--fantasy-glow:#bb8cff;--fantasy-hot:#7c4aff;--fantasy-gold:#ffe29a;--fantasy-rgb:190,139,255;--fantasy-surface:rgba(13,14,37,.9);--fantasy-card:rgba(19,18,47,.83);--fantasy-world:url('./assets/fantasy/world-original.svg');color-scheme:dark}
body[data-fantasy-theme="original"]{--fantasy-night:#120b31;--fantasy-mid:#603386;--fantasy-glow:#daabff;--fantasy-hot:#8659f6;--fantasy-gold:#ffdda3;--fantasy-rgb:218,171,255;--fantasy-world:url('./assets/fantasy/world-original.svg')}
body[data-fantasy-theme="space"]{--fantasy-night:#04112a;--fantasy-mid:#204b9a;--fantasy-glow:#64e6ff;--fantasy-hot:#786aff;--fantasy-gold:#e9d5ff;--fantasy-rgb:100,230,255;--fantasy-world:url('./assets/fantasy/world-space.svg')}
body[data-fantasy-theme="fairy"]{--fantasy-night:#09251f;--fantasy-mid:#2b514b;--fantasy-glow:#aaffb7;--fantasy-hot:#d887ed;--fantasy-gold:#ffe6a2;--fantasy-rgb:170,255,183;--fantasy-world:url('./assets/fantasy/world-fairy.svg')}
body[data-fantasy-theme="cyber"]{--fantasy-night:#0e0a23;--fantasy-mid:#25366e;--fantasy-glow:#4bebff;--fantasy-hot:#f34ace;--fantasy-gold:#ffd2fb;--fantasy-rgb:75,235,255;--fantasy-world:url('./assets/fantasy/world-cyber.svg')}
body[data-fantasy-theme="ocean"]{--fantasy-night:#002038;--fantasy-mid:#08728c;--fantasy-glow:#6cfff2;--fantasy-hot:#3a9dff;--fantasy-gold:#cbfff9;--fantasy-rgb:108,255,242;--fantasy-world:url('./assets/fantasy/world-ocean.svg')}
body[data-fantasy-theme="dragon"]{--fantasy-night:#250d0b;--fantasy-mid:#722810;--fantasy-glow:#ffb666;--fantasy-hot:#fa563b;--fantasy-gold:#ffe5a6;--fantasy-rgb:255,182,102;--fantasy-world:url('./assets/fantasy/world-dragon.svg')}
body[data-fantasy-theme="royal"]{--fantasy-night:#1f0e28;--fantasy-mid:#604884;--fantasy-glow:#fff2bb;--fantasy-hot:#be8cfa;--fantasy-gold:#ffe4a2;--fantasy-rgb:255,242,187;--fantasy-world:url('./assets/fantasy/world-royal.svg')}
body[data-fantasy-theme="candy"]{--fantasy-night:#4b2049;--fantasy-mid:#a44988;--fantasy-glow:#fff4b0;--fantasy-hot:#ff8fce;--fantasy-gold:#fff2c7;--fantasy-rgb:255,244,176;--fantasy-world:url('./assets/fantasy/world-candy.svg')}
body[data-fantasy-theme="mecha"]{--fantasy-night:#07101e;--fantasy-mid:#263655;--fantasy-glow:#58ddff;--fantasy-hot:#ff526d;--fantasy-gold:#ffd1ae;--fantasy-rgb:88,221,255;--fantasy-world:url('./assets/fantasy/world-mecha.svg')}
body[data-fantasy-theme="clockwork"]{--fantasy-night:#211606;--fantasy-mid:#674823;--fantasy-glow:#ffce7b;--fantasy-hot:#db9660;--fantasy-gold:#fff0c4;--fantasy-rgb:255,206,123;--fantasy-world:url('./assets/fantasy/world-clockwork.svg')}
/* We only override the shell when explicitly enabled. Underlying appearance settings stay intact. */
body[data-fantasy-theme],body.dark[data-fantasy-theme],body[data-fantasy-theme][data-app-theme],body.dark[data-fantasy-theme][data-app-theme]{
 --ink:#fbf7ff;--muted:#d9cce8;--glass:var(--fantasy-surface);--card:var(--fantasy-card);--border:rgba(var(--fantasy-rgb),.45);--accent:var(--fantasy-gold);--purple:var(--fantasy-glow);--shadow:0 13px 33px rgba(0,0,0,.32),0 0 16px rgba(var(--fantasy-rgb),.12);
 --today-outline:var(--fantasy-glow);--theme-accent:var(--fantasy-glow);background:var(--fantasy-night)!important;color:var(--ink);
}
body[data-fantasy-theme] #wallpaper{background:var(--fantasy-night)!important}
body[data-fantasy-theme] #wallpaper .wallpaper-layer{opacity:0!important}
body[data-fantasy-theme] #wallpaper .wallpaper-tint{background:radial-gradient(circle at 50% 25%,rgba(var(--fantasy-rgb),.06),transparent 50%),linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.23))!important;z-index:2}
body[data-fantasy-theme] #wallpaper::after{content:'';position:absolute;inset:-4%;background-image:radial-gradient(ellipse at 56% 40%,transparent 8%,rgba(0,0,0,.18) 91%),var(--fantasy-world);background-size:cover;background-position:center;background-repeat:no-repeat;opacity:.94;animation:luna-fantasy-world-drift 38s ease-in-out infinite alternate;z-index:1;pointer-events:none}
body[data-fantasy-theme] #wallpaper::before{content:'';position:absolute;inset:0;z-index:3;background-image:radial-gradient(circle at 13% 12%,rgba(255,255,255,.85) 0 1px,transparent 2px),radial-gradient(circle at 78% 18%,rgba(255,255,255,.66) 0 1px,transparent 2px),radial-gradient(circle at 44% 45%,rgba(var(--fantasy-rgb),.65) 0 1px,transparent 3px),radial-gradient(circle at 29% 72%,rgba(255,255,255,.62) 0 1px,transparent 2px),radial-gradient(circle at 88% 79%,rgba(255,255,255,.67) 0 1px,transparent 2px);background-size:320px 410px;animation:luna-fantasy-starlight 7s ease-in-out infinite alternate;pointer-events:none}
body[data-fantasy-theme="ocean"] #wallpaper::before{background-image:radial-gradient(circle at 20% 70%,rgba(191,255,255,.28) 0 6px,transparent 7px),radial-gradient(circle at 78% 27%,rgba(191,255,255,.32) 0 4px,transparent 5px),radial-gradient(circle at 43% 41%,rgba(191,255,255,.2) 0 10px,transparent 11px);background-size:140px 190px;animation:luna-fantasy-bubbles 14s linear infinite}
body[data-fantasy-theme="cyber"] #wallpaper::before{background-image:repeating-linear-gradient(0deg,rgba(var(--fantasy-rgb),.04) 0 1px,transparent 1px 13px);animation:luna-fantasy-cyber-rain 8s linear infinite}
body[data-fantasy-theme="dragon"] #wallpaper::before{background-image:radial-gradient(circle,rgba(255,176,91,.42) 0 1px,transparent 2px);background-size:56px 79px;animation:luna-fantasy-bubbles 11s linear infinite}
@keyframes luna-fantasy-world-drift{from{transform:scale(1) translate3d(-4px,0,0)}to{transform:scale(1.08) translate3d(5px,-8px,0)}}
@keyframes luna-fantasy-starlight{from{opacity:.32;transform:translate3d(0,0,0)}to{opacity:.75;transform:translate3d(2px,-7px,0)}}
@keyframes luna-fantasy-bubbles{from{transform:translateY(0)}to{transform:translateY(-220px)}}
@keyframes luna-fantasy-cyber-rain{from{background-position:0 0}to{background-position:0 220px}}
body[data-fantasy-theme] .app-shell{position:relative;isolation:isolate}
/* Major panels, every interactive card group and notification belong to the chosen world. */
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.msg,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.stat,.color-choice,.pill,.day-cell,.calendar-widget-open,.weather-stat,.luna-prep-time-box,.luna-prep-remaining,.boss-ring-metric,.luna-prep-goal){
 border-color:rgba(var(--fantasy-rgb),.38);background-color:rgba(13,14,34,.74);color:var(--ink);box-shadow:inset 0 1px rgba(255,255,255,.11),0 11px 29px rgba(0,0,0,.22),0 0 15px rgba(var(--fantasy-rgb),.08);transition:box-shadow .35s ease,transform .3s ease,border-color .35s ease,background-color .35s ease;
}
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.weather-stat,.luna-prep-time-box,.boss-ring-metric){
 position:relative;isolation:isolate;overflow:hidden;background-image:radial-gradient(ellipse at 90% 2%,rgba(var(--fantasy-rgb),.13),transparent 39%),linear-gradient(125deg,rgba(255,255,255,.065),transparent 36%,rgba(var(--fantasy-rgb),.025) 75%,rgba(255,255,255,.055));
}
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.weather-stat,.luna-prep-time-box,.boss-ring-metric)::before{
 content:'';position:absolute;pointer-events:none;z-index:0;inset:0;border-radius:inherit;background:linear-gradient(112deg,transparent 0 24%,rgba(255,255,255,.15) 39%,rgba(var(--fantasy-rgb),.10) 46%,transparent 61%);background-size:260% 100%;animation:luna-fantasy-card-sheen 8s linear infinite;opacity:.42;
}
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.weather-stat,.luna-prep-time-box,.boss-ring-metric)::after{
 content:'✦';position:absolute;right:9px;top:5px;z-index:0;pointer-events:none;color:var(--fantasy-gold);text-shadow:0 0 12px var(--fantasy-glow);font-size:13px;opacity:.56;animation:luna-fantasy-corner-twinkle 4s ease-in-out infinite alternate;
}
body[data-fantasy-theme] :is(.panel.glass,.tile,.manage-card,.settings-row,.notice-row,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.weather-stat,.boss-ring-metric):nth-of-type(3n)::before{animation-delay:-2.8s}
body[data-fantasy-theme] :is(.panel.glass,.tile,.manage-card,.settings-row,.notice-row,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.weather-stat,.boss-ring-metric):nth-of-type(4n)::after{animation-delay:-1.9s}
body[data-fantasy-theme] :is(.tile,.manage-card,.settings-row,.notice-row,.calendar-style-item,.day-cell,.nav-btn,.btn,.pill):active{transform:scale(.97)}
body[data-fantasy-theme] :is(.tile,.manage-card,.settings-row,.notice-row,.calendar-style-item):hover{border-color:rgba(var(--fantasy-rgb),.84);box-shadow:0 13px 35px rgba(0,0,0,.3),0 0 19px rgba(var(--fantasy-rgb),.3)}
body[data-fantasy-theme] :is(.panel.glass,.banner.glass,.login-card.glass){border-width:1.5px;box-shadow:0 10px 29px rgba(0,0,0,.35),0 0 19px rgba(var(--fantasy-rgb),.16),inset 0 0 0 1px rgba(var(--fantasy-rgb),.08)}
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.login-card.glass,.banner.glass) > *{position:relative;z-index:1}
body[data-fantasy-theme] :is(.banner h1,.page-head h2,.section-heading,.brand){color:#fff6fc;text-shadow:0 0 18px rgba(var(--fantasy-rgb),.32)}
body[data-fantasy-theme] .caption,body[data-fantasy-theme] .sub,body[data-fantasy-theme] small{color:#e2d6ed}
body[data-fantasy-theme] :is(.btn:not(.danger),.pill.selected,.calendar-widget-open,.slide-handle){background:linear-gradient(120deg,var(--fantasy-mid),var(--fantasy-hot) 58%,var(--fantasy-glow));color:#fff;border:1px solid rgba(var(--fantasy-rgb),.65);box-shadow:0 0 14px rgba(var(--fantasy-rgb),.3),inset 0 1px rgba(255,255,255,.22);text-shadow:0 0 6px rgba(0,0,0,.28)}
body[data-fantasy-theme] .btn.secondary{background:rgba(16,17,37,.83)!important;color:var(--fantasy-gold)!important;border:1px solid rgba(var(--fantasy-rgb),.45)}
body[data-fantasy-theme] :is(input,select,textarea){background:rgba(5,9,22,.86)!important;color:#fff;border:1px solid rgba(var(--fantasy-rgb),.51);box-shadow:inset 0 0 12px rgba(var(--fantasy-rgb),.07)}
body[data-fantasy-theme] input::placeholder{color:#c2b1ca}
body[data-fantasy-theme] :is(.nav-btn.current,.settings-row:active){background:linear-gradient(150deg,rgba(var(--fantasy-rgb),.20),rgba(0,0,0,.17))!important;color:#fff;border:1px solid rgba(var(--fantasy-rgb),.46)}
body[data-fantasy-theme] .bottom-nav,body.dark[data-fantasy-theme] .bottom-nav{background:linear-gradient(155deg,rgba(11,12,30,.95),rgba(30,20,45,.96))!important;border:1px solid rgba(var(--fantasy-rgb),.58);box-shadow:0 0 22px rgba(var(--fantasy-rgb),.27),0 9px 34px rgba(0,0,0,.42);backdrop-filter:blur(23px)}
body[data-fantasy-theme] .nav-btn .nav-icon{filter:drop-shadow(0 0 7px rgba(var(--fantasy-rgb),.5))}
body[data-fantasy-theme] .tile-icon,body[data-fantasy-theme] .manage-card>span{background:radial-gradient(circle at 25% 15%,rgba(var(--fantasy-rgb),.38),rgba(var(--fantasy-rgb),.12));box-shadow:0 0 14px rgba(var(--fantasy-rgb),.23);border:1px solid rgba(var(--fantasy-rgb),.34)}
body[data-fantasy-theme] .stat{background-image:linear-gradient(115deg,rgba(var(--fantasy-rgb),.16),rgba(13,12,33,.86))}
body[data-fantasy-theme] :is(.ring-track,.watch-ring,.boss-ring-visual){filter:drop-shadow(0 0 10px rgba(var(--fantasy-rgb),.35))}
body[data-fantasy-theme] .day-cell{background:linear-gradient(145deg,rgba(var(--fantasy-rgb),.1),rgba(7,9,26,.83));border-radius:12px;box-shadow:inset 0 0 11px rgba(var(--fantasy-rgb),.055),0 0 8px rgba(var(--fantasy-rgb),.035)}
body[data-fantasy-theme] .day-cell.today{box-shadow:0 0 16px rgba(var(--fantasy-rgb),.32),inset 0 0 15px rgba(var(--fantasy-rgb),.12);border-color:var(--fantasy-glow)}
body[data-fantasy-theme] .day-cell em,body[data-fantasy-theme] .calendar-week{color:var(--fantasy-gold)}
body[data-fantasy-theme] .employee-level-chip{background:rgba(var(--fantasy-rgb),.15);color:var(--fantasy-gold);border-color:var(--fantasy-glow)}
/* Independent 10-theme selector */
.luna-fantasy-settings-intro{padding:20px 14px;border-radius:20px;text-align:center;background:linear-gradient(125deg,#160d31,#3b225c 58%,#17112e);border:1px solid #c2a0fa;box-shadow:0 0 16px rgba(164,116,244,.28);color:#fff}
.luna-fantasy-settings-intro>span{font-weight:900;letter-spacing:.15em;font-size:12px;color:#ffe2a6}
.luna-fantasy-settings-intro h3{font-size:clamp(17px,4vw,23px);margin:8px 0;color:#fff}
.luna-fantasy-settings-intro p{font-size:12px;line-height:1.7;color:#e9dafa}
.luna-fantasy-reset{min-height:50px;font-size:.82rem;text-align:center}
.luna-fantasy-reset-selected{outline:2px solid var(--purple)}
.luna-fantasy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.luna-fantasy-choice{display:grid;grid-template-rows:164px auto auto auto;align-content:start;gap:5px;min-width:0;text-align:left;padding:8px;background:var(--card);border:1px solid var(--border);border-radius:19px;color:var(--ink);overflow:hidden;box-shadow:var(--shadow)}
.luna-fantasy-choice.chosen{border:2px solid var(--fantasy-glow,var(--purple));box-shadow:0 0 17px rgba(168,135,237,.25)}
.luna-fantasy-thumb{position:relative;display:block;overflow:hidden;height:164px;min-width:0;border-radius:18px;isolation:isolate;background:radial-gradient(ellipse at 50% 30%,rgba(168,137,241,.42),rgba(12,13,39,.96) 75%);box-shadow:inset 0 0 22px rgba(255,255,255,.06)}
.luna-fantasy-thumb img{display:block;position:absolute;left:0;right:0;bottom:-13%;width:100%;height:119%;object-fit:contain;object-position:center bottom;transform:scale(1);transition:transform .5s ease;filter:drop-shadow(0 0 10px rgba(255,255,255,.22));z-index:1;pointer-events:none}
.luna-fantasy-choice:active img{transform:scale(1.035) translateY(-2px)}
.luna-fantasy-thumb-glow{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.045),transparent 50%,rgba(0,0,0,.27));box-shadow:inset 0 0 0 1px rgba(255,255,255,.24),inset 0 -10px 20px rgba(0,0,0,.18)}
.luna-fantasy-thumb-icon{position:absolute;right:7px;bottom:6px;font-size:22px;filter:drop-shadow(0 0 7px #fff)}
.luna-fantasy-choice-title{font-weight:900;font-size:12px;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}
.luna-fantasy-choice>small{color:var(--muted);font-size:10px;line-height:1.45;min-height:30px}
.luna-fantasy-choice>strong{font-size:11px;color:var(--purple)}
body[data-fantasy-theme] .luna-fantasy-choice{background:rgba(13,14,35,.9);border-color:rgba(var(--fantasy-rgb),.42)}
body[data-fantasy-theme] .luna-fantasy-choice.chosen{border-color:var(--fantasy-gold);box-shadow:0 0 20px rgba(var(--fantasy-rgb),.45)}
/* Welcome takeover: preserve existing photo, user identity, orbit, ring data, and buttons. */
body[data-fantasy-theme] .welcome-scene{padding-top:calc(16px + var(--safe-t));background:transparent;isolation:isolate}
body[data-fantasy-theme] .welcome-inner{max-width:460px;gap:14px}
.luna-fantasy-welcome-header{display:none}
body[data-fantasy-theme] .luna-fantasy-welcome-header{display:grid;justify-items:center;position:relative;isolation:isolate;min-height:295px;overflow:hidden;gap:6px;border-radius:29px;border:1px solid rgba(var(--fantasy-rgb),.65);background:radial-gradient(circle at 50% 35%,rgba(var(--fantasy-rgb),.22),rgba(7,9,27,.38) 66%),var(--fantasy-world) center/cover;box-shadow:0 0 27px rgba(var(--fantasy-rgb),.33),inset 0 0 19px rgba(var(--fantasy-rgb),.15)}
body[data-fantasy-theme] .luna-fantasy-welcome-header::after{content:'';position:absolute;inset:auto 0 0 0;height:35%;background:linear-gradient(180deg,transparent,rgba(7,9,27,.22) 30%,rgba(7,9,27,.78));pointer-events:none;z-index:2}
.luna-fantasy-welcome-crown{position:relative;z-index:2;padding-top:10px;color:var(--fantasy-gold);font-size:27px;font-weight:950;letter-spacing:.12em;text-shadow:0 0 18px rgba(var(--fantasy-rgb),.9),0 2px 1px rgba(0,0,0,.6)}
.luna-fantasy-welcome-tag{position:relative;z-index:2;color:#f6e9ff;font-size:11px;font-weight:900;letter-spacing:.14em;text-shadow:0 1px 5px #000}
.luna-fantasy-welcome-character{position:absolute;bottom:-8px;left:50%;width:min(84%,280px);height:241px;transform:translateX(-50%);border:0;border-radius:0;overflow:visible;padding:0;background:none;filter:drop-shadow(0 0 20px rgba(var(--fantasy-rgb),.40));animation:luna-fantasy-character-float 5.6s ease-in-out infinite;z-index:3;pointer-events:none}
.luna-fantasy-welcome-character img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;border:0;border-radius:0;filter:saturate(1.04) contrast(1.02)}
.luna-fantasy-welcome-character::after{content:none}
.luna-fantasy-welcome-spark{position:absolute;color:var(--fantasy-gold);font-size:38px;z-index:3;text-shadow:0 0 12px var(--fantasy-glow);animation:luna-fantasy-corner-twinkle 3s ease-in-out infinite alternate}
.luna-fantasy-welcome-spark.a{left:7%;top:26%;font-size:31px}.luna-fantasy-welcome-spark.b{right:10%;top:47%;animation-delay:-1s}.luna-fantasy-welcome-spark.c{right:20%;bottom:10%;font-size:21px;animation-delay:-2s}
body[data-fantasy-theme] .welcome-verified{background:rgba(var(--fantasy-rgb),.18);border:1px solid rgba(var(--fantasy-rgb),.54);color:var(--fantasy-gold);text-shadow:0 0 8px rgba(var(--fantasy-rgb),.5)}
body[data-fantasy-theme] .welcome-hero{border:2px solid var(--fantasy-glow);box-shadow:0 0 24px rgba(var(--fantasy-rgb),.4),inset 0 0 16px rgba(var(--fantasy-rgb),.18);background:rgba(var(--fantasy-rgb),.15);width:clamp(116px,33vw,145px);height:clamp(116px,33vw,145px)}
body[data-fantasy-theme] .welcome-intro h1{color:var(--fantasy-gold);font-weight:900;text-shadow:0 0 14px rgba(var(--fantasy-rgb),.56)}
body[data-fantasy-theme] .welcome-intro h2{color:#fff}
body[data-fantasy-theme] .welcome-continue{background:linear-gradient(145deg,#f4b65e,var(--fantasy-gold) 51%,#b98140);color:#251324;text-shadow:none;box-shadow:0 0 24px rgba(var(--fantasy-rgb),.38),0 0 15px rgba(255,227,157,.23);border:1px solid #fff3ba}
@keyframes luna-fantasy-character-float{0%,100%{transform:translate3d(-50%,1px,0)}50%{transform:translate3d(-50%,-8px,0)}}
/* Home greeting hero: specialized artwork appears on EVERY world without changing schedule data. */
.luna-fantasy-banner-art,.luna-fantasy-banner-caption{display:none}
body[data-fantasy-theme] .banner.glass{padding-top:22px;background-image:linear-gradient(130deg,rgba(var(--fantasy-rgb),.18),rgba(8,11,32,.75) 56%),var(--fantasy-world);background-size:cover;background-position:center;border:1.5px solid rgba(var(--fantasy-rgb),.62);min-height:180px;overflow:hidden}
body[data-fantasy-theme] .banner.glass .luna-fantasy-banner-art{display:block;position:absolute;right:0;bottom:-13px;width:135px;height:182px;z-index:0;opacity:.96;pointer-events:none;border:0;border-radius:0;padding:0;background:none;filter:drop-shadow(0 0 12px rgba(var(--fantasy-rgb),.38));box-shadow:none;animation:luna-fantasy-banner-float 6s ease-in-out infinite}
body[data-fantasy-theme] .luna-fantasy-banner-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;border:0;border-radius:0;filter:none}
body[data-fantasy-theme] .luna-fantasy-banner-art::after{content:none}
body[data-fantasy-theme] .luna-fantasy-banner-art span{position:absolute;right:14px;top:11px;font-size:19px;color:var(--fantasy-gold);animation:luna-fantasy-corner-twinkle 3s infinite alternate}
body[data-fantasy-theme] .banner.glass .luna-fantasy-banner-caption{display:block;position:relative;z-index:2;color:var(--fantasy-gold);font-size:10px;letter-spacing:.11em;font-weight:900}
body[data-fantasy-theme] .banner.glass :is(h1,.sub,.employee-position-inline,.stats){position:relative;z-index:2;max-width:calc(100% - 20px);text-shadow:0 1px 7px rgba(0,0,0,.65)}
@keyframes luna-fantasy-banner-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
/* Login is themed too, but fields, role selection and authentication are untouched. */
.luna-fantasy-login-art{display:none}
body[data-fantasy-theme] .login-card.glass{background:linear-gradient(160deg,rgba(7,9,28,.91),rgba(15,12,29,.82));border-color:rgba(var(--fantasy-rgb),.68)}
body[data-fantasy-theme] .luna-fantasy-login-art{display:grid;justify-items:center;gap:3px;position:relative;height:226px;overflow:hidden;border-radius:21px;background:var(--fantasy-world) center/cover;border:1px solid rgba(var(--fantasy-rgb),.52)}
body[data-fantasy-theme] .luna-fantasy-login-art::after{content:'';position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(180deg,transparent,rgba(6,9,27,.18) 28%,rgba(6,9,27,.66));pointer-events:none}
body[data-fantasy-theme] .luna-fantasy-login-art img{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);width:185px;height:188px;object-fit:contain;object-position:center bottom;border:0;border-radius:0;padding:0;background:none;box-shadow:none;animation:luna-fantasy-login-character 6s ease-in-out infinite;filter:drop-shadow(0 0 14px rgba(var(--fantasy-rgb),.35))}
body[data-fantasy-theme] .luna-fantasy-login-art b{position:relative;z-index:2;color:var(--fantasy-gold);font-size:25px;letter-spacing:.14em;text-shadow:0 2px 7px #000}
body[data-fantasy-theme] .luna-fantasy-login-art span{position:relative;z-index:2;color:#fff;font-size:10px;font-weight:900;text-shadow:0 1px 6px #000}
/* Live shift is a full scene for each world, never changes clock calculation. */
body[data-fantasy-theme] .panel.glass.luna-fantasy-shift{position:relative;isolation:isolate;overflow:hidden;padding:17px 16px 16px;min-height:251px;background:linear-gradient(135deg,rgba(6,9,27,.80),rgba(15,11,38,.78)),var(--fantasy-world) center/cover!important;border:2px solid rgba(var(--fantasy-rgb),.72);box-shadow:0 0 25px rgba(var(--fantasy-rgb),.36),inset 0 0 22px rgba(var(--fantasy-rgb),.18),0 18px 36px rgba(0,0,0,.3);color:#fff}
body[data-fantasy-theme] .panel.glass.luna-fantasy-shift::before,body[data-fantasy-theme] .panel.glass.luna-fantasy-shift::after{display:none}
.luna-fantasy-shift-bg{position:absolute!important;z-index:0!important;inset:0;overflow:hidden;pointer-events:none}
.luna-fantasy-shift-bg .luna-fantasy-scenery{position:absolute;inset:0;background:radial-gradient(circle at 77% 33%,rgba(var(--fantasy-rgb),.31),transparent 30%),radial-gradient(circle at 10% 77%,rgba(var(--fantasy-rgb),.18),transparent 42%);animation:luna-fantasy-scene-breathe 7s ease-in-out infinite alternate}
.luna-fantasy-shift-bg .luna-fantasy-shift-character{position:absolute;right:0;top:45px;width:140px;height:171px;object-fit:contain;object-position:center bottom;opacity:.9;border:0;border-radius:0;padding:0;background:none;box-shadow:none;filter:drop-shadow(0 0 12px rgba(var(--fantasy-rgb),.5));animation:luna-fantasy-banner-float 5.5s ease-in-out infinite}
.luna-fantasy-shift-bg .luna-fantasy-aura{position:absolute;right:10px;top:48px;width:125px;height:125px;border-radius:50%;border:1px solid rgba(var(--fantasy-rgb),.55);box-shadow:0 0 15px rgba(var(--fantasy-rgb),.45),inset 0 0 19px rgba(var(--fantasy-rgb),.11);animation:luna-fantasy-aura-spin 14s linear infinite}
.luna-fantasy-shift-bg .luna-fantasy-glyph{position:absolute;top:31px;right:1px;opacity:.6;font-size:34px;filter:drop-shadow(0 0 9px var(--fantasy-glow));animation:luna-fantasy-glyph-bob 4s ease-in-out infinite}
.luna-fantasy-shift-bg .luna-fantasy-rotor{position:absolute;right:-43px;top:8px;width:200px;height:200px;border:2px dashed rgba(var(--fantasy-rgb),.48);border-radius:50%;animation:luna-fantasy-aura-spin 17s linear infinite}
.luna-fantasy-shift-bg .luna-fantasy-rotor.secondary{right:-17px;top:36px;width:150px;height:150px;border:1px dotted rgba(var(--fantasy-rgb),.6);animation-direction:reverse;animation-duration:11s}
.luna-fantasy-shift-bg .luna-fantasy-arc{position:absolute;left:-90px;bottom:-70px;width:280px;height:130px;border-radius:50%;border:2px solid rgba(var(--fantasy-rgb),.26);transform:rotate(-18deg);box-shadow:0 0 17px rgba(var(--fantasy-rgb),.24)}
.luna-fantasy-shift-bg .luna-fantasy-tracer{position:absolute;left:-38%;bottom:39px;width:140px;height:3px;transform:rotate(-16deg);background:linear-gradient(90deg,transparent,var(--fantasy-hot),#fff);box-shadow:0 0 12px var(--fantasy-glow);animation:luna-fantasy-tracer 8s linear infinite}
.luna-fantasy-shift-bg .luna-fantasy-spark{position:absolute;width:3px;height:3px;left:var(--sx);top:var(--sy);border-radius:50%;background:#fff;box-shadow:0 0 9px 2px var(--fantasy-glow);animation:luna-fantasy-card-star 3s ease-in-out var(--delay) infinite alternate;transform:scale(var(--scale))}
.luna-fantasy-shift-main{position:relative!important;z-index:2!important;display:grid;gap:12px}
.luna-fantasy-shift-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.luna-fantasy-shift-heading b{font-size:clamp(13px,3.8vw,16px);color:#fff;text-shadow:0 0 10px rgba(var(--fantasy-rgb),.7)}
.luna-fantasy-live{font-size:10px;font-weight:900;letter-spacing:.13em;color:var(--fantasy-gold);text-shadow:0 0 8px var(--fantasy-glow);white-space:nowrap}
.luna-fantasy-world-name{font-size:10px;font-weight:900;letter-spacing:.11em;color:var(--fantasy-gold);text-shadow:0 0 6px #000}
.luna-fantasy-shift .clock-status.luna-fantasy-clock{margin:4px 0 0;color:#fff;font-size:clamp(19px,5.3vw,30px);line-height:1.28;min-height:63px;display:flex;align-items:center;max-width:calc(100% - 78px);overflow-wrap:anywhere;font-weight:950;font-variant-numeric:tabular-nums;text-shadow:0 0 12px rgba(var(--fantasy-rgb),.7),0 2px 7px #000}
.luna-fantasy-shift-route{display:flex;align-items:center;gap:9px;margin-top:5px;min-height:30px}
.luna-fantasy-station,.luna-fantasy-destination{font-size:21px;filter:drop-shadow(0 0 6px var(--fantasy-glow));color:var(--fantasy-gold)}
.luna-fantasy-shift .time-progress.luna-fantasy-progress{flex:1;min-width:0;height:17px;border-radius:99px;background:rgba(0,0,0,.53);border:1px solid rgba(var(--fantasy-rgb),.78);box-shadow:inset 0 0 13px #000,0 0 17px rgba(var(--fantasy-rgb),.36);overflow:hidden}
.luna-fantasy-shift .time-progress.luna-fantasy-progress>span{background:linear-gradient(95deg,var(--fantasy-hot),var(--fantasy-glow),var(--fantasy-gold));box-shadow:0 0 16px var(--fantasy-glow);transition:width .4s ease}
.luna-fantasy-shift-footer{display:flex;justify-content:space-between;gap:9px;color:#e9e1f4;font-size:10px;font-weight:720;text-shadow:0 0 6px #000}
.luna-fantasy-shift-footer span:last-child{color:var(--fantasy-gold);text-align:right}
body[data-fantasy-theme="fairy"] .luna-fantasy-rotor{border-style:dotted}
body[data-fantasy-theme="cyber"] .luna-fantasy-shift-bg .luna-fantasy-scenery{background:repeating-linear-gradient(90deg,transparent 0 27px,rgba(var(--fantasy-rgb),.09) 27px 28px),linear-gradient(0deg,rgba(246,60,224,.17),transparent)}
body[data-fantasy-theme="ocean"] .luna-fantasy-rotor{border-style:dotted;animation-duration:24s}
body[data-fantasy-theme="ocean"] .luna-fantasy-shift-bg .luna-fantasy-spark{width:6px;height:6px;background:rgba(210,255,255,.56);border:1px solid rgba(255,255,255,.55);box-shadow:0 0 6px var(--fantasy-glow)}
body[data-fantasy-theme="dragon"] .luna-fantasy-shift-bg .luna-fantasy-rotor{border-color:#ff934b}
body[data-fantasy-theme="royal"] .luna-fantasy-rotor{border-radius:27%;border-style:solid;animation-duration:22s}
body[data-fantasy-theme="candy"] .luna-fantasy-aura{background:radial-gradient(circle,rgba(255,220,250,.1),transparent)}
body[data-fantasy-theme="mecha"] .luna-fantasy-rotor{border-style:dashed;border-width:3px;animation-duration:7s}
body[data-fantasy-theme="clockwork"] .luna-fantasy-rotor{border-radius:14%;border-width:4px;border-style:dashed;animation-duration:10s}
body[data-fantasy-theme="clockwork"] .luna-fantasy-rotor.secondary{border-radius:20%;animation-duration:7s}
@keyframes luna-fantasy-scene-breathe{from{opacity:.45;transform:scale(.94)}to{opacity:1;transform:scale(1.08)}}
@keyframes luna-fantasy-aura-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes luna-fantasy-glyph-bob{0%,100%{transform:translate3d(0,0,0) rotate(-9deg)}50%{transform:translate3d(-5px,-7px,0) rotate(11deg)}}
@keyframes luna-fantasy-tracer{0%,5%{transform:translate3d(0,0,0) rotate(-16deg);opacity:0}20%{opacity:1}100%{transform:translate3d(720px,-100px,0) rotate(-16deg);opacity:0}}
@keyframes luna-fantasy-card-sheen{from{background-position:250% 0}to{background-position:-190% 0}}
@keyframes luna-fantasy-corner-twinkle{0%,100%{opacity:.25;transform:scale(.82) rotate(-10deg)}50%{opacity:.88;transform:scale(1.2) rotate(10deg)}}
@keyframes luna-fantasy-card-star{0%,100%{opacity:.18;transform:scale(.6)}50%{opacity:.95;transform:scale(1.3)}}
/* Performance and readability: no extra timers, transform/opacity compositing only; pause hidden. */
body.visuals-paused[data-fantasy-theme] *,body.visuals-paused[data-fantasy-theme] *::before,body.visuals-paused[data-fantasy-theme] *::after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body[data-fantasy-theme] *,body[data-fantasy-theme] *::before,body[data-fantasy-theme] *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:0ms!important}}
@media(max-width:380px){body[data-fantasy-theme] .panel.glass.luna-fantasy-shift{padding:13px 12px;min-height:236px}body[data-fantasy-theme] .luna-fantasy-shift .clock-status.luna-fantasy-clock{font-size:clamp(18px,5vw,23px);max-width:calc(100% - 65px)}.luna-fantasy-choice{grid-template-rows:132px auto auto auto}.luna-fantasy-thumb{height:132px}body[data-fantasy-theme] .luna-fantasy-welcome-header{min-height:225px}.luna-fantasy-welcome-character{position:absolute;bottom:16px;left:50%;width:146px;height:146px;transform:translateX(-50%);border-radius:50%;overflow:hidden;padding:8px;background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.38),rgba(var(--fantasy-rgb),.20) 32%,rgba(9,12,31,.92) 78%);box-shadow:0 0 24px rgba(var(--fantasy-rgb),.38), inset 0 0 0 1px rgba(255,255,255,.20);animation:luna-fantasy-character-float 5.6s ease-in-out infinite;z-index:3}}
@media(max-width:340px){.luna-fantasy-grid{gap:8px}.luna-fantasy-choice{padding:6px}.luna-fantasy-choice-title{font-size:11px}.luna-fantasy-shift-footer{flex-wrap:wrap}}
/* World-specific motifs on every major card; no cross-theme leakage. */
body[data-fantasy-theme="original"]{--fantasy-decor:'✧'}
body[data-fantasy-theme="space"]{--fantasy-decor:'✦'}
body[data-fantasy-theme="fairy"]{--fantasy-decor:'❀'}
body[data-fantasy-theme="cyber"]{--fantasy-decor:'⌁'}
body[data-fantasy-theme="ocean"]{--fantasy-decor:'◌'}
body[data-fantasy-theme="dragon"]{--fantasy-decor:'✹'}
body[data-fantasy-theme="royal"]{--fantasy-decor:'◆'}
body[data-fantasy-theme="candy"]{--fantasy-decor:'♥'}
body[data-fantasy-theme="mecha"]{--fantasy-decor:'⬡'}
body[data-fantasy-theme="clockwork"]{--fantasy-decor:'⚙'}
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.weather-stat,.luna-prep-time-box,.boss-ring-metric)::after{content:var(--fantasy-decor,'✦')}
body[data-fantasy-theme="cyber"] :is(.panel.glass,.banner.glass,.tile,.manage-card)::after{animation:luna-fantasy-neon-glitch 5.7s step-end infinite}
body[data-fantasy-theme="ocean"] :is(.panel.glass,.banner.glass,.tile,.manage-card)::after{animation:luna-fantasy-small-bubble 7s ease-in-out infinite}
body[data-fantasy-theme="fairy"] :is(.panel.glass,.banner.glass,.tile,.manage-card)::after{animation:luna-fantasy-small-fairy 5.1s ease-in-out infinite}
body[data-fantasy-theme="dragon"] :is(.panel.glass,.banner.glass,.tile,.manage-card)::after{animation:luna-fantasy-small-flame 3.1s ease-in-out infinite}
body[data-fantasy-theme="clockwork"] :is(.panel.glass,.banner.glass,.tile,.manage-card)::after{animation:luna-fantasy-aura-spin 10s linear infinite}
body[data-fantasy-theme="candy"] :is(.panel.glass,.banner.glass,.tile,.manage-card)::after{animation:luna-fantasy-small-heart 4.6s ease-in-out infinite}
body[data-fantasy-theme] .day-cell{animation:luna-fantasy-day-breathe 8.5s ease-in-out infinite alternate}
body[data-fantasy-theme] .day-cell:nth-child(3n){animation-delay:-2.4s}
body[data-fantasy-theme] .day-cell:nth-child(5n){animation-delay:-4.1s}
@keyframes luna-fantasy-neon-glitch{0%,94%,100%{opacity:.7;transform:translateX(0)}95%{opacity:.15;transform:translateX(4px)}97%{opacity:1;transform:translateX(-3px)}}
@keyframes luna-fantasy-small-bubble{0%,100%{opacity:.3;transform:translateY(7px) scale(.85)}50%{opacity:.87;transform:translateY(-8px) scale(1.1)}}
@keyframes luna-fantasy-small-fairy{0%,100%{opacity:.3;transform:translate3d(-3px,2px,0) rotate(-15deg)}50%{opacity:1;transform:translate3d(3px,-8px,0) rotate(13deg)}}
@keyframes luna-fantasy-small-flame{0%,100%{opacity:.48;transform:scale(.8) rotate(-8deg)}50%{opacity:1;transform:scale(1.24) rotate(9deg)}}
@keyframes luna-fantasy-small-heart{0%,100%{opacity:.43;transform:scale(.8) rotate(-9deg)}50%{opacity:1;transform:scale(1.19) rotate(10deg)}}
@keyframes luna-fantasy-day-breathe{0%{box-shadow:inset 0 0 8px rgba(var(--fantasy-rgb),.03),0 0 3px rgba(var(--fantasy-rgb),.04)}100%{box-shadow:inset 0 0 11px rgba(var(--fantasy-rgb),.09),0 0 10px rgba(var(--fantasy-rgb),.13)}}
/* Preserve original overflow behavior for popovers, dropdowns, floating badges and forms. */
body[data-fantasy-theme] :is(.panel.glass,.header.glass,.login-card.glass,.settings-row){overflow:visible}
body[data-fantasy-theme] .panel.glass.luna-fantasy-shift{overflow:hidden}
/* Beat legacy appearance's high-specificity Dark Glass rules only while opted in. */
body[data-fantasy-theme] #app :is(.panel.glass:not(.luna-fantasy-shift),.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.msg,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.stat,.day-cell){background-color:rgba(13,14,34,.74)!important;border-color:rgba(var(--fantasy-rgb),.38)!important;color:var(--ink)!important}
body[data-fantasy-theme] #app :is(.panel.glass:not(.luna-fantasy-shift),.header.glass,.banner.glass,.login-card.glass){border-color:rgba(var(--fantasy-rgb),.62)!important}
body[data-fantasy-theme] #app .bottom-nav{background-color:rgba(11,12,30,.95)!important;border-color:rgba(var(--fantasy-rgb),.58)!important}
body[data-fantasy-theme] #app .btn:not(.danger):not(.secondary){background:linear-gradient(120deg,var(--fantasy-mid),var(--fantasy-hot) 58%,var(--fantasy-glow))!important;color:#fff!important}
body[data-fantasy-theme] #app .welcome-continue{background:linear-gradient(145deg,#f4b65e,var(--fantasy-gold) 51%,#b98140)!important;color:#251324!important}
/* Secondary card families: announcements, acknowledgement rows, schedule detail, search and widgets. */
body[data-fantasy-theme] #app :is(.item.glass,.callout,.ack-row,.today-row,.team-calendar-detail,.team-summary-row,.notice-main,.role-switch .role-card,.wallpaper-thumbnail,.color-choice,.quick-search-fab){
 position:relative;isolation:isolate;border-color:rgba(var(--fantasy-rgb),.42)!important;background-color:rgba(12,14,36,.68)!important;box-shadow:inset 0 1px rgba(255,255,255,.08),0 0 11px rgba(var(--fantasy-rgb),.13);color:var(--ink);transition:box-shadow .3s ease,border-color .3s ease;
}
body[data-fantasy-theme] #app :is(.item.glass,.callout,.ack-row,.today-row,.team-calendar-detail,.team-summary-row,.color-choice)::after{
 content:var(--fantasy-decor,'✦');position:absolute;right:8px;top:5px;z-index:0;color:var(--fantasy-gold);font-size:10px;opacity:.37;text-shadow:0 0 9px var(--fantasy-glow);pointer-events:none;animation:luna-fantasy-corner-twinkle 4.5s ease-in-out infinite alternate;
}
body[data-fantasy-theme] #app .item.glass{background-image:radial-gradient(circle at 90% 5%,rgba(var(--fantasy-rgb),.12),transparent 38%)}
body[data-fantasy-theme] #app :is(.item.glass,.callout,.team-calendar-detail) > *{position:relative;z-index:1}

/* V33.8.30 soft-edge artwork cleanup: hide square edges from source images in all fantasy worlds. */

/* V33.8.31 uses cutout PNG character assets for fantasy themes to fully remove square background blocks. */

/* V33.8.33: separate portrait assets for fantasy themes; removed broken freeform cutout presentation. */

/* V33.8.34: theme selector's touch layer is always interactive.
   Fantasy scene overlays and decorative pseudo-elements must never intercept input. */
body[data-fantasy-theme] .luna-fantasy-grid, body[data-fantasy-theme] .style-choice-grid, body[data-fantasy-theme] .calendar-style-list, body[data-fantasy-theme] .luna-live-skin-grid {position:relative;z-index:3}
body[data-fantasy-theme] .luna-fantasy-choice, body[data-fantasy-theme] .style-card, body[data-fantasy-theme] .calendar-style-item, body[data-fantasy-theme] .luna-live-skin-choice, body[data-fantasy-theme] .luna-fantasy-reset {position:relative;z-index:1;cursor:pointer;touch-action:manipulation}
body[data-fantasy-theme] .luna-fantasy-thumb-glow, body[data-fantasy-theme] .luna-fantasy-thumb-icon {pointer-events:none}
body[data-fantasy-theme] .luna-fantasy-choice:focus-visible,body[data-fantasy-theme] .style-card:focus-visible,body[data-fantasy-theme] .calendar-style-item:focus-visible{outline:3px solid var(--fantasy-gold);outline-offset:3px}

/* V33.8.35 · Authentic transparent half-body characters, solely for the opt-in fantasy family. */
.luna-fantasy-thumb-original{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-original.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-space{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-space.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-fairy{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-fairy.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-cyber{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-cyber.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-ocean{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-ocean.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-dragon{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-dragon.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-royal{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-royal.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-candy{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-candy.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-mecha{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-mecha.svg');background-position:center;background-size:cover}
.luna-fantasy-thumb-clockwork{background-image:linear-gradient(180deg,rgba(8,12,29,.16),rgba(8,12,29,.7)),url('./assets/fantasy/world-clockwork.svg');background-position:center;background-size:cover}

@keyframes luna-fantasy-login-character{0%,100%{transform:translate3d(-50%,0,0)}50%{transform:translate3d(-50%,-7px,0)}}
/* The new art keeps complete hair, face, shoulders and outfits; no forced circular portrait crop. */
body[data-fantasy-theme] .luna-fantasy-welcome-character,
body[data-fantasy-theme] .luna-fantasy-banner-art,
body[data-fantasy-theme] .luna-fantasy-login-art img,
body[data-fantasy-theme] .luna-fantasy-shift-character {pointer-events:none}
body[data-fantasy-theme] .banner.glass :is(h1,.sub,.employee-position-inline,.stats){max-width:calc(100% - 115px)}
body[data-fantasy-theme] .luna-fantasy-shift .clock-status.luna-fantasy-clock{max-width:calc(100% - 115px)}
@media(max-width:380px){
 body[data-fantasy-theme] .luna-fantasy-welcome-header{min-height:264px}
 body[data-fantasy-theme] .luna-fantasy-welcome-character{width:min(84%,230px);height:216px}
 body[data-fantasy-theme] .banner.glass .luna-fantasy-banner-art{width:112px;height:151px}
 body[data-fantasy-theme] .luna-fantasy-shift-bg .luna-fantasy-shift-character{width:115px;height:150px;right:-5px;top:50px}
 body[data-fantasy-theme] .luna-fantasy-shift .clock-status.luna-fantasy-clock{max-width:calc(100% - 92px)}
 body[data-fantasy-theme] .banner.glass :is(h1,.sub,.employee-position-inline,.stats){max-width:calc(100% - 87px)}
}
@media(prefers-reduced-motion:reduce){body[data-fantasy-theme] .luna-fantasy-login-art img{animation:none!important;transform:translateX(-50%)}}
/* Readability QA: never allow live clock labels to spill over the decorative half-body illustration. */
body[data-fantasy-theme] .luna-fantasy-shift .clock-status.luna-fantasy-clock{
  display:block;
  width:calc(100% - 124px);
  max-width:calc(100% - 124px);
  min-width:0;
  min-height:70px;
  align-content:center;
  font-size:clamp(18px,4.75vw,25px);
  line-height:1.24;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
body[data-fantasy-theme] .luna-fantasy-login-art span{
 position:absolute;right:9px;left:auto;bottom:10px;z-index:3;
 padding:4px 9px;border-radius:999px;
 background:rgba(3,9,28,.72);border:1px solid rgba(var(--fantasy-rgb),.25)
}
@media(max-width:380px){
 body[data-fantasy-theme] .luna-fantasy-shift .clock-status.luna-fantasy-clock{
  width:calc(100% - 104px);
  max-width:calc(100% - 104px);
  font-size:clamp(17px,4.65vw,21px)
 }
}

/* LUNA V33.8.36: Mae Kru red-gold ritual collection, isolated to the six opt-in variants. */
body[data-fantasy-theme^="maekru-"]{
  --fantasy-night:#170309;--fantasy-mid:#710e21;--fantasy-glow:#ffcb69;--fantasy-hot:#dd3c26;--fantasy-gold:#ffe8a2;
  --fantasy-rgb:255,179,75;--fantasy-surface:rgba(30,5,12,.94);--fantasy-card:rgba(47,8,17,.82);
  --fantasy-decor:'❖';
}
body[data-fantasy-theme="maekru-1"]{--fantasy-night:#200208;--fantasy-mid:#760d24;--fantasy-hot:#b11b29;--fantasy-glow:#ffd278;--fantasy-gold:#ffe8a2;--fantasy-world:url('./assets/fantasy/world-maekru-1.svg')}
body[data-fantasy-theme="maekru-2"]{--fantasy-night:#200409;--fantasy-mid:#640817;--fantasy-hot:#ce4425;--fantasy-glow:#ffd98b;--fantasy-gold:#ffe8a2;--fantasy-world:url('./assets/fantasy/world-maekru-2.svg')}
body[data-fantasy-theme="maekru-3"]{--fantasy-night:#190208;--fantasy-mid:#6c0712;--fantasy-hot:#df1f3d;--fantasy-glow:#ffcf6e;--fantasy-gold:#ffe8a2;--fantasy-world:url('./assets/fantasy/world-maekru-3.svg')}
body[data-fantasy-theme="maekru-4"]{--fantasy-night:#26040c;--fantasy-mid:#861323;--fantasy-hot:#a72b25;--fantasy-glow:#fff0ad;--fantasy-gold:#ffe8a2;--fantasy-world:url('./assets/fantasy/world-maekru-4.svg')}
body[data-fantasy-theme="maekru-5"]{--fantasy-night:#2b0415;--fantasy-mid:#98152a;--fantasy-hot:#c63365;--fantasy-glow:#ffde9e;--fantasy-gold:#ffe8a2;--fantasy-world:url('./assets/fantasy/world-maekru-5.svg')}
body[data-fantasy-theme="maekru-6"]{--fantasy-night:#23070b;--fantasy-mid:#750b18;--fantasy-hot:#cb3d16;--fantasy-glow:#ffe1a0;--fantasy-gold:#ffe8a2;--fantasy-world:url('./assets/fantasy/world-maekru-6.svg')}

body[data-fantasy-theme^="maekru-"] #app :is(.panel.glass:not(.luna-fantasy-shift),.header.glass,.banner.glass,.login-card.glass,.tile,.manage-card,.settings-row,.notice-row,.msg,.style-card,.calendar-style-item,.orbit-effect-choice,.role-card,.stat,.day-cell){background-color:rgba(48,6,16,.82)!important;border-color:rgba(252,183,80,.54)!important}
body[data-fantasy-theme^="maekru-"] #app :is(.panel.glass:not(.luna-fantasy-shift),.header.glass,.banner.glass,.login-card.glass){background-image:linear-gradient(135deg,rgba(225,71,44,.10),rgba(42,6,18,.83) 48%,rgba(237,169,65,.09)),var(--fantasy-world);background-size:cover;background-position:center}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav{background-color:rgba(42,4,13,.97)!important;border-color:rgba(255,196,90,.62)!important}
body[data-fantasy-theme^="maekru-"] #app .btn:not(.danger):not(.secondary){background:linear-gradient(100deg,#8e1328,#cc5029 39%,#e7aa48 76%,#ad1822)!important;box-shadow:0 0 13px rgba(255,174,72,.24),inset 0 1px rgba(255,239,181,.5)}
body[data-fantasy-theme^="maekru-"] #app :is(.panel.glass,.banner.glass,.tile,.manage-card,.settings-row)::before{background-image:linear-gradient(108deg,transparent,rgba(255,220,132,.22) 38%,transparent 51%);animation-duration:5.7s}
body[data-fantasy-theme^="maekru-"] #app :is(.panel.glass,.banner.glass,.tile,.manage-card,.settings-row)::after{color:#ffe6a5;text-shadow:0 0 11px #ffd37d;animation:luna-maekru-twinkle 2.8s ease-in-out infinite alternate}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-shift-bg{background-image:radial-gradient(circle at 77% 46%,rgba(255,174,72,.14),transparent 48%),repeating-radial-gradient(circle at 80% 48%,transparent 0 27px,rgba(255,190,92,.10) 28px 29px)}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-aura{border:2px dotted rgba(255,204,112,.76);box-shadow:0 0 28px rgba(255,176,64,.45),inset 0 0 19px rgba(255,194,92,.20)}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-rotor{border:2px dashed rgba(255,201,96,.45);animation-duration:12s}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-rotor.secondary{border-style:dotted;animation-duration:8s}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-glyph{width:35px;height:35px;display:grid;place-items:center}
.luna-maekru-glyph-image{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 8px #ffc66d)}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-destination{display:flex;width:27px;height:27px;align-items:center;justify-content:center}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-world-name{color:#ffe6aa;letter-spacing:.065em}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-progress>span{background:linear-gradient(90deg,#9e1520,#f5793e,#ffda79,#fff6c5)!important;box-shadow:0 0 19px #ffd06e}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-shift-character{filter:drop-shadow(0 0 17px rgba(255,160,70,.55))}
.luna-maekru-section{display:grid;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.luna-maekru-title{position:relative;overflow:hidden;border:1px solid #ffc46e;border-radius:20px;padding:17px 16px;color:#ffe7bc;background:radial-gradient(circle at 80% 10%,rgba(245,158,55,.25),transparent 52%),linear-gradient(125deg,#360611,#8b1723 52%,#380a16);box-shadow:inset 0 0 22px rgba(255,171,71,.16),0 0 14px rgba(203,75,33,.18)}
.luna-maekru-title::after{content:'✧';position:absolute;right:10px;top:0;font-size:50px;color:#ffe5ad;text-shadow:0 0 17px #ffba50;animation:luna-maekru-twinkle 3s ease-in-out infinite}
.luna-maekru-title>span{font-size:10px;letter-spacing:.14em;color:#ffd38e;font-weight:900}
.luna-maekru-title h3{color:#fff0c4;margin:5px 0;font-size:20px;text-shadow:0 0 12px #ff9a55}
.luna-maekru-title p{font-size:12px;line-height:1.6;color:#ffebd2;margin:0;max-width:92%}
.luna-maekru-grid .luna-fantasy-thumb{background:radial-gradient(circle at 52% 42%,rgba(247,144,59,.30),transparent 60%),linear-gradient(140deg,#3a0511,#7d1121 55%,#27020d);border:1px solid rgba(250,176,77,.58);box-shadow:inset 0 0 17px rgba(255,170,63,.26)}
.luna-maekru-grid .luna-fantasy-choice-title{color:#ffdea5}
.luna-maekru-grid .luna-fantasy-choice{background:#250914;color:#fff0d9;border:1px solid rgba(233,167,77,.48)}
.luna-maekru-grid .luna-fantasy-choice.chosen{border-color:#ffe6a5;box-shadow:0 0 19px rgba(255,177,73,.36)}
.luna-maekru-grid .luna-fantasy-choice>small{color:#e4b9ab}
.luna-maekru-grid .luna-fantasy-choice>strong{color:#ffcb7a}
/* Mae Kru V33.8.37: no six-icon floating stacks on top of character art.
   One real transparent relic image occupies each semantic icon slot. */
.luna-maekru-ui-icon{display:inline-block;width:1.35em;height:1.35em;max-width:none;object-fit:contain;vertical-align:-.29em;flex:none;pointer-events:none;filter:drop-shadow(0 0 4px rgba(255,190,82,.46));transform-origin:center;animation:luna-maekru-icon-glow 3.7s ease-in-out infinite}
body[data-fantasy-theme^="maekru-"] .banner .luna-maekru-ui-icon{width:1.45em;height:1.45em;vertical-align:-.32em}
body[data-fantasy-theme^="maekru-"] .banner.glass .stats .stat{display:inline-flex;align-items:center;gap:4px;white-space:normal;min-width:0}
body[data-fantasy-theme^="maekru-"] .banner.glass .stats .stat .luna-maekru-ui-icon{width:19px;height:19px;flex:none}
body[data-fantasy-theme^="maekru-"] :is(.tile-icon,.nav-icon,.role-icon)>.luna-maekru-ui-icon{display:block;width:clamp(25px,6.6vw,33px);height:clamp(25px,6.6vw,33px);margin:auto}
body[data-fantasy-theme^="maekru-"] .manage-card>span>.luna-maekru-ui-icon{display:block;width:31px;height:31px;margin:auto}
body[data-fantasy-theme^="maekru-"] .settings-row>span:first-child>.luna-maekru-ui-icon{width:27px;height:27px;display:block}
body[data-fantasy-theme^="maekru-"] .header-actions .icon-btn>.luna-maekru-ui-icon{width:23px;height:23px;vertical-align:middle}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-thumb-icon .luna-maekru-glyph-image{width:26px;height:26px;object-fit:contain}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-destination .luna-maekru-glyph-image{width:23px;height:23px;object-fit:contain}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-shift-heading .luna-maekru-ui-icon{width:20px;height:20px}
@keyframes luna-maekru-icon-glow{0%,100%{opacity:.92;transform:translateY(0) scale(.99);filter:drop-shadow(0 0 3px rgba(255,190,82,.34))}50%{opacity:1;transform:translateY(-1px) scale(1.05);filter:drop-shadow(0 0 8px rgba(255,207,112,.76))}}
@media(prefers-reduced-motion:reduce){.luna-maekru-ui-icon{animation:none!important}}
body.visuals-paused .luna-maekru-ui-icon{animation-play-state:paused!important}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-welcome-header{background:radial-gradient(circle at 50% 45%,rgba(255,178,67,.22),rgba(36,4,13,.36) 70%),var(--fantasy-world) center/cover}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-welcome-character{filter:drop-shadow(0 0 18px rgba(255,190,75,.48))}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-login-art{background:var(--fantasy-world) center/cover}
@keyframes luna-maekru-relic-float{0%,100%{transform:translate3d(0,2px,0) rotate(-8deg) scale(.91);opacity:.70}42%{transform:translate3d(2px,-7px,0) rotate(11deg) scale(1.12);opacity:1}77%{transform:translate3d(-3px,0,0) rotate(-5deg) scale(.99);opacity:.9}}
@keyframes luna-maekru-twinkle{0%,100%{opacity:.36;transform:scale(.8) rotate(-8deg)}50%{opacity:1;transform:scale(1.2) rotate(8deg)}}


/* Only Mae Kru art uses this character layout; ten other fantasy and five legacy themes remain unchanged. */
body[data-fantasy-theme^="maekru-"] .banner.glass .luna-fantasy-banner-art{right:0;bottom:0;z-index:0;max-width:43%;pointer-events:none}
body[data-fantasy-theme^="maekru-"] .banner.glass .luna-fantasy-banner-art img{object-fit:contain;object-position:right bottom}
body[data-fantasy-theme^="maekru-"] .banner.glass :is(h1,.sub,.employee-position-inline,.stats){position:relative;z-index:2}

body[data-fantasy-theme^="maekru-"] .luna-fantasy-thumb-icon{z-index:4;display:grid;place-items:center;width:32px;height:32px}
body[data-fantasy-theme^="maekru-"] .luna-fantasy-thumb-icon .luna-maekru-glyph-image{position:relative;left:auto;right:auto;bottom:auto;display:block;width:27px;height:27px;object-fit:contain;transform:none!important;filter:drop-shadow(0 0 5px #ffd17a)}
body[data-fantasy-theme^="maekru-"] .today-team-card .stats .stat{display:inline-flex;align-items:center;gap:4px}
body[data-fantasy-theme^="maekru-"] .today-team-card .stats .stat .luna-maekru-ui-icon{width:18px;height:18px}
body[data-fantasy-theme^="maekru-"] .luna-demo-quick .luna-maekru-ui-icon{width:27px;height:27px}

/* V33.8.40 · Mae Kru continuous navigation surface.
 * The previous background-color override did NOT remove the transparent gradient
 * from the generic fantasy .bottom-nav background shorthand, so moving world
 * wallpaper lines showed through the navigation rail. Keep this fix strictly
 * opt-in to the six Mae Kru themes; every legacy/fantasy theme is untouched. */
body[data-fantasy-theme^="maekru-"] #app .bottom-nav,
body.dark[data-fantasy-theme^="maekru-"] #app .bottom-nav{
  background:#380b16!important;
  background-image:none!important;
  background-color:#380b16!important;
  border:1px solid rgba(249,198,115,.85)!important;
  border-radius:23px;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  isolation:isolate;
  box-shadow:0 9px 28px rgba(19,2,8,.52),0 0 13px rgba(255,171,70,.23),inset 0 0 0 1px rgba(255,226,165,.10)!important;
}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav::before,
body[data-fantasy-theme^="maekru-"] #app .bottom-nav::after{content:none!important;display:none!important}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-btn{
  background:transparent!important;
  background-image:none!important;
  border:1px solid transparent;
  border-radius:16px;
  color:#ffebc5;
  box-shadow:none;
  min-width:0;
  padding:5px 1px;
}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-btn.current{
  background:rgba(248,178,80,.12)!important;
  background-image:none!important;
  border-color:rgba(255,213,130,.72)!important;
  color:#fff2d4!important;
  box-shadow:inset 0 0 9px rgba(255,193,84,.13)!important;
}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  margin:auto;
  background:radial-gradient(circle at 32% 24%,rgba(255,230,174,.20),rgba(167,43,37,.18) 35%,rgba(76,10,22,.96));
  border:1px solid rgba(249,198,115,.74);
  border-radius:13px;
  box-shadow:inset 0 1px 0 rgba(255,235,188,.14),0 7px 16px rgba(18,2,6,.20),0 0 11px rgba(255,179,78,.12);
  filter:none;
  transform:none!important;
}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-btn.current .nav-icon{
  background:radial-gradient(circle at 30% 18%,rgba(255,240,208,.28),rgba(193,62,42,.22) 34%,rgba(88,12,24,.98));
  border-color:rgba(255,220,145,.92);
  transform:none!important;
}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-icon>.luna-maekru-ui-icon{
  width:29px;
  height:29px;
  max-width:29px;
  max-height:29px;
  display:block;
  object-fit:contain;
  margin:auto;
}

/* V33.8.40 · coordinate Mae Kru welcome and login surfaces with the
 * same red-gold design system, without altering login/auth functions. */
body[data-fantasy-theme^="maekru-"] #app .login-card.glass{
  background:linear-gradient(148deg,#4b1020,#300914 57%,#21040d)!important;
  border-color:rgba(255,197,108,.72)!important;
  box-shadow:0 14px 32px rgba(24,1,9,.45),0 0 18px rgba(247,159,66,.15),inset 0 0 0 1px rgba(255,215,155,.12)!important;
}
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-login-art{
  background:var(--fantasy-world) center/cover no-repeat,#3c0c18!important;
  border-color:rgba(255,203,116,.63)!important;
}
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-login-art::after{
  background:linear-gradient(180deg,transparent,rgba(49,6,19,.14) 34%,rgba(49,6,19,.79))!important;
}
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-welcome-header{
  background:radial-gradient(circle at 50% 43%,rgba(255,190,82,.22),rgba(47,6,19,.36) 70%),var(--fantasy-world) center/cover no-repeat,#380b16!important;
  border-color:rgba(255,202,113,.80)!important;
}
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-welcome-header::after{
  background:linear-gradient(180deg,transparent,rgba(47,6,19,.12) 25%,rgba(47,6,19,.76))!important;
}
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-welcome-tag,
body[data-fantasy-theme^="maekru-"] #app .login-card.glass .caption{color:#ffebc5!important}
body[data-fantasy-theme^="maekru-"] #app .login-card.glass .login-logo{
  background:linear-gradient(145deg,#9b2030,#e5a14a)!important;
  box-shadow:0 0 17px rgba(249,168,78,.30),inset 0 0 0 1px rgba(255,234,180,.32);
}
@media(max-width:355px){
  body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-icon{
    width:38px;height:38px;min-width:38px;min-height:38px;
  }
  body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-icon>.luna-maekru-ui-icon{
    width:26px;height:26px;max-width:26px;max-height:26px;
  }
}
/* Complete the Mae Kru login color family: no leftover navy/blue fields. */
body[data-fantasy-theme^="maekru-"] #app .login-card.glass :is(input,select,textarea){
  background:#2b0915!important;
  background-image:none!important;
  color:#fff0d4!important;
  border-color:rgba(245,194,113,.58)!important;
  box-shadow:inset 0 0 10px rgba(255,187,95,.06)!important;
}
body[data-fantasy-theme^="maekru-"] #app .login-card.glass input::placeholder{color:#e1bdac!important}
body[data-fantasy-theme^="maekru-"] #app .login-card.glass .role-switch .role-card{
  background:#42101c!important;
  border-color:rgba(255,207,133,.48)!important;
  color:#ffe8c7!important;
}
body[data-fantasy-theme^="maekru-"] #app .login-card.glass .role-switch .role-card.selected{
  background:linear-gradient(130deg,#9d2632,#d98d45)!important;
  border-color:#ffd88f!important;
  color:#fff9e4!important;
}
body[data-fantasy-theme^="maekru-"] #app .login-card.glass .btn.secondary{
  background:#47101d!important;
  border-color:rgba(255,208,136,.55)!important;
  color:#fff0ce!important;
}


/* V33.8.40 · Mae Kru removes leftover light/white button surfaces.
 * Unify icon containers and compact action buttons so they match the red-gold
 * ritual style instead of generic pale cards. Scoped ONLY to Mae Kru themes. */
body[data-fantasy-theme^="maekru-"] #app :is(.header-actions .icon-btn,.sync-indicator,.back,.wallpaper-choice,.style-card,.calendar-style-item,.color-choice,.role-switch .role-card){
  background:linear-gradient(145deg,rgba(94,14,27,.97),rgba(60,9,20,.98) 46%,rgba(130,27,33,.95))!important;
  background-color:#4a0d1a!important;
  color:#ffe8c2!important;
  border:1px solid rgba(249,198,115,.62)!important;
  box-shadow:inset 0 1px 0 rgba(255,233,177,.16),0 8px 18px rgba(18,2,6,.23),0 0 11px rgba(255,170,70,.11)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
body[data-fantasy-theme^="maekru-"] #app :is(.header-actions .icon-btn,.sync-indicator,.back,.wallpaper-choice):active{
  transform:scale(.965) translateY(1px);
}
body[data-fantasy-theme^="maekru-"] #app .header-actions .icon-btn,
body[data-fantasy-theme^="maekru-"] #app .sync-indicator{
  border-radius:14px!important;
}
body[data-fantasy-theme^="maekru-"] #app .header-actions .icon-btn:hover,
body[data-fantasy-theme^="maekru-"] #app .header-actions .icon-btn:focus-visible,
body[data-fantasy-theme^="maekru-"] #app .sync-indicator:hover,
body[data-fantasy-theme^="maekru-"] #app .back:hover,
body[data-fantasy-theme^="maekru-"] #app .wallpaper-choice:hover,
body[data-fantasy-theme^="maekru-"] #app .style-card:hover,
body[data-fantasy-theme^="maekru-"] #app .calendar-style-item:hover,
body[data-fantasy-theme^="maekru-"] #app .color-choice:hover,
body[data-fantasy-theme^="maekru-"] #app .role-switch .role-card:hover{
  border-color:rgba(255,221,153,.82)!important;
  box-shadow:inset 0 1px 0 rgba(255,235,186,.20),0 10px 22px rgba(18,2,6,.28),0 0 14px rgba(255,183,78,.18)!important;
}
body[data-fantasy-theme^="maekru-"] #app .sync-indicator .sync-symbol{color:#ffd98e!important;text-shadow:0 0 8px rgba(255,184,74,.28)}
body[data-fantasy-theme^="maekru-"] #app .style-card small,
body[data-fantasy-theme^="maekru-"] #app .calendar-style-item small,
body[data-fantasy-theme^="maekru-"] #app .role-card small,
body[data-fantasy-theme^="maekru-"] #app .wallpaper-choice small{color:#f2cdb0!important}
body[data-fantasy-theme^="maekru-"] #app .style-card.active,
body[data-fantasy-theme^="maekru-"] #app .calendar-style-item.active,
body[data-fantasy-theme^="maekru-"] #app .color-choice.active,
body[data-fantasy-theme^="maekru-"] #app .role-switch .role-card.selected,
body[data-fantasy-theme^="maekru-"] #app .wallpaper-choice.chosen{
  background:linear-gradient(135deg,#8f1428,#c54728 40%,#e0a044 78%,#9d1423)!important;
  color:#fff7e5!important;
  border-color:#ffe09b!important;
  box-shadow:0 0 0 1px rgba(255,228,162,.25),0 12px 24px rgba(25,3,8,.33),0 0 18px rgba(255,179,79,.21)!important;
}
body[data-fantasy-theme^="maekru-"] #app .color-choice .color-preview,
body[data-fantasy-theme^="maekru-"] #app .calendar-style-item .calendar-swatch,
body[data-fantasy-theme^="maekru-"] #app .style-card .style-symbol{
  background:radial-gradient(circle at 30% 20%,rgba(255,214,141,.30),rgba(90,15,28,.88))!important;
  border:1px solid rgba(255,206,125,.42)!important;
  color:#ffe9bf!important;
  box-shadow:inset 0 1px 0 rgba(255,236,186,.12),0 0 9px rgba(255,171,69,.12)!important;
}
body[data-fantasy-theme^="maekru-"] #app .tile-icon,
body[data-fantasy-theme^="maekru-"] #app .manage-card>span,
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-icon{
  background:radial-gradient(circle at 32% 24%,rgba(255,230,174,.20),rgba(167,43,37,.18) 35%,rgba(76,10,22,.96) 76%)!important;
  border:1px solid rgba(249,198,115,.74)!important;
  color:#fff1d1!important;
  box-shadow:inset 0 1px 0 rgba(255,235,188,.14),0 7px 16px rgba(18,2,6,.20),0 0 11px rgba(255,179,78,.12)!important;
}
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-btn.current .nav-icon,
body[data-fantasy-theme^="maekru-"] #app .tile:active .tile-icon{
  background:radial-gradient(circle at 30% 18%,rgba(255,240,208,.28),rgba(193,62,42,.22) 34%,rgba(88,12,24,.98) 75%)!important;
  border-color:rgba(255,220,145,.92)!important;
  box-shadow:inset 0 1px 0 rgba(255,239,202,.20),0 8px 18px rgba(20,2,6,.24),0 0 14px rgba(255,194,96,.18)!important;
}
body[data-fantasy-theme^="maekru-"] #app .header-actions .icon-btn>.luna-maekru-ui-icon,
body[data-fantasy-theme^="maekru-"] #app .bottom-nav .nav-icon>.luna-maekru-ui-icon,
body[data-fantasy-theme^="maekru-"] #app .tile-icon>.luna-maekru-ui-icon,
body[data-fantasy-theme^="maekru-"] #app .manage-card>span>.luna-maekru-ui-icon{
  filter:drop-shadow(0 0 6px rgba(255,206,113,.60));
}
body[data-fantasy-theme^="maekru-"] #app .role-switch .role-card .role-icon,
body[data-fantasy-theme^="maekru-"] #app .style-card .style-symbol,
body[data-fantasy-theme^="maekru-"] #app .calendar-style-item .calendar-swatch{border-radius:16px}
body[data-fantasy-theme^="maekru-"] #app .back,
body[data-fantasy-theme^="maekru-"] #app .wallpaper-choice{min-height:42px}

/* V33.8.41: Mae Kru notification-category surface and nested cards.
   .notif-group.glass is NOT .panel.glass. Prior theme rules missed it,
   leaving a large white inherited glass surface on the notifications page. */
body[data-fantasy-theme^="maekru-"] #app details.notif-group.glass,
body.dark[data-fantasy-theme^="maekru-"] #app details.notif-group.glass{
  background:#350916!important;
  background-color:#350916!important;
  background-image:linear-gradient(145deg,#4b1021 0%,#350916 47%,#290811 100%)!important;
  color:#ffe9c5!important;
  border:1px solid rgba(250,199,110,.76)!important;
  border-radius:22px;
  box-shadow:0 8px 26px rgba(13,1,5,.37),inset 0 1px 0 rgba(255,220,150,.10),0 0 11px rgba(255,171,75,.13)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  isolation:isolate;
}
body[data-fantasy-theme^="maekru-"] #app details.notif-group.glass>summary,
body[data-fantasy-theme^="maekru-"] #app details.notif-group.glass>summary :is(span,b){
  color:#ffe6b4!important;
  background:transparent!important;
  text-shadow:0 0 8px rgba(255,169,78,.20);
}
body[data-fantasy-theme^="maekru-"] #app details.notif-group.glass .schedule-notice-bulk{
  background:transparent!important;
  border-color:rgba(250,186,104,.38)!important;
}
body[data-fantasy-theme^="maekru-"] #app details.notif-group.glass :is(.caption,small,p){color:#edd1bc!important}
body[data-fantasy-theme^="maekru-"] #app details.notif-group.glass .notice-category-items{
  background:transparent!important;
  border:0!important;
}
body[data-fantasy-theme^="maekru-"] #app .notice-category-items>.notification-card,
body[data-fantasy-theme^="maekru-"] #app .notice-row-wrapper.notification-card{
  background:linear-gradient(150deg,#501d29,#37101e 62%,#431523)!important;
  background-color:#431523!important;
  color:#fff0d7!important;
  border:1px solid rgba(239,175,103,.55)!important;
  box-shadow:inset 0 1px 0 rgba(255,224,167,.10),0 6px 16px rgba(12,1,4,.25)!important;
}
body[data-fantasy-theme^="maekru-"] #app .notification-card>.notice-row.notification-open{
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  color:#ffead0!important;
}
body[data-fantasy-theme^="maekru-"] #app .notification-card .notice-main b{color:#fff2d9!important}
body[data-fantasy-theme^="maekru-"] #app .notification-card .notice-main :is(p,small){color:#f0cdb6!important}
body[data-fantasy-theme^="maekru-"] #app .notification-card .notification-card-actions{
  background:transparent!important;
  border-color:rgba(250,184,104,.30)!important;
}
/* Keep neutral secondary actions in the same red-gold family. */
body[data-fantasy-theme^="maekru-"] #app :is(.btn.secondary,.pill:not(.selected),.callout,.badge:not(.warning):not(.good)){
  background:#431120!important;
  background-image:none!important;
  color:#ffe7c6!important;
  border:1px solid rgba(251,194,114,.47)!important;
}
/* Avoid global changes to meaningful red danger and status colors. */


/* V33.8.45 — Unified fantasy artwork, transparent logo slots and readable cards.
   Applies to all 16 fantasy worlds in BOTH installed PWAs; the five legacy
   app themes and five calendar designs remain unchanged. */
body[data-fantasy-theme] #app .luna-fantasy-welcome-header,
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-welcome-header{
  position:relative!important;isolation:isolate;display:grid!important;
  justify-items:center;align-content:start;gap:3px;
  min-height:210px!important;height:210px!important;
  padding:5px 12px 0!important;
  overflow:visible!important;
  background:transparent!important;background-color:transparent!important;
  background-image:none!important;
  border:0!important;border-radius:0!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-header::before{
  content:'';position:absolute;z-index:-1;inset:-10px -8px -8px;
  background:radial-gradient(ellipse at 50% 62%,rgba(var(--fantasy-rgb),.16),transparent 70%);
  pointer-events:none;border:0;box-shadow:none;animation:none;
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-header::after,
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-welcome-header::after{
  content:none!important;display:none!important;background:none!important;
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-crown{
  position:relative;z-index:5;display:block;max-width:100%;
  padding:1px 7px 0;font-size:clamp(18px,5.4vw,27px);line-height:1.3;
  letter-spacing:.035em;color:var(--fantasy-gold);overflow-wrap:anywhere;
  text-shadow:0 2px 7px rgba(9,3,8,.82),0 0 13px rgba(var(--fantasy-rgb),.60);
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-tag{
  position:relative;z-index:5;color:var(--fantasy-gold);
  background:rgba(30,9,23,.28);padding:1px 11px;border-radius:99px;
  font-size:11px;letter-spacing:.06em;
  text-shadow:0 1px 4px rgba(9,3,8,.9);
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-character,
body[data-fantasy-theme^="maekru-"] #app .luna-fantasy-welcome-character{
  position:absolute!important;z-index:1!important;left:50%;bottom:-5px!important;
  width:min(66%,245px)!important;height:194px!important;
  padding:0!important;border:0!important;border-radius:0!important;
  overflow:visible!important;background:transparent!important;
  background-image:none!important;box-shadow:none!important;
  filter:drop-shadow(0 0 13px rgba(var(--fantasy-rgb),.29));
  opacity:.84;pointer-events:none;
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-character img{
  width:100%;height:100%;object-fit:contain;object-position:center bottom;
  background:transparent!important;border:0!important;box-shadow:none!important;
}
body[data-fantasy-theme] #app .luna-fantasy-welcome-spark{z-index:2;opacity:.65}
body[data-fantasy-theme] #app .welcome-inner{gap:12px!important;}
body[data-fantasy-theme] #app .welcome-verified{position:relative;z-index:2;}
/* Original company logos can have genuine alpha channels; never paint a background
   over the image or its holder. A legacy matte detection can provide a display-only
   transparent derived PNG without editing the Supabase record. */
body[data-fantasy-theme] #app :is(.company-logo-holder,.company-preview,.company-logo,.brand-logo,.login-logo .brand-logo){
  background:transparent!important;background-color:transparent!important;
  background-image:none!important;box-shadow:none!important;
  border-color:transparent!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  mix-blend-mode:normal!important;
}
body[data-fantasy-theme] #app :is(.company-logo-holder,.company-preview,.company-logo,.brand-logo){
  filter:none!important;opacity:1!important;object-fit:contain!important;
}
/* Closed notification sections, widgets and dialogs also obey the active palette,
   not the white backgrounds supplied by a saved legacy app appearance. */
body[data-fantasy-theme] #app :is(details.notif-group.glass,.calendar-widget-open,.settings-row,.style-card,.calendar-style-item,.color-choice,.wallpaper-choice,.back,.icon-btn,.sync-indicator,.pill:not(.selected)){
  border-color:rgba(var(--fantasy-rgb),.55)!important;
  color:var(--ink)!important;
  background-color:rgba(16,15,36,.87)!important;
}
body[data-fantasy-theme^="maekru-"] #app :is(details.notif-group.glass,.calendar-widget-open,.settings-row,.style-card,.calendar-style-item,.color-choice,.wallpaper-choice,.back,.icon-btn,.sync-indicator,.pill:not(.selected)){
  background-color:rgba(56,10,23,.96)!important;
  border-color:rgba(248,186,104,.72)!important;
  color:#ffe9cd!important;
}
body[data-fantasy-theme] #app :is(.tile-icon,.nav-icon,.manage-card>span){
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
@media(max-width:380px){
 body[data-fantasy-theme] #app .luna-fantasy-welcome-header{height:185px!important;min-height:185px!important;}
 body[data-fantasy-theme] #app .luna-fantasy-welcome-character{height:176px!important;max-width:220px!important;}
 body[data-fantasy-theme] #app .luna-fantasy-welcome-crown{font-size:clamp(17px,5vw,22px);}
}
@media(prefers-reduced-motion:reduce){body[data-fantasy-theme] #app .luna-fantasy-welcome-character{animation:none!important;transform:translateX(-50%)!important}}

/* V33.8.45 surface audit completion: sections not named .panel, dialogs, picker
   menus and error notices used the legacy theme's opaque colors. Keep the
   active fantasy palette throughout. No selectors run in ordinary app themes. */
body[data-fantasy-theme] #app :is(details.notif-group.glass,.employee-picker-options,.employee-picker-options.picker-floating,.calendar-widget.glass,.notice-category-items){
  background:rgba(14,14,35,.94)!important;
  border-color:rgba(var(--fantasy-rgb),.48)!important;
  color:#f5edff!important;
}
body[data-fantasy-theme^="maekru-"] #app :is(details.notif-group.glass,.employee-picker-options,.employee-picker-options.picker-floating,.calendar-widget.glass,.notice-category-items){
  background:rgba(49,8,21,.96)!important;
  border-color:rgba(250,192,112,.66)!important;
  color:#ffedd3!important;
}
body[data-fantasy-theme] #app :is(.error,.company-empty-logo){
  color:#fff0ea!important;
  background:rgba(88,22,39,.84)!important;
  border:1px solid rgba(var(--fantasy-rgb),.50)!important;
}
body[data-fantasy-theme] #app .quick-search-fab{
  background:linear-gradient(140deg,var(--fantasy-mid),var(--fantasy-hot))!important;
  color:#fff9e8!important;
  border-color:rgba(var(--fantasy-rgb),.72)!important;
}
