:root { --chat-blue: #0b78b2; --chat-ink: #102a43; --chat-line: #cdeafa; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.chatbot-widget { position: fixed; right: 24px; bottom: 24px; z-index: 20; font-family: ui-rounded, "Avenir Next", Avenir, "Segoe UI", sans-serif; }
.chatbot-launcher { display: inline-flex; align-items: center; gap: 10px; min-height: 54px; border: 0; border-radius: 999px; padding: 0 18px; cursor: pointer; color: #fff; background: var(--chat-blue); box-shadow: 0 14px 34px rgba(7, 89, 133, .28); font: inherit; font-size: .92rem; font-weight: 850; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.chatbot-launcher:hover { transform: translateY(-2px); background: #066a9f; box-shadow: 0 17px 38px rgba(7, 89, 133, .34); }
.chatbot-launcher:focus-visible, .chatbot-close:focus-visible, .chatbot-suggestion:focus-visible, .chatbot-form textarea:focus-visible, .chatbot-send:focus-visible { outline: 3px solid #38bdf8; outline-offset: 3px; }
.chatbot-icon { width: 21px; height: 21px; flex: 0 0 auto; }
.chatbot-panel { position: absolute; right: 0; bottom: 68px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: min(390px, calc(100vw - 30px)); height: min(560px, calc(100dvh - 110px)); overflow: hidden; border: 1px solid var(--chat-line); border-radius: 20px; color: var(--chat-ink); background: #fff; box-shadow: 0 24px 70px rgba(18, 80, 119, .24); }
.chatbot-panel[hidden] { display: none; }
.chatbot-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 16px 14px; color: #fff; background: #075985; }
.chatbot-header-title { display: grid; gap: 1px; }
.chatbot-header-title strong { font-size: .98rem; letter-spacing: -.015em; }
.chatbot-header-title span { color: #cceeff; font-size: .76rem; }
.chatbot-close { width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.4); border-radius: 10px; cursor: pointer; color: #fff; background: transparent; font: inherit; font-size: 1.35rem; line-height: 1; }
.chatbot-close:hover { background: rgba(255,255,255,.12); }
.chatbot-conversation { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 0; background: #f5fbff; }
.chatbot-messages { display: flex; flex-direction: column; gap: 11px; min-height: 0; overflow-y: auto; padding: 16px; }
.chatbot-message { max-width: 88%; padding: 10px 12px; border-radius: 14px; font-size: .88rem; line-height: 1.45; overflow-wrap: anywhere; white-space: pre-wrap; }
.chatbot-message.assistant { align-self: flex-start; border: 1px solid #d8ebf5; border-top-left-radius: 4px; color: #294e69; background: #fff; }
.chatbot-message.user { align-self: flex-end; border-top-right-radius: 4px; color: #fff; background: var(--chat-blue); }
.chatbot-message.typing { display: inline-flex; align-items: center; gap: 4px; width: max-content; min-width: 54px; }
.chatbot-message.typing span { width: 6px; height: 6px; border-radius: 50%; background: #5a7a94; animation: chatbot-pulse 1.2s infinite ease-in-out; }
.chatbot-message.typing span:nth-child(2) { animation-delay: .15s; }.chatbot-message.typing span:nth-child(3) { animation-delay: .3s; }
@keyframes chatbot-pulse { 0%, 60%, 100% { opacity: .35; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-2px); } }
.chatbot-suggestions { display: flex; gap: 7px; overflow-x: auto; padding: 0 16px 13px; scrollbar-width: thin; }
.chatbot-suggestion { flex: 0 0 auto; border: 1px solid #a9dff6; border-radius: 999px; padding: 7px 10px; cursor: pointer; color: #075985; background: #fff; font: inherit; font-size: .74rem; font-weight: 750; }
.chatbot-suggestion:hover { background: #e8f7fe; }
.chatbot-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; padding: 13px 16px 8px; border-top: 1px solid #d8ebf5; background: #fff; }
.chatbot-form textarea { min-height: 44px; max-height: 86px; width: 100%; resize: vertical; border: 1px solid #a9dff6; border-radius: 12px; padding: 11px; color: var(--chat-ink); background: #fff; font: inherit; font-size: .86rem; line-height: 1.35; }
.chatbot-send { align-self: end; min-width: 43px; height: 43px; border: 0; border-radius: 12px; cursor: pointer; color: #fff; background: var(--chat-blue); font: inherit; font-weight: 850; }
.chatbot-send:hover { background: #066a9f; }.chatbot-send:disabled, .chatbot-form textarea:disabled, .chatbot-suggestion:disabled { cursor: not-allowed; opacity: .58; }
.chatbot-privacy { margin: 0; padding: 0 16px 14px; color: #55718d; background: #fff; font-size: .68rem; line-height: 1.35; }
.chatbot-privacy a { color: #075985; font-weight: 750; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 560px) { .chatbot-widget { right: 12px; bottom: 12px; }.chatbot-launcher { min-height: 50px; padding: 0 15px; }.chatbot-panel { bottom: 62px; width: min(390px, calc(100vw - 24px)); height: min(560px, calc(100dvh - 86px)); }.chatbot-message { max-width: 92%; } }
@media (prefers-reduced-motion: reduce) { .chatbot-launcher { transition: none; }.chatbot-message.typing span { animation: none; } }
