/* LCA ITECH — asistente virtual (chat widget). Usa las variables de styles.css. */
.asst{--asst-bottom:20px;--asst-right:20px;position:fixed;right:var(--asst-right);bottom:var(--asst-bottom);z-index:90;font-family:var(--sans,system-ui,sans-serif);color:var(--txt,#e6edf6)}
.asst *{box-sizing:border-box}
.asst [hidden]{display:none!important}

/* Botón flotante */
.asst-fab{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 20px 0 16px;border:0;border-radius:999px;cursor:pointer;
  background:var(--grad,linear-gradient(135deg,#22d3ee,#a78bfa));color:#05070b;font:600 .95rem/1 var(--sans,system-ui);
  box-shadow:0 14px 34px -10px rgba(34,211,238,.55),0 0 0 1px rgba(255,255,255,.06) inset;transition:transform .2s,box-shadow .2s}
.asst-fab:hover{transform:translateY(-2px);box-shadow:0 18px 42px -12px rgba(167,139,250,.65)}
.asst-fab:focus-visible,.asst button:focus-visible,.asst textarea:focus-visible,.asst a:focus-visible{outline:2px solid var(--acc,#22d3ee);outline-offset:3px}
.asst-fab svg{width:22px;height:22px;flex:none}
.asst-fab__dot{width:8px;height:8px;border-radius:50%;background:#05070b;opacity:.55;box-shadow:0 0 0 0 rgba(5,7,11,.5);animation:asstPulse 2.4s infinite}
.asst.is-open .asst-fab{display:none}

/* Panel */
.asst-panel{position:absolute;right:0;bottom:0;width:min(392px,calc(100vw - 32px));height:min(600px,calc(100vh - 120px));height:min(600px,calc(100dvh - 120px));
  display:flex;flex-direction:column;overflow:hidden;border-radius:18px;border:1px solid var(--line2,rgba(148,163,184,.24));
  background:linear-gradient(180deg,var(--card2,#121b28),var(--bg2,#0b1018));box-shadow:0 30px 80px -20px rgba(0,0,0,.75),0 0 0 1px rgba(34,211,238,.06);
  transform-origin:bottom right;animation:asstIn .22s ease-out}
.asst-head{display:flex;align-items:center;gap:12px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--line,rgba(148,163,184,.14));background:rgba(7,10,16,.55)}
.asst-head img{width:36px;height:36px;border-radius:10px;flex:none}
.asst-head__txt{flex:1;min-width:0}
.asst-title{margin:0;font-size:.98rem;font-weight:700;line-height:1.2}
.asst-sub{margin:2px 0 0;font-size:.76rem;color:var(--mut,#94a3b8);display:flex;align-items:center;gap:6px}
.asst-sub i{width:7px;height:7px;border-radius:50%;background:var(--ok,#34d399);box-shadow:0 0 8px var(--ok,#34d399);display:inline-block}
.asst.is-offline .asst-sub i{background:var(--warn,#fbbf24);box-shadow:0 0 8px var(--warn,#fbbf24)}
.asst-icon{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--mut,#94a3b8);cursor:pointer}
.asst-icon:hover{color:var(--txt,#e6edf6);border-color:var(--line2,rgba(148,163,184,.24));background:rgba(148,163,184,.08)}
.asst-icon svg{width:18px;height:18px}

/* Mensajes */
.asst-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px 8px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin}
.asst-msg{max-width:88%;padding:10px 13px;border-radius:14px;font-size:.92rem;line-height:1.5;overflow-wrap:anywhere;white-space:normal}
.asst-msg p{margin:0}
.asst-msg p+p,.asst-msg p+ul,.asst-msg ul+p{margin-top:6px}
.asst-msg ul{margin:4px 0 0;padding-left:18px}
.asst-msg li{margin:2px 0}
.asst-msg a{color:var(--acc,#22d3ee);text-decoration:underline;text-underline-offset:2px}
.asst-msg--bot{align-self:flex-start;background:rgba(148,163,184,.08);border:1px solid var(--line,rgba(148,163,184,.14));border-bottom-left-radius:6px}
.asst-msg--user{align-self:flex-end;background:linear-gradient(135deg,rgba(34,211,238,.22),rgba(167,139,250,.22));border:1px solid rgba(34,211,238,.28);border-bottom-right-radius:6px;white-space:pre-wrap}
.asst-msg--note{align-self:stretch;max-width:100%;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.28);font-size:.86rem}
.asst-contacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.asst-contacts a{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;border:1px solid var(--line2,rgba(148,163,184,.24));color:var(--txt,#e6edf6)!important;text-decoration:none!important;font-size:.8rem;background:rgba(7,10,16,.5)}
.asst-contacts a:hover{border-color:var(--acc,#22d3ee)}

.asst-chips{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 4px}
.asst-chip{border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.06);color:var(--txt,#e6edf6);border-radius:999px;padding:7px 12px;font:500 .82rem/1.25 var(--sans,system-ui);cursor:pointer;text-align:left}
.asst-chip:hover{border-color:var(--acc,#22d3ee);background:rgba(34,211,238,.12)}

.asst-typing{align-self:flex-start;display:inline-flex;gap:5px;padding:12px 14px;border-radius:14px;background:rgba(148,163,184,.08);border:1px solid var(--line,rgba(148,163,184,.14))}
.asst-typing span{width:7px;height:7px;border-radius:50%;background:var(--mut,#94a3b8);animation:asstDot 1.2s infinite ease-in-out}
.asst-typing span:nth-child(2){animation-delay:.15s}.asst-typing span:nth-child(3){animation-delay:.3s}

/* Formulario */
.asst-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 6px;border-top:1px solid var(--line,rgba(148,163,184,.14));background:rgba(7,10,16,.5)}
.asst-input{flex:1;resize:none;min-height:42px;max-height:120px;padding:10px 12px;border-radius:12px;border:1px solid var(--line2,rgba(148,163,184,.24));
  background:rgba(15,22,33,.85);color:var(--txt,#e6edf6);font:400 .93rem/1.4 var(--sans,system-ui)}
.asst-input::placeholder{color:var(--dim,#64748b)}
.asst-input:focus{border-color:var(--acc,#22d3ee);outline:none;box-shadow:0 0 0 3px rgba(34,211,238,.15)}
.asst-send{width:42px;height:42px;flex:none;display:grid;place-items:center;border:0;border-radius:12px;cursor:pointer;background:var(--grad,linear-gradient(135deg,#22d3ee,#a78bfa));color:#05070b}
.asst-send:disabled{opacity:.45;cursor:not-allowed}
.asst-send svg{width:18px;height:18px}
.asst-foot{display:flex;justify-content:space-between;gap:8px;padding:0 14px 10px;background:rgba(7,10,16,.5);font-size:.7rem;color:var(--dim,#64748b)}
.asst-count.is-near{color:var(--warn,#fbbf24)}
.asst-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@keyframes asstIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes asstDot{0%,80%,100%{transform:scale(.6);opacity:.45}40%{transform:scale(1);opacity:1}}
@keyframes asstPulse{0%{box-shadow:0 0 0 0 rgba(5,7,11,.45)}70%{box-shadow:0 0 0 7px rgba(5,7,11,0)}100%{box-shadow:0 0 0 0 rgba(5,7,11,0)}}

/* Mobile: botón redondo y panel a pantalla completa */
@media (max-width:640px){
  .asst{--asst-bottom:16px;--asst-right:16px}
  .asst-fab{width:56px;height:56px;padding:0;justify-content:center}
  .asst-fab__label,.asst-fab__dot{display:none}
  .asst.is-open{inset:0;right:0;bottom:0}
  .asst.is-open .asst-panel{position:fixed;inset:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0;animation:none}
  .asst-msg{max-width:92%}
  .asst-input{font-size:16px} /* evita el zoom de iOS */
}
html:not(.deck) .footer{padding-bottom:96px} /* que el botón no tape "Volver arriba" al final */
html.asst-open .deck-dots{opacity:0;pointer-events:none}
html.asst-lock,html.asst-lock body{overflow:hidden!important}

@media (prefers-reduced-motion:reduce){
  .asst-panel,.asst-fab__dot,.asst-typing span{animation:none!important}
  .asst-fab{transition:none}
}
@media print{.asst{display:none!important}}
.asst-typing{flex-wrap:wrap;align-items:center}
.asst-slow{flex-basis:100%;margin-top:6px;font-size:.78rem;font-style:normal;color:var(--mut,#94a3b8)}
