/* v14.177: efectos de sala. Los activa un Owner con html[data-rfx="<clave>"] (ver js/roomfx.js).
   REGLA: solo se pintan el fondo, los paneles (cabecera, lista de usuarios, caja de texto) y las burbujas SIN personalizar.
   Nunca se tocan: color del nick, avatares y adornos, efectos de nick, estilos de burbuja (.bfx), color de burbuja elegido
   por el usuario (data-ubg) ni su color de texto (data-utxt). Las animaciones solo existen con data-rfx-motion="1". */

/* ---------- Base común ---------- */
html[data-rfx]{--wallpaper:none;--wallpaper-overlay:none;}
html[data-rfx] body{background-attachment:fixed;}
html[data-rfx] #app{background:transparent!important;backdrop-filter:none;-webkit-backdrop-filter:none;position:relative;z-index:1;}
html[data-rfx] .main{background:transparent;background-image:none;}
html[data-rfx] .userlist-banner{background-image:none;}
#rfx-back,#rfx-front{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;}
#rfx-back{z-index:0;}
#rfx-front{z-index:45;}
#rfx-flash{position:fixed;inset:0;pointer-events:none;z-index:46;background:radial-gradient(ellipse at 50% 0%,rgba(220,235,255,.85),rgba(150,190,255,.35) 55%,rgba(120,160,255,.1));opacity:0;}
html.rfx-flash #rfx-flash{opacity:.28;transition:opacity .04s ease-out;}
html:not(.rfx-flash) #rfx-flash{transition:opacity .5s ease-in;}
/* Adornos de la parte alta del chat (gotas, telarañas): por encima del fondo, por debajo de los mensajes */
html[data-rfx] .main::before,html[data-rfx] .main::after{content:none;}

