Spaces:
Running
Running
| /* 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 ; | |
| } | |
| .red-mode .bg-gray-100 { | |
| background-color: #0c0a09 ; | |
| } | |
| .red-mode .dark\:bg-gray-900 { | |
| background-color: #0c0a09 ; | |
| } | |
| .red-mode .dark\:bg-gray-800 { | |
| background-color: #292524 ; | |
| } | |
| .red-mode .border-gray-200 { | |
| border-color: #44403c ; | |
| } | |
| .red-mode .dark\:border-gray-700 { | |
| border-color: #44403c ; | |
| } | |
| .red-mode .text-gray-800 { | |
| color: #f5f5f4 ; | |
| } | |
| .red-mode .dark\:text-gray-200 { | |
| color: #f5f5f4 ; | |
| } | |
| .red-mode .text-gray-500 { | |
| color: #d6d3d1 ; | |
| } | |
| .red-mode .dark\:text-gray-400 { | |
| color: #d6d3d1 ; | |
| } | |
| .red-mode .bg-primary-500 { | |
| background-color: #dc2626 ; | |
| } | |
| .red-mode .hover\:bg-primary-600:hover { | |
| background-color: #b91c1c ; | |
| } | |
| /* 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 ; | |
| } | |
| .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) ; | |
| 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 ; | |
| } | |
| /* 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; | |
| } | |