/* ============================================================
   AI assistant widget
   ============================================================ */

.chat-fab{
  position:fixed;right:22px;bottom:22px;z-index:950;
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 20px 14px 16px;border-radius:999px;
  background:var(--navy);color:#fff;font-weight:700;font-size:.94rem;
  box-shadow:0 14px 40px rgba(0,33,77,.4);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);
}
.chat-fab:hover{transform:translateY(-3px);background:var(--blue);box-shadow:0 20px 50px rgba(0,108,180,.45)}
.chat-fab svg{width:21px;height:21px;flex:0 0 auto}
.chat-fab .dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.7);animation:ping 2.4s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}70%{box-shadow:0 0 0 10px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.chat-fab.is-hidden{opacity:0;visibility:hidden;transform:translateY(12px) scale(.94)}

.chat{
  position:fixed;right:22px;bottom:22px;z-index:960;
  width:min(410px,calc(100vw - 32px));height:min(620px,calc(100vh - 44px));
  display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border-radius:22px;border:1px solid var(--line);
  box-shadow:0 30px 80px rgba(11,18,32,.28);
  opacity:0;visibility:hidden;transform:translateY(18px) scale(.97);
  transition:opacity .32s var(--ease),transform .32s var(--ease),visibility .32s;
}
.chat.is-open{opacity:1;visibility:visible;transform:none}

.chat__top{
  display:flex;align-items:center;gap:12px;padding:15px 16px;
  background:linear-gradient(120deg,var(--navy),var(--blue));color:#fff;flex:0 0 auto;
}
.chat__avatar{width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;flex:0 0 auto;padding:4px}
.chat__avatar img{width:100%;height:auto}
.chat__who strong{display:block;font-size:.95rem;font-weight:800;letter-spacing:-.01em}
.chat__who span{display:block;font-size:.76rem;color:rgba(255,255,255,.8);margin-top:1px}
.chat__x{margin-left:auto;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;transition:background .2s}
.chat__x:hover{background:rgba(255,255,255,.18)}
.chat__x svg{width:18px;height:18px}

.chat__log{flex:1 1 auto;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:12px;background:var(--paper-2);scroll-behavior:smooth}
.msg{max-width:86%;padding:12px 15px;border-radius:16px;font-size:.94rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}
.msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:6px;color:var(--ink)}
.msg--me{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:6px}
.msg--err{align-self:flex-start;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:.88rem}

.typing{align-self:flex-start;display:flex;gap:5px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:16px;border-bottom-left-radius:6px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink-45);animation:bob 1.3s infinite}
.typing i:nth-child(2){animation-delay:.18s}
.typing i:nth-child(3){animation-delay:.36s}
@keyframes bob{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}

.chat__chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 12px;background:var(--paper-2)}
.chip{
  padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;
  font-size:.84rem;font-weight:600;color:var(--navy);transition:.2s var(--ease);
}
.chip:hover{border-color:var(--sky);background:var(--sky-050);transform:translateY(-1px)}

.chat__bar{display:flex;gap:9px;padding:12px;border-top:1px solid var(--line);background:#fff;flex:0 0 auto}
.chat__bar textarea{
  flex:1 1 auto;resize:none;border:1px solid var(--line);border-radius:13px;
  padding:11px 13px;font:inherit;font-size:.94rem;line-height:1.45;max-height:110px;
  color:var(--ink);background:var(--paper-2);transition:border-color .2s,background .2s;
}
.chat__bar textarea:focus{outline:0;border-color:var(--sky);background:#fff}
.chat__send{
  width:44px;height:44px;flex:0 0 auto;border-radius:13px;display:grid;place-items:center;
  background:var(--navy);color:#fff;transition:.2s var(--ease);
}
.chat__send:hover:not(:disabled){background:var(--blue);transform:translateY(-1px)}
.chat__send:disabled{opacity:.4;cursor:not-allowed}
.chat__send svg{width:19px;height:19px}
.chat__note{padding:0 12px 11px;font-size:.7rem;color:var(--ink-45);text-align:center;background:#fff;line-height:1.45}

@media (max-width:520px){
  .chat{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0;border:0}
  .chat-fab{right:16px;bottom:16px;padding:13px 18px 13px 15px}
}
@media (prefers-reduced-motion:reduce){
  .chat,.chat-fab,.typing i,.chat-fab .dot{transition:none;animation:none}
}
