Spaces:
Sleeping
Sleeping
| /* Import Google Fonts for better typography */ | |
| @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&family=Source+Sans+Pro:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap'); | |
| /* Root font styles - Applied to entire page */ | |
| * { | |
| font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; | |
| } | |
| /* Background - Light Ukrainian sky with warm golden undertones */ | |
| .gradio-container { | |
| background: radial-gradient(1200px 600px at 20% 0%, #f1f5f9 0%, #e2e8f0 45%, #cbd5e1 100%); | |
| font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| /* Header - Transparent background, only text visible */ | |
| #app-header { | |
| position: sticky; top: 0; z-index: 10; | |
| background: transparent; | |
| backdrop-filter: none; | |
| padding: 18px 8px 10px 8px; | |
| border-bottom: none; | |
| } | |
| #app-header .app-title { | |
| font-family: 'Poppins', sans-serif; | |
| font-weight: 700; | |
| letter-spacing: -0.02em; | |
| font-size: 40px; | |
| background: linear-gradient(120deg, #60a5fa 0%, #fbbf24 20%, #3b82f6 40%); | |
| -webkit-background-clip: text; background-clip: text; color: transparent; | |
| } | |
| #app-header .app-subtitle { | |
| font-family: 'Source Sans Pro', sans-serif; | |
| color: #64748b; | |
| margin-top: 4px; | |
| font-weight: 400; | |
| font-size: 16px; | |
| letter-spacing: 0.01em; | |
| } | |
| /* Chat card */ | |
| #chat-card .gr-chatbot { | |
| background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(248,250,252,0.95) 100%); | |
| border: 1px solid rgba(59,130,246,0.2); | |
| box-shadow: 0 10px 40px rgba(0,0,0,0.1), inset 0 1px 0 rgba(245,158,11,0.15); | |
| backdrop-filter: blur(8px); | |
| border-radius: 18px; | |
| } | |
| /* Code blocks - Using JetBrains Mono for better readability */ | |
| #chat-card .prose pre { | |
| font-family: 'JetBrains Mono', 'Fira Code', 'Monaco', 'Cascadia Code', 'SF Mono', 'Consolas', 'DejaVu Sans Mono', monospace ; | |
| border: 1px solid rgba(59,130,246,0.2); | |
| background: #f8fafc ; | |
| font-size: 13px; | |
| line-height: 1.5; | |
| font-weight: 400; | |
| } | |
| #chat-card .prose code { | |
| font-family: 'JetBrains Mono', 'Fira Code', 'Monaco', 'Cascadia Code', 'SF Mono', 'Consolas', 'DejaVu Sans Mono', monospace ; | |
| background: rgba(59,130,246,0.1); | |
| border-radius: 6px; | |
| padding: 0.1rem 0.35rem; | |
| font-size: 13px; | |
| font-weight: 500; | |
| } | |
| /* Chat message text styling */ | |
| .gr-chatbot .message { | |
| font-family: 'Source Sans Pro', sans-serif; | |
| font-size: 15px; | |
| line-height: 1.65; | |
| font-weight: 400; | |
| letter-spacing: 0.01em; | |
| } | |
| .gr-chatbot .message p { | |
| font-family: 'Source Sans Pro', sans-serif; | |
| margin-bottom: 0.75em; | |
| } | |
| /* ChatGPT-style input */ | |
| #chat-input-row { | |
| margin-top: 16px; | |
| padding: 0 8px; | |
| display: flex ; | |
| align-items: center ; | |
| gap: 6px ; | |
| } | |
| .chat-input-box textarea { | |
| border: none ; | |
| outline: none ; | |
| box-shadow: 0 2px 8px rgba(0,0,0,0.08) ; | |
| border-radius: 24px ; | |
| background: rgba(255,255,255,0.9) ; | |
| color: #334155 ; | |
| padding: 12px 16px ; | |
| font-family: 'Source Sans Pro', sans-serif ; | |
| font-size: 15px ; | |
| line-height: 1.5 ; | |
| font-weight: 400 ; | |
| letter-spacing: 0.01em ; | |
| resize: none ; | |
| transition: all 0.2s ease ; | |
| } | |
| .chat-input-box textarea:focus { | |
| box-shadow: 0 4px 12px rgba(59,130,246,0.25) ; | |
| background: rgba(255,255,255,1) ; | |
| } | |
| .chat-input-box textarea::placeholder { | |
| color: #94a3b8 ; | |
| opacity: 0.8 ; | |
| } | |
| /* Hide container borders */ | |
| .chat-input-box { | |
| border: none ; | |
| background: transparent ; | |
| box-shadow: none ; | |
| flex: 1 ; | |
| width: 100% ; | |
| } | |
| /* Input wrapper for send button positioning */ | |
| /* Send indicator - only show when stop button is hidden */ | |
| .chat-input-box::after { | |
| content: "↵"; | |
| position: absolute; | |
| right: 16px; | |
| top: 50%; | |
| transform: translateY(-50%); | |
| color: #64748b; | |
| font-size: 16px; | |
| pointer-events: none; | |
| opacity: 0.6; | |
| transition: opacity 0.2s ease; | |
| } | |
| .chat-input-box:hover::after { | |
| opacity: 0.8; | |
| } | |
| /* Stop button styling */ | |
| .stop-btn-chat { | |
| flex-shrink: 0 ; | |
| width: 45px ; | |
| min-width: 45px ; | |
| max-width: 45px ; | |
| height: 45px ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| border-radius: 100% ; | |
| } | |
| .stop-btn-chat button { | |
| background: rgba(239, 68, 68, 0.1) ; | |
| border: 1px solid rgba(239, 68, 68, 0.3) ; | |
| color: #ef4444 ; | |
| border-radius: 50% ; | |
| padding: 6px ; | |
| min-width: 45px ; | |
| max-width: 45px ; | |
| width: 45px ; | |
| height: 45px ; | |
| font-size: 14px ; | |
| font-weight: 500 ; | |
| transition: all 0.2s ease ; | |
| display: flex ; | |
| align-items: center ; | |
| justify-content: center ; | |
| flex-shrink: 0 ; | |
| box-sizing: border-box ; | |
| } | |
| .stop-btn-chat button:hover { | |
| background: rgba(239, 68, 68, 0.15) ; | |
| border-color: rgba(239, 68, 68, 0.4) ; | |
| transform: translateY(-1px) ; | |
| box-shadow: 0 4px 8px rgba(239, 68, 68, 0.2) ; | |
| } | |
| /* Hide send icon when stop button is visible */ | |
| #chat-input-row:has(.stop-btn-chat:not([style*="display: none"])) .chat-input-box::after { | |
| display: none; | |
| } | |
| /* Right pane cards */ | |
| .side-card { | |
| border: 1px solid rgba(59,130,246,0.2); | |
| border-radius: 16px; | |
| background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(248,250,252,0.9) 100%); | |
| padding: 8px 10px; | |
| } | |
| .footer-tip { | |
| font-family: 'Source Sans Pro', sans-serif; | |
| color: #64748b; | |
| font-size: 12.5px; | |
| text-align: center; | |
| margin-top: 6px; | |
| font-weight: 400; | |
| letter-spacing: 0.02em; | |
| } | |
| /* Hidden buttons row - make invisible without using visibility */ | |
| #hidden-buttons { | |
| opacity: 0 ; | |
| height: 0 ; | |
| overflow: hidden ; | |
| margin: 0 ; | |
| padding: 0 ; | |
| pointer-events: none ; | |
| } | |
| /* Force light theme - Disable dark mode switching */ | |
| @media (prefers-color-scheme: dark) { | |
| .gradio-container { | |
| background: radial-gradient(1200px 600px at 20% 0%, #f1f5f9 0%, #e2e8f0 45%, #cbd5e1 100%) ; | |
| color-scheme: light ; | |
| } | |
| /* Ensure all elements use light theme colors */ | |
| .gradio-container * { | |
| color-scheme: light ; | |
| } | |
| /* Override any dark mode styles that might be applied */ | |
| .gradio-container .gr-chatbot { | |
| background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(248,250,252,0.95) 100%) ; | |
| color: #334155 ; | |
| } | |
| .gradio-container .chat-input-box textarea { | |
| background: rgba(255,255,255,0.9) ; | |
| color: #334155 ; | |
| } | |
| .gradio-container #app-header .app-subtitle { | |
| color: #64748b ; | |
| } | |
| /* Force light theme for all buttons and inputs */ | |
| .gradio-container button { | |
| color-scheme: light ; | |
| } | |
| .gradio-container input, | |
| .gradio-container textarea { | |
| color-scheme: light ; | |
| } | |
| } | |