/* Import Premium Typography */ @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap'); /* Main CSS Variable Tokens */ :root { --bg-overlay: rgba(8, 15, 30, 0.75); --glass-bg: rgba(15, 23, 42, 0.45); --glass-bg-hover: rgba(15, 23, 42, 0.6); --glass-border: rgba(255, 255, 255, 0.08); --glass-highlight: rgba(255, 255, 255, 0.03); --font-family: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --primary-cyan: #06b6d4; --primary-blue: #3b82f6; --primary-indigo: #6366f1; --text-primary: #f8fafc; --text-secondary: #cbd5e1; --text-muted: #94a3b8; /* Result Badges */ --excellent-color: #10b981; --good-color: #34d399; --fair-color: #f59e0b; --marginal-color: #f97316; --poor-color: #ef4444; } /* Page Background Setup */ body, .gradio-container { background-image: linear-gradient(var(--bg-overlay), var(--bg-overlay)), url('file/assets/background.jpg') !important; background-size: cover !important; background-position: center center !important; background-attachment: fixed !important; font-family: var(--font-family) !important; color: var(--text-primary) !important; margin: 0; padding: 0; min-height: 100vh; } /* Animations */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0px); } } @keyframes pulse-glow { 0% { box-shadow: 0 0 5px rgba(6, 182, 212, 0.2); } 50% { box-shadow: 0 0 15px rgba(6, 182, 212, 0.5); } 100% { box-shadow: 0 0 5px rgba(6, 182, 212, 0.2); } } @keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } /* Floating Logo Animation */ .floating-logo { animation: float 6s ease-in-out infinite; } /* Glassmorphism Panel Wrapper */ .glass-panel { background: var(--glass-bg) !important; backdrop-filter: blur(20px) saturate(180%) !important; -webkit-backdrop-filter: blur(20px) saturate(180%) !important; border: 1px solid var(--glass-border) !important; border-radius: 16px !important; padding: 20px !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4) !important; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; } .glass-panel:hover { background: var(--glass-bg-hover) !important; border-color: rgba(255, 255, 255, 0.12) !important; box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.5) !important; } /* Typography Overrides */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-family) !important; font-weight: 600 !important; color: var(--text-primary) !important; letter-spacing: -0.02em !important; } p, span, label { font-family: var(--font-family) !important; color: var(--text-secondary) !important; } /* Gradio Component Customizations */ .gr-box, .gr-input, .gr-form, .gr-row, .gr-col { background: transparent !important; border: none !important; } /* Input Fields (Sliders and Textboxes) */ input[type="range"] { accent-color: var(--primary-cyan) !important; } .gradio-container input, .gradio-container textarea, .gradio-container select { background: rgba(15, 23, 42, 0.6) !important; border: 1px solid var(--glass-border) !important; color: var(--text-primary) !important; border-radius: 8px !important; padding: 10px 14px !important; font-family: var(--font-family) !important; transition: border-color 0.2s ease-in-out !important; } .gradio-container input:focus, .gradio-container textarea:focus, .gradio-container select:focus { border-color: var(--primary-cyan) !important; outline: none !important; box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.2) !important; } /* Labels and Headers in Controls */ .gradio-container .block-title { color: var(--primary-cyan) !important; font-size: 0.9rem !important; font-weight: 600 !important; text-transform: uppercase !important; letter-spacing: 0.05em !important; margin-bottom: 6px !important; } /* Premium Action Buttons */ .action-btn { background: linear-gradient(135deg, var(--primary-cyan), var(--primary-blue)) !important; color: white !important; font-weight: 600 !important; border: none !important; border-radius: 12px !important; padding: 12px 24px !important; box-shadow: 0 4px 15px rgba(6, 182, 212, 0.3) !important; cursor: pointer !important; transition: all 0.3s ease !important; font-family: var(--font-family) !important; animation: pulse-glow 3s infinite; } .action-btn:hover { transform: translateY(-2px) !important; box-shadow: 0 6px 20px rgba(6, 182, 212, 0.5) !important; filter: brightness(1.1) !important; } .action-btn:active { transform: translateY(1px) !important; } /* Clear/Reset Button styling */ .clear-btn { background: rgba(255, 255, 255, 0.05) !important; border: 1px solid var(--glass-border) !important; color: var(--text-secondary) !important; border-radius: 12px !important; transition: all 0.2s ease !important; } .clear-btn:hover { background: rgba(255, 255, 255, 0.1) !important; color: var(--text-primary) !important; } /* Custom Prediction Badges (rendered inside MD) */ .badge { display: inline-block; padding: 6px 14px; border-radius: 9999px; font-weight: 700; font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.05em; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); } .badge-excellent { color: var(--excellent-color); background: rgba(16, 185, 129, 0.15); border: 1px solid rgba(16, 185, 129, 0.3); } .badge-good { color: var(--good-color); background: rgba(52, 211, 153, 0.15); border: 1px solid rgba(52, 211, 153, 0.3); } .badge-fair { color: var(--fair-color); background: rgba(245, 158, 11, 0.15); border: 1px solid rgba(245, 158, 11, 0.3); } .badge-marginal { color: var(--marginal-color); background: rgba(249, 115, 22, 0.15); border: 1px solid rgba(249, 115, 22, 0.3); } .badge-poor { color: var(--poor-color); background: rgba(239, 68, 68, 0.15); border: 1px solid rgba(239, 68, 68, 0.3); } /* Hide Default Gradio Header and Footer for custom branding integration */ footer { display: none !important; } /* Custom Scrollbar for premium feel */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: rgba(15, 23, 42, 0.3); } ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.15); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.3); } /* Make Charts fit nicely and transparent background */ .gradio-container img { border-radius: 8px !important; } /* Adjust layout on mobile devices */ @media (max-width: 768px) { .glass-panel { padding: 12px !important; } } .top-margin{ margin-top:15px; }