/* Clinically Healthcare UI Design Kit Styles (Gradio-Optimized) */ :root { --primary-indigo: #4338CA; --secondary-cyan: #0891B2; --bg-cream: #F8FAFC; --border-soft: #CBD5E1; --text-slate: #0F172A; --text-muted: #334155; --success-green: #059669; --warning-amber: #D97706; --danger-red: #DC2626; --white: #FFFFFF; } /* Header */ .header-box { background: var(--white); padding: 1.5rem; border-bottom: 4px solid var(--primary-indigo); color: var(--primary-indigo); text-align: center; box-shadow: 0 4px 16px rgba(67, 56, 202, 0.12); } .header-box h1 { font-weight: 800; font-size: 2.25rem; letter-spacing: -0.025em; margin: 0; color: var(--primary-indigo); } /* Sidebar Buttons */ .sidebar-btn { margin-bottom: 10px !important; font-weight: 600 !important; border-radius: 12px !important; border: 1px solid var(--border-soft) !important; background: var(--white) !important; transition: all 0.2s ease !important; color: var(--text-slate) !important; width: 100%; } .sidebar-btn:hover { background: var(--primary-indigo) !important; border-color: var(--primary-indigo) !important; color: var(--white) !important; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(67, 56, 202, 0.35); } /* Status blocks */ .vibrant-status .label-wrap span { color: white !important; font-weight: 700 !important; } .vibrant-status textarea { color: white !important; background: rgba(255, 255, 255, 0.12) !important; border: 1px solid rgba(255, 255, 255, 0.25) !important; border-radius: 8px !important; min-height: 44px; } /* Status variants */ .status-green { background: rgba(5, 150, 105, 0.15) !important; border: 1px solid var(--success-green) !important; color: #064E3B !important; border-radius: 8px !important; padding: 8px 12px !important; } .status-orange { background: rgba(217, 119, 6, 0.15) !important; border: 1px solid var(--warning-amber) !important; color: #78350F !important; border-radius: 8px !important; padding: 8px 12px !important; } .status-red { background: rgba(220, 38, 38, 0.15) !important; border: 1px solid var(--danger-red) !important; color: #7F1D1D !important; border-radius: 8px !important; padding: 8px 12px !important; } /* Loading spinner */ .loading-spinner { display: inline-flex; align-items: center; gap: 10px; color: var(--primary-indigo); font-weight: 600; } .loading-spinner::before { content: ""; display: inline-block; width: 18px; height: 18px; border: 3px solid rgba(67, 56, 202, 0.2); border-top-color: var(--primary-indigo); border-radius: 50%; animation: hr-spin 0.8s linear infinite; } @keyframes hr-spin { to { transform: rotate(360deg); } } /* Page layout */ .page-container { padding: 0.5rem 1.5rem 2rem 1.5rem; background: var(--bg-cream); } .page-title { font-size: 1.25rem; font-weight: 700; color: var(--text-slate); margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--border-soft); } /* Inputs */ input, textarea, select { border-color: var(--border-soft) !important; color: var(--text-slate); } input:focus, textarea:focus, select:focus { border-color: var(--primary-indigo) !important; box-shadow: 0 0 0 3px rgba(67, 56, 202, 0.15) !important; } /* ========================================================= 🔥 GRADIO OVERRIDE ENFORCER LAYER (IMPORTANT PART) ========================================================= */ /* 1. Hard reset Gradio container interference */ .gradio-container { background: var(--bg-cream) !important; } /* 2. FORCE header styling (highest practical CSS specificity) */ body .gradio-container div.header-box, html body .gradio-container div.header-box, div.gradio-container div.header-box { background: #0B1F3B !important; /* deep navy override */ color: #FFFFFF !important; border-bottom: 4px solid var(--primary-indigo) !important; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25) !important; } /* 3. Force all text inside header */ body .gradio-container .header-box * { color: #FFFFFF !important; } /* 4. Kill any theme pseudo overlays */ .header-box::before, .header-box::after { background: transparent !important; content: none !important; } /* 5. Prevent Gradio theme bleed on blocks */ .gr-block, .gr-box, .gr-panel { background: transparent !important; }