.chat-launcher { position: fixed; right: 24px; bottom: calc(24px + var(--cookie-bar-offset, 0px)); z-index: 40; display: flex; align-items: center; gap: 10px; border: 0; border-radius: 32px; padding: 15px 21px; background: #111; color: #fff; font: 14px/1.4 var(--sans); box-shadow: 0 4px 22px #0002; }
.chat-launcher svg { width: 20px; height: 20px; }
.chat-panel { position: fixed; inset: auto 24px calc(24px + var(--cookie-bar-offset, 0px)) auto; z-index: 45; width: min(420px, calc(100vw - 32px)); height: min(650px, calc(100dvh - 48px - var(--cookie-bar-offset, 0px))); display: flex; flex-direction: column; background: #fff; color: #111; border: 1px solid #ddd; border-radius: 16px; box-shadow: 0 12px 60px #0002; overflow: hidden; font: 14px/1.6 var(--sans); }
.chat-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 20px 20px 15px; border-bottom: 1px solid var(--line); }
.chat-header h2 { font-size: 19px; letter-spacing: -.025em; margin: 0; line-height: 1.3; }
.chat-header p { font-size: 12px; color: var(--muted); margin: 4px 0 0; }
.chat-icon-button { display: grid; place-items: center; flex: none; background: #f6f6f6; color: #111; width: 34px; height: 34px; border: 0; border-radius: 8px; font-size: 22px; }
.chat-toolbar { display: flex; gap: 14px; justify-content: space-between; padding: 10px 20px; border-bottom: 1px solid var(--line); }
.chat-toolbar button { background: none; border: 0; padding: 2px 0; color: #444; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.chat-feed { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 20px; min-height: 90px; }
.chat-message { max-width: 100%; margin: 0 0 18px; overflow-wrap: anywhere; }
.chat-message small { display: block; font: 11px/1.5 var(--mono); color: #666; margin-bottom: 6px; }
.chat-message p { white-space: pre-wrap; margin: 0; font-size: 14px; line-height: 1.7; }
.chat-message.user { margin-left: 28px; background: #f5f5f5; border-radius: 10px; padding: 11px 14px; }
.chat-suggestions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 2px; }
.chat-suggestions button { border: 1px solid #ddd; border-radius: 7px; background: #fff; color: #333; padding: 8px 10px; font: 12px/1.4 var(--sans); }
.chat-status { min-height: 21px; margin: 0; padding: 0 20px; font-size: 12px; color: var(--muted); }
.chat-form { display: flex; align-items: end; margin: 8px 16px 0; gap: 8px; padding: 9px; border: 1px solid #d5d5d5; border-radius: 10px; }
.chat-form:focus-within { border-color: #777; }
.chat-form textarea { resize: none; flex: 1; min-width: 0; height: 46px; max-height: 90px; border: 0; outline: 0; padding: 3px; background: #fff; color: #111; font: 16px/1.4 var(--sans); }
.chat-send { flex: none; min-width: 42px; min-height: 42px; background: #111; color: #fff; border: 0; border-radius: 7px; font: 13px/1 var(--sans); }
.chat-send:disabled { opacity: .4; }
.chat-disclosure { margin: 9px 20px 16px; font-size: 11px; line-height: 1.5; color: #727272; }
.chat-disclosure a { text-decoration: underline; text-underline-offset: 2px; }
.chat-handoff { flex: none; max-height: 48%; overflow-y: auto; padding: 16px 20px; background: #f7f7f7; border-block: 1px solid var(--line); }
.chat-handoff h3 { font-size: 16px; margin: 0 0 6px; }
.chat-handoff p { font-size: 12px; color: #555; margin: 0 0 10px; }
.chat-contact-links { display: flex; flex-wrap: wrap; gap: 8px; }
.chat-contact-links a, .chat-contact-links button, .chat-copy { padding: 8px 10px; border: 1px solid #ccc; border-radius: 6px; background: #fff; color: #111; font: 12px/1.4 var(--sans); }
.chat-contact-links .chat-live { background: #111; color: #fff; border-color: #111; padding: 11px 14px; display: flex; justify-content: space-between; gap: 22px; }
.chat-live:disabled { background: #eee; color: #777; border-color: #ddd; }
.chat-live[aria-busy="true"] { cursor: progress; }
.chat-handoff .chat-handoff-status { margin: 12px 0 0; padding: 10px 12px; border: 1px solid #d8d8d8; border-radius: 6px; background: #fff; color: #333; line-height: 1.6; }
.chat-disclosure button { border: 0; padding: 0; background: none; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }
.chat-unread { font: 11px/1.3 var(--sans); background: #fff; color: #111; border-radius: 12px; padding: 4px 6px; }
.chat-message .chat-message-meta { margin: 7px 0 0; font: 11px/1.5 var(--sans); color: #888; }
.chat-welcome { font-size: 14px; color: #666; }
.chat-copy { margin-top: 10px; }
.chat-panel :focus-visible { outline: 2px solid #111; outline-offset: 3px; }
@media (max-width: 600px) {
  .chat-launcher { bottom: calc(max(16px, env(safe-area-inset-bottom)) + var(--cookie-bar-offset, 0px)); right: 16px; }
  .chat-panel { inset: auto 8px calc(max(8px, env(safe-area-inset-bottom)) + var(--cookie-bar-offset, 0px)) 8px; width: auto; height: min(650px, calc(100dvh - 16px - env(safe-area-inset-bottom) - var(--cookie-bar-offset, 0px))); }
}
