:root{--primary: #2563eb;--primary-dark: #1d4ed8;--secondary: #10b981;--bg: #f0f9ff;--card-bg: #ffffff;--text: #1e293b;--text-light: #64748b;--border: #e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,var(--bg) 0%,#dbeafe 100%);color:var(--text);min-height:100vh;line-height:1.6}.landing-page{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--card-bg);box-shadow:0 2px 4px #0000000d;padding:1rem 2rem;position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.75rem}.logo-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px}.logo-text{font-size:1.5rem;font-weight:700;color:var(--text)}.logo-text span{color:var(--primary)}.tagline,.header-contact{font-size:.875rem;color:var(--text-light)}.header-contact a{color:var(--primary);font-weight:600;text-decoration:none}.hero{text-align:center;padding:4rem 2rem 3rem;background:linear-gradient(180deg,var(--card-bg) 0%,transparent 100%)}.hero h1{font-size:2.75rem;font-weight:800;color:var(--text);margin-bottom:1rem;line-height:1.2}.hero h1 span{color:var(--primary)}.hero p{font-size:1.25rem;color:var(--text-light);max-width:600px;margin:0 auto}.portal-section{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.portal-heading{text-align:center;margin-bottom:2rem}.portal-heading h2{font-size:1.5rem;color:var(--text);margin-bottom:.5rem}.portal-heading p{color:var(--text-light)}.portal-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;max-width:1000px;margin:0 auto}.portal-card{background:var(--card-bg);border-radius:16px;padding:2rem;text-align:center;box-shadow:0 4px 6px #0000000d,0 10px 20px #0000000d;border:2px solid var(--border);transition:all .3s ease;cursor:pointer;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center}.portal-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #0000001a,0 20px 40px #0000001a;border-color:var(--primary)}.portal-card.patient:hover{border-color:var(--primary)}.portal-card.provider:hover{border-color:var(--secondary)}.portal-card.admin:hover{border-color:#8b5cf6}.portal-icon{width:80px;height:80px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:40px;margin-bottom:1.5rem}.patient .portal-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe)}.provider .portal-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.admin .portal-icon{background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.portal-card h3{font-size:1.5rem;font-weight:700;margin-bottom:.75rem;color:var(--text)}.portal-card p{color:var(--text-light);font-size:.95rem;margin-bottom:1.5rem;flex:1}.portal-btn{display:inline-block;padding:.875rem 2rem;border-radius:10px;font-weight:600;font-size:1rem;text-decoration:none;transition:all .2s;width:100%;max-width:200px}.patient .portal-btn{background:var(--primary);color:#fff}.patient .portal-btn:hover{background:var(--primary-dark)}.provider .portal-btn{background:var(--secondary);color:#fff}.provider .portal-btn:hover{background:#059669}.admin .portal-btn{background:#8b5cf6;color:#fff}.admin .portal-btn:hover{background:#7c3aed}.features{background:var(--card-bg);padding:4rem 2rem;margin-top:3rem}.features-content{max-width:1000px;margin:0 auto;text-align:center}.features h2{font-size:1.75rem;margin-bottom:.5rem;color:var(--text)}.features>p{color:var(--text-light);margin-bottom:3rem}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem}.feature-item{text-align:center;padding:1.5rem}.feature-icon{font-size:2.5rem;margin-bottom:1rem}.feature-item h4{font-size:1.1rem;margin-bottom:.5rem;color:var(--text)}.feature-item p{font-size:.875rem;color:var(--text-light)}.footer{background:var(--text);color:#fff;padding:2rem;text-align:center}.footer p{opacity:.8;font-size:.875rem}.footer a{color:#93c5fd;text-decoration:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:20px;padding:2.5rem;max-width:420px;width:90%;text-align:center;position:relative;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.75rem;color:#999;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:#f0f0f0;color:#333}.modal-icon{font-size:3.5rem;margin-bottom:1rem}.modal-content h2{font-size:1.5rem;color:var(--text);margin-bottom:.5rem}.modal-content p{color:var(--text-light);margin-bottom:2rem}.modal-buttons{display:flex;flex-direction:column;gap:1rem}.modal-btn{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border:2px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;transition:all .2s;text-align:left}.modal-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.modal-btn.new-patient:hover{border-color:var(--primary);background:#f0f7ff}.modal-btn.returning-patient:hover{border-color:var(--secondary);background:#f0fdf4}.modal-btn .btn-icon{font-size:2rem;flex-shrink:0}.modal-btn .btn-text{display:flex;flex-direction:column}.modal-btn .btn-text strong{font-size:1.1rem;color:var(--text);margin-bottom:.25rem}.modal-btn .btn-text small{font-size:.85rem;color:var(--text-light)}@media (max-width: 768px){.hero h1{font-size:2rem}.hero p{font-size:1rem}.portal-cards{grid-template-columns:1fr;max-width:400px}.header-content{flex-direction:column;gap:.5rem;text-align:center}.modal-content{padding:2rem 1.5rem}}
