/* InfinitySeed Group · V9.31 · Panel de voz premium (pieza reutilizable). Paleta oficial.
   Solo voz: micrófono vintage 3D, estados, transcripción y paso al chat escrito. Sin campo de texto. */
.isg-voice{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:14px 0 4px}
.isg-voice-btn{display:inline-flex;align-items:center;gap:10px}
.isg-voice-btn[disabled]{opacity:.7;cursor:progress}
.isg-voice-mic-img{width:30px;height:42px;flex:0 0 auto;object-fit:contain;margin:-8px -2px -8px -6px;filter:drop-shadow(0 0 8px rgba(0,163,255,.7));animation:isgvBreath 2.6s ease-in-out infinite}
@keyframes isgvBreath{50%{filter:drop-shadow(0 0 14px rgba(0,163,255,.95))}}
.isg-voice-sub{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.isg-voice-msg{margin:2px 0 0;font-size:13px;color:#8CD5FF}

/* Mientras la voz está abierta, nada flotante compite con el panel. */
html.isg-voice-open .chatbox-sales-launcher,
html.isg-voice-open .v8-guide{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
body.isgv-lock{overflow:hidden}

.isgv{--lvl:0;position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color:#F4F8FF}
.isgv.on{display:flex}
.isgv,.isgv *,.isgv *::before,.isgv *::after{box-sizing:border-box}
.isgv-scrim{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(0,40,90,.55),rgba(2,7,19,.88));backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);animation:isgvFade .35s ease both}
.isgv-card{position:relative;width:min(440px,calc(100vw - 32px));max-height:min(760px,calc(100dvh - 40px));display:flex;flex-direction:column;align-items:center;
  padding:22px 22px 18px;border-radius:28px;overflow:hidden;
  background:
    radial-gradient(ellipse at 50% -10%,rgba(0,163,255,.28),transparent 55%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px),
    linear-gradient(180deg,#0F2346 0%,#0B1A33 46%,#071226 100%);
  border:1px solid rgba(140,213,255,.22);
  box-shadow:0 0 0 1px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.5),0 30px 80px rgba(0,0,0,.65),0 0 60px rgba(0,163,255,.18);
  animation:isgvRise .45s cubic-bezier(.2,.8,.2,1) both}
.isgv-card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.10),transparent 30%,transparent 70%,rgba(0,163,255,.10))}

