        .chat-widget-container {
            position: fixed;
            bottom: 15px;
            right: 20px;
            font-family: Arial, sans-serif;
            z-index: 1000;
        }

        /* Style the custom bouncing launcher button */
        .chat-launcher {
            width: 60px;
            height: 60px;
            background-color: #be3131; 
            border-radius: 50%;
            cursor: pointer;
            box-shadow: 0 4px 15px rgba(0,0,0,0.2);
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            transition: transform 0.2s ease, background-color 0.2s ease;
            
            /* Continuous bounce loop animation */
            animation: bounce 2.2s infinite;
        }

        .chat-launcher:hover {
            transform: scale(1.08);
            background-color: #d55d5d;
        }

        /* Ensure standard SVG icon sizing inside the button */
        .chat-launcher svg {
            width: 28px;
            height: 28px;
            fill: currentColor;
        }

        @keyframes bounce {
            0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
            40% { transform: translateY(-12px); }
            60% { transform: translateY(-6px); }
        }

        .chat-wrapper {
            display: none;
            position: absolute;
            bottom: 70px; 
            right: 0;
            width: 380px; 
            box-shadow: 0 8px 30px rgba(0,0,0,0.15);
            background: white;
        }

        /* Utility class to dynamically change display properties via JavaScript */
        .chat-wrapper.expanded {
            display: block;
        }
        
        /* Container for the pulsing dots */
        .thinking-dots {
            display: flex;
            gap: 4px;
            align-items: center;
            padding: 6px 4px;
        }

        /* Individual dot styling */
        .thinking-dots span {
            width: 8px;
            height: 8px;
            background-color: #7f8c8d;
            border-radius: 50%;
            display: inline-block;
            animation: thinkingWave 1.4s infinite ease-in-out both;
        }

        /* Stagger the animation timing for each dot */
        .thinking-dots span:nth-child(1) { animation-delay: -0.32s; }
        .thinking-dots span:nth-child(2) { animation-delay: -0.16s; }

        @keyframes thinkingWave {
            0%, 80%, 100% { transform: scale(0); }
            40% { transform: scale(1.0); }
        }