/* ============ NEÓN ============ */
html[data-rfx="neon"]{--bg:#06030f;--bg-2:#06030f;--surface:#0c061c;--surface-2:#120a26;--surface-3:#1d1240;--border:#ff2fb0;--accent:#19e3ff;--accent-strong:#19e3ff;--accent-ink:#031018;--bubble-bg:#120a26;--bubble-bg-mine:#0b1c30;--text:#f6eeff;--text-muted:#b79ad9;--text-faint:#8466a8;}
html[data-rfx="neon"] body{background:radial-gradient(ellipse at 15% 0%,rgba(255,47,176,.30),transparent 52%),radial-gradient(ellipse at 95% 100%,rgba(25,227,255,.26),transparent 52%),#06030f;}
html[data-rfx="neon"] #app{border-color:rgba(255,47,176,.55);box-shadow:0 0 44px rgba(255,47,176,.28),inset 0 0 70px rgba(25,227,255,.06);}
html[data-rfx="neon"] header{background:rgba(9,4,22,.92);border-bottom:1.5px solid #19e3ff;box-shadow:0 2px 20px rgba(25,227,255,.6);}
html[data-rfx="neon"] .brand-title{background:none;-webkit-text-fill-color:#fff;color:#fff;text-shadow:0 0 4px #ff2fb0,0 0 12px rgba(255,47,176,.85);}
html[data-rfx="neon"] #sidebar-right{background:rgba(8,3,20,.9);border-left:1.5px solid #ff2fb0;box-shadow:-4px 0 24px rgba(255,47,176,.4);}
html[data-rfx="neon"] .userlist-banner{background:linear-gradient(90deg,#ff2fb0,#7b2cff);box-shadow:0 0 18px rgba(255,47,176,.6);}
html[data-rfx="neon"] .composer{border-top-color:#ff2fb0;}
html[data-rfx="neon"] .composer-bar{background:#0c061c;border:1.5px solid #ff2fb0;box-shadow:0 0 16px rgba(255,47,176,.55),inset 0 0 12px rgba(255,47,176,.15);}
html[data-rfx="neon"] .online-total-marker{border-color:#19e3ff;box-shadow:0 0 14px rgba(25,227,255,.6),inset 0 0 10px rgba(25,227,255,.2);}
html[data-rfx="neon"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1.5px solid #19e3ff;box-shadow:0 0 0 1px rgba(25,227,255,.25),0 0 10px rgba(25,227,255,.55),inset 0 0 10px rgba(25,227,255,.15);}
html[data-rfx="neon"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ff2fb0;box-shadow:0 0 0 1px rgba(255,47,176,.25),0 0 10px rgba(255,47,176,.6),inset 0 0 10px rgba(255,47,176,.18);}
html[data-rfx="neon"][data-rfx-motion="1"] .brand-title{animation:rfxFlick 6s linear infinite;}
@keyframes rfxFlick{0%,100%{opacity:1}93%{opacity:1}94%{opacity:.6}95%{opacity:1}97%{opacity:.75}98%{opacity:1}}

/* ============ SYNTHWAVE ============ */
html[data-rfx="synth"]{--bg:#1a0b3d;--bg-2:#1a0b3d;--surface:#24104f;--surface-2:#2f1566;--surface-3:#43208a;--border:#6b2fb8;--accent:#ff4fa3;--accent-strong:#ff7ac0;--accent-ink:#1a0b3d;--bubble-bg:rgba(60,22,120,.86);--bubble-bg-mine:rgba(150,35,120,.86);--text:#fff1fb;--text-muted:#d3a7f0;--text-faint:#a47ac8;}
html[data-rfx="synth"] body{background:linear-gradient(180deg,#12062e 0%,#3a0d6b 40%,#c0267e 68%,#ff8a4c 100%);}
html[data-rfx="synth"] body::before{content:"";position:fixed;left:50%;top:44%;width:340px;height:340px;margin-left:-170px;border-radius:50%;z-index:0;pointer-events:none;background:linear-gradient(180deg,#fff3a0 0%,#ffb04d 45%,#ff4fa3 100%);box-shadow:0 0 80px rgba(255,120,180,.7);-webkit-mask-image:repeating-linear-gradient(180deg,#000 0 22px,transparent 22px 27px);mask-image:repeating-linear-gradient(180deg,#000 0 22px,transparent 22px 27px);}
html[data-rfx="synth"] body::after{content:"";position:fixed;left:-20%;right:-20%;bottom:0;height:40%;pointer-events:none;z-index:0;opacity:.9;background:linear-gradient(180deg,rgba(255,138,76,0),rgba(18,6,46,.55)),repeating-linear-gradient(90deg,rgba(255,79,163,.85) 0 2px,transparent 2px 70px),repeating-linear-gradient(0deg,rgba(255,79,163,.85) 0 2px,transparent 2px 38px);transform:perspective(380px) rotateX(58deg);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(180deg,transparent,#000 40%);mask-image:linear-gradient(180deg,transparent,#000 40%);}
html[data-rfx="synth"] #app{background:rgba(26,8,64,.18)!important;border-color:rgba(255,79,163,.45);}
html[data-rfx="synth"] header{background:rgba(30,10,72,.82);border-bottom:2px solid #ff4fa3;box-shadow:0 4px 24px rgba(255,79,163,.4);}
html[data-rfx="synth"] .brand-title{background:linear-gradient(180deg,#fff3a0,#ff6ec7 60%,#8a5bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-style:italic;letter-spacing:.04em;filter:drop-shadow(0 0 8px rgba(255,79,163,.7));}
html[data-rfx="synth"] #sidebar-right{background:rgba(28,9,68,.72);border-left:2px solid #ff4fa3;}
html[data-rfx="synth"] .userlist-banner{background:linear-gradient(90deg,#ff4fa3,#ffb04d);}
html[data-rfx="synth"] .composer-bar{background:rgba(36,16,79,.88);border:1.5px solid #ff4fa3;box-shadow:0 0 18px rgba(255,79,163,.4);}
html[data-rfx="synth"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,122,192,.6);box-shadow:0 4px 18px rgba(255,79,163,.28);}
html[data-rfx="synth"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffd36b;}

/* ============ MATRIX ============ */
html[data-rfx="matrix"]{--bg:#000;--bg-2:#000;--surface:#020d05;--surface-2:#04170a;--surface-3:#082b12;--border:#0f6b2c;--accent:#00ff66;--accent-strong:#5dff9a;--accent-ink:#00150a;--bubble-bg:rgba(2,18,8,.92);--bubble-bg-mine:rgba(4,40,16,.94);--text:#b8ffcf;--text-muted:#4fbf75;--text-faint:#2f8a50;--font-body:'IBM Plex Mono','Courier New',monospace;--font-display:'IBM Plex Mono','Courier New',monospace;}
html[data-rfx="matrix"] body{background:#000;}
html[data-rfx="matrix"] #app{border-color:#0f6b2c;box-shadow:0 0 30px rgba(0,255,100,.18);}
html[data-rfx="matrix"] header{background:rgba(1,10,4,.86);border-bottom:1px solid #00ff66;box-shadow:0 2px 14px rgba(0,255,100,.35);}
html[data-rfx="matrix"] #sidebar-right{background:rgba(1,10,4,.86);border-left:1px solid #0f6b2c;}
html[data-rfx="matrix"] .brand-title{color:#00ff66;text-shadow:0 0 8px #00ff66;}
html[data-rfx="matrix"] .userlist-banner{background:#052e12;border-bottom:1px solid #00ff66;}
html[data-rfx="matrix"] .userlist-banner-text{color:#00ff66;text-shadow:0 0 6px #00ff66;}
html[data-rfx="matrix"] .composer-bar{background:#020d05;border:1px solid #00ff66;border-radius:6px;box-shadow:0 0 14px rgba(0,255,100,.3);}
html[data-rfx="matrix"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid #0f8a3a;border-radius:4px;box-shadow:0 0 10px rgba(0,255,100,.15);}
html[data-rfx="matrix"] #message-list .msg-bubble:not(.bfx):not([data-ubg]):not([data-utxt]){color:#8dffb0!important;text-shadow:0 0 5px rgba(0,255,100,.5);}
html[data-rfx="matrix"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#00ff66;}

/* ============ AURORA ============ */
html[data-rfx="aurora"]{--bg:#050a1c;--bg-2:#050a1c;--surface:#0b1738;--surface-2:#10204a;--surface-3:#182c5e;--border:#2c4a8a;--accent:#4fe3c1;--accent-strong:#8ff0d8;--accent-ink:#04201a;--bubble-bg:#12214c;--bubble-bg-mine:#10454e;--text:#effaff;--text-muted:#a9c8e0;--text-faint:#7c9cb8;}
html[data-rfx="aurora"] body{background:#050a1c;}
html[data-rfx="aurora"] body::before{content:"";position:fixed;inset:-20%;z-index:0;pointer-events:none;background:radial-gradient(40% 35% at 25% 30%,rgba(0,230,160,.55),transparent 70%),radial-gradient(38% 40% at 70% 22%,rgba(110,90,255,.55),transparent 70%),radial-gradient(45% 35% at 55% 78%,rgba(255,80,190,.42),transparent 70%),radial-gradient(30% 30% at 12% 85%,rgba(40,170,255,.45),transparent 70%);filter:blur(30px);}
html[data-rfx="aurora"][data-rfx-motion="1"] body::before{animation:rfxAur 14s ease-in-out infinite alternate;}
@keyframes rfxAur{to{transform:translate3d(4%,-3%,0) rotate(8deg) scale(1.1);}}
html[data-rfx="aurora"] #app{border-color:rgba(79,227,193,.35);}
html[data-rfx="aurora"] header,html[data-rfx="aurora"] #sidebar-right{background:#0b1738;border-color:#2c4a8a;}
html[data-rfx="aurora"] .userlist-banner{background:linear-gradient(90deg,#1f9c85,#5a4acf);}
html[data-rfx="aurora"] .composer-bar{background:#10204a;border:1.5px solid #4fe3c1;}
html[data-rfx="aurora"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(79,227,193,.45);box-shadow:0 4px 16px rgba(0,0,0,.25);}

/* ============ NIEVE ============ */
html[data-rfx="snow"]{--bg:#0b1f3a;--bg-2:#0b1f3a;--surface:#102a4d;--surface-2:#173660;--surface-3:#21497f;--border:#3c6aa6;--accent:#8fd0ff;--accent-strong:#bfe4ff;--accent-ink:#06182e;--bubble-bg:rgba(30,66,112,.92);--bubble-bg-mine:rgba(48,100,160,.94);--text:#f2f9ff;--text-muted:#a8c6e6;--text-faint:#7c9cc4;}
html[data-rfx="snow"] body{background:linear-gradient(180deg,#071428 0%,#0f2c52 55%,#2a5e96 100%);}
html[data-rfx="snow"] #app{background:rgba(8,22,44,.3)!important;border-color:rgba(160,205,255,.4);}
html[data-rfx="snow"] header{background:rgba(14,40,76,.88);border-bottom:1px solid rgba(190,225,255,.5);}
html[data-rfx="snow"] #sidebar-right{background:rgba(14,40,76,.8);border-left:1px solid rgba(190,225,255,.5);}
html[data-rfx="snow"] .userlist-banner{background:linear-gradient(90deg,#4f9bff,#9bd4ff);}
html[data-rfx="snow"] .composer-bar{background:rgba(18,48,88,.92);border:1px solid rgba(190,225,255,.55);}
html[data-rfx="snow"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(200,230,255,.5);box-shadow:0 0 12px rgba(150,205,255,.28),inset 0 1px 0 rgba(255,255,255,.4);}

/* ============ SAKURA ============ */
html[data-rfx="sakura"]{--bg:#2a0f2a;--bg-2:#2a0f2a;--surface:#3a1838;--surface-2:#4b2048;--surface-3:#66305f;--border:#d87aa9;--accent:#ff8fbf;--accent-strong:#ffb3d3;--accent-ink:#3a0d2a;--bubble-bg:rgba(88,28,80,.92);--bubble-bg-mine:rgba(138,40,104,.94);--text:#fff0f7;--text-muted:#f0b9d3;--text-faint:#c98aaa;}
html[data-rfx="sakura"] body{background:linear-gradient(180deg,#3b1239 0%,#8f2f6a 55%,#ffa3c4 100%);}
html[data-rfx="sakura"] #app{background:rgba(60,15,55,.28)!important;border-color:rgba(255,170,205,.5);}
html[data-rfx="sakura"] header{background:rgba(80,20,72,.82);border-bottom:1px solid rgba(255,170,205,.7);}
html[data-rfx="sakura"] .brand-title{color:#ffd1e5;text-shadow:0 0 12px rgba(255,120,180,.7);}
html[data-rfx="sakura"] #sidebar-right{background:rgba(70,18,64,.78);border-left:1px solid rgba(255,170,205,.7);}
html[data-rfx="sakura"] .userlist-banner{background:linear-gradient(90deg,#ff7ab0,#ffc2da);}
html[data-rfx="sakura"] .userlist-banner-text{color:#5a1840;}
html[data-rfx="sakura"] .composer-bar{background:rgba(70,18,64,.9);border:1.5px solid #ff8fbf;box-shadow:0 0 14px rgba(255,140,190,.35);}
html[data-rfx="sakura"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,170,205,.7);box-shadow:0 4px 14px rgba(255,120,170,.3);}

/* ============ RETRO CRT ============ */
html[data-rfx="crt"]{--bg:#120c02;--bg-2:#120c02;--surface:#1d1404;--surface-2:#2a1c06;--surface-3:#3a2808;--border:#8a5a10;--accent:#ffb000;--accent-strong:#ffd060;--accent-ink:#1d1404;--bubble-bg:rgba(34,22,4,.94);--bubble-bg-mine:rgba(60,38,6,.95);--text:#ffcf66;--text-muted:#b8841f;--text-faint:#8a6216;--font-body:'IBM Plex Mono','Courier New',monospace;--font-display:'IBM Plex Mono','Courier New',monospace;}
html[data-rfx="crt"] body{background:radial-gradient(ellipse at center,#2b1a02 0%,#120c02 70%,#050300 100%);}
html[data-rfx="crt"] body::after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.4) 100%);}
html[data-rfx="crt"] #app{border-color:#8a5a10;box-shadow:0 0 40px rgba(255,176,0,.18),inset 0 0 80px rgba(255,150,0,.08);}
html[data-rfx="crt"] header,html[data-rfx="crt"] #sidebar-right{background:rgba(24,15,3,.92);border-color:#8a5a10;}
html[data-rfx="crt"] .brand-title{color:#ffb000;text-shadow:0 0 8px rgba(255,176,0,.9);letter-spacing:.06em;}
html[data-rfx="crt"] .userlist-banner{background:#3a2808;}
html[data-rfx="crt"] .userlist-banner-text{color:#ffb000;}
html[data-rfx="crt"] .composer-bar{background:#1d1404;border:1px solid #ffb000;border-radius:4px;}
html[data-rfx="crt"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid #8a5a10;border-radius:2px;}
html[data-rfx="crt"] #message-list .msg-bubble:not(.bfx):not([data-ubg]):not([data-utxt]){color:#ffc84d!important;text-shadow:0 0 6px rgba(255,176,0,.55);}
html[data-rfx="crt"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffb000;}
html[data-rfx="crt"][data-rfx-motion="1"] body::after{animation:rfxCrt 7s steps(60) infinite;}
@keyframes rfxCrt{0%,100%{opacity:1}50%{opacity:.93}}

/* ============ ORO · GRAN FINAL ============ */
html[data-rfx="gold"]{--bg:#0b0803;--bg-2:#0b0803;--surface:#16100a;--surface-2:#211809;--surface-3:#33250c;--border:#8f6a14;--accent:#f5c542;--accent-strong:#ffe08a;--accent-ink:#1c1303;--bubble-bg:rgba(32,23,8,.94);--bubble-bg-mine:rgba(58,40,8,.95);--text:#fff4d6;--text-muted:#cfae62;--text-faint:#9a7c3a;}
html[data-rfx="gold"] body{background:radial-gradient(ellipse at 50% 110%,rgba(245,197,66,.28),transparent 55%),linear-gradient(180deg,#050301 0%,#140d04 60%,#2a1b05 100%);}
html[data-rfx="gold"] body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:conic-gradient(from 180deg at 50% -8%,transparent 0 62deg,rgba(255,215,110,.24) 66deg 72deg,transparent 76deg 84deg,rgba(255,215,110,.17) 88deg 93deg,transparent 97deg 262deg,rgba(255,215,110,.17) 267deg 272deg,transparent 276deg 284deg,rgba(255,215,110,.24) 288deg 294deg,transparent 298deg);transform-origin:50% 0;}
html[data-rfx="gold"][data-rfx-motion="1"] body::before{animation:rfxBeams 9s ease-in-out infinite alternate;}
@keyframes rfxBeams{from{transform:rotate(-4deg);opacity:.75}to{transform:rotate(4deg);opacity:1}}
html[data-rfx="gold"] #app{border-color:rgba(245,197,66,.55);box-shadow:0 0 50px rgba(245,197,66,.2),inset 0 0 80px rgba(245,197,66,.05);}
html[data-rfx="gold"] header{background:linear-gradient(180deg,rgba(34,24,6,.96),rgba(14,10,3,.96));border-bottom:2px solid transparent;border-image:linear-gradient(90deg,#8f6a14,#ffe9a0,#c8962a,#ffe9a0,#8f6a14) 1;box-shadow:0 4px 24px rgba(245,197,66,.3);position:relative;overflow:hidden;}
html[data-rfx="gold"] header::after{content:"";position:absolute;top:0;bottom:0;left:-30%;width:30%;background:linear-gradient(100deg,transparent,rgba(255,240,170,.28),transparent);transform:skewX(-18deg);pointer-events:none;}
html[data-rfx="gold"][data-rfx-motion="1"] header::after{animation:rfxShimmer 5.5s ease-in-out infinite;}
@keyframes rfxShimmer{0%,35%{left:-35%}80%,100%{left:120%}}
html[data-rfx="gold"] .brand-title{background:linear-gradient(180deg,#fff6c9,#f5c542 55%,#b8860b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 0 8px rgba(245,197,66,.55));letter-spacing:.03em;}
html[data-rfx="gold"] #sidebar-right{background:rgba(16,11,4,.9);border-left:2px solid #8f6a14;box-shadow:-4px 0 24px rgba(245,197,66,.16);}
html[data-rfx="gold"] .userlist-banner{background:linear-gradient(90deg,#8f6a14,#ffe9a0 50%,#8f6a14);}
html[data-rfx="gold"] .userlist-banner-text{color:#2a1a00;text-shadow:0 1px 0 rgba(255,255,255,.4);}
html[data-rfx="gold"] .composer-bar{background:#16100a;border:1.5px solid #c8962a;box-shadow:0 0 16px rgba(245,197,66,.3),inset 0 0 12px rgba(245,197,66,.08);}
html[data-rfx="gold"] .online-total-marker{border-color:#c8962a;box-shadow:0 0 12px rgba(245,197,66,.35);}
html[data-rfx="gold"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(245,197,66,.5);box-shadow:0 0 12px rgba(245,197,66,.18),inset 0 1px 0 rgba(255,235,160,.18);}
html[data-rfx="gold"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border:1.5px solid #f5c542;box-shadow:0 0 16px rgba(245,197,66,.35),inset 0 1px 0 rgba(255,235,160,.3);}

/* ============ HALLOWEEN ============ */
html[data-rfx="halloween"]{--bg:#0d0612;--bg-2:#0d0612;--surface:#1a0b22;--surface-2:#26112f;--surface-3:#3a1a46;--border:#6e1626;--accent:#ff7a1a;--accent-strong:#ffa04d;--accent-ink:#1a0800;--bubble-bg:rgba(36,14,46,.94);--bubble-bg-mine:rgba(66,18,36,.95);--text:#f6e9ff;--text-muted:#b99ad0;--text-faint:#85679c;}
html[data-rfx="halloween"] body{background:radial-gradient(ellipse at 50% 120%,rgba(120,20,40,.45),transparent 55%),linear-gradient(180deg,#07030b 0%,#150a1f 55%,#2a0f2a 100%);}
html[data-rfx="halloween"] body::before{content:"";position:fixed;right:30%;top:9%;width:150px;height:150px;border-radius:50%;z-index:0;pointer-events:none;background:radial-gradient(circle at 34% 30%,rgba(120,80,40,.35) 0 9%,transparent 10%),radial-gradient(circle at 66% 58%,rgba(120,80,40,.28) 0 12%,transparent 13%),radial-gradient(circle at 44% 74%,rgba(120,80,40,.25) 0 7%,transparent 8%),radial-gradient(circle at 40% 38%,#ffe9bd,#ffc874 70%,#ee9a3c);box-shadow:0 0 70px 20px rgba(255,170,70,.35);opacity:.9;}
html[data-rfx="halloween"] body::after{content:"";position:fixed;left:-10%;right:-10%;bottom:-6%;height:45%;z-index:0;pointer-events:none;background:radial-gradient(40% 60% at 20% 100%,rgba(190,150,220,.28),transparent 70%),radial-gradient(45% 55% at 62% 100%,rgba(160,120,200,.24),transparent 70%),radial-gradient(35% 50% at 92% 100%,rgba(190,150,220,.22),transparent 70%);filter:blur(14px);}
html[data-rfx="halloween"][data-rfx-motion="1"] body::after{animation:rfxFog 16s ease-in-out infinite alternate;}
@keyframes rfxFog{to{transform:translateX(7%)}}
html[data-rfx="halloween"] #app{background:rgba(10,4,16,.3)!important;border-color:rgba(130,24,44,.6);box-shadow:0 0 40px rgba(180,30,50,.18);}
html[data-rfx="halloween"] header{background:rgba(18,7,26,.94);border-bottom:3px solid #8e1220;}
html[data-rfx="halloween"] .brand-title{color:#ff9a3d;text-shadow:0 0 12px rgba(255,120,20,.65),0 2px 0 #4a0a14;}
html[data-rfx="halloween"] #sidebar-right{background:rgba(20,8,28,.9);border-left:2px solid #6e1626;}
html[data-rfx="halloween"] .userlist-banner{background:linear-gradient(90deg,#8e1220,#ff7a1a);}
html[data-rfx="halloween"] .composer-bar{background:#1a0b22;border:1.5px solid #8e1220;box-shadow:0 0 14px rgba(180,30,50,.35);}
/* Gotas de sangre colgando bajo la cabecera */
html[data-rfx="halloween"] .main::before{content:"";position:absolute;left:0;right:0;top:0;height:64px;z-index:6;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='64' viewBox='0 0 420 64'%3E%3Cpath fill='%23a3121f' d='M0 0H420V5C410 5 407 9 406 20C405 30 399 30 398 20C397 10 392 5 380 5C366 5 362 9 361 34C360 46 351 46 350 34C349 10 344 5 330 5C316 5 313 8 312 15C311 22 305 22 304 15C303 8 298 5 285 5C270 5 266 9 265 26C264 36 257 36 256 26C255 9 250 5 236 5C222 5 219 10 218 42C217 58 206 58 205 42C204 9 199 5 185 5C171 5 168 8 167 18C166 28 160 28 159 18C158 8 153 5 140 5C126 5 122 9 121 30C120 40 113 40 112 30C111 9 106 5 92 5C78 5 75 8 74 14C73 21 67 21 66 14C65 8 60 5 46 5C32 5 29 9 28 24C27 34 20 34 19 24C18 9 13 5 0 5Z'/%3E%3Cpath fill='%23d3202f' fill-opacity='.55' d='M0 0H420V2H0Z'/%3E%3C/svg%3E") 0 0/420px 64px repeat-x;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));}
/* Telaraña en la esquina */
html[data-rfx="halloween"] .main::after{content:"";position:absolute;right:0;top:0;width:150px;height:150px;z-index:5;pointer-events:none;opacity:.5;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 150 150'%3E%3Cg fill='none' stroke='%23d9cfe6' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M150 0L0 0M150 0L150 150M150 0L20 120M150 0L60 150M150 0L0 60M150 0L110 150M150 0L0 20'/%3E%3Cpath d='M135 0Q130 25 150 30M110 0Q100 45 150 55M80 0Q68 70 150 82M50 0Q38 100 150 112M20 0Q6 130 150 140'/%3E%3C/g%3E%3C/svg%3E") no-repeat right top/150px 150px;}
html[data-rfx="halloween"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid #5d1424;box-shadow:0 0 10px rgba(150,20,40,.3);background-image:radial-gradient(circle at 14% calc(100% + 5px),#b3121f 0 5px,transparent 6px),radial-gradient(circle at 52% calc(100% + 4px),#b3121f 0 4px,transparent 5px),radial-gradient(circle at 86% calc(100% + 6px),#b3121f 0 6px,transparent 7px);}
html[data-rfx="halloween"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ff7a1a;box-shadow:0 0 12px rgba(255,120,20,.35);}

/* ============ TORMENTA ELÉCTRICA ============ */
html[data-rfx="storm"]{--bg:#060a14;--bg-2:#060a14;--surface:#0c1424;--surface-2:#122036;--surface-3:#1c3050;--border:#2c4a78;--accent:#8fb8ff;--accent-strong:#c4dcff;--accent-ink:#06101e;--bubble-bg:rgba(14,24,44,.93);--bubble-bg-mine:rgba(22,44,82,.94);--text:#eaf2ff;--text-muted:#8fa8cc;--text-faint:#637b9e;}
html[data-rfx="storm"] body{background:linear-gradient(180deg,#04070f 0%,#0b1426 55%,#16253d 100%);}
html[data-rfx="storm"] body::before{content:"";position:fixed;left:-10%;right:-10%;top:-8%;height:55%;z-index:0;pointer-events:none;background:radial-gradient(30% 50% at 12% 20%,rgba(70,90,125,.7),transparent 70%),radial-gradient(34% 55% at 40% 10%,rgba(55,72,105,.8),transparent 70%),radial-gradient(30% 50% at 68% 22%,rgba(75,95,130,.65),transparent 70%),radial-gradient(34% 55% at 92% 8%,rgba(55,72,105,.8),transparent 70%);filter:blur(18px);}
html[data-rfx="storm"][data-rfx-motion="1"] body::before{animation:rfxClouds 24s ease-in-out infinite alternate;}
@keyframes rfxClouds{to{transform:translateX(6%)}}
html[data-rfx="storm"] #app{background:rgba(5,9,18,.28)!important;border-color:rgba(90,130,200,.4);box-shadow:0 0 36px rgba(110,160,255,.12);}
html[data-rfx="storm"] header{background:rgba(10,18,34,.92);border-bottom:1px solid #4a78c0;box-shadow:0 2px 18px rgba(120,170,255,.25);}
html[data-rfx="storm"] .brand-title{color:#dbe9ff;text-shadow:0 0 10px rgba(140,185,255,.8);}
html[data-rfx="storm"] #sidebar-right{background:rgba(9,16,30,.9);border-left:1px solid #2c4a78;}
html[data-rfx="storm"] .userlist-banner{background:linear-gradient(90deg,#2a4f94,#6a9aea);}
html[data-rfx="storm"] .composer-bar{background:#0c1424;border:1.5px solid #3a68b0;box-shadow:0 0 14px rgba(110,160,255,.25);}
html[data-rfx="storm"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(140,184,255,.4);box-shadow:0 0 10px rgba(110,160,255,.15);transition:box-shadow .08s,border-color .08s;}
html[data-rfx="storm"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(170,208,255,.65);}
/* El relámpago ilumina la sala un instante (nunca más de 2 destellos por rayo, y muy suaves para no alterar los colores de nadie) */
html.rfx-flash[data-rfx="storm"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border-color:#d6e8ff;box-shadow:0 0 18px rgba(190,220,255,.8);}

/* ============ DISCOTECA ============ */
html[data-rfx="disco"]{--bg:#0d0220;--bg-2:#0d0220;--surface:#170533;--surface-2:#230a4a;--surface-3:#361466;--border:#a22bd6;--accent:#ff3df0;--accent-strong:#ff8af6;--accent-ink:#1a0020;--bubble-bg:#1d0b3c;--bubble-bg-mine:#2a0a45;--text:#fdf2ff;--text-muted:#cfa6ee;--text-faint:#9a72be;}
html[data-rfx="disco"] body{background:radial-gradient(ellipse at 50% 0%,rgba(255,61,240,.22),transparent 60%),radial-gradient(ellipse at 50% 110%,rgba(61,240,255,.18),transparent 55%),linear-gradient(180deg,#09011a 0%,#1a0538 60%,#080a2c 100%);}
html[data-rfx="disco"] body::before,html[data-rfx="disco"] body::after{content:"";position:fixed;left:-30%;right:-30%;top:0;height:135%;z-index:0;pointer-events:none;transform-origin:50% 0;}
html[data-rfx="disco"] body::before{background:conic-gradient(from 168deg at 25% -4%,transparent 0 6deg,rgba(255,61,200,.30) 8deg 13deg,transparent 15deg 360deg),conic-gradient(from 176deg at 50% -4%,transparent 0 6deg,rgba(61,240,255,.28) 8deg 13deg,transparent 15deg 360deg),conic-gradient(from 184deg at 75% -4%,transparent 0 6deg,rgba(255,224,61,.26) 8deg 13deg,transparent 15deg 360deg);}
html[data-rfx="disco"] body::after{background:conic-gradient(from 172deg at 25% -4%,transparent 0 6deg,rgba(61,255,138,.24) 8deg 13deg,transparent 15deg 360deg),conic-gradient(from 180deg at 50% -4%,transparent 0 6deg,rgba(176,90,255,.30) 8deg 13deg,transparent 15deg 360deg),conic-gradient(from 188deg at 75% -4%,transparent 0 6deg,rgba(255,120,61,.26) 8deg 13deg,transparent 15deg 360deg);}
html[data-rfx="disco"][data-rfx-motion="1"] body::before{animation:rfxSwingA 2.3s ease-in-out infinite alternate;}
html[data-rfx="disco"][data-rfx-motion="1"] body::after{animation:rfxSwingB 3s ease-in-out infinite alternate;}
@keyframes rfxSwingA{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
@keyframes rfxSwingB{from{transform:rotate(22deg)}to{transform:rotate(-22deg)}}
html[data-rfx="disco"] #app{border-color:rgba(255,61,240,.5);box-shadow:0 0 40px rgba(255,61,240,.25),inset 0 0 60px rgba(61,240,255,.06);}
html[data-rfx="disco"] header{background:rgba(16,4,38,.9);border-bottom:0;position:relative;}
html[data-rfx="disco"] header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#ff3df0,#3df0ff,#ffe03d,#3dff8a,#ff3df0,#3df0ff,#ffe03d,#3dff8a,#ff3df0);background-size:200% 100%;box-shadow:0 0 14px rgba(255,61,240,.7);}
html[data-rfx="disco"][data-rfx-motion="1"] header::after{animation:rfxRainbow 2.2s linear infinite;}
@keyframes rfxRainbow{to{background-position:-200% 0}}
html[data-rfx="disco"] .brand-title{background:linear-gradient(90deg,#ff3df0,#3df0ff,#ffe03d,#ff3df0);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-weight:800;letter-spacing:.05em;filter:drop-shadow(0 0 6px rgba(255,61,240,.6));}
html[data-rfx="disco"][data-rfx-motion="1"] .brand-title{animation:rfxRainbow 5s linear infinite;}
html[data-rfx="disco"] #sidebar-right{background:rgba(14,3,34,.86);border-left:2px solid #a22bd6;box-shadow:-4px 0 24px rgba(162,43,214,.35);}
html[data-rfx="disco"] .userlist-banner{background:linear-gradient(90deg,#ff3df0,#7b2cff,#3df0ff);}
html[data-rfx="disco"] .composer-bar{background:#170533;border:1.5px solid #ff3df0;box-shadow:0 0 16px rgba(255,61,240,.5);}
html[data-rfx="disco"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:2px solid transparent;background-image:linear-gradient(#1d0b3c,#1d0b3c),linear-gradient(110deg,#ff3df0,#3df0ff,#ffe03d,#3dff8a);background-origin:border-box;background-clip:padding-box,border-box;box-shadow:0 0 14px rgba(255,61,240,.28);}
html[data-rfx="disco"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){background-image:linear-gradient(#2a0a45,#2a0a45),linear-gradient(110deg,#ffe03d,#ff3df0,#7b2cff,#3df0ff);}
/* Bola de espejos */
html[data-rfx="disco"] .main::before{content:"";position:absolute;top:26px;right:76px;width:58px;height:58px;border-radius:50%;z-index:6;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(0,0,0,.4) 0 1px,transparent 1px 8px),repeating-linear-gradient(0deg,rgba(0,0,0,.4) 0 1px,transparent 1px 8px),radial-gradient(circle at 34% 30%,#fff 0,#d6d6ee 22%,#8a8ab8 55%,#34345c 100%);box-shadow:0 0 26px 6px rgba(255,255,255,.35),0 0 60px 14px rgba(255,61,240,.35);}
html[data-rfx="disco"] .main::after{content:"";position:absolute;top:0;right:104px;width:2px;height:26px;z-index:6;pointer-events:none;background:#c9c9e6;}
html[data-rfx="disco"][data-rfx-motion="1"] .main::before{animation:rfxBall 1.4s linear infinite;}
@keyframes rfxBall{from{background-position:0 0,0 0,0 0}to{background-position:8px 0,0 8px,0 0}}

/* ============ GALA ============ */
html[data-rfx="gala"]{--bg:#16040a;--bg-2:#16040a;--surface:#2a0914;--surface-2:#3a0f1d;--surface-3:#521a2c;--border:#b8913f;--accent:#e8cf9a;--accent-strong:#f6e6bd;--accent-ink:#2a0914;--bubble-bg:rgba(54,12,26,.95);--bubble-bg-mine:rgba(86,20,40,.95);--text:#fbf3e4;--text-muted:#dcc79a;--text-faint:#a8935f;--font-display:Georgia,'Playfair Display','Times New Roman',serif;}
html[data-rfx="gala"] body{background:radial-gradient(ellipse 55% 75% at 50% -5%,rgba(255,226,160,.34),transparent 70%),linear-gradient(180deg,#4a0f20 0%,#38091a 55%,#1a050c 100%);}
html[data-rfx="gala"] body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,#9a1c38 0,#6a1226 70%,#3a0914 100%) 0 0/100% 44px no-repeat,
  linear-gradient(#d9b765,#d9b765) 0 44px/100% 3px no-repeat,
  linear-gradient(#d9b765,#d9b765) left min(12vw,170px) top/3px 100% no-repeat,
  linear-gradient(#d9b765,#d9b765) right min(12vw,170px) top/3px 100% no-repeat,
  linear-gradient(90deg,rgba(0,0,0,.0),rgba(0,0,0,.5)) left top/min(12vw,170px) 100% no-repeat,
  linear-gradient(270deg,rgba(0,0,0,.0),rgba(0,0,0,.5)) right top/min(12vw,170px) 100% no-repeat,
  repeating-linear-gradient(90deg,#5a0f1f 0 12px,#8a1e36 12px 24px,#4a0b19 24px 36px) left top/min(12vw,170px) 100% no-repeat,
  repeating-linear-gradient(90deg,#4a0b19 0 12px,#8a1e36 12px 24px,#5a0f1f 24px 36px) right top/min(12vw,170px) 100% no-repeat;}
html[data-rfx="gala"] body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:46px;z-index:0;pointer-events:none;background:linear-gradient(180deg,#d9b765 0 3px,#8a1630 3px 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,transparent 2px 22px);box-shadow:0 -30px 60px rgba(255,214,140,.2);}
html[data-rfx="gala"] #app{background:rgba(20,4,10,.10)!important;border-color:rgba(217,183,101,.55);box-shadow:0 0 44px rgba(217,183,101,.16);}
html[data-rfx="gala"] header{background:rgba(34,7,17,.94);border-bottom:2px solid #d9b765;box-shadow:0 4px 22px rgba(217,183,101,.22);}
html[data-rfx="gala"] .brand-title{background:linear-gradient(180deg,#fff6d8,#e8cf9a 55%,#b8913f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-family:Georgia,'Playfair Display','Times New Roman',serif;font-style:italic;letter-spacing:.08em;}
html[data-rfx="gala"] #sidebar-right{background:rgba(30,6,15,.92);border-left:2px solid #b8913f;}
html[data-rfx="gala"] .userlist-banner{background:linear-gradient(90deg,#7a1a2e,#d9b765 50%,#7a1a2e);}
html[data-rfx="gala"] .userlist-banner-text{color:#2a0914;text-shadow:0 1px 0 rgba(255,255,255,.35);}
html[data-rfx="gala"] .composer-bar{background:#2a0914;border:1.5px solid #d9b765;box-shadow:0 0 14px rgba(217,183,101,.25);}
html[data-rfx="gala"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(232,207,154,.6);box-shadow:0 4px 16px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,240,200,.16);}
html[data-rfx="gala"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border:1.5px solid #e8cf9a;box-shadow:0 0 14px rgba(232,207,154,.28);}

/* ============ TENSIÓN EN EL AMBIENTE ============ */
html[data-rfx="suspense"]{--bg:#050507;--bg-2:#050507;--surface:#0d0d11;--surface-2:#15151b;--surface-3:#202029;--border:#4a1218;--accent:#d4202e;--accent-strong:#ff4a56;--accent-ink:#140204;--bubble-bg:rgba(14,14,19,.95);--bubble-bg-mine:rgba(34,10,14,.95);--text:#e8e8ee;--text-muted:#8c8c98;--text-faint:#62626e;}
html[data-rfx="suspense"] body{background:radial-gradient(ellipse at 50% 40%,#202029 0%,#0c0c10 60%,#030304 100%);}
html[data-rfx="suspense"] body::before{content:"";position:fixed;left:-15%;right:-15%;bottom:-5%;height:60%;z-index:0;pointer-events:none;background:radial-gradient(40% 55% at 18% 100%,rgba(150,150,165,.30),transparent 70%),radial-gradient(45% 50% at 60% 100%,rgba(130,130,145,.24),transparent 70%),radial-gradient(35% 50% at 92% 100%,rgba(150,150,165,.26),transparent 70%);filter:blur(16px);}
html[data-rfx="suspense"][data-rfx-motion="1"] body::before{animation:rfxFog2 22s ease-in-out infinite alternate;}
@keyframes rfxFog2{to{transform:translateX(8%)}}
html[data-rfx="suspense"] #app{background:rgba(2,2,4,.30)!important;border-color:rgba(120,20,30,.55);box-shadow:inset 0 0 150px rgba(170,0,14,.40),0 0 30px rgba(150,0,12,.18);}
html[data-rfx="suspense"] body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 36%,rgba(200,0,18,.62) 100%);opacity:.32;}
html[data-rfx="suspense"][data-rfx-motion="1"] body::after{will-change:opacity;animation:rfxBeat 2.4s linear infinite;}
@keyframes rfxBeat{0%,100%{opacity:.30}10%{opacity:1}22%{opacity:.40}32%{opacity:.82}48%{opacity:.30}}
html[data-rfx="suspense"] header{background:rgba(9,9,12,.88);border-bottom:1px solid #8e1220;box-shadow:0 2px 18px rgba(190,0,16,.35);}
html[data-rfx="suspense"] .brand-title{color:#e9dede;text-shadow:0 0 10px rgba(212,32,46,.7);letter-spacing:.14em;text-transform:uppercase;}
html[data-rfx="suspense"] #sidebar-right{background:rgba(8,8,11,.88);border-left:1px solid #4a1218;}
html[data-rfx="suspense"] .userlist-banner{background:linear-gradient(90deg,#4a0a12,#a3131f);}
html[data-rfx="suspense"] .composer-bar{background:#0d0d11;border:1px solid #7a1520;box-shadow:0 0 12px rgba(190,0,16,.25);}
html[data-rfx="suspense"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(150,26,38,.55);box-shadow:0 0 10px rgba(150,0,12,.2);}
html[data-rfx="suspense"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(230,50,64,.75);}

/* ============ NAVIDAD ============ */
html[data-rfx="xmas"]{--bg:#04140e;--bg-2:#04140e;--surface:#0a2418;--surface-2:#113222;--surface-3:#1a4a32;--border:#2f8a5a;--accent:#ff4d4d;--accent-strong:#ff8080;--accent-ink:#1c0404;--bubble-bg:rgba(10,44,30,.94);--bubble-bg-mine:rgba(70,14,20,.95);--text:#f4fff8;--text-muted:#a6d6bb;--text-faint:#74a58b;}
html[data-rfx="xmas"] body{background:radial-gradient(ellipse at 50% -10%,rgba(255,230,150,.16),transparent 55%),linear-gradient(180deg,#031009 0%,#0a2a1d 60%,#12402c 100%);}
html[data-rfx="xmas"] body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:225px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='150' viewBox='0 0 260 150'%3E%3Cg fill='%2306140d'%3E%3Cpolygon points='40%2C40.0 26.5%2C85.8 53.5%2C85.8' /%3E%3Cpolygon points='40%2C69.3 18.1%2C115.2 61.9%2C115.2' /%3E%3Cpolygon points='40%2C98.7 9.7%2C144.5 70.3%2C144.5' /%3E%3Crect x='36' y='142' width='8' height='8'/%3E%3Cpolygon points='105%2C10.0 87.9%2C68.3 122.1%2C68.3' /%3E%3Cpolygon points='105%2C47.3 77.3%2C105.7 132.7%2C105.7' /%3E%3Cpolygon points='105%2C84.7 66.6%2C143.0 143.4%2C143.0' /%3E%3Crect x='101' y='142' width='8' height='8'/%3E%3Cpolygon points='175%2C55.0 163.3%2C94.6 186.7%2C94.6' /%3E%3Cpolygon points='175%2C80.3 156.0%2C119.9 194.0%2C119.9' /%3E%3Cpolygon points='175%2C105.7 148.7%2C145.2 201.3%2C145.2' /%3E%3Crect x='171' y='142' width='8' height='8'/%3E%3Cpolygon points='230%2C25.0 215.2%2C77.1 244.8%2C77.1' /%3E%3Cpolygon points='230%2C58.3 205.9%2C110.4 254.1%2C110.4' /%3E%3Cpolygon points='230%2C91.7 196.7%2C143.8 263.3%2C143.8' /%3E%3Crect x='226' y='142' width='8' height='8'/%3E%3C/g%3E%3C/svg%3E") repeat-x left bottom/390px 225px;opacity:.95;}
html[data-rfx="xmas"] body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:34px;z-index:0;pointer-events:none;background:linear-gradient(0deg,rgba(235,245,255,.55),rgba(235,245,255,0));}
html[data-rfx="xmas"] #app{background:rgba(3,16,10,.30)!important;border-color:rgba(60,160,100,.5);box-shadow:0 0 36px rgba(60,160,100,.16);}
html[data-rfx="xmas"] header{background:rgba(8,36,24,.94);border-bottom:5px solid transparent;border-image:repeating-linear-gradient(135deg,#d42a2a 0 10px,#f6fff8 10px 20px) 1;}
html[data-rfx="xmas"] .brand-title{color:#fff;text-shadow:0 0 10px rgba(255,77,77,.7),0 2px 0 #0a5a30;}
html[data-rfx="xmas"] #sidebar-right{background:rgba(7,32,21,.9);border-left:2px solid #2f8a5a;}
html[data-rfx="xmas"] .userlist-banner{background:linear-gradient(90deg,#b4202a,#1f8a4c);}
html[data-rfx="xmas"] .composer-bar{background:#0a2418;border:1.5px solid #d42a2a;box-shadow:0 0 14px rgba(212,42,42,.3);}
html[data-rfx="xmas"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(60,190,120,.6);box-shadow:0 0 10px rgba(60,190,120,.18);}
html[data-rfx="xmas"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border:1.5px solid #ff6a6a;box-shadow:0 0 12px rgba(255,90,90,.28);}
/* Guirnalda de luces colgando de la cabecera */
html[data-rfx="xmas"] .main::before,html[data-rfx="xmas"] .main::after{content:"";position:absolute;left:0;right:0;top:0;height:34px;z-index:6;pointer-events:none;background-repeat:repeat-x;background-position:0 0;background-size:120px 34px;}
html[data-rfx="xmas"] .main::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='34' viewBox='0 0 120 34'%3E%3Cpath d='M0 4Q30 20 60 4T120 4' fill='none' stroke='%2316241b' stroke-width='1.6'/%3E%3Ccircle cx='30' cy='17' r='8' fill='%23ff3b3b' fill-opacity='.28'/%3E%3Crect x='28.4' y='10' width='3.2' height='3.4' fill='%23222'/%3E%3Cellipse cx='30' cy='17' rx='3.4' ry='4.8' fill='%23ff3b3b'/%3E%3Ccircle cx='90' cy='17' r='8' fill='%233b9bff' fill-opacity='.28'/%3E%3Crect x='88.4' y='10' width='3.2' height='3.4' fill='%23222'/%3E%3Cellipse cx='90' cy='17' rx='3.4' ry='4.8' fill='%233b9bff'/%3E%3C/svg%3E");}
html[data-rfx="xmas"] .main::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='34' viewBox='0 0 120 34'%3E%3Ccircle cx='60' cy='11' r='8' fill='%23ffd36b' fill-opacity='.28'/%3E%3Crect x='58.4' y='4' width='3.2' height='3.4' fill='%23222'/%3E%3Cellipse cx='60' cy='11' rx='3.4' ry='4.8' fill='%23ffd36b'/%3E%3Ccircle cx='4' cy='11' r='8' fill='%233bff7a' fill-opacity='.28'/%3E%3Crect x='2.4' y='4' width='3.2' height='3.4' fill='%23222'/%3E%3Cellipse cx='4' cy='11' rx='3.4' ry='4.8' fill='%233bff7a'/%3E%3Ccircle cx='116' cy='11' r='8' fill='%233bff7a' fill-opacity='.28'/%3E%3Crect x='114.4' y='4' width='3.2' height='3.4' fill='%23222'/%3E%3Cellipse cx='116' cy='11' rx='3.4' ry='4.8' fill='%233bff7a'/%3E%3C/svg%3E");}
html[data-rfx="xmas"][data-rfx-motion="1"] .main::before{animation:rfxTwA 2.4s ease-in-out infinite;}
html[data-rfx="xmas"][data-rfx-motion="1"] .main::after{animation:rfxTwB 2.4s ease-in-out infinite;}
@keyframes rfxTwA{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes rfxTwB{0%,100%{opacity:.45}50%{opacity:1}}

/* ============ HALLOWEEN · CEMENTERIO ============ */
html[data-rfx="graveyard"]{--bg:#0a0414;--bg-2:#0a0414;--surface:#170a26;--surface-2:#221036;--surface-3:#34184f;--border:#5b2a8a;--accent:#ff7a1a;--accent-strong:#ffa04d;--accent-ink:#1a0800;--bubble-bg:rgba(30,12,50,.94);--bubble-bg-mine:rgba(64,26,14,.95);--text:#f4ebff;--text-muted:#b79ad6;--text-faint:#85679f;}
html[data-rfx="graveyard"] body{background:linear-gradient(180deg,#07020f 0%,#1c0a38 45%,#4a1f4e 78%,#7a3a28 100%);}
html[data-rfx="graveyard"] body::before{content:"";position:fixed;left:7%;top:7%;width:210px;height:210px;border-radius:50%;z-index:0;pointer-events:none;background:radial-gradient(circle at 36% 34%,rgba(150,90,40,.35) 0 8%,transparent 9%),radial-gradient(circle at 64% 60%,rgba(150,90,40,.3) 0 11%,transparent 12%),radial-gradient(circle at 42% 40%,#ffd9a0,#ffb35e 68%,#e8822c);box-shadow:0 0 90px 24px rgba(255,150,60,.3);opacity:.55;}
html[data-rfx="graveyard"] body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:270px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='170' viewBox='0 0 700 170'%3E%3Cpath d='M0 170V138Q120 112 240 134T480 128T700 138V170Z' fill='%230d0818'/%3E%3Cpath d='M40 152V125.0Q40 112 53.0 112T66 125.0V152Z' fill='%23090511'/%3E%3Cpath d='M92 154V133.0Q92 122 103.0 122T114 133.0V154Z' fill='%23090511'/%3E%3Crect x='101.5' y='128' width='3' height='16' fill='%230d0818'/%3E%3Crect x='95.0' y='134' width='16' height='3' fill='%230d0818'/%3E%3Cpath d='M150 152V123.0Q150 108 165.0 108T180 123.0V152Z' fill='%23090511'/%3E%3Cpath d='M330 152V128.0Q330 116 342.0 116T354 128.0V152Z' fill='%23090511'/%3E%3Cpath d='M392 150V118.0Q392 104 406.0 104T420 118.0V150Z' fill='%23090511'/%3E%3Crect x='404.5' y='110' width='3' height='30' fill='%230d0818'/%3E%3Crect x='398.0' y='116' width='16' height='3' fill='%230d0818'/%3E%3Cpath d='M610 152V125.0Q610 112 623.0 112T636 125.0V152Z' fill='%23090511'/%3E%3Cpath d='M660 154V134.0Q660 124 670.0 124T680 134.0V154Z' fill='%23090511'/%3E%3Crect x='668.5' y='130' width='3' height='14' fill='%230d0818'/%3E%3Crect x='662.0' y='136' width='16' height='3' fill='%230d0818'/%3E%3Cpath d='M520 170C524 120 520 90 514 62C506 50 496 44 486 30M516 82C530 70 548 62 560 44M522 100C506 92 498 84 490 78M514 62C520 46 520 36 530 24' stroke='%23090511' stroke-width='6' stroke-linecap='round' fill='none'/%3E%3Cpath d='M0 170V150Q150 128 300 148T700 150V170Z' fill='%23070310'/%3E%3C/svg%3E") repeat-x left top/840px 204px,linear-gradient(#070310,#070310) left 203px/100% 100% no-repeat;}
html[data-rfx="graveyard"] #app{background:rgba(8,3,14,.32)!important;border-color:rgba(110,50,160,.55);box-shadow:0 0 36px rgba(130,60,190,.2);}
html[data-rfx="graveyard"] header{background:rgba(20,8,34,.94);border-bottom:3px solid #5b2a8a;}
html[data-rfx="graveyard"] .brand-title{color:#a8ff3d;text-shadow:0 0 12px rgba(150,255,50,.65),0 2px 0 #2a1650;}
html[data-rfx="graveyard"] #sidebar-right{background:rgba(18,8,30,.9);border-left:2px solid #5b2a8a;}
html[data-rfx="graveyard"] .userlist-banner{background:linear-gradient(90deg,#5b2a8a,#ff7a1a);}
html[data-rfx="graveyard"] .composer-bar{background:#170a26;border:1.5px solid #ff7a1a;box-shadow:0 0 14px rgba(255,122,26,.3);}
html[data-rfx="graveyard"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(168,255,61,.45);box-shadow:0 0 10px rgba(150,255,50,.14);}
html[data-rfx="graveyard"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ff7a1a;box-shadow:0 0 12px rgba(255,122,26,.3);}
html[data-rfx="graveyard"] .main::before{content:"";position:absolute;top:6px;right:16px;width:64px;height:60px;z-index:6;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='60' viewBox='0 0 64 60'%3E%3Crect x='29' y='4' width='6' height='10' rx='2' fill='%233d7a1c'/%3E%3Cellipse cx='32' cy='36' rx='29' ry='22' fill='%23ff8a1f'/%3E%3Cpath d='M32 14Q18 24 18 36Q18 50 32 58M32 14Q46 24 46 36Q46 50 32 58' fill='none' stroke='%23c25a00' stroke-width='2'/%3E%3Cpolygon points='18%2C30 26%2C30 22%2C22' fill='%23ffe08a'/%3E%3Cpolygon points='38%2C30 46%2C30 42%2C22' fill='%23ffe08a'/%3E%3Cpath d='M18 42L24 38L28 44L32 38L36 44L40 38L46 42Q32 56 18 42Z' fill='%23ffe08a'/%3E%3C/svg%3E") no-repeat center/contain;filter:drop-shadow(0 0 10px rgba(255,140,30,.8));}
html[data-rfx="graveyard"] .main::after{content:"";position:absolute;top:0;right:104px;width:42px;height:98px;z-index:6;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='140' viewBox='0 0 60 140'%3E%3Cpath d='M30 0V96' stroke='%23cfc8e0' stroke-opacity='.6' stroke-width='.9'/%3E%3Cpath d='M30 104 q-12 -10 -22 6' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q-14 -2 -26 14' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q-12 4 -22 20' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q-8 8 -14 24' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q12 -10 22 6' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q14 -2 26 14' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q12 4 22 20' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Cpath d='M30 104 q8 8 14 24' fill='none' stroke='%23120a1c' stroke-width='1.6'/%3E%3Ccircle cx='30' cy='106' r='9' fill='%23120a1c'/%3E%3Ccircle cx='30' cy='95' r='5.5' fill='%23120a1c'/%3E%3Ccircle cx='28' cy='94' r='1.2' fill='%23ff3b3b'/%3E%3Ccircle cx='32' cy='94' r='1.2' fill='%23ff3b3b'/%3E%3C/svg%3E") no-repeat top center/contain;transform-origin:50% 0;}
html[data-rfx="graveyard"][data-rfx-motion="1"] .main::after{animation:rfxSpider 3.6s ease-in-out infinite alternate;}
@keyframes rfxSpider{from{transform:rotate(-7deg)}to{transform:rotate(7deg)}}

/* ============ ESPACIO ============ */
html[data-rfx="space"]{--bg:#04030f;--bg-2:#04030f;--surface:#0b0d2a;--surface-2:#131640;--surface-3:#1e2160;--border:#3b3f9a;--accent:#8f7bff;--accent-strong:#b7a9ff;--accent-ink:#0a0630;--bubble-bg:#12163f;--bubble-bg-mine:#241a58;--text:#f0f0ff;--text-muted:#a9aadb;--text-faint:#7678ad;}
html[data-rfx="space"] body{background:radial-gradient(ellipse 60% 50% at 20% 25%,rgba(120,60,220,.30),transparent 70%),radial-gradient(ellipse 55% 45% at 85% 75%,rgba(30,120,230,.26),transparent 70%),radial-gradient(ellipse 40% 30% at 60% 15%,rgba(255,90,170,.14),transparent 70%),#04030f;}
html[data-rfx="space"] body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='360'%3E%3Ccircle cx='68' cy='291' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='60' cy='253' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='333' cy='194' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='249' cy='14' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='311' cy='1' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='117' cy='302' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='15' cy='11' r='0.7' fill='%23ffe9c8'/%3E%3Ccircle cx='277' cy='4' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='110' cy='216' r='0.7' fill='%23ffe9c8'/%3E%3Ccircle cx='113' cy='224' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='119' cy='176' r='0.9' fill='%23ffe9c8'/%3E%3Ccircle cx='112' cy='235' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='213' cy='284' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='322' cy='151' r='0.7' fill='%23ffe9c8'/%3E%3Ccircle cx='170' cy='256' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='343' cy='97' r='1.2' fill='%23cfe0ff'/%3E%3Ccircle cx='300' cy='255' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='17' cy='245' r='0.9' fill='%23ffe9c8'/%3E%3Ccircle cx='206' cy='212' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='280' cy='359' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='224' cy='339' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='266' cy='201' r='1.2' fill='%23cfe0ff'/%3E%3Ccircle cx='15' cy='240' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='360' cy='314' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='87' cy='86' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='102' cy='276' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='263' cy='176' r='1.2' fill='%23cfe0ff'/%3E%3Ccircle cx='137' cy='337' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='262' cy='66' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='28' cy='246' r='1.2' fill='%23ffe9c8'/%3E%3Ccircle cx='283' cy='102' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='182' cy='212' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='275' cy='276' r='1.2' fill='%23cfe0ff'/%3E%3Ccircle cx='307' cy='14' r='0.9' fill='%23ffe9c8'/%3E%3C/svg%3E") 0 0/360px 360px repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520'%3E%3Ccircle cx='57' cy='93' r='0.7' fill='%23bcd2ff'/%3E%3Ccircle cx='173' cy='315' r='1.2' fill='%23ffd6f0'/%3E%3Ccircle cx='217' cy='36' r='0.9' fill='%23bcd2ff'/%3E%3Ccircle cx='402' cy='380' r='1.5' fill='%23ffd6f0'/%3E%3Ccircle cx='274' cy='36' r='0.7' fill='%23bcd2ff'/%3E%3Ccircle cx='476' cy='326' r='1.5' fill='%23bcd2ff'/%3E%3Ccircle cx='168' cy='181' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='24' cy='180' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='139' cy='368' r='0.9' fill='%23bcd2ff'/%3E%3Ccircle cx='424' cy='372' r='1.2' fill='%23bcd2ff'/%3E%3Ccircle cx='456' cy='165' r='1.5' fill='%23ffd6f0'/%3E%3Ccircle cx='472' cy='255' r='1.5' fill='%23bcd2ff'/%3E%3Ccircle cx='510' cy='512' r='1.2' fill='%23ffd6f0'/%3E%3Ccircle cx='465' cy='472' r='1.2' fill='%23ffd6f0'/%3E%3Ccircle cx='467' cy='498' r='0.9' fill='%23bcd2ff'/%3E%3Ccircle cx='170' cy='274' r='1.5' fill='%23bcd2ff'/%3E%3Ccircle cx='310' cy='516' r='1.5' fill='%23bcd2ff'/%3E%3Ccircle cx='212' cy='500' r='1.2' fill='%23ffd6f0'/%3E%3Ccircle cx='77' cy='349' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='108' cy='60' r='0.7' fill='%23bcd2ff'/%3E%3Ccircle cx='232' cy='108' r='0.9' fill='%23bcd2ff'/%3E%3Ccircle cx='250' cy='215' r='0.7' fill='%23bcd2ff'/%3E%3C/svg%3E") 120px 80px/520px 520px repeat;}
html[data-rfx="space"][data-rfx-motion="1"] body::before{animation:rfxTwinkle 5s ease-in-out infinite alternate;}
@keyframes rfxTwinkle{from{opacity:.55}to{opacity:1}}
html[data-rfx="space"] #app{background:rgba(4,3,15,.25)!important;border-color:rgba(120,110,255,.45);box-shadow:0 0 40px rgba(110,90,255,.2);}
html[data-rfx="space"] header{background:rgba(8,9,30,.95);border-bottom:1px solid #5a58d8;box-shadow:0 2px 20px rgba(110,90,255,.35);}
html[data-rfx="space"] .brand-title{color:#e6e1ff;text-shadow:0 0 12px rgba(143,123,255,.9);letter-spacing:.12em;}
html[data-rfx="space"] #sidebar-right{background:rgba(8,9,30,.93);border-left:1px solid #3b3f9a;}
html[data-rfx="space"] .userlist-banner{background:linear-gradient(90deg,#4b3fd0,#b05ad8);}
html[data-rfx="space"] .composer-bar{background:#0b0d2a;border:1.5px solid #6a62e8;box-shadow:0 0 14px rgba(110,90,255,.35);}
html[data-rfx="space"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(143,123,255,.5);box-shadow:0 0 12px rgba(110,90,255,.18);}
html[data-rfx="space"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(255,140,210,.65);}
/* Planeta con anillo */
html[data-rfx="space"] .main::before{content:"";position:absolute;top:18px;right:34px;width:64px;height:64px;border-radius:50%;z-index:6;pointer-events:none;background:radial-gradient(circle at 32% 28%,#ffd7a8,#d9803c 55%,#6b2a1a);box-shadow:inset -10px -8px 16px rgba(0,0,0,.55),0 0 24px rgba(255,150,80,.35);}
html[data-rfx="space"] .main::after{content:"";position:absolute;top:36px;right:14px;width:104px;height:28px;border-radius:50%;z-index:7;pointer-events:none;border:4px solid rgba(255,225,170,.7);border-bottom-color:rgba(255,225,170,.15);transform:rotate(-16deg);}

/* ============ ABISMO ============ */
html[data-rfx="deep"]{--bg:#021622;--bg-2:#021622;--surface:#05283b;--surface-2:#083a52;--surface-3:#0d5070;--border:#1b7a9c;--accent:#37d6e0;--accent-strong:#8ef0f4;--accent-ink:#021a22;--bubble-bg:#07344a;--bubble-bg-mine:#0a4a5e;--text:#eafcff;--text-muted:#98cdd8;--text-faint:#66a0ae;}
html[data-rfx="deep"] body{background:linear-gradient(180deg,#0a6a8c 0%,#064a68 22%,#032d44 55%,#01131f 100%);}
html[data-rfx="deep"] body::before{content:"";position:fixed;left:-20%;right:-20%;top:-5%;height:85%;z-index:0;pointer-events:none;transform-origin:50% 0;background:conic-gradient(from 168deg at 50% -4%,transparent 0 3deg,rgba(190,255,255,.20) 5deg 9deg,transparent 11deg 14deg,rgba(190,255,255,.14) 16deg 19deg,transparent 21deg 24deg,rgba(190,255,255,.18) 26deg 31deg,transparent 33deg 360deg);-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%);}
html[data-rfx="deep"][data-rfx-motion="1"] body::before{animation:rfxRays 11s ease-in-out infinite alternate;}
@keyframes rfxRays{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
html[data-rfx="deep"] body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:220px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='220' viewBox='0 0 300 220'%3E%3Cpath d='M20 220 Q30 205 15 190 Q10 175 15 160 Q30 145 15 130 Q10 115 15 100 Q30 85 15 70' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='6' cy='160' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 20 160%29'/%3E%3Cellipse cx='34' cy='130' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 20 130%29'/%3E%3Cellipse cx='6' cy='100' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 20 100%29'/%3E%3Cpath d='M52 220 Q42 200 57 180 Q62 160 57 140 Q42 120 57 100 Q62 80 57 60 Q42 40 57 20' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='38' cy='140' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 52 140%29'/%3E%3Cellipse cx='66' cy='100' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 52 100%29'/%3E%3Cellipse cx='38' cy='60' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 52 60%29'/%3E%3Cpath d='M96 220 Q106 208 91 196 Q86 184 91 172 Q106 160 91 148 Q86 136 91 124 Q106 112 91 100' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='82' cy='172' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 96 172%29'/%3E%3Cellipse cx='110' cy='148' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 96 148%29'/%3E%3Cellipse cx='82' cy='124' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 96 124%29'/%3E%3Cpath d='M140 220 Q130 201 145 182 Q150 163 145 144 Q130 125 145 106 Q150 87 145 68 Q130 49 145 30' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='126' cy='144' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 140 144%29'/%3E%3Cellipse cx='154' cy='106' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 140 106%29'/%3E%3Cellipse cx='126' cy='68' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 140 68%29'/%3E%3Cpath d='M188 220 Q198 206 183 192 Q178 178 183 164 Q198 150 183 136 Q178 122 183 108 Q198 94 183 80' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='174' cy='164' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 188 164%29'/%3E%3Cellipse cx='202' cy='136' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 188 136%29'/%3E%3Cellipse cx='174' cy='108' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 188 108%29'/%3E%3Cpath d='M232 220 Q222 199 237 178 Q242 157 237 136 Q222 115 237 94 Q242 73 237 52 Q222 31 237 10' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='218' cy='136' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 232 136%29'/%3E%3Cellipse cx='246' cy='94' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 232 94%29'/%3E%3Cellipse cx='218' cy='52' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 232 52%29'/%3E%3Cpath d='M272 220 Q282 207 267 194 Q262 181 267 168 Q282 155 267 142 Q262 129 267 116 Q282 103 267 90' fill='none' stroke='%2303222e' stroke-width='7' stroke-linecap='round'/%3E%3Cellipse cx='258' cy='168' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 272 168%29'/%3E%3Cellipse cx='286' cy='142' rx='12' ry='4' fill='%2303222e' transform='rotate%28-30 272 142%29'/%3E%3Cellipse cx='258' cy='116' rx='12' ry='4' fill='%2303222e' transform='rotate%2830 272 116%29'/%3E%3C/svg%3E") repeat-x left bottom/300px 220px;opacity:.95;}
html[data-rfx="deep"] #app{background:rgba(1,19,31,.22)!important;border-color:rgba(60,190,220,.45);box-shadow:0 0 36px rgba(40,180,220,.16);}
html[data-rfx="deep"] header{background:rgba(3,40,60,.94);border-bottom:2px solid #37d6e0;}
html[data-rfx="deep"] .brand-title{color:#c9fbff;text-shadow:0 0 12px rgba(55,214,224,.8);}
html[data-rfx="deep"] #sidebar-right{background:rgba(3,34,52,.94);border-left:2px solid #1b7a9c;}
html[data-rfx="deep"] .userlist-banner{background:linear-gradient(90deg,#0b6e92,#37d6e0);}
html[data-rfx="deep"] .userlist-banner-text{color:#021a22;}
html[data-rfx="deep"] .composer-bar{background:#05283b;border:1.5px solid #37d6e0;box-shadow:0 0 14px rgba(55,214,224,.28);}
html[data-rfx="deep"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(120,230,240,.5);box-shadow:0 0 12px rgba(55,214,224,.16);}
html[data-rfx="deep"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#8ef0f4;}

/* ============ FUEGOS ARTIFICIALES ============ */
html[data-rfx="fireworks"]{--bg:#050816;--bg-2:#050816;--surface:#0a1030;--surface-2:#101a46;--surface-3:#1a2a66;--border:#3550b0;--accent:#ffcf4d;--accent-strong:#ffe39a;--accent-ink:#201400;--bubble-bg:#0f1944;--bubble-bg-mine:#3a1a4a;--text:#fff8ee;--text-muted:#b9c4ec;--text-faint:#808cc0;}
html[data-rfx="fireworks"] body{background:linear-gradient(180deg,#02030c 0%,#0a1236 55%,#1d2260 85%,#3a2a6a 100%);}
html[data-rfx="fireworks"] body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:200px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='180' viewBox='0 0 600 180'%3E%3Crect x='0' y='111' width='52' height='69' fill='%23070b1c'/%3E%3Crect x='52' y='117' width='42' height='63' fill='%23070b1c'/%3E%3Crect x='94' y='107' width='42' height='73' fill='%23070b1c'/%3E%3Crect x='136' y='87' width='52' height='93' fill='%23070b1c'/%3E%3Crect x='188' y='60' width='60' height='120' fill='%23070b1c'/%3E%3Crect x='248' y='36' width='52' height='144' fill='%23070b1c'/%3E%3Crect x='300' y='69' width='42' height='111' fill='%23070b1c'/%3E%3Crect x='342' y='127' width='42' height='53' fill='%23070b1c'/%3E%3Crect x='384' y='114' width='70' height='66' fill='%23070b1c'/%3E%3Crect x='454' y='97' width='70' height='83' fill='%23070b1c'/%3E%3Crect x='524' y='120' width='34' height='60' fill='%23070b1c'/%3E%3Crect x='558' y='123' width='42' height='57' fill='%23070b1c'/%3E%3Crect x='6' y='131' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='6' y='143' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='6' y='155' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='6' y='167' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='16' y='131' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='16' y='155' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='16' y='167' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='26' y='143' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='36' y='119' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='36' y='143' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='68' y='125' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='100' y='127' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='110' y='139' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='120' y='115' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='120' y='151' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='152' y='107' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='162' y='167' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='172' y='95' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='172' y='143' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='194' y='68' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='194' y='116' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='194' y='128' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='194' y='152' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='194' y='164' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='204' y='68' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='204' y='116' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='214' y='164' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='224' y='80' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='224' y='92' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='224' y='152' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='234' y='68' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='234' y='116' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='234' y='164' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='254' y='44' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='254' y='56' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='254' y='68' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='254' y='152' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='264' y='68' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='264' y='104' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='264' y='152' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='274' y='92' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='284' y='44' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='284' y='116' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='284' y='164' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='306' y='113' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='316' y='77' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='316' y='89' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='316' y='125' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='326' y='89' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='326' y='125' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='348' y='135' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='358' y='159' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='390' y='146' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='400' y='134' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='410' y='170' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='420' y='122' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='420' y='134' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='460' y='129' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='460' y='141' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='470' y='129' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='470' y='165' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='480' y='129' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='480' y='153' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='490' y='141' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='500' y='129' width='4' height='5' fill='%23ffd98a' fill-opacity='0.8'/%3E%3Crect x='500' y='141' width='4' height='5' fill='%23ffd98a' fill-opacity='0.95'/%3E%3Crect x='510' y='153' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='530' y='128' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='530' y='152' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='564' y='143' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='564' y='155' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='574' y='143' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='574' y='155' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3Crect x='584' y='167' width='4' height='5' fill='%23ffd98a' fill-opacity='0.55'/%3E%3C/svg%3E") repeat-x left bottom/600px 180px;}
html[data-rfx="fireworks"] #app{background:rgba(2,3,12,.22)!important;border-color:rgba(255,207,77,.4);box-shadow:0 0 40px rgba(255,207,77,.12);}
html[data-rfx="fireworks"] header{background:rgba(8,14,44,.95);border-bottom:2px solid #ffcf4d;}
html[data-rfx="fireworks"] .brand-title{background:linear-gradient(90deg,#ff6ec7,#ffcf4d,#6ee7ff,#ff6ec7);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
html[data-rfx="fireworks"][data-rfx-motion="1"] .brand-title{animation:rfxRainbow 6s linear infinite;}
html[data-rfx="fireworks"] #sidebar-right{background:rgba(8,14,44,.93);border-left:2px solid #3550b0;}
html[data-rfx="fireworks"] .userlist-banner{background:linear-gradient(90deg,#ff6ec7,#ffcf4d);}
html[data-rfx="fireworks"] .userlist-banner-text{color:#2a1400;}
html[data-rfx="fireworks"] .composer-bar{background:#0a1030;border:1.5px solid #ffcf4d;box-shadow:0 0 14px rgba(255,207,77,.25);}
html[data-rfx="fireworks"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,207,77,.5);box-shadow:0 0 10px rgba(255,207,77,.14);}
html[data-rfx="fireworks"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ff6ec7;}

/* ============ SAN VALENTÍN ============ */
html[data-rfx="love"]{--bg:#2a0614;--bg-2:#2a0614;--surface:#3d0b20;--surface-2:#511229;--surface-3:#701b3a;--border:#d85a86;--accent:#ff6f9d;--accent-strong:#ffa3c2;--accent-ink:#3a0516;--bubble-bg:#5a1230;--bubble-bg-mine:#7a1840;--text:#fff1f6;--text-muted:#f0b3c8;--text-faint:#c0809a;}
html[data-rfx="love"] body{background:radial-gradient(ellipse 50% 40% at 15% 20%,rgba(255,111,157,.28),transparent 70%),radial-gradient(ellipse 45% 40% at 85% 80%,rgba(255,60,110,.26),transparent 70%),linear-gradient(180deg,#22040f 0%,#4a0a26 60%,#7a1840 100%);}
html[data-rfx="love"] body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 12% 70%,rgba(255,160,190,.35) 0 40px,transparent 42px),radial-gradient(circle at 30% 20%,rgba(255,110,150,.30) 0 28px,transparent 30px),radial-gradient(circle at 70% 30%,rgba(255,170,200,.30) 0 50px,transparent 52px),radial-gradient(circle at 88% 62%,rgba(255,90,130,.32) 0 34px,transparent 36px),radial-gradient(circle at 52% 88%,rgba(255,150,180,.30) 0 44px,transparent 46px);filter:blur(10px);}
html[data-rfx="love"][data-rfx-motion="1"] body::before{animation:rfxBokeh 14s ease-in-out infinite alternate;}
@keyframes rfxBokeh{to{transform:translate3d(2%,-3%,0) scale(1.05)}}
html[data-rfx="love"] #app{background:rgba(34,4,15,.25)!important;border-color:rgba(255,111,157,.5);box-shadow:0 0 36px rgba(255,111,157,.18);}
html[data-rfx="love"] header{background:rgba(60,10,32,.95);border-bottom:2px solid #ff6f9d;}
html[data-rfx="love"] .brand-title{color:#ffd1e0;text-shadow:0 0 12px rgba(255,111,157,.8);font-style:italic;}
html[data-rfx="love"] #sidebar-right{background:rgba(52,9,28,.94);border-left:2px solid #d85a86;}
html[data-rfx="love"] .userlist-banner{background:linear-gradient(90deg,#e0325f,#ff9ec0);}
html[data-rfx="love"] .userlist-banner-text{color:#3a0516;}
html[data-rfx="love"] .composer-bar{background:#3d0b20;border:1.5px solid #ff6f9d;box-shadow:0 0 14px rgba(255,111,157,.3);}
html[data-rfx="love"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,140,175,.6);box-shadow:0 4px 14px rgba(255,90,130,.2);}
html[data-rfx="love"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffb3cb;}

/* ============ ALERTA ROJA ============ */
html[data-rfx="alarm"]{--bg:#0a0203;--bg-2:#0a0203;--surface:#180608;--surface-2:#260a0d;--surface-3:#3a1014;--border:#8a1a22;--accent:#ff3b30;--accent-strong:#ff7066;--accent-ink:#1a0200;--bubble-bg:#1e0709;--bubble-bg-mine:#3a0e12;--text:#fff0ee;--text-muted:#d09a96;--text-faint:#9a6460;}
html[data-rfx="alarm"] body{background:radial-gradient(ellipse at 50% 50%,#1c0508 0%,#0a0203 70%,#030001 100%);}
html[data-rfx="alarm"][data-rfx-motion="0"] body::before,html[data-rfx="alarm"][data-rfx-motion="0"] body::after{content:"";position:fixed;width:150vmax;height:150vmax;top:50%;left:50%;margin:-75vmax 0 0 -75vmax;z-index:0;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 300deg,rgba(255,40,30,.0) 300deg,rgba(255,40,30,.30) 345deg,rgba(255,90,70,.34) 358deg,transparent 360deg);}
html[data-rfx="alarm"][data-rfx-motion="0"] body::after{transform:rotate(180deg);}
html[data-rfx="alarm"] #app{background:rgba(6,1,2,.28)!important;border-color:rgba(255,59,48,.55);box-shadow:inset 0 0 100px rgba(255,30,20,.14),0 0 28px rgba(255,40,30,.2);}
html[data-rfx="alarm"] header{background:rgba(22,5,7,.96);border-bottom:6px solid transparent;border-image:repeating-linear-gradient(135deg,#ffcc00 0 12px,#1a1a1a 12px 24px) 1;}
html[data-rfx="alarm"] .brand-title{color:#ff4a3d;text-shadow:0 0 10px rgba(255,59,48,.8);text-transform:uppercase;letter-spacing:.16em;}
html[data-rfx="alarm"] #sidebar-right{background:rgba(20,5,7,.93);border-left:2px solid #8a1a22;}
html[data-rfx="alarm"] .userlist-banner{background:repeating-linear-gradient(135deg,#c81e14 0 14px,#7a0f0a 14px 28px);}
html[data-rfx="alarm"] .composer-bar{background:#180608;border:1.5px solid #ff3b30;box-shadow:0 0 14px rgba(255,59,48,.3);}
html[data-rfx="alarm"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,70,58,.6);box-shadow:0 0 10px rgba(255,40,30,.18);}
html[data-rfx="alarm"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffcc00;}

/* ============ FARO ============ */
html[data-rfx="lighthouse"]{--bg:#030812;--bg-2:#030812;--surface:#08121f;--surface-2:#0d1c30;--surface-3:#162b47;--border:#24507a;--accent:#ffd36b;--accent-strong:#ffe9ad;--accent-ink:#1a1200;--bubble-bg:rgba(8,18,32,.94);--bubble-bg-mine:rgba(14,34,58,.95);--text:#eef5ff;--text-muted:#93aac6;--text-faint:#647d9a;}
html[data-rfx="lighthouse"] body{background:linear-gradient(180deg,#01040a 0%,#050f22 55%,#0a2140 100%);}
html[data-rfx="lighthouse"] #app{background:rgba(2,6,14,.08)!important;border-color:rgba(255,211,107,.35);box-shadow:0 0 28px rgba(255,211,107,.08);}
html[data-rfx="lighthouse"] header{background:rgba(6,14,26,.95);border-bottom:1px solid #ffd36b;box-shadow:0 2px 16px rgba(255,211,107,.22);}
html[data-rfx="lighthouse"] .brand-title{color:#ffe9ad;text-shadow:0 0 10px rgba(255,211,107,.7);letter-spacing:.08em;}
html[data-rfx="lighthouse"] #sidebar-right{background:rgba(6,14,26,.93);border-left:1px solid #24507a;}
html[data-rfx="lighthouse"] .userlist-banner{background:linear-gradient(90deg,#123a66,#2f78b8);}
html[data-rfx="lighthouse"] .composer-bar{background:#08121f;border:1.5px solid #3d7fb8;box-shadow:0 0 12px rgba(61,127,184,.25);}
html[data-rfx="lighthouse"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(120,175,225,.4);box-shadow:0 4px 14px rgba(0,0,0,.4);}
html[data-rfx="lighthouse"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(255,211,107,.7);}

/* ============ BOBINA TESLA ============ */
html[data-rfx="tesla"]{--bg:#07030f;--bg-2:#07030f;--surface:#0e0820;--surface-2:#160d30;--surface-3:#241548;--border:#5a2fb0;--accent:#b57bff;--accent-strong:#dcc0ff;--accent-ink:#0c0420;--bubble-bg:rgba(16,9,36,.94);--bubble-bg-mine:rgba(36,16,74,.95);--text:#f4eeff;--text-muted:#b3a2d8;--text-faint:#7d6ca6;}
html[data-rfx="tesla"] body{background:radial-gradient(ellipse at 50% 55%,#1c0c3e 0%,#09041a 55%,#030108 100%);}
html[data-rfx="tesla"] #app{background:rgba(5,2,12,.10)!important;border-color:rgba(181,123,255,.5);box-shadow:0 0 30px rgba(150,90,255,.2);}
html[data-rfx="tesla"] header{background:rgba(12,6,28,.95);border-bottom:1px solid #8a52e0;box-shadow:0 2px 16px rgba(170,110,255,.35);}
html[data-rfx="tesla"] .brand-title{color:#ecdcff;text-shadow:0 0 10px rgba(190,130,255,.9);}
html[data-rfx="tesla"][data-rfx-motion="1"] .brand-title{animation:rfxFlick 5s linear infinite;}
html[data-rfx="tesla"] #sidebar-right{background:rgba(10,5,24,.93);border-left:1px solid #5a2fb0;}
html[data-rfx="tesla"] .userlist-banner{background:linear-gradient(90deg,#4b1fa8,#a35cff);}
html[data-rfx="tesla"] .composer-bar{background:#0e0820;border:1.5px solid #8a52e0;box-shadow:0 0 14px rgba(170,110,255,.3);}
html[data-rfx="tesla"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(181,123,255,.45);box-shadow:0 0 10px rgba(170,110,255,.16);}
html[data-rfx="tesla"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(220,192,255,.75);}

/* ============ TRUENOS LEJANOS ============ */
html[data-rfx="thunder"]{--bg:#04050c;--bg-2:#04050c;--surface:#0a0d1a;--surface-2:#101528;--surface-3:#1a2142;--border:#2b3566;--accent:#a6b4ff;--accent-strong:#d0d8ff;--accent-ink:#060818;--bubble-bg:rgba(10,14,30,.95);--bubble-bg-mine:rgba(20,26,58,.96);--text:#eef1ff;--text-muted:#98a3cf;--text-faint:#66709a;}
html[data-rfx="thunder"] body{background:linear-gradient(180deg,#02030a 0%,#070a18 55%,#0d122a 100%);}
html[data-rfx="thunder"] body::before{content:"";position:fixed;left:-10%;right:-10%;top:-6%;height:60%;z-index:0;pointer-events:none;background:radial-gradient(30% 50% at 14% 24%,rgba(64,76,130,.8),transparent 70%),radial-gradient(34% 55% at 42% 12%,rgba(50,60,108,.9),transparent 70%),radial-gradient(30% 50% at 70% 26%,rgba(70,82,138,.75),transparent 70%),radial-gradient(34% 55% at 94% 10%,rgba(50,60,108,.9),transparent 70%);filter:blur(16px);}
html[data-rfx="thunder"][data-rfx-motion="1"] body::before{animation:rfxClouds 30s ease-in-out infinite alternate;}
html[data-rfx="thunder"] #app{background:rgba(3,4,10,.12)!important;border-color:rgba(166,180,255,.32);box-shadow:0 0 30px rgba(120,140,255,.08);}
html[data-rfx="thunder"] header{background:rgba(8,11,24,.95);border-bottom:1px solid #4a5cb8;}
html[data-rfx="thunder"] .brand-title{color:#dbe2ff;text-shadow:0 0 10px rgba(150,165,255,.6);}
html[data-rfx="thunder"] #sidebar-right{background:rgba(7,9,20,.94);border-left:1px solid #2b3566;}
html[data-rfx="thunder"] .userlist-banner{background:linear-gradient(90deg,#26327a,#5a6fd0);}
html[data-rfx="thunder"] .composer-bar{background:#0a0d1a;border:1.5px solid #4a5cb8;}
html[data-rfx="thunder"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(150,165,255,.35);box-shadow:0 4px 12px rgba(0,0,0,.4);}
html[data-rfx="thunder"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(200,210,255,.65);}

/* ============ ECLIPSE ============ */
html[data-rfx="eclipse"]{--bg:#030304;--bg-2:#030304;--surface:#0a0a0d;--surface-2:#121217;--surface-3:#1c1c24;--border:#3d3524;--accent:#ffc864;--accent-strong:#ffe2a6;--accent-ink:#1a1000;--bubble-bg:rgba(10,10,13,.96);--bubble-bg-mine:rgba(28,23,12,.96);--text:#f6f3ec;--text-muted:#b0a995;--text-faint:#766f5f;}
html[data-rfx="eclipse"] body{background:radial-gradient(ellipse at 50% 46%,#100c16 0%,#050507 58%,#010102 100%);}
html[data-rfx="eclipse"] #app{background:rgba(2,2,3,.08)!important;border-color:rgba(255,200,100,.28);}
html[data-rfx="eclipse"] header{background:rgba(7,7,9,.96);border-bottom:1px solid #8a6a2c;}
html[data-rfx="eclipse"] .brand-title{color:#ffe2a6;text-shadow:0 0 12px rgba(255,200,100,.55);letter-spacing:.12em;text-transform:uppercase;}
html[data-rfx="eclipse"] #sidebar-right{background:rgba(6,6,8,.95);border-left:1px solid #3d3524;}
html[data-rfx="eclipse"] .userlist-banner{background:linear-gradient(90deg,#3a2c10,#a47a28);}
html[data-rfx="eclipse"] .userlist-banner-text{color:#fff3d0;}
html[data-rfx="eclipse"] .composer-bar{background:#0a0a0d;border:1.5px solid #a47a28;}
html[data-rfx="eclipse"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,200,100,.28);}
html[data-rfx="eclipse"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(255,226,166,.6);}

/* ============ OBSIDIANA ============ */
html[data-rfx="obsidian"]{--bg:#050507;--bg-2:#050507;--surface:#0c0c10;--surface-2:#131318;--surface-3:#1d1d25;--border:#34343f;--accent:#d5d9e8;--accent-strong:#ffffff;--accent-ink:#0a0a10;--bubble-bg:rgba(12,12,16,.96);--bubble-bg-mine:rgba(28,28,38,.97);--text:#f4f5f9;--text-muted:#a4a7b6;--text-faint:#6e7080;}
html[data-rfx="obsidian"] body{background:linear-gradient(115deg,transparent 0 31%,rgba(255,255,255,.07) 31% 31.3%,rgba(255,255,255,.022) 31.3% 63%,rgba(255,255,255,.06) 63% 63.25%,transparent 63.25%),linear-gradient(62deg,transparent 0 44%,rgba(255,255,255,.06) 44% 44.25%,rgba(120,130,190,.03) 44.25% 78%,rgba(255,255,255,.05) 78% 78.2%,transparent 78.2%),linear-gradient(160deg,#0d0d14 0%,#040405 55%,#0b0b13 100%);}
html[data-rfx="obsidian"] body::before{content:"";position:fixed;top:-10%;bottom:-10%;left:-45%;width:45%;z-index:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(200,210,255,.13) 50%,transparent 70%);transform:translate3d(0,0,0) skewX(-12deg);}
html[data-rfx="obsidian"][data-rfx-motion="1"] body::before{will-change:transform;animation:rfxSheen 15s ease-in-out infinite;}
@keyframes rfxSheen{0%,12%{transform:translate3d(0,0,0) skewX(-12deg)}88%,100%{transform:translate3d(320%,0,0) skewX(-12deg)}}
html[data-rfx="obsidian"] #app{background:rgba(2,2,3,.30)!important;border-color:rgba(213,217,232,.22);}
html[data-rfx="obsidian"] header{background:rgba(8,8,11,.97);border-bottom:1px solid #4a4a58;}
html[data-rfx="obsidian"] .brand-title{color:#f4f5f9;letter-spacing:.1em;text-shadow:0 0 10px rgba(213,217,232,.3);}
html[data-rfx="obsidian"] #sidebar-right{background:rgba(7,7,10,.96);border-left:1px solid #34343f;}
html[data-rfx="obsidian"] .userlist-banner{background:linear-gradient(90deg,#1d1d25,#4a4a5a);}
html[data-rfx="obsidian"] .composer-bar{background:#0c0c10;border:1.5px solid #5a5a6a;}
html[data-rfx="obsidian"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(213,217,232,.2);}
html[data-rfx="obsidian"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(255,255,255,.5);}

/* ============ RADAR ============ */
html[data-rfx="radar"]{--bg:#010a05;--bg-2:#010a05;--surface:#04150a;--surface-2:#07210f;--surface-3:#0c3318;--border:#136b30;--accent:#2dff7a;--accent-strong:#8dffb4;--accent-ink:#00150a;--bubble-bg:#05180b;--bubble-bg-mine:#0a2c14;--text:#c4ffd6;--text-muted:#5fc382;--text-faint:#3a8a58;--font-body:'IBM Plex Mono','Courier New',monospace;--font-display:'IBM Plex Mono','Courier New',monospace;}
html[data-rfx="radar"] body{background:radial-gradient(circle at 50% 50%,#04200e 0%,#010a05 75%);}
html[data-rfx="radar"] body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:repeating-radial-gradient(circle at 50% 50%,transparent 0 78px,rgba(45,255,122,.28) 78px 80px),linear-gradient(90deg,transparent calc(50% - 1px),rgba(45,255,122,.22) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(0deg,transparent calc(50% - 1px),rgba(45,255,122,.22) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px));}
html[data-rfx="radar"] #app{background:rgba(1,10,5,.25)!important;border-color:#136b30;box-shadow:0 0 30px rgba(45,255,122,.12);}
html[data-rfx="radar"] header{background:rgba(2,18,9,.95);border-bottom:1px solid #2dff7a;box-shadow:0 2px 14px rgba(45,255,122,.3);}
html[data-rfx="radar"] .brand-title{color:#2dff7a;text-shadow:0 0 8px #2dff7a;text-transform:uppercase;letter-spacing:.14em;}
html[data-rfx="radar"] #sidebar-right{background:rgba(2,16,8,.94);border-left:1px solid #136b30;}
html[data-rfx="radar"] .userlist-banner{background:#07331a;border-bottom:1px solid #2dff7a;}
html[data-rfx="radar"] .userlist-banner-text{color:#2dff7a;text-shadow:0 0 6px #2dff7a;}
html[data-rfx="radar"] .composer-bar{background:#04150a;border:1px solid #2dff7a;border-radius:6px;box-shadow:0 0 12px rgba(45,255,122,.25);}
html[data-rfx="radar"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid #178a3c;border-radius:4px;}
html[data-rfx="radar"] #message-list .msg-bubble:not(.bfx):not([data-ubg]):not([data-utxt]){color:#a8ffc4!important;}
html[data-rfx="radar"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#2dff7a;}

/* ============ FIESTA (CUMPLEAÑOS) ============ */
html[data-rfx="party"]{--bg:#2a0a52;--bg-2:#2a0a52;--surface:#3a1470;--surface-2:#4a1c8a;--surface-3:#6a2ab0;--border:#c066f0;--accent:#ffd23f;--accent-strong:#ffe27a;--accent-ink:#2a1a00;--bubble-bg:#431a82;--bubble-bg-mine:#7a1a6a;--text:#fff6ff;--text-muted:#e0b8f5;--text-faint:#b088d0;}
html[data-rfx="party"] body{background:radial-gradient(ellipse 50% 40% at 20% 20%,rgba(255,61,127,.30),transparent 70%),radial-gradient(ellipse 50% 40% at 85% 75%,rgba(61,214,255,.24),transparent 70%),linear-gradient(180deg,#22084a 0%,#5a1a96 50%,#c0307e 100%);}
html[data-rfx="party"] #app{background:rgba(26,6,56,.22)!important;border-color:rgba(255,210,63,.5);box-shadow:0 0 36px rgba(255,61,127,.2);}
html[data-rfx="party"] header{background:rgba(52,16,100,.95);border-bottom:3px solid #ffd23f;}
html[data-rfx="party"] .brand-title{background:linear-gradient(90deg,#ff3d7f,#ffd23f,#3dd6ff,#7dff6a,#ff3d7f);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;font-weight:800;}
html[data-rfx="party"][data-rfx-motion="1"] .brand-title{animation:rfxRainbow 4s linear infinite;}
html[data-rfx="party"] #sidebar-right{background:rgba(46,12,90,.94);border-left:2px solid #c066f0;}
html[data-rfx="party"] .userlist-banner{background:linear-gradient(90deg,#ff3d7f,#ffd23f);}
html[data-rfx="party"] .userlist-banner-text{color:#2a1a00;}
html[data-rfx="party"] .composer-bar{background:#3a1470;border:1.5px solid #ffd23f;box-shadow:0 0 14px rgba(255,210,63,.3);}
html[data-rfx="party"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1.5px solid rgba(255,210,63,.6);box-shadow:0 4px 14px rgba(0,0,0,.25);}
html[data-rfx="party"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#3dd6ff;}
html[data-rfx="party"] .main::before{content:"";position:absolute;left:0;right:0;top:0;height:46px;z-index:6;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='46' viewBox='0 0 120 46'%3E%3Cpath d='M0 4Q60 22 120 4' fill='none' stroke='%23efe0ff' stroke-width='1.6'/%3E%3Cpolygon points='6%2C6.9 24%2C6.9 15%2C30.9' fill='%23ff3d7f'/%3E%3Cpolygon points='36%2C11.4 54%2C11.4 45%2C35.4' fill='%23ffd23f'/%3E%3Cpolygon points='66%2C11.4 84%2C11.4 75%2C35.4' fill='%233dd6ff'/%3E%3Cpolygon points='96%2C6.9 114%2C6.9 105%2C30.9' fill='%237dff6a'/%3E%3C/svg%3E") repeat-x 0 0/120px 46px;}
html[data-rfx="party"][data-rfx-motion="1"] .main::before{animation:rfxBunt 3.4s ease-in-out infinite alternate;transform-origin:50% 0;}
@keyframes rfxBunt{from{transform:skewX(-1.4deg)}to{transform:skewX(1.4deg)}}

/* ============ ARCADE ============ */
html[data-rfx="arcade"]{--bg:#07071a;--bg-2:#07071a;--surface:#0d0d2b;--surface-2:#14143c;--surface-3:#1f1f55;--border:#00e5ff;--accent:#ffe600;--accent-strong:#fff27a;--accent-ink:#1a1600;--bubble-bg:#101036;--bubble-bg-mine:#26104a;--text:#f2f6ff;--text-muted:#9ab0ff;--text-faint:#6a7cc0;--font-body:'IBM Plex Mono','Courier New',monospace;--font-display:'IBM Plex Mono','Courier New',monospace;}
html[data-rfx="arcade"] body{background:repeating-linear-gradient(0deg,rgba(0,229,255,.07) 0 1px,transparent 1px 32px),repeating-linear-gradient(90deg,rgba(255,46,196,.07) 0 1px,transparent 1px 32px),linear-gradient(180deg,#04041a,#0c0830);}
html[data-rfx="arcade"] #app{background:rgba(4,4,22,.25)!important;border:2px solid #00e5ff;box-shadow:0 0 0 3px #ff2ec4,0 0 30px rgba(0,229,255,.3);border-radius:0;}
html[data-rfx="arcade"] header{background:#0a0a26;border-bottom:3px solid #ffe600;}
html[data-rfx="arcade"] .brand-title{color:#ffe600;text-transform:uppercase;letter-spacing:.18em;text-shadow:3px 3px 0 #ff2ec4;}
html[data-rfx="arcade"] #sidebar-right{background:#0a0a26;border-left:3px solid #00e5ff;}
html[data-rfx="arcade"] .userlist-banner{background:repeating-linear-gradient(90deg,#ff2ec4 0 16px,#00e5ff 16px 32px);}
html[data-rfx="arcade"] .userlist-banner-text{color:#07071a;font-weight:800;}
html[data-rfx="arcade"] .composer-bar{background:#0d0d2b;border:2px solid #00e5ff;border-radius:0;box-shadow:3px 3px 0 #ff2ec4;}
html[data-rfx="arcade"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:2px solid #00e5ff;border-radius:0;box-shadow:3px 3px 0 #ff2ec4;}
html[data-rfx="arcade"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffe600;box-shadow:3px 3px 0 #00e5ff;}

/* ============ NAVIDAD · ALDEA NEVADA ============ */
html[data-rfx="village"]{--bg:#040a1c;--bg-2:#040a1c;--surface:#0a1a3c;--surface-2:#10285a;--surface-3:#1a3a78;--border:#6a9ad8;--accent:#bfe4ff;--accent-strong:#e6f4ff;--accent-ink:#06182e;--bubble-bg:#0f2552;--bubble-bg-mine:#16326a;--text:#f4faff;--text-muted:#a8c4e6;--text-faint:#7894bc;}
html[data-rfx="village"] body{background:radial-gradient(circle at 80% 15%,#fffbe6 0 24px,rgba(255,250,220,.35) 26px 54px,transparent 96px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Ccircle cx='84' cy='214' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='144' cy='245' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='262' cy='93' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='7' cy='189' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='74' cy='384' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='355' cy='21' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='394' cy='208' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='168' cy='276' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='59' cy='332' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='79' cy='379' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='10' cy='232' r='0.9' fill='%23ffe9c8'/%3E%3Ccircle cx='372' cy='175' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='77' cy='95' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='120' cy='38' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='344' cy='336' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='286' cy='243' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='174' cy='74' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='186' cy='231' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='248' cy='197' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='47' cy='81' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='251' cy='35' r='0.9' fill='%23ffe9c8'/%3E%3Ccircle cx='311' cy='163' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='342' cy='87' r='1.2' fill='%23cfe0ff'/%3E%3Ccircle cx='177' cy='390' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='52' cy='86' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='397' cy='219' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='349' cy='18' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='83' cy='379' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='251' cy='259' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='126' cy='125' r='0.9' fill='%23ffe9c8'/%3E%3C/svg%3E") 0 0/400px 400px,linear-gradient(180deg,#040a1c 0%,#0b2350 55%,#1a4a86 100%);}
html[data-rfx="village"] body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:255px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='170' viewBox='0 0 520 170'%3E%3Cpath d='M0 170V112Q130 76 260 110T520 104V170Z' fill='%2317355f'/%3E%3Crect x='24' y='102' width='80' height='46' fill='%230a1630'/%3E%3Cpolygon points='16%2C102 64.0%2C68 112%2C102' fill='%230a1630'/%3E%3Cpolygon points='16%2C102 64.0%2C68 112%2C102 106%2C102 64.0%2C75 22%2C102' fill='%23eef6ff'/%3E%3Crect x='80.0' y='72' width='9' height='20' fill='%230a1630'/%3E%3Crect x='79.0' y='69' width='11' height='4' fill='%23eef6ff'/%3E%3Crect x='36' y='114' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='78' y='114' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='150' y='96' width='96' height='52' fill='%230a1630'/%3E%3Cpolygon points='142%2C96 198.0%2C62 254%2C96' fill='%230a1630'/%3E%3Cpolygon points='142%2C96 198.0%2C62 254%2C96 248%2C96 198.0%2C69 148%2C96' fill='%23eef6ff'/%3E%3Crect x='217.2' y='66' width='9' height='20' fill='%230a1630'/%3E%3Crect x='216.2' y='63' width='11' height='4' fill='%23eef6ff'/%3E%3Crect x='162' y='108' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='220' y='108' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='310' y='104' width='84' height='44' fill='%230a1630'/%3E%3Cpolygon points='302%2C104 352.0%2C70 402%2C104' fill='%230a1630'/%3E%3Cpolygon points='302%2C104 352.0%2C70 402%2C104 396%2C104 352.0%2C77 308%2C104' fill='%23eef6ff'/%3E%3Crect x='368.8' y='74' width='9' height='20' fill='%230a1630'/%3E%3Crect x='367.8' y='71' width='11' height='4' fill='%23eef6ff'/%3E%3Crect x='322' y='116' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='368' y='116' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='424' y='98' width='76' height='50' fill='%230a1630'/%3E%3Cpolygon points='416%2C98 462.0%2C64 508%2C98' fill='%230a1630'/%3E%3Cpolygon points='416%2C98 462.0%2C64 508%2C98 502%2C98 462.0%2C71 422%2C98' fill='%23eef6ff'/%3E%3Crect x='477.2' y='68' width='9' height='20' fill='%230a1630'/%3E%3Crect x='476.2' y='65' width='11' height='4' fill='%23eef6ff'/%3E%3Crect x='436' y='110' width='13' height='15' fill='%23ffcf6a'/%3E%3Crect x='474' y='110' width='13' height='15' fill='%23ffcf6a'/%3E%3Cpolygon points='120%2C92 106%2C148 134%2C148' fill='%230b2a3a'/%3E%3Cpolygon points='120%2C113.28 102%2C156 138%2C156' fill='%230b2a3a'/%3E%3Cpolygon points='268%2C82 254%2C148 282%2C148' fill='%230b2a3a'/%3E%3Cpolygon points='268%2C107.08 250%2C156 286%2C156' fill='%230b2a3a'/%3E%3Cpolygon points='396%2C98 382%2C148 410%2C148' fill='%230b2a3a'/%3E%3Cpolygon points='396%2C117.0 378%2C156 414%2C156' fill='%230b2a3a'/%3E%3Cpolygon points='500%2C88 486%2C148 514%2C148' fill='%230b2a3a'/%3E%3Cpolygon points='500%2C110.8 482%2C156 518%2C156' fill='%230b2a3a'/%3E%3Cpath d='M0 170V146Q130 130 260 146T520 142V170Z' fill='%23dfeaf6'/%3E%3C/svg%3E") repeat-x left bottom/780px 255px;}
html[data-rfx="village"] #app{background:rgba(4,10,28,.22)!important;border-color:rgba(200,225,255,.45);box-shadow:0 0 36px rgba(160,200,255,.14);}
html[data-rfx="village"] header{background:rgba(8,22,52,.95);border-bottom:4px solid #eaf6ff;}
html[data-rfx="village"] .brand-title{color:#fff;text-shadow:0 0 10px rgba(180,220,255,.8);}
html[data-rfx="village"] #sidebar-right{background:rgba(8,22,52,.94);border-left:2px solid #6a9ad8;}
html[data-rfx="village"] .userlist-banner{background:linear-gradient(90deg,#4f8fe0,#bfe4ff);}
html[data-rfx="village"] .userlist-banner-text{color:#06182e;}
html[data-rfx="village"] .composer-bar{background:#0a1a3c;border:1.5px solid #bfe4ff;}
html[data-rfx="village"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(220,240,255,.55);box-shadow:0 0 10px rgba(160,200,255,.2);}
html[data-rfx="village"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffd36b;}

/* ============ NAVIDAD · CHIMENEA ============ */
html[data-rfx="fireplace"]{--bg:#120603;--bg-2:#120603;--surface:#241008;--surface-2:#34180c;--surface-3:#4c2410;--border:#c0702a;--accent:#ffb347;--accent-strong:#ffd08a;--accent-ink:#2a1200;--bubble-bg:#2f140a;--bubble-bg-mine:#4a1a0c;--text:#fff1e0;--text-muted:#e0b890;--text-faint:#a8805c;}
html[data-rfx="fireplace"] body{background:linear-gradient(180deg,#0c0402 0%,#2a0f06 60%,#5a1c08 100%);}
html[data-rfx="fireplace"] body::before{content:"";position:fixed;left:0;right:0;bottom:-6px;height:200px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='200' viewBox='0 0 300 200'%3E%3Cpath d='M20 200C-14 145.0 8 123.0 20 90C32 123.0 54 145.0 20 200Z' fill='%23ff6a1a' fill-opacity='.9'/%3E%3Cpath d='M20 200C0 156.0 13 145.0 20 117.5C27 145.0 40 156.0 20 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M20 200C10 172.5 17 167.0 20 145.0C23 167.0 30 172.5 20 200Z' fill='%23ffe27a'/%3E%3Cpath d='M60 200C26 125.0 48 95.0 60 50C72 95.0 94 125.0 60 200Z' fill='%23ff7a1a' fill-opacity='.9'/%3E%3Cpath d='M60 200C40 140.0 53 125.0 60 87.5C67 125.0 80 140.0 60 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M60 200C50 162.5 57 155.0 60 125.0C63 155.0 70 162.5 60 200Z' fill='%23ffe27a'/%3E%3Cpath d='M105 200C71 140.0 93 116.0 105 80C117 116.0 139 140.0 105 200Z' fill='%23ff6a1a' fill-opacity='.9'/%3E%3Cpath d='M105 200C85 152.0 98 140.0 105 110.0C112 140.0 125 152.0 105 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M105 200C95 170.0 102 164.0 105 140.0C108 164.0 115 170.0 105 200Z' fill='%23ffe27a'/%3E%3Cpath d='M150 200C116 115.0 138 81.0 150 30C162 81.0 184 115.0 150 200Z' fill='%23ff7a1a' fill-opacity='.9'/%3E%3Cpath d='M150 200C130 132.0 143 115.0 150 72.5C157 115.0 170 132.0 150 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M150 200C140 157.5 147 149.0 150 115.0C153 149.0 160 157.5 150 200Z' fill='%23ffe27a'/%3E%3Cpath d='M195 200C161 137.5 183 112.5 195 75C207 112.5 229 137.5 195 200Z' fill='%23ff6a1a' fill-opacity='.9'/%3E%3Cpath d='M195 200C175 150.0 188 137.5 195 106.25C202 137.5 215 150.0 195 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M195 200C185 168.75 192 162.5 195 137.5C198 162.5 205 168.75 195 200Z' fill='%23ffe27a'/%3E%3Cpath d='M240 200C206 122.5 228 91.5 240 45C252 91.5 274 122.5 240 200Z' fill='%23ff7a1a' fill-opacity='.9'/%3E%3Cpath d='M240 200C220 138.0 233 122.5 240 83.75C247 122.5 260 138.0 240 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M240 200C230 161.25 237 153.5 240 122.5C243 153.5 250 161.25 240 200Z' fill='%23ffe27a'/%3E%3Cpath d='M282 200C248 147.5 270 126.5 282 95C294 126.5 316 147.5 282 200Z' fill='%23ff6a1a' fill-opacity='.9'/%3E%3Cpath d='M282 200C262 158.0 275 147.5 282 121.25C289 147.5 302 158.0 282 200Z' fill='%23ffb02e' fill-opacity='.95'/%3E%3Cpath d='M282 200C272 173.75 279 168.5 282 147.5C285 168.5 292 173.75 282 200Z' fill='%23ffe27a'/%3E%3C/svg%3E") repeat-x left bottom/300px 200px;transform-origin:50% 100%;opacity:.9;}
html[data-rfx="fireplace"][data-rfx-motion="1"] body::before{animation:rfxFlame 1.1s ease-in-out infinite alternate;}
@keyframes rfxFlame{0%{transform:scaleY(1) scaleX(1)}35%{transform:scaleY(1.06) scaleX(.99)}70%{transform:scaleY(.97) scaleX(1.01)}100%{transform:scaleY(1.08) scaleX(1)}}
html[data-rfx="fireplace"] body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 55% at 50% 108%,rgba(255,140,40,.5),transparent 70%);}
html[data-rfx="fireplace"][data-rfx-motion="1"] body::after{animation:rfxGlow 2.6s ease-in-out infinite alternate;}
@keyframes rfxGlow{0%{opacity:.72}30%{opacity:1}55%{opacity:.82}100%{opacity:.95}}
html[data-rfx="fireplace"] #app{background:rgba(14,5,2,.22)!important;border-color:rgba(255,160,70,.5);box-shadow:0 0 36px rgba(255,120,30,.18);}
html[data-rfx="fireplace"] header{background:rgba(36,16,8,.95);border-bottom:3px solid #c0702a;}
html[data-rfx="fireplace"] .brand-title{color:#ffcf8a;text-shadow:0 0 12px rgba(255,140,40,.8);}
html[data-rfx="fireplace"] #sidebar-right{background:rgba(30,13,6,.94);border-left:2px solid #c0702a;}
html[data-rfx="fireplace"] .userlist-banner{background:linear-gradient(90deg,#b4202a,#ff9a2e);}
html[data-rfx="fireplace"] .composer-bar{background:#241008;border:1.5px solid #ffb347;box-shadow:0 0 14px rgba(255,150,50,.3);}
html[data-rfx="fireplace"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,160,70,.55);box-shadow:0 0 12px rgba(255,120,30,.16);}
html[data-rfx="fireplace"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#6adf8a;}
html[data-rfx="fireplace"] .main::before{content:"";position:absolute;left:0;right:0;top:0;height:44px;z-index:6;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='44' viewBox='0 0 160 44'%3E%3Cpath d='M0 10Q40 34 80 10T160 10' fill='none' stroke='%231f6b3a' stroke-width='9' stroke-linecap='round'/%3E%3Cpath d='M0 10Q40 34 80 10T160 10' fill='none' stroke='%233aa862' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='40' cy='24' r='5.4' fill='%23ff3b3b'/%3E%3Ccircle cx='120' cy='24' r='5.4' fill='%23ffd36b'/%3E%3Ccircle cx='20' cy='17' r='2.4' fill='%23ff4d4d'/%3E%3Ccircle cx='60' cy='17' r='2.4' fill='%23ff4d4d'/%3E%3Ccircle cx='100' cy='17' r='2.4' fill='%23ff4d4d'/%3E%3Ccircle cx='140' cy='17' r='2.4' fill='%23ff4d4d'/%3E%3C/svg%3E") repeat-x 0 0/160px 44px;}

/* ============ NAVIDAD · PAPÁ NOEL ============ */
html[data-rfx="santa"]{--bg:#050818;--bg-2:#050818;--surface:#0c1440;--surface-2:#142058;--surface-3:#1f3080;--border:#4f68c8;--accent:#ff5a5a;--accent-strong:#ff9090;--accent-ink:#200404;--bubble-bg:#101a50;--bubble-bg-mine:#4a1020;--text:#f6f8ff;--text-muted:#aab8e8;--text-faint:#7a88bc;}
html[data-rfx="santa"] body{background:radial-gradient(circle at 74% 20%,#fffbe6 0 34px,rgba(255,250,220,.4) 36px 80px,transparent 130px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Ccircle cx='84' cy='214' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='144' cy='245' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='262' cy='93' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='7' cy='189' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='74' cy='384' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='355' cy='21' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='394' cy='208' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='168' cy='276' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='59' cy='332' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='79' cy='379' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='10' cy='232' r='0.9' fill='%23ffe9c8'/%3E%3Ccircle cx='372' cy='175' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='77' cy='95' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='120' cy='38' r='0.9' fill='%23ffffff'/%3E%3Ccircle cx='344' cy='336' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='286' cy='243' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='174' cy='74' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='186' cy='231' r='1.5' fill='%23cfe0ff'/%3E%3Ccircle cx='248' cy='197' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='47' cy='81' r='1.5' fill='%23ffffff'/%3E%3Ccircle cx='251' cy='35' r='0.9' fill='%23ffe9c8'/%3E%3Ccircle cx='311' cy='163' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='342' cy='87' r='1.2' fill='%23cfe0ff'/%3E%3Ccircle cx='177' cy='390' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='52' cy='86' r='0.7' fill='%23ffffff'/%3E%3Ccircle cx='397' cy='219' r='1.2' fill='%23ffffff'/%3E%3Ccircle cx='349' cy='18' r='0.9' fill='%23cfe0ff'/%3E%3Ccircle cx='83' cy='379' r='0.7' fill='%23cfe0ff'/%3E%3Ccircle cx='251' cy='259' r='1.5' fill='%23ffe9c8'/%3E%3Ccircle cx='126' cy='125' r='0.9' fill='%23ffe9c8'/%3E%3C/svg%3E") 0 0/400px 400px,linear-gradient(180deg,#040618 0%,#0d1a4a 55%,#233a8a 100%);}
html[data-rfx="santa"] body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:180px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='120' viewBox='0 0 480 120'%3E%3Crect x='0' y='82' width='90' height='38' fill='%23050a1c'/%3E%3Cpolygon points='-6%2C82 45.0%2C52 96%2C82' fill='%23050a1c'/%3E%3Cpolygon points='-6%2C82 45.0%2C52 96%2C82 91%2C82 45.0%2C58 -1%2C82' fill='%23e6f0fa'/%3E%3Crect x='61.2' y='52' width='10' height='20' fill='%23050a1c'/%3E%3Crect x='60.2' y='49' width='12' height='4' fill='%23e6f0fa'/%3E%3Crect x='14' y='94' width='11' height='12' fill='%23ffc65c' fill-opacity='.9'/%3E%3Crect x='90' y='70' width='110' height='50' fill='%23050a1c'/%3E%3Cpolygon points='84%2C70 145.0%2C40 206%2C70' fill='%23050a1c'/%3E%3Cpolygon points='84%2C70 145.0%2C40 206%2C70 201%2C70 145.0%2C46 89%2C70' fill='%23e6f0fa'/%3E%3Crect x='164.8' y='40' width='10' height='20' fill='%23050a1c'/%3E%3Crect x='163.8' y='37' width='12' height='4' fill='%23e6f0fa'/%3E%3Crect x='104' y='82' width='11' height='12' fill='%23ffc65c' fill-opacity='.9'/%3E%3Crect x='200' y='86' width='80' height='34' fill='%23050a1c'/%3E%3Cpolygon points='194%2C86 240.0%2C56 286%2C86' fill='%23050a1c'/%3E%3Cpolygon points='194%2C86 240.0%2C56 286%2C86 281%2C86 240.0%2C62 199%2C86' fill='%23e6f0fa'/%3E%3Crect x='254.4' y='56' width='10' height='20' fill='%23050a1c'/%3E%3Crect x='253.4' y='53' width='12' height='4' fill='%23e6f0fa'/%3E%3Crect x='214' y='98' width='11' height='12' fill='%23ffc65c' fill-opacity='.9'/%3E%3Crect x='280' y='74' width='120' height='46' fill='%23050a1c'/%3E%3Cpolygon points='274%2C74 340.0%2C44 406%2C74' fill='%23050a1c'/%3E%3Cpolygon points='274%2C74 340.0%2C44 406%2C74 401%2C74 340.0%2C50 279%2C74' fill='%23e6f0fa'/%3E%3Crect x='361.6' y='44' width='10' height='20' fill='%23050a1c'/%3E%3Crect x='360.6' y='41' width='12' height='4' fill='%23e6f0fa'/%3E%3Crect x='294' y='86' width='11' height='12' fill='%23ffc65c' fill-opacity='.9'/%3E%3Crect x='400' y='80' width='80' height='40' fill='%23050a1c'/%3E%3Cpolygon points='394%2C80 440.0%2C50 486%2C80' fill='%23050a1c'/%3E%3Cpolygon points='394%2C80 440.0%2C50 486%2C80 481%2C80 440.0%2C56 399%2C80' fill='%23e6f0fa'/%3E%3Crect x='454.4' y='50' width='10' height='20' fill='%23050a1c'/%3E%3Crect x='453.4' y='47' width='12' height='4' fill='%23e6f0fa'/%3E%3Crect x='414' y='92' width='11' height='12' fill='%23ffc65c' fill-opacity='.9'/%3E%3C/svg%3E") repeat-x left bottom/720px 180px;}
html[data-rfx="santa"] #app{background:rgba(4,6,24,.22)!important;border-color:rgba(255,90,90,.45);box-shadow:0 0 36px rgba(255,90,90,.14);}
html[data-rfx="santa"] header{background:rgba(10,18,56,.95);border-bottom:5px solid transparent;border-image:repeating-linear-gradient(135deg,#d42a2a 0 10px,#f6fff8 10px 20px) 1;}
html[data-rfx="santa"] .brand-title{color:#fff;text-shadow:0 0 10px rgba(255,90,90,.8);}
html[data-rfx="santa"] #sidebar-right{background:rgba(10,18,56,.94);border-left:2px solid #4f68c8;}
html[data-rfx="santa"] .userlist-banner{background:linear-gradient(90deg,#c0202a,#1f8a4c);}
html[data-rfx="santa"] .composer-bar{background:#0c1440;border:1.5px solid #ff5a5a;box-shadow:0 0 14px rgba(255,90,90,.28);}
html[data-rfx="santa"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,120,120,.55);box-shadow:0 0 10px rgba(255,90,90,.14);}
html[data-rfx="santa"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#6adf8a;}

/* ============ OTOÑO ============ */
html[data-rfx="autumn"]{--bg:#1c0e06;--bg-2:#1c0e06;--surface:#2c1609;--surface-2:#3c1f0e;--surface-3:#58301a;--border:#c0702a;--accent:#ff9a2e;--accent-strong:#ffc070;--accent-ink:#2a1200;--bubble-bg:#3a1c0c;--bubble-bg-mine:#5a2a10;--text:#fff1e0;--text-muted:#e0b890;--text-faint:#a8805c;}
html[data-rfx="autumn"] body{background:radial-gradient(ellipse 70% 40% at 50% 108%,rgba(255,170,70,.45),transparent 70%),linear-gradient(180deg,#160a04 0%,#4a2210 45%,#a85a1c 100%);}
html[data-rfx="autumn"] #app{background:rgba(22,10,4,.22)!important;border-color:rgba(255,154,46,.5);box-shadow:0 0 30px rgba(255,140,40,.15);}
html[data-rfx="autumn"] header{background:rgba(44,22,9,.95);border-bottom:3px solid #c0702a;}
html[data-rfx="autumn"] .brand-title{color:#ffbe6a;text-shadow:0 0 10px rgba(255,140,40,.6);}
html[data-rfx="autumn"] #sidebar-right{background:rgba(38,19,8,.94);border-left:2px solid #c0702a;}
html[data-rfx="autumn"] .userlist-banner{background:linear-gradient(90deg,#b4501a,#ffb347);}
html[data-rfx="autumn"] .userlist-banner-text{color:#2a1200;}
html[data-rfx="autumn"] .composer-bar{background:#2c1609;border:1.5px solid #ff9a2e;}
html[data-rfx="autumn"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,160,70,.55);box-shadow:0 4px 12px rgba(0,0,0,.25);}
html[data-rfx="autumn"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ffd36b;}

/* ============ BOSQUE DE LUCIÉRNAGAS ============ */
html[data-rfx="forest"]{--bg:#01100a;--bg-2:#01100a;--surface:#05281a;--surface-2:#083824;--surface-3:#0e5236;--border:#1f8a58;--accent:#b6ff5a;--accent-strong:#d6ff9a;--accent-ink:#0a1a00;--bubble-bg:#08301f;--bubble-bg-mine:#0e4430;--text:#eafff2;--text-muted:#98d0b0;--text-faint:#68a082;}
html[data-rfx="forest"] body{background:radial-gradient(circle at 78% 14%,rgba(220,255,230,.30) 0 20px,rgba(180,255,210,.10) 22px 90px,transparent 130px),linear-gradient(180deg,#010a06 0%,#04281a 70%,#073a26 100%);}
html[data-rfx="forest"] body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:300px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='150' viewBox='0 0 320 150'%3E%3Cg fill='%23063a24'%3E%3Cpolygon points='30%2C50.0 18.8%2C91.7 41.2%2C91.7'/%3E%3Cpolygon points='30%2C76.7 11.8%2C118.3 48.2%2C118.3'/%3E%3Cpolygon points='30%2C103.3 4.8%2C145.0 55.2%2C145.0'/%3E%3Crect x='26' y='142' width='8' height='8'/%3E%3Cpolygon points='95%2C10.0 79.2%2C68.3 110.8%2C68.3'/%3E%3Cpolygon points='95%2C47.3 69.5%2C105.7 120.5%2C105.7'/%3E%3Cpolygon points='95%2C84.7 59.6%2C143.0 130.3%2C143.0'/%3E%3Crect x='91' y='142' width='8' height='8'/%3E%3Cpolygon points='165%2C60.0 154.7%2C97.5 175.3%2C97.5'/%3E%3Cpolygon points='165%2C84.0 148.2%2C121.5 181.8%2C121.5'/%3E%3Cpolygon points='165%2C108.0 141.8%2C145.5 188.2%2C145.5'/%3E%3Crect x='161' y='142' width='8' height='8'/%3E%3Cpolygon points='225%2C25.0 211.1%2C77.1 238.9%2C77.1'/%3E%3Cpolygon points='225%2C58.3 202.4%2C110.4 247.6%2C110.4'/%3E%3Cpolygon points='225%2C91.7 193.7%2C143.8 256.3%2C143.8'/%3E%3Crect x='221' y='142' width='8' height='8'/%3E%3Cpolygon points='290%2C45.0 277.9%2C88.8 302.1%2C88.8'/%3E%3Cpolygon points='290%2C73.0 270.3%2C116.8 309.7%2C116.8'/%3E%3Cpolygon points='290%2C101.0 262.7%2C144.8 317.3%2C144.8'/%3E%3Crect x='286' y='142' width='8' height='8'/%3E%3C/g%3E%3C/svg%3E") repeat-x left bottom/640px 300px;}
html[data-rfx="forest"] body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:200px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='150' viewBox='0 0 320 150'%3E%3Cg fill='%2302150d'%3E%3Cpolygon points='30%2C50.0 18.8%2C91.7 41.2%2C91.7'/%3E%3Cpolygon points='30%2C76.7 11.8%2C118.3 48.2%2C118.3'/%3E%3Cpolygon points='30%2C103.3 4.8%2C145.0 55.2%2C145.0'/%3E%3Crect x='26' y='142' width='8' height='8'/%3E%3Cpolygon points='95%2C10.0 79.2%2C68.3 110.8%2C68.3'/%3E%3Cpolygon points='95%2C47.3 69.5%2C105.7 120.5%2C105.7'/%3E%3Cpolygon points='95%2C84.7 59.6%2C143.0 130.3%2C143.0'/%3E%3Crect x='91' y='142' width='8' height='8'/%3E%3Cpolygon points='165%2C60.0 154.7%2C97.5 175.3%2C97.5'/%3E%3Cpolygon points='165%2C84.0 148.2%2C121.5 181.8%2C121.5'/%3E%3Cpolygon points='165%2C108.0 141.8%2C145.5 188.2%2C145.5'/%3E%3Crect x='161' y='142' width='8' height='8'/%3E%3Cpolygon points='225%2C25.0 211.1%2C77.1 238.9%2C77.1'/%3E%3Cpolygon points='225%2C58.3 202.4%2C110.4 247.6%2C110.4'/%3E%3Cpolygon points='225%2C91.7 193.7%2C143.8 256.3%2C143.8'/%3E%3Crect x='221' y='142' width='8' height='8'/%3E%3Cpolygon points='290%2C45.0 277.9%2C88.8 302.1%2C88.8'/%3E%3Cpolygon points='290%2C73.0 270.3%2C116.8 309.7%2C116.8'/%3E%3Cpolygon points='290%2C101.0 262.7%2C144.8 317.3%2C144.8'/%3E%3Crect x='286' y='142' width='8' height='8'/%3E%3C/g%3E%3C/svg%3E") repeat-x 90px bottom/480px 225px;}
html[data-rfx="forest"] #app{background:rgba(1,12,8,.22)!important;border-color:rgba(60,190,120,.45);box-shadow:0 0 30px rgba(60,190,120,.14);}
html[data-rfx="forest"] header{background:rgba(5,40,26,.95);border-bottom:2px solid #1f8a58;}
html[data-rfx="forest"] .brand-title{color:#c8ff7a;text-shadow:0 0 12px rgba(182,255,90,.6);}
html[data-rfx="forest"] #sidebar-right{background:rgba(4,34,22,.94);border-left:2px solid #1f8a58;}
html[data-rfx="forest"] .userlist-banner{background:linear-gradient(90deg,#14804a,#b6ff5a);}
html[data-rfx="forest"] .userlist-banner-text{color:#0a1a00;}
html[data-rfx="forest"] .composer-bar{background:#05281a;border:1.5px solid #b6ff5a;box-shadow:0 0 12px rgba(182,255,90,.2);}
html[data-rfx="forest"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(120,230,160,.5);box-shadow:0 0 10px rgba(60,200,120,.12);}
html[data-rfx="forest"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#b6ff5a;}

/* ============ NOCHE DE LLUVIA ============ */
html[data-rfx="rain"]{--bg:#0a0f1a;--bg-2:#0a0f1a;--surface:#111a28;--surface-2:#182436;--surface-3:#243650;--border:#40607f;--accent:#7fb2ff;--accent-strong:#b0d0ff;--accent-ink:#06101e;--bubble-bg:#16222f;--bubble-bg-mine:#1c3048;--text:#e6eef8;--text-muted:#90a8c4;--text-faint:#62788f;}
html[data-rfx="rain"] body{background:linear-gradient(180deg,#070b14 0%,#121c2a 60%,#1d2d40 100%);}
html[data-rfx="rain"] body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:200px;z-index:0;pointer-events:none;background:radial-gradient(circle at 8% 70%,rgba(255,170,70,.55) 0 22px,transparent 24px),radial-gradient(circle at 20% 82%,rgba(80,220,255,.45) 0 16px,transparent 18px),radial-gradient(circle at 34% 64%,rgba(255,90,150,.45) 0 26px,transparent 28px),radial-gradient(circle at 47% 86%,rgba(255,220,120,.5) 0 14px,transparent 16px),radial-gradient(circle at 60% 70%,rgba(110,255,200,.4) 0 24px,transparent 26px),radial-gradient(circle at 74% 84%,rgba(255,140,60,.5) 0 18px,transparent 20px),radial-gradient(circle at 88% 66%,rgba(120,160,255,.5) 0 26px,transparent 28px);filter:blur(5px);}
html[data-rfx="rain"] #app{background:rgba(6,10,18,.24)!important;border-color:rgba(127,178,255,.4);}
html[data-rfx="rain"] header{background:rgba(14,22,34,.95);border-bottom:1px solid #4a6a8f;}
html[data-rfx="rain"] .brand-title{color:#cfe0f5;text-shadow:0 0 8px rgba(127,178,255,.5);}
html[data-rfx="rain"] #sidebar-right{background:rgba(12,19,30,.94);border-left:1px solid #40607f;}
html[data-rfx="rain"] .userlist-banner{background:linear-gradient(90deg,#2a4a7a,#6a9ad8);}
html[data-rfx="rain"] .composer-bar{background:#111a28;border:1px solid #5a80ad;}
html[data-rfx="rain"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(150,190,230,.4);box-shadow:0 4px 12px rgba(0,0,0,.3);}
html[data-rfx="rain"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(190,215,250,.65);}

/* ============ LATIDO ============ */
/* v14.196: ya no se anima ninguna sombra del chat (obligaba a repintar toda la sala en cada fotograma y el electrocardiograma se paraba).
   El pulso es una viñeta roja que solo cambia de opacidad; la cuadrícula es fija; la línea la dibuja js/roomfx.js. */
html[data-rfx="heartbeat"]{--bg:#0c0204;--bg-2:#0c0204;--surface:#160509;--surface-2:#210910;--surface-3:#340e18;--border:#7a1620;--accent:#ff2a3a;--accent-strong:#ff6a76;--accent-ink:#1a0204;--bubble-bg:#1c070c;--bubble-bg-mine:#340a12;--text:#fff0f1;--text-muted:#d09aa0;--text-faint:#9a6468;}
html[data-rfx="heartbeat"] body{background:linear-gradient(rgba(255,42,58,.085) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(90deg,rgba(255,42,58,.085) 1px,transparent 1px) 0 0/40px 40px,radial-gradient(ellipse at 50% 55%,#1a050a 0%,#0a0204 70%,#030001 100%);}
html[data-rfx="heartbeat"] body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 36%,rgba(235,0,28,.60) 100%);opacity:.30;}
html[data-rfx="heartbeat"][data-rfx-motion="1"] body::after{will-change:opacity;animation:rfxHeart 1s linear infinite;}
@keyframes rfxHeart{0%,100%{opacity:.26}16%{opacity:.34}23%{opacity:1}31%{opacity:.42}45%{opacity:.78}62%{opacity:.26}}
html[data-rfx="heartbeat"] #app{background:rgba(8,1,3,.08)!important;border-color:rgba(255,42,58,.5);box-shadow:inset 0 0 130px rgba(170,0,16,.30);}
html[data-rfx="heartbeat"] header{background:rgba(20,5,9,.95);border-bottom:2px solid #ff2a3a;box-shadow:0 2px 16px rgba(255,42,58,.4);}
html[data-rfx="heartbeat"] .brand-title{color:#ff4150;text-shadow:0 0 10px rgba(255,42,58,.8);letter-spacing:.06em;}
html[data-rfx="heartbeat"] #sidebar-right{background:rgba(18,4,8,.94);border-left:1px solid #7a1620;}
html[data-rfx="heartbeat"] .userlist-banner{background:linear-gradient(90deg,#6a0c18,#d4202e);}
html[data-rfx="heartbeat"] .composer-bar{background:#160509;border:1.5px solid #ff2a3a;box-shadow:0 0 12px rgba(255,42,58,.3);}
html[data-rfx="heartbeat"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(255,60,74,.55);box-shadow:0 0 10px rgba(255,30,44,.14);}
html[data-rfx="heartbeat"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ff8a94;}

/* ============ CUENTA ATRÁS ============ */
/* v14.196: colores vivos (cian que pasa a verde, ámbar y rojo según se acaba el tiempo), reloj centrado en la zona del chat y marcador pequeño siempre visible. */
html[data-rfx="countdown"]{--bg:#05071a;--bg-2:#05071a;--surface:#0a0e26;--surface-2:#101638;--surface-3:#1a2350;--border:#2a3a8a;--accent:#19e3ff;--accent-strong:#8af2ff;--accent-ink:#021018;--bubble-bg:rgba(10,15,40,.94);--bubble-bg-mine:rgba(34,14,62,.95);--text:#f2f6ff;--text-muted:#a4b2de;--text-faint:#6f7cac;--font-body:'IBM Plex Mono','Courier New',monospace;--font-display:'IBM Plex Mono','Courier New',monospace;}
html[data-rfx="countdown"] body{background:radial-gradient(ellipse at 50% 42%,#16205a 0%,#0a0f30 48%,#04061a 100%);}
html[data-rfx="countdown"] #app{background:rgba(3,5,18,.04)!important;border-color:rgba(25,227,255,.5);box-shadow:0 0 28px rgba(25,227,255,.14);}
html[data-rfx="countdown"] header{background:rgba(8,12,34,.96);border-bottom:0;position:relative;}
html[data-rfx="countdown"] header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:#19e3ff;transform-origin:0 50%;box-shadow:0 0 12px currentColor;color:#19e3ff;}
html[data-rfx="countdown"][data-rfx-motion="1"] header::after{animation:rfxDrain var(--cd-dur,60s) linear 1 forwards,rfxBarCol var(--cd-dur,60s) linear 1 forwards;animation-delay:calc(var(--cd-el,0s) * -1),calc(var(--cd-el,0s) * -1);}
@keyframes rfxDrain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes rfxBarCol{0%,28%{background:#19e3ff;color:#19e3ff}52%{background:#7dff6a;color:#7dff6a}74%{background:#ffc21a;color:#ffc21a}100%{background:#ff2a4a;color:#ff2a4a}}
html[data-rfx="countdown"] .brand-title{color:#7df0ff;text-transform:uppercase;letter-spacing:.2em;text-shadow:0 0 10px rgba(25,227,255,.85);}
html[data-rfx="countdown"] #sidebar-right{background:rgba(7,10,30,.93);border-left:1px solid #2a3a8a;}
html[data-rfx="countdown"] .userlist-banner{background:linear-gradient(90deg,#1b2a8a,#7b3cff);border-bottom:2px solid #19e3ff;}
html[data-rfx="countdown"] .composer-bar{background:#0a0e26;border:1.5px solid #19e3ff;border-radius:6px;box-shadow:0 0 14px rgba(25,227,255,.3);}
html[data-rfx="countdown"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(25,227,255,.5);border-radius:8px;box-shadow:0 0 10px rgba(25,227,255,.14);}
html[data-rfx="countdown"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:#ff5cf0;box-shadow:0 0 10px rgba(255,92,240,.2);}

/* ============ SIRENA ============ */
html[data-rfx="police"]{--bg:#05060d;--bg-2:#05060d;--surface:#0a0d18;--surface-2:#10152a;--surface-3:#1a2142;--border:#2a3a7a;--accent:#4d7dff;--accent-strong:#8aa8ff;--accent-ink:#04081a;--bubble-bg:#0e1222;--bubble-bg-mine:#1a1230;--text:#eef2ff;--text-muted:#9aa6d0;--text-faint:#6a76a0;}
html[data-rfx="police"] body{background:linear-gradient(180deg,#04050c,#0a0d1c);}
html[data-rfx="police"] body::before,html[data-rfx="police"] body::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.08;}
html[data-rfx="police"] body::before{background:radial-gradient(ellipse 65% 80% at 0% 0%,rgba(255,30,40,.62),transparent 72%),radial-gradient(ellipse 40% 50% at 0% 100%,rgba(255,30,40,.3),transparent 70%);}
html[data-rfx="police"] body::after{background:radial-gradient(ellipse 65% 80% at 100% 0%,rgba(50,100,255,.62),transparent 72%),radial-gradient(ellipse 40% 50% at 100% 100%,rgba(50,100,255,.3),transparent 70%);}
html[data-rfx="police"][data-rfx-motion="1"] body::before{animation:rfxSirenA 3.2s ease-in-out infinite;}
html[data-rfx="police"][data-rfx-motion="1"] body::after{animation:rfxSirenA 3.2s ease-in-out infinite -1.6s;}
@keyframes rfxSirenA{0%,100%{opacity:.06}50%{opacity:1}}
html[data-rfx="police"] #app{background:rgba(4,5,12,.26)!important;border-color:rgba(77,125,255,.4);}
html[data-rfx="police"] header{background:rgba(10,13,24,.96);border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#ff2a3a,#ff2a3a 45%,#4d7dff 55%,#4d7dff) 1;}
html[data-rfx="police"] .brand-title{color:#fff;text-shadow:-2px 0 #ff2a3a,2px 0 #4d7dff;letter-spacing:.06em;}
html[data-rfx="police"] #sidebar-right{background:rgba(9,12,22,.94);border-left:1px solid #2a3a7a;}
html[data-rfx="police"] .userlist-banner{background:linear-gradient(90deg,#c01c28 0 50%,#2a56d0 50%);}
html[data-rfx="police"] .composer-bar{background:#0a0d18;border:1.5px solid #4d7dff;}
html[data-rfx="police"] #message-list .msg-bubble:not(.bfx):not([data-ubg]){border:1px solid rgba(90,130,255,.55);}
html[data-rfx="police"] #message-list .msg-bubble.mine:not(.bfx):not([data-ubg]){border-color:rgba(255,70,80,.7);}

/* ---------- Móvil y modo embebido: efectos más ligeros ---------- */
@media (max-width:820px){
  html[data-rfx="synth"] body::before{width:230px;height:230px;margin-left:-115px;}
  html[data-rfx="halloween"] body::before{width:96px;height:96px;right:6%;}
  html[data-rfx="halloween"] .main::after{width:90px;height:90px;background-size:90px 90px;}
}
@media (max-width:820px){
  html[data-rfx="disco"] .main::before{width:40px;height:40px;right:52px;top:20px;}
  html[data-rfx="disco"] .main::after{right:71px;height:20px;}
  html[data-rfx="graveyard"] body::before{width:110px;height:110px;}
  html[data-rfx="graveyard"] body::after{height:150px;background-size:500px 122px,100% 100%;background-position:left top,left 121px;}
  html[data-rfx="graveyard"] .main::before{width:44px;height:42px;right:8px;}
  html[data-rfx="graveyard"] .main::after{right:60px;width:30px;height:70px;}
  html[data-rfx="xmas"] body::before{height:130px;background-size:225px 130px;}
  html[data-rfx="gala"] body::before{background:linear-gradient(180deg,#9a1c38 0,#6a1226 70%,#3a0914 100%) 0 0/100% 34px no-repeat,linear-gradient(#d9b765,#d9b765) 0 34px/100% 2px no-repeat;}
}
@media (max-width:820px){
  html[data-rfx="space"] .main::before{width:44px;height:44px;right:20px;top:14px;}
  html[data-rfx="space"] .main::after{width:72px;height:20px;right:6px;top:26px;}
  html[data-rfx="deep"] body::after{height:130px;background-size:180px 132px;}
  html[data-rfx="fireworks"] body::before{height:120px;background-size:360px 108px;}
}
@media (max-width:820px){
  html[data-rfx="village"] body::before{height:170px;background-size:520px 170px;}
  html[data-rfx="santa"] body::before{height:110px;background-size:440px 110px;}
  html[data-rfx="forest"] body::before{height:170px;background-size:360px 170px;}
  html[data-rfx="forest"] body::after{height:130px;background-size:300px 140px;}
  html[data-rfx="fireplace"] body::before{height:130px;background-size:195px 130px;}
  html[data-rfx="rain"] body::before{height:120px;}
}
@media (prefers-reduced-motion:reduce){
  html[data-rfx] *,html[data-rfx] *::before,html[data-rfx] *::after{animation:none!important;}
  html.rfx-flash #rfx-flash{opacity:0;}
}

/* ---------- Ventana del Owner ---------- */
#roomfx-modal .rfx-box{width:min(1020px,96vw);max-height:92vh;display:flex;flex-direction:column;}
#roomfx-modal .rfx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;padding:6px 2px;overflow-y:auto;}
#roomfx-modal .rfx-card{background:var(--surface-2);border:1.5px solid var(--border);border-radius:14px;padding:8px;color:var(--text);text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer;font-family:inherit;transition:transform .12s,border-color .12s,box-shadow .12s;}
#roomfx-modal .rfx-card:hover{transform:translateY(-2px);}
#roomfx-modal .rfx-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent);}
#roomfx-modal .rfx-thumb{width:100%;aspect-ratio:11/6.5;border-radius:10px;object-fit:cover;display:block;background:#0a0c1a;}
#roomfx-modal .rfx-none{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;border:1px dashed var(--border);}
#roomfx-modal .rfx-card b{font-size:13px;margin-top:3px;}
#roomfx-modal .rfx-card small{font-size:11px;color:var(--text-muted);line-height:1.3;}
#roomfx-modal .rfx-opts{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 4px 0;font-size:13px;}
#roomfx-modal .rfx-note{font-size:12px;color:var(--text-muted);padding:4px 4px 0;}
#roomfx-modal.modal-backdrop{background:rgba(4,6,14,.38);}
.rfx-open-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap;}

#roomfx-modal .rfx-cd{display:none;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 4px 0;font-size:13px;}
#roomfx-modal .rfx-cd.show{display:flex;}
#roomfx-modal .rfx-cd input[type=number]{width:62px;text-align:center;}
#roomfx-modal .rfx-cd .rfx-cd-sep{color:var(--text-muted);}
#roomfx-modal .rfx-cd-presets{display:flex;gap:6px;flex-wrap:wrap;}
#roomfx-modal .rfx-cd-err{color:#ff7d82;font-size:12px;width:100%;}
