/* ---------- AI assistant widget ---------- */
/* Floating bottom-right assistant, backed by /api/chat. Uses the site tokens
   in site.css so it stays visually in step with the rest of the design. */

.p2-chat-launcher{position:fixed;bottom:clamp(16px,3vw,26px);right:clamp(16px,3vw,26px);z-index:880;
  display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:999px;
  background:var(--grad);color:#03131b;border:none;cursor:pointer;
  box-shadow:0 10px 30px rgba(2,132,199,.35);transition:transform .25s,box-shadow .25s}
.p2-chat-launcher:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 16px 40px rgba(34,211,238,.45)}
.p2-chat-launcher svg{width:25px;height:25px}
.p2-chat-launcher .p2-chat-icon-close{display:none}
.p2-chat-launcher.open .p2-chat-icon-open{display:none}
.p2-chat-launcher.open .p2-chat-icon-close{display:block}

.p2-chat-panel{position:fixed;bottom:calc(clamp(16px,3vw,26px) + 70px);right:clamp(16px,3vw,26px);z-index:930;
  display:flex;flex-direction:column;width:min(392px,calc(100vw - 32px));height:min(580px,calc(100dvh - 150px));
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.55);opacity:0;transform:translateY(14px) scale(.98);transform-origin:bottom right;
  pointer-events:none;transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.3,1)}
.p2-chat-panel.open{opacity:1;transform:none;pointer-events:auto}

.p2-chat-header{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--surface2);
  border-bottom:1px solid var(--line)}
.p2-chat-header-avatar{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:999px;background:var(--grad);color:#03131b;flex-shrink:0}
.p2-chat-header-avatar svg{width:19px;height:19px}
.p2-chat-header-text{display:flex;flex-direction:column;line-height:1.25}
.p2-chat-header-title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.9rem;color:var(--white)}
.p2-chat-header-status{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:7px}
.p2-chat-header-status::before{content:"";width:6px;height:6px;border-radius:999px;background:var(--cyan);
  box-shadow:0 0 0 3px rgba(34,211,238,.18)}

.p2-chat-messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}
.p2-chat-msg{display:flex;max-width:86%;font-size:.88rem;line-height:1.6}
.p2-chat-msg-bubble{padding:11px 15px;border-radius:14px;white-space:pre-wrap;word-wrap:break-word}
.p2-chat-msg.user{align-self:flex-end}
.p2-chat-msg.user .p2-chat-msg-bubble{background:var(--grad);color:#03131b;font-weight:500;border-bottom-right-radius:5px}
.p2-chat-msg.assistant{align-self:flex-start}
.p2-chat-msg.assistant .p2-chat-msg-bubble{background:var(--surface2);color:var(--silver);
  border:1px solid var(--line);border-bottom-left-radius:5px}

.p2-chat-typing{display:inline-flex;gap:4px;align-items:center;padding:3px 0}
.p2-chat-typing span{width:6px;height:6px;border-radius:999px;background:var(--cyan);animation:p2ChatBounce 1.2s infinite ease-in-out}
.p2-chat-typing span:nth-child(2){animation-delay:.15s}
.p2-chat-typing span:nth-child(3){animation-delay:.3s}
@keyframes p2ChatBounce{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}

.p2-chat-form{display:flex;align-items:flex-end;gap:8px;padding:12px 14px;border-top:1px solid var(--line);
  background:var(--surface)}
.p2-chat-input{flex:1;resize:none;max-height:120px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;
  background:var(--surface2);color:var(--white);font-family:'Inter',sans-serif;font-size:.88rem;line-height:1.5}
.p2-chat-input::placeholder{color:var(--muted)}
.p2-chat-input:focus{outline:none;border-color:var(--line2)}
.p2-chat-send{display:inline-flex;align-items:center;justify-content:center;width:41px;height:41px;flex-shrink:0;
  border:none;border-radius:12px;background:var(--grad);color:#03131b;cursor:pointer;transition:opacity .2s,transform .2s}
.p2-chat-send:hover:not(:disabled){transform:translateY(-1px)}
.p2-chat-send:disabled{opacity:.4;cursor:not-allowed}
.p2-chat-send svg{width:18px;height:18px}

/* The mobile CTA bar owns the bottom edge, so step the launcher above it and
   retract the bar entirely while the panel is open. */
@media(max-width:980px){
  .p2-chat-launcher{width:52px;height:52px;bottom:calc(var(--cta-bar) + 10px + env(safe-area-inset-bottom))}
  .p2-chat-launcher svg{width:22px;height:22px}
  .p2-chat-panel{width:calc(100vw - 24px);height:calc(100dvh - 120px);right:12px;
    bottom:calc(var(--cta-bar) + 4px + env(safe-area-inset-bottom))}
  body.p2-chat-open #stickyCta{transform:translateY(110%)}
}
