@import"https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap";:root{--brand-indigo-900: #0b1447;--brand-indigo-800: #14288c;--brand-indigo-700: #28288c;--brand-violet-600: #3c288c;--brand-violet-500: #503ca0;--brand-purple-400: #78288c;--brand-lavender-300: #a08cdc;--brand-lavender-100: #dcdcf0;--brand-cyan-400: #288cdc;--grad-wizard: linear-gradient(135deg, #14288c 0%, #3c288c 40%, #78288c 100%);--bg-0: #ffffff;--bg-1: #f7f6fb;--bg-2: #eeebf6;--fg-1: #0b1447;--fg-2: #3c3a66;--fg-3: #6b6a8a;--fg-on-dark: #dcdcf0;--fg-on-dark-2: #c9c8e6;--border-1: #e4e1ef;--border-2: #d0cce0;--accent: var(--brand-indigo-700);--accent-hover: var(--brand-violet-500);--success-bg: #e2f4ee;--success-fg: #136b52;--success: #1a8c6b;--warning-bg: #fdf1df;--warning-fg: #8a5508;--warning: #d48a1f;--danger-bg: #fbe5e9;--danger-fg: #a3283d;--danger: #c4334b;--info-bg: #e3f0fb;--info-fg: #1a5f96;--violet-bg: #efeafb;--violet-fg: #503ca0;--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", "SF Mono", Menlo, Consolas, monospace;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(11, 20, 71, .06);--shadow-md: 0 8px 24px rgba(20, 40, 140, .1);--shadow-wizard: 0 12px 32px rgba(60, 40, 140, .28);--focus: 0 0 0 4px rgba(40, 140, 220, .25)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-sans);color:var(--fg-1);background:var(--bg-1);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.01em;line-height:1.2}h1{font-size:clamp(26px,3vw,32px);font-weight:700}h2{font-size:18px;font-weight:600}h3{font-size:16px;font-weight:600}p{margin:0}a{color:var(--accent)}a:hover{color:var(--accent-hover)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--fg-3);font-size:13px}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--violet-fg);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.spread{justify-content:space-between}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.page-center{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:24px}.empty{color:var(--fg-3);padding:24px;text-align:center;border:1.5px dashed var(--border-2);border-radius:var(--radius-lg)}.spinner{width:28px;height:28px;border-radius:999px;border:3px solid var(--bg-2);border-top-color:var(--accent);display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--radius-md);font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;border:1px solid transparent}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 6px #0b14471f}.btn-primary:hover:not(:disabled){background:var(--accent-hover);color:#fff}.btn-secondary{background:var(--bg-0);color:var(--fg-1);border-color:var(--border-2)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--accent)}.btn-danger{background:var(--danger-bg);color:var(--danger-fg);border-color:#e8b7c0}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:14px;font-weight:500}.hint{font-size:12px;color:var(--fg-3)}.field-error{font-size:12px;color:var(--danger-fg)}.input{min-height:44px;padding:10px 12px;border:1px solid var(--border-2);border-radius:var(--radius-md);font:inherit;font-size:14px;color:var(--fg-1);background:var(--bg-0);width:100%}textarea.input{resize:vertical}.input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.card{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm)}.card-dark{background:var(--brand-indigo-900);color:#fff;border:0;box-shadow:var(--shadow-wizard)}.card-link{text-decoration:none;color:inherit}.card-link:hover{border-color:var(--brand-lavender-300);color:inherit}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.chip-success{background:var(--success-bg);color:var(--success-fg)}.chip-warning{background:var(--warning-bg);color:var(--warning-fg)}.chip-danger{background:var(--danger-bg);color:var(--danger-fg)}.chip-info{background:var(--info-bg);color:var(--info-fg)}.chip-violet{background:var(--violet-bg);color:var(--violet-fg)}.chip-neutral{background:var(--bg-2);color:var(--fg-2)}.banner{padding:12px 16px;border-radius:var(--radius-md);font-size:14px}.banner-error{background:var(--danger-bg);color:var(--danger-fg)}.banner-info{background:var(--info-bg);color:var(--info-fg)}.banner-success{background:var(--success-bg);color:var(--success-fg)}.progress{height:6px;border-radius:999px;background:var(--bg-2);overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:999px}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;color:var(--fg-3);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:10px 12px}.table td{padding:12px;border-top:1px solid var(--bg-2);vertical-align:middle}.table .num{text-align:right;font-family:var(--font-mono)}.tabs{display:flex;gap:4px;padding:4px;background:var(--bg-2);border-radius:var(--radius-md);flex-wrap:wrap}.tabs button{min-height:36px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--fg-2);font:inherit;font-size:13px;cursor:pointer}.tabs button[aria-pressed=true]{background:var(--bg-0);color:var(--fg-1);font-weight:600;box-shadow:var(--shadow-sm)}.shell{display:flex;flex-wrap:wrap;min-height:100vh}.sidebar{flex:1 1 232px;max-width:100%;background:var(--brand-indigo-900);color:var(--fg-on-dark);padding:24px 16px;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;color:#fff;text-decoration:none}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--grad-wizard);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.brand small{display:block;font-size:12px;color:var(--fg-on-dark-2)}.nav-group{display:flex;flex-direction:column;gap:4px}.nav-group>span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#b4b3d6;padding:0 12px}.nav-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:2px}.nav-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--fg-on-dark);text-decoration:none;font-size:14px}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{background:#a08cdc33;color:#fff;font-weight:500}.sidebar-user{margin-top:auto;padding:12px;border-radius:12px;background:#ffffff0f;display:flex;flex-direction:column;gap:8px;font-size:13px;color:#fff;word-break:break-all}.sidebar-user button{color:var(--fg-on-dark);border-color:#ffffff40;background:transparent}.content{flex:999 1 560px;min-width:0;padding:32px clamp(16px,3vw,40px) 48px;display:flex;flex-direction:column;gap:24px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stat{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:4px}.stat strong{font-size:28px;letter-spacing:-.01em}.kanban{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:16px;overflow-x:auto;padding-bottom:8px}.kanban-col{background:var(--bg-2);border-radius:var(--radius-lg);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:240px}.dot{width:10px;height:10px;border-radius:999px;display:inline-block}.topbar{background:var(--brand-indigo-900)}.topbar-inner,.container{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}.topbar-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;min-height:64px}.topbar a.nav{color:var(--fg-on-dark);text-decoration:none;font-size:14px;padding:12px}.hero{background:var(--brand-indigo-900);color:#fff}.hero-inner{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;padding-top:48px;padding-bottom:64px}.hero h1{font-size:clamp(34px,5vw,54px);line-height:1.05;letter-spacing:-.02em}.hero p.lead{font-size:18px;color:var(--fg-on-dark);max-width:620px;white-space:pre-line}.enroll-card{flex:1 1 340px;max-width:440px;background:#fff;color:var(--fg-1);border-radius:var(--radius-xl);padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 16px 48px #14288c59}.option{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--border-2);border-radius:14px;cursor:pointer;background:#fff}.option:has(input:checked){border:2px solid var(--accent);background:#f4f1fb}.option input{accent-color:var(--accent);width:18px;height:18px;margin:2px 0 0}.section{padding-block:56px;display:flex;flex-direction:column;gap:20px}.narrow{max-width:480px;margin:0 auto;padding:32px 16px 48px;display:flex;flex-direction:column;gap:20px}.topbar a.nav-active{color:#fff;background:#a08cdc33;border-radius:10px;font-weight:600}
