/* Chat Widget - Override any conflicting Drupal styles */
.siva-chat-widget {
    position: fixed !important;
    bottom: 76px !important;
    right: 15px !important;
    z-index: 9999 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    color: #24324c !important;
}
.siva-chat-widget * {
    box-sizing: border-box !important;
}
.siva-chat-widget button svg {
    width: 18px !important;
    height: 18px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}
.siva-chat-widget p {
    margin: 0 !important;
    padding: 0 !important;
}
.siva-chat-toggle {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #243768, #3d3167) !important;
    border: 1px solid #7868b5 !important;
    cursor: pointer !important;
    box-shadow: 0 5px 18px rgba(30, 41, 91, 0.16) !important;
    display: grid !important;
    place-items: center !important;
    transition: transform 0.2s ease !important;
    color: white !important;
    margin: 0 !important;
    padding: 0 !important;
    outline: none !important;
    text-decoration: none !important;
    position: relative !important;
}
.siva-chat-toggle:hover {
    transform: scale(1.05) !important;
}
.siva-chat-toggle:focus-visible,
.siva-chat-widget button:focus-visible {
    outline: 2px solid #a99ae8 !important;
    outline-offset: 3px !important;
}
.siva-chat-window {
    position: absolute !important;
    bottom: 58px !important;
    right: 0 !important;
    width: 400px !important;
    height: 560px !important;
    max-width: calc(100vw - 32px) !important;
    max-height: calc(100vh - 160px) !important;
    max-height: calc(100dvh - 160px) !important;
    background: #f8f9fc !important;
    border-radius: 14px !important;
    border: 1px solid #dce2ec !important;
    box-shadow: 0 0 0 1px #ffffffb0 inset, 0 0 6px 0 #6c5cff1b, 0 0 14px 2px #548dff11, 0 0 30px 6px #9b5dff0e, 0 18px 50px -10px #12234a30, 0 2px 7px #12234a0a !important;
    display: none !important;
    flex-direction: column !important;
    overflow: hidden !important;
}
.siva-chat-window.siva-open {
    display: flex !important;
    animation: siva-chatGlow 5s ease-in-out 1 !important;
}
@keyframes siva-chatGlow {
    0%, 100% { box-shadow: 0 0 0 1px #ffffffb0 inset, 0 0 6px 0 #6c5cff1b, 0 0 14px 2px #548dff11, 0 0 30px 6px #9b5dff0e, 0 18px 50px -10px #12234a30, 0 2px 7px #12234a0a; }
    50% { box-shadow: 0 0 0 1px #ffffffb0 inset, 0 0 8px 1px #6c5cff21, 0 0 18px 3px #548dff16, 0 0 36px 8px #9b5dff13, 0 18px 50px -10px #12234a30, 0 2px 7px #12234a0a; }
}
/* Header banner */
.siva-chat-header {
    position: relative !important;
    z-index: 2 !important;
    isolation: isolate !important;
    background: linear-gradient(110deg, #08142e, #1a2454, #23477e) !important;
    color: white !important;
    padding: 13px 13px 10px !important;
    display: block !important;
    flex-shrink: 0 !important;
}
.siva-chat-aura-wrap {
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;
    z-index: -1 !important;
    pointer-events: none !important;
}
.siva-chat-aura-wrap .siva-chat-aura {
    fill: none !important;
    stroke: currentColor !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: -1 !important;
    pointer-events: none !important;
    stroke-width: 1 !important;
}
.siva-chat-aura .siva-wave {
    animation: siva-auraDrift 5s ease-in-out 1 forwards !important;
    transform-origin: center !important;
}
.siva-chat-aura .siva-wave.siva-second {
    animation-duration: 5s !important;
    animation-delay: 0s !important;
    animation-direction: reverse !important;
}
.siva-chat-aura .siva-wave.siva-third {
    animation-duration: 5s !important;
    animation-delay: 0s !important;
}
.siva-chat-aura .siva-amber-path {
    animation: siva-amberDrift 5s ease-in-out 1 forwards !important;
}
@keyframes siva-auraDrift {
    from { transform: translate(-8px, -4px) rotate(-2deg); }
    to { transform: translate(8px, 6px) rotate(2deg); }
}
@keyframes siva-amberDrift {
    from { d: path('M-100 70C100 130 300 10 480 95'); }
    to { d: path('M-100 90C100 70 300 150 480 55'); }
}
.siva-header-top {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    width: 100% !important;
}
.siva-brand {
    position: relative !important;
    padding-left: 5px !important;
}
.siva-brand::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 3px !important;
    bottom: 2px !important;
    width: 1px !important;
    background: linear-gradient(180deg, #bcd9ffcc, #bcd9ff20) !important;
}
.siva-chat-header h3 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 21px !important;
    font-weight: 700 !important;
    letter-spacing: -0.5px !important;
    color: white !important;
    text-align: left !important;
    line-height: 1 !important;
    font-family: Arial, Helvetica, sans-serif !important;
}
.siva-chat-widget .siva-brand p {
    font-size: 12px !important;
    margin: 4px 0 0 !important;
    color: #d6def1 !important;
}
.siva-chat-controls {
    display: flex !important;
    flex-direction: row !important;
    gap: 6px !important;
    margin-top: 12px !important;
    width: 100% !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
}
.siva-chat-controls p {
    margin: 0 !important;
    display: flex !important;
}
/* Icon buttons */
.siva-chat-close,
.siva-new-chat-btn,
.siva-delete-chat-btn {
    display: grid !important;
    place-items: center !important;
    width: 26px !important;
    height: 26px !important;
    border: 1px solid #ffffff28 !important;
    border-radius: 6px !important;
    background: #ffffff0b !important;
    color: white !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    transition: background-color 0.2s ease !important;
    pointer-events: auto !important;
}
.siva-chat-close {
    border: 0 !important;
}
.siva-chat-close svg,
.siva-new-chat-btn svg,
.siva-delete-chat-btn svg {
    width: 13px !important;
    height: 13px !important;
}
.siva-chat-close:hover,
.siva-new-chat-btn:hover:not(:disabled),
.siva-delete-chat-btn:hover:not(:disabled) {
    background: #ffffff23 !important;
}
.siva-new-chat-btn:disabled,
.siva-delete-chat-btn:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}
/* Conversation selector */
.siva-wc-session-select {
    flex: 1 !important;
    min-width: 0 !important;
    position: relative !important;
    display: flex !important;
}
.siva-wc-session-selected {
    flex: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    background: #ffffff0b !important;
    border: 1px solid #ffffff28 !important;
    color: #ebeffb !important;
    border-radius: 6px !important;
    padding: 0 22px 0 8px !important;
    font-size: 12px !important;
    line-height: 26px !important;
    cursor: pointer !important;
    position: relative !important;
}
.siva-wc-session-selected::after {
    content: "▾";
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) rotate(0deg);
    font-size: 11px !important;
    color: white !important;
    pointer-events: none !important;
    transition: transform 0.2s ease !important;
}
.siva-wc-session-select.siva-open .siva-wc-session-selected::after {
    transform: translateY(-50%) rotate(180deg);
}
.siva-wc-session-options {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    background: #1a2454 !important;
    border: 1px solid #ffffff28 !important;
    border-radius: 6px !important;
    margin-top: 4px !important;
    max-height: 200px !important;
    overflow-y: auto !important;
    display: none !important;
    z-index: 10000 !important;
    white-space: normal !important;
}
.siva-wc-session-select.siva-open .siva-wc-session-options {
    display: block !important;
}
.siva-wc-session-option {
    padding: 6px 8px !important;
    color: #ebeffb !important;
    font-size: 12px !important;
    cursor: pointer !important;
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    pointer-events: auto !important;
}
.siva-wc-session-option:hover {
    background: #ffffff23 !important;
}
.siva-wc-session-option.siva-active {
    background: #ffffff33 !important;
}
.siva-session-checkbox {
    margin-left: 8px !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}
