/* ============================================
   CSS ISOLATION & RESET
   Prevents theme styles from interfering with chatbot
   ============================================ */

/* Reset all chatbot elements to prevent theme interference */
#mini-chatbot-root {
    all: revert;
    box-sizing: border-box !important;
}

#mini-chatbot-root *:not(.mini-chatbot-window):not(.mini-chatbot-back):not(.mini-chatbot-avatar):not(.mini-chatbot-header-text) {
    /* Use revert to remove theme styles but keep browser defaults */
    all: revert;
    box-sizing: border-box !important;
}

/* Then apply our specific resets */
#mini-chatbot-root * {
    /* Reset typography */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
    word-spacing: normal;

    /* Reset spacing */
    margin: 0;
    padding: 0;

    /* Reset borders */
    border: none;
    outline: none;

    /* Reset other properties that themes commonly override */
    list-style: none;
    vertical-align: baseline;
    text-decoration: none;
}

/* Reset form elements specifically */
#mini-chatbot-root input,
#mini-chatbot-root textarea,
#mini-chatbot-root button,
#mini-chatbot-root select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
}

/* Reset button defaults */
#mini-chatbot-root button {
    cursor: pointer !important;
    background: none !important;
    border: none !important;
}

/* Reset link defaults */
#mini-chatbot-root a {
    text-decoration: none !important;
    color: inherit !important;
}

/* ============================================
   CHATBOT STYLES
   Now apply our actual styles
   ============================================ */

/* Root placement */
#mini-chatbot-root {
    position: fixed !important;
    bottom: 24px !important;
    right: 24px !important;
    z-index: 9999 !important;
    pointer-events: none !important; /* launcher and window will re-enable */

    /* Theme variables - can be overridden via JavaScript */
    --launcher-bg: linear-gradient(135deg, #6b7280, #9ca3af);
    --header-bg: linear-gradient(135deg, #4b5563 0%, #6b7280 50%, #9ca3af 100%);
    --button-primary: #6b7280;
    --button-primary-shadow: rgba(107, 114, 128, 0.45);
    --user-bubble-bg: #6b7280;
}

/* Floating launcher button */
#mini-chatbot-root .mini-chatbot-button {
    pointer-events: auto !important;
    width: 64px !important;
    height: 64px !important;
    border-radius: 999px !important;
    background: var(--launcher-bg) !important;
    box-shadow:
            0 12px 30px rgba(15, 15, 15, 0.55),
            0 0 0 10px rgba(15, 15, 15, 0.1) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    position: relative !important;
}

/* Pulse animation for launcher button */
@keyframes mini-chatbot-pulse {
    0% {
        transform: scale(1);
        box-shadow: 0 12px 30px rgba(15, 15, 15, 0.55),
                    0 0 0 10px rgba(15, 15, 15, 0.1),
                    0 0 0 0 rgba(107, 114, 128, 0.8);
    }
    25% {
        transform: scale(0.92);
        box-shadow: 0 12px 30px rgba(15, 15, 15, 0.55),
                    0 0 0 10px rgba(15, 15, 15, 0.1),
                    0 0 0 5px rgba(107, 114, 128, 0.6);
    }
    50% {
        transform: scale(1.08);
        box-shadow: 0 12px 30px rgba(15, 15, 15, 0.55),
                    0 0 0 10px rgba(15, 15, 15, 0.1),
                    0 0 0 20px rgba(107, 114, 128, 0);
    }
    100% {
        transform: scale(1);
        box-shadow: 0 12px 30px rgba(15, 15, 15, 0.55),
                    0 0 0 10px rgba(15, 15, 15, 0.1),
                    0 0 0 0 rgba(107, 114, 128, 0);
    }
}

/* Apply animation when enabled - runs 3 times then stops */
#mini-chatbot-root .mini-chatbot-button.animate {
    animation: mini-chatbot-pulse 1.5s ease-out 3 !important;
}

#mini-chatbot-root .mini-chatbot-button-icon {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    pointer-events: none !important;
}

/* Chat window shell */
#mini-chatbot-root .mini-chatbot-window {
    pointer-events: auto !important;
    position: fixed !important;
    bottom: 110px !important;
    right: 24px !important;
    width: 360px !important;
    max-width: calc(100vw - 40px) !important;
    max-height: 600px !important;
    display: none; /* No !important so JavaScript can override */
}

