/* =========================================================
   SPI Expert — Widget Web v1.0
   Asistente virtual para Seguridad y Prevención Integral E.A.S.
   ========================================================= */
:root{
  --spi-exp-navy:#091531;
  --spi-exp-blue:#1f5fe0;
  --spi-exp-blue-2:#2c74f0;
  --spi-exp-mist:#edf3ff;
  --spi-exp-line:#dbe6f6;
  --spi-exp-text:#0d1b3e;
  --spi-exp-muted:#6b7793;
  --spi-exp-white:#ffffff;
  --spi-exp-success:#25d366;
  --spi-exp-shadow:0 24px 70px rgba(9,21,49,.22);
}

.spi-expert *{box-sizing:border-box}
.spi-expert{font-family:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--spi-exp-text)}

.spi-expert-launcher{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:120;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  cursor:pointer;
  padding:12px 16px 12px 12px;
  min-height:62px;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,var(--spi-exp-navy),var(--spi-exp-blue));
  box-shadow:0 18px 42px rgba(31,95,224,.32);
  transition:transform .22s ease,box-shadow .22s ease,opacity .22s ease;
}
.spi-expert-launcher:hover{transform:translateY(-2px);box-shadow:0 22px 50px rgba(31,95,224,.40)}
.spi-expert-launcher:focus-visible{outline:4px solid rgba(47,116,240,.25);outline-offset:4px}
.spi-expert-launcher__icon{
  width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;position:relative;overflow:hidden;
}
.spi-expert-launcher__icon::before{content:"";width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--spi-exp-blue),#79a9ff);display:block;box-shadow:0 0 0 6px rgba(31,95,224,.12)}
.spi-expert-launcher__icon::after{content:"";position:absolute;right:8px;bottom:8px;width:8px;height:8px;border-radius:50%;background:var(--spi-exp-success);border:2px solid #fff}
.spi-expert-launcher__copy{display:flex;flex-direction:column;text-align:left;line-height:1.05}
.spi-expert-launcher__copy strong{font-family:'Oswald',sans-serif;letter-spacing:.04em;text-transform:uppercase;font-size:.9rem;color:#fff}
.spi-expert-launcher__copy span{font-size:.73rem;color:#dbe8ff;margin-top:3px}

.spi-expert-panel{
  position:fixed;
  right:22px;
  bottom:96px;
  z-index:130;
  width:min(420px,calc(100vw - 28px));
  height:min(680px,calc(100vh - 120px));
  min-height:480px;
  border-radius:26px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(219,230,246,.95);
  box-shadow:var(--spi-exp-shadow);
  display:flex;
  flex-direction:column;
  opacity:0;
  transform:translateY(22px) scale(.98);
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
}
.spi-expert-panel.is-open{opacity:1;transform:none;visibility:visible;pointer-events:auto}

.spi-expert-header{
  background:radial-gradient(circle at 20% 0%,rgba(79,139,245,.45),transparent 34%),linear-gradient(135deg,#091531,#14224a 60%,#1f5fe0);
  color:#fff;
  padding:18px 18px 16px;
  position:relative;
}
.spi-expert-header__top{display:flex;align-items:center;gap:12px;justify-content:space-between}
.spi-expert-brand{display:flex;align-items:center;gap:12px;min-width:0}
.spi-expert-avatar{width:44px;height:44px;border-radius:15px;background:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.18);flex:none;padding:7px}
.spi-expert-avatar img{max-width:100%;max-height:100%;display:block}
.spi-expert-title{min-width:0}
.spi-expert-title strong{font-family:'Oswald',sans-serif;display:block;text-transform:uppercase;letter-spacing:.05em;font-size:1.05rem;color:#fff;line-height:1.05}
.spi-expert-title span{display:block;color:#d6e4ff;font-size:.76rem;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spi-expert-close{width:36px;height:36px;border:0;border-radius:11px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;font-size:22px;line-height:1;display:grid;place-items:center;transition:background .18s}
.spi-expert-close:hover{background:rgba(255,255,255,.22)}
.spi-expert-status{margin-top:14px;display:flex;align-items:center;gap:7px;font-size:.77rem;color:#e7efff}
.spi-expert-status i{width:8px;height:8px;border-radius:50%;background:var(--spi-exp-success);box-shadow:0 0 0 4px rgba(37,211,102,.18)}

.spi-expert-messages{
  flex:1;
  overflow:auto;
  padding:18px 16px 14px;
  background:linear-gradient(180deg,#f8fbff,#eef4ff);
  scroll-behavior:smooth;
}
.spi-expert-message{display:flex;margin:0 0 12px;animation:spiExpPop .18s ease-out}
@keyframes spiExpPop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.spi-expert-message--bot{justify-content:flex-start}
.spi-expert-message--user{justify-content:flex-end}
.spi-expert-bubble{max-width:86%;border-radius:18px;padding:11px 13px;font-size:.92rem;line-height:1.45;box-shadow:0 4px 14px rgba(9,21,49,.06);white-space:pre-wrap}
.spi-expert-message--bot .spi-expert-bubble{background:#fff;border:1px solid rgba(219,230,246,.9);border-top-left-radius:7px;color:#18264c}
.spi-expert-message--user .spi-expert-bubble{background:linear-gradient(135deg,var(--spi-exp-blue),var(--spi-exp-blue-2));color:#fff;border-top-right-radius:7px}
.spi-expert-time{display:block;font-size:.68rem;opacity:.62;margin-top:6px}

.spi-expert-actions{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 14px 0;align-items:flex-start}
.spi-expert-action{
  border:1px solid var(--spi-exp-line);
  background:#fff;
  color:var(--spi-exp-text);
  border-radius:999px;
  padding:9px 12px;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(13,27,62,.05);
  transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;
}
.spi-expert-action:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(13,27,62,.09);border-color:rgba(31,95,224,.35);background:#f9fbff}
.spi-expert-action--primary{background:linear-gradient(135deg,var(--spi-exp-navy),var(--spi-exp-blue));border-color:transparent;color:#fff}
.spi-expert-action--success{background:#eafbf2;border-color:#bcefd2;color:#075d2a}

.spi-expert-typing{display:none;align-items:center;gap:4px;margin:0 0 12px 0;padding-left:3px}
.spi-expert-typing.is-visible{display:flex}
.spi-expert-typing span{width:7px;height:7px;border-radius:50%;background:#8ba3d2;animation:spiDot 1s infinite ease-in-out}
.spi-expert-typing span:nth-child(2){animation-delay:.15s}.spi-expert-typing span:nth-child(3){animation-delay:.3s}
@keyframes spiDot{0%,80%,100%{opacity:.28;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}

.spi-expert-input{
  border-top:1px solid var(--spi-exp-line);
  background:#fff;
  padding:12px;
}
.spi-expert-input__row{display:flex;align-items:flex-end;gap:8px;background:#f5f8fd;border:1px solid var(--spi-exp-line);border-radius:18px;padding:7px 7px 7px 12px}
.spi-expert-input textarea{
  flex:1;
  border:0;
  outline:0;
  background:transparent;
  resize:none;
  min-height:38px;
  max-height:104px;
  padding:9px 0;
  font-family:inherit;
  color:var(--spi-exp-text);
  font-size:.92rem;
}
.spi-expert-send{width:40px;height:40px;border-radius:14px;border:0;cursor:pointer;background:linear-gradient(135deg,var(--spi-exp-blue),var(--spi-exp-blue-2));color:#fff;display:grid;place-items:center;flex:none;transition:transform .16s}
.spi-expert-send:hover{transform:scale(1.04)}
.spi-expert-send svg{width:18px;height:18px;fill:currentColor}
.spi-expert-footnote{font-size:.68rem;line-height:1.35;color:var(--spi-exp-muted);text-align:center;margin-top:8px}

.spi-expert-summary{
  background:#f8fbff;
  border:1px solid var(--spi-exp-line);
  border-radius:18px;
  padding:12px;
  margin-top:6px;
}
.spi-expert-summary strong{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.04em;color:var(--spi-exp-navy);font-size:.86rem}
.spi-expert-summary pre{font-family:'Inter',sans-serif;white-space:pre-wrap;margin:8px 0 0;color:#263653;font-size:.84rem;line-height:1.5}

@media(max-width:680px){
  .wa-float{bottom:94px;right:16px;width:52px;height:52px}
  .spi-expert-launcher{right:14px;bottom:18px;min-height:58px;padding:10px 13px 10px 10px}
  .spi-expert-launcher__copy span{display:none}
  .spi-expert-panel{right:8px;left:8px;bottom:84px;width:auto;height:calc(100vh - 108px);min-height:420px;border-radius:22px}
  .spi-expert-bubble{max-width:92%}
}

/* Mantiene el WhatsApp directo visible sin tapar el asistente. */
.wa-float{bottom:96px;right:22px;z-index:118}
