/* Burbuja de chat de novaelhealth.us — mismo estilo que la burbuja de ivot-ai.com
   (orbe esmeralda, panel blanco redondeado, mensajes del agente en verde), con "Powered by iVot". */
@font-face{font-family:'InterNV';font-weight:400;font-display:swap;src:url(/admin-app/fonts/inter-400-latin.woff2) format('woff2')}
@font-face{font-family:'InterNV';font-weight:500;font-display:swap;src:url(/admin-app/fonts/inter-500-latin.woff2) format('woff2')}
@font-face{font-family:'InterNV';font-weight:600;font-display:swap;src:url(/admin-app/fonts/inter-600-latin.woff2) format('woff2')}
.nvc{--nv-ink:#0a0a0b;--nv-ink2:#5b616b;--nv-muted:#8a9099;--nv-line:rgba(10,10,11,.09);--nv-soft:#f6f6f4;
  --nv-em1:#34d399;--nv-em2:#10b981;--nv-em3:#047857;--nv-pop:0 24px 60px rgba(10,10,11,.16),0 2px 8px rgba(10,10,11,.06);
  --nv-ease:cubic-bezier(.22,1,.36,1);font-family:InterNV,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--nv-ink)}
.nvc svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---- el orbe flotante ---- */
.nvc-fab{position:fixed;z-index:900;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;flex-direction:row-reverse}
.nvc-boton{position:relative;width:78px;height:78px;border-radius:50%;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;
  filter:drop-shadow(0 12px 22px rgba(4,120,87,.42));opacity:0;transform:scale(.6);animation:nvcPop .7s var(--nv-ease) .8s forwards}
@keyframes nvcPop{to{opacity:1;transform:none}}
.nvc-boton .talk{opacity:0}.nvc-boton:hover .talk,.nvc-abierto .nvc-boton .talk{opacity:1}.nvc-boton:hover .idle,.nvc-abierto .nvc-boton .idle{opacity:0}
.nvc-boton video{transition:opacity .4s;position:absolute;left:50%;top:50%;width:150%;height:150%;translate:-50% -50%;object-fit:contain;pointer-events:none}
.nvc-boton::after{content:"";position:absolute;inset:12%;border-radius:50%;animation:nvcRing 2.8s ease-out 1.8s infinite;z-index:-1}
@keyframes nvcRing{0%{box-shadow:0 0 0 0 rgba(16,185,129,.42)}70%,100%{box-shadow:0 0 0 22px rgba(16,185,129,0)}}
.nvc-boton .nvc-x{position:relative;z-index:2;width:28px;height:28px;color:#fff;display:none;filter:drop-shadow(0 1px 3px rgba(2,44,31,.7))}
.nvc-abierto .nvc-boton .nvc-x{display:block}
.nvc-boton:focus-visible{outline:3px solid var(--nv-em1);outline-offset:4px}
.nvc-tip{background:#fff;border:1px solid var(--nv-line);box-shadow:var(--nv-pop);border-radius:20px 20px 6px 20px;padding:10px 15px;font-size:14px;font-weight:500;
  max-width:220px;cursor:pointer;opacity:0;animation:nvcFade .5s var(--nv-ease) 1.6s forwards}
.nvc-abierto .nvc-tip,.nvc-visto .nvc-tip{display:none}
@keyframes nvcFade{to{opacity:1}}

/* ---- el panel ---- */
.nvc-panel{--v:0}
.nvc-panel{position:fixed;z-index:901;right:22px;bottom:calc(112px + env(safe-area-inset-bottom));width:380px;max-width:calc(100vw - 32px);
  height:min(600px,calc(100dvh - 150px));background:#fff;border:1px solid var(--nv-line);border-radius:28px;box-shadow:var(--nv-pop);
  display:flex;flex-direction:column;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(18px) scale(.97);transform-origin:100% 100%;
  transition:opacity .3s var(--nv-ease),transform .35s var(--nv-ease),visibility 0s .35s}
.nvc-abierto .nvc-panel{opacity:1;visibility:visible;transform:none;transition:opacity .3s var(--nv-ease),transform .35s var(--nv-ease)}
.nvc-cab{display:flex;align-items:center;gap:12px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--nv-line)}
.nvc-quien{flex:1;min-width:0}
.nvc-quien b{display:block;font-weight:600;font-size:16px;letter-spacing:-.01em}
.nvc-quien span{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--nv-ink2)}
.nvc-quien span i{width:7px;height:7px;border-radius:50%;background:var(--nv-em2);display:block}