#mini-chatbot-root .mini-chatbot-shell {
    border-radius: 28px !important;
    overflow: hidden !important;
    box-shadow:
            0 20px 60px rgba(15, 23, 42, 0.55),
            0 0 0 12px rgba(156, 163, 175, 0.2) !important;
    background: #ffffff !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Header with gradient */
#mini-chatbot-root .mini-chatbot-header {
    background: var(--header-bg) !important;
    padding: 18px 20px 20px !important;
    color: #ffffff !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
}

#mini-chatbot-root .mini-chatbot-header-main {
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
    max-width: 260px !important;
}

#mini-chatbot-root .mini-chatbot-avatar {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    border-radius: 50% !important;
    background: rgba(15, 23, 42, 0.18) !important;
    display: flex; /* No !important so JavaScript can override */
    align-items: center !important;
    justify-content: center !important;
    font-weight: 600 !important;
    font-size: 18px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

#mini-chatbot-root .mini-chatbot-avatar-icon {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
}

#mini-chatbot-root .mini-chatbot-header-text {
    display: flex; /* No !important so JavaScript can override */
    flex-direction: column !important;
    gap: 4px !important;
}

#mini-chatbot-root .mini-chatbot-title {
    font-weight: 600 !important;
    font-size: 16px !important;
}

#mini-chatbot-root .mini-chatbot-back {
    background: rgba(255, 255, 255, 0.2) !important;
    border: none !important;
    border-radius: 8px !important;
    color: #ffffff !important;
    padding: 8px 16px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    display: none; /* No !important so JavaScript can override */
    align-items: center !important;
    gap: 6px !important;
    transition: background 0.2s ease !important;
    white-space: nowrap !important;
}

#mini-chatbot-root .mini-chatbot-back:hover {
    background: rgba(255, 255, 255, 0.3) !important;
}

#mini-chatbot-root .mini-chatbot-back:active {
    background: rgba(255, 255, 255, 0.25) !important;
}

#mini-chatbot-root .mini-chatbot-close {
    border: none !important;
    background: rgba(15, 23, 42, 0.18) !important;
    color: #ffffff !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 999px !important;
    cursor: pointer !important;
    font-size: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Body */
#mini-chatbot-root .mini-chatbot-body {
    background: #f5f6ff !important;
    padding: 14px 14px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    height: 360px !important;
    max-height: 420px !important;
}

#mini-chatbot-root .mini-chatbot-messages {
    flex: 1 !important;
    overflow-y: auto !important;
    padding-right: 4px !important;
}

/* Message styles */
#mini-chatbot-root .mini-chatbot-message {
    margin-bottom: 12px !important;
}

#mini-chatbot-root .mini-chatbot-message-meta {
    font-size: 10px !important;
    color: #6b7280 !important;
    margin-bottom: 4px !important;
}

/* Bot/Assistant bubble */
#mini-chatbot-root .mini-chatbot-message-assistant .mini-chatbot-message-bubble {
    display: inline-block !important;
    max-width: 88% !important;
    padding: 10px 12px !important;
    border-radius: 16px 16px 16px 4px !important;
    background: #eef2ff !important;
    color: #111827 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}

/* User bubble on the right */
#mini-chatbot-root .mini-chatbot-message-user {
    text-align: right !important;
}

#mini-chatbot-root .mini-chatbot-message-user .mini-chatbot-message-meta {
    text-align: right !important;
}

#mini-chatbot-root .mini-chatbot-message-user .mini-chatbot-message-bubble {
    display: inline-block !important;
    max-width: 88% !important;
    padding: 10px 12px !important;
    border-radius: 16px 16px 4px 16px !important;
    background: var(--user-bubble-bg) !important;
    color: #ffffff !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin-left: auto !important;
}

/* End text */
#mini-chatbot-root .mini-chatbot-end {
    font-size: 11px !important;
    color: #6b7280 !important;
    margin-top: 6px !important;
}

