/* Override these variables in the site theme to adapt the widget. */
#site-ai-widget-container {
    --site-ai-accent: #175cd3;
    --site-ai-accent-hover: #1248a6;
    --site-ai-bottom: 24px;
    --site-ai-right: 24px;
    --site-ai-keyboard-offset: 0px;
    position: fixed; right: var(--site-ai-right);
    bottom: calc(var(--site-ai-bottom) + env(safe-area-inset-bottom, 0px) + var(--site-ai-keyboard-offset));
    z-index: 9999; color: #182230; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 15px; line-height: 1.5; text-align: left;
}
#site-ai-widget-container *, #site-ai-widget-container *::before, #site-ai-widget-container *::after { box-sizing: border-box; }
#site-ai-widget-container [hidden] { display: none !important; }
#site-ai-widget-container button, #site-ai-widget-container textarea { font: inherit; letter-spacing: normal; text-transform: none; margin: 0; }
#site-ai-widget-container button { cursor: pointer; min-height: 44px; }
#site-ai-widget-container button:focus-visible, #site-ai-widget-container a:focus-visible, #site-ai-widget-container summary:focus-visible {
    outline: 3px solid #f5b942; outline-offset: 3px;
}
#site-ai-toggle-btn {
    display: flex; align-items: center; gap: 10px; padding: 13px 20px;
    border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: var(--site-ai-accent);
    color: #fff; font-weight: 600; box-shadow: 0 6px 24px rgba(16,24,40,.2); transition: background .15s, transform .15s;
}
#site-ai-toggle-btn:hover { background: var(--site-ai-accent-hover); transform: translateY(-2px); }
#site-ai-widget-container svg { width: 22px; height: 22px; flex-shrink: 0; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; }
#site-ai-chat-window {
    position: absolute; right: 0; bottom: 72px; width: 400px;
    height: min(620px, calc(var(--site-ai-viewport-height, 100dvh) - 124px));
    max-width: calc(100vw - 32px); min-height: 260px;
    display: flex; flex-direction: column; overflow: hidden; border: 1px solid #e4e7ec;
    background: #fff; border-radius: 20px; box-shadow: 0 16px 56px rgba(16,24,40,.18);
}
#site-ai-widget-container .site-ai-header { display: flex; align-items: center; gap: 12px; padding: 18px; background: #fff; border-bottom: 1px solid #e4e7ec; }
#site-ai-widget-container .site-ai-avatar { display: grid; place-items: center; width: 44px; height: 44px; background: #eff4ff; color: var(--site-ai-accent); border-radius: 14px; flex-shrink: 0; }
#site-ai-widget-container .site-ai-header-copy { flex: 1; min-width: 0; }
#site-ai-widget-container .site-ai-title { display: block; font-size: 16px; font-weight: 700; color: #101828; }
#site-ai-widget-container .site-ai-subtitle { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #475467; }
#site-ai-widget-container .site-ai-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #175cd3; }
#site-ai-close-btn { display: grid; place-items: center; background: transparent; color: #475467; border: 0; border-radius: 10px; width: 44px; padding: 0; }
#site-ai-close-btn:hover { background: #f2f4f7; color: #101828; }
#site-ai-chat-messages { flex: 1; min-height: 0; padding: 20px 16px; overflow-y: auto; overscroll-behavior: contain; background: #f8fafc; display: flex; flex-direction: column; gap: 16px; }
#site-ai-widget-container .site-ai-message { max-width: 92%; width: fit-content; padding: 12px 14px; border-radius: 16px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
#site-ai-widget-container .ai-message { align-self: flex-start; background: #fff; border: 1px solid #e4e7ec; border-bottom-left-radius: 4px; color: #182230; }
#site-ai-widget-container .user-message { align-self: flex-end; background: var(--site-ai-accent); color: #fff; border-bottom-right-radius: 4px; }
#site-ai-widget-container .site-ai-speaker { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
#site-ai-widget-container .ai-message .site-ai-speaker { color: #475467; }
#site-ai-widget-container .site-ai-message-text { white-space: pre-wrap; }
#site-ai-widget-container .site-ai-sources { border-top: 1px solid #e4e7ec; margin-top: 12px; padding-top: 10px; font-size: 12px; }
#site-ai-widget-container .site-ai-sources summary { cursor: pointer; color: #344054; font-weight: 600; padding: 3px 0; }
#site-ai-widget-container .site-ai-sources ul { padding: 0 0 0 18px; margin: 8px 0 0; }
#site-ai-widget-container .site-ai-sources li { margin: 6px 0; }
#site-ai-widget-container .site-ai-sources a { color: #1248a6; text-decoration: underline; text-underline-offset: 2px; }
#site-ai-widget-container .site-ai-source-page { color: #475467; }
#site-ai-widget-container .site-ai-error { border-color: #f5c9a1; background: #fffaeb; }
#site-ai-widget-container .site-ai-loading { color: #475467; }
#site-ai-widget-container .site-ai-dots { display: flex; gap: 4px; margin-top: 8px; }
#site-ai-widget-container .site-ai-dots i { width: 5px; height: 5px; background: #667085; border-radius: 50%; animation: site-ai-pulse 1.2s infinite; }
#site-ai-widget-container .site-ai-dots i:nth-child(2) { animation-delay: .15s; }
#site-ai-widget-container .site-ai-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes site-ai-pulse { 0%, 80%, 100% { opacity: .4; } 40% { opacity: 1; } }
#site-ai-chat-form { padding: 14px 16px 10px; border-top: 1px solid #e4e7ec; background: #fff; }
#site-ai-widget-container .site-ai-input-area { display: flex; gap: 8px; align-items: flex-end; }
#site-ai-user-input { flex: 1; width: 100%; min-height: 46px; max-height: 112px; resize: none; padding: 11px 12px; border: 1px solid #98a2b3; border-radius: 12px; background: #fff; color: #101828; line-height: 1.4; box-shadow: none; }
#site-ai-user-input::placeholder { color: #667085; opacity: 1; }
#site-ai-user-input:focus { outline: 2px solid var(--site-ai-accent); outline-offset: 2px; }
#site-ai-send-btn { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 12px; color: #fff; background: var(--site-ai-accent); flex-shrink: 0; }
#site-ai-send-btn:hover:not(:disabled) { background: var(--site-ai-accent-hover); }
#site-ai-send-btn:disabled { background: #e4e7ec; color: #667085; cursor: not-allowed; }
#site-ai-widget-container .site-ai-input-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 7px; color: #475467; font-size: 11px; }
#site-ai-widget-container .site-ai-limit { color: #b42318; font-weight: 700; }
#site-ai-widget-container .site-ai-disclaimer { margin: 0; padding: 0 16px 12px; text-align: center; font-size: 11px; color: #475467; background: #fff; }
#site-ai-widget-container .site-ai-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; }
@media (max-width: 480px) {
    #site-ai-widget-container { --site-ai-bottom: 16px; --site-ai-right: 16px; }
    #site-ai-widget-container.site-ai-open { right: 10px; left: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px) + var(--site-ai-keyboard-offset)); }
    #site-ai-widget-container.site-ai-open #site-ai-toggle-btn { display: none; }
    #site-ai-chat-window { position: relative; bottom: auto; width: 100%; max-width: none; min-height: 0; height: calc(var(--site-ai-viewport-height, 100dvh) - 24px - env(safe-area-inset-bottom, 0px)); border-radius: 16px; }
    #site-ai-user-input { font-size: 16px; }
    #site-ai-widget-container .site-ai-input-hint { display: none; }
    #site-ai-widget-container .site-ai-input-meta { justify-content: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
    #site-ai-widget-container *, #site-ai-widget-container *::before, #site-ai-widget-container *::after { animation: none !important; transition: none !important; }
}
