:root{--primary:#d4913d;--primary-hover:#c17e2f;--primary-glow:#d4913d40;--primary-subtle:#d4913d14;--success:#34d399;--success-bg:#34d3991a;--danger:#f87171;--danger-bg:#f871711a;--warning:#fbbf24;--warning-bg:#fbbf241a;--bg:#131316;--bg-elevated:#1a1a1f;--card-bg:#1e1e24;--card-bg-hover:#25252c;--card-border:#ffffff0f;--border:#ffffff14;--border-strong:#ffffff1f;--text:#e8e4df;--text-muted:#8a8680;--text-bright:#f5f0ea;--text-heading:#f0ebe4;--font-display:"DM Serif Display", Georgia, "Times New Roman", serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--radius:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-glow:0 0 20px var(--primary-glow);--ease-out:cubic-bezier(.16, 1, .3, 1);--btn-primary-text:#1a1a1f;--btn-gradient:linear-gradient(135deg, var(--primary) 0%, #c17e2f 100%);--btn-gradient-hover:linear-gradient(135deg, #e0a04a 0%, #d4913d 100%);--heading-gradient:linear-gradient(135deg, var(--primary) 0%, #e8b96e 100%);--ambient-opacity:1;--noise-opacity:.025;--login-glow-opacity:.12;--select-bg:var(--bg-elevated)}[data-theme=classic]{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-glow:#2563eb26;--primary-subtle:#2563eb0a;--success:#16a34a;--success-bg:#16a34a0f;--danger:#dc2626;--danger-bg:#dc26260a;--warning:#d97706;--warning-bg:#d977060f;--bg:#f8fafc;--bg-elevated:#fff;--card-bg:#fff;--card-bg-hover:#f8fafc;--card-border:#e2e8f0;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#1e293b;--text-muted:#64748b;--text-bright:#0f172a;--text-heading:#1e293b;--font-display:"DM Serif Display", Georgia, "Times New Roman", serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000014;--shadow-lg:0 10px 15px -3px #00000014;--shadow-glow:0 0 0 3px var(--primary-glow);--btn-primary-text:#fff;--btn-gradient:var(--primary);--btn-gradient-hover:var(--primary-hover);--heading-gradient:var(--primary);--ambient-opacity:0;--noise-opacity:0;--login-glow-opacity:0;--select-bg:#fff;--badge-admin-bg:#fef3c7;--badge-admin-text:#92400e;--badge-admin-border:#fde68a;--badge-isd-bg:#dbeafe;--badge-isd-text:#1e40af;--badge-isd-border:#bfdbfe;--badge-author-bg:#e0e7ff;--badge-author-text:#4338ca;--badge-author-border:#c7d2fe}.theme-section{margin-bottom:20px}.settings-section-title{font-family:var(--font-display);color:var(--text-heading);margin:0 0 12px;font-size:15px;font-weight:400}.theme-switcher{gap:10px;display:flex}.theme-option{border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);cursor:pointer;transition:all .2s var(--ease-out);font-family:var(--font-body);text-align:left;flex:1;align-items:center;gap:12px;padding:14px 16px;display:flex}.theme-option:hover{border-color:var(--border-strong)}.theme-option.active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-glow)}.theme-option-label{flex-direction:column;gap:2px;display:flex}.theme-option-label strong{color:var(--text);font-size:14px;font-weight:600}.theme-option-label span{color:var(--text-muted);font-size:12px}.theme-swatch{border:1px solid #0000001a;border-radius:8px;flex-shrink:0;width:36px;height:36px}.forge-swatch{background:linear-gradient(135deg,#1e1e24 50%,#d4913d 50%)}.classic-swatch{background:linear-gradient(135deg,#f8fafc 50%,#2563eb 50%);border-color:#e2e8f0}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.6}body:before{content:"";pointer-events:none;z-index:9999;opacity:var(--noise-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:0;height:300px;opacity:var(--ambient-opacity);background:radial-gradient(80% 50% at 50% -20%,#d4913d14,#0000);position:fixed;top:0;left:0;right:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-heading);letter-spacing:-.01em;line-height:1.25}::selection{color:var(--text-bright);background:#d4913d4d}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}.app{z-index:1;max-width:1200px;margin:0 auto;padding:24px;position:relative}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:20px;display:flex}.app-header h1{font-size:32px;font-family:var(--font-display);background:var(--heading-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0}.settings-btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card-bg);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);transition:all .2s var(--ease-out);padding:8px 18px;font-size:13px;font-weight:500}.settings-btn:hover{background:var(--card-bg-hover);border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-glow)}.error-banner{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);border:1px solid #f8717133;margin-bottom:16px;padding:12px 16px;font-size:14px}.wizard-steps{gap:6px;margin-bottom:28px;display:flex}.wizard-step{border-radius:var(--radius);background:var(--card-bg);border:1px solid var(--card-border);opacity:.4;transition:all .3s var(--ease-out);flex:1;align-items:center;gap:10px;padding:14px;display:flex}.wizard-step.active{opacity:1;border-color:var(--primary);background:var(--primary-subtle);box-shadow:inset 0 0 0 1px #d4913d1a, var(--shadow-glow)}.wizard-step.completed{opacity:.7;border-color:#34d3994d}.wizard-step.clickable{cursor:pointer;transition:all .2s var(--ease-out)}.wizard-step.clickable:hover{opacity:1;box-shadow:var(--shadow-glow);border-color:#d4913d66}.wizard-step.viewed{opacity:1;box-shadow:0 0 0 2px var(--primary)}.step-number{width:30px;height:30px;color:var(--text-muted);transition:all .3s var(--ease-out);background:#ffffff0f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.wizard-step.active .step-number{background:var(--primary);color:#1a1a1f;box-shadow:0 0 12px var(--primary-glow)}.wizard-step.completed .step-number{background:var(--success);color:#1a1a1f}.step-label{font-size:13px;font-weight:500}.wizard-content{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:28px}fieldset{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff03;margin:0 0 20px;padding:20px}legend{font-family:var(--font-display);color:var(--text-heading);padding:0 10px;font-size:17px;font-weight:400}label{color:var(--text-muted);letter-spacing:.02em;margin-bottom:14px;font-size:13px;font-weight:500;display:block}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;font-size:14px;font-family:var(--font-body);background:var(--bg-elevated);color:var(--text);transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);margin-top:6px;padding:10px 14px;display:block}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.5}textarea{resize:vertical}.form-row{gap:14px;display:flex}.form-row>label{flex:1}.dynamic-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.dynamic-row input{flex:1}.row-id{min-width:50px;color:var(--text-muted);font-size:12px;font-weight:600;font-family:var(--font-body);letter-spacing:.03em;text-transform:uppercase}.inline-label{white-space:nowrap;align-items:center;gap:6px;margin-bottom:0;font-size:13px;display:flex}.inline-label input{margin-top:0}.add-btn{border-radius:var(--radius);cursor:pointer;color:var(--primary);font-size:13px;font-family:var(--font-body);transition:all .2s var(--ease-out);background:0 0;border:1px dashed #d4913d4d;padding:8px 14px;font-weight:500}.add-btn:hover{border-color:var(--primary);background:var(--primary-subtle)}.remove-btn{cursor:pointer;color:var(--danger);background:0 0;border:none;padding:4px 8px;font-size:18px;font-weight:700;transition:opacity .15s}.remove-btn:hover{opacity:.7}button.primary,.submit-btn{border-radius:var(--radius);background:var(--btn-gradient);color:var(--btn-primary-text);cursor:pointer;font-size:15px;font-weight:600;font-family:var(--font-body);letter-spacing:.01em;transition:all .2s var(--ease-out);box-shadow:0 2px 8px var(--primary-glow);border:none;padding:12px 28px}button.primary:hover,.submit-btn:hover{background:var(--btn-gradient-hover);box-shadow:0 4px 16px var(--primary-glow);transform:translateY(-1px)}button.secondary{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card-bg);color:var(--text);cursor:pointer;font-size:15px;font-family:var(--font-body);transition:all .2s var(--ease-out);padding:12px 28px}button.secondary:hover{background:var(--card-bg-hover);border-color:var(--primary)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none!important;transform:none!important}.submit-btn{width:100%;margin-top:20px}.gate-review h2{font-family:var(--font-display);margin-top:0}.stage-info{background:var(--primary-subtle);border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0;color:var(--text-muted);margin-bottom:20px;padding:14px 18px;font-size:13px;line-height:1.6}.action-bar{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.gate-choice{justify-content:center;gap:20px;margin:48px 0;display:flex}.choice-btn{font-size:16px;font-weight:600;font-family:var(--font-body);border-radius:var(--radius-lg);border:2px solid var(--primary);background:var(--btn-gradient);color:var(--btn-primary-text);cursor:pointer;transition:all .25s var(--ease-out);box-shadow:0 4px 16px var(--primary-glow);padding:18px 36px}.choice-btn:hover{box-shadow:0 8px 24px var(--primary-glow);transform:translateY(-2px)}.choice-btn.secondary{color:var(--primary);background:0 0}.choice-btn.secondary:hover{background:var(--primary-subtle)}.not-started{color:var(--text-muted);text-align:center;margin:48px 0;font-size:15px;font-style:italic}.reject-panel{background:var(--danger-bg);border-radius:var(--radius);border:1px solid #f8717126;margin-top:16px;padding:18px}.reject-panel textarea{margin-bottom:10px}.approved-badge{background:var(--success-bg);color:var(--success);border-radius:var(--radius);border:1px solid #34d39933;margin-top:14px;padding:8px 20px;font-weight:600;display:inline-block}.loading-indicator{text-align:center;padding:48px}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;margin:0 auto 16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.elapsed{color:var(--text-muted);font-size:14px}.gate-output section{margin-bottom:24px}.gate-output h3{color:var(--text-heading);font-family:var(--font-display);margin-bottom:10px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}th{background:var(--bg-elevated);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}tr:hover td{background:#ffffff05}.module-card{border:1px solid var(--card-border);border-radius:var(--radius-lg);background:var(--bg-elevated);transition:border-color .2s var(--ease-out);margin-bottom:14px;padding:20px}.module-card:hover{border-color:#d4913d33}.module-card h4{font-family:var(--font-display);color:var(--text-heading);margin:0 0 10px}.toc-coverage{color:var(--text-muted);font-size:13px;font-style:italic}.clo-tag{color:var(--primary);background:var(--primary-subtle);letter-spacing:.02em;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500}.settings-panel{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:16px;padding:24px}.settings-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.settings-header h3{font-family:var(--font-display);margin:0}.settings-section{background:var(--bg-elevated);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:16px;padding:14px}.settings-toggle{cursor:pointer;align-items:center;gap:10px;margin-bottom:0;display:flex}.settings-toggle input[type=checkbox]{width:auto;accent-color:var(--primary);margin:0}.mlflow-config{margin-top:14px;padding-left:24px}.plan-summary section{margin-bottom:24px}.plan-summary h2{font-family:var(--font-display);margin-top:0}.input-mode-toggle{border:1px solid var(--border-strong);border-radius:var(--radius);gap:0;width:fit-content;margin-bottom:24px;display:flex;overflow:hidden}.toggle-active,.toggle-inactive{cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font-body);transition:all .2s var(--ease-out);border:none;padding:10px 22px}.toggle-active{background:var(--primary);color:#1a1a1f}.toggle-inactive{background:var(--card-bg);color:var(--text-muted)}.toggle-inactive:hover{color:var(--text);background:var(--card-bg-hover)}.import-panel h3{font-family:var(--font-display);margin-top:0}.import-hint{color:var(--text-muted);margin-bottom:14px;font-size:14px}.import-textarea{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);width:100%;min-height:300px;color:var(--text);resize:vertical;padding:14px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.import-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.extraction-notes{background:var(--primary-subtle);border-radius:var(--radius);border:1px solid #d4913d26;margin-bottom:16px;padding:14px 18px;font-size:14px}.extraction-notes strong{color:var(--primary);margin-bottom:4px;display:block}.extraction-notes p{white-space:pre-wrap;margin:0 0 8px}.dismiss-btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card-bg);color:var(--text-muted);cursor:pointer;font-size:12px;font-family:var(--font-body);padding:5px 14px;transition:all .15s}.dismiss-btn:hover{border-color:var(--primary);color:var(--primary)}.file-upload-zone{border-radius:var(--radius-lg);background:var(--primary-subtle);transition:all .2s var(--ease-out);border:2px dashed #d4913d40;flex-wrap:wrap;align-items:center;gap:14px;padding:24px;display:flex}.file-upload-zone:hover{background:#d4913d0f;border-color:#d4913d80}.file-upload-divider{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:16px;margin:24px 0;font-size:13px;font-weight:500;display:flex}.file-upload-divider:before,.file-upload-divider:after{content:"";background:var(--border);flex:1;height:1px}.wizard-layout{gap:24px;display:flex}.phase-sidebar{flex-direction:column;flex-shrink:0;gap:6px;width:230px;display:flex}.phase-tab{border-radius:var(--radius-lg);background:var(--card-bg);border:1px solid var(--card-border);cursor:pointer;transition:all .25s var(--ease-out);opacity:.5;align-items:center;gap:12px;padding:14px 16px;display:flex}.phase-tab:hover:not(.locked){opacity:1;box-shadow:var(--shadow-glow);border-color:#d4913d4d}.phase-tab.active{opacity:1;border-color:var(--primary);background:var(--primary-subtle);box-shadow:inset 0 0 0 1px #d4913d1a, var(--shadow-glow)}.phase-tab.completed{opacity:.75;border-color:#34d3994d}.phase-tab.locked{opacity:.25;cursor:not-allowed}.phase-number{width:30px;height:30px;color:var(--text-muted);transition:all .3s var(--ease-out);background:#ffffff0f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.phase-tab.active .phase-number{background:var(--primary);color:#1a1a1f;box-shadow:0 0 12px var(--primary-glow)}.phase-tab.completed .phase-number{background:var(--success);color:#1a1a1f}.phase-label{flex:1;font-size:14px;font-weight:500}.lock-icon{color:var(--text-muted);opacity:.5;font-size:12px}.phase-content{flex:1;min-width:0}.placeholder-phase{text-align:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:72px 24px}.placeholder-phase h2{color:var(--text-heading);font-family:var(--font-display);margin:0 0 10px}.placeholder-phase p{color:var(--text-muted);font-style:italic}.header-right{align-items:center;gap:10px;display:flex}.user-info-header{color:var(--text-muted);align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:flex}.user-display-name{color:var(--text);font-weight:600}.role-badge-sm{text-transform:uppercase;letter-spacing:.08em;border-radius:12px;padding:3px 10px;font-size:10px;font-weight:700}.role-badge-sm.role-admin{background:var(--badge-admin-bg,#fbbf2426);color:var(--badge-admin-text,#fbbf24);border:1px solid var(--badge-admin-border,#fbbf2433)}.role-badge-sm.role-isd{background:var(--badge-isd-bg,#60a5fa1f);color:var(--badge-isd-text,#60a5fa);border:1px solid var(--badge-isd-border,#60a5fa33)}.role-badge-sm.role-author{background:var(--badge-author-bg,#a78bfa1f);color:var(--badge-author-text,#a78bfa);border:1px solid var(--badge-author-border,#a78bfa33)}.logout-btn{color:var(--danger)!important;border-color:#f871714d!important}.logout-btn:hover{background:var(--danger-bg)!important}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-page:before{content:"";background:radial-gradient(circle, rgba(212, 145, 61, var(--login-glow-opacity)) 0%, transparent 70%);pointer-events:none;border-radius:50%;width:500px;height:500px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.login-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:48px 40px;position:relative}.login-title{text-align:center;font-size:32px;font-family:var(--font-display);background:var(--heading-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 6px}.login-subtitle{text-align:center;color:var(--text-muted);margin:0 0 32px;font-size:14px}.login-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);border:1px solid #f8717133;margin-bottom:16px;padding:10px 14px;font-size:14px}.login-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.login-input{border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;font-size:15px;font-family:var(--font-body);background:var(--bg-elevated);color:var(--text);transition:all .2s var(--ease-out);outline:none;margin-bottom:20px;padding:12px 14px}.login-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.login-button{background:var(--btn-gradient);width:100%;color:var(--btn-primary-text);border-radius:var(--radius);font-size:15px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all .25s var(--ease-out);box-shadow:0 4px 16px var(--primary-glow);letter-spacing:.02em;border:none;padding:14px}.login-button:hover:not(:disabled){box-shadow:0 6px 24px var(--primary-glow);transform:translateY(-1px)}.login-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.user-mgmt{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:16px;padding:24px}.user-mgmt-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.user-mgmt-header h2{font-size:20px;font-family:var(--font-display);margin:0}.user-mgmt-actions{gap:8px;display:flex}.user-mgmt-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);border:1px solid #f8717133;margin-bottom:12px;padding:10px 14px;font-size:14px}.user-mgmt-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.user-mgmt-form h3{font-size:15px;font-family:var(--font-display);margin:0 0 14px}.user-mgmt-form-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.user-mgmt-form-grid .form-group{flex-direction:column;gap:6px;display:flex}.user-mgmt-form-grid .form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.user-mgmt-form-grid .form-group input,.user-mgmt-form-grid .form-group select{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:14px;font-family:var(--font-body);padding:10px 12px}.user-mgmt-form-actions{gap:8px;display:flex}.user-mgmt-table{border-collapse:collapse;width:100%;font-size:14px}.user-mgmt-table th{text-align:left;border-bottom:2px solid var(--border-strong);text-transform:uppercase;color:var(--text-muted);letter-spacing:.06em;padding:10px 14px;font-size:11px}.user-mgmt-table td{border-bottom:1px solid var(--border);padding:12px 14px}.user-mgmt-table tr:hover td{background:#ffffff05}.user-mgmt-table tr.user-inactive td{opacity:.4}.user-actions-cell{gap:6px;display:flex}.confirm-inline{gap:4px;display:flex}.role-badge{letter-spacing:.05em;border-radius:12px;padding:3px 12px;font-size:11px;font-weight:700}.role-badge.role-admin{background:var(--badge-admin-bg,#fbbf2426);color:var(--badge-admin-text,#fbbf24)}.role-badge.role-isd{background:var(--badge-isd-bg,#60a5fa1f);color:var(--badge-isd-text,#60a5fa)}.role-badge.role-author{background:var(--badge-author-bg,#a78bfa1f);color:var(--badge-author-text,#a78bfa)}.btn-xs{border-radius:4px;padding:5px 12px;font-size:12px}.user-mgmt-loading{color:var(--text-muted);text-align:center;padding:24px;font-style:italic}.allowed-models-section{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.allowed-models-section h4{font-size:14px;font-family:var(--font-display);margin:0}.allowed-models-editor{margin-top:14px}.allowed-provider-group{margin-bottom:14px}.allowed-provider-group strong{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);margin-bottom:6px;font-size:12px;display:block}.allowed-provider-group ul{margin:0;padding:0;list-style:none}.allowed-provider-group li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 10px;font-size:13px;display:flex}.allowed-provider-group li:last-child{border-bottom:none}.add-model-row{gap:8px;margin-top:10px;display:flex}.add-model-row input{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);border-radius:4px;flex:1;padding:8px 12px;font-size:13px}.course-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.owner-badge{color:var(--text-muted);border:1px solid var(--border);background:#ffffff0a;border-radius:10px;padding:3px 10px;font-size:11px}.evaluation-panel{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);margin-top:16px;padding:18px}.evaluation-panel h4{font-family:var(--font-display);margin:0 0 12px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wizard-content,.login-card,.settings-panel,.user-mgmt{animation:fadeInUp .4s var(--ease-out) both}.wizard-step:first-child{animation:fadeInUp .4s var(--ease-out) 50ms both}.wizard-step:nth-child(2){animation:fadeInUp .4s var(--ease-out) .1s both}.wizard-step:nth-child(3){animation:fadeInUp .4s var(--ease-out) .15s both}.wizard-step:nth-child(4){animation:fadeInUp .4s var(--ease-out) .2s both}.wizard-step:nth-child(5){animation:fadeInUp .4s var(--ease-out) .25s both}.phase-tab:first-child{animation:fadeInUp .3s var(--ease-out) 50ms both}.phase-tab:nth-child(2){animation:fadeInUp .3s var(--ease-out) .1s both}.phase-tab:nth-child(3){animation:fadeInUp .3s var(--ease-out) .15s both}.phase-tab:nth-child(4){animation:fadeInUp .3s var(--ease-out) .2s both}.phase-tab:nth-child(5){animation:fadeInUp .3s var(--ease-out) .25s both}.phase-tab:nth-child(6){animation:fadeInUp .3s var(--ease-out) .3s both}@keyframes emberPulse{0%,to{box-shadow:0 0 12px var(--primary-glow)}50%{box-shadow:0 0 20px #d4913d59}}.wizard-step.active .step-number,.phase-tab.active .phase-number{animation:3s ease-in-out infinite emberPulse}.phase3-subgates{flex-direction:column;gap:12px;display:flex}.subgate-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);transition:border-color .2s;overflow:hidden}.subgate-card.subgate-final{border-left:4px solid var(--accent,#d4913d)}.subgate-card.status-approved{border-color:#2d7d46}.subgate-card.status-complete{border-color:#3b82f6}.subgate-card.status-running{border-color:#d4913d}.subgate-card.status-error{border-color:#dc3545}.subgate-header{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.subgate-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:600}.status-badge.status-approved{color:#4ade80;background:#1a4d2e}.status-badge.status-complete{color:#93c5fd;background:#1e3a5f}.status-badge.status-running{color:#fbbf24;background:#4a3520}.status-badge.status-error{color:#f87171;background:#4a1c1c}.status-badge.status-pending{background:var(--bg-secondary,#2a2a2a);color:var(--text-secondary,#888)}.final-badge{background:var(--accent,#d4913d);color:#fff;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:600}.subgate-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.subgate-actions .elapsed{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.85rem}.icon-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px 8px;font-size:.85rem}.reject-form{border-top:1px solid var(--card-border);background:var(--bg-secondary,#1a1a1a);padding:12px 16px}.reject-form textarea{width:100%;margin-bottom:8px}.reject-actions{gap:8px;display:flex}.subgate-output{border-top:1px solid var(--card-border);background:var(--bg-secondary,#1a1a1a);padding:16px}.assessment-detail h4{margin:0 0 16px}.detail-section{margin-bottom:16px}.detail-section h5{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0 0 4px;font-size:.85rem}.formal-statement{border-left:3px solid var(--accent,#d4913d);background:#d4913d0d;padding:8px 12px;font-style:italic}.ai-integration{background:#3b82f60d;border-left:3px solid #3b82f6;padding:8px 12px}.deliverable-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md,6px);margin-bottom:8px;padding:8px 12px}.rubric-table{border-collapse:collapse;width:100%;font-size:.85rem}.rubric-table th,.rubric-table td{border:1px solid var(--card-border);text-align:left;vertical-align:top;padding:6px 8px}.rubric-table th{background:var(--bg-secondary,#1a1a1a);font-weight:600}.error-banner{color:#f87171;border-radius:var(--radius-md,6px);background:#4a1c1c;margin-bottom:12px;padding:8px 12px}.final-assessment-section{border-left:4px solid var(--accent,#d4913d);padding-left:12px}.dashboard{max-width:900px;margin:0 auto}.dashboard-header{justify-content:space-between;align-items:flex-start;margin-bottom:32px;display:flex}.dashboard-header h2{font-size:26px;font-family:var(--font-display);color:var(--text-heading);margin:0}.dashboard-subtitle{color:var(--text-muted);margin:6px 0 0;font-size:14px}.dashboard-loading,.dashboard-empty{text-align:center;color:var(--text-muted);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:56px 28px}.dashboard-empty .btn{margin-top:20px}.dashboard-grid{flex-direction:column;gap:10px;display:flex}.course-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);transition:all .25s var(--ease-out);animation:fadeInUp .4s var(--ease-out) both;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.course-card:first-child{animation-delay:50ms}.course-card:nth-child(2){animation-delay:.1s}.course-card:nth-child(3){animation-delay:.15s}.course-card:nth-child(4){animation-delay:.2s}.course-card:nth-child(5){animation-delay:.25s}.course-card:hover{border-color:#d4913d33;transform:translateY(-1px);box-shadow:0 4px 16px #0000004d,0 0 24px #d4913d0a}.course-card-body{flex:1;min-width:0}.course-card-badges{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.course-id{letter-spacing:.06em;background:var(--primary-subtle);color:var(--primary);border:1px solid var(--primary-glow);border-radius:4px;padding:2px 7px;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:11px;font-weight:600;display:inline-block}.build-term-badge{color:var(--text-muted);border:1px solid var(--border);background:#ffffff0a;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.course-card-title{font-size:17px;font-weight:600;font-family:var(--font-display);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;margin:0 0 6px;overflow:hidden}.course-card-date{color:var(--text-muted);letter-spacing:.02em;margin:8px 0 0;font-size:12px}.course-card-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:20px;display:flex}.progress-badge{letter-spacing:.03em;color:var(--text-muted);border:1px solid var(--border);background:#ffffff0d;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.progress-badge.progress-not-started{color:#8a868099;background:#ffffff08;border-color:#0000}.progress-badge.progress-assessment-plan,.progress-badge.progress-module-outline,.progress-badge.progress-mlos{color:#60a5fa;background:#60a5fa1a;border-color:#60a5fa26}.progress-badge.progress-assessment-approved,.progress-badge.progress-modules-approved,.progress-badge.progress-mlos-approved{color:#34d399;background:#34d3991a;border-color:#34d39926}.progress-badge.progress-phase-1-complete{color:#34d399;background:#34d3991f;border-color:#34d39933}.progress-badge.progress-phase-2-complete{color:#a78bfa;background:#a78bfa1a;border-color:#a78bfa26}.btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--card-bg);color:var(--text);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-body);transition:all .2s var(--ease-out);padding:8px 18px}.btn:hover{background:var(--card-bg-hover);border-color:var(--primary)}.btn-sm{padding:6px 14px;font-size:12px}.btn-primary{background:var(--btn-gradient);color:var(--btn-primary-text);border-color:var(--primary);box-shadow:0 2px 8px var(--primary-glow);font-weight:600}.btn-primary:hover{background:var(--btn-gradient-hover);box-shadow:0 4px 16px var(--primary-glow);transform:translateY(-1px)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#ef4444;box-shadow:0 4px 12px #f871714d}.btn-outline{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-outline:hover{color:var(--text);border-color:var(--border-strong);background:#ffffff08}.delete-confirm{color:var(--danger);align-items:center;gap:6px;font-size:13px;display:flex}
