@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";
:root{--bg-primary:#0a0d14;--bg-secondary:#0f1523;--bg-card:#121826bf;--bg-card-hover:#1a2234e6;--bg-glass:#121826a6;--border-subtle:#ffffff14;--border-glow:#6366f159;--accent-primary:#6366f1;--accent-primary-hover:#4f46e5;--accent-secondary:#8b5cf6;--accent-cyan:#06b6d4;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-lg:0 16px 40px #00000080;--shadow-glow:0 0 25px #6366f140;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:9999px;--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);background-image:radial-gradient(circle at 15% 10%,#6366f11f 0%,#0000 40%),radial-gradient(circle at 85% 25%,#8b5cf61a 0%,#0000 45%),radial-gradient(circle at 50% 80%,#06b6d414 0%,#0000 50%);min-height:100vh;line-height:1.5;overflow-x:hidden}.glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle)}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all .25s cubic-bezier(.16,1,.3,1)}.glass-card:hover{box-shadow:0 8px 30px #0006, var(--shadow-glow);border-color:#6366f14d}header{z-index:100;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;display:flex}.brand-icon{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex;box-shadow:0 4px 15px #6366f166}.brand-info h1{letter-spacing:-.02em;background:linear-gradient(135deg,#fff 30%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.15rem;font-weight:700}.brand-info p{color:var(--text-muted);font-size:.78rem}.header-controls{align-items:center;gap:16px;display:flex}.health-badge{border-radius:var(--radius-full);color:var(--accent-emerald);background:#10b9811a;border:1px solid #10b98140;align-items:center;gap:8px;padding:6px 14px;font-size:.78rem;font-weight:600;display:flex}.health-dot{background:var(--accent-emerald);width:8px;height:8px;box-shadow:0 0 10px var(--accent-emerald);border-radius:50%;animation:2s infinite pulse}@keyframes pulse{0%{opacity:.6;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}to{opacity:.6;transform:scale(.96)}}.nav-tabs{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#0f1523cc;gap:8px;padding:5px;display:flex}.tab-btn{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:9px 20px;font-family:inherit;font-size:.86rem;font-weight:600;transition:all .2s;display:flex}.tab-btn:hover{color:var(--text-primary);background:#ffffff0a}.tab-btn.active{background:var(--accent-primary);color:#fff;box-shadow:0 2px 10px #6366f166}.container{max-width:1440px;margin:0 auto;padding:28px 32px 60px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:28px;display:grid}.stat-card{align-items:center;gap:16px;padding:18px 22px;display:flex}.stat-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.stat-icon.indigo{color:#818cf8;background:#6366f126}.stat-icon.emerald{color:#34d399;background:#10b98126}.stat-icon.amber{color:#fbbf24;background:#f59e0b26}.stat-icon.cyan{color:#22d3ee;background:#06b6d426}.stat-info .stat-value{letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.stat-info .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;font-weight:500}.tab-content{display:none}.tab-content.active{animation:.3s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.split-layout{grid-template-columns:380px 1fr;gap:28px;display:grid}@media (max-width:1024px){.split-layout{grid-template-columns:1fr}}.card-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.card-title{align-items:center;gap:10px;font-size:1rem;font-weight:700;display:flex}.card-body{padding:24px}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:.82rem;font-weight:600;display:block}.form-control,select.form-control{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);background:#0a0e17b3;outline:none;padding:11px 14px;font-family:inherit;font-size:.9rem;transition:all .2s}.form-control:focus,select.form-control:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #6366f133}select.form-control option{background:var(--bg-secondary);color:var(--text-primary)}.dropzone{border-radius:var(--radius-md);text-align:center;cursor:pointer;background:#6366f108;border:2px dashed #6366f159;padding:32px 20px;transition:all .25s;position:relative}.dropzone:hover,.dropzone.dragover{border-color:var(--accent-primary);background:#6366f114;box-shadow:inset 0 0 20px #6366f11a}.dropzone-icon{color:var(--accent-primary);margin-bottom:12px;font-size:38px}.dropzone-title{margin-bottom:4px;font-size:.95rem;font-weight:600}.dropzone-hint{color:var(--text-muted);font-size:.75rem}.file-selected-box{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff0a;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;display:none}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font-family:inherit;font-size:.86rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));color:#fff;box-shadow:0 4px 14px #6366f159}.btn-primary:hover:not(:disabled){opacity:.93;transform:translateY(-1px);box-shadow:0 6px 20px #6366f180}.btn-secondary{color:var(--text-primary);border:1px solid var(--border-subtle);background:#ffffff0f}.btn-secondary:hover:not(:disabled){background:#ffffff1a}.btn-success{background:var(--accent-emerald);color:#fff}.btn-danger{color:var(--accent-rose);background:#f43f5e26;border:1px solid #f43f5e4d}.btn-danger:hover{background:var(--accent-rose);color:#fff}.btn-sm{border-radius:6px;padding:6px 12px;font-size:.78rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.table-responsive{overflow-x:auto}table.custom-table{border-collapse:collapse;text-align:left;width:100%}table.custom-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);background:#0f152380;padding:14px 18px;font-size:.76rem;font-weight:600}table.custom-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:14px 18px;font-size:.86rem}table.custom-table tr:hover td{color:var(--text-primary);background:#ffffff05}.badge{border-radius:var(--radius-full);text-transform:capitalize;align-items:center;gap:5px;padding:4px 10px;font-size:.74rem;font-weight:600;display:inline-flex}.badge-pending{color:#94a3b8;background:#94a3b826}.badge-parsing,.badge-chunking,.badge-embedding,.badge-generating_notes{color:#818cf8;background:#6366f126;border:1px solid #6366f14d}.badge-awaiting_notes_approval,.badge-awaiting_topics_approval,.badge-awaiting_baseline_approval{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b59}.badge-ready{color:#34d399;background:#10b98126;border:1px solid #10b98159}.badge-error,.badge-rejected{color:#fb7185;background:#f43f5e26;border:1px solid #f43f5e4d}.stepper{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex;position:relative}.stepper:before{content:"";background:var(--border-subtle);z-index:1;height:2px;position:absolute;top:24px;left:40px;right:40px}.step-item{z-index:2;text-align:center;flex:1;position:relative}.step-circle{background:var(--bg-secondary);border:2px solid var(--border-subtle);width:48px;height:48px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 10px;font-size:.95rem;font-weight:700;transition:all .3s;display:flex}.step-item.active .step-circle{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:0 0 20px #6366f180}.step-item.completed .step-circle{background:var(--accent-emerald);border-color:var(--accent-emerald);color:#fff}.step-title{color:var(--text-secondary);font-size:.84rem;font-weight:600}.step-item.active .step-title{color:var(--text-primary)}.gate-card{margin-bottom:24px;padding:24px}.accordion-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:#0f152366;margin-bottom:12px;overflow:hidden}.accordion-header{cursor:pointer;justify-content:space-between;align-items:center;padding:16px 20px;font-size:.92rem;font-weight:600;transition:background .2s;display:flex}.accordion-header:hover{background:#ffffff08}.accordion-body{border-top:1px solid var(--border-subtle);background:#0a0e1780;padding:20px;display:none}.accordion-item.open .accordion-body{display:block}.option-list{flex-direction:column;gap:10px;margin:14px 0;display:flex}.option-item{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff08;align-items:flex-start;gap:12px;padding:12px 16px;font-size:.88rem;display:flex}.option-item.correct{color:#34d399;background:#10b9811a;border-color:#10b98166}.option-key{background:#ffffff14;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.8rem;font-weight:700;display:flex}.option-item.correct .option-key{background:var(--accent-emerald);color:#fff}#toast-container{z-index:1000;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:28px;right:28px}.toast{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-primary);box-shadow:var(--shadow-lg);align-items:center;gap:12px;min-width:300px;padding:14px 20px;font-size:.86rem;animation:.3s slideIn;display:flex}.toast-success{border-left:4px solid var(--accent-emerald)}.toast-error{border-left:4px solid var(--accent-rose)}.toast-info{border-left:4px solid var(--accent-primary)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:500;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.active{display:flex}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-title{font-size:1.05rem;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:22px}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.user-badge{border-radius:var(--radius-full);background:#6366f11f;border:1px solid #6366f14d;align-items:center;gap:10px;padding:5px 12px;display:flex}.user-avatar{font-size:1.1rem}.user-details{flex-direction:column;line-height:1.15;display:flex}.user-name{color:#fff;font-size:.82rem;font-weight:700}.user-sub{color:#a5b4fc;font-size:.68rem}.btn-ghost{cursor:pointer;opacity:.7;background:0 0;border:none;padding:4px;transition:opacity .2s}.btn-ghost:hover{opacity:1}.quick-user-chip{border-radius:var(--radius-md);cursor:pointer;background:#6366f11a;border:1px solid #6366f140;align-items:center;gap:12px;margin-top:8px;padding:12px 16px;transition:all .2s;display:flex}.quick-user-chip:hover{border-color:var(--accent-primary);background:#6366f133;transform:translateY(-1px)}.quick-user-chip .chip-name{color:#fff;font-size:.9rem;font-weight:700}.quick-user-chip .chip-meta{color:var(--text-muted);font-size:.75rem}.learner-hero{border-radius:var(--radius-md);background:linear-gradient(135deg,#6366f12e 0%,#8b5cf624 100%);border:1px solid #6366f159;margin-bottom:24px;padding:24px;position:relative;overflow:hidden}.learner-hero:after{content:"🎓";opacity:.08;pointer-events:none;font-size:90px;position:absolute;bottom:-15px;right:20px}.learner-hero h2{color:#fff;margin-bottom:6px;font-size:1.4rem;font-weight:800}.learner-meta-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.learner-tag{border-radius:var(--radius-full);background:#ffffff14;border:1px solid #ffffff1f;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;display:inline-flex}.learner-tag.highlight{border-color:var(--accent-primary);color:#c7d2fe;background:#6366f140;font-weight:600}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin,svg.animate-spin{transform-origin:50%!important;transform-box:fill-box!important;animation:1s linear infinite spin!important;display:inline-block!important}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}
