@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--primary: #6366f1;--primary-light: #818cf8;--primary-dark: #4f46e5;--secondary: #0ea5e9;--secondary-light: #38bdf8;--secondary-dark: #0284c7;--accent: #f59e0b;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--info: #3b82f6;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--bg-primary: #ffffff;--bg-secondary: #f6f7fb;--bg-light: var(--gray-100);--surface-1: #ffffff;--surface-2: var(--gray-50);--surface-3: var(--gray-100);--border-light: var(--gray-200);--border-medium: var(--gray-300);--border-strong: var(--gray-400);--text-primary: var(--gray-900);--text-secondary: var(--gray-700);--text-muted: var(--gray-600);--text-light: #ffffff;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--font-family: "Manrope", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--transition: .2s cubic-bezier(.4, 0, .2, 1);--focus-ring: 0 0 0 3px rgba(99, 102, 241, .2);--page-max-width: 1280px;--page-padding: 32px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-secondary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;width:100%}h1,h2,h3,h4,h5,h6{color:var(--text-primary);line-height:1.3;margin:0;font-weight:600}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin:0;color:var(--text-secondary)}a{color:var(--primary);text-decoration:none;transition:color var(--transition)}input,select,textarea{width:100%;background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-4);color:var(--text-primary);transition:all var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}button{border:none;background:none;cursor:pointer;transition:all var(--transition);color:inherit}button:focus{color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:10px var(--spacing-5);border-radius:var(--radius-lg);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;border:none;transition:all .2s cubic-bezier(.4,0,.2,1);min-height:40px;letter-spacing:.3px;position:relative;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--primary);color:var(--text-light)}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--secondary);color:var(--text-light)}.btn-secondary:hover:not(:disabled){background:var(--secondary-dark)}.btn-success{background:var(--success);color:var(--text-light)}.btn-success:hover:not(:disabled){opacity:.9}.btn-danger{background:var(--error);color:var(--text-light)}.btn-danger:hover:not(:disabled){opacity:.9}.btn-outline{background:transparent;border:1px solid var(--border-medium);color:var(--text-primary)}.btn-outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#6366f10d}.card{background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;background:var(--gray-100);color:var(--gray-700)}.badge-primary{background:#6366f11a;color:var(--primary-dark)}.badge-success{background:#10b9811a;color:#059669}.badge-warning{background:#f59e0b1a;color:#d97706}.badge-error{background:#ef44441a;color:#dc2626}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-4)}.modal-container{background:var(--surface-1);border-radius:var(--radius-lg);width:min(90vw,600px);max-height:90vh;overflow:hidden;box-shadow:var(--shadow-xl)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-5) var(--spacing-6);border-bottom:1px solid var(--border-light)}.modal-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0}.modal-body{padding:var(--spacing-6);overflow-y:auto;max-height:calc(90vh - 140px)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-5) var(--spacing-6);border-top:1px solid var(--border-light)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-light);font-size:var(--font-size-sm)}th{color:var(--text-secondary);font-weight:600;background:var(--surface-2)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}code{font-family:Fira Code,Consolas,Monaco,monospace;background:var(--surface-2);padding:2px 6px;border-radius:var(--radius-sm);font-size:.9em}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-light);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;background:var(--bg-light)}h1,h2,h3,h4,h5,h6{color:var(--text-dark);line-height:1.2;margin:0 0 var(--spacing-sm) 0;font-weight:700;letter-spacing:-.02em}p{margin:0 0 var(--spacing-md) 0;color:var(--text-secondary)}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-dark)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 12px;color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--secondary);box-shadow:var(--focus-ring);background:#fff}input::placeholder,textarea::placeholder{color:var(--text-muted)}button{border:none;background:none;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast),color var(--transition-fast);box-shadow:var(--shadow-xs)}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 4px 12px #6366f14d;font-weight:600;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-primary:hover:before{width:300px;height:300px}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #6366f166;transform:translateY(-3px)}.btn-secondary{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border-light);box-shadow:0 1px 3px #0000001a}.btn-secondary:hover:not(:disabled){background:#fff;border-color:var(--primary);color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b9814d;position:relative;overflow:hidden}.btn-success:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-success:active:before{width:300px;height:300px}.btn-success:hover:not(:disabled){box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 12px #ef44444d;position:relative;overflow:hidden}.btn-danger:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-danger:active:before{width:300px;height:300px}.btn-danger:hover:not(:disabled){box-shadow:0 6px 20px #ef444466;transform:translateY(-2px)}.btn-outline{background:transparent;border:2px solid var(--border-medium);color:var(--text-primary);box-shadow:none}.btn-outline:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:#6366f114;transform:translateY(-2px);box-shadow:0 4px 12px #6366f126}.btn-link{background:transparent;color:var(--primary);font-weight:600;box-shadow:none;padding:8px 12px;border-radius:var(--radius-md);min-height:36px}.card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:16px}.card-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.card-title{font-size:var(--font-size-lg);font-weight:700;color:var(--text-dark)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:600}.badge.primary{background:#9c7bac26;color:var(--primary-dark)}.badge.success{background:#7cb0782e;color:var(--success-dark)}.badge.warning{background:#ff7f2d33;color:var(--accent-dark)}.badge.error{background:#dc354526;color:#b91c1c}table{width:100%;border-collapse:collapse;background:var(--surface-1)}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border-subtle);font-size:var(--font-size-sm)}th{color:var(--text-secondary);font-weight:700;background:var(--surface-2)}tr:hover td{background:var(--surface-2)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-container{background:var(--surface-1);border-radius:var(--radius-lg);width:min(90vw,720px);max-height:90vh;overflow:hidden;box-shadow:var(--shadow-3);border:1px solid var(--border-subtle)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle);background:var(--surface-2)}.modal-title{font-size:var(--font-size-lg);font-weight:700;color:var(--text-dark)}.modal-body{padding:20px;overflow-y:auto;max-height:calc(90vh - 140px)}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-subtle);background:var(--surface-2)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-muted{color:var(--text-muted)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-light{background-color:var(--bg-light)}.bg-gradient{background:var(--bg-gradient)}:root{--transition: all .3s cubic-bezier(.4, 0, .2, 1)}.enroll-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:var(--spacing-4)}.enroll-wrapper{width:100%;max-width:450px}.enroll-title{text-align:center;font-size:2rem;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.15);margin-bottom:var(--spacing-3)}.role-selection-enroll{background:#fff;border-radius:var(--radius-xl);padding:var(--spacing-5);box-shadow:var(--shadow-lg);animation:slideUp .5s ease-out}.role-selection-enroll h2{text-align:center;margin-bottom:var(--spacing-1);font-size:1.4rem;font-weight:700;color:var(--text-primary)}.role-subtitle{text-align:center;color:var(--text-secondary);font-size:.8rem;margin-bottom:var(--spacing-3)}.role-cards-enroll{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3)}.role-card-enroll{padding:var(--spacing-4);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all .3s ease;border:2px solid var(--border-light);background:#fff;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-2);position:relative;overflow:hidden}.role-card-enroll:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea00,#667eea1a);opacity:0;transition:opacity .3s ease}.role-card-enroll:hover{transform:translateY(-6px);box-shadow:0 12px 24px #667eea26;border-color:var(--primary)}.role-card-enroll:hover:before{opacity:1}.role-card-enroll.selected{border-color:var(--primary);background:linear-gradient(135deg,rgba(102,126,234,.05) 0%,transparent 100%)}.role-icon-enroll{font-size:42px;transition:transform .3s ease;z-index:1}.role-card-enroll:hover .role-icon-enroll{transform:scale(1.1)}.role-card-enroll h3{font-size:.95rem;margin:0;font-weight:700;color:var(--text-primary);z-index:1}.role-card-enroll p{font-size:.8rem;margin:0;color:var(--text-secondary);z-index:1}.enroll-form-container{background:#fff;border-radius:var(--radius-xl);padding:var(--spacing-5);box-shadow:var(--shadow-lg);animation:slideUp .5s ease-out .1s backwards}.enroll-form-container h2{text-align:center;margin-bottom:var(--spacing-4);font-size:1.5rem;font-weight:700;color:var(--text-primary)}.back-button-enroll{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);font-size:var(--font-size-sm);font-weight:500;transition:all .3s ease;padding:0}.back-button-enroll:hover{color:var(--primary);transform:translate(-2px)}.form-group-enroll{margin-bottom:var(--spacing-3)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-2)}.form-row .form-group-enroll{margin-bottom:0}.form-group-enroll label{display:block;margin-bottom:var(--spacing-1);color:var(--text-primary);font-weight:600;font-size:.8rem}.form-control-enroll{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;line-height:1.4;transition:all .3s ease;font-family:inherit}.form-control-enroll:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a;background:#f0f4ff}.form-control-enroll:disabled{background:var(--bg-light);opacity:.6;cursor:not-allowed}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper .form-control-enroll{padding-right:40px}.toggle-password{position:absolute;right:12px;background:none;border:none;cursor:pointer;font-size:1.2rem;color:var(--text-secondary);transition:all .3s ease;padding:var(--spacing-2)}.toggle-password:hover{color:var(--primary)}.error-banner-enroll{background:#ef44441a;color:#dc2626;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);margin-bottom:var(--spacing-3);font-size:.85rem;border:1px solid rgba(239,68,68,.2);border-left:4px solid #dc2626;animation:slideIn .3s ease;display:flex;align-items:center;gap:var(--spacing-2)}.success-banner-enroll{background:#10b9811a;color:#059669;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);margin-bottom:var(--spacing-3);font-size:.85rem;border:1px solid rgba(16,185,129,.2);border-left:4px solid #059669;animation:slideIn .3s ease;display:flex;align-items:center;gap:var(--spacing-2)}.btn-enroll{width:100%;padding:var(--spacing-3);background:linear-gradient(135deg,var(--primary) 0%,#5a67d8 100%);color:#fff;border:none;border-radius:var(--radius-md);font-weight:700;font-size:.95rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden;box-shadow:0 4px 15px #667eea4d;margin-top:var(--spacing-3)}.btn-enroll:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.btn-enroll:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-enroll:active:before{width:300px;height:300px}.btn-enroll:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary-enroll{width:100%;padding:var(--spacing-2);background:transparent;color:var(--primary);border:1px solid var(--border-light);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:var(--spacing-2);font-size:.9rem}.btn-secondary-enroll:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.login-link{text-align:center;margin-top:var(--spacing-5);font-size:var(--font-size-sm);color:var(--text-secondary)}.login-link a{color:var(--primary);font-weight:600;text-decoration:none;transition:all .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@media (max-width: 640px){.enroll-container{padding:var(--spacing-4)}.enroll-title{font-size:var(--font-size-3xl);margin-bottom:var(--spacing-6)}.role-selection-enroll,.enroll-form-container{padding:var(--spacing-6)}.role-cards-enroll{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;gap:var(--spacing-3)}.form-group-enroll{margin-bottom:var(--spacing-4)}}@media (max-width: 480px){.enroll-wrapper{max-width:100%}.enroll-title{font-size:var(--font-size-2xl)}.role-selection-enroll,.enroll-form-container{padding:var(--spacing-4);border-radius:var(--radius-lg)}.role-card-enroll{padding:var(--spacing-4);min-height:150px}.role-icon-enroll{font-size:40px}.btn-enroll,.btn-secondary-enroll{padding:var(--spacing-3);font-size:var(--font-size-sm)}}.enroll-form-container,.role-selection-enroll{animation:fadeIn .3s ease}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#f8f9fa,#e8ecf1,#f3f4f6);padding:var(--spacing-6)}.login-wrapper{width:100%;max-width:480px}.login-title{text-align:center;font-size:var(--font-size-4xl);font-weight:700;color:var(--primary);margin-bottom:var(--spacing-5)}.admin-button{position:fixed;top:var(--spacing-6);left:var(--spacing-6);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);font-size:20px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm)}.admin-button:hover{background:var(--primary);color:#fff;box-shadow:var(--shadow-md)}.role-selection{background:#fff;border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-lg)}.role-selection h2{text-align:center;margin-bottom:var(--spacing-4)}.role-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.role-card{padding:var(--spacing-4);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition);border:2px solid var(--border-light);background:#fff;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-2)}.role-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary)}.role-icon{font-size:48px}.role-card h3{font-size:var(--font-size-lg);margin:0}.role-card p{font-size:var(--font-size-sm);margin:0}.login-form-container{background:#fff;border-radius:var(--radius-xl);padding:var(--spacing-6);box-shadow:var(--shadow-lg)}.login-form-container h2{text-align:center;margin-bottom:var(--spacing-4)}.back-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);font-size:var(--font-size-sm)}.back-button:hover{color:var(--primary)}.form-group{margin-bottom:var(--spacing-4)}.form-group label{display:block;margin-bottom:var(--spacing-2);color:var(--text-primary);font-weight:500;font-size:var(--font-size-sm)}.error-banner{background:#ef44441a;color:#dc2626;padding:var(--spacing-3);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm);border:1px solid rgba(239,68,68,.2)}.btn-login{width:100%;padding:var(--spacing-4);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition)}.btn-login:hover{background:var(--primary-dark)}.btn-login:disabled{opacity:.5;cursor:not-allowed}.signup-link{text-align:center;margin-top:var(--spacing-5);font-size:var(--font-size-sm);color:var(--text-secondary)}.signup-link a{color:var(--primary);font-weight:500}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.login-form-container,.role-selection{animation:fadeIn .3s ease}.account-admin-container{padding:0;display:flex;flex-direction:column;gap:var(--spacing-6);width:100%}.account-admin-header{display:flex;flex-direction:column;gap:var(--spacing-2);padding-bottom:var(--spacing-5);border-bottom:2px solid var(--border-light)}.account-admin-header h1{margin:0;font-size:var(--font-size-3xl)}.account-admin-header p{margin:0;color:var(--text-secondary);font-size:var(--font-size-base)}.account-tabs{display:flex;gap:var(--spacing-6);border-bottom:2px solid var(--border-light)}.tab-btn{padding:var(--spacing-3) var(--spacing-4);background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:var(--spacing-2);margin-bottom:-2px}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--spacing-2);background:var(--primary);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700}.pending-list{display:flex;flex-direction:column;gap:var(--spacing-4)}.pending-card{display:flex;gap:var(--spacing-5);padding:var(--spacing-5);background:#fff;border-left:4px solid var(--primary);border-radius:var(--radius-lg);align-items:flex-start;transition:all var(--transition);box-shadow:var(--shadow-xs);border:1px solid var(--border-light)}.pending-card:hover{box-shadow:var(--shadow-md);transform:translate(2px)}.card-badge{flex-shrink:0;padding:var(--spacing-1) var(--spacing-2);background:var(--primary);color:#fff;font-size:var(--font-size-xs);font-weight:700;border-radius:var(--radius-sm);text-transform:uppercase}.pending-info{display:flex;flex-direction:column;gap:var(--spacing-1);flex:1}.pending-name{color:var(--text-primary);font-weight:600;font-size:var(--font-size-base)}.pending-username,.pending-email,.pending-time{color:var(--text-secondary);font-size:var(--font-size-sm)}.pending-actions{display:flex;gap:var(--spacing-3);flex-shrink:0}.btn-approve,.btn-reject,.btn-deactivate,.btn-view{padding:var(--spacing-3) var(--spacing-5);border:1px solid transparent;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition);border-radius:var(--radius-md);min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.btn-approve{background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:#fff;box-shadow:0 2px 8px #10b9814d}.btn-approve:hover{box-shadow:0 4px 12px #10b98166;transform:translateY(-2px)}.btn-reject{background:transparent;color:var(--error);border-color:var(--error);border-width:2px}.btn-reject:hover{background:var(--error);color:#fff;box-shadow:0 4px 12px #ef44444d;transform:translateY(-2px)}.btn-view{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 2px 8px #6366f14d}.btn-view:hover{box-shadow:0 4px 12px #6366f166;transform:translateY(-2px)}.empty-state{padding:var(--spacing-8);color:var(--text-secondary);font-size:var(--font-size-base);background:var(--surface-2);border-radius:var(--radius-lg);border:2px dashed var(--border-medium);text-align:center}.admin-container{min-height:100vh;display:flex;background:var(--bg-secondary)}.admin-sidebar{width:260px;background:#fff;box-shadow:var(--shadow-sm);padding:var(--spacing-6);display:flex;flex-direction:column;border-right:1px solid var(--border-light)}.admin-sidebar-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary);margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-5);border-bottom:1px solid var(--border-light)}.admin-menu-list{list-style:none;padding:0;margin:0;flex:1}.admin-menu-item{padding:var(--spacing-3) var(--spacing-4);margin:var(--spacing-1) 0;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);background:transparent;color:var(--text-secondary);font-weight:500;border:none;font-size:var(--font-size-sm);width:100%;text-align:left}.admin-menu-item:hover{background:var(--surface-2);color:var(--text-primary)}.admin-menu-item.active{background:#6366f11a;color:var(--primary);font-weight:600}.admin-logout-button{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);background:var(--error);color:#fff;border:none;cursor:pointer;font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition);width:100%;margin-top:var(--spacing-4)}.admin-logout-button:hover{opacity:.9}.admin-content{flex:1;padding:var(--page-padding);max-width:var(--page-max-width);margin:0 auto;width:100%}.admin-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-8);border:1px solid var(--border-light);max-width:1200px}.admin-title{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-3xl)}.admin-body{color:var(--text-secondary);line-height:1.6;font-size:var(--font-size-base)}.admin-paragraph{margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-base);color:var(--text-secondary)}.admin-container .teacher-title{font-size:var(--font-size-3xl);margin:0 0 var(--spacing-3) 0}.admin-container .teacher-paragraph{margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-base);color:var(--text-secondary)}.admin-container .teacher-body{margin-top:var(--spacing-6)}.admin-container .section-header{margin-bottom:var(--spacing-6)}.learning-overview-section{margin:var(--spacing-6) 0;padding:var(--spacing-5);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-lg)}.learning-overview-section h4{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-lg);color:var(--primary);font-weight:600}.section-subtitle{margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.module-input-group{display:flex;flex-direction:column;gap:var(--spacing-3);margin-bottom:var(--spacing-4);padding:var(--spacing-4);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md)}.btn-add-module{background:var(--primary);color:#fff;border:none;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);align-self:flex-start}.btn-add-module:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-add-module:disabled{background:var(--border-light);cursor:not-allowed;opacity:.6}.modules-preview{margin-top:var(--spacing-4);padding:var(--spacing-4);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md)}.modules-preview h5{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-base);color:var(--text-primary);font-weight:600}.modules-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.module-item{border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary);transition:all var(--transition)}.module-item:hover{border-color:var(--primary-light);box-shadow:var(--shadow-sm)}.module-header{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);cursor:pointer;background:#fff;transition:all var(--transition);-webkit-user-select:none;user-select:none}.module-header:hover{background:var(--bg-secondary)}.module-expand-icon{color:var(--primary);font-size:var(--font-size-sm);transition:transform var(--transition);display:flex;align-items:center;min-width:16px}.module-name{flex:1;color:var(--text-primary);font-weight:500;font-size:var(--font-size-sm)}.btn-remove-module{background:transparent;border:none;color:var(--danger, #ef4444);cursor:pointer;font-size:var(--font-size-lg);padding:0 var(--spacing-2);transition:all var(--transition);display:flex;align-items:center;justify-content:center;width:28px;height:28px}.btn-remove-module:hover:not(:disabled){background:#ef44441a;border-radius:var(--radius-sm);transform:scale(1.1)}.btn-remove-module:disabled{opacity:.5;cursor:not-allowed}.module-content{padding:0 var(--spacing-4) var(--spacing-3) var(--spacing-4);border-top:1px solid var(--border-light);animation:slideDown .2s ease-out}.module-description{margin:0 0 var(--spacing-3) 0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word}.topics-subsection{padding:var(--spacing-3);background:var(--bg-secondary);border:1px dashed var(--border-light);border-radius:var(--radius-md);margin:var(--spacing-3) 0}.topics-subsection-title{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.topic-input-group{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.topic-input-group input{flex:1}.btn-add-topic{background:var(--primary, #3b82f6);color:#fff;border:1px solid var(--primary, #3b82f6);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);white-space:nowrap}.btn-add-topic:hover:not(:disabled){background:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-add-topic:disabled{background:var(--border-light);color:var(--text-secondary);border-color:var(--border-light);cursor:not-allowed;opacity:.6}.topics-list{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-top:var(--spacing-2)}.topic-tag{display:inline-flex;align-items:center;gap:var(--spacing-1);background:var(--primary-light, #93c5fd);color:var(--primary);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:500}.topic-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-remove-topic{background:transparent;border:none;color:var(--primary);cursor:pointer;padding:0;font-size:var(--font-size-sm);transition:all var(--transition);display:flex;align-items:center;justify-content:center;width:18px;height:18px}.btn-remove-topic:hover:not(:disabled){color:var(--danger, #ef4444);transform:scale(1.2)}.btn-remove-topic:disabled{opacity:.5;cursor:not-allowed}.module-topics{margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border-light)}.topics-header{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.topics-list-preview{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.topic-item{background:var(--primary-light, #93c5fd);color:var(--primary);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-lg);font-size:var(--font-size-xs, 11px);font-weight:500;display:inline-block}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.topic-form{padding:var(--spacing-4);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-3)}.topic-resource-section{padding:var(--spacing-3);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md)}.resource-title{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.resource-input-group{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.resource-input-group input{flex:1}.btn-add-resource{background:var(--primary, #3b82f6);color:#fff;border:1px solid var(--primary, #3b82f6);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);white-space:nowrap}.btn-add-resource:hover:not(:disabled){background:#2563eb;transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-add-resource:disabled{background:var(--border-light);color:var(--text-secondary);cursor:not-allowed;opacity:.6}.file-input-group{position:relative;display:inline-block}.file-input{display:none}.btn-file-select{display:inline-flex;align-items:center;gap:var(--spacing-2);background:var(--primary, #3b82f6);color:#fff;border:1px solid var(--primary, #3b82f6);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);white-space:nowrap}.btn-file-select:hover{background:#2563eb;transform:translateY(-2px);box-shadow:var(--shadow-sm)}.resources-list{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-2)}.resource-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-2) var(--spacing-3);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.resource-name{flex:1;color:var(--text-primary);word-break:break-all}.btn-remove-resource{background:transparent;border:none;color:var(--danger, #ef4444);cursor:pointer;font-size:var(--font-size-lg);padding:0 var(--spacing-2);transition:all var(--transition);display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0}.btn-remove-resource:hover:not(:disabled){background:#ef44441a;border-radius:var(--radius-sm);transform:scale(1.1)}.btn-add-topic-submit{background:var(--primary, #3b82f6);color:#fff;border:none;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);align-self:flex-start}.btn-add-topic-submit:hover:not(:disabled){background:#2563eb;transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-add-topic-submit:disabled{background:var(--border-light);cursor:not-allowed;opacity:.6}.topics-list-container{margin-top:var(--spacing-4);padding:var(--spacing-3);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md)}.topics-list-title{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.topics-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.topic-list-item{border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;background:#fff}.topic-list-header{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);cursor:pointer;background:#fff;transition:all var(--transition);-webkit-user-select:none;user-select:none}.topic-list-header:hover{background:var(--bg-secondary)}.topic-list-icon{color:var(--primary);font-size:var(--font-size-sm);min-width:16px;display:flex;align-items:center}.topic-list-number{color:var(--text-secondary);font-size:var(--font-size-xs, 11px);font-weight:600;padding:0 var(--spacing-2);border-right:1px solid var(--border-light)}.topic-list-name{flex:1;color:var(--text-primary);font-weight:500;font-size:var(--font-size-sm)}.btn-remove-topic-item{background:transparent;border:none;color:var(--danger, #ef4444);cursor:pointer;font-size:var(--font-size-lg);padding:0 var(--spacing-2);transition:all var(--transition);display:flex;align-items:center;justify-content:center;width:28px;height:28px}.btn-remove-topic-item:hover:not(:disabled){background:#ef44441a;border-radius:var(--radius-sm);transform:scale(1.1)}.topic-list-content{padding:var(--spacing-3);border-top:1px solid var(--border-light);background:var(--bg-secondary);animation:slideDown .2s ease-out}.topic-content-section{margin-bottom:var(--spacing-3)}.topic-content-section:last-child{margin-bottom:0}.content-label{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.content-text{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word}.content-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-2)}.content-list li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2);background:#fff;border-radius:var(--radius-sm);border-left:3px solid var(--primary)}.content-link{color:var(--primary);text-decoration:none;word-break:break-all}.content-link:hover{text-decoration:underline}.file-item{padding:var(--spacing-2)!important}.topics-list-full{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-2)}.topic-preview-item{padding:var(--spacing-3);background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md)}.topic-preview-header{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-2);font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm)}.topic-preview-number{color:var(--text-secondary);min-width:50px}.topic-preview-name{flex:1;color:var(--primary)}.topic-preview-section{margin-bottom:var(--spacing-2);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--border-light)}.topic-preview-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.topic-preview-section strong{display:block;color:var(--text-primary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-1)}.topic-preview-text{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word}.topic-preview-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-1)}.topic-preview-list li{color:var(--text-secondary);font-size:var(--font-size-sm);padding:var(--spacing-1) var(--spacing-2);background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--primary-light, #93c5fd)}.topic-preview-list a{color:var(--primary);text-decoration:none;word-break:break-all}.topic-preview-list a:hover{text-decoration:underline}@media (max-width: 768px){.learning-overview-section,.module-input-group{padding:var(--spacing-3)}.module-header{padding:var(--spacing-2) var(--spacing-3)}.module-content{padding:0 var(--spacing-3) var(--spacing-2) var(--spacing-3)}.topic-form{padding:var(--spacing-3)}.resource-input-group{flex-direction:column}.resource-input-group input,.btn-add-resource,.file-input-group,.btn-file-select,.btn-add-topic-submit{width:100%}.topic-list-header{padding:var(--spacing-2);flex-wrap:wrap}.topic-list-name{width:100%;margin-top:var(--spacing-1)}}.teacher-container{display:flex;min-height:100vh;background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--surface-1) 100%)}.teacher-sidebar{width:260px;background:#fff;border-right:1px solid var(--border-light);display:flex;flex-direction:column;padding:var(--spacing-6);position:sticky;top:0;height:100vh;box-shadow:var(--shadow-sm);z-index:10}.teacher-sidebar-title{font-size:var(--font-size-2xl);font-weight:700;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-5);border-bottom:2px solid var(--border-light);letter-spacing:-.5px}.teacher-menu-list{list-style:none;padding:0;margin:0;flex:1;display:flex;flex-direction:column;gap:var(--spacing-1)}.teacher-menu-item{width:100%;padding:var(--spacing-3) var(--spacing-4);background:transparent;border:none;text-align:left;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition);position:relative;border-left:3px solid transparent}.teacher-menu-item:hover{background:var(--surface-2);color:var(--text-primary);transform:translate(2px)}.teacher-menu-item.active{background:linear-gradient(90deg,#6366f126,#6366f10d);color:var(--primary);font-weight:600;border-left-color:var(--primary);box-shadow:var(--shadow-xs)}.teacher-logout-button{width:100%;padding:var(--spacing-3) var(--spacing-4);background:transparent;border:1px solid var(--border-light);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition);margin-top:var(--spacing-4)}.teacher-logout-button:hover{background:var(--error);color:#fff;border-color:var(--error)}.teacher-content{flex:1;padding:var(--page-padding);overflow-y:auto;max-width:var(--page-max-width);margin:0 auto;width:100%}.teacher-card{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-5);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);max-width:1200px}.teacher-title{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-3xl)}.teacher-paragraph{margin:0 0 var(--spacing-4) 0;font-size:var(--font-size-base);color:var(--text-secondary);line-height:1.6;font-weight:400}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-6);margin-top:var(--spacing-8)}.stat-card{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-6);background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light);transition:all var(--transition);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--primary) 0%,var(--secondary) 100%);opacity:0;transition:opacity var(--transition)}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--primary)}.stat-icon{font-size:32px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f11a,#0ea5e91a);border-radius:var(--radius-xl);box-shadow:0 4px 12px #6366f126}.stat-content{display:flex;flex-direction:column;gap:var(--spacing-1)}.stat-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary);line-height:1}.stat-label{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.teacher-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-6);text-align:center;background:var(--surface-2);border-radius:var(--radius-lg);border:2px dashed var(--border-medium)}.empty-icon{font-size:48px;color:var(--text-muted);margin-bottom:var(--spacing-2)}.teacher-empty-state p{margin:0 0 var(--spacing-2) 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.teacher-empty-state p:last-child{margin-bottom:0;font-size:var(--font-size-xs);color:var(--text-muted)}.teacher-profile-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-5);box-shadow:var(--shadow-sm)}.teacher-profile-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);padding-bottom:var(--spacing-3);margin-bottom:var(--spacing-4);border-bottom:1px solid var(--border-light)}.teacher-profile-title{margin:0 0 4px;font-size:var(--font-size-xl);font-weight:800;color:var(--text-primary)}.teacher-profile-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.teacher-profile-badge{padding:6px 12px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:700;color:#1d4ed8;background:#3b82f626;border:1px solid rgba(59,130,246,.3)}.teacher-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-4)}.teacher-profile-body{display:grid;grid-template-columns:180px 1fr;gap:var(--spacing-5);align-items:start}.teacher-profile-avatar{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3)}.teacher-avatar-image,.teacher-avatar-placeholder{width:120px;height:120px;border-radius:999px;border:2px solid var(--border-light);object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:40px;background:var(--surface-2);color:var(--text-muted)}.teacher-photo-upload{font-size:var(--font-size-xs);font-weight:600;color:var(--primary);cursor:pointer}.teacher-photo-upload input{display:none}.teacher-profile-form{display:flex;flex-direction:column;gap:var(--spacing-3)}.profile-field{display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.profile-field span{font-size:var(--font-size-xs)}.profile-field input,.profile-field select{padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--border-light);font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);background:#fff}.profile-field.full{grid-column:1 / -1}.profile-actions{display:flex;justify-content:flex-end}.profile-status{padding:10px 12px;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:600}.profile-status.success{background:#10b9811f;color:#065f46}.profile-status.error{background:#ef44441f;color:#b91c1c}.profile-section{display:flex;flex-direction:column;gap:6px;padding:var(--spacing-3);border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border-light)}.profile-section label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.4px;font-weight:700;color:var(--text-muted)}.profile-section p{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.profile-detail{display:grid;grid-template-columns:140px 1fr;gap:var(--spacing-4);align-items:start}.profile-detail-image,.profile-detail-placeholder{width:96px;height:96px;border-radius:999px;border:2px solid var(--border-light);object-fit:cover;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.modal-container{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:650px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.modal-title{margin:0;font-size:18px;font-weight:700;color:#1f2937}.modal-close{width:32px;height:32px;border:none;background:transparent;color:#6b7280;font-size:24px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:#e5e7eb;color:#1f2937}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{padding:16px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;display:flex;justify-content:flex-end;gap:8px}.enrollment-controls{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb;margin-bottom:12px}.enrollment-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}.enrollment-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6;margin:0}.enrollment-selected-count{margin-left:auto;font-size:12px;font-weight:600;color:#6b7280;padding:4px 10px;background:#fff;border-radius:12px;border:1px solid #e5e7eb}.enrollment-list{display:flex;flex-direction:column;gap:6px}.enrollment-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;transition:all .15s}.enrollment-item:hover{border-color:#3b82f6;background:#f0f9ff}.enrollment-item.selected{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 2px #3b82f61a}.enrollment-item-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6;flex-shrink:0;margin:0}.enrollment-item-info{flex:1;min-width:0}.enrollment-item-name{font-size:14px;font-weight:600;color:#1f2937;margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.enrollment-item-details{display:flex;align-items:center;gap:8px;font-size:11px;color:#6b7280;flex-wrap:wrap}.enrollment-item-email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.enrollment-item-date{white-space:nowrap}.enrollment-item-actions{display:flex;gap:4px;flex-shrink:0}.enrollment-action-btn{padding:6px 12px;border:1px solid;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.enrollment-action-btn.approve{background:#10b981;border-color:#10b981;color:#fff}.enrollment-action-btn.secondary{background:#fff;border-color:#d1d5db;color:#374151}.enrollment-action-btn.secondary:hover{border-color:#6b7280;color:#111827}.enrollment-action-btn.approve:hover{background:#059669;border-color:#059669;transform:translateY(-1px);box-shadow:0 2px 8px #10b9814d}.enrollment-action-btn.reject{background:#ef4444;border-color:#ef4444;color:#fff}.enrollment-action-btn.reject:hover{background:#dc2626;border-color:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}.enrollment-batch-actions{display:flex;gap:6px;margin-left:auto}.btn-approve-batch,.btn-reject-batch,.btn-approve-all{padding:6px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-approve-batch,.btn-approve-all{background:#10b981;color:#fff}.btn-approve-batch:hover,.btn-approve-all:hover{background:#059669;transform:translateY(-1px);box-shadow:0 2px 8px #10b9814d}.btn-reject-batch{background:#ef4444;color:#fff}.btn-reject-batch:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 8px #ef44444d}.students-list{overflow-x:auto}.students-table{width:100%;border-collapse:collapse;font-size:13px}.students-table thead{background:#f3f4f6;border-bottom:2px solid #e5e7eb}.students-table thead th{padding:12px;text-align:left;font-weight:600;color:#374151;white-space:nowrap}.students-table tbody tr{border-bottom:1px solid #e5e7eb;transition:background .15s}.students-table tbody tr:hover{background:#f9fafb}.students-table tbody td{padding:12px;color:#4b5563}.students-table tbody td:last-child{display:flex;gap:4px;flex-wrap:wrap}.students-table .btn-secondary{font-size:11px;padding:4px 8px;background:#e5e7eb;border:1px solid #d1d5db;color:#374151;border-radius:4px;cursor:pointer;transition:all .2s}.students-table .btn-secondary:hover{background:#d1d5db;border-color:#9ca3af}.modal-btn{padding:8px 16px;border:1px solid;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.modal-btn-primary{background:#3b82f6;border-color:#3b82f6;color:#fff}.modal-btn-primary:hover{background:#2563eb;border-color:#2563eb;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.modal-btn-secondary{background:#e5e7eb;border-color:#d1d5db;color:#374151}.modal-btn-secondary:hover{background:#d1d5db;border-color:#9ca3af}.courses-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-4);border-bottom:2px solid var(--border-light)}.courses-page-header h2{margin:0;font-size:var(--font-size-3xl);font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-3)}.courses-page-header h2:before{content:"📚";font-size:var(--font-size-3xl)}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-6);margin-top:var(--spacing-8);align-items:stretch}.course-card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light);overflow:hidden;transition:all var(--transition);box-shadow:var(--shadow-sm);position:relative;display:flex;flex-direction:column;min-height:280px}.course-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-6px);border-color:var(--primary)}.course-header{padding:var(--spacing-6);background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:start;min-height:96px}.course-header:after{content:"";position:absolute;top:-50%;right:-20%;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 70%);border-radius:50%}.course-header h3{margin:0;font-size:var(--font-size-xl);font-weight:700;flex:1;position:relative;z-index:1;line-height:1.3;text-shadow:0 2px 4px rgba(0,0,0,.1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-body{padding:var(--spacing-6);min-height:100px;display:flex;flex-direction:column;gap:var(--spacing-3);flex:1}.course-body p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.6}.course-body p:first-child{flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.course-footer{padding:var(--spacing-5) var(--spacing-6);border-top:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;background:var(--surface-1);margin-top:auto;gap:var(--spacing-3);flex-wrap:wrap}.course-footer-actions{display:flex;align-items:center;gap:var(--spacing-2)}.course-link-btn{padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border-light);background:#fff;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.course-link-btn:hover{background:var(--surface-1);border-color:var(--border-medium);color:var(--text-secondary);transform:translateY(-1px)}.course-pending-btn{background:#f871711f;border-color:#f8717159;color:#991b1b}.course-pending-btn:hover{background:#f871712e;border-color:#f8717173;color:#991b1b}.course-meta,.course-id{font-size:var(--font-size-xs);color:var(--text-muted);display:flex;align-items:center;gap:var(--spacing-2)}.course-meta.clickable{cursor:pointer;padding:8px 12px;border-radius:var(--radius-md);transition:all .2s cubic-bezier(.4,0,.2,1);background:#fff;border:1px solid var(--border-light);position:relative;overflow:hidden;min-width:180px;justify-content:space-between;white-space:nowrap}.course-meta.clickable:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .2s}.course-meta.clickable:hover{background:var(--surface-1);color:var(--text-secondary);border-color:var(--border-medium);transform:translateY(-2px);box-shadow:0 4px 12px #c8c9d64d}.course-meta.clickable:hover:before{opacity:1}.course-meta.clickable:active{transform:translateY(0) scale(.98)}.course-actions{display:flex;gap:var(--spacing-2);position:relative;z-index:2}.course-icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:#fff;padding:0;position:relative;overflow:hidden}.course-icon-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);opacity:0;transition:opacity .3s}.course-icon-btn:hover{background:#ffffff40;transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px #0003;border-color:#ffffff80}.course-icon-btn:hover:before{opacity:1}.course-icon-btn:active{transform:translateY(0) scale(.98)}.course-icon-btn.danger{background:#ef444433;border-color:#ef444466}.course-icon-btn.danger:hover{background:#ef4444e6;border-color:#ef4444;box-shadow:0 4px 12px #ef444466}.course-icon-btn svg{width:16px;height:16px;transition:transform .2s}.course-icon-btn:hover svg{transform:scale(1.1)}.btn-link{background:none;border:none;color:var(--primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md);transition:all var(--transition);display:inline-flex;align-items:center;gap:var(--spacing-1)}.btn-link:hover{background:var(--surface-2);color:var(--primary-dark);transform:translate(2px)}.btn-create-course{min-width:160px;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-6);font-size:var(--font-size-base);font-weight:600;letter-spacing:.3px;border-radius:var(--radius-lg);background:linear-gradient(120deg,#0ea5e9,#6366f1 45%,#22c55e);background-size:200% 200%;color:#fff;border:none;box-shadow:0 12px 22px #2563eb40;transition:transform var(--transition),box-shadow var(--transition),filter var(--transition),background-position .6s ease;flex-shrink:0;align-self:flex-start;animation:createCoursePulse 8s ease infinite}.btn-create-course .btn-icon{font-size:var(--font-size-lg);display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition)}.btn-create-course:hover .btn-icon{transform:rotate(90deg) scale(1.1)}.btn-create-course:hover{transform:translateY(-2px);box-shadow:0 18px 32px #2563eb59;filter:brightness(1.08);background-position:100% 50%;cursor:pointer}.btn-create-course:active{transform:translateY(0);box-shadow:0 10px 18px #2563eb40}@keyframes createCoursePulse{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.teacher-container .btn-primary,.teacher-container .btn-secondary{padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-lg);font-weight:600;letter-spacing:.2px;transition:transform var(--transition),box-shadow var(--transition),background var(--transition),color var(--transition),border-color var(--transition);min-height:40px}.teacher-container .btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;border:none;box-shadow:0 10px 18px #6366f140}.teacher-container .btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 24px #6366f152}.teacher-container .btn-primary:active{transform:translateY(0);box-shadow:0 8px 16px #6366f133}.teacher-container .btn-secondary{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border-light);box-shadow:0 6px 12px #0f172a14}.teacher-container .btn-secondary:hover{transform:translateY(-1px);border-color:var(--primary);color:var(--primary-dark);box-shadow:0 10px 18px #0f172a1f}.teacher-container .btn-primary:disabled,.teacher-container .btn-secondary:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.course-detail-header{background:linear-gradient(135deg,#5b21b6 0%,var(--primary) 30%,var(--secondary) 70%,#0284c7 100%);border-radius:var(--radius-xl);padding:var(--spacing-6) var(--spacing-8);margin-bottom:var(--spacing-6);color:#fff;box-shadow:0 20px 40px #6366f14d,0 0 0 1px #ffffff1a inset;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.course-detail-header:before{content:"";position:absolute;top:-30%;right:-5%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 60%);border-radius:50%;animation:float 8s ease-in-out infinite}.course-detail-header:after{content:"";position:absolute;bottom:-20%;left:-10%;width:350px;height:350px;background:radial-gradient(circle,rgba(255,255,255,.15) 0%,transparent 70%);border-radius:50%;animation:float 10s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(-20px,-20px)}}.course-detail-header .btn-link{background:#ffffff26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4);color:#fff!important;padding:var(--spacing-2) var(--spacing-4);margin-bottom:var(--spacing-3);font-weight:600;position:relative;z-index:2;box-shadow:0 4px 12px #0000001a;display:inline-flex;align-items:center;gap:var(--spacing-2)}.course-detail-header .btn-link:hover{background:#ffffff4d;transform:translate(-6px);color:#fff!important;border-color:#fff9;box-shadow:0 6px 16px #00000026}.course-detail-header .btn-link:focus{outline:none;background:#ffffff4d;color:#fff!important;box-shadow:0 0 0 4px #ffffff4d}.course-detail-header .teacher-title{margin:0 0 var(--spacing-2) 0;font-size:32px;font-weight:800;color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.2),0 4px 16px rgba(0,0,0,.1);position:relative;z-index:2;line-height:1.2;letter-spacing:-.5px}.course-detail-header .teacher-paragraph{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-sm);color:#fff;line-height:1.5;max-width:900px;position:relative;z-index:2;font-weight:400;text-shadow:0 1px 3px rgba(0,0,0,.1)}.course-detail-header .course-id{display:inline-flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-5);background:#ffffff40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:700;color:#fff!important;position:relative;z-index:2;box-shadow:0 4px 12px #0000001a;text-shadow:0 1px 2px rgba(0,0,0,.1);letter-spacing:.5px}.course-detail-header .course-id:before{content:"🎯";font-size:18px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.modules-section{margin-top:var(--spacing-4)}.modules-section h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-3);color:var(--text-primary);font-weight:700;display:flex;align-items:center;gap:var(--spacing-2)}.modules-section h3:before{content:"📁";font-size:var(--font-size-lg)}.module-item{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-3);transition:all var(--transition);box-shadow:var(--shadow-xs);position:relative}.module-item:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:linear-gradient(180deg,var(--primary) 0%,transparent 100%);border-radius:var(--radius-lg) 0 0 var(--radius-lg);opacity:0;transition:opacity var(--transition)}.module-item:hover{box-shadow:var(--shadow-sm);transform:translate(2px);border-color:var(--primary)}.module-item:hover:before{opacity:1}.module-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2)}.module-info{flex:1}.module-info h4{font-size:var(--font-size-sm);margin-bottom:var(--spacing-1);font-weight:700;line-height:1.3}.module-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.module-actions{display:flex;gap:var(--spacing-2)}.module-actions button,.module-actions .btn{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:var(--spacing-1);position:relative;overflow:hidden;min-height:32px}.module-actions button:before,.module-actions .btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .2s}.module-actions button:hover,.module-actions .btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.module-actions button:hover:before,.module-actions .btn:hover:before{opacity:.1;background:currentColor}.module-actions button:active,.module-actions .btn:active{transform:translateY(0) scale(.98)}.module-actions button.primary,.module-actions .btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 2px 6px #6366f133}.module-actions button.primary:hover,.module-actions .btn-primary:hover{box-shadow:0 4px 12px #6366f14d}.module-actions button.secondary,.module-actions .btn-secondary{background:var(--surface-2);color:var(--text-primary);border-color:var(--border-light)}.module-actions button.secondary:hover,.module-actions .btn-secondary:hover{background:#fff;border-color:var(--primary);color:var(--primary)}.module-actions button.danger,.module-actions .btn-danger{background:transparent;color:#dc2626;border-color:#fecaca}.module-actions button.danger:hover,.module-actions .btn-danger:hover{background:#dc2626;color:#fff;border-color:#dc2626;box-shadow:0 2px 8px #dc262640}.module-icon{font-size:20px;margin-right:var(--spacing-2)}.module-files-list{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-2)}.file-line-item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-2);border-radius:var(--radius-sm);transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;cursor:pointer;position:relative;overflow:hidden}.file-line-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary);opacity:0;transition:opacity .2s}.file-line-item:hover{background:#fff;box-shadow:0 2px 8px #00000014;border-color:var(--primary);transform:translate(2px)}.file-line-item:hover:before{opacity:1}.file-line-item:active{transform:translate(0) scale(.99)}.module-file-info{flex:1}.module-path{font-size:var(--font-size-xs);font-weight:600;color:var(--text-primary);margin:0;line-height:1.3}.module-size,.module-type{font-size:10px;color:var(--text-muted);margin-left:var(--spacing-1)}.assignment-item{border-left:4px solid var(--accent)}.assignment-item .module-icon{color:var(--accent)}.assessment-item{border-left:4px solid var(--secondary)}.assessment-item .module-icon{color:var(--secondary);background:linear-gradient(135deg,#0ea5e91a,#0ea5e90d);padding:var(--spacing-2);border-radius:var(--radius-md)}.assessment-type,.assessment-badge{padding:3px var(--spacing-2);border-radius:var(--radius-sm);font-size:10px;font-weight:700;display:inline-flex;align-items:center;gap:4px;margin-left:var(--spacing-2);transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;border:1px solid transparent}.assessment-type:hover,.assessment-badge:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.assessment-type{background:#e0f2fe;color:#0369a1;border-color:#0369a133}.assessment-badge.questions{background:#f3e8ff;color:#7e22ce;border-color:#7e22ce33}.assessment-badge.responses{background:#fef3c7;color:#92400e;border-color:#92400e33}.assessment-badge.visible{background:#dcfce7;color:#166534;border-color:#16653433}.assessment-badge.hidden{background:#fee2e2;color:#991b1b;border-color:#991b1b33}.assessment-badge.scheduled{background:#fef3c7;color:#92400e;border-color:#92400e33}.assessment-badge.posted{background:#dbeafe;color:#1e40af;border-color:#1e40af33}.assessment-badge.manual-results{background:#fee2e2;color:#991b1b;border-color:#991b1b33}.assessment-badge.auto-results{background:#dcfce7;color:#166534;border-color:#16653433}.assessment-badge.closed{background:#fee2e2;color:#991b1b;border-color:#991b1b33}.assessment-badge.accepting{background:#dcfce7;color:#166534;border-color:#16653433}.assignment-description{font-size:var(--font-size-xs);color:var(--text-secondary);margin:var(--spacing-1) 0;line-height:1.4}.assignment-details{display:flex;flex-wrap:wrap;gap:var(--spacing-1);margin:var(--spacing-2) 0;align-items:center}.course-form-card,.form-container{background:#fff;border-radius:var(--radius-md);padding:var(--spacing-4);margin-bottom:var(--spacing-4);border:1px solid var(--border-light);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.course-form-card:before,.form-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%)}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--border-light)}.form-header h3{margin:0;font-size:var(--font-size-lg);font-weight:700}.form-group-teacher,.form-group{margin-bottom:var(--spacing-2)}.form-group-teacher label,.form-group label{display:block;margin-bottom:var(--spacing-1);color:var(--text-primary);font-weight:600;font-size:var(--font-size-xs)}.form-control-teacher,.form-control{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all .2s cubic-bezier(.4,0,.2,1)}.form-control-teacher:focus,.form-control:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.form-actions{display:flex;gap:var(--spacing-2);justify-content:flex-end;margin-top:var(--spacing-4);padding-top:var(--spacing-3);border-top:1px solid var(--border-light)}.btn-save-sm,.btn-cancel-sm,.btn-edit,.btn-delete{padding:var(--spacing-2) var(--spacing-4);border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-1);position:relative;overflow:hidden}.btn-save-sm:before,.btn-cancel-sm:before,.btn-edit:before,.btn-delete:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .2s}.btn-save-sm:hover:before,.btn-cancel-sm:hover:before,.btn-edit:hover:before,.btn-delete:hover:before{opacity:.1;background:currentColor}.btn-save-sm{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 2px 8px #6366f14d}.btn-save-sm:hover{box-shadow:0 4px 12px #6366f166;transform:translateY(-2px)}.btn-cancel-sm{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border-light)}.btn-cancel-sm:hover{background:#fff;border-color:var(--border-medium);color:var(--text-primary);box-shadow:var(--shadow-xs)}.btn-edit{background:linear-gradient(135deg,var(--secondary) 0%,#0284c7 100%);color:#fff;box-shadow:0 2px 8px #0ea5e94d}.btn-edit:hover{box-shadow:0 4px 12px #0ea5e966;transform:translateY(-2px)}.btn-delete{background:linear-gradient(135deg,var(--error) 0%,#dc2626 100%);color:#fff;box-shadow:0 2px 8px #ef44444d}.btn-delete:hover{box-shadow:0 4px 12px #ef444466;transform:translateY(-2px)}.btn-download{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:600;border:none;cursor:pointer;transition:all var(--transition);min-height:32px;display:inline-flex;align-items:center;gap:var(--spacing-2);box-shadow:0 2px 6px #6366f140}.btn-download:hover{box-shadow:0 4px 10px #6366f159;transform:translateY(-1px)}.timeline-posts,.announcements-list{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-2)}.timeline-post-card,.announcement-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-4);box-shadow:var(--shadow-xs);transition:all var(--transition);display:flex;gap:var(--spacing-3);position:relative;overflow:hidden}.timeline-post-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--primary) 0%,var(--secondary) 100%);transition:width var(--transition)}.timeline-post-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary)}.timeline-post-card:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #6366f126}.timeline-post-card:hover:before{width:6px}.timeline-post-avatar{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f11a,#0ea5e91a);border-radius:var(--radius-full);font-size:18px;border:1.5px solid var(--border-light);box-shadow:0 1px 4px #6366f114;transition:all var(--transition)}.timeline-post-card:hover .timeline-post-avatar{transform:scale(1.1) rotate(5deg);box-shadow:0 4px 12px #6366f133;border-color:var(--primary)}.timeline-post-body{flex:1;min-width:0}.timeline-post-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-2);gap:var(--spacing-2)}.timeline-post-title{margin:0;font-size:var(--font-size-md);font-weight:800;color:var(--text-primary);line-height:1.3}.timeline-post-type{margin:0;font-size:var(--font-size-xs);font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.5px;display:inline-flex;align-items:center;gap:var(--spacing-1);padding:2px var(--spacing-2);background:#6366f11f;border-radius:var(--radius-sm)}.timeline-post-date{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;display:flex;align-items:center;gap:var(--spacing-1);padding:2px var(--spacing-2);background:var(--surface-2);border-radius:var(--radius-sm)}.timeline-post-date:before{content:"🕐";font-size:14px}.timeline-post-description{margin:var(--spacing-2) 0;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5}.timeline-post-meta{margin:0;font-size:var(--font-size-xs);color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--spacing-1);padding:2px var(--spacing-2);background:var(--surface-2);border-radius:var(--radius-sm)}.timeline-post-actions{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-2)}.timeline-post-open{padding:6px var(--spacing-4);background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 6px #6366f140;position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:var(--spacing-1);min-height:28px}.timeline-post-open:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .5s,height .5s}.timeline-post-open:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6366f159}.timeline-post-open:active{transform:translateY(0)}.timeline-post-open:active:before{width:200px;height:200px}.announcement-card .timeline-post-avatar{background:linear-gradient(135deg,#f59e0b26,#fbbf2426);border-color:#f59e0b4d}.announcement-card:hover .timeline-post-avatar{border-color:var(--accent)}.announcement-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-1);gap:var(--spacing-2)}.announcement-header h3{margin:0;font-size:var(--font-size-sm);font-weight:700;color:var(--text-primary);line-height:1.3}.announcement-meta{font-size:var(--font-size-xs);color:var(--text-muted);margin:0;display:flex;align-items:center;gap:var(--spacing-1)}.announcement-content{margin-bottom:var(--spacing-1)}.announcement-content p{margin:0;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.4}.announcement-actions{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-1)}.timeline-activity-card.module-card:before{background:linear-gradient(180deg,#f59e0b,#eab308)}.timeline-activity-card.assignment-card:before{background:linear-gradient(180deg,#10b981,#14b8a6)}.timeline-activity-card.assessment-card:before{background:linear-gradient(180deg,#8b5cf6,#a78bfa)}.btn-create-announcement{padding:var(--spacing-2) var(--spacing-4);background:linear-gradient(135deg,var(--accent) 0%,#f59e0b 100%);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #f59e0b4d;display:flex;align-items:center;gap:var(--spacing-2);position:relative;overflow:hidden;min-height:36px;border:1px solid rgba(255,255,255,.2)}.btn-create-announcement:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:var(--radius-full);transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn-create-announcement:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px #f59e0b66;border-color:#ffffff4d}.btn-create-announcement:active{transform:translateY(0) scale(1)}.btn-create-announcement:active:before{width:300px;height:300px}.btn-create-announcement .btn-icon{font-size:18px;display:inline-flex;transition:transform .3s cubic-bezier(.4,0,.2,1)}.btn-create-announcement:hover .btn-icon{transform:scale(1.2) rotate(5deg)}.comments-section{margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border-light)}.comments-section h4{font-size:var(--font-size-xs);font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-2) 0;display:flex;align-items:center;gap:var(--spacing-2)}.comments-section h4:before{content:"💬";font-size:18px}.comment-item{padding:var(--spacing-2) var(--spacing-3);background:var(--surface-1);border-radius:var(--radius-sm);margin-bottom:var(--spacing-2);border-left:2px solid var(--primary);transition:all var(--transition)}.comment-item:hover{background:#fff;box-shadow:var(--shadow-xs);transform:translate(2px)}.comment-author{font-weight:700;font-size:var(--font-size-sm);color:var(--primary);margin-bottom:var(--spacing-2);display:flex;align-items:center;gap:var(--spacing-2)}.comment-author:before{content:"👤";font-size:16px}.comment-text{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0 0 var(--spacing-1) 0;line-height:1.4}.comment-time{font-size:var(--font-size-xs);color:var(--text-muted);display:flex;align-items:center;gap:var(--spacing-1);margin-top:var(--spacing-1)}.comment-time:before{content:"🕐";font-size:12px}.mode-toggle{display:flex;gap:var(--spacing-2);margin:var(--spacing-6) 0;padding:var(--spacing-2);background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-xs)}.mode-btn{background:transparent;border:none;border-radius:var(--radius-md);padding:var(--spacing-3) var(--spacing-5);font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;margin-bottom:0;display:inline-flex;align-items:center;gap:var(--spacing-2);position:relative}.mode-btn:hover{color:var(--primary);background:var(--surface-2)}.mode-btn:focus,.mode-btn:focus-visible{outline:none;color:var(--text-primary);background:var(--surface-2);box-shadow:0 0 0 3px #6366f133}.mode-btn.active{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;font-weight:700;box-shadow:0 2px 8px #6366f14d}.mode-btn.active:focus,.mode-btn.active:focus-visible{outline:none;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;box-shadow:0 2px 8px #6366f14d,0 0 0 3px #fff6}.mode-btn.active:before{opacity:1}.error-banner{background:#ef44441a;color:#dc2626;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm);border:1px solid rgba(239,68,68,.2)}.success-banner{background:#10b9811a;color:#059669;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);margin-bottom:var(--spacing-4);font-size:var(--font-size-sm);border:1px solid rgba(16,185,129,.2)}.modal-btn-secondary{background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border-light);padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition);min-height:44px;display:inline-flex;align-items:center;justify-content:center}.modal-btn-secondary:hover{background:#fff;border-color:var(--border-medium);box-shadow:var(--shadow-xs);transform:translateY(-1px)}.modal-btn-danger{background:linear-gradient(135deg,var(--error) 0%,#dc2626 100%);color:#fff;padding:var(--spacing-3) var(--spacing-6);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition);border:none;min-height:44px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #ef44444d}.modal-btn-danger:hover{box-shadow:0 4px 12px #ef444466;transform:translateY(-2px)}.students-table{width:100%;margin-top:var(--spacing-4)}.students-table th,.students-table td{padding:var(--spacing-3) var(--spacing-4);text-align:left;border-bottom:1px solid var(--border-light)}.students-table th{background:var(--surface-2);font-weight:600;color:var(--text-secondary);font-size:var(--font-size-sm)}.students-table tr:hover td{background:var(--surface-2)}.module-edit-form{margin-bottom:var(--spacing-4)}.module-name-input{width:100%;padding:var(--spacing-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:600}.module-edit-actions{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-3)}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-8);padding:var(--spacing-6);background:#fff;border-radius:var(--radius-xl);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);transition:all var(--transition);position:relative;overflow:hidden}.section-header:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 100%)}.section-header:hover{box-shadow:var(--shadow-md);border-color:#6366f133}.section-header>div:first-child{flex:1;display:flex;flex-direction:column;gap:var(--spacing-2)}.section-header .teacher-title{margin:0;font-size:var(--font-size-3xl);font-weight:800;color:var(--text-primary);letter-spacing:-.5px;line-height:1.2;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:white;background-clip:text}.section-header .teacher-paragraph{margin:0;font-size:var(--font-size-base);color:"#b5fc86";line-height:1.6;font-weight:400;max-width:100%}.section-header.course-detail{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);border-radius:var(--radius-xl);padding:var(--spacing-8);color:#fff;box-shadow:var(--shadow-lg);position:relative;overflow:hidden;display:block;border:none}.section-header.course-detail:before{display:none}.section-header h3{margin:0}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-3)}.timeline-header h2{margin:0 0 var(--spacing-1) 0;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary)}.timeline-subtitle{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.4}.timeline-feed{display:flex;flex-direction:column;gap:var(--spacing-2)}.announcement-form-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-3);margin-bottom:var(--spacing-3);box-shadow:var(--shadow-xs)}.announcement-form-card h3{margin:0 0 var(--spacing-3) 0;font-size:var(--font-size-md);font-weight:700;color:var(--text-primary)}.close-btn{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition)}.close-btn:hover{background:var(--surface-2);color:var(--text-primary)}@media (max-width: 768px){.section-header{flex-direction:column;align-items:stretch;gap:var(--spacing-4);padding:var(--spacing-5)}.section-header .teacher-title{font-size:var(--font-size-2xl)}.section-header .teacher-paragraph{font-size:var(--font-size-sm);max-width:100%}.btn-create-course{width:100%;justify-content:center}}@media (max-width: 480px){.section-header{padding:var(--spacing-4);margin-bottom:var(--spacing-6)}.section-header .teacher-title{font-size:var(--font-size-xl)}.section-header .teacher-paragraph{font-size:var(--font-size-xs)}}.quick-actions{background:#fff;border-radius:var(--radius-xl);padding:var(--spacing-8);margin-top:var(--spacing-8);border:1px solid var(--border-light);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.quick-actions:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary) 0%,var(--secondary) 50%,var(--accent) 100%)}.quick-actions h4{margin:0 0 var(--spacing-6) 0;font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-3)}.quick-actions h4:before{content:"⚡";font-size:var(--font-size-2xl)}.action-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-4)}.action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-3);padding:var(--spacing-6);background:linear-gradient(135deg,var(--surface-1) 0%,white 100%);border:2px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);min-height:140px;position:relative;overflow:hidden}.action-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);opacity:0;transition:opacity var(--transition);z-index:0}.action-btn:hover:before{opacity:1}.action-btn>span{position:relative;z-index:1;transition:all var(--transition)}.action-btn>span:first-child{font-size:48px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.action-btn:hover{transform:translateY(-6px);box-shadow:0 12px 24px #6366f14d;border-color:transparent}.action-btn:hover>span{color:#fff;transform:scale(1.05)}.action-btn:hover>span:first-child{transform:scale(1.15);filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.action-btn:active{transform:translateY(-4px) scale(.98)}@media (max-width: 768px){.action-buttons{grid-template-columns:1fr;gap:var(--spacing-3)}.action-btn{flex-direction:row;min-height:auto;padding:var(--spacing-4);gap:var(--spacing-4)}.action-btn>span:first-child{font-size:32px}}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(10px,-10px) rotate(2deg)}66%{transform:translate(-10px,10px) rotate(-2deg)}}.student-container{display:flex;min-height:100vh;background:var(--bg-secondary)}.student-sidebar{width:260px;background:#fff;border-right:1px solid var(--border-light);display:flex;flex-direction:column;padding:var(--spacing-6);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-header{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-5);border-bottom:1px solid var(--border-light)}.sidebar-logo{font-size:var(--font-size-2xl);font-weight:700;color:var(--primary);margin-bottom:var(--spacing-1)}.sidebar-subtitle{font-size:var(--font-size-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-weight:600}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:var(--spacing-1)}.nav-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;transition:all var(--transition);text-align:left;width:100%;position:relative}.nav-item:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:linear-gradient(180deg,#6366f1,#0ea5e9);border-radius:0 2px 2px 0;transition:height var(--transition)}.nav-item:hover{background:var(--surface-2);color:var(--text-primary)}.nav-item.active{background:#6366f11a;color:#6366f1;font-weight:700}.nav-item.active:before{height:60%}.nav-icon{font-size:20px;transition:transform var(--transition)}.nav-item:hover .nav-icon{transform:scale(1.1)}.nav-label{flex:1}.badge{background:#ef4444;color:#fff;font-size:var(--font-size-xs);padding:2px var(--spacing-2);border-radius:var(--radius-full);font-weight:700;min-width:20px;text-align:center;box-shadow:0 2px 8px #ef444440}.logout-btn{padding:var(--spacing-3) var(--spacing-4);border:1px solid var(--border-light);background:transparent;color:var(--text-secondary);border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all var(--transition);font-size:var(--font-size-sm);margin-top:var(--spacing-4)}.logout-btn:hover{background:#ef44441a;color:#ef4444;border-color:#ef4444;transform:translateY(-1px)}.student-main{flex:1;overflow-y:auto;padding:var(--page-padding)}.dashboard{max-width:var(--page-max-width);margin:0 auto}.dashboard-header{margin-bottom:var(--spacing-6);padding:var(--spacing-5);background:linear-gradient(135deg,#6366f1,#4f46e5,#0ea5e9);border-radius:var(--radius-lg);color:#fff;box-shadow:0 8px 24px #6366f126;position:relative;overflow:hidden}.dashboard-header:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;animation:float 6s ease-in-out infinite}.dashboard-header h1{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--spacing-2);position:relative;z-index:1}.dashboard-header p{font-size:var(--font-size-sm);opacity:.95;position:relative;z-index:1;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.stat-card{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-3);border:1px solid var(--border-light);transition:all var(--transition);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#0ea5e9);opacity:0;transition:opacity var(--transition)}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6366f11a;border-color:#6366f1}.stat-card:hover:before{opacity:1}.stat-icon{font-size:28px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f11a,#0ea5e91a);border-radius:var(--radius-lg);border:1px solid rgba(99,102,241,.2)}.stat-info{flex:1}.stat-value{font-size:var(--font-size-xl);font-weight:800;color:var(--text-primary);line-height:1}.stat-label{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--spacing-1);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.dashboard-section{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-4);margin-bottom:var(--spacing-4);border:1px solid var(--border-light);box-shadow:var(--shadow-xs);transition:all var(--transition)}.dashboard-section:hover{box-shadow:0 4px 12px #6366f10d}.dashboard-section h2{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--spacing-4);color:var(--text-primary)}.assignments-preview{display:flex;flex-direction:column;gap:var(--spacing-4)}.assignment-preview{padding:var(--spacing-4);background:var(--surface-2);border-radius:var(--radius-md);border-left:4px solid var(--warning);transition:all var(--transition)}.assignment-preview:hover{box-shadow:var(--shadow-sm);transform:translate(2px)}.assignment-preview.submitted{border-left-color:var(--success)}.assignment-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-2)}.assignment-preview h3{font-size:var(--font-size-base);margin:0}.status{font-size:var(--font-size-xs);font-weight:600;padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full)}.status.due{background:#f59e0b1a;color:#d97706}.status.done{background:#10b9811a;color:#059669}.course-name{font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--spacing-1)}.due-date{font-size:var(--font-size-xs);color:var(--text-secondary)}.course-detail-container{max-width:1400px;margin:0 auto;padding:0}.course-header-detail{background:linear-gradient(135deg,#6366f1,#4f46e5,#0ea5e9);color:#fff;padding:var(--spacing-6) var(--spacing-6);border-radius:var(--radius-lg);margin-bottom:var(--spacing-5);position:relative;overflow:hidden;box-shadow:0 8px 24px #6366f126}.course-header-detail:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;animation:float 6s ease-in-out infinite}.course-header-detail h2{margin:0 0 var(--spacing-2) 0;color:#fff;font-size:var(--font-size-2xl);font-weight:800;position:relative;z-index:1}.course-code{font-size:var(--font-size-xs);opacity:.85;margin:var(--spacing-2) 0 0 0;position:relative;z-index:1;letter-spacing:.5px}.course-content{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-4);border:1px solid var(--border-light);box-shadow:var(--shadow-xs)}.modules-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.modules-header{margin-bottom:var(--spacing-3)}.modules-header h3{margin:0 0 var(--spacing-1) 0;font-size:var(--font-size-lg);font-weight:700}.modules-subtitle{color:var(--text-secondary);font-size:var(--font-size-xs);margin:0;letter-spacing:.5px}.module-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);transition:all var(--transition);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.module-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f59e0b,#6366f1);opacity:0;transition:opacity var(--transition)}.module-card:hover{box-shadow:0 4px 12px #f59e0b1f;transform:translateY(-2px);border-color:#f59e0b}.module-card:hover:before{opacity:1}.module-card-content{width:100%}.module-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2)}.module-number{font-size:var(--font-size-xs);font-weight:700;color:#6366f1;text-transform:uppercase;letter-spacing:1px;background:#6366f11a;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md)}.module-title{font-size:var(--font-size-lg);font-weight:800;margin:0 0 var(--spacing-1) 0;color:var(--text-primary)}.module-files-list-container{margin-top:var(--spacing-3)}.module-attachment,.file-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);background:var(--surface-2);border-radius:var(--radius-md);margin-bottom:var(--spacing-2);transition:all var(--transition)}.module-attachment:hover,.file-item:hover{background:var(--surface-3);box-shadow:var(--shadow-xs)}.module-meta{display:flex;gap:var(--spacing-4);margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--border-light);font-size:var(--font-size-xs);color:var(--text-muted)}.assignment-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);margin-bottom:var(--spacing-3);box-shadow:var(--shadow-xs);transition:all var(--transition);position:relative;overflow:hidden}.assignment-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f59e0b,#6366f1);opacity:0;transition:opacity var(--transition)}.assignment-card:hover{box-shadow:0 4px 12px #f59e0b1a;transform:translateY(-2px);border-color:#f59e0b}.assignment-card:hover:before{opacity:1}.assignment-card h3{margin:0 0 var(--spacing-1) 0;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary)}.assignment-modules{margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border-light)}.assignment-modules h4{font-size:var(--font-size-xs);margin:0 0 var(--spacing-2) 0;color:var(--text-secondary);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.module-link{color:#6366f1;text-decoration:none;font-size:var(--font-size-sm);transition:all var(--transition);display:inline-block}.module-link:hover{color:#4f46e5;text-decoration:underline;transform:translate(2px)}.timeline-card,.assessment-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);margin-bottom:var(--spacing-3);box-shadow:var(--shadow-xs);transition:all var(--transition);position:relative;overflow:hidden}.timeline-card:before,.assessment-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f59e0b,#6366f1);opacity:0;transition:opacity var(--transition)}.timeline-card:hover,.assessment-card:hover{box-shadow:0 4px 12px #f59e0b1f;transform:translateY(-2px);border-color:#f59e0b}.timeline-card:hover:before,.assessment-card:hover:before{opacity:1}.profile-card,.grades-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-xs);transition:all var(--transition)}.profile-card:hover,.grades-card:hover{box-shadow:0 4px 12px #6366f114}.profile-header{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--border-light)}.profile-avatar{width:60px;height:60px;border-radius:var(--radius-full);background:linear-gradient(135deg,#6366f1,#4f46e5);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-size-xl);font-weight:700;box-shadow:0 4px 12px #6366f140}.announcements-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.announcement-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-xs);transition:all var(--transition);position:relative;overflow:hidden}.announcement-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#0ea5e9);opacity:0;transition:opacity var(--transition)}.announcement-card:hover{box-shadow:0 4px 12px #6366f114;transform:translateY(-1px);border-color:#6366f1}.announcement-card:hover:before{opacity:1}.announcement-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:var(--spacing-2)}.announcement-meta{font-size:var(--font-size-xs);color:var(--text-muted);letter-spacing:.3px}.section-header{margin-bottom:var(--spacing-6);padding:var(--spacing-5) var(--spacing-6);background:linear-gradient(135deg,#6366f1,#4f46e5,#0ea5e9);border-radius:var(--radius-lg);box-shadow:0 8px 24px #6366f126;position:relative;overflow:hidden}.section-header:before{content:"";position:absolute;top:-50%;right:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;animation:float 6s ease-in-out infinite}.section-header h1{font-size:var(--font-size-2xl);font-weight:800;margin:0 0 var(--spacing-2) 0;color:#fff;position:relative;z-index:1}.section-header h2{font-size:var(--font-size-xl);font-weight:700;margin:0 0 var(--spacing-2) 0;color:#fff;position:relative;z-index:1}.section-header p{margin:0;color:#fffffff2;font-size:var(--font-size-sm);line-height:1.6;position:relative;z-index:1}.file-list-line{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-2);border-radius:var(--radius-md);margin-bottom:var(--spacing-2);transition:all var(--transition);border:1px solid transparent}.file-list-line:hover{background:var(--surface-3);border-color:#6366f1;box-shadow:var(--shadow-xs)}.file-list-info{display:flex;align-items:center;gap:var(--spacing-2);flex:1;min-width:0}.file-list-icon{font-size:var(--font-size-lg);flex-shrink:0}.file-list-details{display:flex;flex-direction:column;gap:var(--spacing-1);min-width:0}.file-list-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-list-size{font-size:var(--font-size-xs);color:var(--text-muted);letter-spacing:.3px}.file-list-actions{display:flex;gap:var(--spacing-2);flex-shrink:0}.file-list-view-btn,.file-list-download-btn{font-size:var(--font-size-xs);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition);font-weight:600;letter-spacing:.3px}.file-list-view-btn{background:#6366f11a;color:#6366f1;border:1px solid transparent}.file-list-view-btn:hover{background:#6366f126;border-color:#6366f1;transform:translateY(-1px)}.file-list-download-btn{background:#0ea5e91a;color:#0ea5e9;border:1px solid transparent}.file-list-download-btn:hover{background:#0ea5e926;border-color:#0ea5e9;transform:translateY(-1px)}.file-count-badge{font-size:var(--font-size-xs);font-weight:700;padding:var(--spacing-1) var(--spacing-2);background:#0ea5e91a;color:#0ea5e9;border-radius:var(--radius-md);letter-spacing:.5px}.view-toggle{display:flex;gap:var(--spacing-2);margin-bottom:var(--spacing-4);padding:var(--spacing-2);background:var(--surface-1);border-radius:var(--radius-lg);flex-wrap:wrap}.view-btn{flex:1;min-width:0;padding:var(--spacing-2) var(--spacing-3);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap;letter-spacing:.3px}.view-btn:hover{background:var(--surface-2);color:var(--text-primary)}.view-btn.active{background:linear-gradient(135deg,#6366f1,#0ea5e9);color:#fff;box-shadow:0 4px 12px #6366f140}.empty-state{text-align:center;padding:var(--spacing-8) var(--spacing-4);color:var(--text-secondary)}.empty-state p{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-md)}.empty-state .text-muted{font-size:var(--font-size-sm);color:var(--text-muted)}.courses-container{max-width:1400px;margin:0 auto}.course-section{margin-bottom:var(--spacing-5)}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-4)}.course-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-xs);transition:all var(--transition);display:flex;flex-direction:column;gap:var(--spacing-3);position:relative;overflow:hidden}.course-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#0ea5e9);opacity:0;transition:opacity var(--transition)}.course-card:hover{box-shadow:0 8px 24px #6366f126;transform:translateY(-2px);border-color:#6366f1}.course-card:hover:before{opacity:1}.course-header{display:flex;flex-direction:column;gap:var(--spacing-2)}.course-badge{font-size:var(--font-size-xs);font-weight:700;padding:var(--spacing-1) var(--spacing-2);background:#10b9811a;color:#272727;border-radius:var(--radius-md);width:fit-content;letter-spacing:.5px}.course-title{font-size:var(--font-size-lg);font-weight:700;margin:0}.course-body{flex:1;display:flex;flex-direction:column;gap:var(--spacing-2)}.course-code,.course-instructor{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.course-instructor{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:wrap}.course-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-footer{padding-top:var(--spacing-2);border-top:1px solid var(--border-light)}.admin-courses-section{margin-bottom:var(--spacing-6)}.admin-courses-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--spacing-3);margin-bottom:var(--spacing-3)}.admin-courses-header h2{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}.admin-courses-header p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.admin-courses-list{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden}.admin-course-item{border-bottom:1px solid var(--border-light)}.admin-course-item:last-child{border-bottom:none}.admin-course-row{background:#fff;padding:var(--spacing-4);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.admin-course-icon{width:40px;height:40px;min-width:40px;border-radius:50%;background:#10b981;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.admin-course-main{flex:1;display:flex;flex-direction:column;gap:var(--spacing-2)}.admin-course-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-2)}.admin-course-pill{font-size:var(--font-size-xs);font-weight:700;padding:var(--spacing-1) var(--spacing-2);background:#d1fae5;color:#065f46;border-radius:var(--radius-md);letter-spacing:.4px}.admin-course-status{font-size:var(--font-size-xs);font-weight:700;padding:var(--spacing-1) var(--spacing-2);background:#e5e7eb;color:#374151;border-radius:var(--radius-md)}.admin-course-status.enrolled{background:#dcfce7;color:#166534}.admin-course-status.pending{background:#fef3c7;color:#92400e}.admin-course-title{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}.admin-course-description{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.admin-course-meta{display:flex;gap:var(--spacing-3);flex-wrap:wrap;font-size:var(--font-size-sm);color:var(--text-secondary)}.admin-course-actions{min-width:180px;display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-2)}.admin-course-actions .btn{width:100%}.admin-course-toggle{background:transparent;border:none;color:#2563eb;font-size:var(--font-size-xs);font-weight:600;cursor:pointer;padding:0;text-align:right}.admin-course-curriculum{padding:var(--spacing-3) var(--spacing-4) var(--spacing-4);background:#f9fafb}.admin-curriculum-loading,.admin-curriculum-empty{font-size:var(--font-size-sm);color:var(--text-secondary)}.admin-curriculum-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.admin-module-list,.admin-topic-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-2)}.admin-module-item{border:1px solid var(--border-light);border-radius:var(--radius-md);background:#fff;padding:var(--spacing-2) var(--spacing-3)}.admin-module-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-2)}.admin-topic-item{border:1px solid var(--border-light);border-radius:var(--radius-md);background:#f9fafb;padding:var(--spacing-2) var(--spacing-3)}.admin-topic-title{font-size:var(--font-size-xs);font-weight:600;color:var(--text-primary)}.admin-module,.admin-topic{border:1px solid var(--border-light);border-radius:var(--radius-md);background:#fff;padding:var(--spacing-2) var(--spacing-3)}.admin-module summary,.admin-topic summary{cursor:pointer;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);list-style:none}.admin-module summary::-webkit-details-marker,.admin-topic summary::-webkit-details-marker{display:none}.admin-topics{margin-top:var(--spacing-2);display:flex;flex-direction:column;gap:var(--spacing-2)}.admin-topic-content{margin-top:var(--spacing-2);font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.6}.admin-topic-discussion{margin:0 0 var(--spacing-2) 0;white-space:pre-wrap;word-break:break-word}.admin-topic-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-1)}.admin-topic-links ul,.admin-topic-files ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-1)}.admin-topic-links a{color:#2563eb;text-decoration:none;word-break:break-all}.admin-topic-links a:hover{text-decoration:underline}.admin-topic-empty{margin-top:var(--spacing-2);font-size:var(--font-size-xs);color:var(--text-muted)}@media (max-width: 900px){.admin-course-row{flex-direction:column;align-items:flex-start}.admin-course-actions{align-items:stretch;width:100%}.admin-course-toggle{text-align:left}}.enroll-button{padding:var(--spacing-2) var(--spacing-4);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all var(--transition);background:linear-gradient(135deg,#6366f1,#0ea5e9);color:#fff;letter-spacing:.3px;position:relative;overflow:hidden}.enroll-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.enroll-button:hover:before{width:300px;height:300px}.enroll-button:hover{transform:translateY(-2px);box-shadow:0 8px 16px #6366f14d}.enroll-button.cancel{background:linear-gradient(135deg,#ef4444,#dc2626)}.enroll-button.cancel:hover{box-shadow:0 8px 16px #ef44444d}.enroll-button.pending{background:linear-gradient(135deg,#f59e0b,#d97706)}.enroll-button.pending:hover{box-shadow:0 8px 16px #f59e0b4d}.content-card{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-4);border:1px solid var(--border-light);box-shadow:var(--shadow-xs)}.loading{text-align:center;padding:var(--spacing-6);color:var(--text-secondary);font-size:var(--font-size-md)}.grades-container{max-width:1400px;margin:0 auto}.grade-summary{margin-bottom:var(--spacing-5)}.grade-summary h2{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--spacing-3);color:var(--text-primary)}.summary-card{background:linear-gradient(135deg,#6366f1,#0ea5e9);border-radius:var(--radius-lg);padding:var(--spacing-5);text-align:center;color:#fff;box-shadow:0 8px 24px #6366f133;position:relative;overflow:hidden}.summary-card:before{content:"";position:absolute;top:-50%;right:-10%;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%;animation:float 6s ease-in-out infinite}.average-grade{font-size:48px;font-weight:800;margin-bottom:var(--spacing-2);position:relative;z-index:1}.summary-card p{margin:0;font-size:var(--font-size-sm);opacity:.95;font-weight:600;letter-spacing:.5px;text-transform:uppercase;position:relative;z-index:1}.grades-section{background:#fff;border-radius:var(--radius-lg);padding:var(--spacing-4);border:1px solid var(--border-light);box-shadow:var(--shadow-xs)}.section-title{font-size:var(--font-size-lg);font-weight:700;margin:0 0 var(--spacing-3) 0;color:var(--text-primary)}.grades-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.grade-item{background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);transition:all var(--transition);position:relative;overflow:hidden}.grade-item:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6366f1,#0ea5e9);opacity:0;transition:opacity var(--transition)}.grade-item:hover{box-shadow:0 4px 12px #6366f114;transform:translateY(-1px);border-color:#6366f1}.grade-item:hover:before{opacity:1}.grade-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2)}.grade-header h3{font-size:var(--font-size-md);font-weight:700;margin:0;color:var(--text-primary)}.grade-score{font-size:var(--font-size-lg);font-weight:800;padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-md);letter-spacing:.5px}.grade-score.excellent{background:#10b9811a;color:#10b981}.grade-score.good{background:#3b82f61a;color:#3b82f6}.grade-score.average{background:#f59e0b1a;color:#f59e0b}.grade-score.poor{background:#ef44441a;color:#ef4444}.feedback{margin:var(--spacing-2) 0;padding:var(--spacing-2) var(--spacing-3);background:#6366f10d;border-left:3px solid #6366f1;border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6}.graded-date{font-size:var(--font-size-xs);color:var(--text-muted);margin:var(--spacing-1) 0 0 0;letter-spacing:.3px}.timeline-feed{display:flex;flex-direction:column;gap:var(--spacing-3)}.student-timeline-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-xs);display:flex;gap:var(--spacing-3);transition:all var(--transition);position:relative;overflow:hidden}.student-timeline-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f59e0b,#6366f1);opacity:0;transition:opacity var(--transition)}.student-timeline-card:hover{box-shadow:0 8px 24px #f59e0b26;transform:translateY(-2px);border-color:#f59e0b}.student-timeline-card:hover:before{opacity:1}.student-timeline-card:focus-within{box-shadow:0 0 0 3px #f59e0b33;border-color:#f59e0b}.student-timeline-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f11f,#0ea5e91f);border-radius:var(--radius-full);font-size:18px;border:1px solid rgba(99,102,241,.2);box-shadow:0 2px 8px #6366f114;flex-shrink:0}.student-timeline-body{flex:1;min-width:0}.student-timeline-header{display:flex;justify-content:space-between;align-items:start;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.student-timeline-title{margin:0 0 var(--spacing-1) 0;font-size:var(--font-size-lg);font-weight:800;color:var(--text-primary);line-height:1.3}.student-timeline-type{margin:0;font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#6366f1;background:#6366f11f;padding:2px var(--spacing-2);border-radius:var(--radius-sm);display:inline-flex;align-items:center}.student-timeline-date{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;padding:2px var(--spacing-2);background:var(--surface-2);border-radius:var(--radius-sm)}.student-timeline-description{margin:var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.student-timeline-meta{margin:0;font-size:var(--font-size-xs);color:var(--text-muted);display:inline-flex;align-items:center;gap:var(--spacing-1);padding:2px var(--spacing-2);background:var(--surface-2);border-radius:var(--radius-sm)}.student-timeline-actions{margin-top:var(--spacing-2);display:flex;gap:var(--spacing-2)}.student-timeline-open{padding:6px var(--spacing-4);border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,#f59e0b,#6366f1);color:#fff;font-size:var(--font-size-xs);font-weight:700;cursor:pointer;transition:all var(--transition);box-shadow:0 4px 12px #f59e0b40;position:relative;overflow:hidden}.student-timeline-open:hover{transform:translateY(-2px);box-shadow:0 6px 16px #f59e0b59}.student-timeline-open:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:none}.announcement-footer{display:flex;justify-content:flex-start;margin-top:var(--spacing-2)}.comments-section{margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--spacing-2)}.comment-item{background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-3)}.comment-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-1)}.comment-meta{font-size:var(--font-size-xs);color:var(--text-muted)}.comment-content{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.comment-form{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-2)}.comment-input{width:100%;border:1px solid var(--border-light);border-radius:var(--radius-md);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);resize:vertical;min-height:80px;transition:all var(--transition)}.comment-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.comment-actions{display:flex;gap:var(--spacing-1);align-items:center}.comment-action-btn{background:none;border:none;font-size:var(--font-size-sm);cursor:pointer;padding:4px 8px;border-radius:var(--radius-md);transition:all .2s ease;display:inline-flex;align-items:center}.comment-action-btn:hover{background:#6366f11a}.comment-action-btn.danger:hover{background:#ef44441a}.comment-edit-form{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-2)}.comment-edit-actions{display:flex;gap:var(--spacing-2)}.assessment-window-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--spacing-5)}.assessment-window{width:min(980px,95vw);max-height:92vh;background:#fff;border-radius:var(--radius-xl);box-shadow:0 20px 60px #0f172a4d;border:1px solid var(--border-light);display:flex;flex-direction:column;overflow:hidden}.assessment-window-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-3);padding:var(--spacing-4);background:linear-gradient(135deg,#6366f1,#0ea5e9);color:#fff}.assessment-header-left{display:flex;flex-direction:column;gap:var(--spacing-1)}.assessment-window-title{margin:0;font-size:var(--font-size-lg);font-weight:800}.assessment-window-subtitle{margin:0;font-size:var(--font-size-xs);letter-spacing:.4px;text-transform:uppercase;opacity:.9}.assessment-header-right{display:flex;align-items:center;gap:var(--spacing-3)}.assessment-progress{display:flex;align-items:center;gap:var(--spacing-2);background:#ffffff26;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-md)}.progress-text{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.4px}.progress-bar{width:140px;height:6px;background:#ffffff4d;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:#fff;border-radius:999px;transition:width var(--transition)}.progress-count{font-size:var(--font-size-xs);font-weight:700}.assessment-close-btn{border:none;background:#fff3;color:#fff;width:32px;height:32px;border-radius:var(--radius-full);cursor:pointer;font-weight:700;transition:all var(--transition)}.assessment-close-btn:hover{background:#ffffff59;transform:scale(1.05)}.assessment-window-content{padding:var(--spacing-4);overflow:auto;display:flex;flex-direction:column;gap:var(--spacing-4)}.assessment-info-section{background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-3)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-3)}.info-item{display:flex;flex-direction:column;gap:var(--spacing-1)}.info-label{font-size:var(--font-size-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-weight:700}.info-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:700}.assessment-instructions-box{background:var(--surface-1);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-3)}.assessment-instructions-box h3{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-md);font-weight:800;color:var(--text-primary)}.assessment-instructions-box p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6}.assessment-deadline-alert{background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);color:#b45309;border-radius:var(--radius-lg);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);font-weight:600}.assessment-questions-container{display:flex;flex-direction:column;gap:var(--spacing-3)}.assessment-question-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-4);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.assessment-question-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#f59e0b,#6366f1)}.question-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.question-number{font-size:var(--font-size-xs);font-weight:700;padding:2px var(--spacing-2);border-radius:var(--radius-md);background:#6366f11f;color:#6366f1}.question-text{margin:0;font-size:var(--font-size-md);font-weight:700;color:var(--text-primary);line-height:1.5}.question-options{margin-top:var(--spacing-3);display:flex;flex-direction:column;gap:var(--spacing-2)}.option-item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--surface-1);cursor:pointer;transition:all var(--transition)}.option-item:hover{border-color:#6366f1;background:#6366f10d}.option-item input{accent-color:#6366f1}.option-text{font-size:var(--font-size-sm);color:var(--text-secondary)}.assessment-pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-2)}.assessment-pagination button{border:1px solid var(--border-light);background:#fff;border-radius:var(--radius-md);padding:6px var(--spacing-3);font-size:var(--font-size-xs);font-weight:700;cursor:pointer;transition:all var(--transition)}.assessment-pagination button:hover{border-color:#6366f1;color:#6366f1}.assessment-window-footer{display:flex;justify-content:flex-end;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);border-top:1px solid var(--border-light);background:var(--surface-1)}.assessment-btn{padding:8px var(--spacing-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:700;border:none;cursor:pointer;transition:all var(--transition)}.assessment-btn.cancel-btn{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border-light)}.assessment-btn.cancel-btn:hover{background:var(--surface-3);color:var(--text-primary)}.assessment-btn.submit-btn{background:linear-gradient(135deg,#6366f1,#0ea5e9);color:#fff;box-shadow:0 6px 16px #6366f14d}.assessment-btn.submit-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #6366f159}.assignments-list,.assessments-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.assignments-list>h2,.assessments-list>h2{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary)}.assignment-header,.assessment-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.assignment-header h3,.assessment-header h3{margin:0;font-size:var(--font-size-md);font-weight:800;color:var(--text-primary)}.points-badge{font-size:var(--font-size-xs);font-weight:700;padding:2px var(--spacing-2);border-radius:var(--radius-md);background:#f59e0b1f;color:#f59e0b;letter-spacing:.4px}.type-badge{font-size:var(--font-size-xs);font-weight:700;padding:2px var(--spacing-2);border-radius:var(--radius-md);background:#0ea5e91f;color:#0ea5e9;text-transform:uppercase;letter-spacing:.4px}.assignment-description,.assessment-description{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.assignment-meta,.assessment-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-2);align-items:center;font-size:var(--font-size-xs);color:var(--text-muted);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-2);border-radius:var(--radius-md)}.assignment-meta p,.assessment-meta p{margin:0}.assignment-attachment{display:flex;flex-wrap:wrap;gap:var(--spacing-2);margin-top:var(--spacing-2)}.file-link{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:6px var(--spacing-3);background:#6366f11a;color:#6366f1;border-radius:var(--radius-md);text-decoration:none;font-size:var(--font-size-xs);font-weight:600;transition:all var(--transition)}.file-link:hover{background:#6366f126;transform:translateY(-1px);box-shadow:var(--shadow-xs)}.file-size{font-size:var(--font-size-xs);color:var(--text-muted);margin-left:var(--spacing-2)}.assignments-list .modules-list,.assessments-list .modules-list{margin-top:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--border-light);list-style:none}.assignments-list .modules-list li,.assessments-list .modules-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);padding:var(--spacing-1) 0;border-bottom:1px dashed var(--border-light)}.assignments-list .modules-list li:last-child,.assessments-list .modules-list li:last-child{border-bottom:none}.btn-link{display:inline-flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);background:#fff;color:#6366f1;border:2px solid #6366f1;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition);text-decoration:none;box-shadow:var(--shadow-xs)}.btn-link:hover{background:#6366f1;color:#fff;transform:translate(-4px);box-shadow:0 4px 12px #6366f14d}.btn-link:active{transform:translate(-2px);box-shadow:0 2px 6px #6366f133}.profile-container{max-width:1400px;margin:0 auto}.profile-card{display:flex;align-items:center;gap:var(--spacing-5);margin-bottom:var(--spacing-6)}.profile-card .profile-avatar{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2)}.profile-avatar-image{width:90px;height:90px;border-radius:var(--radius-full);object-fit:cover;box-shadow:0 8px 24px #6366f133}.profile-photo-upload{font-size:var(--font-size-xs);font-weight:600;color:#6366f1;cursor:pointer}.profile-photo-upload input{display:none}.avatar-circle{width:80px;height:80px;background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:40px;box-shadow:0 8px 24px #6366f14d}.profile-info{flex:1}.profile-info h2{font-size:var(--font-size-2xl);font-weight:800;margin:0 0 var(--spacing-2) 0;color:var(--text-primary)}.profile-info .username{font-size:var(--font-size-md);color:var(--text-secondary);margin:0 0 var(--spacing-1) 0;font-weight:500}.profile-info .email{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--spacing-2) 0}.profile-info .role{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.role-badge{display:inline-block;padding:var(--spacing-1) var(--spacing-3);background:linear-gradient(135deg,#6366f126,#0ea5e926);color:#6366f1;border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.profile-section{margin-top:var(--spacing-6)}.profile-section h3{font-size:var(--font-size-xl);font-weight:700;margin:0 0 var(--spacing-4) 0;color:var(--text-primary)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-5)}.settings-card{background:#fff;border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-5);box-shadow:var(--shadow-xs);transition:all var(--transition)}.settings-card:hover{box-shadow:0 8px 24px #6366f11a;border-color:#6366f14d}.settings-card-header{margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--border-light)}.settings-card-header h4{font-size:var(--font-size-lg);font-weight:700;margin:0 0 var(--spacing-1) 0;color:var(--text-primary)}.settings-card-header p{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-4)}.profile-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-3)}.profile-form-grid .full{grid-column:1 / -1}.profile-form-grid label{display:flex;flex-direction:column;gap:var(--spacing-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.profile-form-grid input,.profile-form-grid select{padding:var(--spacing-3);border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition);background:#fff;color:var(--text-primary)}.profile-detail{display:grid;grid-template-columns:120px 1fr;gap:var(--spacing-4);align-items:start}.profile-detail-avatar{display:flex;align-items:center;justify-content:center}.profile-detail-image,.profile-detail-placeholder{width:96px;height:96px;border-radius:var(--radius-full);border:2px solid var(--border-light);object-fit:cover;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--text-muted)}.profile-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-3)}.teacher-profile-link{background:transparent;border:none;color:#6366f1;font-size:var(--font-size-xs);font-weight:600;cursor:pointer;padding:0}.teacher-profile-link:hover{text-decoration:underline}.settings-form label{display:flex;flex-direction:column;gap:var(--spacing-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.settings-form input{padding:var(--spacing-3);border:2px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:all var(--transition);background:#fff;color:var(--text-primary)}.settings-form input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.settings-form input::placeholder{color:var(--text-muted)}.settings-status{padding:var(--spacing-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;text-align:center}.settings-status.success{background:#d1fae5;color:#065f46;border:1px solid #10b981}.settings-status.error{background:#fee2e2;color:#991b1b;border:1px solid #ef4444}.settings-form .btn{margin-top:var(--spacing-2)}.grade-summary-overall{margin-bottom:var(--spacing-6)}.summary-card-large{background:#fff;border:2px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-6);box-shadow:0 4px 16px #6366f11a;display:flex;align-items:center;gap:var(--spacing-5);transition:all var(--transition)}.summary-card-large:hover{box-shadow:0 8px 32px #6366f126;transform:translateY(-2px)}.summary-icon{font-size:64px;flex-shrink:0}.summary-content{flex:1}.average-grade-large{font-size:56px;font-weight:800;background:linear-gradient(135deg,#6366f1,#0ea5e9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:var(--spacing-2)}.summary-label{font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-1) 0}.summary-meta{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.grades-by-course{margin-bottom:var(--spacing-6)}.course-grades-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:var(--spacing-5);margin-top:var(--spacing-4)}.course-grade-card{background:#fff;border:2px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--spacing-5);box-shadow:var(--shadow-xs);transition:all var(--transition)}.course-grade-card:hover{box-shadow:0 8px 24px #00000014;border-color:#6366f1;transform:translateY(-2px)}.course-grade-header{display:flex;justify-content:space-between;align-items:start;gap:var(--spacing-3);margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-3);border-bottom:2px solid var(--border-light)}.course-grade-title{font-size:var(--font-size-lg);font-weight:700;margin:0 0 var(--spacing-1) 0;color:var(--text-primary)}.course-grade-code{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0}.course-average-badge{font-size:var(--font-size-xl);font-weight:800;padding:var(--spacing-2) var(--spacing-4);border-radius:var(--radius-md);white-space:nowrap;box-shadow:var(--shadow-xs)}.course-average-badge[data-grade=excellent]{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border:2px solid #10b981}.course-average-badge[data-grade=good]{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:2px solid #3b82f6}.course-average-badge[data-grade=satisfactory]{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:2px solid #f59e0b}.course-average-badge[data-grade=needs-improvement]{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:2px solid #ef4444}.course-grade-progress{margin-bottom:var(--spacing-4)}.progress-bar{width:100%;height:12px;background:var(--surface-2);border-radius:var(--radius-full);overflow:hidden;box-shadow:inset 0 2px 4px #0000000f}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease-in-out;box-shadow:0 2px 8px #00000026}.progress-label{font-size:var(--font-size-xs);color:var(--text-muted);margin:var(--spacing-1) 0 0 0}.course-assignments-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.grade-item-compact{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);background:var(--surface-1);border-radius:var(--radius-md);border:1px solid var(--border-light);transition:all var(--transition)}.grade-item-compact:hover{background:var(--surface-2);border-color:#6366f1}.grade-item-info{display:flex;flex-direction:column;gap:var(--spacing-1);flex:1;min-width:0}.assignment-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-date{font-size:var(--font-size-xs);color:var(--text-muted)}.grade-badge{font-size:var(--font-size-sm);font-weight:700;padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-md);white-space:nowrap;flex-shrink:0}.grade-badge.excellent{background:#10b981;color:#fff}.grade-badge.good{background:#3b82f6;color:#fff}.grade-badge.satisfactory{background:#f59e0b;color:#fff}.grade-badge.needs-improvement{background:#ef4444;color:#fff}.grade-course-info{font-size:var(--font-size-xs);color:var(--text-secondary);margin:var(--spacing-1) 0 0 0}.grade-score.excellent{background:#10b981;color:#fff}.grade-score.good{background:#3b82f6;color:#fff}.grade-score.satisfactory{background:#f59e0b;color:#fff}.grade-score.needs-improvement{background:#ef4444;color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--spacing-4)}.modal-content{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0f172a4d;border:1px solid var(--border-light);max-width:500px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,#6366f1,#4f46e5)}.modal-header h3{margin:0;font-size:var(--font-size-lg);font-weight:700;color:#fff}.modal-body{padding:var(--spacing-5);overflow-y:auto}.modal-body p{margin:0 0 var(--spacing-2) 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6}.modal-footer{padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--border-light);background:var(--surface-1);display:flex;justify-content:flex-end;gap:var(--spacing-2)}.curriculum-container{padding:0;background:transparent;border-radius:0;box-shadow:none}.curriculum-header{margin-bottom:var(--spacing-5)}.curriculum-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:700;color:var(--text-primary)}.curriculum-modules-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.curriculum-module{border:none;border-bottom:1px solid var(--border-light);border-radius:0;overflow:visible;background:transparent;transition:all var(--transition)}.curriculum-module:last-child{border-bottom:none}.curriculum-module:hover{border-color:var(--border-light);box-shadow:none}.curriculum-module-header{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) 0;cursor:pointer;background:transparent;transition:all var(--transition);-webkit-user-select:none;user-select:none;font-weight:500;color:var(--text-primary)}.curriculum-module-header:hover{background:transparent}.curriculum-module-icon{width:32px;height:32px;min-width:32px;border-radius:50%;background:#10b981;color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:600}.curriculum-module-title{flex:1;color:var(--text-primary);font-weight:600}.curriculum-module-content{padding:var(--spacing-4) 0 var(--spacing-4) 56px;border-top:none;background:transparent;animation:slideDown .2s ease-out}.curriculum-module-description{margin:0 0 var(--spacing-3) 0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.6}.curriculum-topics-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.curriculum-topics-title{margin:var(--spacing-2) 0;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.curriculum-topic{border:none;border-bottom:1px solid #f0f0f0;border-radius:0;overflow:visible;background:transparent}.curriculum-topic:last-child{border-bottom:none}.curriculum-topic-header{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) 0;cursor:pointer;background:transparent;transition:all var(--transition);-webkit-user-select:none;user-select:none;font-weight:500;color:var(--text-primary);font-size:var(--font-size-sm)}.curriculum-topic-header:hover{background:transparent}.curriculum-topic-icon{color:var(--text-secondary);font-size:var(--font-size-xs);min-width:16px;display:flex;align-items:center}.curriculum-topic-name{flex:1}.curriculum-topic-content{padding:var(--spacing-3) 0 var(--spacing-3) 24px;border-top:none;background:transparent;animation:slideDown .2s ease-out;display:flex;flex-direction:column;gap:var(--spacing-3)}.curriculum-discussion,.curriculum-links,.curriculum-files{display:flex;flex-direction:column;gap:var(--spacing-2)}.curriculum-discussion h5,.curriculum-links h5,.curriculum-files h5{margin:0;font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary)}.curriculum-discussion p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word}.curriculum-links ul,.curriculum-files ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-2)}.curriculum-links li,.curriculum-files li{padding:var(--spacing-2) var(--spacing-3);background:transparent;border-radius:0;border-left:none;font-size:var(--font-size-sm);color:var(--text-secondary)}.curriculum-links a{color:var(--primary);text-decoration:none;word-break:break-all}.curriculum-links a:hover{text-decoration:underline}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}
