.chat-entry[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.chat-entry { position: fixed; z-index: 25; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 12px; }
.chat-invite { max-width: 210px; padding: 12px 15px; border: 1px solid rgba(5,11,16,.14); background: #fff; box-shadow: 0 10px 34px rgba(5,11,16,.16); color: var(--ink); font: 700 12px/1.35 Manrope, Arial, sans-serif; }
.chat-launcher { position: relative; width: 68px; height: 68px; flex: 0 0 68px; overflow: hidden; border: 3px solid #fff; border-radius: 50%; padding: 0; background: var(--ink); box-shadow: 0 12px 34px rgba(5,11,16,.28); cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.chat-launcher:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 16px 40px rgba(5,11,16,.34); }
.chat-launcher:focus-visible { outline: 3px solid var(--cyan); outline-offset: 3px; }
.chat-launcher img { width: 100%; height: 100%; object-fit: cover; }
.chat-launcher::after { content: ''; position: absolute; right: 4px; bottom: 4px; width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: #2db875; }
.chat-entry.is-open { visibility: hidden; }
.chat-panel { position: fixed; z-index: 26; right: 24px; bottom: 24px; width: min(390px, calc(100vw - 32px)); height: min(650px, calc(100vh - 48px)); display: grid; grid-template-rows: auto 1fr auto; overflow: hidden; border: 1px solid rgba(5,11,16,.16); background: #f8fafb; box-shadow: 0 22px 70px rgba(5,11,16,.3); }
.chat-panel[hidden] { display: none; }
.chat-header { min-height: 82px; padding: 15px 16px; display: flex; align-items: center; gap: 12px; background: var(--ink); color: #fff; }
.chat-avatar { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; object-fit: cover; }
.chat-heading { min-width: 0; flex: 1; }
.chat-heading strong { display: block; font: 800 15px/1.25 Manrope, Arial, sans-serif; }
.chat-heading span { display: block; margin-top: 3px; color: #b9c7cc; font: 500 11px/1.35 Manrope, Arial, sans-serif; }
.chat-close { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); background: transparent; color: #fff; font-size: 25px; line-height: 1; cursor: pointer; }
.chat-close:hover { border-color: var(--cyan); color: var(--cyan); }
.chat-body { overflow-y: auto; padding: 18px 16px; scroll-behavior: smooth; }
.chat-message { max-width: 88%; margin: 0 0 12px; padding: 12px 14px; font: 500 13px/1.55 Manrope, Arial, sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-message.assistant { margin-right: auto; border-left: 3px solid var(--cyan-dark); background: #fff; color: var(--ink); }
.chat-message.user { margin-left: auto; background: var(--ink); color: #fff; }
.chat-message.error { border-left-color: #c4473d; background: #fff0ed; color: #7a211b; }
.chat-handoff { display: inline-flex; margin: 0 0 14px; padding: 10px 12px; background: var(--cyan); color: var(--ink); font: 800 11px Manrope, Arial, sans-serif; text-decoration: none; }
.chat-suggestions { margin: 6px 0 15px; display: flex; flex-wrap: wrap; gap: 7px; }
.chat-suggestions button { border: 1px solid rgba(5,11,16,.18); padding: 9px 10px; background: #fff; color: var(--ink); text-align: left; font: 700 11px/1.35 Manrope, Arial, sans-serif; cursor: pointer; }
.chat-suggestions button:hover { border-color: var(--cyan-dark); background: #e8f7f8; }
.chat-security { margin: 8px 0 4px; padding: 12px; border: 1px solid var(--line); background: #fff; }
.chat-security p { margin: 0 0 10px; color: var(--muted); font: 600 11px/1.5 Manrope, Arial, sans-serif; }
.chat-turnstile { min-height: 65px; overflow: hidden; }
.chat-turnstile iframe { max-width: 100%; }
.chat-composer { padding: 12px; border-top: 1px solid var(--line); background: #fff; }
.chat-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.chat-form textarea { min-width: 0; min-height: 46px; max-height: 110px; resize: none; border: 1px solid rgba(5,11,16,.2); padding: 12px; background: #fff; color: var(--ink); font: 500 13px/1.45 Manrope, Arial, sans-serif; }
.chat-form textarea:focus { outline: 2px solid var(--cyan-dark); outline-offset: 1px; }
.chat-send { min-width: 48px; border: 0; padding: 0 13px; background: var(--ink); color: #fff; font-size: 19px; cursor: pointer; }
.chat-send:hover:not(:disabled) { background: var(--cyan-dark); }
.chat-send:disabled, .chat-form textarea:disabled { cursor: not-allowed; opacity: .55; }
.chat-note { min-height: 16px; margin: 7px 2px 0; color: var(--muted); font: 600 10px/1.4 Manrope, Arial, sans-serif; }
.chat-typing { display: inline-flex; gap: 4px; }
.chat-typing i { width: 5px; height: 5px; border-radius: 50%; background: var(--cyan-dark); animation: chat-bounce .8s infinite alternate; }
.chat-typing i:nth-child(2) { animation-delay: .18s; }
.chat-typing i:nth-child(3) { animation-delay: .36s; }
@keyframes chat-bounce { to { transform: translateY(-5px); } }
@media (max-width: 600px) {
  .chat-entry { right: 14px; bottom: 14px; }
  .chat-invite { display: none; }
  .chat-launcher { width: 60px; height: 60px; flex-basis: 60px; }
  .chat-panel { inset: auto 8px 8px; width: calc(100vw - 16px); height: min(680px, calc(100dvh - 16px)); }
}
@media (max-height: 560px) and (orientation: landscape) {
  .chat-panel { top: 8px; bottom: 8px; height: auto; }
  .chat-header { min-height: 66px; }
}
@media (prefers-reduced-motion: reduce) {
  .chat-launcher, .chat-body { transition: none; scroll-behavior: auto; }
  .chat-typing i { animation: none; }
}