/* Enhanced styles with optimized performance */ :root { --primary-500: #6366f1; --primary-600: #4f46e5; --secondary-500: #10b981; --secondary-600: #059669; --danger-500: #ef4444; --danger-600: #dc2626; --warning-500: #f59e0b; --warning-600: #d97706; } * { box-sizing: border-box; margin: 0; padding: 0; } body { background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); color: #1e293b; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; line-height: 1.6; min-height: 100vh; } .dark body { background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); color: #f8fafc; } /* Optimized transitions for better performance */ * { transition: background-color 0.2s ease, color 0.15s ease, border-color 0.15s ease, transform 0.2s ease, opacity 0.2s ease; } /* Hardware acceleration for smooth animations */ .chat-message, .prompt-button, #theme-toggle, #red-mode-toggle, #voice-record, #file-upload-btn { transform: translateZ(0); backface-visibility: hidden; perspective: 1000; } #chat-form { border: 1px solid #e2e8f0; border-radius: 9999px; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(8px); } .dark #chat-form { border-color: #334155; background: rgba(30, 41, 59, 0.8); } /* Enhanced Red mode styles */ .red-mode { --nav-bg: linear-gradient(135deg, #dc2626 0%, #991b1b 100%); --footer-bg: #450a0a; } .red-mode body { background: linear-gradient(135deg, #0c0a09 0%, #1c1917 100%); } .red-mode .bg-white { background-color: #1c1917 !important; } .red-mode .bg-gray-100 { background-color: #0c0a09 !important; } .red-mode .dark\:bg-gray-900 { background-color: #0c0a09 !important; } .red-mode .dark\:bg-gray-800 { background-color: #292524 !important; } .red-mode .border-gray-200 { border-color: #44403c !important; } .red-mode .dark\:border-gray-700 { border-color: #44403c !important; } .red-mode .text-gray-800 { color: #f5f5f4 !important; } .red-mode .dark\:text-gray-200 { color: #f5f5f4 !important; } .red-mode .text-gray-500 { color: #d6d3d1 !important; } .red-mode .dark\:text-gray-400 { color: #d6d3d1 !important; } .red-mode .bg-primary-500 { background-color: #dc2626 !important; } .red-mode .hover\:bg-primary-600:hover { background-color: #b91c1c !important; } /* Red mode specific enhancements */ .red-mode #chat-form { border-color: #dc2626; background: rgba(28, 25, 23, 0.8); } .red-mode .prompt-button:hover { background-color: #292524 !important; } .red-mode #chat-history-item:hover { background-color: rgba(220, 38, 38, 0.2); } /* Optimized chat message animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); } } @keyframes slideInLeft { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } } @keyframes slideInRight { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } } /* Red mode chat styles */ .red-mode .chat-message.assistant { background-color: rgba(220, 38, 38, 0.1) !important; border-left: 3px solid rgba(220, 38, 38, 0.5); } /* Enhanced chat history items */ #chat-history-item { padding: 0.75rem; border-radius: 0.5rem; margin-bottom: 0.25rem; cursor: pointer; font-size: 0.875rem; border: 1px solid transparent; transition: all 0.2s ease; } #chat-history-item:hover { background-color: rgba(99, 102, 241, 0.1); border-color: rgba(99, 102, 241, 0.2); transform: translateY(-1px); } #chat-history-item.active { background-color: rgba(99, 102, 241, 0.15); border-color: rgba(99, 102, 241, 0.3); font-weight: 500; box-shadow: 0 2px 4px rgba(99, 102, 241, 0.1); } /* Enhanced file upload indicator */ .file-upload-indicator { display: inline-flex; align-items: center; gap: 0.25rem; margin-left: 0.5rem; font-size: 0.75rem; color: #10b981; font-weight: 500; } /* Improved chat message styling */ .chat-message { animation: fadeIn 0.25s ease-out forwards; } .chat-message.user { animation: slideInRight 0.25s ease-out forwards; } .chat-message.assistant { animation: slideInLeft 0.25s ease-out forwards; } /* Enhanced button states */ button:active { transform: scale(0.98); } button:disabled { opacity: 0.6; cursor: not-allowed; transform: none !important; } /* Scrollbar styling for better UX */ #chat-container::-webkit-scrollbar, #chat-history::-webkit-scrollbar { width: 4px; } #chat-container::-webkit-scrollbar-track, #chat-history::-webkit-scrollbar-track { background: transparent; } #chat-container::-webkit-scrollbar-thumb, #chat-history::-webkit-scrollbar-thumb { background: rgba(99, 102, 241, 0.3); border-radius: 2px; } #chat-container::-webkit-scrollbar-thumb:hover, #chat-history::-webkit-scrollbar-thumb:hover { background: rgba(99, 102, 241, 0.5); } /* Loading states */ .loading { opacity: 0.7; pointer-events: none; } /* Responsive design improvements */ @media (max-width: 1024px) { .grid-cols-1\:lg\:grid-cols-4 { grid-template-columns: 1fr; } .lg\:col-span-3, .lg\:col-span-1 { grid-column: 1; } } /* Performance optimizations */ .chat-message { will-change: transform, opacity; } .prompt-button { will-change: transform, background-color; }