.auth-card{width:100%;max-width:420px;background:#fff;border-radius:14px;padding:32px 28px;border:1px solid #e2e8f0}.auth-logo{text-align:center;margin-bottom:24px}.auth-logo h1{font-size:28px;letter-spacing:1px;color:var(--primary)}.auth-logo p{font-size:13px;color:#64748b}.auth-title{font-size:22px;margin-bottom:6px}.auth-subtitle{font-size:14px;color:#64748b;margin-bottom:24px}.role-toggle{display:flex;background:#f1f5f9;border-radius:10px;padding:4px;margin-bottom:24px}.role-toggle button{flex:1;border:none;padding:10px 0;font-size:14px;font-weight:600;border-radius:8px;background:transparent;color:#475569;cursor:pointer}.role-toggle button.active{background:#fff;color:#0d9488;border:1px solid #e2e8f0}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#334155}.form-group span{color:#dc2626}.form-group input{width:100%;padding:12px;border-radius:8px;border:1px solid #e2e8f0;font-size:14px}.form-group input::placeholder{color:#94a3b8}.form-group input:focus{outline:none;border-color:#0d9488}.primary-btn{width:100%;padding:14px;border-radius:10px;border:none;background:linear-gradient(90deg,var(--primary),var(--primary-600));color:#fff;font-size:15px;font-weight:700;cursor:pointer;margin-top:12px;box-shadow:0 10px 30px #2563eb1f}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 18px 48px #2563eb24}.auth-footer{text-align:center;margin-top:18px;font-size:13px}.auth-footer a{font-weight:600}.trust-bar{margin-top:28px;padding-top:14px;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;font-size:11px;color:#64748b}.app{min-height:100vh;background-color:#f8fafc;display:flex;flex-direction:column}:root{--brand: #07263f;--accent: #1e40af;--primary: #2563eb;--primary-600: #1e40af;--muted: #556577;--bg: #eaf6ff;--card: #ffffff;--success: #059669;--warning: #f59e0b;--danger: #ef4444;--radius: 12px}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;color:var(--brand);background:linear-gradient(180deg,var(--bg) 0%,#f7fbff 100%);font-weight:300;line-height:1.5}.app-header{background-color:#fff;border-bottom:1px solid #e2e8f0;padding:14px 24px;display:flex;align-items:center;justify-content:space-between}.app-header{background:linear-gradient(90deg,#2563eb0f,#1e40af08)}.app-header h1{font-size:18px;font-weight:700;color:#0f172a}.app-header span{font-size:13px;color:#64748b}.header-actions{display:flex;align-items:center;gap:12px}.header-actions button{background:#fff;border:1px solid #e2e8f0;color:#0d9488;padding:6px 14px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer}.header-actions button:hover{background-color:#f1f5f9}.app-content{flex:1;padding:24px}.centered-page{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-column{display:flex;flex-direction:column}.gap-sm{gap:8px}.gap-md{gap:16px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.app-footer{background-color:#fff;border-top:1px solid #e2e8f0;padding:12px 24px;font-size:12px;color:#64748b;text-align:center}.janm-card-inner{width:100%;max-width:980px;display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:12px;overflow:hidden}.janm-card-inner .left{background:linear-gradient(180deg,#063c3b,#064c4b);color:#fff;padding:36px;display:flex;flex-direction:column;justify-content:space-between}.janm-card-inner .right{background:transparent;padding:28px}.centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.app-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background-color:transparent}.app-hero-bg{position:relative;overflow:hidden}.app-hero-bg:before{content:"";position:absolute;inset:-20%;background:radial-gradient(600px 300px at 10% 20%,rgba(37,99,235,.08),transparent 12%),radial-gradient(500px 260px at 90% 80%,rgba(30,64,175,.06),transparent 14%);transform:translateZ(0);animation:slowPan 12s linear infinite alternate;z-index:0}@keyframes slowPan{0%{transform:translate3d(-10%,-5%,0) scale(1)}50%{transform:translate3d(8%,6%,0) scale(1.03)}to{transform:translate3d(-10%,-5%,0) scale(1)}}.auth-card{position:relative;z-index:1;transition:transform .28s ease,box-shadow .28s ease;border-radius:14px}.auth-card:hover{transform:translateY(-6px);box-shadow:0 28px 80px #0e2a531f}.primary-btn{transition:transform .18s ease,box-shadow .18s ease}.primary-btn:active{transform:translateY(1px)}.dashboard-layout{display:flex;min-height:100vh;background-color:#f8fafc}.sidebar{width:240px;background-color:#fff;border-right:1px solid #e2e8f0;padding:20px}.sidebar h2{font-size:18px;font-weight:700;color:#1e40af;margin-bottom:24px}.sidebar ul{list-style:none;padding:0;margin:0}.sidebar li{padding:10px 12px;border-radius:8px;font-size:14px;color:#334155;cursor:pointer;margin-bottom:6px}.sidebar li:hover{background-color:#f1f5f9}.sidebar li.active{background-color:#eff6ff;color:#2563eb;font-weight:600}.main-area{flex:1;display:flex;flex-direction:column}.topbar{background-color:#fff;border-bottom:1px solid #e2e8f0;padding:14px 24px;display:flex;justify-content:space-between;align-items:center}.topbar h3{font-size:18px;font-weight:600;color:#1e40af}.avatar{width:34px;height:34px;border-radius:50%;background-color:#cbd5f5}.content{padding:24px;max-width:1100px}.card{background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:16px}.card h4{font-size:15px;font-weight:600;margin-bottom:10px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.sidebar-profile{display:flex;flex-direction:column;align-items:center;margin-bottom:28px;text-align:center}.sidebar-profile{display:flex;flex-direction:column;align-items:center;margin-bottom:28px}.sidebar-profile img{width:180px;height:auto;object-fit:contain;border-radius:8px;margin-bottom:12px;background-color:#f8fafc;padding:8px;border:1px solid #e2e8f0}.badge.pending{background-color:#fff7ed;color:#9a3412}.badge.scheduled{background-color:#eff6ff;color:#1d4ed8}button.primary{background-color:#2563eb;color:#fff;border:none;padding:8px 14px;border-radius:8px;font-weight:600}button.primary:hover{background-color:#1d4ed8}button.secondary{background-color:#fff;color:#2563eb;border:1px solid #2563eb;padding:6px 12px;border-radius:8px;font-weight:600}button.secondary:hover{background-color:#eff6ff}.card.highlight{background-color:#eff6ff;border-color:#bfdbfe}.child-summary p{font-size:14px;color:#334155}.vaccine-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #f1f5f9}.vaccine-row:last-child{border-bottom:none}.badge{font-size:12px;padding:4px 10px;border-radius:999px;font-weight:600}.badge.done{background-color:#dcfce7;color:#166534}.badge.pending{background-color:#fff7ed;color:#c2410c}.badge.scheduled{background-color:#eff6ff;color:#2563eb}.qr-box{border:1px dashed #cbd5f5;border-radius:12px;padding:14px;width:fit-content;margin-top:12px}.appointment-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f1f5f9}.appointment-info p{font-size:13px;color:#475569}.scan-box{margin-top:16px;border:1px dashed #cbd5f5;border-radius:12px;padding:24px;text-align:center}