.nvc-msgs{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 8px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin}
.nvc-msgs>*{flex:0 0 auto}
.nvc-m{max-width:86%;padding:11px 15px;font-size:15px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word;animation:nvcIn .35s var(--nv-ease)}
@keyframes nvcIn{from{opacity:0;transform:translateY(8px)}}
.nvc-m.bot{align-self:flex-start;border-radius:22px 22px 22px 7px;font-weight:500;color:#fff;
  background:linear-gradient(135deg,var(--nv-em2) 0%,var(--nv-em3) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}
.nvc-m.yo{align-self:flex-end;background:#fff;border:1px solid rgba(10,10,11,.16);border-radius:22px 22px 7px 22px}
.nvc-m.err{background:#fcece6;color:#8a2b12;box-shadow:none}
  background:linear-gradient(135deg,var(--nv-em2),var(--nv-em3))}

.nvc-sug{display:flex;gap:8px;padding:4px 16px 10px;overflow-x:auto;scrollbar-width:none}
.nvc-sug::-webkit-scrollbar{display:none}
.nvc-sug button{flex:0 0 auto;font-family:inherit;font-weight:500;font-size:13px;line-height:1.2;padding:8px 14px;border-radius:999px;border:1px solid var(--nv-line);background:#fff;
  color:var(--nv-ink2);white-space:nowrap;cursor:pointer;transition:border-color .2s,color .2s}
.nvc-sug button:hover{border-color:var(--nv-ink);color:var(--nv-ink)}

.nvc-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 16px 12px;font-size:11px;color:var(--nv-muted);line-height:1.35}
.nvc-pie p{margin:0;flex:1}
.nvc-powered{display:inline-flex;align-items:center;gap:5px;color:var(--nv-muted);text-decoration:none;white-space:nowrap;font-size:11px}
.nvc-powered img{height:12px;width:auto;display:block;opacity:.85}
.nvc-powered:hover{color:var(--nv-ink)}.nvc-powered:hover img{opacity:1}

@media (prefers-reduced-motion:reduce){.nvc-boton,.nvc-tip{animation:none;opacity:1;transform:none}.nvc-boton::after{animation:none}.nvc-m{animation:none}}
@media (max-width:560px){
  .nvc-fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom))}
  .nvc-boton{width:66px;height:66px}
  .nvc-tip{display:none}
  .nvc-panel{right:0;left:0;bottom:0;width:auto;max-width:none;height:min(88dvh,720px);border-radius:26px 26px 0 0;transform:translateY(40px);transform-origin:50% 100%}
  .nvc-abierto .nvc-fab{display:none}
  }

