@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500&family=JetBrains+Mono:wght@400;500;600;700&display=swap");:root{--blue:#0045EB;--navy:#00072B;--blue-50:#eef2ff;--blue-100:#dde6ff;--blue-200:#b9caff;--blue-300:#8aa6ff;--blue-400:#4f78ff;--blue-500:#0045EB;--blue-600:#0039c9;--blue-700:#002fa6;--blue-800:#00277f;--blue-900:#001a55;--ink-950:#00051f;--ink-900:#00072B;--ink-850:#060f33;--ink-800:#0d1740;--ink-700:#1b2750;--ink-600:#33406b;--ink-500:#4d5a82;--ink-400:#6b7798;--ink-300:#98a2bd;--ink-200:#c3cade;--ink-100:#e3e8f2;--white:#ffffff;--bg:#ffffff;--bg-subtle:#f6f8fc;--bg-muted:#eef2f8;--bg-sunken:#e7ecf5;--fg-1:#0a1024;--fg-2:#3c4660;--fg-3:#69748f;--fg-4:#98a1b6;--on-navy-1:#ffffff;--on-navy-2:#c3cbe2;--on-navy-3:#8b95b6;--border-1:#e6eaf2;--border-2:#d4dae8;--hairline:#eef1f7;--border-dark:rgba(255,255,255,0.10);--border-dark-2:rgba(255,255,255,0.18);--success:#16a34a;--success-600:#15803d;--success-bg:#e7f7ec;--success-fg:#0f7a38;--dot-live:#22c55e;--warning:#f59e0b;--warning-600:#d97706;--warning-bg:#fef3c7;--warning-fg:#b45309;--dot-deploy:#fbbf24;--danger:#ef4444;--danger-600:#dc2626;--danger-bg:#fdeaea;--danger-fg:#c0322b;--dot-offline:#94a3b8;--info:var(--blue-500);--info-bg:var(--blue-50);--earn:#0e9f6e;--earn-600:#0a7d57;--earn-bg:#e3f7ef;--tier-frontend:#0045EB;--tier-backend:#7a5cff;--tier-content:#d97706;--tier-fullstack:#0f766e;--tier-frontend-bg:#eef2ff;--tier-backend-bg:#f1edff;--tier-content-bg:#fdf2e0;--tier-fullstack-bg:#ccfbf1;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:28px;--r-3xl:36px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--sp-32:128px;--shadow-xs:0 1px 2px rgba(0,7,43,0.06);--shadow-sm:0 1px 3px rgba(0,7,43,0.08),0 1px 2px rgba(0,7,43,0.04);--shadow-md:0 6px 20px rgba(0,7,43,0.08);--shadow-lg:0 16px 40px rgba(0,7,43,0.10);--shadow-xl:0 28px 64px rgba(0,7,43,0.14);--shadow-blue:0 10px 28px rgba(0,69,235,0.28);--shadow-blue-sm:0 4px 14px rgba(0,69,235,0.24);--font-display:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-sans:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--t-display:64px;--t-h1:48px;--t-h2:36px;--t-h3:28px;--t-h4:22px;--t-h5:18px;--t-body-lg:18px;--t-body:16px;--t-body-sm:14px;--t-caption:13px;--t-overline:12px;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--dur-fast:120ms;--dur:200ms;--dur-slow:360ms}.t-display{font-size:var(--t-display);line-height:1.04;letter-spacing:-.025em}.t-display,.t-h1{font-family:var(--font-display);font-weight:800;color:var(--fg-1)}.t-h1{font-size:var(--t-h1);line-height:1.08;letter-spacing:-.022em}.t-h2{font-size:var(--t-h2);line-height:1.14;letter-spacing:-.018em}.t-h2,.t-h3{font-family:var(--font-display);font-weight:700;color:var(--fg-1)}.t-h3{font-size:var(--t-h3);line-height:1.2;letter-spacing:-.014em}.t-h4{font-family:var(--font-display);font-weight:700;font-size:var(--t-h4);line-height:1.3;letter-spacing:-.01em}.t-h4,.t-h5{color:var(--fg-1)}.t-h5{font-family:var(--font-sans);font-weight:600;font-size:var(--t-h5);line-height:1.4}.t-body-lg{font-size:var(--t-body-lg)}.t-body,.t-body-lg{font-family:var(--font-sans);font-weight:400;line-height:1.6;color:var(--fg-2)}.t-body{font-size:var(--t-body)}.t-body-sm{font-weight:400;font-size:var(--t-body-sm);line-height:1.55;color:var(--fg-2)}.t-body-sm,.t-caption{font-family:var(--font-sans)}.t-caption{font-weight:500;font-size:var(--t-caption);line-height:1.4;color:var(--fg-3)}.t-overline{font-family:var(--font-sans);font-weight:700;font-size:var(--t-overline);line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-600)}.t-mono{font-weight:500;font-size:var(--t-body-sm);font-feature-settings:"tnum" 1}.t-mono,.t-naira{font-family:var(--font-mono);letter-spacing:-.01em}.t-naira{font-weight:600;font-feature-settings:"tnum" 1;color:var(--fg-1)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-1);background:var(--bg-subtle);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-weight:600;font-size:var(--t-body-sm);border:1px solid transparent;border-radius:var(--r-sm);padding:10px 16px;cursor:pointer;transition:background var(--dur),border-color var(--dur),opacity var(--dur);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue-500);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-600)}.btn-ghost{background:transparent;color:var(--fg-2);border-color:var(--border-2)}.btn-ghost:hover:not(:disabled){background:var(--bg-muted)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-600)}.btn-sm{padding:7px 12px;font-size:var(--t-caption)}.btn-block{width:100%}.card{background:var(--bg);border:1px solid var(--border-1);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--sp-6)}.field{margin-bottom:var(--sp-4)}.field label{display:block;font-weight:600;font-size:var(--t-caption);color:var(--fg-2);margin-bottom:6px}.input{width:100%;font-family:var(--font-sans);font-size:var(--t-body-sm);color:var(--fg-1);background:var(--bg);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:10px 12px;transition:border-color var(--dur),box-shadow var(--dur)}.input:focus{outline:none;border-color:var(--blue-400);box-shadow:0 0 0 3px var(--blue-50)}.input.mono{font-family:var(--font-mono);letter-spacing:.18em;text-align:center;font-size:var(--t-h5)}.field-hint{color:var(--fg-3);margin-top:6px}.alert,.field-hint{font-size:var(--t-caption)}.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);margin-bottom:var(--sp-4)}.alert-error{background:var(--danger-bg);color:var(--danger-fg)}.alert-info{background:var(--info-bg);color:var(--blue-700)}.alert-success{background:var(--success-bg);color:var(--success-fg)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6);background:radial-gradient(1200px 600px at 50% -10%,var(--blue-50),transparent),var(--bg-subtle)}.auth-card{width:100%;max-width:400px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:var(--sp-6)}.auth-brand .mark{width:34px;height:34px;border-radius:var(--r-sm);background:var(--blue-500);color:#fff;display:grid;place-items:center}.auth-brand b{font-family:var(--font-display);font-weight:800}.auth-brand span{color:var(--fg-3);font-weight:600}.auth-card h1{font-family:var(--font-display);font-size:var(--t-h4);margin:0 0 4px}.auth-card p.sub{color:var(--fg-3);margin:0 0 var(--sp-5);font-size:var(--t-caption)}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.sidebar{background:var(--ink-900);color:var(--on-navy-2);padding:var(--sp-5) var(--sp-4);display:flex;flex-direction:column;gap:4px}.sidebar .brand{display:flex;align-items:center;gap:9px;padding:0 8px var(--sp-5)}.sidebar .brand .mark{width:30px;height:30px;border-radius:var(--r-sm);background:var(--blue-500);color:#fff;display:grid;place-items:center}.sidebar .brand b{font-family:var(--font-display);font-weight:800;color:#fff}.sidebar .brand span{font-size:var(--t-overline);color:var(--on-navy-3);letter-spacing:.1em;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-sm);color:var(--on-navy-2);font-weight:500;transition:background var(--dur),color var(--dur)}.nav-link:hover{background:var(--ink-800);color:#fff}.nav-link.active{background:var(--blue-500);color:#fff}.sidebar .spacer{flex:1 1}.sidebar .who{border-top:1px solid var(--border-dark);padding-top:var(--sp-4);margin-top:var(--sp-4);font-size:var(--t-caption)}.sidebar .who .email{color:#fff;font-weight:600;word-break:break-all}.sidebar .who .role{color:var(--on-navy-3);text-transform:capitalize}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-8);border-bottom:1px solid var(--border-1);background:var(--bg)}.topbar h1{font-family:var(--font-display);font-size:var(--t-h4);margin:0}.content{padding:var(--sp-8);flex:1 1}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:var(--sp-4);gap:var(--sp-4)}.stat{background:var(--bg);border:1px solid var(--border-1);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-xs)}.stat .label{font-size:var(--t-caption);color:var(--fg-3);font-weight:600}.stat .value{font-family:var(--font-mono);font-weight:700;font-size:var(--t-h3);color:var(--fg-1);margin-top:6px;font-feature-settings:"tnum" 1}.table-wrap{background:var(--bg);border:1px solid var(--border-1);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-xs)}table.tbl{width:100%;border-collapse:collapse;font-size:var(--t-caption)}table.tbl th{text-align:left;font-weight:700;color:var(--fg-3);text-transform:uppercase;letter-spacing:.04em;font-size:var(--t-overline);padding:12px 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border-1)}table.tbl td{padding:13px 16px;border-bottom:1px solid var(--hairline);color:var(--fg-2)}table.tbl tr:last-child td{border-bottom:none}table.tbl td.mono{font-family:var(--font-mono)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);font-size:var(--t-overline);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pill-blue{background:var(--blue-50);color:var(--blue-700)}.pill-gray{background:var(--bg-muted);color:var(--fg-3)}.pill-amber{background:var(--warning-bg);color:var(--warning-fg)}.row-actions{display:flex;gap:8px}.empty-row,.muted{color:var(--fg-3)}.empty-row{text-align:center;padding:var(--sp-8)}.scrim{position:fixed;inset:0;background:rgba(0,7,43,.45);display:grid;place-items:center;z-index:50}.modal,.scrim{padding:var(--sp-6)}.modal{background:var(--bg);border-radius:var(--r-lg);width:100%;max-width:440px;box-shadow:var(--shadow-xl)}.modal h3{font-family:var(--font-display);margin:0 0 var(--sp-4)}