/* Messages */
.siva-chat-messages {
    flex: 1 !important;
    padding: 14px 12px !important;
    overflow-y: auto !important;
    background: #f8f9fc !important;
    max-height: none !important;
    min-height: 0 !important;
    scrollbar-width: thin !important;
}
.siva-chat-messages::-webkit-scrollbar {
    width: 6px !important;
}
.siva-chat-messages::-webkit-scrollbar-track {
    background: transparent !important;
}
.siva-chat-messages::-webkit-scrollbar-thumb {
    background: #c9d0dc !important;
    border-radius: 3px !important;
}
.siva-chat-messages::-webkit-scrollbar-thumb:hover {
    background: #a9b2c2 !important;
}
.siva-chat-widget .siva-message {
    margin-bottom: 13px !important;
    max-width: 100% !important;
    word-wrap: break-word !important;
    display: block !important;
    float: none !important;
    clear: both !important;
}
.siva-message::before {
    display: block !important;
    font-size: 12px !important;
    color: #5f6b80 !important;
    margin: 0 0 5px 2px !important;
}
.siva-message.siva-bot::before {
    content: "Siva";
}
.siva-message.siva-user::before {
    content: "You";
    text-align: right !important;
    margin: 0 2px 5px 0 !important;
}
.siva-message-bubble {
    width: fit-content !important;
    max-width: 94% !important;
    padding: 10px 11px !important;
    font-size: 13px !important;
    line-height: 1.65 !important;
    display: block !important;
    overflow-wrap: anywhere !important;
    word-wrap: break-word !important;
    margin: 0 !important;
}
.siva-message-bubble p {
    margin: 0 !important;
    font-size: inherit !important;
    line-height: inherit !important;
}
.siva-message.siva-user .siva-message-bubble {
    margin-left: auto !important;
    background: #283464 !important;
    border: 1px solid #283464 !important;
    color: white !important;
    border-radius: 11px 3px 11px 11px !important;
    text-align: left !important;
}
.siva-message.siva-bot .siva-message-bubble {
    background: white !important;
    color: #46516a !important;
    border: 1px solid #e1e6ef !important;
    border-radius: 3px 11px 11px 11px !important;
}
.siva-typing-indicator {
    display: none !important;
    width: fit-content !important;
    padding: 10px 11px !important;
    background: white !important;
    border-radius: 3px 11px 11px 11px !important;
    margin-bottom: 13px !important;
    border: 1px solid #e1e6ef !important;
    float: none !important;
    clear: both !important;
}
.siva-typing-dots {
    display: flex !important;
    gap: 4px !important;
    align-items: center !important;
    justify-content: flex-start !important;
}
.siva-typing-dot {
    width: 6px !important;
    height: 6px !important;
    font-size: 0 !important;
    border-radius: 50% !important;
    background: #b6bdcc !important;
    animation: siva-typingDot 1.4s infinite !important;
    flex-shrink: 0 !important;
}
.siva-typing-dot:nth-child(2) {
    animation-delay: 0.2s !important;
}
.siva-typing-dot:nth-child(3) {
    animation-delay: 0.4s !important;
}
@keyframes siva-typingDot {
    0%, 60%, 100% { transform: translateY(0); }
    30% { transform: translateY(-5px); }
}
/* Footer / composer */
.siva-chat-input-container {
    border-top: 1px solid #e3e7ef !important;
    padding: 10px !important;
    background: white !important;
    flex-shrink: 0 !important;
}
.siva-chat-input-form {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
}
.siva-chat-widget .siva-chat-input-p {
    display: flex !important;
    flex-direction: row !important;
    gap: 5px !important;
    align-items: flex-end !important;
    width: 100% !important;
    padding: 4px 4px 4px 14px !important;
    border: 1px solid #dfe4ed !important;
    border-radius: 19px !important;
}
.siva-chat-widget .siva-chat-input-p:focus-within {
    border-color: #5b4aa8 !important;
}
.siva-chat-input {
    flex: 1 !important;
    min-width: 0 !important;
    height: 28px !important;
    padding: 6px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    font-size: 13px !important;
    outline: none !important;
    resize: none !important;
    font-family: inherit !important;
    background: transparent !important;
    color: #26354f !important;
    min-height: 28px !important;
    max-height: 68px !important;
    line-height: 16px !important;
    box-shadow: none !important;
    margin: 0 !important;
}
.siva-chat-input::placeholder {
    color: #657086 !important;
}
.siva-chat-send {
    width: 27px !important;
    height: 27px !important;
    border-radius: 50% !important;
    background: #3d2f6b !important;
    border: 0 !important;
    color: white !important;
    cursor: pointer !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    transition: opacity 0.2s ease !important;
}
.siva-chat-send svg {
    width: 14px !important;
    height: 14px !important;
}
.siva-chat-send:hover:not(:disabled) {
    background: #4a3a80 !important;
}
.siva-chat-send:disabled {
    opacity: 0.4 !important;
    cursor: default !important;
}
.siva-chat-footer-meta {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 10px !important;
}
.siva-quota-widget {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    min-width: 0 !important;
    color: #6b7589 !important;
}
.siva-quota-widget.siva-is-hidden {
    display: none !important;
}
.siva-quota-widget.siva-is-limit-reached {
    color: #7a2f10 !important;
}
/* Circle that fills up with daily usage */
.siva-quota-ring {
    --quota-progress: 0deg;
    --quota-track: rgba(40, 52, 100, 0.14);
    --quota-fill: #4a3a80;
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    background: conic-gradient(var(--quota-fill) var(--quota-progress), var(--quota-track) 0deg) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    position: relative !important;
}
.siva-quota-widget.siva-is-unavailable .siva-quota-ring {
    --quota-fill: #8a90a6;
    --quota-track: rgba(138, 144, 166, 0.18);
}
.siva-quota-widget.siva-is-limit-reached .siva-quota-ring {
    --quota-fill: #c7541a;
    --quota-track: rgba(199, 84, 26, 0.16);
}
.siva-quota-ring::after {
    content: "" !important;
    position: absolute !important;
    inset: 4px !important;
    background: white !important;
    border-radius: 50% !important;
}
.siva-quota-ring-value {
    display: none !important;
}
.siva-quota-copy {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: baseline !important;
    gap: 6px !important;
}
.siva-quota-primary {
    font-size: 12px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
.siva-quota-secondary {
    font-size: 12px !important;
    color: #5f6b80 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
}
.siva-quota-widget.siva-is-limit-reached .siva-quota-secondary {
    color: #8f3d15 !important;
}
.siva-char-count {
    margin-left: auto !important;
    font-size: 12px !important;
    color: #5f6b80 !important;
    text-align: right !important;
}
.siva-error-message {
    color: #dc3545 !important;
    font-size: 11px !important;
    margin-top: 8px !important;
    text-align: center !important;
    display: none !important;
}
/* Mobile responsiveness */
@media (min-width: 768px) {
    .siva-chat-widget {
        bottom: 92px !important;
        right: 30px !important;
    }
}
@media (max-width: 480px) {
    .siva-chat-window {
        width: calc(100vw - 32px) !important;
        height: 70vh !important;
        min-width: 0 !important;
        min-height: 0 !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .siva-chat-widget * {
        animation: none !important;
    }
}
/* Streaming cursor animation */
.siva-streaming-cursor {
    animation: siva-blink 1s infinite !important;
    color: #3d2f6b !important;
    font-weight: bold !important;
}
@keyframes siva-blink {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}
/* Citation styles */
.siva-citations-container {
    margin-top: 10px !important;
    padding-top: 10px !important;
    padding-bottom: 4px !important;
    border-top: 1px solid #e1e6ef !important;
    font-size: 12px !important;
}
.siva-citations-header {
    font-weight: 600 !important;
    color: #5f6b80 !important;
    margin-bottom: 8px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    font-size: 11px !important;
}
.siva-citation-list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
}
.siva-citation-item {
    background: #fff !important;
    border-radius: 8px !important;
    padding: 8px 10px !important;
    border: 1px solid #e1e6ef !important;
    transition: all 0.2s ease !important;
    position: relative !important;
    cursor: pointer !important;
}
.siva-citation-item:hover {
    background: #f8f9fc !important;
    border-color: #9e8fd1 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 4px rgba(18, 35, 74, 0.1) !important;
}
.siva-citation-item[data-tooltip]:hover::after {
    content: attr(data-tooltip) !important;
    position: absolute !important;
    bottom: 100% !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: rgba(8, 20, 46, 0.95) !important;
    color: white !important;
    padding: 8px 12px !important;
    border-radius: 6px !important;
    font-size: 11px !important;
    white-space: normal !important;
    max-width: 300px !important;
    width: max-content !important;
    z-index: 10000 !important;
    margin-bottom: 8px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
    line-height: 1.4 !important;
    text-align: left !important;
}
.siva-citation-item[data-tooltip]:hover::before {
    content: '' !important;
    position: absolute !important;
    bottom: 100% !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    border: 6px solid transparent !important;
    border-top-color: rgba(8, 20, 46, 0.95) !important;
    margin-bottom: 2px !important;
    z-index: 10000 !important;
}
.siva-citation-link {
    color: #283464 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    line-height: 1.3 !important;
}
.siva-citation-number {
    background: #283464 !important;
    color: white !important;
    width: 16px !important;
    height: 16px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 11px !important;
    flex-shrink: 0 !important;
    font-weight: bold !important;
}
.siva-citation-text {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    max-width: 100% !important;
    font-size: 12px !important;
}

.siva-chat-status {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    color: #5f6b80 !important;
}
.siva-status-dots {
    display: inline-flex !important;
    gap: 3px !important;
}
.siva-status-dot {
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #6c5cff, #548dff) !important;
    animation: siva-statusPulse 1.2s ease-in-out infinite !important;
}
.siva-status-dot:nth-child(2) {
    animation-delay: 0.15s !important;
}
.siva-status-dot:nth-child(3) {
    animation-delay: 0.3s !important;
}
.siva-status-text {
    color: #46516a !important;
    animation: siva-statusFade 1.6s ease-in-out infinite !important;
}
@keyframes siva-statusPulse {
    0%, 80%, 100% { opacity: 0.3; transform: scale(0.7); }
    40% { opacity: 1; transform: scale(1); }
}
@keyframes siva-statusFade {
    0%, 100% { opacity: 0.55; }
    50% { opacity: 1; }
}
.siva-citations-header {
    cursor: pointer !important;
}

.siva-new-chat-btn[aria-pressed="true"] {
    background: #ffffff38 !important;
    border-color: #ffffff66 !important;
}
