/* Secretario Virtual Institucional — widget de chat (Fase 1) */

.asis-launcher{
  position:fixed;right:20px;bottom:20px;z-index:200;
  display:flex;align-items:center;gap:10px;
  background:var(--navy);color:#fff;border:none;cursor:pointer;
  padding:14px 20px;border-radius:30px;
  font:700 14px "DM Sans",Arial,sans-serif;
  box-shadow:0 8px 24px rgba(9,26,51,.28);
  transition:.2s;
}
.asis-launcher:hover,.asis-launcher:focus-visible{background:var(--magenta)}
.asis-launcher:focus-visible{outline:2px solid #fff;outline-offset:3px}
.asis-launcher .badge{width:8px;height:8px;border-radius:50%;background:#33d17a;flex:none}

.asis-panel{
  position:fixed;right:20px;bottom:92px;z-index:200;
  width:min(380px,calc(100vw - 40px));
  max-height:min(600px,calc(100vh - 140px));
  background:var(--white,#fff);border:1px solid var(--line);border-radius:12px;
  box-shadow:0 20px 50px rgba(9,26,51,.28);
  display:flex;flex-direction:column;overflow:hidden;
}
.asis-panel[hidden]{display:none}

.asis-head{background:var(--navy);color:#fff;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;flex:none}
.asis-head-title{display:flex;flex-direction:column;gap:2px}
.asis-head-title b{font:700 14.5px "Manrope",sans-serif}
.asis-head-title span{font-size:11.5px;color:#aeb9c8}
.asis-close{background:none;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:4px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.asis-close:hover,.asis-close:focus-visible{background:rgba(255,255,255,.15)}
.asis-close:focus-visible{outline:2px solid #fff;outline-offset:1px}

.asis-profile{padding:14px 16px;border-bottom:1px solid var(--line);flex:none}
.asis-profile p{margin:0 0 10px;font-size:12.5px;color:var(--muted);font-weight:600}
.asis-profile-grid{display:flex;flex-wrap:wrap;gap:6px}
.asis-profile-grid button{
  font:700 12px "DM Sans",Arial,sans-serif;color:var(--ink,#101c2b);
  background:var(--paper,#f7f4ee);border:1px solid var(--line);border-radius:20px;
  padding:6px 14px;min-height:44px;display:inline-flex;align-items:center;cursor:pointer;transition:.15s;
}
.asis-profile-grid button:hover,.asis-profile-grid button:focus-visible{border-color:var(--magenta);color:var(--magenta)}
.asis-profile-grid button[aria-pressed="true"]{background:var(--magenta);border-color:var(--magenta);color:#fff}
.asis-profile-grid button:focus-visible{outline:2px solid var(--magenta);outline-offset:2px}

.asis-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--paper,#f7f4ee)}
.asis-msg{max-width:85%;padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.5}
.asis-msg.asistente{align-self:flex-start;background:var(--white,#fff);border:1px solid var(--line);color:var(--ink,#101c2b);border-bottom-left-radius:4px}
.asis-msg.visitante{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.asis-msg.sistema{align-self:center;background:none;color:var(--muted);font-size:12px;font-style:italic;max-width:100%;text-align:center}
.asis-espera-larga{align-self:center;margin:0;color:var(--muted);font-size:12px;font-style:italic;max-width:100%;text-align:center}

.asis-fuentes-label{margin:8px 0 2px;font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.asis-fuentes{margin:0;padding-left:16px;font-size:11.5px;color:var(--muted)}
.asis-fuentes li{margin:2px 0}

.asis-typing{display:flex;align-items:center;gap:4px;padding:14px}
.asis-typing span{width:6px;height:6px;border-radius:50%;background:var(--muted,#8a94a3);opacity:.5;animation:asis-typing-bounce 1s infinite ease-in-out}
.asis-typing span:nth-child(2){animation-delay:.15s}
.asis-typing span:nth-child(3){animation-delay:.3s}
@keyframes asis-typing-bounce{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion: reduce){.asis-typing span{animation:none;opacity:.7}}

.asis-form{flex:none;display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--white,#fff)}
.asis-form textarea{
  flex:1;resize:none;border:1px solid var(--line);border-radius:20px;padding:10px 16px;
  font:14px "DM Sans",Arial,sans-serif;color:var(--ink,#101c2b);max-height:90px;line-height:1.4;
}
.asis-form textarea:focus-visible{outline:2px solid var(--magenta);outline-offset:1px}
.asis-form button{
  flex:none;width:44px;height:44px;border-radius:50%;border:none;background:var(--magenta);color:#fff;
  cursor:pointer;font-size:16px;display:grid;place-items:center;
}
.asis-form button:disabled{opacity:.45;cursor:default}
.asis-form button:focus-visible{outline:2px solid var(--navy);outline-offset:2px}

.asis-disclaimer{flex:none;padding:8px 16px;font-size:10.5px;color:var(--muted);text-align:center;border-top:1px solid var(--line)}

@media (prefers-reduced-motion: no-preference){
  .asis-panel{animation:asis-in .18s ease-out}
}
@keyframes asis-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:480px){
  .asis-launcher{right:14px;bottom:14px;padding:12px 16px;font-size:13px;min-height:44px;min-width:44px}
  .asis-launcher .label{display:none}
  .asis-panel{right:14px;bottom:78px;width:calc(100vw - 28px)}
  .asis-head-title span{font-size:12.5px}
  .asis-disclaimer{font-size:11.5px}
}
