/* ── CHAT WIDGET ── */
.chat-launcher{
  /* bottom:88px clears the fixed bottom-nav on mobile (same clearance .toast and .chat-panel
     already use below) — at 24px it visually overlapped the nav bar */
  position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));right:16px;z-index:900;
  width:52px;height:52px;border-radius:50%;
  background:var(--tp);color:var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;cursor:pointer;
  box-shadow:var(--shadow-md);
  transition:transform var(--dur-fast) var(--ease-out);
}
.chat-launcher:hover{transform:scale(1.06)}
@media (min-width:768px){.chat-launcher{bottom:32px;right:32px}}

.chat-panel{
  position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));right:16px;left:16px;z-index:901;
  max-width:380px;height:min(560px,70vh);margin-left:auto;
  background:var(--s1);border:1px solid var(--bd2);border-radius:var(--r-lg);
  box-shadow:0 24px 64px rgba(0,0,0,0.22);
  display:flex;flex-direction:column;overflow:hidden;
  opacity:0;transform:translateY(12px) scale(0.98);pointer-events:none;
  transition:opacity var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-out);
}
.chat-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
@media (min-width:768px){.chat-panel{bottom:96px;right:32px;left:auto;width:380px}}

.chat-panel-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--bd);
  font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--tp);
  flex-shrink:0;
}
.chat-panel-hdr .d-close{width:28px;height:28px}

.chat-messages{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}
.chat-bubble{
  max-width:85%;padding:9px 13px;border-radius:var(--r-md);
  font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;
}
.chat-bubble-user{align-self:flex-end;background:var(--tp);color:var(--bg)}
.chat-bubble-assistant{align-self:flex-start;background:var(--s2);color:var(--tp)}
.chat-bubble-pending{opacity:0.5}

.chat-input-row{display:flex;gap:8px;padding:var(--sp-3);border-top:1px solid var(--bd);flex-shrink:0}
.chat-input{
  flex:1;resize:none;max-height:96px;
  /* 16px min — iOS Safari auto-zooms the viewport on focus for any input below that */
  font:inherit;font-size:16px;color:var(--tp);
  background:var(--s0);border:1px solid var(--bd2);border-radius:var(--r-sm);
  padding:9px 10px;
}
.chat-input:focus-visible{outline:none;border-color:var(--gold)}
.chat-send{
  flex-shrink:0;width:36px;height:36px;border-radius:50%;
  background:var(--gold-bar);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;
  transition:filter var(--dur-fast) var(--ease-out);
}
.chat-send:hover{filter:brightness(1.1)}
.chat-send:disabled{opacity:0.5;cursor:default}
