/* =====================================================================
   IAJ NEXUS — chat widget (light theme, shared by index.html + pricing.html)
   Relies on the host page's CSS variables (--blue, --card, --border, ...).
   ===================================================================== */

.chat-launcher{
  position:fixed;right:22px;bottom:22px;z-index:200;
  width:58px;height:58px;border-radius:50%;border:1px solid var(--blue);
  background:var(--blue);color:#fff;cursor:pointer;
  display:grid;place-items:center;
  box-shadow:0 14px 34px rgba(47,107,255,.36);
  transition:transform .18s var(--ease), box-shadow .2s ease, background .2s ease;
}
.chat-launcher:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(47,107,255,.44)}
.chat-launcher svg{width:25px;height:25px;position:absolute;transition:opacity .18s ease,transform .18s ease}
.chat-launcher .ic-close{opacity:0;transform:scale(.6) rotate(-20deg)}
.chat-launcher .ic-open{opacity:1;transform:scale(1) rotate(0)}
.chat-launcher.open .ic-open{opacity:0;transform:scale(.6) rotate(20deg)}
.chat-launcher.open .ic-close{opacity:1;transform:scale(1) rotate(0)}

.chat-panel{
  position:fixed;right:22px;bottom:92px;z-index:200;
  width:376px;max-width:calc(100vw - 32px);height:min(560px, calc(100vh - 132px));
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--card);border:1px solid var(--border);border-radius:20px;
  box-shadow:0 30px 70px rgba(15,23,42,.22);
  opacity:0;transform:translateY(14px) scale(.98);pointer-events:none;transform-origin:bottom right;
  transition:opacity .22s var(--ease), transform .22s var(--ease);
}
.chat-panel.open{opacity:1;transform:none;pointer-events:auto}

.chat-head{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);flex:0 0 auto;background:var(--bg-2)}
.chat-head .chat-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:1px solid var(--border-2);background:#000}
.chat-head b{display:block;font-family:var(--display);font-weight:600;font-size:14.5px}
.chat-head .chat-status{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-top:2px}
.chat-head .chat-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);display:inline-block}

.chat-body{flex:1 1 auto;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
.chat-body::-webkit-scrollbar{width:6px}
.chat-body::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:3px}

.chat-row{display:flex;max-width:90%}
.chat-row.bot{align-self:flex-start}
.chat-row.user{align-self:flex-end;justify-content:flex-end}
.chat-bubble{padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.55;white-space:pre-wrap}
.chat-row.bot .chat-bubble{background:var(--bg-2);border:1px solid var(--border);border-bottom-left-radius:5px;color:var(--fg)}
.chat-row.user .chat-bubble{background:var(--blue);color:#fff;border-bottom-right-radius:5px}
.chat-row.err .chat-bubble{background:rgba(200,53,47,.08);border:1px solid rgba(200,53,47,.35);color:var(--err)}

.chat-typing{display:flex;gap:4px;align-items:center;padding:13px 15px;border-radius:16px;background:var(--bg-2);border:1px solid var(--border);align-self:flex-start;border-bottom-left-radius:5px}
.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:chatBounce 1.1s ease-in-out infinite}
.chat-typing span:nth-child(2){animation-delay:.15s}
.chat-typing span:nth-child(3){animation-delay:.3s}
@keyframes chatBounce{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}

.chat-quick{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 14px;flex:0 0 auto}
.chat-quick button{
  font-family:var(--body);font-size:12.5px;color:var(--blue);cursor:pointer;
  background:var(--blue-soft);border:1px solid var(--border);padding:8px 12px;border-radius:999px;
  transition:background .15s,border-color .15s;
}
.chat-quick button:hover{background:#e6ecff;border-color:var(--blue-2)}

.chat-form{display:flex;gap:8px;padding:13px 16px;border-top:1px solid var(--border);flex:0 0 auto}
.chat-form input{
  flex:1;padding:11px 14px;border-radius:999px;border:1px solid var(--border-2);background:var(--bg-2);
  color:var(--fg);font-family:var(--body);font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s;
}
.chat-form input::placeholder{color:#9aa1b0}
.chat-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.chat-form button{
  flex:0 0 auto;width:42px;height:42px;border-radius:50%;border:0;background:var(--blue);color:#fff;
  cursor:pointer;display:grid;place-items:center;transition:background .15s,transform .15s;
}
.chat-form button:hover{background:var(--blue-hover);transform:scale(1.05)}
.chat-form button:disabled{opacity:.5;cursor:not-allowed;transform:none}
.chat-form button svg{width:17px;height:17px}
.chat-foot-note{font-size:10.5px;color:var(--muted);text-align:center;padding:0 16px 12px}
.chat-foot-note a{color:var(--blue)}

@media (max-width:520px){
  .chat-panel{right:14px;left:14px;bottom:88px;width:auto;max-width:none;height:min(560px, calc(100svh - 120px))}
  .chat-launcher{right:16px;bottom:16px}
}
@media (prefers-reduced-motion: reduce){
  .chat-launcher,.chat-panel,.chat-launcher svg{transition:none}
  .chat-typing span{animation:none}
}
