Spaces:
Build error
Build error
| /* Global Styling */ | |
| .gradio-container { | |
| font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif ; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) ; | |
| min-height: 100vh; | |
| } | |
| /* Header Styling */ | |
| .main-header { | |
| background: linear-gradient(135deg, #ff6b6b, #ee5a24, #ff9ff3, #54a0ff) ; | |
| background-size: 400% 400% ; | |
| animation: gradient 15s ease infinite ; | |
| padding: 2rem ; | |
| border-radius: 20px ; | |
| margin-bottom: 2rem ; | |
| box-shadow: 0 20px 40px rgba(0,0,0,0.1) ; | |
| text-align: center ; | |
| } | |
| @keyframes gradient { | |
| 0% { background-position: 0% 50%; } | |
| 50% { background-position: 100% 50%; } | |
| 100% { background-position: 0% 50%; } | |
| } | |
| .main-header h1 { | |
| color: white ; | |
| font-size: 3rem ; | |
| font-weight: 700 ; | |
| text-shadow: 2px 2px 4px rgba(0,0,0,0.3) ; | |
| margin: 0 ; | |
| } | |
| .main-header p { | |
| color: rgba(0,0,0,1.0) ; | |
| font-size: 1.2rem ; | |
| margin-top: 0.5rem ; | |
| } | |
| /* Tab Styling */ | |
| .tab-nav { | |
| background: rgba(0,0,0,1.0) ; | |
| border-radius: 15px ; | |
| padding: 0.5rem ; | |
| backdrop-filter: blur(10px) ; | |
| border: 1px solid rgba(255,255,255,0.2) ; | |
| } | |
| .tab-nav button { | |
| background: rgba(0,0,0,1.0) ; | |
| color: white ; | |
| border-radius: 10px ; | |
| padding: 0.75rem 1.5rem ; | |
| margin: 0.25rem ; | |
| transition: all 0.3s ease ; | |
| font-weight: 600 ; | |
| border: none ; | |
| } | |
| .tab-nav button:hover { | |
| background: rgba(0,0,0,1.0) ; | |
| transform: translateY(-2px) ; | |
| box-shadow: 0 5px 15px rgba(0,0,0,0.2) ; | |
| } | |
| .tab-nav button.selected { | |
| background: linear-gradient(135deg, #ff6b6b, #ee5a24) ; | |
| color: white ; | |
| box-shadow: 0 5px 15px rgba(255,107,107,0.4) ; | |
| } | |
| /* Card Styling for Tab Content */ | |
| .tab-content { | |
| background: rgba(255,255,255,0.95) ; | |
| border-radius: 20px ; | |
| padding: 2rem ; | |
| margin: 1rem 0 ; | |
| box-shadow: 0 15px 35px rgba(0,0,0,0.1) ; | |
| backdrop-filter: blur(10px) ; | |
| border: 1px solid rgba(255,255,255,0.2) ; | |
| } | |
| /* Input Styling */ | |
| .gr-textbox, .gr-number { | |
| border-radius: 12px ; | |
| border: 2px solid #e1e5e9 ; | |
| padding: 0.75rem ; | |
| font-size: 1rem ; | |
| transition: all 0.3s ease ; | |
| background: white ; | |
| } | |
| .gr-textbox:focus, .gr-number:focus { | |
| border-color: #667eea ; | |
| box-shadow: 0 0 0 3px rgba(102,126,234,0.1) ; | |
| outline: none ; | |
| } | |
| /* Radio Button Styling */ | |
| .gr-radio { | |
| background: rgba(255,255,255,0.9) ; | |
| border-radius: 12px ; | |
| padding: 1rem ; | |
| border: 2px solid #e1e5e9 ; | |
| transition: all 0.3s ease ; | |
| } | |
| .gr-radio label { | |
| display: flex ; | |
| align-items: center ; | |
| padding: 0.5rem 1rem ; | |
| margin: 0.25rem 0 ; | |
| border-radius: 8px ; | |
| cursor: pointer ; | |
| transition: all 0.3s ease ; | |
| background: rgba(102,126,234,0.05) ; | |
| border: 1px solid rgba(102,126,234,0.1) ; | |
| } | |
| .gr-radio label:hover { | |
| background: rgba(102,126,234,0.1) ; | |
| border-color: rgba(102,126,234,0.3) ; | |
| transform: translateX(5px) ; | |
| } | |
| .gr-radio input[type="radio"] { | |
| margin-right: 0.75rem ; | |
| transform: scale(1.2) ; | |
| accent-color: #667eea ; | |
| } | |
| .gr-radio input[type="radio"]:checked + span { | |
| color: #667eea ; | |
| font-weight: 600 ; | |
| } | |
| .gr-radio label:has(input:checked) { | |
| background: linear-gradient(135deg, rgba(102,126,234,0.2), rgba(118,75,162,0.2)) ; | |
| border-color: #667eea ; | |
| box-shadow: 0 2px 8px rgba(102,126,234,0.3) ; | |
| } | |
| /* Checkbox Group Styling */ | |
| .gr-checkbox-group { | |
| background: rgba(255,255,255,0.9) ; | |
| border-radius: 12px ; | |
| padding: 1rem ; | |
| border: 2px solid #e1e5e9 ; | |
| transition: all 0.3s ease ; | |
| } | |
| .gr-checkbox-group label { | |
| display: flex ; | |
| align-items: center ; | |
| padding: 0.5rem 1rem ; | |
| margin: 0.25rem 0 ; | |
| border-radius: 8px ; | |
| cursor: pointer ; | |
| transition: all 0.3s ease ; | |
| background: rgba(72,187,120,0.05) ; | |
| border: 1px solid rgba(72,187,120,0.1) ; | |
| } | |
| .gr-checkbox-group label:hover { | |
| background: rgba(72,187,120,0.1) ; | |
| border-color: rgba(72,187,120,0.3) ; | |
| transform: translateX(5px) ; | |
| } | |
| .gr-checkbox-group input[type="checkbox"] { | |
| margin-right: 0.75rem ; | |
| transform: scale(1.2) ; | |
| accent-color: #48bb78 ; | |
| } | |
| .gr-checkbox-group input[type="checkbox"]:checked + span { | |
| color: #48bb78 ; | |
| font-weight: 600 ; | |
| } | |
| .gr-checkbox-group label:has(input:checked) { | |
| background: linear-gradient(135deg, rgba(72,187,120,0.2), rgba(56,161,105,0.2)) ; | |
| border-color: #48bb78 ; | |
| box-shadow: 0 2px 8px rgba(72,187,120,0.3) ; | |
| } | |
| /* Button Styling */ | |
| .gr-button { | |
| background: linear-gradient(135deg, #667eea, #764ba2) ; | |
| color: white ; | |
| border: none ; | |
| border-radius: 12px ; | |
| padding: 0.75rem 2rem ; | |
| font-weight: 600 ; | |
| font-size: 1rem ; | |
| cursor: pointer ; | |
| transition: all 0.3s ease ; | |
| box-shadow: 0 4px 15px rgba(102,126,234,0.3) ; | |
| } | |
| .gr-button:hover { | |
| transform: translateY(-2px) ; | |
| box-shadow: 0 8px 25px rgba(102,126,234,0.4) ; | |
| background: linear-gradient(135deg, #5a67d8, #6b46c1) ; | |
| } | |
| .gr-button:active { | |
| transform: translateY(0) ; | |
| } | |
| /* Special Button Colors */ | |
| .btn-success { | |
| background: linear-gradient(135deg, #48bb78, #38a169) ; | |
| box-shadow: 0 4px 15px rgba(72,187,120,0.3) ; | |
| } | |
| .btn-danger { | |
| background: linear-gradient(135deg, #f56565, #e53e3e) ; | |
| box-shadow: 0 4px 15px rgba(245,101,101,0.3) ; | |
| } | |
| .btn-warning { | |
| background: linear-gradient(135deg, #ed8936, #dd6b20) ; | |
| box-shadow: 0 4px 15px rgba(237,137,54,0.3) ; | |
| } | |
| .btn-info { | |
| background: linear-gradient(135deg, #4299e1, #3182ce) ; | |
| box-shadow: 0 4px 15px rgba(66,153,225,0.3) ; | |
| } | |
| /* DataFrame Styling */ | |
| .gr-dataframe { | |
| border-radius: 12px ; | |
| overflow: hidden ; | |
| box-shadow: 0 4px 15px rgba(0,0,0,0.1) ; | |
| } | |
| .gr-dataframe th { | |
| background: linear-gradient(135deg, #667eea, #764ba2) ; | |
| color: black ; | |
| padding: 1rem ; | |
| font-weight: 600 ; | |
| } | |
| .gr-dataframe td { | |
| padding: 0.75rem 1rem ; | |
| border-bottom: 1px solid #e1e5e9 ; | |
| } | |
| .gr-dataframe tr:nth-child(even) { | |
| background: rgba(102,126,234,0.05) ; | |
| } | |
| /* Status Messages */ | |
| .gr-textbox[data-testid="textbox"] { | |
| border-left: 4px solid #667eea ; | |
| } | |
| /* Section Headers */ | |
| .section-header { | |
| color: #2d3748 ; | |
| font-size: 1.5rem ; | |
| font-weight: 700 ; | |
| margin-bottom: 1rem ; | |
| padding-bottom: 0.5rem ; | |
| border-bottom: 3px solid #667eea ; | |
| background: linear-gradient(135deg, #667eea, #764ba2) ; | |
| -webkit-background-clip: text ; | |
| -webkit-text-fill-color: transparent ; | |
| } | |
| /* Form Groups */ | |
| .form-group { | |
| margin-bottom: 1.5rem ; | |
| } | |
| .form-row { | |
| display: flex ; | |
| gap: 1rem ; | |
| margin-bottom: 1rem ; | |
| } | |
| /* Animations */ | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .tab-content { | |
| animation: fadeIn 0.5s ease-out ; | |
| } | |
| /* Train Visual Styling */ | |
| .train-visual { | |
| font-family: 'Courier New', monospace ; | |
| font-size: 1.2rem ; | |
| background: linear-gradient(135deg, #f7fafc, #edf2f7) ; | |
| padding: 1rem ; | |
| border-radius: 12px ; | |
| border: 2px solid #e1e5e9 ; | |
| margin: 1rem 0 ; | |
| } | |
| /* Success/Error Messages */ | |
| .success-message { | |
| color: #38a169 ; | |
| background: rgba(72,187,120,0.1) ; | |
| border: 1px solid rgba(72,187,120,0.3) ; | |
| border-radius: 8px ; | |
| padding: 0.75rem ; | |
| } | |
| .error-message { | |
| color: #e53e3e ; | |
| background: rgba(245,101,101,0.1) ; | |
| border: 1px solid rgba(245,101,101,0.3) ; | |
| border-radius: 8px ; | |
| padding: 0.75rem ; | |
| } | |
| /* Responsive Design */ | |
| @media (max-width: 768px) { | |
| .main-header h1 { | |
| font-size: 2rem ; | |
| } | |
| .form-row { | |
| flex-direction: column ; | |
| } | |
| .gr-button { | |
| width: 100% ; | |
| margin: 0.5rem 0 ; | |
| } | |
| } | |
| /* Loading Animation */ | |
| .loading { | |
| display: inline-block; | |
| width: 20px; | |
| height: 20px; | |
| border: 3px solid rgba(255,255,255,.3); | |
| border-radius: 50%; | |
| border-top-color: #fff; | |
| animation: spin 1s ease-in-out infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| /* Glassmorphism Effect */ | |
| .glass { | |
| background: rgba(255, 255, 255, 0.25) ; | |
| box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37) ; | |
| backdrop-filter: blur(4px) ; | |
| border-radius: 10px ; | |
| border: 1px solid rgba(255, 255, 255, 0.18) ; | |
| } | |