/* Parlo · estilos de burbuja. Clase .bfx.bfx-<clave> sobre .msg-bubble.
   --bc = color de burbuja elegido por el usuario (o el azul por defecto). */
.msg-bubble.bfx{--bc:#6b7cff;--nc:var(--bc);position:relative;color:#f4f5ff;}   /* texto claro por defecto: el color de mensaje del usuario (inline) manda */

/* ===== Neón y luz ===== */
.bfx-neon,.bfx-pulse,.bfx-neonpink,.bfx-neonlilac,.bfx-neonblue,.bfx-neongreen,.bfx-neonred{
  background:color-mix(in srgb,var(--nc) 13%,#0b0b18)!important;border:1.5px solid var(--nc);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--nc) 40%,transparent),0 0 9px var(--nc),0 0 20px color-mix(in srgb,var(--nc) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--nc) 32%,transparent);
  text-shadow:0 0 6px color-mix(in srgb,var(--nc) 65%,transparent);}
.msg-bubble.bfx.bfx-neonpink{--nc:#ff3fae;}
.msg-bubble.bfx.bfx-neonlilac{--nc:#b36bff;}
.msg-bubble.bfx.bfx-neonblue{--nc:#3fc8ff;animation:bfxFlicker 5s linear infinite;}
.msg-bubble.bfx.bfx-neongreen{--nc:#4cff00;}
.msg-bubble.bfx.bfx-neonred{--nc:#ff2d46;}
.bfx-pulse{animation:bfxPulse 1.8s ease-in-out infinite;}
@keyframes bfxPulse{0%,100%{box-shadow:0 0 0 1px color-mix(in srgb,var(--nc) 40%,transparent),0 0 5px var(--nc),0 0 11px color-mix(in srgb,var(--nc) 45%,transparent),inset 0 0 6px color-mix(in srgb,var(--nc) 25%,transparent);}50%{box-shadow:0 0 0 1px color-mix(in srgb,var(--nc) 55%,transparent),0 0 13px var(--nc),0 0 30px color-mix(in srgb,var(--nc) 70%,transparent),inset 0 0 14px color-mix(in srgb,var(--nc) 40%,transparent);}}
@keyframes bfxFlicker{0%,100%{opacity:1}92%{opacity:1}93%{opacity:.72}94%{opacity:1}96%{opacity:.8}97%{opacity:1}}

/* ===== Degradados ===== */
.bfx-gradient{text-shadow:0 1px 2px rgba(0,0,0,.4);background:linear-gradient(135deg,var(--bc),color-mix(in srgb,var(--bc) 45%,#ff4fd8) 55%,color-mix(in srgb,var(--bc) 40%,#35d0ff))!important;box-shadow:0 4px 14px color-mix(in srgb,var(--bc) 40%,transparent);}
.bfx-sunset{background:linear-gradient(135deg,#ff5f6d,#ff8a4c 55%,#ffc371)!important;color:#fff;text-shadow:0 1px 2px rgba(120,30,20,.45);box-shadow:0 4px 14px rgba(255,110,80,.35);}
.bfx-ocean{background:linear-gradient(135deg,#0b5fd8,#1796c9 55%,#19c5b6)!important;text-shadow:0 1px 2px rgba(0,40,80,.45);box-shadow:0 4px 14px rgba(20,140,210,.35);}
.bfx-aurora{background:linear-gradient(120deg,#00b894,#2d7be0,#8a4fd8,#00b894) 0 0/300% 100%!important;animation:bfxFlow 8s linear infinite;text-shadow:0 1px 2px rgba(0,0,0,.35);box-shadow:0 4px 16px rgba(110,90,230,.35);}
@keyframes bfxFlow{to{background-position:300% 0;}}
.bfx-candy{background:linear-gradient(135deg,#cc2f8a,#f0613f 55%,#a53fd6)!important;text-shadow:0 1px 2px rgba(80,0,50,.4);box-shadow:0 4px 14px rgba(230,80,160,.35);}
.bfx-galaxy{background:radial-gradient(1.4px 1.4px at 12% 28%,#fff,transparent),radial-gradient(1px 1px at 38% 70%,#fff,transparent),radial-gradient(1.6px 1.6px at 66% 24%,#fff,transparent),radial-gradient(1px 1px at 84% 62%,#fff,transparent),radial-gradient(1.2px 1.2px at 52% 44%,#ffd6ff,transparent),linear-gradient(135deg,#150b38,#3a1a82 55%,#9a2fc4)!important;border:1px solid rgba(190,150,255,.45);box-shadow:0 0 14px rgba(140,80,230,.4);}
.bfx-fire{background:linear-gradient(0deg,#b3121f,#ff5a00 55%,#ffb703)!important;color:#fff;text-shadow:0 1px 2px rgba(110,10,0,.7);box-shadow:0 0 12px rgba(255,110,0,.55),0 -3px 14px rgba(255,180,0,.35);animation:bfxFire 1.4s ease-in-out infinite alternate;}
@keyframes bfxFire{from{box-shadow:0 0 9px rgba(255,100,0,.45),0 -2px 10px rgba(255,170,0,.25);}to{box-shadow:0 0 16px rgba(255,110,0,.7),0 -5px 18px rgba(255,190,0,.45);}}

/* ===== Cristal y hielo ===== */
.bfx-glass{background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.06))!important;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(10px) saturate(1.4);-webkit-backdrop-filter:blur(10px) saturate(1.4);box-shadow:0 6px 20px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.45),inset 0 0 22px color-mix(in srgb,var(--bc) 30%,transparent);}
.bfx-frost{background:linear-gradient(160deg,rgba(210,240,255,.28),rgba(120,190,255,.12))!important;border:1px solid rgba(200,235,255,.6);box-shadow:0 0 14px rgba(140,210,255,.35),inset 0 0 14px rgba(255,255,255,.2);}
.bfx-smoke{background:linear-gradient(135deg,rgba(40,42,60,.78),rgba(14,15,26,.82))!important;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 18px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.1);}

/* ===== Retro y juegos ===== */
.bfx-pixel{background:var(--bc)!important;border-radius:0!important;margin:7px 4px 4px;box-shadow:0 -4px 0 0 #0a0a14,0 4px 0 0 #0a0a14,-4px 0 0 0 #0a0a14,4px 0 0 0 #0a0a14,inset 0 -4px 0 0 color-mix(in srgb,var(--bc) 55%,#000),inset 0 4px 0 0 color-mix(in srgb,var(--bc) 60%,#fff);font-family:'Courier New',ui-monospace,monospace;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 0 rgba(0,0,0,.45);}
.bfx-comic{background:var(--bc)!important;border:2.5px solid #0b0b14;border-radius:14px;box-shadow:4px 4px 0 #0b0b14;font-weight:700;text-shadow:0 1px 0 rgba(0,0,0,.4);}
.bfx-comic::before{content:"";position:absolute;left:-10px;top:9px;border:7px solid transparent;border-right-color:#0b0b14;border-left:0;}
.bfx-comic::after{content:"";position:absolute;left:-5px;top:11px;border:5px solid transparent;border-right-color:var(--bc);border-left:0;}
.bfx-sticker{background:var(--bc)!important;border:3px solid #fff;border-radius:16px;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 4px 10px rgba(0,0,0,.45);transform:rotate(-.8deg);font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.45);}
.bfx-terminal{background:#050a06!important;color:#39ff6a!important;border:1px solid #1f9a3d;border-radius:6px;font-family:'Courier New',ui-monospace,monospace;text-shadow:0 0 5px rgba(57,255,106,.6);box-shadow:0 0 10px rgba(57,255,106,.2),inset 0 0 14px rgba(57,255,106,.08);}
.bfx-terminal::before{content:"> ";opacity:.7;}
.bfx-terminal::after{content:"▌";margin-left:2px;animation:bfxBlink 1s steps(1) infinite;}
@keyframes bfxBlink{50%{opacity:0;}}
.bfx-arcade{background:linear-gradient(180deg,#2a1260,#170a3a)!important;border:2px solid #ff2d8f;border-radius:4px;box-shadow:3px 3px 0 #2d6bff,6px 6px 0 rgba(45,107,255,.35);font-family:'Courier New',ui-monospace,monospace;font-weight:700;letter-spacing:.03em;margin:3px 8px 8px 3px;}

/* ===== Bordes ===== */
.bfx-dotted{background:color-mix(in srgb,var(--bc) 18%,transparent)!important;border:2px dashed var(--bc);border-radius:14px;}
.bfx-double{background:color-mix(in srgb,var(--bc) 22%,#0d0d1a)!important;border:2px solid var(--bc);outline:2px solid color-mix(in srgb,var(--bc) 55%,transparent);outline-offset:3px;margin:6px 5px 5px;}
.bfx-outline{background:transparent!important;border:2px solid var(--bc);border-radius:999px;padding:7px 16px;}
.bfx-rainbow{--bfx-a:0deg;background:linear-gradient(#14142a,#14142a) padding-box,conic-gradient(from var(--bfx-a),#ff3d71,#ffb300,#3dff9a,#35d0ff,#8a5bff,#ff3d71) border-box!important;border:3px solid transparent;box-shadow:0 0 12px rgba(138,91,255,.45);animation:bfxSpin 4s linear infinite;}
@property --bfx-a{syntax:"<angle>";inherits:false;initial-value:0deg;}
@keyframes bfxSpin{to{--bfx-a:360deg;}}
.bfx-gold{background:linear-gradient(#1c1608,#120e05) padding-box,linear-gradient(135deg,#fff3b0,#d4a017 30%,#fff0a0 50%,#b8860b 70%,#ffe066) border-box!important;border:2.5px solid transparent;color:#ffe9a8;text-shadow:0 0 6px rgba(255,200,60,.35);box-shadow:0 0 12px rgba(255,190,50,.3);}

/* ===== Papel ===== */
.bfx-note{background:linear-gradient(#fff6a8,#ffe978)!important;color:#3b3200!important;border-radius:3px 3px 14px 3px;transform:rotate(-1.2deg);box-shadow:0 5px 12px rgba(0,0,0,.35);font-family:"Comic Sans MS","Segoe Print",cursive;}
.bfx-note::before{content:"";position:absolute;top:0;right:0;width:16px;height:16px;background:linear-gradient(225deg,rgba(0,0,0,.18) 50%,transparent 50%);border-radius:0 0 0 6px;}
.bfx-notebook{background:repeating-linear-gradient(180deg,transparent 0,transparent 20px,rgba(60,110,200,.35) 20px,rgba(60,110,200,.35) 21px),linear-gradient(90deg,transparent 30px,rgba(220,60,60,.55) 30px,rgba(220,60,60,.55) 31px,transparent 31px),#fbf8ef!important;color:#223!important;border-radius:4px 14px 14px 4px;padding-left:40px;line-height:21px;box-shadow:0 5px 12px rgba(0,0,0,.35);font-family:"Comic Sans MS","Segoe Print",cursive;}

/* ===== Rosa y lila ===== */
.bfx-cottoncandy{background:linear-gradient(135deg,#ffb3dc,#d9b3ff 50%,#b3d9ff)!important;color:#4a2350!important;text-shadow:0 1px 0 rgba(255,255,255,.55);box-shadow:0 4px 14px rgba(230,150,230,.35);font-weight:600;}
.bfx-kawaii{background:radial-gradient(circle at 18% 30%,rgba(255,255,255,.35) 0 3px,transparent 4px),radial-gradient(circle at 80% 70%,rgba(255,255,255,.35) 0 3px,transparent 4px),#ff7ac8!important;border:2px solid #fff;border-radius:18px;outline:2px dashed rgba(199,160,255,.9);outline-offset:2px;margin:6px 5px 5px;color:#fff;text-shadow:0 1px 2px rgba(150,20,100,.5);font-weight:700;}
.bfx-rosegold{background:linear-gradient(135deg,#f9dcd3,#e8a598 50%,#c97b6c)!important;color:#4a1f1a!important;text-shadow:0 1px 0 rgba(255,255,255,.4);box-shadow:0 4px 14px rgba(220,140,130,.4);font-weight:600;}
.bfx-hearts{--h:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Cpath d='M13 20 5.5 12.8C2.8 10 4.6 5.6 8.4 6c1.8.2 3.4 1.4 4.6 3 1.2-1.6 2.8-2.8 4.6-3 3.8-.4 5.6 4 2.9 6.8z' fill='white' fill-opacity='.17'/%3E%3C/svg%3E");background:var(--h) 0 0/26px 26px,linear-gradient(135deg,#ff5fa2,#d6336c)!important;text-shadow:0 1px 2px rgba(100,0,40,.45);box-shadow:0 4px 14px rgba(230,60,130,.35);}

/* ===== Brillo y oscuros ===== */
.bfx-shine{background:var(--bc)!important;overflow:hidden;}
.bfx-shine::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);animation:bfxShine 3.2s ease-in-out infinite;pointer-events:none;}
@keyframes bfxShine{0%,55%{transform:translateX(-120%);}100%{transform:translateX(120%);}}
.bfx-blood{background:radial-gradient(circle at 12% calc(100% + 6px),#e11d2e 0 6px,transparent 7px),radial-gradient(circle at 38% calc(100% + 5px),#e11d2e 0 5px,transparent 6px),radial-gradient(circle at 71% calc(100% + 7px),#e11d2e 0 7px,transparent 8px),linear-gradient(180deg,#3a060b,#1d0306)!important;border:1.5px solid #b3121f;color:#ffd9dc;text-shadow:0 1px 0 #5a000a;box-shadow:0 0 12px rgba(200,0,20,.45),0 4px 0 -1px #b3121f;}
.bfx-ghost{background:rgba(255,255,255,.1)!important;border:1px dashed rgba(255,255,255,.42);box-shadow:0 0 16px rgba(255,255,255,.18);animation:bfxFloat 3.2s ease-in-out infinite alternate;}
@keyframes bfxFloat{from{opacity:.55;transform:translateY(0);}to{opacity:.95;transform:translateY(-2px);}}


/* ===== v14.175: más estilos ===== */
/* Neón dúo: un lado cian y otro magenta */
.bfx-neonduo{background:linear-gradient(#0b0b18,#0b0b18) padding-box,linear-gradient(120deg,#19e3ff,#ff2fb0) border-box!important;border:2px solid transparent;box-shadow:-4px 0 12px rgba(25,227,255,.55),4px 0 12px rgba(255,47,176,.55),inset 0 0 12px rgba(160,120,255,.18);text-shadow:-1px 0 3px rgba(25,227,255,.7),1px 0 3px rgba(255,47,176,.7);}
/* Degradados */
.bfx-tropical{background:linear-gradient(135deg,#00b3a4,#ffb830 55%,#ff5f8d)!important;color:#fff;text-shadow:0 1px 2px rgba(0,60,60,.45);box-shadow:0 4px 14px rgba(255,150,80,.35);}
.bfx-berry{background:linear-gradient(135deg,#6a2cc4,#b02aa8 55%,#ee3f8c)!important;text-shadow:0 1px 2px rgba(50,0,60,.5);box-shadow:0 4px 14px rgba(170,50,170,.4);}
.bfx-forest{background:linear-gradient(135deg,#0d4a2b,#1b7a43 55%,#6fb04a)!important;text-shadow:0 1px 2px rgba(0,30,10,.6);box-shadow:0 4px 14px rgba(30,130,70,.35);}
/* Cristal y hielo */
.bfx-diamond{background:linear-gradient(115deg,rgba(255,255,255,.34) 0%,rgba(150,215,255,.16) 24%,rgba(255,255,255,.4) 25%,rgba(120,200,255,.14) 48%,rgba(255,255,255,.32) 49%,rgba(170,220,255,.14) 76%,rgba(255,255,255,.3) 77%,rgba(120,190,255,.14) 100%)!important;border:1px solid rgba(220,245,255,.75);box-shadow:0 0 14px rgba(150,220,255,.5),inset 0 0 14px rgba(255,255,255,.28);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);text-shadow:0 1px 2px rgba(0,50,100,.6);overflow:hidden;}
.bfx-diamond::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.7) 50%,transparent 60%);transform:translateX(-130%);animation:bfxShine 3.6s ease-in-out infinite;pointer-events:none;}
.bfx-bubble{background:radial-gradient(circle at 22% 24%,rgba(255,255,255,.75) 0 7%,transparent 17%),radial-gradient(circle at 78% 82%,rgba(255,255,255,.3) 0 6%,transparent 14%),linear-gradient(135deg,rgba(255,120,220,.26),rgba(120,200,255,.26) 50%,rgba(150,255,200,.26))!important;border:1.5px solid rgba(255,255,255,.55);border-radius:22px;box-shadow:0 4px 16px rgba(120,160,255,.35),inset 0 0 14px rgba(255,255,255,.25),inset 0 -5px 12px rgba(170,120,255,.28);}
/* Retro y juegos */
.bfx-vhs{background:repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 3px),linear-gradient(180deg,#14143a,#0a0a22)!important;border:1px solid rgba(255,255,255,.18);border-radius:5px;font-family:'Courier New',ui-monospace,monospace;text-shadow:-1.5px 0 rgba(255,40,90,.85),1.5px 0 rgba(30,220,255,.85);box-shadow:0 0 12px rgba(120,80,255,.3);letter-spacing:.02em;}
.bfx-gameboy{background:#9bbc0f!important;color:#0f380f!important;border-radius:0!important;margin:7px 4px 4px;box-shadow:0 -4px 0 0 #0f380f,0 4px 0 0 #0f380f,-4px 0 0 0 #0f380f,4px 4px 0 0 #0f380f,inset 0 0 0 3px #8bac0f,inset 0 -4px 0 0 #306230;font-family:'Courier New',ui-monospace,monospace;font-weight:700;text-transform:none;}
.bfx-win95{background:#c0c0c0!important;color:#000!important;border-radius:0!important;border:2px solid;border-color:#fff #404040 #404040 #fff;box-shadow:1px 1px 0 #000,inset 1px 1px 0 #dfdfdf,inset -1px -1px 0 #808080;font-family:Tahoma,"MS Sans Serif",Verdana,sans-serif;margin:1px 2px 3px 1px;}
/* Bordes */
.bfx-hazard{background:linear-gradient(#17140a,#17140a) padding-box,repeating-linear-gradient(-45deg,#ffcc00 0 8px,#111 8px 16px) border-box!important;border:4px solid transparent;border-radius:8px;color:#ffe9a0;font-weight:700;box-shadow:0 0 10px rgba(255,204,0,.28);}
/* Papel */
.bfx-ticket{background:linear-gradient(#fffef7,#f4f1e4)!important;color:#2a2a2a!important;border-radius:2px;border-top:2px dashed #b9b4a0;border-bottom:2px dashed #b9b4a0;font-family:'Courier New',ui-monospace,monospace;font-size:.94em;box-shadow:0 5px 12px rgba(0,0,0,.35);letter-spacing:.01em;}
.bfx-chalk{background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.06),transparent 55%),#24473a!important;color:#f3f1e4!important;border:4px solid #8a5a2b;border-radius:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.45),0 4px 10px rgba(0,0,0,.4);font-family:"Comic Sans MS","Segoe Print",cursive;text-shadow:0 0 2px rgba(255,255,255,.4);}
.bfx-parchment{background:radial-gradient(ellipse at center,#f6e6bd 40%,#dcc08a 100%)!important;color:#4a3412!important;border-radius:6px 16px 6px 16px;box-shadow:inset 0 0 14px rgba(120,80,20,.5),0 5px 12px rgba(0,0,0,.35);font-family:Georgia,"Times New Roman",serif;font-style:italic;}
/* Rosa y lila */
.bfx-bubblegum{background:linear-gradient(180deg,#ff8ed0,#ff4fb0)!important;border-radius:20px;color:#fff;text-shadow:0 1px 2px rgba(150,10,90,.55);box-shadow:0 4px 12px rgba(255,80,180,.45),inset 0 -4px 8px rgba(190,20,110,.35);font-weight:700;overflow:hidden;}
.bfx-bubblegum::before{content:"";position:absolute;left:10px;right:10px;top:3px;height:42%;border-radius:50% 50% 40% 40%;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.05));pointer-events:none;}
.bfx-princess{background:linear-gradient(135deg,#ff8fcf,#c78bff) padding-box,linear-gradient(135deg,#fff3b0,#e0b04a 35%,#fff0a0 55%,#c8962a) border-box!important;border:2.5px solid transparent;border-radius:18px;color:#fff;text-shadow:0 1px 2px rgba(110,30,120,.55);box-shadow:0 4px 14px rgba(220,130,230,.45);padding-right:24px;}
.bfx-princess::after{content:"✦";position:absolute;right:8px;top:2px;font-size:11px;color:#ffe9a0;text-shadow:0 0 6px #ffd24a;animation:bfxTwinkle 1.8s ease-in-out infinite;}
@keyframes bfxTwinkle{0%,100%{opacity:.5;transform:scale(.8) rotate(0);}50%{opacity:1;transform:scale(1.2) rotate(20deg);}}
.bfx-clouds{background:linear-gradient(180deg,#ffffff,#e6f1ff)!important;color:#35506e!important;border-radius:24px;box-shadow:0 4px 14px rgba(150,200,255,.5),inset 0 -3px 8px rgba(150,190,240,.3);font-weight:600;padding:9px 16px;}
.bfx-stars{--st:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath d='M15 4l2.4 5.6 6 .5-4.6 4 1.4 5.9L15 16.9 9.8 20l1.4-5.9-4.6-4 6-.5z' fill='white' fill-opacity='.2'/%3E%3C/svg%3E");background:var(--st) 0 0/30px 30px,linear-gradient(135deg,#9d7bff,#c58bff 55%,#ff9bd8)!important;text-shadow:0 1px 2px rgba(60,20,110,.5);box-shadow:0 4px 14px rgba(170,120,255,.4);}
.bfx-sakura{--sk:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='34'%3E%3Cg fill='white' fill-opacity='.42'%3E%3Cellipse cx='9' cy='9' rx='2.6' ry='4.4' transform='rotate(-30 9 9)'/%3E%3Cellipse cx='9' cy='9' rx='2.6' ry='4.4' transform='rotate(40 9 9)'/%3E%3Cellipse cx='9' cy='9' rx='2.6' ry='4.4' transform='rotate(110 9 9)'/%3E%3C/g%3E%3Cg fill='white' fill-opacity='.3'%3E%3Cellipse cx='26' cy='25' rx='2' ry='3.4' transform='rotate(-10 26 25)'/%3E%3Cellipse cx='26' cy='25' rx='2' ry='3.4' transform='rotate(62 26 25)'/%3E%3C/g%3E%3C/svg%3E");background:var(--sk) 0 0/34px 34px,linear-gradient(135deg,#ffb7d1,#ff93bb)!important;color:#5a1f3a!important;text-shadow:0 1px 0 rgba(255,255,255,.45);border-radius:18px;box-shadow:0 4px 14px rgba(255,140,185,.4);font-weight:600;}
/* Brillo y oscuros */
.bfx-matrix{background:repeating-linear-gradient(180deg,rgba(0,255,100,0) 0,rgba(0,255,100,.16) 40%,rgba(0,255,100,0) 80%) 0 0/100% 60px,#020a04!important;color:#7dff9c!important;border:1px solid #14803a;border-radius:4px;font-family:'Courier New',ui-monospace,monospace;text-shadow:0 0 6px rgba(80,255,140,.7);box-shadow:0 0 12px rgba(30,200,90,.3);animation:bfxRain 2.4s linear infinite;}
@keyframes bfxRain{to{background-position:0 60px,0 0;}}
.bfx-shadow{background:linear-gradient(135deg,#15101f,#07050c)!important;border:1px solid rgba(160,110,255,.35);box-shadow:0 0 16px rgba(120,60,220,.45),0 6px 18px rgba(0,0,0,.6),inset 0 0 18px rgba(0,0,0,.65);}

@media (prefers-reduced-motion:reduce){.msg-bubble.bfx,.msg-bubble.bfx::after{animation:none!important;}}

/* ===== build65: color de texto legible =====
   Cada mensaje lleva en línea el color de texto de su autor (instantánea), y eso ganaba al del estilo:
   con fondos oscuros salía texto oscuro. Ahora cada estilo fija su propio color con !important. */
.msg-bubble.bfx.bfx-neon,.msg-bubble.bfx.bfx-pulse,.msg-bubble.bfx.bfx-neonpink,.msg-bubble.bfx.bfx-neonlilac,.msg-bubble.bfx.bfx-neonblue,.msg-bubble.bfx.bfx-neongreen,.msg-bubble.bfx.bfx-neonred,.msg-bubble.bfx.bfx-neonduo,
.msg-bubble.bfx.bfx-ocean,.msg-bubble.bfx.bfx-aurora,.msg-bubble.bfx.bfx-candy,.msg-bubble.bfx.bfx-galaxy,.msg-bubble.bfx.bfx-fire,
.msg-bubble.bfx.bfx-smoke,.msg-bubble.bfx.bfx-arcade,.msg-bubble.bfx.bfx-double,.msg-bubble.bfx.bfx-rainbow,.msg-bubble.bfx.bfx-vhs,.msg-bubble.bfx.bfx-shadow,
.msg-bubble.bfx.bfx-berry,.msg-bubble.bfx.bfx-forest,.msg-bubble.bfx.bfx-hearts{color:#fff!important;}
/* Fondos claros o medios: texto oscuro (el blanco no llegaba a 3:1) */
.msg-bubble.bfx.bfx-sunset{color:#3a1208!important;text-shadow:0 1px 0 rgba(255,255,255,.35)!important;}
.msg-bubble.bfx.bfx-tropical{color:#2b1a00!important;text-shadow:0 1px 0 rgba(255,255,255,.35)!important;}
.msg-bubble.bfx.bfx-kawaii{color:#4a0f33!important;text-shadow:0 1px 0 rgba(255,255,255,.4)!important;}
.msg-bubble.bfx.bfx-bubblegum{color:#4a0a2f!important;text-shadow:0 1px 0 rgba(255,255,255,.4)!important;}
.msg-bubble.bfx.bfx-princess{color:#3d1245!important;text-shadow:0 1px 0 rgba(255,255,255,.4)!important;}
.msg-bubble.bfx.bfx-stars{color:#2a1252!important;text-shadow:0 1px 0 rgba(255,255,255,.4)!important;}
.msg-bubble.bfx.bfx-gold{color:#ffe9a8!important;}
.msg-bubble.bfx.bfx-hazard{color:#ffe9a0!important;}
.msg-bubble.bfx.bfx-blood{color:#ffd9dc!important;}
/* Fondos que dependen del color de burbuja del usuario: el JS calcula --bfx-fg (blanco u oscuro) según su luminosidad. */
.msg-bubble.bfx.bfx-gradient,.msg-bubble.bfx.bfx-pixel,.msg-bubble.bfx.bfx-comic,.msg-bubble.bfx.bfx-sticker,.msg-bubble.bfx.bfx-shine{color:var(--bfx-fg,#fff)!important;}
.msg-bubble.bfx[data-bfx-tone="light"]{text-shadow:none!important;}
/* Fondos translúcidos: se leen sobre el tema (en tema claro, el bloque siguiente los afina) */
.msg-bubble.bfx.bfx-glass,.msg-bubble.bfx.bfx-frost,.msg-bubble.bfx.bfx-diamond,.msg-bubble.bfx.bfx-bubble,.msg-bubble.bfx.bfx-ghost,.msg-bubble.bfx.bfx-dotted,.msg-bubble.bfx.bfx-outline{color:var(--text)!important;}
/* Tema claro: los estilos translúcidos pasan a tinta oscura para que se lean */
[data-theme="light"] .msg-bubble.bfx-glass{background:linear-gradient(135deg,rgba(80,90,170,.2),rgba(80,90,170,.07))!important;border-color:rgba(70,80,160,.4);color:#1d2140!important;box-shadow:0 4px 14px rgba(40,50,120,.18),inset 0 1px 0 rgba(255,255,255,.7);}
[data-theme="light"] .msg-bubble.bfx-frost{background:linear-gradient(160deg,rgba(120,185,255,.35),rgba(150,200,255,.15))!important;border-color:rgba(80,150,230,.6);color:#12365e!important;box-shadow:0 0 12px rgba(100,170,240,.3),inset 0 0 12px rgba(255,255,255,.5);}
[data-theme="light"] .msg-bubble.bfx-ghost{background:rgba(70,80,160,.08)!important;border-color:rgba(70,80,160,.45);color:#2a2f55!important;box-shadow:0 0 12px rgba(100,110,200,.2);}
[data-theme="light"] .msg-bubble.bfx-diamond{color:#0f3a66!important;text-shadow:0 1px 0 rgba(255,255,255,.7);}
[data-theme="light"] .msg-bubble.bfx-bubble{color:#1d2140!important;}
[data-theme="light"] .msg-bubble.bfx-outline{color:var(--text)!important;}
[data-theme="light"] .msg-bubble.bfx-dotted{color:var(--text)!important;}

/* Ventana «Estilo de burbuja» (reutiliza el marco dx- del menú de adornos) */
#bubblefx-modal{z-index:140}
.bx-tile{padding:14px 8px 12px;min-height:104px;justify-content:center}
.bx-tile .msg-bubble{margin:0;max-width:100%;font-size:13px;padding:6px 11px;word-break:normal}
.bx-hint{font-size:10px;color:var(--text-faint,var(--text-muted));opacity:.85}
.bx-preview-stage{padding:14px 10px;border-radius:12px;width:100%;box-sizing:border-box;background:radial-gradient(circle at 20% 20%,rgba(255,80,200,.16),transparent 45%),radial-gradient(circle at 85% 80%,rgba(60,200,255,.16),transparent 45%),var(--bg)}
.bx-preview-chat{display:flex;gap:8px;align-items:flex-start;max-width:100%}
.bx-preview-head{display:flex;gap:6px;align-items:baseline;font-size:13px;font-weight:700;margin-bottom:3px}
.bx-preview-head small{font-weight:400;color:var(--text-muted);font-size:11px}
.bx-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
