Mohsin Khan
Initial commit for Hugging Face Docker Spaces
5a58b2b
Raw History Blame Contribute Delete
36.1 kB
/* ============================================================================= 1. GLOBAL STYLES - Used across ALL pages (index.html, calculate.html, recommendation.html) ============================================================================= */ /* ----------------------------------------------------------------------------- 1.1 CSS Variables & Design Tokens ----------------------------------------------------------------------------- */ :root { /* Color System - Human Centric */ --primary-color: #3B82F6; --primary-hover: #2563EB; --secondary-color: #64748B; --accent-color: #8B5CF6; --success: #10B981; --warning: #F59E0B; --danger: #EF4444; /* Backgrounds */ --bg-body: #F8FAFC; --bg-surface: #FFFFFF; --bg-subtle: #F1F5F9; --glass-bg: rgba(255, 255, 255, 0.95); /* Typography */ --text-main: #1E293B; --text-muted: #64748B; --text-light: #94A3B8; /* Spacing & Layout */ --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem; --space-lg: 1.5rem; --space-xl: 2rem; /* Borders & Radius */ --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --border-color: #E2E8F0; --border-subtle: #F1F5F9; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-glow: 0 0 20px rgba(59, 130, 246, 0.15); } /* ----------------------------------------------------------------------------- 1.2 Base Reset & Typography (All Pages) ----------------------------------------------------------------------------- */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Plus Jakarta Sans', 'Outfit', sans-serif; background-color: var(--bg-body); color: var(--text-main); line-height: 1.6; overflow-x: hidden; width: 100%; } a { text-decoration: none; color: inherit; transition: color 0.2s ease; } ul { list-style: none; } img { max-width: 100%; height: auto; } /* ----------------------------------------------------------------------------- 1.3 Background Effect (All Pages) ----------------------------------------------------------------------------- */ .background-glow { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: -1; background: radial-gradient(circle at 10% 20%, rgba(59, 130, 246, 0.05) 0%, transparent 40%), radial-gradient(circle at 90% 80%, rgba(139, 92, 246, 0.05) 0%, transparent 40%); } /* ----------------------------------------------------------------------------- 1.4 Container (All Pages) ----------------------------------------------------------------------------- */ .container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); } /* ----------------------------------------------------------------------------- 1.5 Header & Navigation (All Pages) ----------------------------------------------------------------------------- */ .site-header { background: var(--glass-bg); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid var(--border-subtle); padding: var(--space-md) 0; } .header-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); display: flex; justify-content: space-between; align-items: center; } .brand { display: flex; align-items: center; gap: var(--space-sm); font-weight: 700; font-size: 1.5rem; color: var(--text-main); } .heart-icon { animation: heartbeat 1.5s infinite; } .nav-links { display: flex; align-items: center; gap: 2rem; } .nav-links a { font-weight: 500; color: var(--text-muted); } .nav-links a:hover, .nav-links a.active { color: var(--primary-color); } .btn-start { background: var(--primary-color); color: white !important; padding: 0.5rem 1.25rem; border-radius: 100px; transition: all 0.3s ease; } .btn-start:hover { background: var(--primary-hover); transform: translateY(-2px); box-shadow: var(--shadow-md); } /* ============================================================================= 2. HOME PAGE STYLES (index.html) ============================================================================= */ /* ----------------------------------------------------------------------------- 2.1 Hero Section (index.html) ----------------------------------------------------------------------------- */ .hero { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; padding: 6rem 0; min-height: 80vh; } .hero h1 { font-size: 3.5rem; line-height: 1.2; margin-bottom: 1.5rem; font-weight: 800; letter-spacing: -0.02em; } .hero p { font-size: 1.25rem; color: var(--text-muted); margin-bottom: 2.5rem; max-width: 540px; } .hero-btn { display: inline-flex; align-items: center; gap: 0.75rem; padding: 1rem 2rem; border-radius: 100px; font-weight: 600; transition: all 0.3s ease; } .hero-image { position: relative; display: flex; justify-content: center; } /* ----------------------------------------------------------------------------- 2.2 Trust Section (index.html) ----------------------------------------------------------------------------- */ .trust-section { background: white; padding: 3rem 0; border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); } .trust-container { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; text-align: center; } .stat-number { font-size: 2.5rem; font-weight: 700; color: var(--primary-color); margin-bottom: 0.5rem; } .stat-label { color: var(--text-muted); font-weight: 500; } /* ----------------------------------------------------------------------------- 2.3 How It Works Section (index.html) ----------------------------------------------------------------------------- */ .how-it-works { padding: 6rem 0; } .section-title { text-align: center; max-width: 700px; margin: 0 auto 4rem; } .section-title h2 { font-size: 2.5rem; font-weight: 700; margin-bottom: 1rem; } .section-title p { color: var(--text-muted); font-size: 1.125rem; } .steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; } .step-card { background: white; padding: 2.5rem; border-radius: var(--radius-xl); border: 1px solid var(--border-subtle); position: relative; transition: all 0.3s ease; } .step-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: rgba(59, 130, 246, 0.3); } .step-number { position: absolute; top: -15px; right: 15px; /* Changed from -15px to 15px to avoid overflow */ width: 40px; height: 40px; background: var(--primary-color); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; box-shadow: var(--shadow-md); } .step-icon { width: 60px; height: 60px; background: rgba(59, 130, 246, 0.1); color: var(--primary-color); border-radius: var(--radius-lg); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin-bottom: 1.5rem; } .step-card h3 { font-size: 1.25rem; margin-bottom: 0.75rem; } .step-card p { color: var(--text-muted); } /* ----------------------------------------------------------------------------- 2.4 About Section (index.html) ----------------------------------------------------------------------------- */ .about-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; } .about-card { background: white; padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); transition: all 0.3s ease; text-align: center; } .about-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); } .about-card i { font-size: 2.5rem; color: var(--primary-color); margin-bottom: 1.5rem; } .about-card h3 { margin-bottom: 1rem; font-size: 1.25rem; } .about-card p { color: var(--text-muted); } /* ----------------------------------------------------------------------------- 2.5 Testimonials Section (index.html) ----------------------------------------------------------------------------- */ .testimonials { padding: 6rem 0; background: white; } .testimonials-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; } .testimonial-card { background: var(--bg-body); padding: 2rem; border-radius: var(--radius-xl); position: relative; } .quote-icon { color: var(--primary-color); opacity: 0.2; font-size: 2rem; margin-bottom: 1rem; } .testimonial-text { font-style: italic; color: var(--text-main); margin-bottom: 1.5rem; } .testimonial-author { display: flex; align-items: center; gap: 1rem; } .author-avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--primary-color); color: white; display: flex; align-items: center; justify-content: center; font-weight: 700; } .author-name { font-weight: 600; } .author-role { font-size: 0.875rem; color: var(--text-muted); } /* ----------------------------------------------------------------------------- 2.6 Contact Section (index.html) ----------------------------------------------------------------------------- */ .contact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; } .contact-card { background: white; padding: 2rem; border-radius: var(--radius-xl); text-align: center; transition: all 0.3s ease; } .contact-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); } .contact-card i { font-size: 2rem; color: var(--primary-color); margin-bottom: 1rem; } .contact-card h3 { margin-bottom: 0.5rem; font-size: 1.125rem; } .contact-card p { color: var(--text-muted); } .contact-card .small { font-size: 0.875rem; opacity: 0.8; margin-top: 0.25rem; } /* ----------------------------------------------------------------------------- 1.6 Footer (All Pages) ----------------------------------------------------------------------------- */ .footer { background: #0F172A; color: white; padding: 4rem 0 0; } .footer-container { max-width: 1200px; margin: 0 auto; padding: 0 var(--space-md); display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4rem; margin-bottom: 3rem; } .footer-about h3 { font-size: 1.5rem; margin-bottom: 1rem; } .footer-about p { color: #94A3B8; line-height: 1.8; } .footer-links h4, .footer-contact h4 { margin-bottom: 1.5rem; color: white; } .footer-links a { display: block; color: #94A3B8; margin-bottom: 0.75rem; } .footer-links a:hover { color: white; } .footer-contact p { color: #94A3B8; margin-bottom: 0.75rem; } .footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); padding: 2rem 0; text-align: center; color: #64748B; } /* ============================================================================= 3. CALCULATE PAGE STYLES (calculate.html) ============================================================================= */ /* ----------------------------------------------------------------------------- 3.1 Calculator Container (calculate.html) ----------------------------------------------------------------------------- */ .calculator-section { max-width: 1100px; margin: 50px auto; text-align: center; padding: 0 20px; } .calculator-section h1 { font-size: 2rem; margin-bottom: 0.5rem; } .subtitle { color: #6b7280; margin-bottom: 30px; } /* ----------------------------------------------------------------------------- 3.2 Card & Form Layout (calculate.html) ----------------------------------------------------------------------------- */ .card { background: white; border-radius: 14px; padding: 30px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); text-align: left; } .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; } .box { background: #f9fafb; border-radius: 12px; padding: 20px; text-align: left; } .box h3 { margin-bottom: 15px; font-size: 1.1rem; font-weight: 600; } .box.full { margin-top: 30px; } /* ----------------------------------------------------------------------------- 3.3 Form Inputs (calculate.html) ----------------------------------------------------------------------------- */ .calculator-section label { display: block; font-size: 16px; margin: 10px 0 5px; color: #374151; text-align: left; } .calculator-section input, .calculator-section select { width: 100%; padding: 10px; border-radius: 8px; border: none; background: #eef2f7; font-family: inherit; font-size: 1.2rem; color: #1f2937; } .calculator-section input:focus, .calculator-section select:focus { outline: 2px solid #2563eb; outline-offset: 1px; } .calculator-section input[disabled] { background: #e5e7eb; color: #9ca3af; cursor: not-allowed; } /* ----------------------------------------------------------------------------- 3.4 Checkboxes (calculate.html) ----------------------------------------------------------------------------- */ .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; margin-top: 10px; gap: 8px; } .checkbox-group label { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; } .checkbox-group input[type="checkbox"] { width: 20px; height: 18px; accent-color: #2563eb; } /* ----------------------------------------------------------------------------- 3.5 Lifestyle Grid (calculate.html) ----------------------------------------------------------------------------- */ .grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; } /* ----------------------------------------------------------------------------- 3.6 Analyze Button (calculate.html) ----------------------------------------------------------------------------- */ .analyze-btn { margin-top: 30px; background: #2563eb; color: white; border: none; padding: 15px 30px; border-radius: 30px; font-size: 16px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .analyze-btn:hover { background: #1d4ed8; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3); } /* ----------------------------------------------------------------------------- 3.7 Result Modal (calculate.html) ----------------------------------------------------------------------------- */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.7); backdrop-filter: blur(4px); display: none; justify-content: center; align-items: center; z-index: 10000; } .modal.visible { display: flex; } .modal-content { background: white; width: 95%; max-width: 500px; padding: 3rem 2.5rem; border-radius: 20px; text-align: center; position: relative; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } .close-modal { position: absolute; top: 1.25rem; right: 1.25rem; width: 28px; height: 28px; border-radius: 50%; background: #f1f5f9; color: #94a3b8; display: flex; align-items: center; justify-content: center; cursor: pointer; border: none; font-size: 1rem; transition: all 0.2s; } .close-modal:hover { background: #e2e8f0; color: #1e293b; } .risk-icon { font-size: 4.5rem; margin-bottom: 1.5rem; } .risk-high { color: #EF4444; } .risk-low { color: #10B981; } .result-header h2 { font-size: 2rem; font-weight: 800; margin-bottom: 0.75rem; } .result-body p { color: #64748b; font-size: 0.9375rem; line-height: 1.6; margin-bottom: 1.5rem; padding: 0 1rem; } .probability-meter { height: 28px; background: #f1f5f9; border-radius: 100px; margin: 1.5rem 0.5rem; position: relative; overflow: hidden; } .prob-fill { height: 100%; background: #10B981; width: 0%; transition: width 1.5s cubic-bezier(0.4, 0, 0.2, 1); border-radius: 100px; } #probValue { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 0.875rem; font-weight: 700; color: #1e293b; } .disclaimer { font-size: 0.75rem; color: #94a3b8; line-height: 1.5; margin-top: 2rem; margin-bottom: 2.5rem; padding-top: 1.25rem; border-top: 1px solid #f1f5f9; } .modal-actions { display: flex; gap: 1rem; justify-content: center; } .view-btn, .btn-cancel { padding: 0.875rem 1.5rem; border-radius: 100px; font-size: 0.9375rem; font-weight: 600; cursor: pointer; transition: all 0.2s; white-space: nowrap; min-width: 160px; } .view-btn { background: #3b82f6; color: white; border: none; box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.2); } .view-btn:hover { background: #2563eb; transform: translateY(-1px); box-shadow: 0 6px 10px -1px rgba(59, 130, 246, 0.3); } .btn-cancel { background: white; color: #1e293b; border: 1px solid #e2e8f0; } .btn-cancel:hover { background: #f8fafc; border-color: #cbd5e1; } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes zoomIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes heartbeat { 0% { transform: scale(1); } 15% { transform: scale(1.15); } 30% { transform: scale(1); } 45% { transform: scale(1.15); } 60% { transform: scale(1); } 100% { transform: scale(1); } } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-15px); } 100% { transform: translateY(0px); } } @keyframes pulse-soft { 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(59, 130, 246, 0); } 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } } .pulse { animation: pulse-soft 2s infinite; } /* Responsive */ @media (max-width: 768px) { .hero { grid-template-columns: 1fr; padding: 4rem 0; text-align: center; } .hero h1 { font-size: 2.5rem; } .hero-content { order: 2; } .hero-image { order: 1; margin-bottom: 2rem; } .hero-buttons { justify-content: center; } .trust-container { grid-template-columns: repeat(2, 1fr); } .steps-grid, .testimonials-grid, .contact-grid { grid-template-columns: 1fr; } .footer-container { grid-template-columns: 1fr; gap: 2rem; } .form-grid, .lifestyle-grid, .checkbox-group { grid-template-columns: 1fr; } } /* Utilities */ .text-muted { color: var(--text-muted) !important; } /* New Hero Enhancements (Preserved) */ .badge-new { display: inline-flex; align-items: center; gap: 8px; background: rgba(59, 130, 246, 0.1); color: var(--primary-color); padding: 6px 12px; border-radius: 100px; font-size: 0.875rem; font-weight: 600; margin-bottom: var(--space-lg); border: 1px solid rgba(59, 130, 246, 0.2); } .text-gradient { background: linear-gradient(135deg, var(--primary-color) 0%, var(--accent-color) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero-buttons { display: flex; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; } .primary-btn { background: var(--primary-color); color: white; } .secondary-btn { background: white; color: var(--text-main); border: 1px solid var(--border-subtle); } .secondary-btn:hover { background: var(--bg-subtle); color: var(--primary-color); } .hero-trust { display: flex; gap: 1.5rem; font-size: 0.875rem; color: var(--text-muted); font-weight: 500; } .hero-trust span { display: flex; align-items: center; gap: 6px; } .hero-trust i { color: var(--success); } .floating-heart { animation: float 6s ease-in-out infinite; } .count-up { font-variant-numeric: tabular-nums; } /* ============================================================================= 4. RECOMMENDATION PAGE STYLES (recommendation.html) Note: Additional styles are embedded in recommendation.html <style> tag ============================================================================= */ /* ----------------------------------------------------------------------------- 4.1 Page Layout (recommendation.html) ----------------------------------------------------------------------------- */ .recommendation-page { padding: 2rem 0; } .page-header { text-align: center; margin-bottom: 3rem; animation: fadeInDown 0.8s ease-out; } .page-header h1 { font-size: 2.5rem; font-weight: 800; color: var(--text-main); margin-bottom: 0.5rem; } .page-header p { color: var(--text-muted); font-size: 1.125rem; } .report-grid { display: grid; grid-template-columns: 1fr 420px; gap: 2rem; margin-bottom: 2rem; } @media (max-width: 980px) { .report-grid { grid-template-columns: 1fr; } .sidebar { order: -1; } } /* Risk Level Selector */ .risk-selector { background: white; padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); margin-bottom: 2rem; } .risk-selector h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 1rem; color: var(--text-main); } .risk-pills { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 0.75rem; } .risk-pill { padding: 1rem; border-radius: var(--radius-lg); color: white; text-align: center; cursor: pointer; font-weight: 600; transition: all 0.3s ease; border: 2px solid transparent; } .risk-pill:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); } .risk-pill.active { border-color: var(--text-main); box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.1); } .risk-pill.vlow { background: linear-gradient(135deg, #10B981, #059669); } .risk-pill.low { background: linear-gradient(135deg, #34D399, #10B981); } .risk-pill.mod { background: linear-gradient(135deg, #FBBF24, #F59E0B); } .risk-pill.high { background: linear-gradient(135deg, #FB923C, #F97316); } .risk-pill.vh { background: linear-gradient(135deg, #EF4444, #DC2626); } .risk-pill small { display: block; font-size: 0.75rem; opacity: 0.9; margin-top: 0.25rem; } /* Main Report Card */ .report-card { background: white; padding: 2.5rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); border-left: 6px solid var(--primary-color); animation: fadeInUp 0.8s ease-out; } .report-card.highlight { box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.1), var(--shadow-lg); } .report-title { font-size: 1.75rem; font-weight: 800; margin-bottom: 0.5rem; color: var(--text-main); } .report-subtitle { color: var(--text-muted); margin-bottom: 2rem; font-size: 1rem; } .recommendations-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; margin-top: 2rem; } .recommendation-card { background: linear-gradient(135deg, #F8FAFC 0%, #F1F5F9 100%); padding: 1.5rem; border-radius: var(--radius-lg); border: 1px solid var(--border-color); transition: all 0.3s ease; } .recommendation-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } .recommendation-card h4 { font-size: 1.125rem; font-weight: 700; margin-bottom: 1rem; color: var(--primary-color); display: flex; align-items: center; gap: 0.5rem; } .recommendation-card ul { list-style: none; padding: 0; margin: 0; } .recommendation-card li { padding: 0.5rem 0; color: var(--text-main); display: flex; align-items: flex-start; gap: 0.5rem; } .recommendation-card li::before { content: "✓"; color: var(--primary-color); font-weight: 700; flex-shrink: 0; } /* Sidebar */ .sidebar .card { background: white; padding: 1.5rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); margin-bottom: 1.5rem; } .sidebar h3 { font-size: 1.125rem; font-weight: 700; margin-bottom: 1rem; color: var(--text-main); } /* Severity Meter */ .meter-container { display: flex; flex-direction: column; align-items: center; padding: 1.5rem 0; } .meter { width: 160px; height: 160px; position: relative; } .meter svg { transform: rotate(-90deg); } .meter .center { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; } .meter .percent { font-size: 2rem; font-weight: 800; color: var(--primary-color); } .meter .label { font-size: 0.875rem; color: var(--text-muted); margin-top: 0.25rem; } /* Chart */ .chart-container { height: 240px; margin-top: 1rem; } /* Doctor Cards */ .doctor-list { display: flex; flex-direction: column; gap: 1rem; } .doctor-card { padding: 1.25rem; border-radius: var(--radius-lg); background: linear-gradient(135deg, #F8FAFC 0%, #F1F5F9 100%); border: 1px solid var(--border-color); transition: all 0.3s ease; } .doctor-card:hover { transform: translateX(4px); box-shadow: var(--shadow-sm); } .doctor-name { font-weight: 700; color: var(--text-main); margin-bottom: 0.5rem; } .doctor-info { font-size: 0.875rem; color: var(--text-muted); margin-bottom: 0.75rem; } .doctor-actions { display: flex; gap: 0.5rem; margin-top: 0.75rem; } .btn-small { padding: 0.5rem 1rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 500; border: none; cursor: pointer; transition: all 0.2s ease; } .btn-outline { background: white; border: 1px solid var(--border-color); color: var(--text-main); } .btn-outline:hover { background: var(--bg-body); } .btn-primary-small { background: var(--primary-color); color: white; } .btn-primary-small:hover { background: var(--primary-hover); } /* Map */ #map { height: 280px; border-radius: var(--radius-lg); overflow: hidden; margin: 1rem 0; } /* Action Buttons */ .action-section { background: white; padding: 2rem; border-radius: var(--radius-xl); box-shadow: var(--shadow-md); margin-top: 2rem; } .action-section h3 { font-size: 1.25rem; font-weight: 700; margin-bottom: 1.5rem; color: var(--text-main); } .action-buttons { display: flex; flex-wrap: wrap; gap: 1rem; } .action-btn { padding: 0.875rem 1.75rem; border-radius: 100px; font-weight: 600; border: none; cursor: pointer; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 0.5rem; } .action-btn-primary { background: var(--primary-color); color: white; box-shadow: 0 4px 6px rgba(79, 70, 229, 0.2); } .action-btn-primary:hover { background: var(--primary-hover); transform: translateY(-2px); box-shadow: 0 8px 12px rgba(79, 70, 229, 0.3); } .action-btn-secondary { background: white; color: var(--text-main); border: 1px solid var(--border-color); } .action-btn-secondary:hover { background: var(--bg-body); } /* ----------------------------------------------------------------------------- 3.6 Dark Header Override (calculate.html only) Note: Uses :has() selector to apply only when calculator-section is present ----------------------------------------------------------------------------- */ /* Dark Header Override section removed to match home page header */ /* Calculator Section Override */ .calculator-section { padding: 3rem 0 4rem; max-width: 900px; } .calculator-section .section-title { margin-bottom: 2.5rem; } .calculator-section .section-title h2 { font-size: 2.25rem; font-weight: 700; color: var(--text-main); } .calculator-section .section-title p { color: var(--text-muted); font-size: 1rem; } /* Glass Panel Form */ .calculator-section .glass-panel { background: white; border: 1px solid var(--border-color); border-radius: 16px; padding: 2.5rem; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); } /* Form Grid - Two Columns */ .calculator-section .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 3rem; margin-bottom: 0; } /* Form Section Styling */ .calculator-section .form-section { display: flex; flex-direction: column; gap: 1.25rem; } .calculator-section .form-section.full-width { grid-column: 1 / -1; border-top: 1px solid var(--border-subtle); padding-top: 2rem; margin-top: 0.5rem; } .calculator-section .form-section h3 { font-size: 1rem; font-weight: 600; color: var(--text-main); display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; } .calculator-section .form-section h3 i { color: var(--primary-color); font-size: 0.9rem; } /* Input Groups */ .calculator-section .input-group { display: flex; flex-direction: column; gap: 0.375rem; } .calculator-section .input-group label { font-size: 0.875rem; font-weight: 500; color: var(--text-main); } .calculator-section input, .calculator-section select { padding: 0.75rem 1rem; border: 1px solid var(--border-color); border-radius: 8px; font-size: 0.9375rem; background: white; transition: all 0.2s ease; } .calculator-section input:focus, .calculator-section select:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } .calculator-section input::placeholder { color: var(--text-light); } .calculator-section input[readonly] { background: var(--bg-subtle); color: var(--text-muted); } /* Lifestyle Grid - 3x2 layout */ .calculator-section .lifestyle-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; } /* Checkbox Group Inline */ .calculator-section .checkbox-group { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; background: transparent; padding: 0; margin-top: 0.5rem; } .calculator-section .checkbox-container { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 400; color: var(--text-main); cursor: pointer; } .calculator-section .checkbox-container input[type="checkbox"] { width: 1rem; height: 1rem; accent-color: var(--primary-color); cursor: pointer; } /* Form Actions */ .calculator-section .form-actions { display: flex; justify-content: center; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--border-subtle); } .calculator-section .btn-primary { background: #3B82F6; color: white; border: none; padding: 0.875rem 2rem; border-radius: 50px; font-size: 1rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem; transition: all 0.3s ease; } .calculator-section .btn-primary:hover { background: #2563EB; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(59, 130, 246, 0.35); } /* Responsive */ @media (max-width: 992px) { .hero { grid-template-columns: 1fr; text-align: center; gap: 2rem; } .hero-content { order: 2; } .hero-image { order: 1; } .hero p { margin: 0 auto 2.5rem; } .steps-grid { grid-template-columns: repeat(2, 1fr); } .testimonials-grid { grid-template-columns: repeat(2, 1fr); } .contact-grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .header-container { flex-direction: column; gap: 1.25rem; padding-bottom: 0.5rem; } .nav-links { gap: 1rem; font-size: 0.9rem; } .calculator-section .form-grid { grid-template-columns: 1fr; } .calculator-section .lifestyle-grid { grid-template-columns: repeat(2, 1fr); } .calculator-section .glass-panel { padding: 1.5rem; } .trust-container { grid-template-columns: repeat(2, 1fr); } .footer-container { grid-template-columns: 1fr; gap: 2rem; text-align: center; } .hero h1 { font-size: 2.5rem; } } @media (max-width: 480px) { .steps-grid { grid-template-columns: 1fr; } .testimonials-grid { grid-template-columns: 1fr; } .contact-grid { grid-template-columns: 1fr; } .nav-links { flex-wrap: wrap; justify-content: center; } .calculator-section .lifestyle-grid { grid-template-columns: 1fr; } .calculator-section .glass-panel { padding: 1rem; } .step-number { top: 10px; right: 10px; } } /* Live Preview Styles */ .live-preview-card { position: fixed; bottom: 2rem; right: 2rem; background: white; padding: 1.25rem; border-radius: 16px; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); z-index: 100; width: 220px; transform: translateY(20px); opacity: 0; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); border: 1px solid #E2E8F0; pointer-events: none; } .live-preview-card.visible { transform: translateY(0); opacity: 1; pointer-events: auto; } .live-preview-header { display: flex; justify-content: space-between; align-items: center; font-size: 0.75rem; color: #64748B; margin-bottom: 0.5rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; } .live-risk-score { font-size: 2.25rem; font-weight: 800; color: #1E293B; line-height: 1; margin-bottom: 0.25rem; } .live-risk-label { font-size: 0.875rem; font-weight: 500; color: #64748B; } /* Range Sliders Removed - Logic and UI cleaned up as requested */
/* =============================================================================
1. GLOBAL STYLES - Used across ALL pages (index.html, calculate.html, recommendation.html)
============================================================================= */
/* -----------------------------------------------------------------------------
1.1 CSS Variables & Design Tokens
----------------------------------------------------------------------------- */
:root {
/* Color System - Human Centric */
--primary-color: #3B82F6;
--primary-hover: #2563EB;
--secondary-color: #64748B;
--accent-color: #8B5CF6;
--success: #10B981;
--warning: #F59E0B;
--danger: #EF4444;
/* Backgrounds */
--bg-body: #F8FAFC;
--bg-surface: #FFFFFF;
--bg-subtle: #F1F5F9;
--glass-bg: rgba(255, 255, 255, 0.95);
/* Typography */
--text-main: #1E293B;
--text-muted: #64748B;
--text-light: #94A3B8;
/* Spacing & Layout */
--space-xs: 0.25rem;
--space-sm: 0.5rem;
--space-md: 1rem;
--space-lg: 1.5rem;
--space-xl: 2rem;
/* Borders & Radius */
--radius-sm: 0.375rem;
--radius-md: 0.5rem;
--radius-lg: 0.75rem;
--radius-xl: 1rem;
--border-color: #E2E8F0;
--border-subtle: #F1F5F9;
/* Shadows */
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
--shadow-glow: 0 0 20px rgba(59, 130, 246, 0.15);
}
/* -----------------------------------------------------------------------------
1.2 Base Reset & Typography (All Pages)
----------------------------------------------------------------------------- */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Plus Jakarta Sans', 'Outfit', sans-serif;
background-color: var(--bg-body);
color: var(--text-main);
line-height: 1.6;
overflow-x: hidden;
width: 100%;
}
a {
text-decoration: none;
color: inherit;
transition: color 0.2s ease;
}
ul {
list-style: none;
}
img {
max-width: 100%;
height: auto;
}
/* -----------------------------------------------------------------------------
1.3 Background Effect (All Pages)
----------------------------------------------------------------------------- */
.background-glow {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: -1;
background:
radial-gradient(circle at 10% 20%, rgba(59, 130, 246, 0.05) 0%, transparent 40%),
radial-gradient(circle at 90% 80%, rgba(139, 92, 246, 0.05) 0%, transparent 40%);
}
/* -----------------------------------------------------------------------------
1.4 Container (All Pages)