/* ===== LANZADOR FLOTANTE ===== */
.ia-float{
  position:fixed;right:22px;bottom:92px;z-index:95;
  display:flex;align-items:center;gap:.6rem;
  height:58px;padding:0 1.1rem 0 .55rem;border:0;border-radius:100px;
  background:var(--violet);color:var(--cream);cursor:pointer;font:inherit;
  box-shadow:0 12px 30px -8px rgba(110,79,162,.7);
  transition:transform .22s ease,background .22s ease;
}
.ia-float:hover{transform:translateY(-2px);background:var(--violet-2)}
.ia-float__ic{
  width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:rgba(246,241,231,.16);
}
.ia-float__txt{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.ia-float__txt strong{font-size:.9rem;font-weight:600}
.ia-float__txt small{font-size:.72rem;opacity:.8}
/* los destellos centellean, desfasados entre sí */
.ia-chispa{transform-box:fill-box;transform-origin:center;animation:iaChispa 3.2s ease-in-out infinite}
.ia-chispa--2{animation-delay:.5s}
.ia-chispa--3{animation-delay:1.1s}
@keyframes iaChispa{0%,100%{opacity:1;transform:scale(1)}45%{opacity:.55;transform:scale(.86)}}

/* pulso suave para que se note que está ahí */
.ia-float::after{
  content:"";position:absolute;inset:0;border-radius:100px;
  border:2px solid var(--violet);opacity:0;animation:iaPulso 3.4s ease-out infinite;
}
@keyframes iaPulso{0%{transform:scale(1);opacity:.55}70%,100%{transform:scale(1.12);opacity:0}}

/* ===== PANEL ===== */
.ia{position:fixed;inset:0;z-index:120}
.ia[hidden]{display:none}
.ia__overlay{position:absolute;inset:0;background:rgba(51,43,57,.45);backdrop-filter:blur(2px);opacity:0;transition:.26s}
.ia__panel{
  position:absolute;right:22px;bottom:22px;width:min(410px,calc(100vw - 44px));
  height:min(620px,calc(100vh - 44px));
  background:var(--cream);border-radius:var(--r);box-shadow:var(--shadow);
  display:flex;flex-direction:column;overflow:hidden;
  transform:translateY(16px) scale(.98);opacity:0;transition:.26s cubic-bezier(.2,.8,.3,1);
}
.ia.open .ia__overlay{opacity:1}
.ia.open .ia__panel{transform:none;opacity:1}

/* --- Cabecera --- */
.ia__head{
  flex:none;display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;
  background:var(--violet);color:var(--cream);
}
.ia__avatar{
  width:42px;height:42px;flex:none;border-radius:50%;display:grid;place-items:center;
  background:rgba(246,241,231,.18);
}
.ia__id{flex:1 1 auto;min-width:0;line-height:1.2}
.ia__id strong{display:block;font-family:var(--serif);font-size:1.1rem;font-weight:500}
.ia__estado{display:flex;align-items:center;gap:.35rem;font-size:.74rem;opacity:.85;margin-top:.1rem}
.ia__punto{width:7px;height:7px;border-radius:50%;background:#8fd39a;box-shadow:0 0 0 0 rgba(143,211,154,.7);animation:iaLatido 2.4s infinite}
@keyframes iaLatido{0%{box-shadow:0 0 0 0 rgba(143,211,154,.6)}70%{box-shadow:0 0 0 7px rgba(143,211,154,0)}100%{box-shadow:0 0 0 0 rgba(143,211,154,0)}}
.ia__close{
  flex:none;width:34px;height:34px;border:0;border-radius:50%;cursor:pointer;
  background:rgba(246,241,231,.14);color:var(--cream);font-size:1.4rem;line-height:1;
  display:grid;place-items:center;transition:.2s;
}
.ia__close:hover{background:rgba(246,241,231,.28);transform:rotate(90deg)}

/* --- Conversación --- */
.ia__body{
  flex:1 1 auto;min-height:0;overflow-y:auto;padding:1.1rem;
  display:flex;flex-direction:column;gap:.8rem;
  scrollbar-width:thin;scrollbar-color:var(--lilac) transparent;
}
.ia__body::-webkit-scrollbar{width:9px}
.ia__body::-webkit-scrollbar-track{background:transparent}
.ia__body::-webkit-scrollbar-thumb{background:var(--lilac);border-radius:100px;border:3px solid var(--cream)}

.ia__msg{max-width:86%;padding:.7rem .95rem;border-radius:16px;font-size:.92rem;line-height:1.55}
.ia__msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}
.ia__msg--yo{align-self:flex-end;background:var(--violet);color:var(--cream);border-bottom-right-radius:5px}
.ia__msg--error{align-self:flex-start;background:#fbeaea;border:1px solid #e5bcbc;color:#8f3a3a;border-bottom-left-radius:5px}

/* cita de una fórmula: abre su ficha */
.ia__cita{
  display:inline;border:0;background:none;padding:0;font:inherit;cursor:pointer;
  color:var(--violet);font-weight:600;text-decoration:underline;
  text-decoration-color:var(--lilac);text-underline-offset:2px;transition:.18s;
}
.ia__cita:hover{color:var(--ink);text-decoration-color:var(--violet)}

/* puntos de "escribiendo" */
.ia__pensando{display:inline-flex;gap:4px;align-items:center;padding:.15rem 0}
.ia__pensando span{width:7px;height:7px;border-radius:50%;background:var(--lilac);animation:iaPunto 1.3s ease-in-out infinite}
.ia__pensando span:nth-child(2){animation-delay:.18s}
.ia__pensando span:nth-child(3){animation-delay:.36s}
@keyframes iaPunto{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}

/* --- Sugerencias iniciales --- */
.ia__sugerencias{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem}
.ia__sug{
  border:1px solid var(--line);background:#fff;color:var(--violet);
  padding:.42rem .8rem;border-radius:100px;font:inherit;font-size:.8rem;cursor:pointer;transition:.2s;
}
.ia__sug:hover{background:var(--violet);color:var(--cream);border-color:var(--violet)}

/* --- Pie / entrada --- */
.ia__foot{flex:none;border-top:1px solid var(--line);background:var(--cream-2);padding:.7rem .8rem .8rem}
.ia__form{display:flex;align-items:flex-end;gap:.5rem}
.ia__input{
  flex:1 1 auto;resize:none;border:1px solid var(--line);border-radius:18px;
  padding:.6rem .9rem;font:inherit;font-size:.9rem;line-height:1.45;background:#fff;color:var(--ink);
  max-height:110px;overflow-y:auto;
}
.ia__input:focus{outline:2px solid var(--lilac);outline-offset:-1px}
.ia__send{
  flex:none;width:40px;height:40px;border:0;border-radius:50%;cursor:pointer;
  background:var(--violet);color:var(--cream);display:grid;place-items:center;transition:.2s;
}
.ia__send:hover:not(:disabled){background:var(--violet-2)}
.ia__send:disabled{opacity:.45;cursor:not-allowed}
.ia__aviso{margin:.55rem 0 0;font-size:.7rem;line-height:1.4;color:var(--ink-soft);text-align:center}

@media (max-width:560px){
  .ia__panel{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0}
  .ia-float{right:16px;bottom:86px;height:52px;padding-right:.9rem}
  .ia-float__ic{width:40px;height:40px}
  .ia-float__txt small{display:none}
}
@media (prefers-reduced-motion:reduce){
  .ia-float::after,.ia__punto,.ia-chispa{animation:none}
}