/* ---- cabecera: orbe (boton de voz), sonido, llamar, cerrar ---- */
.nvc-orbe{--v:0;position:relative;width:44px;height:44px;flex:0 0 auto;cursor:pointer;transition:filter .5s,transform .55s var(--nv-ease)}
.nvc-orbe:hover{filter:drop-shadow(0 0 10px rgba(16,185,129,.5))}
.nvc-orbe video{position:absolute;left:50%;top:50%;width:150%;height:150%;translate:-50% -50%;object-fit:contain;pointer-events:none;transition:opacity .4s}
.nvc-orbe .talk{opacity:0}
.talking .nvc-orbe .talk{opacity:1}.talking .nvc-orbe .idle{opacity:0}
.talking .nvc-orbe{filter:drop-shadow(0 0 10px rgba(16,185,129,.6))}
.nvc-btn{width:38px;height:38px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center;color:var(--nv-ink2);cursor:pointer;flex:0 0 auto}
.nvc-btn:hover{background:var(--nv-soft);color:var(--nv-ink)}
.nvc-btn svg{width:18px;height:18px}
.nvc-snd .tacha{display:none}.nvc-snd.off .tacha{display:inline}.nvc-snd.off .ondas{display:none}
.nvc-llamar.on{background:var(--nv-em2);color:#fff}
.nvc-llamar.on svg{animation:nvcPulso 1.4s ease-in-out infinite}
.nvc-llamar.wait{opacity:.5;pointer-events:none}
@keyframes nvcPulso{0%,100%{opacity:1}50%{opacity:.45}}

/* ---- modo llamada: el orbe se agranda y se centra ---- */
.nvc-panel.call .nvc-orbe{position:absolute;left:50%;top:38%;width:150px;height:150px;z-index:3;
  transform:translate(-50%,-50%) scale(calc(1 + var(--v) * .17));
  filter:drop-shadow(0 0 calc(30px + var(--v) * 44px) rgba(16,185,129,calc(.42 + var(--v) * .38)));transition:transform .09s linear,filter .09s linear}
.nvc-panel.call:not(.talking) .nvc-orbe{animation:nvcRespira 3.2s ease-in-out infinite}
@keyframes nvcRespira{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.05)}}
.nvc-panel.call .nvc-msgs,.nvc-panel.call .nvc-sug,.nvc-panel.call .nvc-form{opacity:.12;pointer-events:none;transition:opacity .4s}
.nvc-panel.call .nvc-quien{opacity:0}
.nvc-llamada{position:absolute;left:0;right:0;top:calc(38% + 105px);text-align:center;z-index:4;display:none;padding:0 26px}
.nvc-panel.call .nvc-llamada{display:block}
.nvc-llamada b{display:block;font-size:17px;font-weight:600;letter-spacing:-.01em}
.nvc-llamada small{display:block;margin-top:5px;font-size:13.5px;color:var(--nv-ink2)}
.nvc-mic,.nvc-colgar{margin-top:16px;display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:11px 18px;font-family:inherit;font-weight:600;font-size:14.5px;cursor:pointer}
.nvc-mic{margin-right:8px;background:#fff;border:1px solid var(--nv-line);color:var(--nv-ink)}
.nvc-mic .tacha{opacity:0}.nvc-mic[aria-pressed="true"]{background:var(--nv-ink);color:#fff}.nvc-mic[aria-pressed="true"] .tacha{opacity:1}
.nvc-colgar{background:#e5484d;color:#fff;border:0}
.nvc-colgar:hover{filter:brightness(1.07)}
.nvc-mic svg,.nvc-colgar svg{width:17px;height:17px}

/* ---- mensajes ---- */
.nvc-msgs time{font-size:11.5px;color:var(--nv-muted);margin:0 6px 8px;align-self:flex-start}
.nvc-msgs time.r{align-self:flex-end}
.nvc-typing{display:flex;gap:5px;align-items:center;padding:15px 16px!important}
.nvc-typing i{width:6px;height:6px;border-radius:50%;background:#fff;display:block;animation:nvcBlink 1.1s infinite}
.nvc-typing i:nth-child(2){animation-delay:.18s}.nvc-typing i:nth-child(3){animation-delay:.36s}
@keyframes nvcBlink{0%,80%,100%{opacity:.3}40%{opacity:1}}
.nvc-nota{font-size:12px;line-height:1.5;color:#6b6b73;text-align:center;padding:6px 14px}
.nvc-lang{align-self:stretch;background:#fff;border:1px solid var(--nv-line);border-radius:20px;padding:16px 18px;text-align:center;box-shadow:0 1px 2px rgba(10,10,11,.04),0 8px 24px rgba(10,10,11,.05)}
.nvc-lang b{display:block;font-size:15.5px;letter-spacing:-.01em}
.nvc-lang small{display:block;margin-top:2px;font-size:13.5px;color:var(--nv-ink2)}
.nvc-lang-btns{display:flex;gap:9px;margin-top:13px}
.nvc-lang-btns button{flex:1;height:42px;border-radius:999px;border:1px solid var(--nv-line);background:#fff;font-family:inherit;font-weight:600;font-size:15px;color:var(--nv-ink);cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.nvc-lang-btns button:hover{background:var(--nv-ink);border-color:var(--nv-ink);color:#fff}
.nvc-aviso{display:flex;align-items:center;gap:10px;width:100%;text-align:left;margin:4px 0 2px;padding:11px 14px;border-radius:16px;cursor:pointer;
  border:1px dashed rgba(16,185,129,.42);background:rgba(16,185,129,.07);color:#0f3b2e;font-family:inherit;font-weight:500;font-size:13.5px;line-height:1.35}
.nvc-aviso:hover{background:rgba(16,185,129,.13);border-style:solid}
.nvc-aviso svg{width:17px;height:17px;flex:0 0 auto}
.nvc-aviso b{font-weight:700}

/* ---- barra de escribir ---- */
.nvc-form{display:flex;gap:10px;align-items:center;padding:10px 14px 6px}
.nvc-form input{flex:1;min-width:0;background:#fff;border:1.5px solid rgba(10,10,11,.16);border-radius:999px;outline:0;color:var(--nv-ink);font-family:inherit;font-size:16px;padding:0 18px;height:48px;transition:border-color .2s}
.nvc-form input:focus{border-color:var(--nv-ink)}
.nvc-form input::placeholder{color:var(--nv-muted)}
.nvc-send{width:48px;height:48px;border-radius:50%;border:0;display:grid;place-items:center;flex:0 0 auto;cursor:pointer;color:#fff;
  background:linear-gradient(135deg,var(--nv-em2),var(--nv-em3));box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.nvc-send:disabled{opacity:.5;cursor:default}
.nvc-send svg{width:20px;height:20px}
.nvc-panel{position:fixed}
@media (prefers-reduced-motion:reduce){.nvc-llamar.on svg,.nvc-panel.call:not(.talking) .nvc-orbe{animation:none}}
@media (max-width:560px){.nvc-form{padding-bottom:calc(8px + env(safe-area-inset-bottom))}}