/* Small screens */
@media (max-width: 480px) {
    #mini-chatbot-root .mini-chatbot-window {
        right: 12px !important;
        left: 12px !important;
        width: auto !important;
    }

    #mini-chatbot-root .mini-chatbot-shell {
        border-radius: 24px !important;
    }

    #mini-chatbot-root .mini-chatbot-body {
        height: 320px !important;
    }
}


/* Contact form */
#mini-chatbot-root .mini-chatbot-contact-form {
    margin-top: 8px !important;
}

#mini-chatbot-root .mini-chatbot-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin-top: 12px !important;
}

#mini-chatbot-root .mini-chatbot-input,
#mini-chatbot-root .mini-chatbot-textarea {
    width: 100% !important;
    padding: 10px 12px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 12px !important;
    font-size: 13px !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    background: #ffffff !important;
    color: #111827 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
}

/* Placeholder text styling - ensure visibility */
#mini-chatbot-root .mini-chatbot-input::placeholder,
#mini-chatbot-root .mini-chatbot-textarea::placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}

#mini-chatbot-root .mini-chatbot-input::-webkit-input-placeholder,
#mini-chatbot-root .mini-chatbot-textarea::-webkit-input-placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}

#mini-chatbot-root .mini-chatbot-input::-moz-placeholder,
#mini-chatbot-root .mini-chatbot-textarea::-moz-placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}

#mini-chatbot-root .mini-chatbot-input:-ms-input-placeholder,
#mini-chatbot-root .mini-chatbot-textarea:-ms-input-placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}

#mini-chatbot-root .mini-chatbot-input:focus,
#mini-chatbot-root .mini-chatbot-textarea:focus {
    outline: none !important;
    border-color: #6b7280 !important;
    box-shadow: 0 0 0 3px rgba(107, 114, 128, 0.1) !important;
}

#mini-chatbot-root .mini-chatbot-textarea {
    resize: vertical !important;
    min-height: 60px !important;
}

#mini-chatbot-root .mini-chatbot-submit {
    padding: 10px 16px !important;
    border-radius: 12px !important;
    border: none !important;
    background: var(--button-primary) !important;
    color: #ffffff !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: transform 0.08s ease, box-shadow 0.08s ease, background 0.08s ease !important;
    box-shadow: 0 6px 14px var(--button-primary-shadow) !important;
}

#mini-chatbot-root .mini-chatbot-submit:hover:not(:disabled) {
    transform: translateY(-1px) !important;
    box-shadow: 0 8px 18px var(--button-primary-shadow) !important;
    filter: brightness(0.85) !important;
}

#mini-chatbot-root .mini-chatbot-submit:active:not(:disabled) {
    transform: translateY(0) !important;
    box-shadow: 0 4px 10px var(--button-primary-shadow) !important;
    filter: brightness(0.9) !important;
}

#mini-chatbot-root .mini-chatbot-submit:disabled {
    opacity: 0.6 !important;
    cursor: default !important;
    box-shadow: none !important;
}

/* Quick action buttons */
#mini-chatbot-root .mini-chatbot-quick-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 14px !important;
}

#mini-chatbot-root .mini-chatbot-quick {
    padding: 6px 12px !important;
    border-radius: 999px !important;
    border: none !important;
    cursor: pointer !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    transition: transform 0.08s ease, box-shadow 0.08s ease, background 0.08s ease !important;
    background: var(--button-primary) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 10px var(--button-primary-shadow) !important;
}


#mini-chatbot-root .mini-chatbot-quick:hover:not(:disabled) {
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 14px rgba(148, 163, 184, 0.45) !important;
}

#mini-chatbot-root .mini-chatbot-quick:active:not(:disabled) {
    transform: translateY(0) !important;
    box-shadow: none !important;
}

#mini-chatbot-root .mini-chatbot-quick:disabled {
    opacity: 0.6 !important;
    cursor: default !important;
    box-shadow: none !important;
}

/* Conversation separator */
#mini-chatbot-root .mini-chatbot-separator {
    margin: 40px 0 !important;
    padding: 0 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
}

#mini-chatbot-root .mini-chatbot-separator-line {
    flex: 0 0 60px !important;
    height: 2px !important;
    background: #e2e8f0 !important;
}

#mini-chatbot-root .mini-chatbot-separator-text {
    flex: 0 0 auto !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
}
