        /* Using Inter font from Google Fonts */
        html {
            font-family: 'Inter', sans-serif;
        }

        /* Sidebar transition classes */
        .sidebar {
            transform: translateX(-100%);
            transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
        }
        .sidebar.open {
            transform: translateX(0);
        }
        /* Overlay when sidebar is open for dimming effect */
        .sidebar-overlay {
            background-color: rgba(0, 0, 0, 0.5);
            transition: opacity 0.3s ease-in-out;
            opacity: 0;
            pointer-events: none;
        }
        .sidebar-overlay.open {
            opacity: 1;
            pointer-events: auto;
        }

        /* Animations for loading indicator */
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
        @keyframes scaleUp {
            from { transform: scale(0.8); opacity: 0; }
            to { transform: scale(1); opacity: 1; }
        }
        @keyframes bounce1 {
            0%, 80%, 100% { transform: translateY(0); }
            40% { transform: translateY(-8px); }
        }
        @keyframes bounce2 {
            0%, 100% { transform: translateY(0); }
            20% { transform: translateY(-8px); }
            60% { transform: translateY(0); }
        }
        @keyframes bounce3 {
            0%, 80%, 100% { transform: translateY(0); }
            40% { transform: translateY(-8px); }
        }
        .animate-fadeIn { animation: fadeIn 0.3s ease-out forwards; }
        .animate-scaleUp { animation: scaleUp 0.3s ease-out forwards; }
        .animate-bounce1 { animation: bounce1 1.4s infinite ease-in-out; }
        .animate-bounce2 { animation: bounce2 1.4s infinite ease-in-out 0.2s; }
        .animate-bounce3 { animation: bounce3 1.4s infinite ease-in-out 0.4s; }

        /* Animation for new chat bubbles */
        @keyframes slideInFromBottom {
            from { transform: translateY(20px); opacity: 0; }
            to { transform: translateY(0); opacity: 1; }
        }
        .animate-slideInFromBottom { animation: slideInFromBottom 0.3s ease-out forwards; }

        /* Typing indicator dots animation */
        @keyframes dot-blink {
            0%, 100% { opacity: 0.2; }
            50% { opacity: 1; }
        }
        .dot-blink:nth-child(1) { animation: dot-blink 1s infinite linear; }
        .dot-blink:nth-child(2) { animation: dot-blink 1s infinite linear 0.2s; }
        .dot-blink:nth-child(3) { animation: dot-blink 1s infinite linear 0.4s; }


        /* Adjust textarea height */
        textarea {
            min-height: 48px; /* Minimum height similar to input */
            transition: height 0.2s ease-out; /* Smooth transition for height */
        }
        
        /* Custom scrollbar for chat area */
        #chat-area::-webkit-scrollbar {
            width: 8px;
        }

        #chat-area::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 10px;
        }

        #chat-area::-webkit-scrollbar-thumb {
            background: #888;
            border-radius: 10px;
        }

        #chat-area::-webkit-scrollbar-thumb:hover {
            background: #555;
        }

        /* Custom styles for glowing button effect */
        .glowing-btn {
            position: relative;
            z-index: 1;
            overflow: hidden;
        }
        .glowing-btn::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: conic-gradient(from 0deg, transparent, rgba(255, 255, 255, 0.2), transparent 50%, rgba(255, 255, 255, 0.2), transparent);
            animation: rotate 4s linear infinite;
            z-index: -1;
            opacity: 0;
            transition: opacity 0.3s ease-in-out;
        }
        .glowing-btn:hover::before {
            opacity: 1;
        }
        @keyframes rotate {
            to { transform: rotate(1turn); }
        }
        /* Header pulsing effect */
        @keyframes pulse-header {
            0% { transform: scale(1); }
            50% { transform: scale(1.02); }
            100% { transform: scale(1); }
        }
        .pulse-header-on-hover:hover {
            animation: pulse-header 1s infinite ease-in-out;
        }
        /* Changelog modal specific styles */
        #changelog-modal-content {
            max-height: 80vh; /* Max height for scrollable content */
            overflow-y: auto; /* Enable scrolling */
            white-space: pre-wrap; /* Preserve whitespace and line breaks */
            text-align: left; /* Align text to left */
        }
        #changelog-modal-content h1, #changelog-modal-content h2 {
            font-weight: bold;
            margin-top: 1em;
            margin-bottom: 0.5em;
            color: #1a202c; /* dark gray */
        }
        #changelog-modal-content h1 {
            font-size: 1.875rem; /* text-3xl */
        }
        #changelog-modal-content h2 {
            font-size: 1.5rem; /* text-2xl */
        }
        #changelog-modal-content ul {
            list-style-type: disc;
            margin-left: 1.5em;
            padding-left: 0;
        }
        #changelog-modal-content ul li {
            margin-bottom: 0.5em;
        }
