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