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

.chat-launcher{
  position:fixed;right:22px;bottom:22px;z-index:200;
  width:56px;height:56px;border-radius:50%;border:1px solid var(--fg);
  background:var(--fg);color:#fff;cursor:pointer;
  display:grid;place-items:center;
  box-shadow:0 14px 34px rgba(20,20,16,.26);
  transition:transform .18s var(--ease), box-shadow .2s ease, background .2s ease;
}
.chat-launcher:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(20,20,16,.34)}
.chat-launcher svg{width:24px;height:24px;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:90px;z-index:200;
  width:376px;max-width:calc(100vw - 32px);height:min(560px, calc(100vh - 130px));
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--card);border:1px solid var(--border);border-radius:18px;
  box-shadow:0 30px 70px rgba(20,20,16,.2);
  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:14px 17px;border-bottom:1px solid var(--border);flex:0 0 auto;background:var(--bg-2)}
.chat-head .chat-avatar{width:34px;height:34px;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:700;font-size:14px}
.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(--fg);display:inline-block}

.chat-body{flex:1 1 auto;overflow-y:auto;padding:15px 17px;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:10px 14px;border-radius:15px;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(--fg);color:#fff;border-bottom-right-radius:5px}
.chat-row.err .chat-bubble{background:rgba(178,58,51,.07);border:1px solid rgba(178,58,51,.35);color:var(--err)}

.chat-typing{display:flex;gap:4px;align-items:center;padding:12px 14px;border-radius:15px;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 17px 13px;flex:0 0 auto}
.chat-quick button{
  font-family:var(--body);font-size:12.5px;color:var(--fg);cursor:pointer;
  background:transparent;border:1px solid var(--border-2);padding:7px 12px;border-radius:999px;
  transition:background .15s,border-color .15s;
}
.chat-quick button:hover{background:rgba(20,20,16,.06);border-color:var(--fg)}

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

@media (max-width:520px){
  .chat-panel{right:14px;left:14px;bottom:86px;width:auto;max-width:none;height:min(560px, calc(100svh - 118px))}
  .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}
}
