Spaces:
Running
Running
| /* ============================================ | |
| COLOR PALETTE FOR LIGHT AND DARK THEMES | |
| ============================================ */ | |
| :root { | |
| /* Primary Purple Colors */ | |
| --primary-purple: #7C3AED; | |
| --primary-purple-light: #8B5CF6; | |
| --primary-purple-lighter: #A78BFA; | |
| --primary-purple-dark: #6D28D9; | |
| /* Secondary Purple/Pink Colors */ | |
| --secondary-purple: #9333EA; | |
| --secondary-pink: #EC4899; | |
| --secondary-pink-light: #F472B6; | |
| /* Accent Colors */ | |
| --accent-coral: #FF7B7B; | |
| --accent-salmon: #FF8F8F; | |
| --accent-green: #10B981; | |
| --accent-teal: #14B8A6; | |
| --accent-yellow: #FBBF24; | |
| --accent-orange: #FB923C; | |
| /* Background Colors - Light Theme */ | |
| --bg-light-primary: #FFFFFF; | |
| --bg-light-secondary: #F9FAFB; | |
| --bg-light-tertiary: #F3F4F6; | |
| --bg-light-card: #FFFFFF; | |
| /* Background Colors - Dark Theme */ | |
| --bg-dark-primary: #0F172A; | |
| --bg-dark-secondary: #1E293B; | |
| --bg-dark-tertiary: #334155; | |
| --bg-dark-card: #1E293B; | |
| /* Text Colors - Light Theme */ | |
| --text-light-primary: #111827; | |
| --text-light-secondary: #4B5563; | |
| --text-light-tertiary: #9CA3AF; | |
| /* Text Colors - Dark Theme */ | |
| --text-dark-primary: #F9FAFB; | |
| --text-dark-secondary: #E5E7EB; | |
| --text-dark-tertiary: #9CA3AF; | |
| /* Gradient Backgrounds */ | |
| --gradient-purple: linear-gradient(135deg, #7C3AED 0%, #9333EA 100%); | |
| --gradient-purple-pink: linear-gradient(135deg, #8B5CF6 0%, #EC4899 100%); | |
| --gradient-blue-purple: linear-gradient(135deg, #667EEA 0%, #764BA2 100%); | |
| --gradient-coral: linear-gradient(135deg, #FF8F8F 0%, #FF7B7B 100%); | |
| /* Border & Shadow Colors */ | |
| --border-light: #E5E7EB; | |
| --border-dark: #374151; | |
| --shadow-light: rgba(0, 0, 0, 0.1); | |
| --shadow-purple: rgba(124, 58, 237, 0.3); | |
| --shadow-purple-sm: rgba(124, 58, 237, 0.1); | |
| --shadow-purple-md: rgba(124, 58, 237, 0.15); | |
| --shadow-purple-lg: rgba(124, 58, 237, 0.25); | |
| --shadow-purple-xl: rgba(124, 58, 237, 0.35); | |
| --shadow-purple-2xl: rgba(124, 58, 237, 0.4); | |
| --shadow-purple-light: rgba(167, 139, 250, 0.2); | |
| --shadow-purple-light-lg: rgba(167, 139, 250, 0.5); | |
| /* Card & Surface */ | |
| --card-radius: 20px; | |
| --card-shadow-light: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); | |
| --card-shadow-dark: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.2); | |
| } | |
| /* Modern title styling - Purple with subtle shadow */ | |
| .prose h1 { | |
| font-size: 2.5rem ; | |
| font-weight: 800 ; | |
| text-align: center ; | |
| margin: 1.5rem 0 0.5rem 0 ; | |
| padding: 0 ; | |
| letter-spacing: -0.04em ; | |
| text-transform: none ; | |
| line-height: 1.2 ; | |
| /* Deep purple with subtle shadow for depth */ | |
| color: var(--primary-purple-dark) ; | |
| text-shadow: 0 2px 8px var(--shadow-purple) ; | |
| } | |
| /* Dark theme title - Lighter purple with glow */ | |
| .dark .prose h1 { | |
| color: var(--primary-purple-lighter) ; | |
| text-shadow: 0 2px 12px var(--shadow-purple) ; | |
| } | |
| /* Description styling - Target markdown div (not paragraphs which are used in chat) */ | |
| /* The description is rendered as: .prose > .md > div */ | |
| .prose .md > div, | |
| .app-description { | |
| font-size: 1rem ; | |
| font-weight: 400 ; | |
| line-height: 1.6 ; | |
| text-align: center ; | |
| margin: 0.75rem auto 1.5rem auto ; | |
| padding: 1.25rem 1.5rem ; | |
| max-width: 700px ; | |
| color: var(--text-light-secondary) ; | |
| background-color: var(--bg-light-secondary) ; | |
| border-radius: 16px ; | |
| box-shadow: var(--card-shadow-light) ; | |
| display: block ; | |
| position: relative ; | |
| /* Multi-color gradient border */ | |
| border: 2px solid transparent ; | |
| background-image: | |
| linear-gradient(var(--bg-light-secondary), var(--bg-light-secondary)), | |
| linear-gradient( | |
| 90deg, | |
| var(--primary-purple) 0%, | |
| var(--secondary-pink) 14%, | |
| var(--accent-salmon) 28%, | |
| var(--accent-orange) 42%, | |
| var(--accent-yellow) 57%, | |
| var(--accent-green) 71%, | |
| var(--accent-teal) 85%, | |
| var(--primary-purple-light) 100% | |
| ) ; | |
| background-origin: border-box ; | |
| background-clip: padding-box, border-box ; | |
| } | |
| /* Bold text styling within description */ | |
| .prose .md > div strong, | |
| .app-description strong { | |
| color: var(--primary-purple) ; | |
| font-weight: 600 ; | |
| } | |
| /* Dark theme description */ | |
| @media (prefers-color-scheme: dark) { | |
| .prose .md > div, | |
| .app-description { | |
| color: var(--text-dark-secondary) ; | |
| background-color: var(--bg-dark-card) ; | |
| box-shadow: var(--card-shadow-dark) ; | |
| /* Multi-color gradient border for dark theme */ | |
| background-image: | |
| linear-gradient(var(--bg-dark-card), var(--bg-dark-card)), | |
| linear-gradient( | |
| 90deg, | |
| var(--primary-purple) 0%, | |
| var(--secondary-pink) 14%, | |
| var(--accent-salmon) 28%, | |
| var(--accent-orange) 42%, | |
| var(--accent-yellow) 57%, | |
| var(--accent-green) 71%, | |
| var(--accent-teal) 85%, | |
| var(--primary-purple-light) 100% | |
| ) ; | |
| } | |
| /* Dark theme bold text in description */ | |
| .prose .md > div strong, | |
| .app-description strong { | |
| color: var(--primary-purple-lighter) ; | |
| } | |
| } | |
| /* Also support .dark class for manual theme switching */ | |
| .dark .prose .md > div, | |
| .dark .app-description { | |
| color: var(--text-dark-secondary) ; | |
| background-color: var(--bg-dark-card) ; | |
| box-shadow: var(--card-shadow-dark) ; | |
| /* Multi-color gradient border for dark theme */ | |
| background-image: | |
| linear-gradient(var(--bg-dark-card), var(--bg-dark-card)), | |
| linear-gradient( | |
| 90deg, | |
| var(--primary-purple) 0%, | |
| var(--secondary-pink) 14%, | |
| var(--accent-salmon) 28%, | |
| var(--accent-orange) 42%, | |
| var(--accent-yellow) 57%, | |
| var(--accent-green) 71%, | |
| var(--accent-teal) 85%, | |
| var(--primary-purple-light) 100% | |
| ) ; | |
| } | |
| /* Dark theme bold text in description */ | |
| .dark .prose .md > div strong, | |
| .dark .app-description strong { | |
| color: var(--primary-purple-lighter) ; | |
| } | |
| /* ============================================ | |
| CHATBOT STYLING - Modern and Clean | |
| ============================================ */ | |
| /* Chat container */ | |
| .chatbot, [data-testid="chatbot"] { | |
| border-radius: var(--card-radius) ; | |
| box-shadow: var(--card-shadow-light) ; | |
| } | |
| /* User messages - Purple accent */ | |
| .message.user, | |
| .user-message, | |
| [data-testid="user-message"] { | |
| background: linear-gradient(135deg, var(--primary-purple-light) 0%, var(--primary-purple) 100%) ; | |
| color: white ; | |
| border-radius: 18px 18px 4px 18px ; | |
| padding: 0.875rem 1.125rem ; | |
| margin: 0.5rem 0 ; | |
| box-shadow: 0 2px 8px var(--shadow-purple-lg) ; | |
| margin-left: auto ; | |
| } | |
| /* Force white text for all content inside user messages */ | |
| .message.user *, | |
| .user-message *, | |
| [data-testid="user-message"] *, | |
| .user-row *, | |
| .message.user p, | |
| .message.user span, | |
| .message.user div { | |
| color: white ; | |
| } | |
| /* Assistant messages - Light background */ | |
| .message.bot, | |
| .bot-message, | |
| [data-testid="bot-message"] { | |
| background: var(--bg-light-card) ; | |
| color: var(--text-light-primary) ; | |
| border-radius: 18px 18px 18px 4px ; | |
| padding: 0.875rem 1.125rem ; | |
| margin: 0.5rem 0 ; | |
| border: 1px solid var(--border-light) ; | |
| box-shadow: var(--card-shadow-light) ; | |
| max-width: 80% ; | |
| margin-right: auto ; | |
| } | |
| /* Input textarea */ | |
| textarea, | |
| .gr-textbox textarea, | |
| [data-testid="textbox"] { | |
| background: var(--bg-light-card) ; | |
| color: var(--text-light-primary) ; | |
| border: 2px solid var(--border-light) ; | |
| border-radius: 12px ; | |
| padding: 0.75rem 1rem ; | |
| font-size: 1rem ; | |
| transition: all 0.2s ease ; | |
| } | |
| textarea:focus, | |
| .gr-textbox textarea:focus { | |
| border-color: var(--primary-purple) ; | |
| box-shadow: 0 0 0 3px var(--shadow-purple-sm) ; | |
| outline: none ; | |
| } | |
| /* Submit button and action buttons */ | |
| button[type="submit"], | |
| .submit-button, | |
| button.primary { | |
| background: var(--gradient-purple) ; | |
| color: white ; | |
| border: none ; | |
| border-radius: 12px ; | |
| padding: 0.625rem 1.5rem ; | |
| font-weight: 600 ; | |
| transition: all 0.2s ease ; | |
| box-shadow: 0 2px 8px var(--shadow-purple-lg) ; | |
| } | |
| button[type="submit"]:hover, | |
| .submit-button:hover, | |
| button.primary:hover { | |
| background: var(--primary-purple-dark) ; | |
| box-shadow: 0 4px 12px var(--shadow-purple-xl) ; | |
| transform: translateY(-1px) ; | |
| } | |
| /* Example buttons - Modern pill style */ | |
| .examples .example, | |
| button.example, | |
| [data-testid="examples"] button { | |
| background: linear-gradient(135deg, var(--bg-light-card) 0%, var(--bg-light-secondary) 100%) ; | |
| color: var(--primary-purple) ; | |
| border: 2px solid var(--primary-purple-lighter) ; | |
| border-radius: 24px ; | |
| padding: 0.875rem 1.5rem ; | |
| font-size: 0.95rem ; | |
| font-weight: 500 ; | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) ; | |
| box-shadow: 0 2px 8px var(--shadow-purple-sm) ; | |
| cursor: pointer ; | |
| display: inline-flex ; | |
| align-items: center ; | |
| gap: 0.5rem ; | |
| white-space: normal ; | |
| text-align: left ; | |
| line-height: 1.4 ; | |
| } | |
| .examples .example:hover, | |
| button.example:hover, | |
| [data-testid="examples"] button:hover { | |
| background: var(--gradient-purple) ; | |
| color: white ; | |
| border-color: var(--primary-purple) ; | |
| transform: translateY(-2px) scale(1.02) ; | |
| box-shadow: 0 6px 20px var(--shadow-purple-lg) ; | |
| } | |
| /* Hide the "Aa" icon in examples */ | |
| .examples .example::before, | |
| button.example::before, | |
| [data-testid="examples"] button::before, | |
| .examples .example .icon, | |
| button.example .icon, | |
| [data-testid="examples"] button .icon { | |
| display: none ; | |
| } | |
| /* Style the text content of examples */ | |
| .examples .example span, | |
| button.example span, | |
| [data-testid="examples"] button span { | |
| color: inherit ; | |
| } | |
| /* Container for examples */ | |
| .examples, | |
| [data-testid="examples"] { | |
| display: flex ; | |
| flex-wrap: wrap ; | |
| gap: 1rem ; | |
| padding: 1rem 0 ; | |
| justify-content: center ; | |
| } | |
| /* Scrollbar styling */ | |
| .chatbot::-webkit-scrollbar, | |
| [data-testid="chatbot"]::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| .chatbot::-webkit-scrollbar-track, | |
| [data-testid="chatbot"]::-webkit-scrollbar-track { | |
| background: var(--bg-light-secondary); | |
| border-radius: 10px; | |
| } | |
| .chatbot::-webkit-scrollbar-thumb, | |
| [data-testid="chatbot"]::-webkit-scrollbar-thumb { | |
| background: var(--primary-purple-light); | |
| border-radius: 10px; | |
| } | |
| .chatbot::-webkit-scrollbar-thumb:hover, | |
| [data-testid="chatbot"]::-webkit-scrollbar-thumb:hover { | |
| background: var(--primary-purple); | |
| } | |
| /* ============================================ | |
| DARK THEME STYLES | |
| ============================================ */ | |
| .dark :root, .dark .gradio-container { color-scheme: dark; } | |
| .dark body, .dark .gradio-container { background: var(--bg-dark-primary); } | |
| .dark .prose, .dark .gr-text, .dark .gr-form { color: var(--text-dark-secondary); } | |
| /* Dark theme - Chat container */ | |
| .dark .chatbot, | |
| .dark [data-testid="chatbot"] { | |
| border-color: var(--border-dark) ; | |
| box-shadow: var(--card-shadow-dark) ; | |
| } | |
| /* Dark theme - User messages */ | |
| .dark .message.user, | |
| .dark .user-message, | |
| .dark [data-testid="user-message"] { | |
| background: linear-gradient(135deg, var(--primary-purple) 0%, var(--primary-purple-dark) 100%) ; | |
| color: white ; | |
| box-shadow: 0 2px 8px var(--shadow-purple-2xl) ; | |
| } | |
| /* Dark theme - Force white text in user messages */ | |
| .dark .message.user *, | |
| .dark .user-message *, | |
| .dark [data-testid="user-message"] *, | |
| .dark .user-row *, | |
| .dark .message.user p, | |
| .dark .message.user span, | |
| .dark .message.user div { | |
| color: white ; | |
| } | |
| /* Dark theme - Assistant messages */ | |
| .dark .message.bot, | |
| .dark .bot-message, | |
| .dark [data-testid="bot-message"] { | |
| background: var(--bg-dark-card) ; | |
| color: var(--text-dark-primary) ; | |
| border-color: var(--border-dark) ; | |
| box-shadow: var(--card-shadow-dark) ; | |
| } | |
| /* Dark theme - Input */ | |
| .dark textarea, | |
| .dark .gr-textbox textarea, | |
| .dark [data-testid="textbox"] { | |
| background: var(--bg-dark-secondary) ; | |
| color: var(--text-dark-primary) ; | |
| border-color: var(--border-dark) ; | |
| } | |
| .dark textarea:focus, | |
| .dark .gr-textbox textarea:focus { | |
| border-color: var(--primary-purple-light) ; | |
| box-shadow: 0 0 0 3px var(--shadow-purple-light) ; | |
| } | |
| /* Dark theme - Buttons */ | |
| .dark button[type="submit"], | |
| .dark .submit-button, | |
| .dark button.primary { | |
| background: var(--gradient-purple) ; | |
| box-shadow: 0 2px 8px var(--shadow-purple-2xl) ; | |
| } | |
| .dark button[type="submit"]:hover, | |
| .dark .submit-button:hover, | |
| .dark button.primary:hover { | |
| background: var(--primary-purple-light) ; | |
| box-shadow: 0 4px 12px var(--shadow-purple-light-lg) ; | |
| } | |
| /* Dark theme - Example buttons */ | |
| .dark .examples .example, | |
| .dark button.example, | |
| .dark [data-testid="examples"] button { | |
| background: linear-gradient(135deg, var(--bg-dark-card) 0%, var(--bg-dark-secondary) 100%) ; | |
| color: var(--primary-purple-lighter) ; | |
| border-color: var(--primary-purple) ; | |
| box-shadow: 0 2px 8px var(--shadow-purple-xl) ; | |
| } | |
| .dark .examples .example:hover, | |
| .dark button.example:hover, | |
| .dark [data-testid="examples"] button:hover { | |
| background: var(--gradient-purple-pink) ; | |
| color: white ; | |
| border-color: var(--primary-purple-light) ; | |
| box-shadow: 0 6px 24px var(--shadow-purple-light-lg) ; | |
| } | |
| /* Dark theme - Example text */ | |
| .dark .examples .example span, | |
| .dark button.example span, | |
| .dark [data-testid="examples"] button span { | |
| color: inherit ; | |
| } | |
| /* Dark theme - Scrollbar */ | |
| .dark .chatbot::-webkit-scrollbar-track, | |
| .dark [data-testid="chatbot"]::-webkit-scrollbar-track { | |
| background: var(--bg-dark-secondary); | |
| } | |
| .dark .chatbot::-webkit-scrollbar-thumb, | |
| .dark [data-testid="chatbot"]::-webkit-scrollbar-thumb { | |
| background: var(--primary-purple); | |
| } | |
| .dark .chatbot::-webkit-scrollbar-thumb:hover, | |
| .dark [data-testid="chatbot"]::-webkit-scrollbar-thumb:hover { | |
| background: var(--primary-purple-light); | |
| } | |
| /* ============================================ | |
| HIDE FOOTER | |
| ============================================ */ | |
| /* Hide the Gradio footer with API and settings links */ | |
| footer, | |
| .footer, | |
| [data-testid="footer"], | |
| .gradio-container footer, | |
| .built-with, | |
| .api-link, | |
| .settings-link { | |
| display: none ; | |
| visibility: hidden ; | |
| height: 0 ; | |
| padding: 0 ; | |
| margin: 0 ; | |
| } |