@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-hebrew-wght-normal-DdnsCkLr.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-wght-normal-DM6njrJ3.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#2b2140;--cream:#fff8ee;--peach:#ff8a65;--peach-dk:#e86a45;--mint:#4db6ac;--sky:#8fd3ff;--lilac:#b39ddb;--sun:#ffd166;--rose:#f48fb1;--muted:#8a7fa3;--night:#1d1733;--panel:#fff8eef0;--display:"Fredoka Variable", "Arial Rounded MT Bold", sans-serif;--text:"Nunito Variable", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--ink);font-family:var(--text);background:#1d1733}a{color:var(--peach-dk)}button,input,select,textarea{font:inherit}.avatar{font-family:var(--display);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.home{min-height:100%;color:var(--cream);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.home h1{font-family:var(--display);margin:0;font-size:52px}.home p{color:#cfc6e6;margin:0 0 12px}.home a{color:var(--sun);font-size:18px}.live-root{background:#1d1733;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;overflow:hidden}.live-root.transparent{background:0 0}html:has(.live-root.transparent){background:0 0}html:has(.live-root.transparent) body{background:0 0}.stage{flex:none;position:relative;overflow:hidden}.canvas{transform-origin:0 0;width:1080px;height:1920px;font-family:var(--text);color:var(--ink);position:absolute;top:0;left:0;overflow:hidden}.backdrop{transition:background 3s;position:absolute;inset:0}.sky-day .backdrop{background:linear-gradient(#8fd3ff 0%,#c9ecff 45%,#fff3e0 100%)}.sky-dawn .backdrop{background:linear-gradient(#ffb4a2 0%,#ffd6c9 45%,#fff3e0 100%)}.sky-dusk .backdrop{background:linear-gradient(#ff8a65 0%,#ffb88c 40%,#ffe0c2 100%)}.sky-night .backdrop{background:linear-gradient(#141033 0%,#2a2360 50%,#453a7a 100%)}.stars span{background:#fff8d6;border-radius:50%;width:6px;height:6px;animation:2.8s ease-in-out infinite twinkle;position:absolute;box-shadow:0 0 10px #fff3b0}.reduced .stars span{animation:none}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:1}}@keyframes pop{0%{transform:translate(-50%)scale(.9)}60%{transform:translate(-50%)scale(1.05)}to{transform:translate(-50%)scale(1)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,.97)}}@keyframes hop{0%,to{transform:translateY(0)}30%{transform:translateY(-46px)scale(1.03,.97)}55%{transform:translateY(0)scale(1.05,.94)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes rise{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:1}to{opacity:0;transform:translateY(-260px)scale(1.1)}}@keyframes zzz{0%{opacity:0;transform:translate(0)scale(.6)}30%{opacity:1}to{opacity:0;transform:translate(60px,-120px)scale(1.2)}}@keyframes float-up{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-140px)}}@keyframes shake{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes shake-hard{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(5deg)}}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.06)}22%,85%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.95)}}@keyframes fall{0%{transform:translateY(-40px)rotate(0)}to{opacity:.3;transform:translateY(1500px)rotate(720deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}@keyframes fade-out{0%{opacity:1}to{opacity:.35}}.head{z-index:5;background:var(--panel);border-radius:36px;align-items:center;gap:20px;height:128px;padding:0 30px;display:flex;position:absolute;top:205px;left:40px;right:40px;box-shadow:0 10px 30px #2b21402e}.head-main{flex:1;min-width:0}.head-name{font-family:var(--display);white-space:nowrap;align-items:center;gap:14px;font-size:60px;font-weight:700;line-height:1.05;display:flex}.head-name>span:nth-child(2){text-overflow:ellipsis;overflow:hidden}.head-emoji{font-size:54px}.head-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:30px;font-weight:700;overflow:hidden}.clock{font-family:var(--display);font-variant-numeric:tabular-nums;background:#fff;border-radius:24px;align-items:center;gap:8px;padding:6px 18px;font-size:40px;font-weight:600;display:flex}.gen{background:var(--lilac);color:#fff;border-radius:999px;padding:4px 16px;font-size:20px;font-weight:800;position:absolute;top:-22px;right:34px}.demo-badge{background:var(--peach);color:#fff;font-family:var(--text);letter-spacing:.12em;border-radius:10px;padding:4px 12px;font-size:20px;font-weight:900}.ticker{z-index:15;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:999px;max-width:1000px;padding:10px 30px;font-size:30px;font-weight:700;animation:.35s ease-out pop;position:absolute;top:350px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 20px #2b214026}.ticker b{color:var(--peach-dk)}.ticker.idle{color:var(--muted);background:#fff8eecc;font-size:27px}.ticker.muted{color:var(--muted)}.ticker.big{background:var(--sun)}.scene{height:610px;position:absolute;top:410px;left:0;right:0}.room{position:absolute;inset:0}.floor{background:linear-gradient(#ffe0b2,#ffcc80);border-radius:50% 50% 40px 40px/60px 60px 40px 40px;height:150px;position:absolute;bottom:0;left:60px;right:60px;box-shadow:inset 0 8px #fff6}.sky-night .floor{background:linear-gradient(#7e6bb0,#5d4d93)}.items{pointer-events:none;justify-content:space-between;display:flex;position:absolute;bottom:18px;left:80px;right:80px}.item{flex-direction:column;align-items:center;gap:2px;width:92px;display:flex}.item img,.item span{object-fit:contain;text-align:center;width:64px;height:64px;font-size:52px;line-height:64px}.item small{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;opacity:.75;max-width:92px;font-size:16px;font-weight:800;overflow:hidden}.pet-wrap{width:540px;height:540px;margin-left:-270px;position:absolute;bottom:30px;left:50%}.pet-wrap .pet{animation:3.2s ease-in-out infinite bob}.pet-wrap.sleeping .pet{animation:3.6s ease-in-out infinite breathe}.pet.mood-sad,.pet.mood-sick{animation-duration:5s!important}.pet.mood-happy{animation:2.4s ease-in-out infinite hop!important}.react-jouer .pet,.react-jeu .pet,.react-fête .pet{animation:.6s ease-in-out 2 hop!important}.react-manger .pet,.react-repas .pet,.react-brosse .pet,.react-bain .pet{animation:.5s ease-in-out 2 wiggle!important}.reduced .pet{animation:none!important}.pet-wrap.fade{animation:6s forwards fade-out}.react-icon{margin-left:-40px;font-size:80px;animation:1.2s ease-out forwards float-up;position:absolute;top:40px;left:50%}.bubble{background:#fff;border-radius:60px;justify-content:center;align-items:center;width:120px;height:110px;font-size:64px;animation:1.6s ease-in-out infinite pulse;display:flex;position:absolute;top:20px;right:10px;box-shadow:0 8px 20px #2b21402e}.bubble:after{content:"";background:#fff;border-radius:50%;width:30px;height:30px;position:absolute;bottom:-14px;left:10px}.zzz{font-family:var(--display);color:#fff;text-shadow:0 2px 8px #2b214066;font-weight:700;position:absolute;top:40px;right:70px}.zzz span{opacity:0;font-size:54px;animation:3s ease-in infinite zzz;position:absolute}.zzz span:nth-child(2){animation-delay:1s}.zzz span:nth-child(3){animation-delay:2s}.hearts{pointer-events:none;position:absolute;inset:0}.hearts span{color:#ff5c8a;font-size:54px;animation:2s ease-out forwards rise;position:absolute;bottom:120px}.away{text-align:center;flex-direction:column;align-items:center;gap:8px;width:720px;display:flex;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.basket{font-size:190px;line-height:1;animation:2.5s ease-in-out infinite shake}.away-title{font-family:var(--display);font-size:56px;font-weight:700}.away-cta{font-size:40px;font-weight:800}.away-cta b{color:var(--peach-dk)}.away-bar{background:#2b214026;border-radius:13px;width:520px;height:26px;overflow:hidden}.away-bar div{background:var(--peach);border-radius:13px;height:100%;transition:width .4s}.away-count{color:var(--muted);font-size:28px;font-weight:800}.gauges{z-index:5;background:var(--panel);border-radius:32px;flex-direction:column;gap:8px;padding:16px 26px;display:flex;position:absolute;top:1032px;left:40px;right:40px;box-shadow:0 10px 30px #2b21402e}.gauge{grid-template-columns:50px 170px 1fr 170px;align-items:center;gap:12px;height:40px;display:grid}.g-icon{text-align:center;font-size:34px}.g-label{font-size:28px;font-weight:800}.g-bar{background:#2b21401a;border-radius:12px;height:24px;overflow:hidden}.g-fill{border-radius:12px;height:100%;transition:width .6s}.g-faim{background:#ffb74d}.g-proprete{background:#4fc3f7}.g-bonheur{background:#f06292}.g-energie{background:#ffd54f}.g-sante{background:#81c784}.g-cmd{color:var(--muted);text-align:right;font-size:24px;font-weight:800}.gauge.low .g-fill{background:#ef5350;animation:1s ease-in-out infinite blink}.gauge.low .g-cmd{color:#e53935}.reduced .gauge.low .g-fill{animation:none}.footer{z-index:5;gap:16px;height:128px;display:flex;position:absolute;top:1290px;left:40px;right:40px}.carers{background:var(--panel);border-radius:32px;flex:1;align-items:center;gap:14px;padding:12px 22px;display:flex;overflow:hidden;box-shadow:0 10px 30px #2b21402e}.carers-title{font-family:var(--display);writing-mode:vertical-rl;color:var(--peach-dk);font-size:26px;font-weight:700;transform:rotate(180deg)}.carers-empty{color:var(--muted);font-size:28px;font-weight:700}.carer{flex-direction:column;align-items:center;width:180px;display:flex;position:relative}.carer .medal{z-index:1;font-size:28px;position:absolute;top:-6px;left:34px}.carer-name{text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:22px;font-weight:800;overflow:hidden}.carer-pts{color:var(--muted);font-size:18px;font-weight:800}.next{background:var(--ink);color:#fff;text-align:center;border-radius:32px;flex-direction:column;justify-content:center;align-items:center;width:250px;display:flex}.next-label{opacity:.8;font-size:21px;font-weight:700}.next-value{font-family:var(--display);color:var(--sun);font-size:44px;font-weight:700;line-height:1.1}.next-sub{opacity:.7;font-size:18px}.vote{background:var(--panel);border-radius:40px;flex-direction:column;align-items:center;gap:22px;padding:40px;display:flex;position:absolute;inset:0 40px -360px;box-shadow:0 10px 30px #2b21402e}.vote-title{font-family:var(--display);text-align:center;font-size:56px;font-weight:700;line-height:1.1}.vote-options{flex-direction:column;gap:18px;width:100%;display:flex}.vote-option{background:#fff;border-radius:28px;grid-template-rows:auto 26px;grid-template-columns:110px 1fr 140px;align-items:center;column-gap:20px;padding:16px 26px;display:grid}.vote-emoji{text-align:center;font-size:90px;font-family:var(--display);color:var(--peach-dk);grid-row:span 2;font-weight:700}.vote-label{font-family:var(--display);text-transform:capitalize;font-size:48px;font-weight:600}.vote-cmd{color:var(--peach-dk);text-align:right;font-size:32px;font-weight:900}.vote-bar{background:#2b21401a;border-radius:11px;height:22px;overflow:hidden}.vote-bar div{background:var(--peach);border-radius:11px;height:100%;transition:width .4s}.vote-count{font-family:var(--display);text-align:right;font-size:34px;font-weight:700}.vote-timer{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--ink);font-size:72px;font-weight:700}.vote-timer.tie{color:var(--peach-dk);font-size:44px}.vote-voters{color:var(--muted);font-size:28px;font-weight:700}.naming{justify-content:center}.naming-cmd{font-family:var(--display);color:var(--peach-dk);background:#fff;border-radius:36px;padding:10px 50px;font-size:110px;font-weight:700}.naming-count{font-size:40px;font-weight:800}.hatching,.waiting,.departing{text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;gap:14px;padding-bottom:20px;display:flex;position:absolute;inset:0}.egg-wrap,.waiting-egg{width:460px;height:460px}.egg{transform-origin:50% 85%}.egg.shake{animation:1.2s ease-in-out infinite shake}.egg.shake-hard{animation:.5s ease-in-out infinite shake-hard}.reduced .egg{animation:none}.hatch-title,.waiting-title{font-family:var(--display);font-size:60px;font-weight:700}.waiting-sub{color:var(--muted);font-size:32px;font-weight:700}.departing{color:#fff;justify-content:center}.departing .pet-wrap{width:420px;height:420px;margin:0;position:relative;bottom:auto;left:auto}.dep-title{font-family:var(--display);font-size:58px;font-weight:700}.dep-sub{opacity:.85;font-size:30px;font-weight:700}.dep-carers{gap:40px;margin-top:10px;display:flex}.dep-carer{flex-direction:column;align-items:center;gap:6px;font-size:24px;font-weight:800;display:flex}.dep-timer{opacity:.6;font-size:24px}.waiting{justify-content:center}.memorial-title{font-family:var(--display);font-size:54px;font-weight:700}.memorial-card{background:var(--panel);border-radius:40px;flex-direction:column;align-items:center;padding:24px 50px;display:flex;box-shadow:0 10px 30px #2b21402e}.m-pet{width:280px;height:280px}.m-name{font-family:var(--display);font-size:58px;font-weight:700}.m-sub{color:var(--muted);font-size:28px;font-weight:700}.m-top{margin-top:6px;font-size:28px}.memorial-list{gap:22px;font-size:28px;font-weight:800;display:flex}.waiting-next{color:var(--peach-dk);font-size:32px;font-weight:800}.banner{z-index:30;text-align:center;border:8px solid var(--sun);background:#fff;border-radius:44px;width:900px;padding:30px 40px;animation:3.2s forwards banner-in;position:absolute;top:700px;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #2b214059}.banner.small{border-color:var(--lilac);padding:18px 30px;animation-duration:2.2s;top:560px}.banner-stage,.banner-birth{border-color:var(--peach)}.banner-depart{border-color:var(--lilac)}.banner-icon{font-size:90px;line-height:1}.banner.small .banner-icon{font-size:54px}.banner-title{font-family:var(--display);font-size:56px;font-weight:700;line-height:1.1}.banner.small .banner-title{font-size:38px}.banner-sub{color:var(--muted);margin-top:8px;font-size:32px;font-weight:700}.reduced .banner{animation-name:none}.confetti{pointer-events:none;z-index:25;position:absolute;inset:0}.confetti span{border-radius:4px;width:16px;height:26px;animation:2.4s ease-in forwards fall;position:absolute;top:160px}.paused{z-index:20;background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:14px 34px;font-size:32px;font-weight:800;position:absolute;top:940px;left:50%;transform:translate(-50%)}.alert-badge,.offline-badge{z-index:40;color:#fff;background:#ef5350;border-radius:14px;padding:8px 18px;font-size:24px;font-weight:800;position:absolute;top:120px;left:40px}.offline-badge{background:var(--ink)}.sound-hint{z-index:40;background:var(--ink);color:#fff;opacity:.8;border-radius:12px;padding:6px 14px;font-size:20px;position:absolute;top:120px;right:40px}.cam-zone{z-index:3;border:6px dashed #2b214059;border-radius:30px;position:absolute}.cam-zone.round{border-radius:50%}.safe>div{z-index:60;color:#b71c1c;text-align:center;background:#ef535047;border:3px dashed #ef5350;justify-content:center;align-items:center;font-size:24px;font-weight:900;display:flex;position:absolute}.safe-top{height:190px;top:0;left:0;right:0}.safe-right{writing-mode:vertical-rl;width:110px;height:700px;top:760px;right:0}.safe-bottom{height:480px;bottom:0;left:0;right:0}.adm,.adm-gate,.adm-loading{--cream:#fff8ee;--muted:#b3a8cc;--plum-line:#3d3360;--gold:#ffd166;--gold-hi:#ffe08a;--green:#2e9e6a;--ink:#2b2140;color:var(--cream);background:#17122b}.adm{min-height:100%;color:var(--cream);background:#17122b;font-size:14px}.adm-loading,.adm-gate{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100vh;padding:16px;display:flex}.adm-gate h1{font-family:var(--display);margin:0}.adm-gate input{width:min(420px,100%)}.adm-head{z-index:10;background:#1d1736;border-bottom:1px solid #352c5e;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex;position:sticky;top:0}.adm-brand{font-family:var(--display);margin-right:auto;font-size:20px}.adm-brand small{font-family:var(--text);color:var(--muted);margin-left:6px;font-size:13px}.adm-conn,.adm-net{border:1px solid var(--plum-line);border-radius:999px;padding:5px 10px;font-size:13px;font-weight:700}.adm-conn.connected,.adm-net.online{border-color:var(--green);background:#1f8a4c40}.adm-conn.connecting{border-color:var(--gold);background:#e3a53133}.adm-conn.error,.adm-net.offline{background:#c8361f4d;border-color:#ff6a4a}.adm-display{align-items:center;gap:4px;display:flex}.adm-display span{color:var(--muted);margin-right:4px}.adm-display button.on{background:var(--green);border-color:var(--green)}.adm-display button.on.demo{color:var(--ink);background:#ff6a4a;border-color:#ff6a4a}.adm-tabs{gap:4px;padding:10px 20px 0;display:flex;overflow-x:auto}.adm-tabs button{border-bottom:none;border-radius:10px 10px 0 0;position:relative}.adm-tabs button.on{color:var(--gold);background:#2a2250;border-color:#3d3360}.dot{background:#ff6a4a;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.adm-main{padding:16px 20px 80px}.grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:16px;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}@media (width<=480px){.grid,.grid.two{grid-template-columns:1fr}.adm-main,.adm-head{padding-left:16px;padding-right:16px}}.card{background:#211a3d;border:1px solid #352c5e;border-radius:16px;flex-direction:column;gap:10px;min-width:0;padding:18px;display:flex}.card.wide{overflow-x:auto}.card h2{font-family:var(--display);margin:0;font-size:18px;font-weight:600}.card h3{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:8px 0 0;font-size:12px}.hint{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.hint code{color:var(--cream)}.empty{color:var(--muted)}button{border:1px solid var(--plum-line);color:var(--cream);cursor:pointer;background:#2a2250;border-radius:10px;padding:8px 12px;font-weight:700}button:hover:not(:disabled){background:#352c5e}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--gold);color:var(--ink);border-color:var(--gold)}button.primary:hover:not(:disabled){background:var(--gold-hi)}button.danger{color:#ff9a7f;border-color:#ff6a4a}button.small{padding:5px 9px;font-size:12px}input,select{border:1px solid var(--plum-line);color:var(--cream);background:#2a2250;border-radius:10px;min-width:0;padding:8px 10px}input[type=checkbox]{width:16px;height:16px}input[type=range]{padding:0}label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}label.check{color:var(--cream);flex-direction:row;align-items:center;gap:8px}.row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.row>input{flex:1}.row>label{flex:1;min-width:120px}.row.four>label{min-width:70px}.btns{flex-wrap:wrap;gap:8px;display:flex}.btns.sticky{background:#1d1736;border:1px solid #352c5e;border-radius:14px;grid-column:1/-1;padding:10px;position:sticky;bottom:12px}.btns-inline{gap:4px;display:flex}.round-status{justify-content:space-between;align-items:center;gap:10px;display:flex}.phase{background:#352c5e;border-radius:999px;padding:3px 10px;font-weight:800}.phase.running{background:var(--green)}.phase.suspended{color:var(--ink);background:#ff6a4a}.phase.closing{background:var(--gold);color:var(--ink)}.big-timer{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--gold);font-size:40px}.alert{background:#c8361f40;border:1px solid #ff6a4a;border-radius:10px;padding:8px 12px;font-weight:700}.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.stats div{background:#2a2250;border-radius:10px;flex-direction:column;min-width:0;padding:8px 10px;display:flex}.stats b{text-overflow:ellipsis;white-space:nowrap;font-size:18px;overflow:hidden}.stats span{color:var(--muted);font-size:12px}.mini,.tbl{border-collapse:collapse;width:100%}.mini td,.tbl td,.tbl th{text-align:left;vertical-align:middle;border-bottom:1px solid #352c5e;padding:6px 8px}.tbl th{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.num{font-variant-numeric:tabular-nums;text-align:right!important}.mono{color:var(--muted);font-family:ui-monospace,monospace;font-size:12px}.mini .flag,.tbl .flag,.palmares .flag{vertical-align:middle}.tbl tr.unresolved td{background:#c8361f1f}.gift-img{object-fit:contain;width:32px;height:32px}input.pts{width:90px}.pill{background:#352c5e;border-radius:999px;margin-right:4px;padding:2px 8px;font-size:11px;font-weight:800;display:inline-block}.pill.validated{background:var(--green)}.pill.auto{background:#2d5fa8}.pill.unresolved,.pill.demo{color:var(--ink);background:#ff6a4a}.palmares{border-top:1px solid #352c5e;flex-direction:column;gap:6px;padding-top:10px;display:flex}.palmares h3{margin:0}.palmares .cols{grid-template-columns:1fr 1fr;gap:8px;display:grid}.palmares ol{flex-direction:column;gap:3px;margin:0;padding-left:20px;font-size:13px;display:flex}.palmares button{align-self:flex-start}.preview iframe{background:#17122b;border:1px solid #352c5e;border-radius:12px;align-self:center;width:270px;height:480px}.gift-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px;display:grid}.gift-grid button{justify-content:space-between;gap:6px;display:flex}.gift-grid b{color:#7be08f}.kv{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.st.error{color:#ff9a7f;font-weight:700}.st.connected{color:#7be08f;font-weight:700}.log{flex-direction:column;gap:2px;max-height:60vh;font-size:13px;display:flex;overflow-y:auto}.log-line{overflow-wrap:anywhere;border-left:3px solid #0000;border-radius:6px;padding:4px 6px}.log-line time{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:6px}.log-line em{color:var(--muted);font-style:normal}.log-line.ok{border-left-color:var(--green)}.log-line.ok em{color:#7be08f}.log-line.dup{border-left-color:#2d5fa8}.log-line.off{border-left-color:var(--gold)}.log-line.warn{background:#c8361f1a;border-left-color:#ff6a4a}.log-line.warn em{color:#ff9a7f}.adm-toast{background:var(--green);color:var(--cream);z-index:50;border-radius:12px;max-width:calc(100% - 32px);padding:10px 18px;font-weight:700;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.adm-toast.err{background:#c8361f}.adm-login{flex-direction:column;gap:12px;width:min(360px,100%);display:flex}.adm-login input{width:100%}.adm-error{color:#ff9a7f;margin:0;font-weight:700}textarea{border:1px solid var(--plum-line);color:var(--cream);resize:vertical;background:#2a2250;border-radius:10px;padding:8px 10px}.card h2 small{font-family:var(--text);color:var(--muted);font-size:13px}.phase.alive,.phase.hatching{background:var(--green)}.phase.paused{color:var(--ink);background:#ff8a65}.phase.speciesVote,.phase.naming,.phase.nameVote{background:var(--gold);color:var(--ink)}.phase.departing{color:var(--ink);background:#b39ddb}.sub{border-top:1px solid #352c5e;flex-direction:column;gap:8px;padding-top:10px;display:flex}.sub h3{margin:0}.sub button b{color:var(--gold);margin-left:4px}.gauges-mini{flex-direction:column;gap:4px;display:flex}.gauges-mini>div{grid-template-columns:120px 1fr 32px;align-items:center;gap:8px;font-size:13px;display:grid}.gauges-mini .bar{background:#352c5e;border-radius:5px;height:10px;overflow:hidden}.gauges-mini .bar div{background:var(--green);border-radius:5px;height:100%;transition:width .4s}.gauges-mini .low .bar div{background:#ef5350}.gauges-mini b{text-align:right;font-variant-numeric:tabular-nums}.proposals{flex-wrap:wrap;gap:6px;max-height:220px;display:flex;overflow-y:auto}.prop{border:1px solid var(--plum-line);cursor:pointer;background:#2a2250;border-radius:999px;padding:4px 10px}.prop.on{border-color:var(--gold);background:#3a3060}.prop b{color:var(--gold)}.calc{background:#2a2250;border-radius:10px;margin:0;padding:8px 12px;font-size:13px}.calc b{color:var(--gold)}.memorial{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.mem{background:#2a2250;border-radius:12px;flex-direction:column;gap:4px;padding:12px;display:flex}.mem header{justify-content:space-between;align-items:center;font-size:16px;display:flex}.mem p{margin:0;font-size:13px}.mem ul{color:var(--muted);margin:4px 0 0;padding-left:18px;font-size:12px}.mem summary{cursor:pointer;color:var(--muted);font-size:12px}
