/* ========================================================================== GENEACADEMY CANONICAL DESIGN SYSTEM (CONSISTENT CLINICAL-ACADEMIC) ========================================================================== */ @import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700;800&family=IBM+Plex+Mono:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap'); :root { /* Color Palette */ --navy-deep: #0B1426; /* Primary brand: headers, headings, primary buttons */ --blue-clinical: #0284C7; /* Clinical focus, primary highlights */ --teal-digital: #0D9488; /* Digital & genomic accents */ --gold-academic: #B48028; /* Academic excellence, certificates */ --emerald-verified: #059669; /* Verified, completed, successful states */ --bg-clinical: #F8FAFC; /* Soft clinical white */ --card-bg: #FFFFFF; /* Pure white */ --text-main: #1E293B; /* Slate 800: readable body text */ --text-muted: #64748B; /* Slate 500: secondary text */ --border-subtle: #E2E8F0; /* Slate 200: subtle borders */ /* Typography Families - Strict English Prioritization */ --font-en-heading: 'Plus Jakarta Sans', 'Outfit', system-ui, -apple-system, sans-serif; --font-en-body: 'Inter', system-ui, -apple-system, sans-serif; --font-ar-heading: 'Cairo', system-ui, sans-serif; --font-ar-body: 'Cairo', system-ui, sans-serif; --font-mono: 'IBM Plex Mono', monospace; } body { background-color: var(--bg-clinical); color: var(--text-main); font-family: var(--font-en-body); font-size: 1.0625rem; line-height: 1.65; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } [dir="rtl"], [lang="ar"], .font-ar { font-family: var(--font-ar-body); font-size: 1.125rem; } h1, h2, h3, h4, h5, h6 { color: var(--navy-deep); font-family: var(--font-en-heading); font-weight: 700; line-height: 1.25; } [dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3, [dir="rtl"] h4, [dir="rtl"] h5, [dir="rtl"] h6, [lang="ar"] h1, [lang="ar"] h2, [lang="ar"] h3, [lang="ar"] h4, [lang="ar"] h5, [lang="ar"] h6 { font-family: var(--font-ar-heading); } /* Strictly use Monospace for IDs, tags, dates, and numbers only */ .font-mono-meta, .mono-meta, .status-tag, .badge-mono { font-family: var(--font-mono) !important; } /* Card System */ .academic-card { background-color: var(--card-bg); border: 1px solid var(--border-subtle); border-radius: 1rem; box-shadow: 0 4px 6px -1px rgba(11, 20, 38, 0.03), 0 2px 4px -1px rgba(11, 20, 38, 0.02); transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); } .academic-card:hover { border-color: var(--blue-clinical); box-shadow: 0 12px 24px -4px rgba(2, 132, 199, 0.08); transform: translateY(-2px); } /* 4-Status Evidence Badges */ .badge-status { font-family: var(--font-mono); font-size: 0.7rem; font-weight: 700; padding: 0.25rem 0.65rem; border-radius: 9999px; display: inline-flex; align-items: center; gap: 0.35rem; } .badge-verified { background-color: #ECFDF5; color: var(--emerald-verified); border: 1px solid #A7F3D0; } .badge-completed { background-color: #F0F9FF; color: var(--blue-clinical); border: 1px solid #BAE6FD; } .badge-inprogress { background-color: #FEFCE8; color: var(--gold-academic); border: 1px solid #FEF08A; } .badge-planned { background-color: #F8FAFC; color: #64748B; border: 1px solid #CBD5E1; } /* Button System */ .btn-primary { background-color: var(--navy-deep); color: #FFFFFF; font-family: var(--font-en-heading); font-weight: 600; padding: 0.75rem 1.5rem; border-radius: 0.75rem; transition: all 0.2s ease; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; } .btn-primary:hover { background-color: #060B14; box-shadow: 0 4px 12px rgba(11, 20, 38, 0.15); } .btn-clinical { background-color: var(--blue-clinical); color: #FFFFFF; font-family: var(--font-en-heading); font-weight: 600; padding: 0.75rem 1.5rem; border-radius: 0.75rem; transition: all 0.2s ease; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; } .btn-clinical:hover { background-color: #0369A1; box-shadow: 0 4px 12px rgba(2, 132, 199, 0.2); } /* Container & Grid Alignment System */ html, body { overflow-x: hidden; width: 100%; } .container-aligned { width: 100%; max-width: 80rem; margin-left: auto; margin-right: auto; padding-left: 1rem; padding-right: 1rem; } @media (min-width: 640px) { .container-aligned { padding-left: 1.5rem; padding-right: 1.5rem; } } @media (min-width: 1024px) { .container-aligned { padding-left: 2rem; padding-right: 2rem; } } /* Equal Height Flex Grid Cards */ .grid-aligned-cards { display: grid; align-items: stretch; } .grid-aligned-cards > * { display: flex; flex-direction: column; height: 100%; } /* ========================================================================== PRINT — Offline-Verifiable GA-Pass Credential Card Only this card prints; hides navigation, search inputs, and page buttons. ========================================================================== */ @media print { body { background: #FFFFFF !important; color: #000000 !important; font-size: 12pt; } header, nav, footer, .no-print, form, button { display: none !important; } .suda-pass-card { display: block !important; border: 2px solid #0B1426; border-radius: 12px; background: #FFFFFF; padding: 24px; max-width: 600px; margin: 20px auto; page-break-inside: avoid; box-shadow: none; } .sudapass-hash { font-family: 'IBM Plex Mono', 'Courier New', monospace; font-size: 9pt; word-break: break-all; border: 1px solid #E2E8F0; padding: 8px; background: #F8FAFC; color: #0B1426; } }