.isgv-head{position:relative;width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.isgv-name{margin:0;font-size:30px;line-height:1.05;font-weight:800;letter-spacing:.01em;
  background:linear-gradient(180deg,#ffffff 0%,#dfe7f2 38%,#8f9bad 52%,#e9f0f8 66%,#aab6c6 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.6)) drop-shadow(0 0 12px rgba(0,163,255,.35))}
.isgv-role{margin:6px 0 0;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#9DB4D6}
.isgv-demo{display:none;margin:8px 0 0;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;color:#ffd58a;border:1px solid rgba(255,213,138,.35);width:max-content}
.isgv.demo .isgv-demo{display:block}
.isgv-x{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#dfe7f2;
  background:radial-gradient(circle at 35% 30%,#24406e,#0c1a33);border:1px solid rgba(140,213,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 4px 12px rgba(0,0,0,.4)}
.isgv-x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}

/* Escenario: micrófono vintage con halos que responden a la voz */
.isgv-stage{position:relative;flex:0 0 auto;width:200px;height:220px;margin:8px 0 2px;display:grid;place-items:center}
.isgv-mic{position:relative;z-index:2;width:150px;height:auto;filter:drop-shadow(0 18px 24px rgba(0,0,0,.65)) drop-shadow(0 0 calc(10px + var(--lvl)*26px) rgba(0,163,255,calc(.35 + var(--lvl)*.5)));
  transform:translateY(calc(var(--lvl) * -3px)) scale(calc(1 + var(--lvl)*.04));transition:transform .12s linear}
.isgv-ring{position:absolute;left:50%;top:44%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;
  border:1.5px solid rgba(0,163,255,.45);box-shadow:0 0 18px rgba(0,163,255,.25),inset 0 0 18px rgba(0,163,255,.15);opacity:0}
.isgv[data-state="listening"] .isgv-ring,.isgv[data-state="speaking"] .isgv-ring,.isgv[data-state="connecting"] .isgv-ring{animation:isgvRing 2.4s ease-out infinite}
.isgv-ring.r2{animation-delay:.8s!important}.isgv-ring.r3{animation-delay:1.6s!important}
.isgv[data-state="speaking"] .isgv-ring{border-color:rgba(140,213,255,.75);animation-duration:1.5s}
.isgv[data-state="consent"] .isgv-mic,.isgv[data-state="ended"] .isgv-mic{filter:drop-shadow(0 18px 24px rgba(0,0,0,.65)) drop-shadow(0 0 10px rgba(0,163,255,.3)) saturate(.85)}
@keyframes isgvRing{0%{transform:scale(.75);opacity:.0}15%{opacity:.85}100%{transform:scale(1.75);opacity:0}}

.isgv-status{margin:4px 0 6px;min-height:22px;font-size:15.5px;font-weight:700;letter-spacing:.01em;color:#CDEBFF;text-align:center}
.isgv[data-state="speaking"] .isgv-status{color:#8CD5FF}
.isgv[data-state="error"] .isgv-status{color:#ffb3b3;font-weight:600;font-size:14.5px;line-height:1.45}

/* Transcripción: legible, fluida, la última frase siempre visible */
.isgv-log{display:none;width:100%;flex:1 1 auto;min-height:60px;max-height:240px;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;
  padding:10px 4px 4px;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22px);mask-image:linear-gradient(180deg,transparent 0,#000 22px)}
.isgv[data-state="listening"] .isgv-log,.isgv[data-state="speaking"] .isgv-log,.isgv[data-state="ended"] .isgv-log,.isgv[data-state="handoff"] .isgv-log{display:block}
.isgv-log:empty{display:none!important}
.isgv-line{margin:0 0 10px;animation:isgvLine .35s ease both}
.isgv-line b{display:block;margin:0 0 3px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.isgv-line p{margin:0;font-size:15.5px;line-height:1.5;font-weight:500;color:#F4F8FF}
.isgv-line.agent{padding-left:12px;border-left:2px solid #00A3FF}
.isgv-line.agent b{color:#8CD5FF}
.isgv-line.user{text-align:right;padding-right:12px;border-right:2px solid rgba(205,235,255,.45)}
.isgv-line.user b{color:#9DB4D6}
.isgv-line.user p{color:#dfe9f7}
@keyframes isgvLine{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Aviso de privacidad, dentro del panel: nunca tapado */
.isgv-consent{display:none;width:100%;margin-top:6px;padding:16px;border-radius:18px;background:rgba(4,12,28,.55);border:1px solid rgba(140,213,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.isgv[data-state="consent"] .isgv-consent{display:block}
.isgv-ptitle{margin:0 0 6px;font-size:16px;font-weight:800;color:#fff}
.isgv-ptext{margin:0 0 14px;font-size:14px;line-height:1.55;color:#C9D8EE}
.isgv-row{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.isgv-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 20px;border-radius:16px;cursor:pointer;font:800 15px/1 Inter,system-ui,sans-serif;letter-spacing:.01em}
.isgv-btn.ghost{color:#dfe7f2;background:transparent;border:1px solid rgba(140,213,255,.3)}
.isgv-btn.primary{color:#fff;border:1px solid rgba(255,255,255,.35);
  background:radial-gradient(ellipse at 50% -20%,rgba(255,255,255,.65),transparent 50%),linear-gradient(180deg,#35dcff,#0868f5 60%,#061a76);
  box-shadow:inset 0 2px 1px rgba(255,255,255,.55),inset 0 -2px 4px rgba(0,0,40,.5),0 8px 22px rgba(0,120,255,.45);text-shadow:0 1px 2px rgba(0,0,60,.6)}
.isgv-btn.primary:active{transform:translateY(1px)}
.isgv-ico{display:inline-grid;place-items:center}
.isgv-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Controles de llamada */
.isgv-controls{display:none;gap:28px;justify-content:center;margin:12px 0 4px}
.isgv[data-state="listening"] .isgv-controls,.isgv[data-state="speaking"] .isgv-controls,.isgv[data-state="connecting"] .isgv-controls{display:flex}
.isgv-round{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:0;cursor:pointer;color:#dfe7f2;font:700 12px/1 Inter,system-ui,sans-serif}
.isgv-round .isgv-ico{width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 35% 28%,#3d5f94,#132a50 60%,#0a1730);
  border:2px solid transparent;background-clip:padding-box;
  box-shadow:0 0 0 2px rgba(200,214,232,.55),inset 0 2px 2px rgba(255,255,255,.25),inset 0 -3px 6px rgba(0,0,0,.5),0 10px 22px rgba(0,0,0,.5)}
.isgv-round .isgv-ico svg{width:26px;height:26px}
.isgv-round[aria-pressed="true"] .isgv-ico{background:radial-gradient(circle at 35% 28%,#7a8597,#2b3340 65%)}
.isgv-round.end .isgv-ico{background:radial-gradient(circle at 35% 28%,#ff7a7a,#d0182c 55%,#7a0a16);box-shadow:0 0 0 2px rgba(255,190,190,.5),inset 0 2px 2px rgba(255,255,255,.35),inset 0 -3px 6px rgba(60,0,0,.5),0 10px 24px rgba(208,24,44,.45)}
.isgv-round.end .isgv-ico svg{fill:currentColor;stroke:none}
.isgv-round:active .isgv-ico{transform:translateY(1px) scale(.98)}

.isgv-after{display:none;margin:12px 0 4px}
.isgv[data-state="ended"] .isgv-after,.isgv[data-state="error"] .isgv-after{display:block}

.isgv-link{margin:8px 0 0;padding:6px 8px;background:none;border:0;cursor:pointer;color:#8CD5FF;font:600 13.5px/1.3 Inter,system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(140,213,255,.45)}
.isgv[data-state="consent"] .isgv-link{display:none}

.isgv button:focus-visible{outline:2px solid #8CD5FF;outline-offset:3px}
@keyframes isgvFade{from{opacity:0}}
@keyframes isgvRise{from{opacity:0;transform:translateY(24px) scale(.98)}}

/* Teléfono: hoja inferior a pantalla casi completa, respetando la zona segura */
@media (max-width:640px){
  .isgv{align-items:flex-end}
  .isgv-card{width:100vw;max-height:calc(100dvh - 12px);border-radius:28px 28px 0 0;padding:20px 18px calc(16px + env(safe-area-inset-bottom))}
  .isgv-stage{width:180px;height:196px}
  .isgv-mic{width:132px}
  .isgv-log{max-height:34dvh}
}
@media (prefers-reduced-motion:reduce){
  .isgv *,.isg-voice-mic-img{animation:none!important;transition:none!important}
}

/* Ecualizador en vivo («cuadrito» de niveles) */
.isgv-eq{display:none;position:relative;width:100%;height:84px;margin:6px 0 2px;padding:8px 10px 6px;border-radius:16px;
  background:linear-gradient(180deg,rgba(2,8,20,.85),rgba(6,18,40,.7));border:1px solid rgba(140,213,255,.2);
  box-shadow:inset 0 2px 10px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.05),0 0 18px rgba(0,163,255,.08)}
.isgv[data-state="listening"] .isgv-eq,.isgv[data-state="speaking"] .isgv-eq,.isgv[data-state="connecting"] .isgv-eq{display:block}
.isgv-eq canvas{display:block;width:100%;height:100%}
.isgv-eq-who{position:absolute;top:7px;left:12px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#b9c6d8;opacity:.85}
.isgv-eq-who[data-agent="1"]{color:#8CD5FF}
@media (max-width:640px){.isgv-eq{height:72px}.isgv-stage{height:180px}.isgv-mic{width:120px}}

/* Ajuste de altura: el encabezado (Melanie + cerrar) siempre visible; solo se desplaza la transcripción */
.isgv-card{overflow-x:hidden;overflow-y:auto;justify-content:flex-start;scrollbar-width:none}
.isgv-card::-webkit-scrollbar{display:none}
.isgv-head,.isgv-stage,.isgv-eq,.isgv-status,.isgv-controls,.isgv-consent,.isgv-link,.isgv-after{flex-shrink:0}
.isgv-log{min-height:0;flex:1 1 auto}
@media (max-width:640px){
  .isgv-card{height:calc(100dvh - 12px)}
  .isgv-stage{width:150px;height:150px;margin:2px 0 0}
  .isgv-mic{width:96px}
  .isgv-ring{width:120px;height:120px;margin:-60px 0 0 -60px}
  .isgv-eq{height:64px}
  .isgv[data-state="consent"] .isgv-stage{height:200px;margin-top:auto}
  .isgv[data-state="consent"] .isgv-mic{width:126px}
  .isgv[data-state="consent"] .isgv-consent{margin-bottom:auto}
}
@media (max-height:700px){.isgv-stage{height:130px}.isgv-mic{width:84px}}

/* V9.32 · Micrófono 3D real (WebGL) e instrumento de niveles más visible */
.isgv-stage{width:230px;height:270px}
.isgv-mic3d{position:absolute;inset:-10px -20px;width:calc(100% + 40px)!important;height:calc(100% + 20px)!important;z-index:2;display:block;
  filter:drop-shadow(0 0 calc(8px + var(--lvl)*28px) rgba(0,163,255,calc(.25 + var(--lvl)*.5)))}
.isgv.has3d .isgv-mic{display:none}
.isgv-ring{z-index:1}
.isgv-eq{height:104px}
.isgv-eq-db{position:absolute;top:6px;right:12px;font:800 12px/1 Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums;color:#8CD5FF;letter-spacing:.04em}
@media (max-width:640px){
  .isgv-stage{width:190px;height:210px}
  .isgv[data-state="consent"] .isgv-stage{height:240px}
  .isgv-eq{height:88px}
}
@media (max-height:700px){.isgv-stage{height:170px}}

/* V9.32 · TODOS los botones del panel con el 3D cinematográfico y el destello de luz animado de la web
   (mismas reglas que :is(.b3d,.v8-cta) de infinityseed-v9.css, copiadas para que el panel funcione igual en cualquier sitio). */
.isgv .isgv-btn{position:relative;isolation:isolate;overflow:hidden;transform:translateZ(0);min-height:52px;padding:0 1.4rem;border-radius:14px;border:1px solid rgba(108,225,255,.92);
  font:900 15px/1 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#fff;letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,0,0,.55);
  background:radial-gradient(ellipse at 50% -12%,rgba(255,255,255,.72) 0%,rgba(179,245,255,.34) 16%,transparent 38%),linear-gradient(180deg,#35dcff 0%,#0d98ff 27%,#0868f5 55%,#153bd1 79%,#061a76 100%);
  box-shadow:inset 0 3px 2px rgba(255,255,255,.68),inset 0 -6px 10px rgba(0,11,84,.72),inset 0 -1px 0 rgba(0,0,0,.75),0 2px 0 #03215e,0 5px 0 #020d31,0 8px 15px rgba(0,0,0,.58),0 0 22px rgba(0,140,255,.48);
  transition:transform .18s cubic-bezier(.2,.8,.2,1),filter .18s ease,box-shadow .18s ease;animation:isgvBreathBtn 3.4s ease-in-out infinite}
.isgv .isgv-btn.ghost{background:radial-gradient(ellipse at 50% -12%,rgba(255,255,255,.5) 0%,rgba(179,245,255,.18) 16%,transparent 38%),linear-gradient(180deg,#2b6fb8 0%,#1a4f96 30%,#0f3576 60%,#0a2459 82%,#05133a 100%)}
.isgv .isgv-btn::before,.isgv .isgv-round .isgv-ico::before,.isgv .isgv-x::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-80% -35%;
  background:linear-gradient(112deg,transparent 34%,rgba(255,255,255,.08) 42%,rgba(255,255,255,.85) 49%,rgba(137,235,255,.2) 56%,transparent 65%);
  transform:translateX(-62%) rotate(3deg);animation:isgvSweep 3.8s cubic-bezier(.22,.7,.2,1) infinite}
.isgv .isgv-btn::after,.isgv .isgv-round .isgv-ico::after{content:"";position:absolute;inset:2px 4px auto;height:40%;border-radius:11px 11px 50% 50%;pointer-events:none;z-index:-1;
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.04));opacity:.74}
.isgv .isgv-btn:is(:hover,:focus-visible){transform:translateY(-3px) scale(1.018);filter:brightness(1.18) saturate(1.16);border-color:#c9f8ff;
  box-shadow:inset 0 3px 2px rgba(255,255,255,.82),inset 0 -6px 10px rgba(0,13,100,.65),0 2px 0 #06429c,0 6px 0 #02194f,0 12px 22px rgba(0,0,0,.56),0 0 18px rgba(80,224,255,.95),0 0 42px rgba(0,122,255,.88)}
.isgv .isgv-btn:active{transform:translateY(4px) scale(.982);filter:brightness(1.28);
  box-shadow:inset 0 5px 10px rgba(0,12,90,.62),inset 0 1px 2px rgba(255,255,255,.72),0 1px 0 #031b55,0 3px 8px rgba(0,0,0,.52),0 0 24px rgba(89,231,255,1)}

/* Botones redondos de llamada: cromo 3D exagerado + destello */
.isgv .isgv-round .isgv-ico{position:relative;isolation:isolate;overflow:hidden;width:70px;height:70px;border:1px solid rgba(108,225,255,.9);
  background:radial-gradient(ellipse at 50% -10%,rgba(255,255,255,.75),rgba(179,245,255,.3) 18%,transparent 40%),linear-gradient(180deg,#35dcff 0%,#0d98ff 27%,#0868f5 55%,#153bd1 79%,#061a76 100%);
  box-shadow:inset 0 3px 2px rgba(255,255,255,.7),inset 0 -7px 12px rgba(0,11,84,.75),0 3px 0 #03215e,0 6px 0 #020d31,0 12px 20px rgba(0,0,0,.6),0 0 0 3px rgba(210,225,240,.35),0 0 26px rgba(0,140,255,.55);
  animation:isgvBreathBtn 3.4s ease-in-out infinite;transition:transform .18s cubic-bezier(.2,.8,.2,1),filter .18s}
.isgv .isgv-round .isgv-ico::after{border-radius:50% 50% 45% 45%}
.isgv .isgv-round .isgv-ico svg{position:relative;z-index:1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}
.isgv .isgv-round[aria-pressed="true"] .isgv-ico{background:radial-gradient(ellipse at 50% -10%,rgba(255,255,255,.7),transparent 40%),linear-gradient(180deg,#c5ced9,#7d8898 45%,#3b4452 80%,#1c232d);border-color:rgba(230,236,244,.85)}
.isgv .isgv-round.end .isgv-ico{border-color:rgba(255,170,170,.95);
  background:radial-gradient(ellipse at 50% -10%,rgba(255,255,255,.75),rgba(255,200,200,.3) 18%,transparent 40%),linear-gradient(180deg,#ff8a8a 0%,#ff3b4e 28%,#d0182c 58%,#8e0a1b 82%,#4a0410 100%);
  box-shadow:inset 0 3px 2px rgba(255,255,255,.7),inset 0 -7px 12px rgba(70,0,10,.75),0 3px 0 #5a0612,0 6px 0 #2b0208,0 12px 20px rgba(0,0,0,.6),0 0 0 3px rgba(255,200,200,.3),0 0 26px rgba(255,40,70,.5)}
.isgv .isgv-round:is(:hover,:focus-visible) .isgv-ico{transform:translateY(-3px) scale(1.04);filter:brightness(1.18) saturate(1.15)}
.isgv .isgv-round:active .isgv-ico{transform:translateY(4px) scale(.97);filter:brightness(1.3)}
.isgv .isgv-round small{font-size:12.5px;font-weight:800;color:#e6eef8;text-shadow:0 1px 2px rgba(0,0,0,.6)}

/* Cerrar: botón cromado pequeño con el mismo destello */
.isgv .isgv-x{position:relative;isolation:isolate;overflow:hidden;width:44px;height:44px;border:1px solid rgba(108,225,255,.85);color:#fff;
  background:radial-gradient(ellipse at 50% -10%,rgba(255,255,255,.7),transparent 42%),linear-gradient(180deg,#35dcff 0%,#0868f5 55%,#061a76 100%);
  box-shadow:inset 0 2px 2px rgba(255,255,255,.65),inset 0 -5px 8px rgba(0,11,84,.7),0 2px 0 #03215e,0 4px 0 #020d31,0 8px 14px rgba(0,0,0,.55),0 0 16px rgba(0,140,255,.45);animation:isgvBreathBtn 3.4s ease-in-out infinite}
.isgv .isgv-x svg{position:relative;z-index:1}

/* «¿Prefiere escribir?»: ahora botón secundario 3D (mismo tratamiento) */
.isgv .isgv-link{min-height:46px;margin:10px 0 0;font-size:13.5px;text-decoration:none;gap:8px}
.isgv .isgv-link .isgv-ico svg{width:18px;height:18px}

@keyframes isgvSweep{0%,58%{transform:translateX(-68%) rotate(3deg);opacity:.16}72%{opacity:.8}88%,100%{transform:translateX(68%) rotate(3deg);opacity:.12}}
@keyframes isgvBreathBtn{0%,100%{filter:brightness(1) saturate(1)}50%{filter:brightness(1.08) saturate(1.08)}}
.isgv .isgv-round:nth-child(2) .isgv-ico::before{animation-delay:1.1s}
.isgv .isgv-row .primary::before{animation-delay:.5s}
@media (prefers-reduced-motion:reduce){.isgv .isgv-btn,.isgv .isgv-btn::before,.isgv .isgv-round .isgv-ico,.isgv .isgv-round .isgv-ico::before,.isgv .isgv-x,.isgv .isgv-x::before{animation:none!important}}
.isgv .isgv-row{flex-wrap:nowrap}
.isgv .isgv-row .isgv-btn{flex:1 1 auto;padding:0 1rem;white-space:nowrap}
.isgv .isgv-row .ghost{flex:0 1 auto}

/* V9.33 · Micrófono elegido por el propietario: fotografía hiperrealista con profundidad 3D interactiva,
   destello de luz animado sobre el cromo (enmascarado a la silueta) y brillo que reacciona a la voz. */
.isgv-stage{perspective:900px;touch-action:pan-y;cursor:grab}
.isgv-stage:active{cursor:grabbing}
.isgv-mic3{position:relative;z-index:2;height:100%;aspect-ratio:727/1249;transform-style:preserve-3d;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(calc(var(--lvl)*-4px)) scale(calc(1 + var(--lvl)*.05));
  animation:isgvFloat 5.5s ease-in-out infinite}
.isgv .isgv-mic3 .isgv-mic{width:100%!important;height:100%;object-fit:contain;transform:none!important;
  filter:drop-shadow(0 22px 26px rgba(0,0,0,.7)) drop-shadow(0 0 calc(10px + var(--lvl)*30px) rgba(255,176,64,calc(.25 + var(--lvl)*.45))) drop-shadow(0 0 calc(14px + var(--lvl)*26px) rgba(0,163,255,calc(.2 + var(--lvl)*.4)))}
.isgv-sheen{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
  -webkit-mask:var(--mic) center/contain no-repeat;mask:var(--mic) center/contain no-repeat;
  background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,0) 40%,rgba(255,255,255,.95) 48%,rgba(190,235,255,.55) 52%,transparent 62%) 0 0/250% 100% no-repeat;
  animation:isgvMicSheen 3.6s cubic-bezier(.3,.6,.2,1) infinite}
.isgv[data-state="speaking"] .isgv-sheen{animation-duration:1.8s}
.isgv-mic3::after{content:"";position:absolute;left:12%;right:12%;bottom:-6%;height:10%;border-radius:50%;z-index:-1;
  background:radial-gradient(ellipse,rgba(255,170,60,.35),rgba(0,163,255,.18) 45%,transparent 70%);filter:blur(6px);transform:translateZ(-40px)}
.isgv.has3d .isgv-mic{display:block}
.isg-voice-mic-img{width:24px;height:42px}
@keyframes isgvMicSheen{0%,40%{background-position:120% 0}75%,100%{background-position:-60% 0}}
@keyframes isgvFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}
@media (prefers-reduced-motion:reduce){.isgv-mic3,.isgv-sheen{animation:none!important}}
/* Tamaño explícito del micrófono según el alto disponible (no debe invadir el ecualizador ni el aviso) */
.isgv-stage{--mh:250px}
.isgv-mic3{height:var(--mh);width:calc(var(--mh) * 727 / 1249)}
.isgv .isgv-mic3 .isgv-mic{height:var(--mh)}
@media (max-width:640px){
  .isgv-stage{--mh:196px;height:206px}
  .isgv[data-state="consent"] .isgv-stage{--mh:230px;height:240px}
}
@media (max-height:700px){.isgv-stage{--mh:160px;height:168px}}

/* V9.34 · Micrófono 3D real con el diseño elegido; la imagen queda como respaldo sin WebGL. Ondas visibles. */
.isgv.has3d .isgv-mic3{display:none}
.isgv-ring{border-width:2px;border-color:rgba(0,163,255,.7);box-shadow:0 0 22px rgba(0,163,255,.45),inset 0 0 22px rgba(0,163,255,.25)}
.isgv[data-state="speaking"] .isgv-ring{border-color:rgba(140,213,255,.95);box-shadow:0 0 30px rgba(0,163,255,.7),inset 0 0 26px rgba(0,163,255,.35)}
.isgv-eq{height:120px}
@media (max-width:640px){.isgv-eq{height:100px}}
/* sin contorno brillante alrededor del lienzo 3D (lo hacía parecer recortado) */
.isgv-mic3d{filter:none!important}

/* V9.35 · Móvil real (iPhone con isla dinámica): respeta la zona segura, sin espacio muerto, instrumento sin solapes. */
.isgv-head{order:0}.isgv-stage{order:1}.isgv-log{order:2}.isgv-eq{order:3}.isgv-status{order:4}
.isgv-consent{order:5}.isgv-controls{order:6}.isgv-link{order:7}.isgv-after{order:8}
.isgv-eq-db{left:50%;right:auto;transform:translateX(-50%)}
.isgv-eq-who{max-width:34%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){
  .isgv{align-items:stretch}
  .isgv-card{width:100vw;height:100dvh;max-height:none;border-radius:0;border-left:0;border-right:0;border-bottom:0;
    padding:calc(env(safe-area-inset-top,0px) + 14px) 18px calc(env(safe-area-inset-bottom,0px) + 18px)}
  .isgv-head{padding-top:2px}
  /* El escenario ocupa todo el alto sobrante: el micrófono 3D crece y queda centrado; controles y textos abajo, al alcance del pulgar */
  .isgv-stage,.isgv[data-state="consent"] .isgv-stage{flex:1 1 auto;width:100%;height:auto;min-height:170px;margin:0;--rs:clamp(150px,52vw,230px)}
  .isgv-ring{top:50%;width:var(--rs);height:var(--rs);margin:calc(var(--rs) / -2) 0 0 calc(var(--rs) / -2)}
  .isgv-log{flex:0 1 auto;min-height:0;max-height:26dvh}
  .isgv-eq{height:96px;margin:8px 0 2px}
  .isgv-status{margin:8px 0 4px}
  .isgv-controls{margin:10px 0 2px}
  .isgv[data-state="consent"] .isgv-consent{margin:8px 0 0}
  .isgv-link{width:100%}
  .isgv-after{width:100%;margin:10px 0 2px}
  .isgv-after .isgv-btn{width:100%}
}
@media (max-width:640px) and (max-height:700px){.isgv-stage{min-height:130px}.isgv-eq{height:84px}}
/* V9.35 · Los anillos de voz no deben salirse del escenario (cruzaban título y transcripción en el móvil) */
@keyframes isgvRingM{0%{transform:scale(.7);opacity:0}15%{opacity:.85}100%{transform:scale(1.12);opacity:0}}
@media (max-width:640px){
  .isgv-stage,.isgv[data-state="consent"] .isgv-stage{--rs:clamp(130px,46vw,190px)}
  .isgv[data-state="listening"] .isgv-ring,.isgv[data-state="speaking"] .isgv-ring,.isgv[data-state="connecting"] .isgv-ring{animation-name:isgvRingM}
}

/* ==========================================================================
   V9.36 · Modo tablet del panel de voz (html.isg-tablet). El teléfono no se ve afectado.
   ========================================================================== */
.isgv-barge{display:none;order:4}
/* Sin desenfoque de fondo a pantalla completa: es el mayor coste de GPU mientras corre el audio. */
html.isg-tablet .isgv-scrim{backdrop-filter:none;-webkit-backdrop-filter:none;background:radial-gradient(ellipse at 50% 30%,rgba(0,40,90,.72),rgba(2,7,19,.96))}
/* Zonas táctiles cómodas para cerrar el panel en tablet. */
html.isg-tablet .isgv-x{min-width:52px;min-height:52px}
/* Conversación por turnos: botón para interrumpir a Melanie mientras el micrófono está cerrado. */
html.isg-tablet .isgv[data-gate="1"][data-state="speaking"] .isgv-barge{display:inline-flex;align-self:center;margin:2px 0 8px;min-height:48px;padding:0 22px}
html.isg-tablet .isgv-ring{will-change:auto}
