:root{--bg: #0a0b10;--bg-elevated: #12131a;--surface: #1a1c25;--surface-hover: #22252f;--border: #2a2d3a;--border-light: #353849;--text: #e8eaf0;--text-secondary: #9ca0b4;--text-muted: #6b6f85;--accent: #6366f1;--accent-hover: #818cf8;--accent-dim: rgba(99, 102, 241, .15);--success: #22c55e;--success-dim: rgba(34, 197, 94, .15);--warning: #f59e0b;--warning-dim: rgba(245, 158, 11, .15);--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .12);--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--radius-lg: 16px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 8px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .5);--shadow-accent: 0 4px 20px rgba(99, 102, 241, .2);--accent-gradient: linear-gradient(135deg, #6366f1, #8b5cf6, #a78bfa);--glass-bg: rgba(18, 19, 26, .7);--glass-border: rgba(255, 255, 255, .06);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}[data-theme=light]{--bg: #f8f9fc;--bg-elevated: #ffffff;--surface: #ffffff;--surface-hover: #f3f4f6;--border: #e5e7eb;--border-light: #d1d5db;--text: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--accent: #4f46e5;--accent-hover: #6366f1;--accent-dim: rgba(79, 70, 229, .1);--success: #16a34a;--success-dim: rgba(22, 163, 74, .1);--warning: #d97706;--warning-dim: rgba(217, 119, 6, .1);--danger: #dc2626;--danger-dim: rgba(220, 38, 38, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 50px rgba(0, 0, 0, .12);--shadow-accent: 0 4px 20px rgba(79, 70, 229, .15);--accent-gradient: linear-gradient(135deg, #4f46e5, #7c3aed, #8b5cf6);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(0, 0, 0, .06)}[data-theme=light] .gradient-text,[data-theme=light] .catalog-hero h1{background:linear-gradient(135deg,#1e1b4b,#4f46e5,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=light] .course-card-gradient{background:linear-gradient(135deg,#c7d2fe,#a5b4fc,#818cf8)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#d1d5db}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#9ca3af}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}button,a,input,select,textarea,.nav-link,.card,.btn,[class*=toggle],[class*=badge],[class*=tab]{transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease,color .1s ease}a{color:inherit;text-decoration:none}button{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.gradient-text{background:linear-gradient(135deg,#fff 0%,var(--accent-hover) 50%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;background:var(--accent);border:none;border-radius:24px;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-accent)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary.btn-sm{padding:7px 16px;font-size:.82rem}.btn-primary.btn-lg{padding:14px 30px;font-size:1rem}.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;background:transparent;border:1px solid var(--border);border-radius:24px;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-ghost:hover{background:var(--surface);color:var(--text);border-color:var(--border-light)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.navbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--bg-elevated);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.navbar-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem;color:var(--text)}.navbar-brand svg{color:var(--accent)}.navbar-nav{display:flex;align-items:center;gap:6px}.navbar-link{padding:7px 16px;border-radius:20px;font-size:.85rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast);border:1px solid transparent}.navbar-link:hover{color:var(--text);background:var(--surface)}.navbar-link.active{color:var(--accent-hover);background:var(--accent-dim);border-color:#6366f133}.navbar-back{font-size:.85rem;color:var(--text-secondary);padding:6px 16px;border-radius:var(--radius-xs);border:1px solid var(--border);transition:all var(--transition-fast)}.navbar-back:hover{background:var(--surface);color:var(--text);border-color:var(--accent)}.page-container{max-width:1200px;margin:0 auto;padding:40px 32px}.catalog-hero{text-align:center;margin-bottom:48px;padding:48px 0}.catalog-hero p{font-size:1.1rem;color:var(--text-secondary);max-width:600px;margin:0 auto;line-height:1.7}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:24px}.course-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--transition-normal);cursor:pointer}.course-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 40px #6366f126}.course-card-gradient{height:140px;background:linear-gradient(135deg,#1e1b4b,#312e81,#4338ca);position:relative}.course-card-gradient:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 40%,var(--surface))}.course-card-content{padding:0 24px 24px;margin-top:-32px;position:relative}.course-card-badge{display:inline-block;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;padding:4px 12px;border-radius:20px;letter-spacing:.5px;margin-bottom:12px}.course-card-content h2{font-size:1.4rem;font-weight:700;margin-bottom:4px}.course-card-institution{font-size:.82rem;color:var(--text-muted);margin-bottom:12px}.course-card-desc{font-size:.88rem;color:var(--text-secondary);line-height:1.6;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.course-card-meta{display:flex;gap:16px;font-size:.78rem;color:var(--text-muted)}.course-card-meta span{display:flex;align-items:center;gap:5px}.course-header{margin-bottom:40px;padding-bottom:32px;border-bottom:1px solid var(--border)}.course-header-badge{display:inline-block;background:var(--accent-dim);color:var(--accent-hover);font-size:.78rem;font-weight:700;padding:6px 16px;border-radius:20px;margin-bottom:16px}.course-header h1{font-size:2.2rem;font-weight:800;margin-bottom:12px}.course-header-meta{display:flex;gap:24px;margin-bottom:16px;font-size:.88rem;color:var(--text-secondary)}.course-header-meta span{display:flex;align-items:center;gap:6px}.course-header-desc{font-size:1rem;color:var(--text-secondary);max-width:700px;line-height:1.7}.section-title{font-size:1.2rem;font-weight:700;margin-bottom:20px;color:var(--text)}.lecture-list{display:flex;flex-direction:column;gap:12px}.lecture-card{display:flex;align-items:center;gap:20px;padding:20px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all .2s ease;cursor:pointer}.lecture-card:hover{background:var(--surface-hover);border-color:var(--accent)}.lecture-number{width:48px;height:48px;border-radius:12px;background:var(--accent-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0}.lecture-number span{font-size:1.1rem;font-weight:800;color:var(--accent-hover)}.lecture-info{flex:1;min-width:0}.lecture-info h3{font-size:1rem;font-weight:600;margin-bottom:4px}.lecture-info p{font-size:.82rem;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lecture-concepts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.concept-tag{font-size:.7rem;padding:2px 8px;border-radius:12px;background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.concept-more{color:var(--accent-hover);border-color:var(--accent-dim)}.lecture-action{display:flex;align-items:center;gap:8px;flex-shrink:0}.lecture-play-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s}.lecture-card:hover .lecture-play-btn{background:var(--accent-hover);transform:scale(1.1)}.lecture-chevron{color:var(--text-muted)}.dashboard-page{max-width:1200px;margin:0 auto;padding:32px 32px 100px;position:relative}.dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:40px 0 48px}.dashboard-hero-content{flex:1}.dashboard-greeting{font-size:2.4rem;font-weight:800;line-height:1.2;margin-bottom:10px}.dashboard-subtitle{font-size:1.05rem;color:var(--text-secondary);line-height:1.7;max-width:500px;margin-bottom:28px}.dashboard-quick-stats{display:flex;gap:20px}.quick-stat{display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition-fast)}.quick-stat:hover{border-color:var(--border-light);background:var(--surface-hover)}.quick-stat-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.quick-stat-icon.independence{background:var(--accent-dim);color:var(--accent-hover)}.quick-stat-icon.mastery{background:var(--success-dim);color:var(--success)}.quick-stat-icon.reviews{background:var(--warning-dim);color:var(--warning)}.quick-stat-info{display:flex;flex-direction:column}.quick-stat-value{font-size:1.1rem;font-weight:700;line-height:1.2}.quick-stat-label{font-size:.72rem;color:var(--text-muted);font-weight:500}.dashboard-mastery-ring{flex-shrink:0}.mastery-ring{position:relative;width:140px;height:140px}.mastery-ring-svg{width:100%;height:100%;transform:rotate(0)}.mastery-ring-progress{transition:stroke-dashoffset 1s ease}.mastery-ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.mastery-ring-value{font-size:1.5rem;font-weight:800;line-height:1}.mastery-ring-text{font-size:.72rem;color:var(--text-muted);font-weight:500;margin-top:2px}.dashboard-section{margin-bottom:40px}.dashboard-independence{margin-bottom:32px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-title-v2{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:700;color:var(--text)}.section-title-v2 svg{color:var(--accent)}.section-action{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;color:var(--accent-hover);transition:all var(--transition-fast)}.section-action:hover{color:#fff}.continue-card{display:flex;gap:20px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition-normal)}.continue-card:hover{border-color:var(--accent);box-shadow:var(--shadow-accent);transform:translateY(-2px)}.continue-thumb{position:relative;width:200px;height:112px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--bg)}.continue-thumb img{width:100%;height:100%;object-fit:cover}.continue-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1b4b,#312e81);color:var(--accent-hover)}.continue-progress-bar{position:absolute;bottom:0;left:0;right:0;height:4px;background:#00000080}.continue-progress-fill{height:100%;background:var(--accent);border-radius:0 2px 0 0;transition:width .3s ease}.continue-info{display:flex;flex-direction:column;justify-content:center;gap:6px}.continue-info h3{font-size:1.05rem;font-weight:600}.continue-meta{font-size:.82rem;color:var(--text-secondary)}.review-due-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.review-due-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.review-due-card:hover{background:var(--surface-hover);border-color:var(--border-light)}.review-due-icon{width:32px;height:32px;border-radius:8px;background:var(--warning-dim);color:var(--warning);display:flex;align-items:center;justify-content:center;flex-shrink:0}.review-due-info{flex:1;min-width:0}.review-due-concept{display:block;font-size:.88rem;font-weight:600;line-height:1.3}.review-due-source{display:block;font-size:.72rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-due-strength{font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:12px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.review-due-strength.strength-low{background:var(--danger-dim);color:var(--danger)}.review-due-strength.strength-mid{background:var(--warning-dim);color:var(--warning)}.review-due-strength.strength-high{background:var(--success-dim);color:var(--success)}.see-all-link{display:inline-flex;align-items:center;gap:4px;margin-top:12px;font-size:.82rem;font-weight:500;color:var(--accent-hover);transition:color var(--transition-fast)}.see-all-link:hover{color:#fff}.empty-library{text-align:center;padding:60px 24px;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-lg)}.empty-library-icon{width:72px;height:72px;margin:0 auto 20px;border-radius:20px;background:var(--accent-dim);color:var(--accent-hover);display:flex;align-items:center;justify-content:center}.empty-library h3{font-size:1.2rem;font-weight:700;margin-bottom:8px}.empty-library p{font-size:.9rem;color:var(--text-secondary);margin-bottom:24px;max-width:400px;margin-left:auto;margin-right:auto}.library-grid-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.upload-fab{position:fixed;bottom:32px;right:32px;width:56px;height:56px;border-radius:50%;background:var(--accent);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px #6366f166;transition:all var(--transition-fast);z-index:50}.upload-fab:hover{background:var(--accent-hover);transform:scale(1.1);box-shadow:0 6px 28px #6366f180}.video-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--transition-normal);cursor:pointer;display:block}.video-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 30px #6366f11f}.video-card-thumb{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--bg);overflow:hidden}.video-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.video-card:hover .video-card-thumb img{transform:scale(1.05)}.video-card-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e1b4b,#312e81,#4338ca);color:#ffffff80}.video-card-duration{position:absolute;bottom:8px;left:8px;padding:2px 8px;background:#000c;border-radius:4px;font-size:.72rem;font-weight:600;color:#fff}.video-card-mastery{position:absolute;top:8px;right:8px;padding:3px 10px;border-radius:12px;font-size:.68rem;font-weight:700}.video-card-mastery.mastery-high{background:#22c55ed9;color:#fff}.video-card-mastery.mastery-mid{background:#f59e0bd9;color:#fff}.video-card-mastery.mastery-low{background:#ef4444d9;color:#fff}.video-card-review-badge{position:absolute;top:8px;left:8px;padding:3px 10px;border-radius:12px;font-size:.68rem;font-weight:700;background:#f59e0be6;color:#fff}.video-card-body{padding:14px 16px}.video-card-body h3{font-size:.92rem;font-weight:600;line-height:1.3;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-card-meta{display:flex;gap:14px;font-size:.72rem;color:var(--text-muted)}.video-card-meta span{display:flex;align-items:center;gap:4px}.video-card-mastery-bar{height:3px;background:var(--border);border-radius:2px;margin-top:10px;overflow:hidden}.video-card-mastery-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--success));transition:width .4s ease}.upload-page{max-width:700px;margin:0 auto;padding:60px 32px 80px;min-height:calc(100vh - 61px);display:flex;flex-direction:column;justify-content:center}.upload-container{text-align:center}.upload-heading{font-size:2rem;font-weight:800;margin-bottom:10px;background:linear-gradient(135deg,#fff,var(--accent-hover));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.upload-subheading{font-size:1rem;color:var(--text-secondary);line-height:1.7;margin-bottom:36px;max-width:500px;margin-left:auto;margin-right:auto}.upload-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--danger-dim);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);color:var(--danger);font-size:.88rem;margin-bottom:20px;text-align:left}.upload-error-dismiss{margin-left:auto;background:none;border:none;color:var(--danger);cursor:pointer;padding:2px;flex-shrink:0}.upload-dropzone{padding:60px 40px;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;transition:all var(--transition-normal);text-align:center}.upload-dropzone:hover{border-color:var(--accent);background:#6366f10a}.upload-dropzone.drag-over{border-color:var(--accent);background:#6366f114;transform:scale(1.02);box-shadow:0 0 40px #6366f126}.dropzone-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:16px;background:var(--accent-dim);color:var(--accent-hover);display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.upload-dropzone:hover .dropzone-icon,.upload-dropzone.drag-over .dropzone-icon{background:#6366f140;transform:scale(1.1)}.upload-dropzone h3{font-size:1.1rem;font-weight:600;margin-bottom:4px}.upload-dropzone p{font-size:.88rem;color:var(--text-secondary);margin-bottom:8px}.dropzone-formats{font-size:.75rem;color:var(--text-muted)}.upload-divider{display:flex;align-items:center;gap:16px;margin:28px 0;color:var(--text-muted);font-size:.82rem;font-weight:500}.upload-divider:before,.upload-divider:after{content:"";flex:1;height:1px;background:var(--border)}.upload-url-form{display:flex;gap:10px;align-items:center}.upload-url-input-wrap{flex:1;position:relative}.upload-url-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.upload-url-input{width:100%;padding:12px 16px 12px 44px;background:var(--surface);border:1px solid var(--border);border-radius:24px;color:var(--text);font-size:.9rem;font-family:inherit;outline:none;transition:border-color var(--transition-fast)}.upload-url-input:focus{border-color:var(--accent)}.upload-url-input::placeholder{color:var(--text-muted)}.upload-processing{text-align:center}.upload-processing h2{font-size:1.5rem;font-weight:700;margin-bottom:8px}.upload-processing-sub{font-size:.92rem;color:var(--text-secondary);margin-bottom:40px}.upload-stages{display:flex;flex-direction:column;gap:0;max-width:320px;margin:0 auto;text-align:left}.upload-stage{display:flex;align-items:center;gap:14px;padding:14px 0;position:relative}.upload-stage-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--border);background:var(--surface);color:var(--text-muted);transition:all .3s ease}.upload-stage.done .upload-stage-icon{background:var(--success-dim);border-color:var(--success);color:var(--success)}.upload-stage.active .upload-stage-icon{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-hover);box-shadow:0 0 20px #6366f14d}.upload-stage-label{font-size:.92rem;font-weight:500;color:var(--text-muted);transition:color .3s ease}.upload-stage.done .upload-stage-label{color:var(--success)}.upload-stage.active .upload-stage-label{color:var(--text);font-weight:600}.upload-stage-connector{position:absolute;left:19px;top:54px;width:2px;height:28px;background:var(--border);transition:background .3s ease}.upload-stage-connector.done{background:var(--success)}.upload-result{text-align:center;animation:fadeSlideIn .5s ease-out}.upload-result-check{width:80px;height:80px;margin:0 auto 20px;border-radius:50%;background:var(--success-dim);color:var(--success);display:flex;align-items:center;justify-content:center;animation:popIn .4s ease-out}@keyframes popIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.upload-result h2{font-size:1.6rem;font-weight:700;margin-bottom:6px}.upload-result-title{font-size:1rem;color:var(--text-secondary);margin-bottom:28px}.upload-result-stats{display:flex;justify-content:center;gap:32px;margin-bottom:36px}.upload-stat{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--accent-hover)}.upload-stat-value{font-size:1.3rem;font-weight:700;color:var(--text)}.upload-stat-label{font-size:.75rem;color:var(--text-muted);font-weight:500}.upload-result-actions{display:flex;gap:12px;justify-content:center}.library-page{max-width:1200px;margin:0 auto;padding:40px 32px 60px}.library-header{margin-bottom:8px}.library-header h1{font-size:2rem;font-weight:800}.library-subtitle{font-size:.92rem;color:var(--text-secondary);margin-bottom:24px}.library-toolbar{display:flex;gap:12px;margin-bottom:28px;align-items:center}.library-search{flex:1;position:relative}.library-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.library-search-input{width:100%;padding:10px 16px 10px 42px;background:var(--surface);border:1px solid var(--border);border-radius:24px;color:var(--text);font-size:.88rem;font-family:inherit;outline:none;transition:border-color var(--transition-fast)}.library-search-input:focus{border-color:var(--accent)}.library-search-input::placeholder{color:var(--text-muted)}.library-sort-wrap{position:relative}.library-sort-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:24px;color:var(--text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;white-space:nowrap}.library-sort-btn:hover{background:var(--surface-hover);color:var(--text)}.library-sort-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-md);z-index:20;min-width:180px;animation:fadeSlideIn .15s ease-out}.library-sort-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;background:none;border:none;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;text-align:left}.library-sort-option:hover{background:var(--surface-hover);color:var(--text)}.library-sort-option.active{color:var(--accent-hover)}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.library-loading,.library-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 24px;color:var(--text-muted);text-align:center}.lesson-page-v2{position:fixed;top:0;left:0;right:0;bottom:0;padding-top:57px;display:flex;flex-direction:column;overflow:hidden;z-index:1}.lesson-loading,.lesson-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:calc(100vh - 61px);color:var(--text-secondary)}.lesson-container{display:grid;grid-template-columns:1fr 420px;flex:1;min-height:0;overflow:hidden;position:relative}.lesson-video-section{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;background:#000;min-height:0}.lesson-video-header{padding:12px 20px;background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.lesson-back-btn{width:36px;height:36px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.lesson-back-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--accent)}.lesson-badge{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:12px;background:var(--accent-dim);color:var(--accent-hover);white-space:nowrap;flex-shrink:0}.lesson-video-header h1{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.transcript-badge{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:10px;background:#22c55e1f;color:var(--success);border:1px solid rgba(34,197,94,.25);margin-left:auto;white-space:nowrap;flex-shrink:0}.lesson-video-container{flex:1;display:flex;flex-direction:column;min-height:0}.video-container{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:0;overflow:visible;background:#000}.video-player{width:100%;height:100%;max-height:100%;object-fit:contain;outline:none;cursor:pointer}.video-player-wrapper{display:flex;flex-direction:column;flex:1;min-height:0}.video-custom-controls{display:flex;gap:8px;padding:8px 16px;background:var(--bg-elevated);border-top:1px solid var(--border);width:100%;align-items:center;justify-content:space-between;flex-shrink:0}.video-ctrl-group{display:flex;align-items:center;gap:6px}.video-ctrl-btn.play-pause{background:var(--accent);color:#fff;border-color:var(--accent);border-radius:50%;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center}.video-ctrl-btn.play-pause:hover{background:var(--accent-hover)}.video-speed-control{display:flex;align-items:center;gap:4px}.speed-label{font-size:.72rem;color:var(--text-muted);margin-right:4px}.speed-btn{padding:3px 8px;font-size:.72rem;font-weight:500;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.speed-btn:hover{background:var(--surface-hover);color:var(--text)}.speed-btn.active{background:var(--accent-dim);color:var(--accent-hover);border-color:#6366f14d}.lesson-info-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:var(--bg-elevated);border-top:1px solid var(--border);flex-shrink:0}.floating-tutor-icon{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #6366f166;z-index:9999;transition:all .2s;animation:floatPulse 2s ease-in-out infinite}.floating-tutor-icon:hover{transform:scale(1.1);box-shadow:0 6px 28px #6366f199}@keyframes floatPulse{0%,to{box-shadow:0 4px 20px #6366f166}50%{box-shadow:0 4px 28px #6366f199}}.floating-tutor-panel{position:fixed;bottom:20px;right:20px;width:380px;height:500px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 40px #0006;z-index:9999;display:flex;flex-direction:column;overflow:hidden;animation:slideUpIn .3s ease-out}@keyframes slideUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.floating-tutor-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);font-weight:600;font-size:.9rem}.floating-tutor-header button{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:2px 6px;border-radius:4px}.floating-tutor-header button:hover{background:var(--surface-hover);color:var(--text)}.floating-tutor-panel .ai-tutor{height:100%;border-radius:0}.lesson-container:fullscreen{background:var(--bg)}.lesson-container:fullscreen .lesson-video-section{height:100vh}.lesson-nav-btn{font-weight:600!important;min-width:70px}.lesson-nav-btn.disabled{opacity:.3;cursor:not-allowed!important}.lesson-nav-btn.next:not(.disabled){background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.lesson-info-actions{display:flex;align-items:center;gap:8px}.video-ctrl-btn{display:flex;align-items:center;gap:4px;padding:6px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.video-ctrl-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--accent)}.video-ctrl-btn.active{background:var(--accent-dim);color:var(--accent-hover);border-color:#6366f14d}.video-time-display{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums;padding:0 4px}.video-controls-spacer{flex:1}.video-nudge{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:10px;padding:10px 14px;background:#000c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(99,102,241,.5);border-radius:12px;cursor:pointer;max-width:300px;z-index:50;box-shadow:0 4px 24px #00000080,0 0 20px #6366f126;transition:all .3s ease;pointer-events:auto}.video-nudge.nudge-visible{opacity:1;transform:translate(0);animation:nudgeSlideIn .4s ease-out}.video-nudge.nudge-hidden{opacity:0;transform:translate(20px);pointer-events:none}.video-nudge:hover{background:#6366f14d;border-color:#6366f1b3;transform:scale(1.03);box-shadow:0 4px 24px #00000080,0 0 30px #6366f140}@keyframes nudgeSlideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.nudge-icon{width:28px;height:28px;border-radius:8px;background:#6366f14d;display:flex;align-items:center;justify-content:center;color:var(--accent-hover);flex-shrink:0}.nudge-content{display:flex;flex-direction:column;gap:2px;min-width:0}.nudge-concept{font-size:.72rem;font-weight:700;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.3px}.nudge-text{font-size:.82rem;color:#ffffffe6;line-height:1.3}.nudge-dismiss{background:none;border:none;color:#fff6;cursor:pointer;padding:2px;flex-shrink:0;transition:color var(--transition-fast)}.nudge-dismiss:hover{color:#fffc}.mastery-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease-out}.mastery-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:90%;max-width:800px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideUp .3s ease-out}.mastery-modal-header{padding:20px 24px 12px;border-bottom:1px solid var(--border);position:relative}.mastery-modal-header h2{font-size:1.3rem;font-weight:700;margin-bottom:4px}.mastery-modal-subtitle{font-size:.82rem;color:var(--text-secondary);line-height:1.4}.mastery-modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;background:var(--surface-hover);border:1px solid var(--border);color:var(--text-muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.mastery-modal-close:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.mastery-modal-body{padding:16px 24px 24px;overflow-y:auto;flex:1}.mastery-map-header{padding:14px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-elevated);z-index:2}.mastery-map-header h3{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;color:var(--text)}.mastery-map-header h3 svg{color:var(--accent)}.mastery-map-content{padding:16px 20px}.mastery-map-nodes{display:flex;flex-direction:column;gap:4px}.mastery-node{display:flex;align-items:center;gap:12px;padding:8px 0;position:relative}.mastery-node-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--border);background:var(--surface);transition:all .3s ease}.mastery-node-dot.level-high{background:var(--success-dim);border-color:var(--success);color:var(--success)}.mastery-node-dot.level-mid{background:var(--warning-dim);border-color:var(--warning);color:var(--warning)}.mastery-node-dot.level-low{background:var(--danger-dim);border-color:var(--danger)}.mastery-node-info{flex:1;min-width:0}.mastery-node-name{display:block;font-size:.82rem;font-weight:500;margin-bottom:4px}.mastery-node-bar{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.mastery-node-fill{height:100%;border-radius:2px;transition:width .5s ease}.mastery-node-fill.level-high{background:var(--success)}.mastery-node-fill.level-mid{background:var(--warning)}.mastery-node-fill.level-low{background:var(--danger)}.mastery-node-pct{font-size:.75rem;font-weight:700;color:var(--text-muted);min-width:36px;text-align:right}.mastery-node-connector{position:absolute;left:13px;bottom:-6px;width:2px;height:12px;background:var(--border)}.mastery-map-empty{font-size:.88rem;color:var(--text-muted);text-align:center;padding:20px 0}.lesson-tutor-section{border-left:1px solid var(--border);height:100%;overflow:hidden;display:flex;flex-direction:column}.ai-tutor{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg-elevated);overflow:hidden}.tutor-header{padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.tutor-header-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.95rem}.tutor-header-title svg{color:var(--accent)}.tutor-header-actions{display:flex;align-items:center;gap:8px}.voice-toggle.active{background:#22c55e26!important;color:var(--success)!important;border-color:#22c55e4d!important}.tts-engine-toggle{min-width:32px;padding:4px 6px!important;font-size:.7rem;border-radius:6px;gap:0!important}.tts-engine-toggle.active{background:#8b5cf626!important;color:#a78bfa!important;border-color:#8b5cf64d!important}.mode-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.mode-btn:hover{background:var(--surface-hover);color:var(--text)}.mode-btn.active{background:var(--accent-dim);color:var(--accent-hover);border-color:#6366f14d}.tutor-chat{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;min-height:0;gap:16px}.tutor-chat::-webkit-scrollbar{width:5px}.tutor-chat::-webkit-scrollbar-track{background:transparent}.tutor-chat::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.chat-message{display:flex;gap:10px;max-width:95%;animation:messageIn .2s ease-out}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.68rem;font-weight:700}.chat-message.assistant .chat-avatar{background:var(--accent-dim);color:var(--accent-hover)}.chat-message.user .chat-avatar{background:#22c55e26;color:var(--success)}.chat-bubble{padding:10px 14px;border-radius:16px;font-size:.88rem;line-height:1.6}.chat-message.assistant .chat-bubble{background:var(--surface);border:1px solid var(--border);border-top-left-radius:4px}.chat-message.user .chat-bubble{background:var(--accent);color:#fff;border-top-right-radius:4px}.chat-bubble p{margin:0}.chat-bubble p+p{margin-top:8px}.chat-bubble strong{font-weight:600}.chat-bubble code{background:#0000004d;padding:1px 5px;border-radius:4px;font-size:.82rem;font-family:SF Mono,Fira Code,monospace}.chat-bubble pre{background:#0000004d;padding:10px;border-radius:8px;overflow-x:auto;margin:8px 0;font-size:.8rem}.chat-bubble pre code{background:none;padding:0}.chat-bubble ul,.chat-bubble ol{padding-left:20px;margin:4px 0}.chat-bubble.typing{display:flex;align-items:center;gap:4px;padding:14px 18px}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.4s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}.checkin-prompt{background:linear-gradient(135deg,#6366f114,#818cf80a);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius);padding:16px;margin:4px 0;animation:fadeSlideIn .3s ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.checkin-text{font-size:.92rem;font-weight:500;color:var(--text);margin-bottom:12px}.checkin-buttons{display:flex;gap:8px}.checkin-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;font-size:.82rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;border:1px solid var(--border)}.checkin-btn.got-it{background:#22c55e1f;border-color:#22c55e4d;color:var(--success)}.checkin-btn.got-it:hover{background:#22c55e40}.checkin-btn.need-help{background:#6366f11f;border-color:#6366f14d;color:var(--accent-hover)}.checkin-btn.need-help:hover{background:#6366f140}.help-panel{padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:4px 0;display:flex;flex-direction:column;gap:6px;animation:fadeSlideIn .3s ease-out}.help-label{font-size:.78rem;font-weight:600;color:var(--text-muted);margin-bottom:2px}.csq-btn{text-align:left;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:.82rem;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;line-height:1.4}.csq-btn:hover{background:var(--accent-dim);border-color:#6366f14d;color:var(--text)}.csq-loading{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--text-muted);padding:4px 0}.response-actions{display:flex;gap:6px;margin:4px 0;padding-left:42px;animation:fadeSlideIn .3s ease-out}.action-btn{display:flex;align-items:center;gap:5px;padding:6px 14px;border-radius:20px;font-size:.78rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;border:1px solid var(--border);background:transparent;color:var(--text-secondary)}.action-btn:hover{background:var(--surface-hover);color:var(--text)}.action-btn.got-it{background:#22c55e14;border-color:#22c55e40;color:var(--success)}.action-btn.got-it:hover{background:#22c55e33}.action-btn.tell-more{background:#6366f114;border-color:#6366f140;color:var(--accent-hover)}.action-btn.tell-more:hover{background:#6366f133}.action-btn.resume{margin-left:auto}.resume-prompt{margin:4px 0;animation:fadeSlideIn .3s ease-out}.resume-video-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-xs);color:var(--success);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.resume-video-btn:hover{background:#22c55e33}.tutor-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.tutor-input input{flex:1;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:24px;padding:10px 18px;font-size:.88rem;font-family:inherit;outline:none;transition:border-color var(--transition-fast)}.tutor-input input:focus{border-color:var(--accent)}.tutor-input input::placeholder{color:var(--text-muted)}.send-btn{width:42px;height:42px;border-radius:50%;background:var(--accent);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.send-btn:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.05)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.struggle-timer{background:linear-gradient(135deg,#f59e0b14,#f59e0b08);border:1px solid rgba(245,158,11,.2);border-radius:var(--radius);padding:16px;margin:4px 0;display:flex;flex-direction:column;align-items:center;gap:12px;animation:fadeSlideIn .3s ease-out}.struggle-header{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;color:var(--warning)}.struggle-progress-ring{position:relative;width:80px;height:80px}.struggle-progress-ring .progress-svg{width:100%;height:100%}.struggle-progress-ring .progress-arc{transition:stroke-dashoffset .25s linear}.struggle-time-display{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:var(--text)}.struggle-encouragement{font-size:.82rem;color:var(--text-secondary);text-align:center;line-height:1.5}.struggle-force-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;font-size:.75rem;font-weight:500;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.struggle-force-btn:hover{background:var(--surface);color:var(--text-secondary);border-color:var(--warning)}.struggle-complete{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--success);font-size:.88rem;text-align:center}.struggle-dismiss-btn{padding:6px 16px;border-radius:20px;border:1px solid rgba(34,197,94,.3);background:#22c55e1f;color:var(--success);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.struggle-dismiss-btn:hover{background:#22c55e40}.independence-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:.78rem;font-weight:600;background:var(--accent-dim);color:var(--accent-hover);border:1px solid rgba(99,102,241,.2)}.independence-badge.high{background:var(--success-dim);color:var(--success);border-color:#22c55e33}.independence-badge.mid{background:var(--warning-dim);color:var(--warning);border-color:#f59e0b33}.independence-badge.compact{padding:4px 10px;font-size:.72rem}.independence-score{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.independence-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--accent)}.independence-label{font-size:.88rem;font-weight:600;color:var(--text)}.independence-display{display:flex;align-items:center;gap:16px;margin-bottom:12px}.score-circle{width:56px;height:56px;border-radius:50%;border:3px solid;display:flex;flex-direction:column;align-items:center;justify-content:center}.score-value{font-size:1.2rem;font-weight:800;line-height:1}.score-max{font-size:.6rem;color:var(--text-muted)}.score-trend{display:flex;align-items:center;gap:4px;font-size:.82rem;font-weight:500}.independence-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:8px}.independence-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.independence-message{font-size:.78rem;color:var(--text-secondary);line-height:1.4}.metacognitive-prompt{background:linear-gradient(135deg,#6366f114,#818cf80a);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius);padding:16px;margin:4px 0;animation:fadeSlideIn .3s ease-out}.metacog-header{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;color:var(--text);margin-bottom:12px}.metacog-header svg{color:var(--accent)}.metacog-scale{display:flex;gap:6px;margin-bottom:8px}.metacog-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.metacog-btn:hover{background:var(--surface-hover);border-color:var(--accent)}.metacog-value{font-size:1rem;font-weight:700;color:var(--text)}.metacog-label{font-size:.68rem;color:var(--text-muted)}.metacog-skip{background:none;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:4px 0;font-family:inherit}.metacog-skip:hover{color:var(--text-secondary)}.review-session{max-width:680px;margin:0 auto;padding:32px 24px 80px;min-height:calc(100vh - 61px)}.review-session-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:100px 0;color:var(--text-secondary)}.review-session-header{display:flex;align-items:center;gap:16px;margin-bottom:36px}.review-session-back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.review-session-back:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-light)}.review-session-progress{flex:1;display:flex;flex-direction:column;gap:6px}.review-session-progress-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.review-session-progress-fill{height:100%;background:var(--accent-gradient);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1)}.review-session-progress-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-align:right}.review-session-header-badge{display:flex;align-items:center;gap:5px;padding:6px 14px;border-radius:20px;background:var(--accent-dim);color:var(--accent-hover);font-size:.75rem;font-weight:700;letter-spacing:.02em;flex-shrink:0}.review-session-card-area{display:flex;flex-direction:column;align-items:center;gap:20px}.review-session-generate{display:flex;justify-content:center}.review-session-generate-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:transparent;border:1px solid var(--border);border-radius:20px;color:var(--text-muted);font-size:.78rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.review-session-generate-btn:hover:not(:disabled){color:var(--accent-hover);border-color:var(--accent);background:var(--accent-dim)}.review-session-generate-btn:disabled{opacity:.5;cursor:not-allowed}.sr-card-wrapper{width:100%;max-width:560px}.sr-card{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;position:relative;animation:srCardEnter .35s ease-out;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.sr-card-wrapper:not(.is-flipped) .sr-card{cursor:pointer}.sr-card-wrapper:not(.is-flipped) .sr-card:hover{border-color:var(--accent);box-shadow:var(--shadow-accent)}@keyframes srCardEnter{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.sr-card-front{padding:40px 32px 36px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:260px;justify-content:center}.sr-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}.sr-card-source{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-muted);background:var(--bg);padding:4px 10px;border-radius:12px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-card-badge{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:10px;letter-spacing:.02em}.sr-card-badge-new{background:var(--accent-dim);color:var(--accent-hover)}.sr-card-badge-count{background:var(--surface-hover);color:var(--text-muted)}.sr-card-concept{font-size:1.5rem;font-weight:800;line-height:1.3;margin:8px 0;background:linear-gradient(135deg,var(--text),var(--accent-hover));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-transform:capitalize}.sr-card-last-reviewed{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted);margin-top:4px}.sr-card-flip-hint{display:flex;align-items:center;gap:6px;margin-top:20px;padding:8px 18px;border-radius:20px;background:var(--accent-dim);color:var(--accent-hover);font-size:.78rem;font-weight:600;animation:srPulseHint 2s ease-in-out infinite}@keyframes srPulseHint{0%,to{opacity:.7}50%{opacity:1}}.sr-card-back{padding:32px;animation:srFadeIn .3s ease-out}@keyframes srFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.sr-card-back-concept{font-size:.78rem;font-weight:700;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px;text-align:center}.sr-card-question-area{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px 24px;margin-bottom:20px;text-align:left}.sr-card-question-area p{font-size:.95rem;color:var(--text);line-height:1.75;margin:0}.sr-card-question-area p+p{margin-top:8px}.sr-card-question-sub{font-size:.82rem!important;color:var(--text-muted)!important;font-style:italic}.sr-card-prev-answer{margin-bottom:20px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.sr-card-prev-answer summary{padding:10px 16px;font-size:.78rem;font-weight:600;color:var(--text-muted);cursor:pointer;background:var(--bg);transition:all var(--transition-fast);list-style:none}.sr-card-prev-answer summary::-webkit-details-marker{display:none}.sr-card-prev-answer summary:before{content:"▶ ";font-size:.65rem;transition:transform var(--transition-fast);display:inline-block}.sr-card-prev-answer[open] summary:before{transform:rotate(90deg)}.sr-card-prev-answer summary:hover{color:var(--text-secondary)}.sr-card-prev-answer-content{padding:12px 16px;font-size:.85rem;color:var(--text-secondary);line-height:1.6;border-top:1px solid var(--border)}.sr-card-prev-answer-content p{margin:0}.sr-card-rating-area{text-align:center}.sr-card-rating-prompt{font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:14px}.sr-card-rating-buttons{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.sr-rating-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 14px;min-width:64px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.sr-rating-btn:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}.sr-rating-btn-value{font-size:1.1rem;font-weight:800;line-height:1}.sr-rating-btn-label{font-size:.68rem;font-weight:600;letter-spacing:.01em}.sr-rating-forgot{border-color:#ef444440;color:var(--danger)}.sr-rating-forgot:hover{background:var(--danger-dim);border-color:#ef444480}.sr-rating-hard{border-color:#f59e0b40;color:var(--warning)}.sr-rating-hard:hover{background:var(--warning-dim);border-color:#f59e0b80}.sr-rating-okay{border-color:#eab30840;color:#eab308}.sr-rating-okay:hover{background:#eab3081a;border-color:#eab30880}.sr-rating-good{border-color:#22c55e40;color:var(--success)}.sr-rating-good:hover{background:var(--success-dim);border-color:#22c55e80}.sr-rating-easy{border-color:#6366f140;color:var(--accent-hover)}.sr-rating-easy:hover{background:var(--accent-dim);border-color:#6366f180}.sr-card-feedback{animation:srFadeIn .3s ease-out;text-align:center;padding:8px 0}.sr-card-feedback-msg{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:24px;font-size:.85rem;font-weight:600}.sr-feedback-good{background:var(--success-dim);color:var(--success)}.sr-feedback-okay{background:#eab3081f;color:#eab308}.sr-feedback-weak{background:var(--danger-dim);color:var(--danger)}.sr-skip-btn{display:flex;align-items:center;gap:4px;margin:16px auto 0;padding:6px 16px;background:transparent;border:none;color:var(--text-muted);font-size:.78rem;font-weight:500;cursor:pointer;transition:color var(--transition-fast);font-family:inherit}.sr-skip-btn:hover{color:var(--text-secondary)}.review-session-complete{text-align:center;padding:48px 0;animation:fadeSlideIn .5s ease-out}.review-session-complete-icon{width:88px;height:88px;margin:0 auto 24px;border-radius:50%;background:var(--success-dim);color:var(--success);display:flex;align-items:center;justify-content:center;animation:popIn .5s ease-out}.review-session-complete h2{font-size:1.6rem;font-weight:800;margin-bottom:8px;color:var(--text)}.review-session-complete-subtitle{font-size:.92rem;color:var(--text-secondary);margin-bottom:32px;line-height:1.6;max-width:420px;margin-left:auto;margin-right:auto}.review-session-complete-subtitle strong{color:var(--accent-hover)}.review-session-stats-grid{display:flex;justify-content:center;gap:20px;margin-bottom:32px}.review-session-stat{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:100px;transition:border-color var(--transition-fast)}.review-session-stat:hover{border-color:var(--border-light)}.review-session-stat svg{color:var(--accent)}.review-session-stat-value{font-size:1.5rem;font-weight:800;line-height:1;color:var(--text)}.review-session-stat-label{font-size:.72rem;color:var(--text-muted);font-weight:500}.review-session-results{margin-bottom:32px;text-align:left}.review-session-results h3{font-size:.88rem;font-weight:700;color:var(--text-secondary);margin-bottom:12px;text-align:center}.review-session-results-list{display:flex;flex-direction:column;gap:6px;max-width:400px;margin:0 auto}.review-session-result-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem}.review-session-result-item.correct{border-left:3px solid var(--success)}.review-session-result-item.needs-work{border-left:3px solid var(--warning)}.result-concept{color:var(--text);font-weight:600;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.result-badge{font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:10px;flex-shrink:0}.result-badge.rating-5,.result-badge.rating-4{background:var(--success-dim);color:var(--success)}.result-badge.rating-3{background:#eab3081f;color:#eab308}.result-badge.rating-2{background:var(--warning-dim);color:var(--warning)}.result-badge.rating-1{background:var(--danger-dim);color:var(--danger)}.review-session-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}@media (max-width: 640px){.review-session{padding:20px 16px 60px}.sr-card-front{padding:32px 20px 28px;min-height:220px}.sr-card-back{padding:24px 18px}.sr-card-concept{font-size:1.25rem}.sr-card-rating-buttons{gap:6px}.sr-rating-btn{min-width:56px;padding:10px}.sr-rating-btn-value{font-size:.95rem}.sr-rating-btn-label{font-size:.62rem}.review-session-stats-grid{gap:10px}.review-session-stat{padding:14px 16px;min-width:85px}.review-session-stat-value{font-size:1.25rem}}.quiz-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .2s ease-out}.quiz-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;max-width:560px;width:90%;max-height:80vh;overflow-y:auto;animation:modalSlideUp .3s ease-out}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.quiz-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px;color:var(--text-secondary)}.quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.quiz-progress{font-size:.78rem;font-weight:600;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.5px}.quiz-skip-btn{background:none;border:none;color:var(--text-muted);font-size:.78rem;cursor:pointer;font-family:inherit}.quiz-skip-btn:hover{color:var(--text)}.quiz-question{font-size:1.05rem;font-weight:600;line-height:1.5;margin-bottom:20px;color:var(--text)}.quiz-options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.quiz-option{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:.88rem;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;text-align:left;line-height:1.4}.quiz-option:hover:not(.correct):not(.wrong){border-color:var(--accent);background:var(--surface-hover)}.quiz-option.selected{border-color:var(--accent);background:var(--accent-dim);color:var(--text)}.quiz-option.correct{border-color:var(--success);background:#22c55e1f;color:var(--success)}.quiz-option.wrong{border-color:var(--danger);background:#ef44441a;color:var(--danger)}.quiz-option-letter{width:24px;height:24px;border-radius:50%;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}.quiz-feedback{padding:12px 14px;border-radius:var(--radius-xs);font-size:.88rem;line-height:1.5;margin-bottom:16px;animation:fadeSlideIn .3s ease-out}.quiz-feedback.correct{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:var(--success)}.quiz-feedback.wrong{background:#ef444414;border:1px solid rgba(239,68,68,.25);color:var(--text)}.quiz-actions{display:flex;justify-content:flex-end}.quiz-submit-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--accent);border:none;border-radius:20px;color:#fff;font-size:.88rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--transition-fast)}.quiz-submit-btn:hover:not(:disabled){background:var(--accent-hover)}.quiz-submit-btn:disabled{opacity:.4;cursor:not-allowed}.quiz-results{text-align:center}.quiz-results h2{font-size:1.4rem;margin:12px 0 4px}.quiz-score{font-size:1.1rem;color:var(--text-secondary);margin-bottom:20px}.trophy-gold{color:#f59e0b}.trophy-silver{color:var(--text-muted)}.quiz-results-list{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;text-align:left}.quiz-result-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-xs);font-size:.82rem}.quiz-result-item.correct{color:var(--success);background:#22c55e14}.quiz-result-item.wrong{color:var(--danger);background:#ef44440f}.quiz-final-actions{display:flex;gap:10px;justify-content:center}.quiz-close-btn{padding:10px 20px;background:var(--surface-hover);border:1px solid var(--border);border-radius:20px;color:var(--text);font-size:.88rem;font-weight:500;cursor:pointer;font-family:inherit}.quiz-next-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--success);border:none;border-radius:20px;color:#fff;font-size:.88rem;font-weight:600;cursor:pointer;font-family:inherit}.quiz-progress-bar{height:3px;background:var(--border);border-radius:2px;margin-bottom:16px;overflow:hidden}.quiz-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .4s ease}.quiz-question-container{transition:opacity .2s ease,transform .2s ease}.quiz-question-container.quiz-transitioning{opacity:0;transform:translate(-10px)}.quiz-encouragement{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.quiz-hint{text-align:center;font-size:.72rem;color:var(--text-muted);margin-top:12px;opacity:.7}.next-lesson-overlay{position:absolute;bottom:60px;right:16px;z-index:45;animation:fadeSlideIn .5s ease-out}.next-lesson-card{background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(99,102,241,.4);border-radius:var(--radius);padding:14px 18px;cursor:pointer;transition:all .2s;max-width:280px}.next-lesson-card:hover{border-color:var(--accent);box-shadow:0 4px 20px #6366f140}.next-lesson-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-hover);margin-bottom:4px}.next-lesson-title{font-size:.85rem;font-weight:500;color:var(--text);margin-bottom:10px;line-height:1.3}.next-lesson-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:var(--accent);border:none;border-radius:20px;color:#fff;font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit}.next-lesson-dismiss{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.lesson-end-actions{display:flex;flex-direction:column;gap:8px;margin:8px 0;animation:fadeSlideIn .4s ease-out}.lesson-end-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--radius-xs);font-size:.88rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;border:1px solid var(--border);text-align:left}.lesson-end-btn.quiz{background:#6366f11a;border-color:#6366f14d;color:var(--accent-hover)}.lesson-end-btn.quiz:hover{background:#6366f133}.lesson-end-btn.next{background:#22c55e1a;border-color:#22c55e4d;color:var(--success)}.lesson-end-btn.next:hover{background:#22c55e33}.mic-btn{width:42px;height:42px;border-radius:50%;background:var(--surface-hover);border:2px solid var(--border);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;position:relative}.mic-btn:hover{background:var(--accent-dim);color:var(--accent-hover);border-color:#6366f166;transform:scale(1.05)}.mic-btn.listening{background:linear-gradient(135deg,#ef4444,#f97316,#ef4444);background-size:200% 200%;animation:micGradient 2s ease infinite,micPulseRing 1.5s ease-in-out infinite;border-color:#ef4444;color:#fff;transform:scale(1.1)}.mic-btn.listening:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid rgba(239,68,68,.5);animation:micRingExpand 1.2s ease-out infinite}.mic-btn.listening:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%;border:1px solid rgba(249,115,22,.3);animation:micRingExpand 1.2s ease-out infinite .4s}@keyframes micGradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes micPulseRing{0%,to{box-shadow:0 0 #ef444466,0 0 15px #ef444433}50%{box-shadow:0 0 0 6px #ef444400,0 0 25px #f973164d}}@keyframes micRingExpand{0%{transform:scale(.8);opacity:1}to{transform:scale(1.4);opacity:0}}.listening-indicator{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 16px;font-size:.75rem;color:#ef4444;font-weight:600;background:#ef444414;border-top:1px solid rgba(239,68,68,.2);animation:listeningBlink 1s ease-in-out infinite}.listening-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;animation:listeningDotPulse .8s ease-in-out infinite alternate}@keyframes listeningBlink{0%,to{opacity:1}50%{opacity:.6}}@keyframes listeningDotPulse{0%{transform:scale(.7);opacity:.5}to{transform:scale(1.2);opacity:1}}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100vh;color:var(--text-secondary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 1100px){.lesson-container{grid-template-columns:1fr;flex:1;min-height:0;overflow:auto}.lesson-tutor-section{border-left:none;border-top:1px solid var(--border);height:450px;max-height:450px;overflow:hidden}}@media (max-width: 900px){.dashboard-hero{flex-direction:column;text-align:center;gap:32px}.dashboard-subtitle{margin-left:auto;margin-right:auto}.dashboard-quick-stats{justify-content:center}.continue-card{flex-direction:column}.continue-thumb{width:100%;height:180px}.upload-result-stats{gap:20px}}@media (max-width: 768px){.navbar{padding:12px 16px}.page-container{padding:24px 16px}.dashboard-page{padding:24px 16px 100px}.dashboard-greeting{font-size:1.8rem}.dashboard-quick-stats{flex-wrap:wrap;gap:10px}.quick-stat{padding:8px 14px}.library-page{padding:24px 16px 60px}.library-toolbar{flex-direction:column;align-items:stretch}.library-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.upload-page{padding:40px 20px 60px}.upload-dropzone{padding:40px 24px}.upload-url-form{flex-direction:column}.course-grid,.review-due-grid{grid-template-columns:1fr}}@media (max-width: 600px){.catalog-hero h1{font-size:1.8rem}.course-header h1{font-size:1.6rem}.dashboard-greeting{font-size:1.5rem}.mastery-ring{width:110px;height:110px}.library-grid-preview{grid-template-columns:1fr 1fr;gap:12px}.library-header h1,.upload-heading{font-size:1.5rem}.upload-result-stats{flex-direction:column;align-items:center;gap:16px}.quiz-modal{padding:20px;width:95%}.upload-fab{bottom:20px;right:20px;width:50px;height:50px}}@media (max-width: 400px){.dashboard-quick-stats{flex-direction:column}.library-grid-preview{grid-template-columns:1fr}.review-rate-buttons{flex-direction:column;align-items:stretch}.review-rate-btn{flex-direction:row;justify-content:center;gap:8px}}.language-selector{position:relative;z-index:100}.language-selector-trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:20px;color:var(--text);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.language-selector-trigger:hover{background:var(--surface-hover);border-color:var(--accent)}.language-selector.compact .language-selector-trigger{padding:4px 10px;font-size:.8rem}.lang-flag{font-size:1.1em;line-height:1}.lang-name{font-weight:500}.lang-chevron{transition:transform var(--transition-fast)}.lang-chevron.open{transform:rotate(180deg)}.language-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:240px;max-height:360px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.language-dropdown-header{padding:10px 14px 8px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}.language-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:none;border:none;color:var(--text);font-size:.9rem;cursor:pointer;transition:background var(--transition-fast);font-family:inherit;text-align:left}.language-option:hover{background:var(--surface-hover)}.language-option.active{background:var(--accent-dim)}.lang-option-flag{font-size:1.2em;flex-shrink:0}.lang-option-name{font-weight:500;flex:1}.lang-option-native{color:var(--text-muted);font-size:.8rem}.lang-check{color:var(--accent);flex-shrink:0}.cc-btn{margin-left:4px;gap:4px!important}.cc-btn.active{background:var(--accent)!important;color:#fff!important}video::cue{background:#000c;color:#fff;font-size:1.1rem;font-family:Inter,sans-serif;padding:4px 12px;border-radius:4px;line-height:1.6}.subtitle-controls{display:flex;align-items:center;gap:4px}.subtitle-size-btn{gap:2px!important;min-width:42px}.subtitle-size-btn .size-label{font-weight:700;font-size:.9rem}.subtitle-size-btn .size-indicator{font-size:.65rem;font-weight:600;opacity:.7}.subtitle-bar{width:100%;text-align:center;padding:10px 24px;background:var(--bg-elevated);border-top:1px solid var(--border);color:var(--text);font-family:Inter,sans-serif;line-height:1.6;min-height:44px;transition:font-size .2s ease}.subtitle-bar.subtitle-size-small{font-size:.85rem;padding:8px 20px}.subtitle-bar.subtitle-size-medium{font-size:1.05rem;padding:10px 24px}.subtitle-bar.subtitle-size-large{font-size:1.35rem;padding:12px 28px;font-weight:500}.subtitle-bar.subtitle-size-xlarge{font-size:1.7rem;padding:14px 32px;font-weight:500;line-height:1.4}.subtitle-error-bar{width:100%;text-align:center;padding:8px 24px;background:#ef444426;border-top:1px solid rgba(239,68,68,.3);color:#ef4444;font-size:.85rem;font-weight:500;animation:messageIn .2s ease-out}.flashcard-export-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.flashcard-export-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:700px;max-height:85vh;overflow-y:auto;padding:28px;box-shadow:var(--shadow-lg);animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.flashcard-export-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.flashcard-export-title{display:flex;align-items:center;gap:10px}.flashcard-export-title h2{font-size:1.3rem;font-weight:700}.flashcard-close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px;transition:all var(--transition-fast)}.flashcard-close-btn:hover{color:var(--text);background:var(--surface-hover)}.flashcard-export-subtitle{color:var(--text-secondary);font-size:.9rem;margin-bottom:20px}.flashcard-export-empty{text-align:center;padding:40px 20px}.flashcard-empty-icon{color:var(--text-muted);margin-bottom:12px}.flashcard-export-empty p{color:var(--text-secondary);margin-bottom:20px;font-size:.95rem}.flashcard-export-loading{text-align:center;padding:48px 20px}.flashcard-export-loading p{color:var(--text-secondary);margin-top:12px}.flashcard-preview-grid{display:grid;gap:12px;margin-bottom:24px;max-height:50vh;overflow-y:auto;padding-right:4px}.flashcard-preview-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all var(--transition-fast)}.flashcard-preview-card:hover{border-color:var(--accent);box-shadow:0 2px 12px #6366f11a}.flashcard-preview-inner{position:relative}.flashcard-preview-front,.flashcard-preview-back{padding:14px 16px}.flashcard-preview-front{background:var(--surface)}.flashcard-preview-back{background:var(--bg);border-top:1px dashed var(--border);display:none}.flashcard-preview-card.flipped .flashcard-preview-back{display:block}.flashcard-preview-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:4px}.flashcard-preview-label.answer{color:var(--success)}.flashcard-preview-card p{font-size:.92rem;line-height:1.5;color:var(--text)}.flashcard-preview-concept{display:inline-block;margin-top:6px;font-size:.75rem;color:var(--text-muted);font-style:italic}.flashcard-tap-hint{display:block;margin-top:6px;font-size:.72rem;color:var(--text-muted)}.flashcard-export-actions{display:flex;gap:12px;justify-content:center;padding-top:8px;border-top:1px solid var(--border)}.flashcard-export-actions .btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;background:var(--surface);border:1px solid var(--border);border-radius:24px;color:var(--text);font-size:.9rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.flashcard-export-actions .btn-ghost:hover{background:var(--surface-hover);border-color:var(--accent)}.lesson-info-actions .video-ctrl-btn{white-space:nowrap}@media print{.language-selector,.upload-fab,.lesson-tutor-section,.video-custom-controls,.lesson-info-bar{display:none!important}}.navbar-link{display:inline-flex;align-items:center;gap:6px}.navbar-mobile-toggle{display:none;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:8px;cursor:pointer;transition:all var(--transition-fast)}.navbar-mobile-toggle:hover{background:var(--surface);border-color:var(--border-light)}.navbar-mobile-overlay{display:none}@media (max-width: 768px){.navbar-nav{display:none}.navbar-mobile-toggle{display:flex}.navbar-mobile-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;animation:fadeIn .2s ease}.navbar-mobile-drawer{position:absolute;top:0;right:0;width:280px;height:100vh;background:var(--bg-elevated);border-left:1px solid var(--border);animation:slideInRight .25s ease;overflow-y:auto}.navbar-mobile-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.navbar-mobile-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.navbar-mobile-links{display:flex;flex-direction:column;padding:12px;gap:4px}.navbar-mobile-link{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.navbar-mobile-link:hover{background:var(--surface);color:var(--text)}.navbar-mobile-link.active{background:var(--accent-dim);color:var(--accent-hover)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.catalog-page{max-width:1400px;margin:0 auto;padding:0 32px 80px}.catalog-hero{text-align:center;padding:56px 0 40px;margin-bottom:0}.catalog-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:var(--accent-dim);border:1px solid rgba(99,102,241,.2);border-radius:24px;font-size:.82rem;font-weight:600;color:var(--accent-hover);margin-bottom:20px}.catalog-hero h1{font-size:2.8rem;font-weight:800;line-height:1.2;margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,var(--accent-hover) 50%,var(--accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.catalog-hero p{font-size:1.1rem;color:var(--text-secondary);max-width:600px;margin:0 auto 32px;line-height:1.7}.catalog-search-wrapper{max-width:640px;margin:0 auto}.catalog-search{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--surface);border:1px solid var(--border);border-radius:50px;transition:all var(--transition-fast)}.catalog-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.catalog-search-icon{color:var(--text-muted);flex-shrink:0}.catalog-search-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:.95rem;font-family:inherit}.catalog-search-input::placeholder{color:var(--text-muted)}.catalog-search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;border-radius:50%;transition:all var(--transition-fast)}.catalog-search-clear:hover{color:var(--text);background:var(--surface-hover)}.catalog-layout{display:flex;gap:32px;align-items:flex-start}.catalog-sidebar{width:260px;flex-shrink:0;position:sticky;top:80px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;max-height:calc(100vh - 100px);overflow-y:auto}.catalog-sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.catalog-sidebar-header h3{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:700}.catalog-clear-filters{background:none;border:none;color:var(--accent);font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit}.catalog-clear-filters:hover{color:var(--accent-hover)}.filter-group{margin-bottom:24px}.filter-group:last-child{margin-bottom:0}.filter-group-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.filter-options{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:var(--bg);border:1px solid var(--border);border-radius:20px;font-size:.78rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.filter-chip:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-light)}.filter-chip.active{background:var(--accent-dim);color:var(--accent-hover);border-color:var(--accent)}.filter-chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.catalog-main{flex:1;min-width:0}.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.catalog-results-count{font-size:.88rem;color:var(--text-secondary)}.catalog-results-count strong{color:var(--text)}.catalog-toolbar-right{display:flex;align-items:center;gap:12px}.catalog-filter-toggle{display:none;align-items:center;gap:6px;padding:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;font-family:inherit;position:relative;transition:all var(--transition-fast)}.catalog-filter-toggle:hover{background:var(--surface-hover);color:var(--text)}.filter-badge{width:8px;height:8px;background:var(--accent);border-radius:50%;position:absolute;top:6px;right:8px}.catalog-sort{display:flex;align-items:center;gap:8px;position:relative}.catalog-sort label{font-size:.82rem;color:var(--text-muted);white-space:nowrap}.catalog-sort-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:20px;color:var(--text);padding:8px 32px 8px 14px;font-size:.82rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all var(--transition-fast)}.catalog-sort-select:hover{border-color:var(--border-light)}.catalog-sort-select:focus{outline:none;border-color:var(--accent)}.catalog-sort-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.course-card-gradient-icon{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:#ffffff1f}.course-card-badges{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.dept-badge{background:var(--accent-dim)!important;border:1px solid;font-size:.7rem!important;font-weight:600!important;padding:3px 10px!important}.diff-badge{font-size:.7rem!important;font-weight:600!important;padding:3px 10px!important;border:none!important}.course-card-code{font-size:.78rem;color:var(--text-muted);font-weight:500;display:block;margin-bottom:4px}.course-card-rating{display:flex;align-items:center;gap:4px}.rating-number{font-weight:600;color:var(--text-secondary)}.catalog-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 20px;color:var(--text-secondary)}.catalog-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:80px 20px;color:var(--text-muted);text-align:center}.catalog-empty h3{color:var(--text);font-size:1.2rem}.catalog-empty p{color:var(--text-secondary);max-width:400px}.star-rating{display:inline-flex;align-items:center;gap:1px;line-height:1}.star-filled{color:#f59e0b}.star-half{color:#f59e0b;opacity:.6}.star-empty{color:var(--border-light)}@media (max-width: 1024px){.catalog-sidebar{display:none}.catalog-sidebar.open{display:block;position:fixed;top:0;left:0;width:300px;height:100vh;z-index:150;border-radius:0;border:none;border-right:1px solid var(--border);animation:slideInLeft .25s ease}.catalog-filter-toggle{display:flex}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width: 640px){.catalog-page{padding:0 16px 60px}.catalog-hero{padding:32px 0 24px}.catalog-hero h1{font-size:1.8rem}.catalog-grid{grid-template-columns:1fr}.catalog-toolbar{flex-direction:column;align-items:flex-start}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}.course-detail-page{max-width:1100px;margin:0 auto;padding:0 32px 80px}.course-detail-back{display:inline-flex;align-items:center;gap:6px;padding:12px 0;font-size:.85rem;color:var(--text-secondary);transition:color var(--transition-fast)}.course-detail-back:hover{color:var(--accent-hover)}.course-detail-hero{border-radius:var(--radius-lg);padding:40px;margin-bottom:0;border:1px solid var(--border)}.course-detail-hero-content{max-width:700px}.course-detail-badges{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.course-detail-code{font-size:.88rem;color:var(--text-muted);font-weight:600;letter-spacing:.3px}.course-detail-hero h1{font-size:2.2rem;font-weight:800;line-height:1.25;margin-top:8px;margin-bottom:8px}.course-detail-semester{font-size:.9rem;color:var(--text-secondary);margin-bottom:24px}.course-detail-stats{display:flex;gap:32px;margin-bottom:28px}.course-detail-stat{display:flex;align-items:center;gap:10px;color:var(--text-secondary)}.course-detail-stat svg{color:var(--accent)}.course-detail-stat div{display:flex;flex-direction:column}.course-detail-stat strong{font-size:1.1rem;color:var(--text);line-height:1.2}.course-detail-stat span{font-size:.78rem;color:var(--text-muted)}.course-enroll-btn{padding:14px 32px;font-size:1rem}.course-enroll-btn.enrolled{background:var(--success)}.course-enroll-btn.enrolled:hover{background:#16a34a;box-shadow:0 4px 20px #22c55e40}.course-detail-tabs{display:flex;gap:4px;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:32px;overflow-x:auto}.course-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:none;border:1px solid transparent;border-radius:24px;font-size:.88rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-family:inherit;white-space:nowrap}.course-tab:hover{background:var(--surface);color:var(--text)}.course-tab.active{background:var(--accent-dim);color:var(--accent-hover);border-color:#6366f133}.tab-count{background:var(--bg);padding:1px 8px;border-radius:12px;font-size:.72rem;font-weight:700}.course-tab.active .tab-count{background:#6366f133}.course-overview{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:flex-start}.course-overview-section{margin-bottom:32px}.course-overview-section h3{font-size:1.1rem;font-weight:700;margin-bottom:12px;color:var(--text)}.course-overview-section p{font-size:.95rem;color:var(--text-secondary);line-height:1.8}.course-topics-grid{display:flex;flex-wrap:wrap;gap:8px}.course-topic-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--surface);border:1px solid var(--border);border-radius:20px;font-size:.82rem;color:var(--text-secondary);transition:all var(--transition-fast)}.course-topic-tag:hover{border-color:var(--accent);color:var(--text)}.course-prereqs-list{list-style:none;display:flex;flex-direction:column;gap:8px}.course-prereqs-list li{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.course-prereqs-list li svg{color:var(--success);flex-shrink:0}.course-info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;position:sticky;top:80px}.course-info-card h4{font-size:.95rem;font-weight:700;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border)}.course-info-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.course-info-item:last-child{border-bottom:none}.course-info-label{font-size:.82rem;color:var(--text-muted)}.course-info-value{font-size:.85rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}.lecture-duration{display:flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-muted);white-space:nowrap}.course-reviews{max-width:800px}.course-reviews-summary{display:flex;gap:40px;align-items:flex-start;margin-bottom:40px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.reviews-avg{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:120px}.reviews-avg-number{font-size:3rem;font-weight:800;color:var(--text);line-height:1}.reviews-avg-count{font-size:.82rem;color:var(--text-muted)}.star-distribution{flex:1;display:flex;flex-direction:column;gap:6px}.star-dist-row{display:flex;align-items:center;gap:10px}.star-dist-label{font-size:.78rem;color:var(--text-secondary);width:36px;display:flex;align-items:center;gap:3px}.star-dist-bar{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.star-dist-fill{height:100%;background:#f59e0b;border-radius:4px;transition:width .5s ease}.star-dist-count{font-size:.75rem;color:var(--text-muted);width:24px;text-align:right}.review-form-section{margin-bottom:40px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.review-form-section h3{font-size:1.05rem;font-weight:700;margin-bottom:20px}.review-success{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--success-dim);border:1px solid rgba(34,197,94,.2);border-radius:var(--radius-sm);color:var(--success);font-size:.85rem;font-weight:500;margin-bottom:16px}.review-form{display:flex;flex-direction:column;gap:16px}.review-form-row{display:flex;flex-direction:column;gap:6px}.review-form-row label{font-size:.82rem;font-weight:600;color:var(--text-secondary)}.review-form-row input,.review-form-row textarea{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;color:var(--text);font-size:.9rem;font-family:inherit;resize:vertical;transition:border-color var(--transition-fast)}.review-form-row input:focus,.review-form-row textarea:focus{outline:none;border-color:var(--accent)}.review-form-row input::placeholder,.review-form-row textarea::placeholder{color:var(--text-muted)}.reviews-list{display:flex;flex-direction:column;gap:16px}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color var(--transition-fast)}.review-card:hover{border-color:var(--border-light)}.review-card-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.review-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-dim);color:var(--accent-hover);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.review-meta{display:flex;flex-direction:column;gap:2px;flex:1}.review-name{font-size:.88rem;font-weight:600;color:var(--text)}.review-date{font-size:.75rem;color:var(--text-muted)}.review-comment{font-size:.9rem;color:var(--text-secondary);line-height:1.7}@media (max-width: 768px){.course-detail-page{padding:0 16px 60px}.course-detail-hero{padding:24px}.course-detail-hero h1{font-size:1.6rem}.course-detail-stats{flex-wrap:wrap;gap:16px}.course-overview{grid-template-columns:1fr}.course-reviews-summary{flex-direction:column;gap:20px;align-items:stretch}.reviews-avg{flex-direction:row;gap:16px;align-items:center}.reviews-avg-number{font-size:2rem}}.my-courses-page{max-width:1200px;margin:0 auto;padding:32px 32px 80px}.my-courses-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;gap:20px;flex-wrap:wrap}.my-courses-header h1{display:flex;align-items:center;gap:12px;font-size:1.8rem;font-weight:800}.my-courses-header>div:first-child p{color:var(--text-secondary);font-size:.95rem;margin-top:4px}.my-courses-search{display:flex;align-items:center;gap:10px;padding:10px 18px;background:var(--surface);border:1px solid var(--border);border-radius:24px;min-width:260px;transition:border-color var(--transition-fast)}.my-courses-search:focus-within{border-color:var(--accent)}.my-courses-search svg{color:var(--text-muted);flex-shrink:0}.my-courses-search input{background:none;border:none;outline:none;color:var(--text);font-size:.88rem;font-family:inherit;width:100%}.my-courses-search input::placeholder{color:var(--text-muted)}.my-courses-stats{display:flex;gap:16px;margin-bottom:32px}.my-courses-stat{display:flex;flex-direction:column;align-items:center;padding:16px 28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:120px}.my-courses-stat strong{font-size:1.5rem;font-weight:800;color:var(--text)}.my-courses-stat span{font-size:.78rem;color:var(--text-muted)}.my-courses-empty{display:flex;flex-direction:column;align-items:center;gap:16px;padding:100px 20px;text-align:center}.my-courses-empty-icon{width:100px;height:100px;border-radius:50%;background:var(--accent-dim);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:8px}.my-courses-empty h2{font-size:1.4rem;color:var(--text)}.my-courses-empty p{font-size:.95rem;color:var(--text-secondary);max-width:400px}.my-courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.my-course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:all var(--transition-normal)}.my-course-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.my-course-card-accent{height:4px}.my-course-card-body{padding:20px}.my-course-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.my-course-code{font-size:.78rem;color:var(--text-muted);font-weight:500}.my-course-card-body h3{font-size:1.05rem;font-weight:700;margin-bottom:16px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.my-course-progress{margin-bottom:16px}.my-course-progress-header{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.75rem;color:var(--text-muted)}.my-course-progress-bar{height:6px;background:var(--bg);border-radius:3px;overflow:hidden}.my-course-progress-fill{height:100%;border-radius:3px;transition:width .5s ease}.my-course-card-footer{display:flex;align-items:center;justify-content:space-between}.my-course-last-accessed{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--text-muted)}@media (max-width: 640px){.my-courses-page{padding:24px 16px 60px}.my-courses-header{flex-direction:column}.my-courses-search{min-width:unset;width:100%}.my-courses-stats{flex-wrap:wrap}.my-courses-grid{grid-template-columns:1fr}}.notebook-page{max-width:1200px;margin:0 auto;padding:32px 32px 80px}.notebook-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;gap:16px;flex-wrap:wrap}.notebook-header-left h1{display:flex;align-items:center;gap:12px;font-size:1.8rem;font-weight:800}.notebook-header-left p{color:var(--text-secondary);font-size:.95rem;margin-top:4px}.notebook-header-actions{display:flex;gap:8px}.notebook-empty{display:flex;flex-direction:column;align-items:center;gap:16px;padding:100px 20px;text-align:center}.notebook-empty-icon{width:100px;height:100px;border-radius:50%;background:var(--accent-dim);display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:8px}.notebook-empty h2{font-size:1.4rem;color:var(--text)}.notebook-empty p{font-size:.95rem;color:var(--text-secondary);max-width:400px}.notebook-layout{display:flex;gap:24px;min-height:600px}.notebook-sidebar{width:320px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 180px);position:sticky;top:80px}.notebook-search{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border)}.notebook-search svg{color:var(--text-muted);flex-shrink:0}.notebook-search input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:.85rem;font-family:inherit}.notebook-search input::placeholder{color:var(--text-muted)}.notebook-search button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex}.notebook-stats{display:flex;justify-content:space-around;padding:10px 16px;border-bottom:1px solid var(--border);font-size:.75rem;color:var(--text-muted)}.notebook-groups{flex:1;overflow-y:auto}.notebook-group-header{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;text-align:left;transition:background var(--transition-fast)}.notebook-group-header:hover{background:var(--surface-hover)}.notebook-group-header.expanded{background:var(--bg)}.notebook-group-chevron{transition:transform var(--transition-fast);color:var(--text-muted)}.notebook-group-chevron.rotated{transform:rotate(90deg)}.notebook-group-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notebook-group-count{font-size:.72rem;padding:1px 7px;background:var(--bg);border-radius:10px;color:var(--text-muted)}.notebook-group-notes{background:var(--bg)}.notebook-note-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:10px 16px 10px 32px;background:none;border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;font-family:inherit;color:var(--text);transition:background var(--transition-fast)}.notebook-note-item:hover{background:var(--surface)}.notebook-note-item.active{background:var(--accent-dim);border-left:3px solid var(--accent)}.notebook-note-lecture{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notebook-note-preview{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notebook-note-date{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--text-muted)}.notebook-main{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:500px}.notebook-no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;gap:12px;color:var(--text-muted);text-align:center;padding:40px}.notebook-no-selection h3{color:var(--text);font-size:1.1rem}.notebook-note-view{display:flex;flex-direction:column;height:100%}.notebook-note-view-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border);gap:16px}.notebook-note-view-course{font-size:.78rem;font-weight:600;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.5px}.notebook-note-view-header h2{font-size:1.2rem;font-weight:700;margin-top:4px}.notebook-note-view-meta{display:flex;gap:16px;margin-top:8px;font-size:.78rem;color:var(--text-muted)}.notebook-note-view-meta span{display:flex;align-items:center;gap:4px}.notebook-note-view-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.notebook-delete-btn{color:var(--danger)!important}.notebook-delete-confirm{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--danger)}.btn-danger-sm{display:inline-flex;align-items:center;padding:4px 12px;background:var(--danger);color:#fff;border:none;border-radius:16px;font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit}.notebook-note-content{padding:24px;flex:1;font-size:.95rem;line-height:1.8;color:var(--text-secondary);white-space:pre-wrap;overflow-y:auto}@media (max-width: 768px){.notebook-page{padding:24px 16px 60px}.notebook-layout{flex-direction:column}.notebook-sidebar{width:100%;position:static;max-height:300px}}.dashboard-quick-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dashboard-nav-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition-normal)}.dashboard-nav-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.dashboard-nav-card:hover .dashboard-nav-card-arrow{transform:translate(4px);color:var(--accent)}.dashboard-nav-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.browse-courses .dashboard-nav-card-icon{background:var(--accent-dim);color:var(--accent-hover)}.my-courses .dashboard-nav-card-icon{background:var(--success-dim);color:var(--success)}.my-notebook .dashboard-nav-card-icon{background:var(--warning-dim);color:var(--warning)}.dashboard-nav-card-info{flex:1;min-width:0}.dashboard-nav-card-info h3{font-size:.95rem;font-weight:700;margin-bottom:2px}.dashboard-nav-card-info p{font-size:.78rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-nav-card-arrow{color:var(--text-muted);flex-shrink:0;transition:all var(--transition-fast)}.dashboard-enrolled-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.dashboard-enrolled-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:all var(--transition-normal)}.dashboard-enrolled-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.dashboard-enrolled-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dashboard-enrolled-dept{font-size:.72rem;font-weight:600;color:var(--accent-hover);text-transform:uppercase;letter-spacing:.5px}.dashboard-enrolled-code{font-size:.75rem;color:var(--text-muted)}.dashboard-enrolled-card h4{font-size:.95rem;font-weight:600;margin-bottom:12px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dashboard-enrolled-progress{display:flex;align-items:center;gap:10px}.dashboard-enrolled-progress-bar{flex:1;height:5px;background:var(--bg);border-radius:3px;overflow:hidden}.dashboard-enrolled-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:3px;transition:width .5s ease}.dashboard-enrolled-progress span{font-size:.75rem;font-weight:600;color:var(--text-muted);min-width:32px;text-align:right}@media (max-width: 768px){.dashboard-quick-nav,.dashboard-enrolled-grid{grid-template-columns:1fr}}@media (max-width: 1024px){.dashboard-quick-nav,.dashboard-enrolled-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.dashboard-quick-nav,.dashboard-enrolled-grid{grid-template-columns:1fr}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.catalog-page,.course-detail-page,.my-courses-page,.notebook-page,.auth-page,.profile-page,.admin-page{animation:pageSlideUp .35s ease}@keyframes pageSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pageFadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-hover) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.5s ease infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;margin-bottom:8px;border-radius:4px}.skeleton-text.short{width:40%}.skeleton-text.medium{width:65%}.skeleton-text.long{width:90%}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{height:200px;border-radius:var(--radius)}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-dim)}.navbar-right{display:flex;align-items:center;gap:8px}.navbar-theme-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:36px;height:36px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.navbar-theme-toggle:hover{color:var(--warning);background:var(--surface-hover);border-color:var(--border-light)}.navbar-auth-buttons{display:flex;align-items:center;gap:10px}.navbar-audience-toggle{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px;margin-right:4px}.navbar-audience-option{padding:5px 14px;border-radius:6px;font-size:.78rem;font-weight:600;color:var(--text-secondary);text-decoration:none;transition:all .2s ease;cursor:pointer;white-space:nowrap}.navbar-audience-option:hover{color:var(--text)}.navbar-audience-option.active{background:var(--accent);color:#fff;box-shadow:0 1px 3px #6366f14d}.navbar-auth-btn{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;white-space:nowrap}.navbar-user-wrapper{position:relative}.navbar-user-trigger{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;background:var(--surface);border:1px solid var(--border);border-radius:100px;cursor:pointer;transition:all var(--transition-fast);color:var(--text);font-family:inherit}.navbar-user-trigger:hover{background:var(--surface-hover);border-color:var(--border-light)}.navbar-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;flex-shrink:0}.navbar-avatar-lg{width:40px;height:40px;font-size:.85rem}.navbar-user-name{font-size:.85rem;font-weight:600}.navbar-chevron{transition:transform var(--transition-fast);color:var(--text-muted)}.navbar-chevron.open{transform:rotate(180deg)}.navbar-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden;animation:dropdownSlide .2s ease}.navbar-dropdown-header{display:flex;align-items:center;gap:12px;padding:16px}.navbar-dropdown-name{font-weight:600;font-size:.9rem}.navbar-dropdown-email{font-size:.8rem;color:var(--text-muted)}.navbar-dropdown-divider{height:1px;background:var(--border);margin:0}.navbar-dropdown-item{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:.87rem;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:none;background:none;width:100%;text-align:left;font-family:inherit}.navbar-dropdown-item:hover{background:var(--surface-hover);color:var(--text)}.navbar-dropdown-admin{color:var(--accent)}.navbar-dropdown-admin:hover{color:var(--accent-hover);background:var(--accent-dim)}.navbar-dropdown-logout{color:var(--danger)}.navbar-dropdown-logout:hover{background:var(--danger-dim);color:var(--danger)}.navbar-mobile-user{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.navbar-mobile-user-name{font-weight:600;font-size:.9rem}.navbar-mobile-user-email{font-size:.8rem;color:var(--text-muted)}.navbar-mobile-logout{color:var(--danger)!important;border:none;background:none;cursor:pointer;font-family:inherit;text-align:left;width:100%}.navbar-mobile-footer{padding:16px 20px;border-top:1px solid var(--border);margin-top:auto}.navbar-mobile-footer .navbar-theme-toggle{width:auto;border-radius:var(--radius-sm);padding:8px 16px;font-size:.85rem}@media (max-width: 768px){.navbar-auth-buttons,.navbar-user-name,.navbar-chevron{display:none}.navbar-user-trigger{padding:4px}}.toast-item{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:300px;max-width:420px;pointer-events:all;animation:slideInRight .3s ease;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast-exit{animation:slideOutRight .3s ease forwards}@keyframes slideOutRight{to{opacity:0;transform:translate(100%)}}.toast-success{border-left:3px solid var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left:3px solid var(--danger)}.toast-error .toast-icon{color:var(--danger)}.toast-warning{border-left:3px solid var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left:3px solid var(--accent)}.toast-info .toast-icon{color:var(--accent)}.toast-message{flex:1;font-size:.87rem;font-weight:500}.toast-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:4px;transition:all var(--transition-fast)}.toast-close:hover{color:var(--text);background:var(--surface-hover)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px}.auth-container{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:1000px;min-height:640px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl)}.auth-branding{background:linear-gradient(135deg,#1e1b4b,#312e81 40%,#4338ca);padding:48px 40px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-branding:before{content:"";position:absolute;top:-30%;right:-30%;width:60%;height:60%;background:radial-gradient(circle,rgba(139,92,246,.25),transparent 60%);border-radius:50%}.auth-branding:after{content:"";position:absolute;bottom:-20%;left:-20%;width:50%;height:50%;background:radial-gradient(circle,rgba(99,102,241,.2),transparent 60%);border-radius:50%}.auth-branding-content{position:relative;z-index:1}.auth-logo{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:#ffffff1a;border-radius:var(--radius);margin-bottom:32px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);color:#fff}.auth-branding-title{font-size:2rem;font-weight:800;color:#fff;line-height:1.2;margin-bottom:16px}.auth-branding-title .gradient-text{background:linear-gradient(135deg,#c7d2fe,#a5b4fc,#818cf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-branding-subtitle{color:#ffffffb3;font-size:1rem;line-height:1.7;margin-bottom:40px}.auth-branding-features{display:flex;flex-direction:column;gap:14px}.auth-feature{display:flex;align-items:center;gap:12px;color:#ffffffd9;font-size:.92rem}.auth-feature-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-hover);flex-shrink:0}.auth-branding-stats{display:flex;gap:32px;margin-top:40px}.auth-stat{display:flex;flex-direction:column;gap:4px}.auth-stat-value{font-size:1.6rem;font-weight:800;color:#fff}.auth-stat-label{font-size:.82rem;color:#fff9}.auth-branding-footer{position:relative;z-index:1;font-size:.8rem;color:#fff6}.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:48px 40px;overflow-y:auto}.auth-form-wrapper{width:100%;max-width:380px}.auth-form-header{margin-bottom:32px}.auth-form-header h2{font-size:1.6rem;font-weight:800;margin-bottom:8px;line-height:1.2}.auth-form-header p{color:var(--text-secondary);font-size:.95rem}.auth-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--danger-dim);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);color:var(--danger);font-size:.87rem;margin-bottom:20px;animation:scaleIn .2s ease}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.auth-input-wrapper{display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.auth-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.auth-input-icon{color:var(--text-muted);flex-shrink:0}.auth-input-wrapper input,.auth-input-wrapper select{flex:1;padding:12px 0;background:none;border:none;outline:none;color:var(--text);font-size:.92rem;font-family:inherit}.auth-input-wrapper input::placeholder{color:var(--text-muted)}.auth-input-wrapper select{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.auth-textarea-wrapper{align-items:flex-start;padding:14px}.auth-textarea-wrapper textarea{flex:1;width:100%;background:none;border:none;outline:none;color:var(--text);font-size:.92rem;font-family:inherit;resize:vertical;min-height:80px}.auth-textarea-wrapper textarea::placeholder{color:var(--text-muted)}.auth-input-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:color var(--transition-fast)}.auth-input-toggle:hover{color:var(--text)}.auth-match-indicator{display:flex;align-items:center;padding:4px}.auth-match-indicator.match{color:var(--success)}.auth-match-indicator.no-match{color:var(--danger)}.auth-options{display:flex;align-items:center;justify-content:space-between;font-size:.85rem}.auth-checkbox-label{display:flex;align-items:flex-start;gap:8px;font-size:.85rem;color:var(--text-secondary);cursor:pointer}.auth-checkbox{width:16px;height:16px;border-radius:4px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:2px}.auth-terms{margin-top:4px}.auth-link{color:var(--text-muted);font-size:.85rem;transition:color var(--transition-fast)}.auth-link:hover{color:var(--text)}.auth-link-primary{color:var(--accent);font-weight:600;transition:color var(--transition-fast)}.auth-link-primary:hover{color:var(--accent-hover)}.auth-submit-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 24px;background:var(--accent-gradient);border:none;border-radius:var(--radius-sm);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;margin-top:4px}.auth-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-accent),0 4px 16px #6366f14d}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{opacity:.7;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:16px;margin:24px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{font-size:.82rem;color:var(--text-muted);white-space:nowrap}.auth-demo-buttons{display:flex;gap:10px;margin-bottom:24px}.auth-demo-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.87rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.auth-demo-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-light)}.auth-demo-btn-admin{border-color:#6366f133;color:var(--accent)}.auth-demo-btn-admin:hover{background:var(--accent-dim);border-color:#6366f14d}.auth-demo-btn-full{width:100%;margin-bottom:24px}.auth-footer-text{text-align:center;font-size:.9rem;color:var(--text-secondary)}.password-strength{display:flex;align-items:center;gap:10px;margin-top:6px}.password-strength-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.password-strength-fill{height:100%;border-radius:2px;transition:all .3s ease}.password-strength-label{font-size:.78rem;font-weight:600;white-space:nowrap}.password-requirements{display:flex;flex-direction:column;gap:4px;margin-top:8px}.password-req{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted);transition:color var(--transition-fast)}.password-req.met{color:var(--success)}@media (max-width: 768px){.auth-container{grid-template-columns:1fr;max-width:480px;min-height:unset}.auth-branding{display:none}.auth-form-panel{padding:40px 24px}}.profile-page{animation:pageSlideUp .35s ease}.profile-header{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:32px}.profile-header-bg{height:120px;background:linear-gradient(135deg,#1e1b4b,#312e81,#4338ca,#6366f1);position:relative}.profile-header-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 40%,var(--surface))}.profile-header-content{display:flex;align-items:flex-start;gap:24px;padding:0 32px 32px;margin-top:-48px;position:relative}.profile-avatar-large{width:96px;height:96px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:800;color:#fff;border:4px solid var(--surface);flex-shrink:0}.profile-header-info{flex:1;padding-top:20px}.profile-header-info h1{font-size:1.8rem;font-weight:800;line-height:1.2;margin-bottom:8px}.profile-email,.profile-member-since{display:flex;align-items:center;gap:8px;font-size:.87rem;color:var(--text-secondary);margin-bottom:4px}.profile-bio{font-size:.92rem;color:var(--text-secondary);margin-top:8px;line-height:1.6}.profile-header-actions{display:flex;align-items:center;gap:8px;padding-top:24px}.profile-theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--surface-hover);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.profile-theme-toggle:hover{color:var(--warning);border-color:var(--warning)}.profile-edit-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;margin-bottom:32px;animation:scaleIn .2s ease}.profile-edit-section h3{font-size:1.2rem;font-weight:700;margin-bottom:24px}.profile-edit-form{display:flex;flex-direction:column;gap:20px;max-width:500px}.profile-edit-theme{display:flex;flex-direction:column;gap:8px}.profile-edit-theme label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.profile-theme-switcher{display:flex;gap:8px}.profile-theme-option{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.87rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.profile-theme-option.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.profile-section{margin-bottom:32px}.profile-section-title{font-size:1.25rem;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:10px}.profile-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.profile-stat-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition-fast)}.profile-stat-card:hover{border-color:var(--border-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.profile-stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-stat-info{display:flex;flex-direction:column}.profile-stat-value{font-size:1.4rem;font-weight:800;line-height:1.2}.profile-stat-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.profile-streak-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile-streak-card{display:flex;align-items:center;gap:20px;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:relative;overflow:hidden;transition:all var(--transition-fast)}.profile-streak-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.profile-streak-current{border-color:#f59e0b4d;background:linear-gradient(135deg,var(--surface),rgba(245,158,11,.05))}.profile-streak-longest{border-color:#a855f74d;background:linear-gradient(135deg,var(--surface),rgba(168,85,247,.05))}.profile-streak-flame{color:#f59e0b;animation:pulse 2s ease-in-out infinite}.profile-streak-trophy{color:#a855f7}.profile-streak-info{flex:1}.profile-streak-value{font-size:2.4rem;font-weight:900;line-height:1;display:block}.profile-streak-label{font-size:.85rem;color:var(--text-secondary);margin-top:4px;display:block}.profile-streak-badge{position:absolute;top:12px;right:12px;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:20px;background:var(--accent-dim);color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.profile-streak-current .profile-streak-badge{background:var(--warning-dim);color:var(--warning)}.profile-streak-longest .profile-streak-badge{background:#a855f726;color:#a855f7}.profile-achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.profile-achievement-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:24px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition-fast)}.profile-achievement-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 8px 24px #6366f11f}.profile-achievement-icon{width:56px;height:56px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:#fff}.profile-achievement-card h4{font-size:.92rem;font-weight:700}.profile-achievement-card p{font-size:.78rem;color:var(--text-secondary);line-height:1.4}.profile-achievement-date{font-size:.72rem;color:var(--text-muted)}.profile-subscription-card{display:flex;align-items:center;justify-content:space-between;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:24px}.profile-subscription-info{flex:1}.profile-subscription-plan{display:flex;align-items:center;gap:16px;margin-bottom:16px}.profile-subscription-plan svg{color:#f59e0b}.profile-subscription-plan h3{font-size:1.2rem;font-weight:700}.profile-subscription-plan p{font-size:.85rem;color:var(--text-secondary)}.profile-subscription-features{display:flex;flex-wrap:wrap;gap:12px}.profile-subscription-features span{font-size:.82rem;padding:4px 14px;background:var(--accent-dim);color:var(--accent);border-radius:20px;font-weight:500}.btn-upgrade{flex-shrink:0;background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-upgrade:hover:not(:disabled){background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 4px 20px #f59e0b4d}.profile-signout{padding-top:16px;border-top:1px solid var(--border);margin-top:16px}.profile-signout-btn{color:var(--danger)!important;border-color:#ef444433!important}.profile-signout-btn:hover{background:var(--danger-dim)!important}@media (max-width: 768px){.profile-header-content{flex-direction:column;align-items:center;text-align:center;padding:0 20px 24px}.profile-header-actions{padding-top:0}.profile-stats-grid{grid-template-columns:repeat(2,1fr)}.profile-streak-cards{grid-template-columns:1fr}.profile-achievements-grid{grid-template-columns:repeat(2,1fr)}.profile-subscription-card{flex-direction:column;text-align:center}}@media (max-width: 480px){.profile-stats-grid,.profile-achievements-grid{grid-template-columns:1fr}}.admin-page{animation:pageSlideUp .35s ease}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;gap:16px}.admin-title{display:flex;align-items:center;gap:12px;font-size:1.8rem;font-weight:800;line-height:1.2}.admin-title svg{color:var(--accent)}.admin-subtitle{font-size:.95rem;color:var(--text-secondary);margin-top:4px}.admin-header-actions{display:flex;gap:8px;flex-shrink:0;padding-top:4px}.admin-back-link{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);margin-bottom:12px;transition:color var(--transition-fast)}.admin-back-link:hover{color:var(--accent)}.admin-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.admin-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:all var(--transition-fast)}.admin-stat-card:hover{border-color:var(--border-light);transform:translateY(-2px);box-shadow:var(--shadow-md)}.admin-stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-stat-icon{width:44px;height:44px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.admin-stat-change{display:flex;align-items:center;gap:3px;font-size:.78rem;font-weight:600;padding:3px 8px;border-radius:20px}.admin-stat-change.up{color:var(--success);background:var(--success-dim)}.admin-stat-change.down{color:var(--danger);background:var(--danger-dim)}.admin-stat-value{font-size:1.8rem;font-weight:900;line-height:1.1}.admin-stat-label{font-size:.85rem;color:var(--text-muted);margin-top:4px}.admin-charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:32px}.admin-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.admin-chart-wide{grid-column:1 / -1}.admin-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.admin-chart-header h3{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:700}.admin-chart-header h3 svg{color:var(--accent)}.admin-chart-period{font-size:.8rem;color:var(--text-muted)}.admin-bar-chart{display:flex;align-items:flex-end;gap:3px;height:180px;padding-bottom:24px;position:relative}.admin-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;position:relative}.admin-bar{width:100%;min-width:4px;background:var(--accent-gradient);border-radius:3px 3px 0 0;transition:all .3s ease;opacity:.7}.admin-bar:hover{opacity:1}.admin-bar-label{position:absolute;bottom:-20px;font-size:.65rem;color:var(--text-muted);white-space:nowrap}.admin-horizontal-chart{display:flex;flex-direction:column;gap:10px}.admin-h-bar-row{display:flex;align-items:center;gap:12px}.admin-h-bar-label{width:160px;font-size:.82rem;color:var(--text-secondary);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-h-bar-track{flex:1;height:20px;background:var(--bg);border-radius:4px;overflow:hidden}.admin-h-bar{height:100%;background:var(--accent-gradient);border-radius:4px;transition:width .5s ease;opacity:.8}.admin-h-bar-value{font-size:.8rem;font-weight:700;color:var(--text-secondary);min-width:40px;text-align:right}.admin-line-chart{position:relative}.admin-line-svg{width:100%;height:200px}.admin-line-labels{display:flex;justify-content:space-between;margin-top:8px}.admin-line-labels span{font-size:.72rem;color:var(--text-muted)}.admin-bottom-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.admin-activity-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.admin-activity-list{display:flex;flex-direction:column}.admin-activity-item{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.admin-activity-item:last-child{border-bottom:none}.admin-activity-icon{width:32px;height:32px;border-radius:50%;background:var(--accent-dim);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.admin-activity-content p{font-size:.87rem;color:var(--text-secondary);line-height:1.4}.admin-activity-content strong{color:var(--text);font-weight:600}.admin-activity-time{font-size:.75rem;color:var(--text-muted);margin-top:2px;display:block}.admin-quick-links-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.admin-quick-links-card h3{font-size:1rem;font-weight:700;margin-bottom:16px}.admin-quick-links{display:flex;flex-direction:column;gap:4px}.admin-quick-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.admin-quick-link:hover{background:var(--surface-hover);color:var(--text)}.admin-quick-link span{flex:1;font-size:.9rem;font-weight:500}.admin-quick-link svg:last-child{color:var(--text-muted)}.admin-users-filters{display:flex;align-items:center;gap:12px;margin-bottom:20px}.admin-search-wrapper{flex:1;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);max-width:400px}.admin-search-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.admin-search-icon{color:var(--text-muted);flex-shrink:0}.admin-search-input{flex:1;padding:10px 0;background:none;border:none;outline:none;color:var(--text);font-size:.9rem;font-family:inherit}.admin-search-input::placeholder{color:var(--text-muted)}.admin-filter-group{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.admin-filter-select{padding:10px 14px;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.87rem;font-family:inherit;cursor:pointer}.admin-table-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}.admin-table{width:100%;border-collapse:collapse}.admin-table th{padding:14px 20px;text-align:left;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.admin-table td{padding:14px 20px;font-size:.9rem;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:var(--surface-hover)}.admin-user-cell{display:flex;align-items:center;gap:12px}.admin-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#fff;flex-shrink:0}.admin-user-name{font-weight:600;font-size:.9rem}.admin-user-email{font-size:.8rem;color:var(--text-muted)}.admin-role-badge{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;padding:4px 12px;border-radius:20px;text-transform:capitalize}.admin-role-admin{background:var(--accent-dim);color:var(--accent)}.admin-role-student{background:var(--surface-hover);color:var(--text-secondary)}.admin-role-select{padding:6px 10px;background:var(--bg);border:1px solid var(--accent);border-radius:var(--radius-xs);color:var(--text);font-size:.82rem;font-family:inherit;cursor:pointer}.admin-courses-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 10px;background:var(--surface-hover);border-radius:20px;font-size:.85rem;font-weight:600}.admin-last-login{font-size:.85rem;color:var(--text-secondary)}.admin-actions{display:flex;gap:4px}.admin-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-xs);background:none;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.admin-action-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-light)}.admin-empty{text-align:center;padding:48px 20px!important;color:var(--text-muted);font-size:.92rem}.admin-pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.admin-pagination-info{font-size:.85rem;color:var(--text-muted)}.admin-pagination-controls{display:flex;align-items:center;gap:4px}.admin-page-btn{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 4px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.admin-page-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:var(--border-light)}.admin-page-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.admin-page-btn:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 1024px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-charts-grid,.admin-bottom-grid{grid-template-columns:1fr}}@media (max-width: 768px){.admin-stats-grid{grid-template-columns:1fr}.admin-header{flex-direction:column}.admin-users-filters{flex-direction:column;align-items:stretch}.admin-search-wrapper{max-width:none}.admin-table-wrapper{overflow-x:auto}.admin-table{min-width:700px}.admin-pagination{flex-direction:column;gap:12px}}.glass{background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border)}.btn-gradient{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;background:var(--accent-gradient);border:none;border-radius:24px;color:#fff;font-size:.92rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast);font-family:inherit;position:relative;overflow:hidden}.btn-gradient:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .5s ease}.btn-gradient:hover:before{left:100%}.btn-gradient:hover{transform:translateY(-2px);box-shadow:0 8px 32px #6366f159}.card-lift{transition:all var(--transition-normal)}.card-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.btn-primary:active:not(:disabled),.btn-ghost:active:not(:disabled),.auth-submit-btn:active:not(:disabled){transform:scale(.98)}.hero-gradient{background:linear-gradient(135deg,var(--text) 0%,var(--accent) 50%,#a78bfa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=light] .hero-gradient{background:linear-gradient(135deg,#1e1b4b,#4f46e5,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}h1{letter-spacing:-.02em}h2{letter-spacing:-.015em}h3{letter-spacing:-.01em}.navbar{backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5)}[data-theme=light] .navbar{background:#ffffffd9}.admin-stat-card,.profile-stat-card,.profile-achievement-card{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-muted);animation:pageFadeIn .3s ease}.page-loading p{font-size:.92rem;font-weight:500}.profile-avatar-uploadable{position:relative;cursor:pointer;overflow:hidden}.profile-avatar-uploadable:hover .profile-avatar-overlay{opacity:1}.profile-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity var(--transition-fast);border-radius:50%}.profile-name-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.profile-plan-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 12px;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.plan-badge-free{background:var(--surface-hover);color:var(--text-muted)}.plan-badge-pro{background:linear-gradient(135deg,#6366f133,#8b5cf633);color:var(--accent-hover)}.plan-badge-enterprise{background:linear-gradient(135deg,#f59e0b33,#d9770633);color:#f59e0b}.profile-stat-card-ring{position:relative}.profile-stat-ring-wrap{position:relative;width:64px;height:64px;flex-shrink:0}.profile-stat-ring-wrap .progress-ring-svg{width:100%;height:100%}.profile-stat-ring-value{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;color:var(--text)}.profile-stat-card-ring .profile-stat-info .profile-stat-value{display:none}.sparkline-svg{display:block;margin-top:6px}.profile-stat-card-sparkline .profile-stat-info{display:flex;flex-direction:column}.streak-active-fire{animation:fireFlicker 1.5s ease-in-out infinite}@keyframes fireFlicker{0%,to{filter:drop-shadow(0 0 4px rgba(245,158,11,.4));transform:scale(1)}25%{filter:drop-shadow(0 0 8px rgba(245,158,11,.7));transform:scale(1.05) rotate(-2deg)}50%{filter:drop-shadow(0 0 12px rgba(245,158,11,.9));transform:scale(1.08)}75%{filter:drop-shadow(0 0 8px rgba(245,158,11,.7));transform:scale(1.05) rotate(2deg)}}.learning-debt-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.learning-debt-summary{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--bg);border-bottom:1px solid var(--border)}.learning-debt-count{font-size:.95rem;color:var(--text-secondary)}.learning-debt-count strong{color:var(--text)}.learning-debt-list{padding:8px 0}.learning-debt-item{display:flex;align-items:center;gap:14px;padding:14px 24px;transition:background var(--transition-fast)}.learning-debt-item:hover{background:var(--surface-hover)}.debt-urgency-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.debt-dot-overdue{background:var(--danger);box-shadow:0 0 6px #ef444466}.debt-dot-today{background:var(--warning);box-shadow:0 0 6px #f59e0b66}.debt-dot-upcoming{background:var(--success);box-shadow:0 0 6px #22c55e66}.debt-info{flex:1;display:flex;flex-direction:column;gap:2px}.debt-concept{font-size:.92rem;font-weight:600;color:var(--text)}.debt-date{font-size:.78rem;color:var(--text-muted)}.debt-badge{font-size:.72rem;font-weight:700;padding:3px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.debt-badge-overdue{background:var(--danger-dim);color:var(--danger)}.debt-badge-today{background:var(--warning-dim);color:var(--warning)}.debt-badge-upcoming{background:var(--success-dim);color:var(--success)}.profile-achievement-tabs{display:flex;gap:6px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}.achievement-tab{padding:7px 18px;border-radius:24px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-family:inherit}.achievement-tab:hover{border-color:var(--border-light);color:var(--text);background:var(--surface-hover)}.achievement-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.profile-achievement-counter{font-size:.82rem;font-weight:600;color:var(--text-muted);margin-left:auto;padding:2px 10px;background:var(--surface);border:1px solid var(--border);border-radius:16px}.achievement-locked{opacity:.5;filter:grayscale(.8)}.achievement-locked:hover{opacity:.7;filter:grayscale(.5)}.achievement-locked .profile-achievement-icon{background:var(--surface-hover);border:2px dashed var(--border-light)}.achievement-unlocked .profile-achievement-icon.achievement-icon-glow{box-shadow:0 0 16px #6366f14d,0 0 32px #8b5cf626;animation:achievementGlow 3s ease-in-out infinite}@keyframes achievementGlow{0%,to{box-shadow:0 0 16px #6366f14d,0 0 32px #8b5cf626}50%{box-shadow:0 0 24px #6366f180,0 0 48px #8b5cf640}}.profile-activity-timeline{position:relative;padding-left:24px}.profile-activity-timeline:before{content:"";position:absolute;left:11px;top:0;bottom:0;width:2px;background:var(--border)}.activity-timeline-item{display:flex;align-items:flex-start;gap:16px;padding:12px 0;position:relative}.activity-timeline-dot{width:24px;height:24px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:-24px;z-index:1;color:var(--accent)}.activity-timeline-content{flex:1;display:flex;flex-direction:column;gap:2px;padding-top:2px}.activity-timeline-text{font-size:.9rem;color:var(--text);line-height:1.4}.activity-timeline-time{font-size:.78rem;color:var(--text-muted)}.profile-empty-state{text-align:center;padding:48px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.profile-empty-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.profile-empty-icon-success{background:var(--success-dim);color:var(--success)}.profile-empty-state h3{font-size:1.15rem;font-weight:700;margin-bottom:6px}.profile-empty-state p{font-size:.9rem;color:var(--text-secondary)}.quick-stat-icon.streak{background:#f59e0b26;color:#f59e0b}.dashboard-progress-summary{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px}.progress-summary-stat{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;color:var(--text-secondary)}.progress-summary-stat strong{color:var(--text-primary);font-weight:700}.progress-summary-stat svg{color:var(--accent);flex-shrink:0}.dashboard-mastery-summary{margin-top:24px;padding:20px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:520px}.mastery-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.mastery-summary-label{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--text-primary)}.mastery-summary-label svg{color:var(--accent)}.mastery-summary-count{font-size:.85rem;color:var(--text-muted);font-weight:500}.mastery-summary-bar{width:100%;height:10px;background:var(--surface-hover);border-radius:5px;overflow:hidden}.mastery-summary-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#6366f1,#22c55e);transition:width .8s ease-out}.mastery-summary-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.mastery-stat-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.78rem;font-weight:500}.mastery-stat-pill.review,.mastery-stat-pill.streak{background:#f59e0b1f;color:#f59e0b}.next-steps-list{display:flex;flex-direction:column;gap:10px}.next-step-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast)}.next-step-card:hover{border-color:var(--border-light);background:var(--surface-hover);transform:translate(4px)}.next-step-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.next-step-icon.review{background:#f59e0b26;color:#f59e0b}.next-step-icon.continue{background:var(--accent-dim);color:var(--accent-hover)}.next-step-icon.start{background:var(--success-dim);color:var(--success)}.next-step-info{flex:1;min-width:0}.next-step-type{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.next-step-title{font-size:1rem;font-weight:600;line-height:1.3;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-step-subtitle{font-size:.82rem;color:var(--text-muted);margin:2px 0 0}.next-step-arrow{color:var(--text-muted);flex-shrink:0;transition:transform var(--transition-fast)}.next-step-card:hover .next-step-arrow{transform:translate(4px);color:var(--accent)}@media (max-width: 768px){.dashboard-progress-summary{flex-direction:column;gap:8px}.dashboard-mastery-summary{max-width:100%}.next-step-card{padding:14px 16px}.next-step-icon{width:38px;height:38px}}.streak-calendar{display:grid;grid-template-columns:repeat(30,1fr);gap:4px;padding:16px 24px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.streak-day{aspect-ratio:1;border-radius:3px;position:relative;transition:all var(--transition-fast)}.streak-day-active{background:var(--success);opacity:.85}.streak-day-active:hover{opacity:1;transform:scale(1.3);z-index:2}.streak-day-empty{background:var(--surface-hover);border:1px solid var(--border)}.streak-day-empty:hover{border-color:var(--border-light)}.streak-day-label{position:absolute;bottom:-16px;left:50%;transform:translate(-50%);font-size:.6rem;color:var(--text-muted);white-space:nowrap}.streak-summary{display:flex;align-items:center;gap:8px}.streak-active-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 14px;border-radius:20px;background:#f59e0b26;color:#f59e0b;font-size:.82rem;font-weight:600}.continue-learning-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.continue-learning-grid .continue-card{flex-direction:column}.continue-learning-grid .continue-thumb{width:100%;height:160px}.dashboard-debt-banner{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--warning-dim);border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-sm);margin-bottom:16px;color:var(--warning);font-size:.9rem}.dashboard-debt-banner strong{color:var(--text)}.dashboard-debt-banner .btn-primary{margin-left:auto;flex-shrink:0}.recommendation-reason{font-size:.85rem;color:var(--text-muted);margin-bottom:14px;margin-top:-10px}.recommended-card{border:1px dashed var(--accent)!important;background:linear-gradient(135deg,var(--surface),var(--accent-dim))!important}.recommended-tag{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:.75rem;font-weight:600;color:var(--accent);padding:2px 10px;background:var(--accent-dim);border-radius:12px}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.skeleton-thumb{width:100%;height:140px;background:var(--surface-hover)}.skeleton-body{padding:16px;display:flex;flex-direction:column;gap:10px}.skeleton-line{height:14px;border-radius:6px;background:var(--surface-hover)}.skeleton-line-title{width:80%}.skeleton-line-short{width:50%}.skeleton-pulse{animation:skeletonPulse 1.5s ease-in-out infinite}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.skeleton-stat-card{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.skeleton-stat-icon{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--surface-hover)}.skeleton-stat-lines{flex:1;display:flex;flex-direction:column;gap:8px}.stagger-section .stagger-item{animation:staggerFadeUp .4s ease both;animation-delay:calc(var(--i, 0) * .06s)}@keyframes staggerFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.dashboard-page{animation:pageSlideUp .35s ease}.btn-primary:hover:not(:disabled){transform:translateY(-1px) scale(1.02);box-shadow:var(--shadow-accent)}.btn-ghost:hover{transform:translateY(-1px)}.video-card:hover,.continue-card:hover,.dashboard-enrolled-card:hover,.dashboard-nav-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:#6366f14d}.rating-star{transition:color .15s ease,transform .15s ease}.rating-star:hover{transform:scale(1.25);color:#f59e0b}.toggle-switch{width:44px;height:24px;background:var(--border);border-radius:12px;position:relative;cursor:pointer;transition:background .3s ease;border:none}.toggle-switch.active{background:var(--accent)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 4px #0003}.toggle-switch.active:after{transform:translate(20px)}.empty-state-card{text-align:center;padding:48px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.empty-state-illustration{width:100px;height:100px;margin:0 auto 20px}.empty-state-svg{width:100%;height:100%}.empty-state-card h3{font-size:1.15rem;font-weight:700;margin-bottom:6px}.empty-state-card p{font-size:.9rem;color:var(--text-secondary);margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto}.toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item{display:flex;align-items:center;gap:10px;padding:14px 16px 18px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:320px;max-width:440px;pointer-events:all;animation:toastSlideIn .35s cubic-bezier(.34,1.56,.64,1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;overflow:hidden}@keyframes toastSlideIn{0%{opacity:0;transform:translate(60px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.toast-exit{animation:toastSlideOut .3s ease forwards}@keyframes toastSlideOut{to{opacity:0;transform:translate(80px) scale(.95)}}.toast-progress-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff0d}.toast-progress-bar{height:100%;transition:width .1s linear;border-radius:0 3px 0 0}.toast-progress-success{background:var(--success)}.toast-progress-error{background:var(--danger)}.toast-progress-warning{background:var(--warning)}.toast-progress-info{background:var(--accent)}@media (max-width: 768px){.streak-calendar{grid-template-columns:repeat(15,1fr);gap:3px;padding:12px 16px}.streak-calendar .streak-day:nth-child(-n+15){display:none}.continue-learning-grid{grid-template-columns:1fr}.learning-debt-summary{flex-direction:column;gap:12px;align-items:flex-start}.dashboard-debt-banner{flex-wrap:wrap}.profile-activity-timeline{padding-left:20px}.profile-achievement-tabs{gap:4px}.achievement-tab{padding:5px 12px;font-size:.78rem}}@media (max-width: 480px){.streak-calendar{grid-template-columns:repeat(10,1fr)}.streak-calendar .streak-day:nth-child(-n+20){display:none}}.course-detail-body{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:flex-start;padding-top:32px}.course-detail-main{min-width:0}.course-detail-sidebar{position:sticky;top:80px}.section-heading-v2{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:700;margin-bottom:16px;color:var(--text)}.section-heading-v2 svg{color:var(--accent);flex-shrink:0}.heading-count{font-size:.78rem;font-weight:600;background:var(--accent-dim);color:var(--accent);padding:2px 10px;border-radius:12px;margin-left:auto}.preview-hero-btn{display:inline-flex;align-items:center;gap:8px;margin-left:12px}.course-about-text{font-size:.95rem;color:var(--text-secondary);line-height:1.8}.socratic-outcomes-section{margin-bottom:40px;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.socratic-outcomes-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}.socratic-outcomes-header>svg{color:var(--accent);flex-shrink:0;margin-top:2px}.socratic-outcomes-header h3{font-size:1.15rem;font-weight:700;margin:0;color:var(--text)}.socratic-outcomes-sub{font-size:.85rem;color:var(--text-muted);margin-top:4px}.socratic-loading{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.88rem;padding:20px 0}.socratic-questions-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.socratic-question-card{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition-fast)}.socratic-question-card:hover{border-color:var(--accent);box-shadow:0 2px 12px #6366f11a}.socratic-question-number{color:var(--accent);flex-shrink:0;margin-top:1px}.socratic-question-card p{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin:0}.who-is-this-for-section{margin-bottom:40px}.persona-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.persona-column{padding:20px;border-radius:var(--radius);border:1px solid var(--border)}.persona-for{background:#22c55e0a;border-color:#22c55e26}.persona-not{background:#ef44440a;border-color:#ef444426}.persona-column-title{display:flex;align-items:center;gap:8px;font-size:.92rem;font-weight:700;margin-bottom:14px}.persona-for .persona-column-title{color:var(--success)}.persona-not .persona-column-title{color:var(--danger)}.persona-column ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.persona-column li{display:flex;align-items:flex-start;gap:8px;font-size:.88rem;color:var(--text-secondary);line-height:1.5}.persona-check{color:var(--success);flex-shrink:0;margin-top:2px}.persona-x{color:var(--danger);flex-shrink:0;margin-top:2px}.accomplishments-section{margin-bottom:40px;padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.accomplishments-subtitle{font-size:.9rem;color:var(--text-muted);margin-bottom:20px}.accomplishments-journey{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}.accomplishment-item{display:flex;align-items:center;gap:14px;font-size:.9rem;color:var(--text-secondary)}.accomplishment-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--accent-dim);color:var(--accent);flex-shrink:0}.journey-progress-bar{padding-top:8px}.journey-track{position:relative;display:flex;justify-content:space-between;align-items:center;padding:0 8px}.journey-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);opacity:.5;z-index:1}.journey-dot:first-child{opacity:1}.journey-line{position:absolute;top:50%;left:12px;right:12px;height:2px;background:linear-gradient(to right,var(--accent),var(--accent-dim));transform:translateY(-50%)}.journey-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:.75rem;color:var(--text-muted)}.curriculum-section{margin-bottom:40px}.curriculum-list{display:flex;flex-direction:column;gap:4px}.curriculum-item{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--transition-fast)}.curriculum-item:hover{border-color:#6366f14d}.curriculum-item.expanded{border-color:#6366f133;box-shadow:0 2px 8px #0000000f}.curriculum-item.preview-available{border-left:3px solid var(--accent)}.curriculum-item-header{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;transition:background var(--transition-fast)}.curriculum-item-header:hover{background:var(--surface)}.curriculum-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--surface);border:1px solid var(--border);font-size:.82rem;font-weight:700;color:var(--text-muted);flex-shrink:0}.curriculum-title-area{flex:1;min-width:0}.curriculum-title-area h4{font-size:.92rem;font-weight:600;color:var(--text);margin:0;line-height:1.3}.curriculum-meta{display:flex;align-items:center;gap:10px;margin-top:4px}.curriculum-duration{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-muted)}.preview-badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;color:var(--accent);background:var(--accent-dim);padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px}.curriculum-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:none;background:var(--surface);color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast);font-family:inherit}.curriculum-toggle:hover{background:var(--accent-dim);color:var(--accent)}.curriculum-item-body{padding:0 16px 16px 62px;animation:fadeSlideDown .2s ease}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.curriculum-description{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin-bottom:12px}.curriculum-concepts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px}.curriculum-concepts-label{font-size:.78rem;color:var(--text-muted);font-weight:600}.concept-chip{display:inline-block;padding:3px 10px;font-size:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text-secondary)}.curriculum-ai-note{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--accent);margin-bottom:12px;padding:8px 12px;background:var(--accent-dim);border-radius:var(--radius)}.curriculum-play-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:.82rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;font-family:inherit;transition:all var(--transition-fast)}.curriculum-play-btn:hover{background:var(--accent-hover);box-shadow:0 2px 8px #6366f14d}.course-info-card.enhanced{padding:0;overflow:hidden}.info-card-institution{display:flex;align-items:center;gap:10px;padding:18px 20px;background:var(--accent-dim);border-bottom:1px solid var(--border);font-weight:700;font-size:.9rem;color:var(--text)}.info-card-institution svg{color:var(--accent)}.info-card-level{padding:14px 20px;text-align:center;border-bottom:1px solid var(--border)}.level-badge{display:inline-block;padding:5px 18px;border-radius:20px;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.info-card-details{padding:8px 20px}.info-detail-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.info-detail-row:last-child{border-bottom:none}.info-detail-row svg{color:var(--text-muted);flex-shrink:0}.info-detail-label{font-size:.82rem;color:var(--text-muted);flex:1}.info-detail-value{font-size:.85rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:4px}.info-detail-value.ai-included{color:var(--accent)}.info-card-enroll{margin:16px 20px;width:calc(100% - 40px);justify-content:center}.info-card-enroll.enrolled-btn{background:var(--success)}.info-card-perks{padding:0 20px 16px;display:flex;flex-direction:column;gap:8px}.perk-item{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text-secondary)}.perk-item svg{color:var(--success);flex-shrink:0}.info-card-value{padding:14px 20px;margin:0;background:#6366f10d;border-top:1px solid var(--border);font-size:.82rem;color:var(--text-muted);text-align:center;font-style:italic}.upgrade-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.upgrade-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:480px;width:100%;box-shadow:var(--shadow-xl);animation:modalSlideUp .3s ease;overflow:hidden}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.upgrade-modal-header{text-align:center;padding:32px 32px 20px}.upgrade-modal-icon{width:64px;height:64px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#fff;box-shadow:0 4px 20px #6366f14d}.upgrade-modal-header h2{font-size:1.25rem;font-weight:700;margin:0 0 8px;color:var(--text)}.upgrade-modal-header p{font-size:.9rem;color:var(--text-secondary);margin:0;line-height:1.5}.upgrade-modal-benefits{padding:0 32px 24px;display:flex;flex-direction:column;gap:12px}.upgrade-benefit-item{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--text)}.upgrade-benefit-item svg{color:var(--success);flex-shrink:0}.upgrade-modal-actions{padding:0 32px 32px;display:flex;flex-direction:column;gap:10px}.upgrade-modal-cta{width:100%;justify-content:center;font-size:1rem;padding:14px 24px;background:var(--accent-gradient);border:none;box-shadow:var(--shadow-accent)}.upgrade-modal-cta:hover{transform:translateY(-1px);box-shadow:0 6px 24px #6366f159}.upgrade-modal-dismiss{width:100%;justify-content:center;font-size:.9rem;color:var(--text-muted)}.tutor-onboarding{padding:8px 0}.onboarding-message{display:flex;align-items:flex-start;gap:10px;padding:6px 0;animation:onboardingFadeIn .4s ease forwards;opacity:0}@keyframes onboardingFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.onboarding-avatar{background:var(--accent-dim);color:var(--accent)}.onboarding-bubble{background:var(--accent-dim)!important;color:var(--text)!important;border:1px solid rgba(99,102,241,.15)!important;padding:12px 16px!important;border-radius:12px!important;font-size:.9rem!important;line-height:1.5!important;max-width:85%}.onboarding-typing{padding:12px 20px!important}.onboarding-dismiss{display:flex;justify-content:center;padding:12px 0;animation:onboardingFadeIn .4s ease forwards}.onboarding-dismiss-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:var(--accent);color:#fff;border:none;border-radius:20px;font-size:.88rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--transition-fast)}.onboarding-dismiss-btn:hover{background:var(--accent-hover);box-shadow:0 3px 12px #6366f14d;transform:translateY(-1px)}@media (max-width: 900px){.course-detail-body{grid-template-columns:1fr;gap:24px}.course-detail-sidebar{position:static;order:-1}.socratic-questions-grid,.persona-columns{grid-template-columns:1fr}.curriculum-item-body{padding-left:16px}}.landing-page{overflow-x:hidden}.landing-hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:80px 40px 24px;overflow:hidden}.landing-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.landing-hero-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.4;animation:orbFloat 20s ease-in-out infinite}.landing-hero-orb.orb-1{width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,.4),transparent 70%);top:-10%;right:-5%;animation-delay:0s}.landing-hero-orb.orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(139,92,246,.3),transparent 70%);bottom:-15%;left:-10%;animation-delay:-7s}.landing-hero-orb.orb-3{width:350px;height:350px;background:radial-gradient(circle,rgba(34,197,94,.2),transparent 70%);top:40%;left:50%;animation-delay:-14s}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}25%{transform:translate(40px,-30px) scale(1.05)}50%{transform:translate(-20px,40px) scale(.95)}75%{transform:translate(30px,20px) scale(1.02)}}.landing-hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(99,102,241,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.03) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black,transparent);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,black,transparent)}.landing-hero-content{position:relative;z-index:1;max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;width:100%}.landing-hero-text{max-width:600px}.landing-hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:var(--accent-dim);border:1px solid rgba(99,102,241,.2);border-radius:24px;font-size:.82rem;font-weight:600;color:var(--accent);margin-bottom:24px;animation:landingFadeInUp .6s ease}.landing-hero-headline{font-size:3rem;font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--text);margin-bottom:16px;animation:landingFadeInUp .6s ease .1s both}.landing-gradient-text{background:linear-gradient(135deg,#6366f1,#8b5cf6 40%,#a78bfa,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=light] .landing-gradient-text{background:linear-gradient(135deg,#4f46e5,#7c3aed 40%,#6d28d9,#5b21b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero-sub{font-size:1.05rem;line-height:1.6;color:var(--text-secondary);margin-bottom:24px;max-width:520px;animation:landingFadeInUp .6s ease .2s both}.landing-hero-ctas{display:flex;gap:16px;flex-wrap:wrap;animation:landingFadeInUp .6s ease .3s both}.landing-cta-primary{display:inline-flex;align-items:center;gap:10px;padding:16px 36px;background:var(--accent-gradient);border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:650;cursor:pointer;transition:all .25s ease;font-family:inherit;text-decoration:none;box-shadow:0 4px 20px #6366f14d}.landing-cta-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 30px #6366f173;color:#fff}.landing-cta-primary:active{transform:scale(.98)}.landing-cta-arrow{transition:transform .25s ease}.landing-cta-primary:hover .landing-cta-arrow{transform:translate(4px)}.landing-cta-secondary{display:inline-flex;align-items:center;gap:8px;padding:16px 28px;background:transparent;border:1px solid var(--border);border-radius:14px;color:var(--text-secondary);font-size:.95rem;font-weight:550;cursor:pointer;transition:all .25s ease;font-family:inherit}.landing-cta-secondary:hover{background:var(--surface);color:var(--text);border-color:var(--border-light)}.landing-cta-large{padding:20px 44px;font-size:1.1rem;border-radius:16px}.landing-hero-visual{display:flex;justify-content:center;animation:landingFadeInUp .8s ease .4s both}.landing-hero-mini-demo{width:100%;max-width:440px;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--glass-border);border-radius:20px;overflow:hidden;box-shadow:0 20px 60px #0000004d,0 0 0 1px #ffffff0d inset}.mini-demo-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface);font-weight:600;font-size:.88rem;color:var(--text)}.mini-demo-header svg{color:var(--accent)}.mini-demo-live{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:var(--success)}.mini-demo-live-dot{width:8px;height:8px;background:var(--success);border-radius:50%;animation:livePulse 1.5s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.mini-demo-msg{padding:12px 20px}.mini-demo-msg p{padding:10px 16px;border-radius:14px;font-size:.88rem;line-height:1.5;color:var(--text)}.mini-demo-msg.tutor p{background:var(--accent-dim);border:1px solid rgba(99,102,241,.15);border-radius:14px 14px 14px 4px}.mini-demo-msg.student p{background:var(--surface);border:1px solid var(--border);border-radius:14px 14px 4px;margin-left:auto;max-width:80%;text-align:right}.mini-demo-footer{padding:12px 20px 16px;text-align:center}.mini-demo-footer span{font-size:.8rem;font-weight:500;color:var(--accent);font-style:italic}.landing-proof-strip{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:20px;padding:20px;margin-top:32px;border-top:1px solid var(--border);flex-wrap:wrap}.landing-proof-item{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:550;color:var(--text-secondary)}.landing-proof-item svg{color:var(--accent);flex-shrink:0}.landing-proof-divider{width:4px;height:4px;background:var(--border-light);border-radius:50%}.landing-section{padding:100px 40px;position:relative}.landing-section-inner{max-width:1140px;margin:0 auto}.landing-section-heading{font-size:2.8rem;font-weight:800;line-height:1.12;letter-spacing:-.02em;color:var(--text);text-align:center;margin-bottom:20px}.landing-section-sub{font-size:1.1rem;color:var(--text-secondary);text-align:center;max-width:600px;margin:0 auto 50px;line-height:1.6}.landing-problem{background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.landing-problem-body{font-size:1.08rem;line-height:1.8;color:var(--text-secondary);text-align:center;max-width:680px;margin:0 auto 24px}.landing-problem-punchline{color:var(--text)}.landing-problem-punchline strong{color:var(--accent)}.landing-problem-comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:50px}.landing-problem-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;transition:all .3s ease}.landing-problem-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.landing-problem-card.active{border-color:#6366f14d;background:linear-gradient(135deg,var(--surface),rgba(99,102,241,.05))}.landing-problem-card-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;background:var(--danger-dim);color:var(--danger)}.landing-problem-card-icon.active{background:var(--success-dim);color:var(--success)}.landing-problem-card h4{font-size:1.15rem;font-weight:700;color:var(--text);margin-bottom:8px}.landing-problem-card>p{font-size:.92rem;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.landing-problem-stat{display:flex;align-items:center;gap:12px}.landing-problem-stat span{font-size:.82rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.landing-problem-bar{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.landing-problem-bar-fill{height:100%;border-radius:4px;transition:width 1.5s ease}.landing-problem-bar-fill.passive{background:var(--danger)}.landing-problem-bar-fill.active{background:linear-gradient(90deg,var(--accent),var(--success))}.landing-problem-until{text-align:center;font-size:1.6rem;font-weight:800;color:var(--accent);margin-top:48px;letter-spacing:-.01em}.landing-steps{display:flex;align-items:flex-start;gap:20px;margin-top:60px}.landing-step{flex:1;text-align:center;padding:32px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all .3s ease;position:relative}.landing-step:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#6366f133}.landing-step-number{position:absolute;top:-14px;left:50%;transform:translate(-50%);width:28px;height:28px;background:var(--accent-gradient);border-radius:50%;color:#fff;font-size:.82rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #6366f14d}.landing-step-icon{width:64px;height:64px;margin:16px auto;background:var(--accent-dim);border-radius:16px;display:flex;align-items:center;justify-content:center;color:var(--accent)}.landing-step h3{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:10px}.landing-step p{font-size:.9rem;color:var(--text-secondary);line-height:1.6}.landing-step-connector{display:flex;align-items:center;padding-top:60px;color:var(--text-muted)}.landing-demo-section{background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.tutor-demo{max-width:680px;margin:50px auto 60px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl)}.tutor-demo-header{display:flex;align-items:center;gap:8px;padding:14px 20px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.tutor-demo-dot{width:12px;height:12px;border-radius:50%}.tutor-demo-dot.red{background:#ef4444}.tutor-demo-dot.yellow{background:#f59e0b}.tutor-demo-dot.green{background:#22c55e}.tutor-demo-title{margin-left:12px;font-size:.82rem;font-weight:600;color:var(--text-secondary)}.tutor-demo-video-bar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--bg);border-bottom:1px solid var(--border);position:relative}.tutor-demo-video-progress{position:absolute;bottom:0;left:0;height:3px;width:48%;background:var(--accent-gradient);border-radius:0 2px 2px 0}.tutor-demo-video-label{font-size:.82rem;font-weight:600;color:var(--text);flex:1}.tutor-demo-video-time{font-size:.78rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace}.tutor-demo-chat{padding:20px;min-height:260px;display:flex;flex-direction:column;gap:16px}.tutor-demo-msg{display:flex;gap:10px;align-items:flex-start;animation:landingFadeInUp .5s ease both}.tutor-demo-msg.student{flex-direction:row-reverse}.tutor-demo-msg-avatar{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.7rem;font-weight:700}.tutor-demo-msg.tutor .tutor-demo-msg-avatar{background:var(--accent-dim);color:var(--accent)}.tutor-demo-msg.student .tutor-demo-msg-avatar{background:var(--surface-hover);color:var(--text-secondary)}.tutor-demo-msg-bubble{padding:12px 16px;border-radius:14px;font-size:.88rem;line-height:1.55;max-width:80%}.tutor-demo-msg.tutor .tutor-demo-msg-bubble{background:var(--accent-dim);border:1px solid rgba(99,102,241,.15);color:var(--text);border-radius:14px 14px 14px 4px}.tutor-demo-msg.student .tutor-demo-msg-bubble{background:var(--surface-hover);border:1px solid var(--border);color:var(--text);border-radius:14px 14px 4px}.tutor-demo-typing{display:flex;align-items:center;gap:8px;padding:8px 16px}.tutor-demo-typing-dots{display:flex;gap:4px;padding:8px 12px;background:var(--surface);border-radius:12px;border:1px solid var(--border)}.tutor-demo-typing-dots span{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:typingDot 1.4s ease-in-out infinite}.tutor-demo-typing-dots span:nth-child(2){animation-delay:.2s}.tutor-demo-typing-dots span:nth-child(3){animation-delay:.4s}.typewriter-cursor{color:var(--accent);animation:cursorBlink 1s step-end infinite;font-weight:300;margin-left:1px}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes typingDot{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1.1)}}.tutor-demo-score{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border);background:var(--success-dim);font-size:.85rem;font-weight:600;color:var(--success);animation:landingFadeInUp .5s ease both}.tutor-demo-score-up{background:var(--success);color:#fff;padding:2px 8px;border-radius:6px;font-size:.78rem;font-weight:700;margin-left:auto}.landing-tutor-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.landing-tutor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;transition:all .3s ease}.landing-tutor-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#6366f133}.landing-tutor-card .ltc-icon{color:var(--accent);margin-bottom:12px}.landing-tutor-card h4{font-size:.95rem;font-weight:700;color:var(--text);margin-bottom:8px}.landing-tutor-card p{font-size:.85rem;color:var(--text-secondary);line-height:1.55;font-style:italic}.landing-courses-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}.landing-course-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;position:relative;overflow:hidden;transition:all .3s ease;cursor:pointer;display:block;text-decoration:none}.landing-course-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#6366f133}.landing-course-card-accent{position:absolute;top:0;left:0;right:0;height:3px}.landing-course-dept{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:8px}.landing-course-card h4{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.landing-course-meta{display:flex;gap:16px;font-size:.82rem;color:var(--text-muted)}.landing-course-meta span{display:flex;align-items:center;gap:4px}.landing-course-meta svg{color:var(--accent)}.landing-course-card.skeleton{pointer-events:none}.skeleton-bar{background:var(--border);border-radius:4px;animation:skeletonPulse 1.5s ease-in-out infinite}@keyframes skeletonPulse{0%,to{opacity:.4}50%{opacity:.8}}.landing-courses-cta{text-align:center;margin-top:40px}.landing-features{background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:50px}.landing-feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;transition:all .3s ease}.landing-feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#6366f126}.landing-feature-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.landing-feature-card h4{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:8px}.landing-feature-card p{font-size:.9rem;color:var(--text-secondary);line-height:1.6}.landing-testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px}.landing-testimonial-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;position:relative;transition:all .3s ease}.landing-testimonial-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.landing-testimonial-quote{font-size:3.5rem;font-weight:800;line-height:1;color:var(--accent);opacity:.3;position:absolute;top:16px;left:24px;pointer-events:none}.landing-testimonial-card>p{font-size:.92rem;color:var(--text-secondary);line-height:1.65;margin-bottom:24px;margin-top:16px;font-style:italic}.landing-testimonial-author{display:flex;align-items:center;gap:12px}.landing-testimonial-avatar{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;flex-shrink:0}.landing-testimonial-author strong{display:block;font-size:.88rem;color:var(--text)}.landing-testimonial-author span{display:block;font-size:.8rem;color:var(--text-muted)}.landing-pricing{background:var(--bg-elevated);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.landing-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px;align-items:start}.landing-pricing-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 28px;position:relative;transition:all .3s ease}.landing-pricing-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.landing-pricing-card.highlighted{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 30px #6366f133;transform:scale(1.03)}.landing-pricing-card.highlighted:hover{transform:scale(1.03) translateY(-3px);box-shadow:0 0 0 1px var(--accent),0 12px 40px #6366f14d}.landing-pricing-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:var(--accent-gradient);color:#fff;padding:4px 16px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.landing-pricing-card h3{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:12px}.landing-pricing-price{display:flex;align-items:baseline;gap:4px;margin-bottom:8px}.landing-pricing-amount{font-size:2.8rem;font-weight:800;color:var(--text);letter-spacing:-.02em}.landing-pricing-period{font-size:.92rem;color:var(--text-muted);font-weight:500}.landing-pricing-desc{font-size:.88rem;color:var(--text-secondary);margin-bottom:24px;line-height:1.4}.landing-pricing-features{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:10px}.landing-pricing-features li{display:flex;align-items:center;gap:10px;font-size:.88rem}.landing-pricing-features li.included{color:var(--text)}.landing-pricing-features li.included svg{color:var(--success);flex-shrink:0}.landing-pricing-features li.excluded{color:var(--text-muted);opacity:.5}.landing-pricing-features li.excluded svg{color:var(--text-muted);flex-shrink:0}.landing-pricing-cta{display:block;width:100%;padding:14px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text);font-size:.95rem;font-weight:650;cursor:pointer;transition:all .25s ease;font-family:inherit;text-align:center}.landing-pricing-cta:hover{background:var(--surface-hover);border-color:var(--border-light)}.landing-pricing-cta.primary{background:var(--accent-gradient);border-color:transparent;color:#fff;box-shadow:0 4px 16px #6366f140}.landing-pricing-cta.primary:hover{box-shadow:0 8px 24px #6366f166;transform:translateY(-1px)}.landing-pricing-footnote{text-align:center;font-size:.82rem;color:var(--text-muted);margin-top:28px}.landing-faq-list{max-width:740px;margin:50px auto 0;display:flex;flex-direction:column;gap:8px}.landing-faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all .3s ease}.landing-faq-item:hover{border-color:var(--border-light)}.landing-faq-item.open{border-color:#6366f133;box-shadow:var(--shadow-sm)}.landing-faq-question{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:20px 24px;background:none;border:none;color:var(--text);font-size:.95rem;font-weight:650;cursor:pointer;text-align:left;font-family:inherit;line-height:1.4}.landing-faq-chevron{flex-shrink:0;color:var(--text-muted);transition:transform .3s ease}.landing-faq-chevron.rotated{transform:rotate(180deg);color:var(--accent)}.landing-faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease}.landing-faq-answer.expanded{max-height:300px}.landing-faq-answer p{padding:0 24px 20px;font-size:.9rem;color:var(--text-secondary);line-height:1.7}.landing-final-cta{position:relative;text-align:center;padding:120px 40px;overflow:hidden}.landing-final-cta-bg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:0}.landing-final-cta .landing-section-inner{position:relative;z-index:1}.landing-final-cta-actions{display:flex;justify-content:center;margin-top:40px}@keyframes landingFadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.site-footer{background:var(--bg-elevated);border-top:1px solid var(--border);padding:60px 40px 32px}.site-footer-inner{max-width:1140px;margin:0 auto}.site-footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}.site-footer-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.08rem;color:var(--text);margin-bottom:12px;text-decoration:none}.site-footer-logo svg{color:var(--accent)}.site-footer-tagline{font-size:.88rem;color:var(--text-secondary);line-height:1.6;max-width:280px;margin-bottom:20px}.site-footer-social{display:flex;gap:10px}.site-footer-social-link{width:36px;height:36px;border-radius:10px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s ease;text-decoration:none}.site-footer-social-link:hover{background:var(--accent-dim);border-color:#6366f14d;color:var(--accent);transform:translateY(-2px)}.site-footer-col h4{font-size:.82rem;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}.site-footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.site-footer-col a{font-size:.88rem;color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.site-footer-col a:hover{color:var(--accent)}.site-footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:28px;border-top:1px solid var(--border);font-size:.82rem;color:var(--text-muted)}.site-footer-made strong{color:var(--accent)}@media (max-width: 1024px){.landing-hero-content{grid-template-columns:1fr;gap:40px;text-align:center}.landing-hero-text{max-width:100%}.landing-hero-sub{max-width:100%;margin-left:auto;margin-right:auto}.landing-hero-ctas{justify-content:center}.landing-hero-headline{font-size:2.5rem}.landing-section-heading{font-size:2.2rem}.landing-tutor-cards,.landing-courses-grid,.landing-features-grid{grid-template-columns:repeat(2,1fr)}.landing-pricing-grid{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}.landing-pricing-card.highlighted{transform:none}.landing-pricing-card.highlighted:hover{transform:translateY(-3px)}.site-footer-top{grid-template-columns:1fr 1fr;gap:32px}.site-footer-brand{grid-column:1 / -1}}@media (max-width: 768px){.landing-hero{padding:80px 20px 40px;min-height:auto}.landing-hero-headline{font-size:2.2rem}.landing-hero-ctas{flex-direction:column;align-items:center}.landing-cta-primary,.landing-cta-secondary{width:100%;justify-content:center}.landing-section{padding:60px 20px}.landing-section-heading{font-size:1.8rem}.landing-problem-comparison{grid-template-columns:1fr}.landing-steps{flex-direction:column;gap:32px}.landing-step-connector{display:none}.landing-tutor-cards,.landing-courses-grid,.landing-features-grid,.landing-testimonials-grid{grid-template-columns:1fr}.landing-proof-strip{gap:12px}.landing-proof-divider{display:none}.site-footer{padding:40px 20px 24px}.site-footer-top{grid-template-columns:1fr 1fr;gap:24px}.site-footer-bottom{flex-direction:column;gap:8px;text-align:center}.landing-final-cta{padding:80px 20px}.landing-cta-large{padding:16px 32px;font-size:1rem}}.notebook-view-toggle{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.notebook-view-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.notebook-view-toggle-btn:hover{color:var(--text);background:var(--surface-hover)}.notebook-view-toggle-btn.active{color:var(--accent);background:var(--accent-dim)}.nb-book-layout{display:grid;grid-template-columns:220px 1fr;gap:12px;height:calc(88vh - 80px);max-height:800px;position:relative;overflow:hidden}.nb-drawer-toggle{display:none;position:absolute;top:10px;left:10px;z-index:110;width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001f;transition:background .15s}.nb-drawer-toggle:hover{background:var(--accent-dim);color:var(--accent)}.nb-drawer-backdrop{display:none}.nb-index-panel{width:220px;min-width:220px;background:var(--bg-elevated);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;border-radius:12px;box-shadow:0 2px 12px #00000014}.nb-index-search{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text-muted)}.nb-index-search-input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:.82rem;font-family:inherit}.nb-index-search-input::placeholder{color:var(--text-muted)}.nb-index-title{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.nb-index-count{margin-left:auto;font-weight:400;font-size:.7rem}.nb-index-list{flex:1;overflow-y:auto;padding:4px 0}.nb-index-list::-webkit-scrollbar{width:4px}.nb-index-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.nb-index-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:8px 14px;background:none;border:none;border-left:3px solid transparent;cursor:pointer;text-align:left;font-family:inherit;color:var(--text-secondary);transition:all .1s}.nb-index-item:hover{background:var(--surface-hover);color:var(--text)}.nb-index-item.active{background:var(--accent-dim);border-left-color:var(--accent);color:var(--text)}.nb-index-num{font-size:.7rem;font-weight:700;color:var(--accent);min-width:22px;text-align:right;padding-top:2px}.nb-index-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.nb-index-course{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.nb-index-lecture{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb-index-empty{padding:16px;text-align:center;font-size:.82rem;color:var(--text-muted)}.nb-book-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 12px;perspective:2200px;min-width:0;overflow:hidden}.nb-book{position:relative;width:100%;max-width:1000px;height:calc(80vh - 100px);max-height:700px;min-height:450px;perspective:2200px;transform-style:preserve-3d;filter:drop-shadow(0 8px 20px rgba(0,0,0,.25)) drop-shadow(0 2px 6px rgba(0,0,0,.15))}.nb-book-spine{position:absolute;left:50%;top:0;bottom:0;width:8px;transform:translate(-50%);background:linear-gradient(to right,rgba(0,0,0,.18),rgba(0,0,0,.06) 25%,transparent 50%,rgba(0,0,0,.06) 75%,rgba(0,0,0,.18));z-index:10;pointer-events:none}.nb-book-spread{display:flex;width:100%;height:100%;position:relative;transform-style:preserve-3d}.nb-book-cover-spread{align-items:stretch}.nb-inside-cover{background:radial-gradient(ellipse at 30% 40%,rgba(180,140,90,.15),transparent 60%),radial-gradient(ellipse at 70% 60%,rgba(120,100,60,.1),transparent 50%),repeating-conic-gradient(from 0deg at 50% 50%,rgba(160,130,80,.04) 0deg 10deg,transparent 10deg 20deg),linear-gradient(135deg,#e8dcc0,#d8ccb0,#e0d4b8 60%,#d4c8a8)!important;cursor:default}.nb-inside-cover-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 20%,rgba(139,90,43,.08) 0%,transparent 40%),radial-gradient(circle at 80% 80%,rgba(139,90,43,.06) 0%,transparent 40%),radial-gradient(circle at 50% 50%,rgba(139,90,43,.04) 0%,transparent 60%),repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(139,90,43,.03) 8px,rgba(139,90,43,.03) 9px),repeating-linear-gradient(-45deg,transparent,transparent 8px,rgba(139,90,43,.03) 8px,rgba(139,90,43,.03) 9px);pointer-events:none;z-index:1}.nb-inside-cover-label{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-family:Kalam,cursive;font-size:.8rem;color:#b8a88a;z-index:2}.nb-cover{flex:1;border-radius:0 12px 12px 0;background:linear-gradient(145deg,#2c1810,#4a2c1a,#3d1f0f 60%,#2c1810);box-shadow:inset 0 1px #ffffff0d,inset 0 -1px #0000004d;position:relative;overflow:hidden;cursor:pointer;transition:box-shadow .2s}.nb-cover:hover{box-shadow:inset 0 1px #ffffff0d,inset 0 -1px #0000004d,0 0 0 2px #ffffff1a}[data-theme=light] .nb-cover{background:linear-gradient(145deg,#1a3a5c,#2c5f8a,#1e4a6e 60%,#1a3a5c)}.nb-cover-inner{display:flex;flex-direction:column;height:100%;padding:32px;position:relative}.nb-cover-inner-mini{padding:20px}.nb-cover-as-page{background:linear-gradient(145deg,#2c1810,#4a2c1a,#3d1f0f 60%,#2c1810)!important}[data-theme=light] .nb-cover-as-page{background:linear-gradient(145deg,#1a3a5c,#2c5f8a,#1e4a6e 60%,#1a3a5c)!important}.nb-cover-binding{position:absolute;left:0;top:0;bottom:0;width:28px;display:flex;flex-direction:column;justify-content:space-evenly;padding:36px 0}.nb-cover-binding-line{width:100%;height:3px;background:#ffffff14;border-radius:1px}.nb-cover-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding-left:16px;text-align:center}.nb-cover-icon{width:80px;height:80px;border-radius:50%;background:#ffffff14;border:2px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;color:#ffffffb3;margin-bottom:6px}.nb-cover-title{font-family:Kalam,cursive;font-size:2rem;font-weight:700;color:#ffffffe6;letter-spacing:.5px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.nb-cover-divider{width:120px;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);margin:2px 0}.nb-cover-name{font-family:Kalam,cursive;font-size:1.2rem;font-weight:400;color:#ffffffa6}.nb-cover-dates{font-size:.82rem;color:#fff6;margin-top:2px}.nb-cover-pages{font-size:.78rem;color:#ffffff59;margin-top:6px;padding:4px 16px;border:1px solid rgba(255,255,255,.1);border-radius:20px}.nb-cover-bottom-decoration{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-left:16px}.nb-cover-stripe{width:100%;height:4px;background:#ffffff14;border-radius:2px}.nb-cover-stripe-thin{height:2px}.nb-page{flex:1;height:100%;position:relative;display:flex;flex-direction:column;overflow:hidden;background:repeating-linear-gradient(transparent,transparent 31px,#e0d5c0 31px,#e0d5c0 32px),linear-gradient(to bottom,#fefcf3,#faf5e8);color:#2c2416;padding:0;cursor:pointer}[data-theme=light] .nb-page{background:repeating-linear-gradient(transparent,transparent 31px,#d8cdb8 31px,#d8cdb8 32px),linear-gradient(to bottom,#fefcf3,#f7f0e0)}.nb-page-left{border-radius:4px 0 0 4px;box-shadow:inset -4px 0 8px #0000000f,-2px 2px 8px #0000001a}.nb-page-right{border-radius:0 4px 4px 0;box-shadow:inset 4px 0 8px #0000000a,2px 2px 8px #0000001a}.nb-page-texture{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(255,248,230,.3),transparent 70%),radial-gradient(ellipse at 80% 20%,rgba(245,230,200,.2),transparent 50%);pointer-events:none;z-index:0}.nb-page-margin{position:absolute;left:40px;top:0;bottom:0;width:2px;background:#f4a0a0;z-index:2;opacity:.7}.nb-page-dogear{position:absolute;top:0;right:0;width:26px;height:26px;z-index:5;overflow:hidden}.nb-page-dogear:before{content:"";position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 26px 26px 0;border-color:transparent var(--bg, #0a0b10) transparent transparent}[data-theme=light] .nb-page-dogear:before{border-color:transparent var(--bg, #f8f9fc) transparent transparent}.nb-page-dogear:after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 24px 24px 0;border-color:transparent transparent #e8dcc8 transparent;filter:brightness(.92)}.nb-page-header{position:relative;z-index:1;padding:14px 18px 8px;display:flex;flex-direction:column;gap:2px;border-bottom:2px solid #d4c5a9;margin:0 12px;flex-shrink:0}.nb-page-left .nb-page-header{margin-left:50px}.nb-page-cont-header{position:relative;z-index:1;padding:10px 18px 6px;display:flex;flex-direction:column;gap:1px;border-bottom:1px dashed #d4c5a9;margin:0 12px;flex-shrink:0}.nb-page-left .nb-page-cont-header{margin-left:50px}.nb-page-cont-label{font-family:Kalam,cursive;font-size:.82rem;color:#8a7d6b;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb-page-label{font-size:.78rem;font-weight:400;color:#8a7d6b}.nb-page-course{font-family:Kalam,cursive;font-size:.72rem;font-weight:700;color:#8b6914;text-transform:uppercase;letter-spacing:1px}.nb-page-lecture{font-family:Kalam,cursive;font-size:1rem;font-weight:700;color:#3a2f1e;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb-page-date{font-family:Kalam,cursive;font-size:.72rem;color:#8a7d6b}.nb-page-body{position:relative;z-index:1;flex:1;min-height:0;overflow:hidden;padding:16px 24px 56px}.nb-page-left .nb-page-body{padding-left:52px}.nb-page-content{font-family:Kalam,cursive;font-size:.88rem;line-height:1.7;color:#2c2416;word-wrap:break-word;overflow-wrap:break-word;padding-bottom:20px}.nb-page-content h2{font-family:Kalam,cursive;font-size:1.1rem;font-weight:700;color:#4338ca;margin:12px 0 6px;padding:2px 6px;background:#fef08a;display:inline-block;border-radius:3px;transform:rotate(-.3deg)}.nb-page-content h3{font-family:Kalam,cursive;font-size:.98rem;font-weight:700;color:#1e3a5f;margin:10px 0 4px;border-bottom:2px solid #4338ca;display:inline-block;padding-bottom:1px}.nb-page-content p{margin:0 0 8px}.nb-page-content ul,.nb-page-content ol{margin:4px 0 8px;padding-left:18px}.nb-page-content li{margin-bottom:3px}.nb-page-edit-btn{position:absolute;top:8px;right:8px;z-index:8;width:28px;height:28px;border-radius:6px;border:1px solid transparent;background:transparent;color:#b8a88a;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.35;transition:all .2s ease}.nb-page-edit-btn:hover{opacity:1;background:#8b69141a;border-color:#d4c5a9;color:#8b6914;transform:scale(1.1)}.nb-page-right .nb-page-edit-btn{right:32px}.nb-page-content .callout{background:#fef9c3;border-left:3px solid #d4a017;padding:6px 10px;margin:6px 0;border-radius:0 4px 4px 0;font-size:.85rem;white-space:normal}.nb-page-content .warning{background:#fecdd3;border-left:3px solid #dc2626;padding:6px 10px;margin:6px 0;border-radius:0 4px 4px 0;font-size:.85rem;white-space:normal}.nb-page-content .formula{background:#f5f0ff;border:1px solid #a78bfa;padding:8px;margin:8px 0;text-align:center;font-family:monospace;border-radius:6px;white-space:normal}.nb-page-content .margin-note{background:#6366f10f;border-left:2px solid #6366f1;padding:4px 8px;margin:4px 0;font-size:.8rem;font-style:italic;color:#4f46e5;border-radius:0 4px 4px 0;white-space:normal}.nb-page-content blockquote{border-left:3px solid #6366f1;background:#eff6ff;padding:6px 10px;margin:6px 0;font-style:italic;border-radius:0 4px 4px 0;white-space:normal}.nb-page-content strong{background:#bbf7d0;padding:0 3px;border-radius:2px}.nb-page-content em{color:#7c3aed}.nb-page-content code{font-family:monospace;background:#f0ebe0;padding:1px 4px;border-radius:3px;font-size:.85em}.nb-page-content pre{background:#f5f0e6;border:1px solid #d4c5a9;padding:8px 10px;margin:6px 0;border-radius:6px;font-family:monospace;font-size:.82em;overflow-x:auto;white-space:pre-wrap}.nb-page-content .highlight,.nb-page-content mark{background:#fde68a;padding:0 2px;border-radius:2px}.nb-page-content .nb-heading{font-weight:700;margin:8px 0 4px;white-space:normal}.nb-page-content .nb-h1{font-size:1.15rem;color:#1e3a5f;border-bottom:1px solid #d4c5a9;padding-bottom:4px}.nb-page-content .nb-h2{font-size:1.05rem;color:#2c4a6e}.nb-page-content .nb-h3{font-size:.95rem;color:#3a5f8a}.nb-page-content .nb-h4{font-size:.9rem;color:#4a6f9a}.nb-page-content .nb-list-item{padding-left:8px;margin:2px 0;white-space:normal}.nb-page-content .nb-para{margin:4px 0;white-space:normal}.nb-page-content table{border-collapse:collapse;width:100%;margin:6px 0;font-size:.82rem}.nb-page-content th,.nb-page-content td{border:1px solid #d4c5a9;padding:4px 6px;text-align:left}.nb-page-content th{background:#f0ebe0;font-weight:700}.nb-page-content hr{border:none;border-top:1px dashed #d4c5a9;margin:8px 0}.nb-page-content img{max-width:100%;height:auto;border-radius:4px;margin:4px 0}.nb-page-watermark{position:absolute;bottom:36px;right:28px;font-family:Kalam,cursive;font-size:5.5rem;font-weight:700;color:#00000005;pointer-events:none;z-index:0;line-height:1}.nb-page-left .nb-page-watermark{right:auto;left:48px}.nb-page-number{position:absolute;bottom:16px;font-family:Kalam,cursive;font-size:.76rem;color:#a09480;z-index:3}.nb-page-left .nb-page-number,.nb-page-right .nb-page-number{left:50%;transform:translate(-50%)}.nb-page-empty{flex:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.nb-page-empty p{font-family:Kalam,cursive;font-size:1rem;color:#b8a88a;font-style:italic}.nb-spread-spine{width:8px;flex-shrink:0;background:linear-gradient(to right,#c4b89c,#d8ccb0 20%,#0000001f 40%,#00000038,#0000001f 60%,#d8ccb0 80%,#c4b89c);box-shadow:inset 0 0 4px #00000026;z-index:5}.nb-flip-page{position:absolute;top:0;width:calc(50% - 4px);height:100%;z-index:20;transform-style:preserve-3d}.nb-flip-forward{right:0;left:auto;transform-origin:left center;animation:nb-flip-forward .8s ease-in-out forwards}.nb-flip-backward{left:0;right:auto;transform-origin:right center;animation:nb-flip-backward .8s ease-in-out forwards}.nb-flip-front,.nb-flip-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.nb-flip-front{z-index:2;border-radius:0 4px 4px 0}.nb-flip-back{transform:rotateY(180deg);z-index:1;border-radius:4px 0 0 4px}.nb-flip-backward .nb-flip-front{border-radius:4px 0 0 4px}.nb-flip-backward .nb-flip-back{border-radius:0 4px 4px 0}@keyframes nb-flip-forward{0%{transform:rotateY(0);filter:drop-shadow(0 0 0 transparent)}30%{filter:drop-shadow(-10px 0 20px rgba(0,0,0,.18))}50%{filter:drop-shadow(-16px 0 30px rgba(0,0,0,.22))}70%{filter:drop-shadow(-10px 0 20px rgba(0,0,0,.18))}to{transform:rotateY(-180deg);filter:drop-shadow(0 0 0 transparent)}}@keyframes nb-flip-backward{0%{transform:rotateY(0);filter:drop-shadow(0 0 0 transparent)}30%{filter:drop-shadow(10px 0 20px rgba(0,0,0,.18))}50%{filter:drop-shadow(16px 0 30px rgba(0,0,0,.22))}70%{filter:drop-shadow(10px 0 20px rgba(0,0,0,.18))}to{transform:rotateY(180deg);filter:drop-shadow(0 0 0 transparent)}}.nb-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:16px}.nb-nav-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:all var(--transition-fast)}.nb-nav-btn:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent);color:var(--accent);transform:scale(1.08)}.nb-nav-btn:disabled{opacity:.3;cursor:not-allowed}.nb-nav-indicator{font-size:.88rem;color:var(--text-secondary);font-weight:500;min-width:100px;text-align:center}.nb-nav-center{display:flex;align-items:center;gap:12px;flex:1;justify-content:center}.nb-nav-tool{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s}.nb-nav-tool:hover{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.nb-nav-search{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 12px}.nb-search-input{background:none;border:none;outline:none;color:var(--text);font-size:.82rem;font-family:inherit;width:140px}.nb-search-input::placeholder{color:var(--text-muted)}.nb-search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px}.nb-toc{position:relative;width:1040px;max-width:calc(100vw - 40px);margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;max-height:320px;overflow-y:auto;box-shadow:0 8px 24px #00000026;animation:fadeSlideIn .2s ease-out}.nb-toc-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:1}.nb-toc-header h3{font-size:.88rem;font-weight:600}.nb-toc-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px}.nb-toc-list{padding:4px 0}.nb-toc-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.03);cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:background .1s}.nb-toc-item:hover{background:var(--surface-hover)}.nb-toc-num{font-size:.72rem;font-weight:700;color:var(--accent);min-width:32px;text-align:right}.nb-toc-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.nb-toc-course{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.nb-toc-lecture{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb-toc-date{font-size:.72rem;color:var(--text-muted);white-space:nowrap}@media (max-width: 900px){.nb-book-layout{grid-template-columns:1fr}.nb-drawer-toggle{display:flex}.nb-drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:99}.nb-index-panel{position:fixed;left:0;top:0;bottom:0;width:260px;min-width:260px;z-index:100;border-radius:0 12px 12px 0;box-shadow:4px 0 20px #00000040;transform:translate(-100%);transition:transform .25s ease}.nb-index-panel.nb-index-panel-open{transform:translate(0)}.nb-page-edit-btn{opacity:.5}}@media (max-width: 768px){.nb-book{width:100%;max-height:460px;min-height:360px}.nb-book-spread{flex-direction:column}.nb-page{flex:none;height:50%}.nb-spread-spine{width:100%;height:4px;background:linear-gradient(to bottom,#c4b89c,#00000026,#c4b89c)}.nb-page-left{border-radius:4px 4px 0 0;box-shadow:none}.nb-page-right{border-radius:0 0 4px 4px;box-shadow:0 4px 12px #0000001a}.nb-cover{border-radius:0 0 4px 4px}.nb-cover-title{font-size:1.5rem}.nb-cover-icon{width:60px;height:60px}.nb-cover-icon svg{width:32px;height:32px}.nb-page-watermark{font-size:3.5rem}.nb-flip-page{display:none}.nb-inside-cover{border-radius:4px 4px 0 0}}@media (max-width: 480px){.nb-book-wrapper{padding:10px 0 30px}.nb-page-header,.nb-page-cont-header{padding:8px 10px 6px;margin:0 6px}.nb-page-left .nb-page-header,.nb-page-left .nb-page-cont-header{margin-left:42px}.nb-page-body{padding:8px 10px 28px}.nb-page-left .nb-page-body{padding-left:42px}.nb-page-margin{left:32px}.nb-page-content{font-size:.8rem;line-height:28px}.nb-cover-title{font-size:1.2rem}.nb-nav{gap:16px;margin-top:20px}}.socratic-outcomes{margin-bottom:36px;background:linear-gradient(135deg,var(--accent-dim),rgba(139,92,246,.06));border:1px solid rgba(99,102,241,.15);border-radius:var(--radius-lg);padding:28px}.raise-hand-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;background:linear-gradient(135deg,#f59e0b1a,#6366f114);border:1px dashed var(--warning);border-radius:var(--radius-sm);color:var(--warning);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);margin-bottom:0}.raise-hand-btn:hover{background:linear-gradient(135deg,#f59e0b2e,#6366f11f);border-color:var(--accent);color:var(--text)}.raise-hand-icon{font-size:1.1rem}.urgent-help-card{background:linear-gradient(135deg,#ef444414,#f59e0b0d);border-color:#ef444440}.urgent-help-message{font-size:.9rem;color:var(--text-secondary);line-height:1.5;margin:0 0 12px}.urgent-help-actions{display:flex;gap:8px}.lesson-video--dimmed{opacity:.6;transition:opacity .3s ease}.concept-progress-bar{padding:6px 0}.concept-progress-track{position:relative;height:6px;background:var(--border);border-radius:3px}.concept-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease;opacity:.4}.concept-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;border:2px solid var(--border-light);background:var(--surface);cursor:pointer;transition:all var(--transition-fast);padding:0;z-index:2}.concept-dot:hover{transform:translate(-50%,-50%) scale(1.4);box-shadow:0 0 8px #6366f166}.concept-dot--correct{background:var(--success);border-color:var(--success)}.concept-dot--partial{background:var(--warning);border-color:var(--warning)}.concept-dot--incorrect{background:var(--danger);border-color:var(--danger)}.concept-dot--skipped{background:transparent;border-color:var(--text-muted);border-style:dashed}.concept-dot--past{background:var(--accent-dim);border-color:var(--accent)}.concept-dot--upcoming{background:var(--surface);border-color:var(--border-light)}.checkpoint-card{background:linear-gradient(135deg,#6366f114,#8b5cf60d);border:1px solid rgba(99,102,241,.25);border-radius:var(--radius);padding:16px;margin-bottom:12px;animation:checkpointSlideIn .4s ease}.checkpoint-card--entering{opacity:0;transform:translateY(-10px)}@keyframes checkpointSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.checkpoint-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.checkpoint-card-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent-dim);color:var(--accent);flex-shrink:0}.checkpoint-card-label{display:flex;flex-direction:column;gap:2px}.checkpoint-card-tag{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.checkpoint-card-concept{font-size:.8rem;color:var(--text-secondary)}.checkpoint-card-question{font-size:.95rem;color:var(--text);line-height:1.5;margin-bottom:12px}.checkpoint-hints{margin-bottom:12px}.checkpoint-hint{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;margin-bottom:6px;background:var(--warning-dim);border-radius:var(--radius-xs);font-size:.85rem;color:var(--text-secondary);animation:hintFadeIn .3s ease}.checkpoint-hint svg{color:var(--warning);flex-shrink:0;margin-top:2px}@keyframes hintFadeIn{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:translate(0)}}.checkpoint-hint-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;background:none;border:1px dashed var(--border-light);border-radius:var(--radius-xs);color:var(--text-muted);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast)}.checkpoint-hint-btn:hover{border-color:var(--warning);color:var(--warning)}.checkpoint-hint-count{font-size:.7rem;opacity:.6}.checkpoint-loading{display:flex;align-items:center;gap:8px;padding:12px;color:var(--text-muted);font-size:.85rem}.checkpoint-feedback{padding:12px;border-radius:var(--radius-sm);margin-bottom:8px;animation:feedbackFadeIn .3s ease}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}.checkpoint-feedback--correct{background:var(--success-dim);border:1px solid rgba(34,197,94,.2)}.checkpoint-feedback--partial{background:var(--warning-dim);border:1px solid rgba(245,158,11,.2)}.checkpoint-feedback--incorrect{background:var(--danger-dim);border:1px solid rgba(239,68,68,.15)}.checkpoint-feedback-header{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-weight:600;font-size:.9rem}.checkpoint-feedback--correct .checkpoint-feedback-header{color:var(--success)}.checkpoint-feedback--partial .checkpoint-feedback-header{color:var(--warning)}.checkpoint-feedback--incorrect .checkpoint-feedback-header{color:var(--danger)}.checkpoint-feedback-message{font-size:.85rem;color:var(--text-secondary);line-height:1.5;margin:0 0 6px}.checkpoint-feedback-followup{font-size:.85rem;color:var(--text);font-style:italic;margin:0}.checkpoint-continue-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;margin-top:10px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.checkpoint-continue-btn:hover{background:var(--accent-hover)}.checkpoint-followup-actions{display:flex;gap:8px;margin-top:10px;align-items:center}.checkpoint-followup-actions .checkpoint-submit-btn{flex-shrink:0}.checkpoint-followup-actions .checkpoint-skip-btn{font-size:.8rem}.checkpoint-input-area{display:flex;flex-direction:column;gap:8px}.checkpoint-input{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem;font-family:inherit;resize:none;transition:border-color var(--transition-fast);box-sizing:border-box}.checkpoint-input:focus{outline:none;border-color:var(--accent)}.checkpoint-actions{display:flex;justify-content:space-between;align-items:center}.checkpoint-skip-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;transition:color var(--transition-fast)}.checkpoint-skip-btn:hover{color:var(--text-secondary)}.checkpoint-submit-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.checkpoint-submit-btn:hover:not(:disabled){background:var(--accent-hover)}.checkpoint-submit-btn:disabled{opacity:.4;cursor:not-allowed}.session-synthesis{background:linear-gradient(135deg,#6366f114,#22c55e0d);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius);padding:16px;margin-bottom:12px;animation:synthesisFadeIn .5s ease}.session-synthesis--entering{opacity:0;transform:translateY(10px)}@keyframes synthesisFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.session-synthesis-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.session-synthesis-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--accent-dim);color:var(--accent)}.session-synthesis-title{font-size:1.05rem;font-weight:600;color:var(--text);margin:0}.session-synthesis-subtitle{font-size:.8rem;color:var(--text-muted);margin:0}.session-synthesis-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.synthesis-stat{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:.8rem;color:var(--text-secondary)}.synthesis-stat-value{font-weight:600;color:var(--text)}.synthesis-stat-label{font-size:.7rem;color:var(--text-muted)}.session-synthesis-concepts{margin-bottom:14px}.synthesis-concepts-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin:0 0 8px}.synthesis-concept-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.synthesis-concept-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:var(--radius-xs);background:var(--bg);font-size:.85rem}.synthesis-concept-info{display:flex;align-items:center;gap:8px}.synthesis-concept-name{color:var(--text)}.synthesis-icon--correct{color:var(--success)}.synthesis-icon--partial{color:var(--warning)}.synthesis-icon--incorrect{color:var(--danger)}.synthesis-icon--skipped{color:var(--text-muted)}.synthesis-concept-status{display:flex;align-items:center;gap:6px}.synthesis-status-badge{font-size:.7rem;font-weight:500;padding:2px 8px;border-radius:10px}.synthesis-status--correct{background:var(--success-dim);color:var(--success)}.synthesis-status--partial{background:var(--warning-dim);color:var(--warning)}.synthesis-status--incorrect{background:var(--danger-dim);color:var(--danger)}.synthesis-status--skipped{background:#6b6f851a;color:var(--text-muted)}.synthesis-review-btn{padding:2px 8px;background:none;border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--accent);font-size:.7rem;cursor:pointer;transition:all var(--transition-fast)}.synthesis-review-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.session-synthesis-actions{display:flex;gap:8px;flex-wrap:wrap}.synthesis-action-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);border:none}.synthesis-action--primary{background:var(--accent);color:#fff}.synthesis-action--primary:hover{background:var(--accent-hover)}.synthesis-action--secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.synthesis-action--secondary:hover{border-color:var(--accent);color:var(--accent)}.synthesis-action--ghost{background:none;color:var(--text-muted)}.synthesis-action--ghost:hover{color:var(--text)}.lesson-video--dimmed{opacity:.6;transition:opacity var(--transition-normal)}.lesson-video--dimmed video{filter:brightness(.7)}.checkpoint-card--loading{min-height:120px}.checkpoint-social-signal{font-size:.8rem;color:var(--color-text-muted, #64748b);font-style:italic;padding:6px 12px;background:var(--color-surface-elevated, rgba(59, 130, 246, .06));border-radius:6px;margin-top:8px}.spaced-practice-prompt{background:var(--color-surface-elevated, rgba(59, 130, 246, .08));border:1px solid var(--color-border-subtle, rgba(59, 130, 246, .2));border-radius:10px;padding:12px 16px;font-size:.88rem;line-height:1.5;color:var(--color-text-secondary, #94a3b8);margin-bottom:12px;text-align:center}.lesson-end-btn.quiz-secondary{opacity:.6;font-size:.82rem}.lesson-end-btn.quiz-secondary:hover{opacity:.85}.teacher-dashboard{min-height:100vh;background:var(--color-bg, #0f172a);padding-top:80px}.teacher-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.teacher-title{font-size:1.75rem;font-weight:700;color:var(--color-text-primary, #f1f5f9);margin:0}.teacher-subtitle{color:var(--color-text-secondary, #94a3b8);margin:4px 0 0;font-size:.9rem}.teacher-refresh-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--color-surface, #1e293b);border:1px solid var(--color-border, #334155);border-radius:8px;color:var(--color-text-secondary, #94a3b8);font-size:.85rem;cursor:pointer;transition:all .2s}.teacher-refresh-btn:hover{background:var(--color-surface-hover, #334155);color:var(--color-text-primary, #f1f5f9)}.teacher-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:32px}.teacher-stat-card{background:var(--color-surface, #1e293b);border:1px solid var(--color-border, #334155);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--color-text-secondary, #94a3b8)}.teacher-stat-card svg{color:var(--color-primary, #3b82f6)}.teacher-stat--warning svg{color:var(--color-warning, #f59e0b)}.teacher-stat-value{font-size:2rem;font-weight:700;color:var(--color-text-primary, #f1f5f9)}.teacher-stat-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.teacher-section{background:var(--color-surface, #1e293b);border:1px solid var(--color-border, #334155);border-radius:12px;padding:24px;margin-bottom:24px}.teacher-section-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary, #f1f5f9);margin:0 0 16px;display:flex;align-items:center;gap:8px}.teacher-table{display:flex;flex-direction:column;gap:2px}.teacher-table-header{display:grid;grid-template-columns:2fr 1fr 1fr 100px;gap:12px;padding:8px 12px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #64748b);border-bottom:1px solid var(--color-border, #334155)}.teacher-table-row{display:grid;grid-template-columns:2fr 1fr 1fr 100px;gap:12px;padding:10px 12px;font-size:.88rem;color:var(--color-text-secondary, #94a3b8);border-bottom:1px solid var(--color-border-subtle, rgba(51, 65, 85, .5));align-items:center}.teacher-table-row:last-child{border-bottom:none}.teacher-student-name{color:var(--color-text-primary, #f1f5f9);font-weight:500}.teacher-success-rate{font-weight:600}.teacher-rate--low{color:var(--color-error, #ef4444)}.teacher-action-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;border:1px solid var(--color-border, #334155);border-radius:6px;color:var(--color-primary, #3b82f6);font-size:.8rem;cursor:pointer;transition:all .2s}.teacher-action-btn:hover{background:var(--color-primary, #3b82f6);color:#fff}.teacher-misconception-list{display:flex;flex-direction:column;gap:12px}.teacher-misconception-card{background:var(--color-surface-elevated, rgba(239, 68, 68, .05));border:1px solid rgba(239,68,68,.15);border-radius:8px;padding:12px 16px}.teacher-misconception-concept{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary, #3b82f6);margin-bottom:4px}.teacher-misconception-text{color:var(--color-text-primary, #f1f5f9);font-size:.9rem;margin-bottom:6px}.teacher-misconception-meta{font-size:.78rem;color:var(--color-text-muted, #64748b)}.teacher-misconception-correct{margin-left:12px;color:var(--color-success, #22c55e)}.teacher-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.teacher-modal{background:var(--color-surface, #1e293b);border:1px solid var(--color-border, #334155);border-radius:16px;padding:28px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.teacher-modal h3{margin:0 0 16px;color:var(--color-text-primary, #f1f5f9)}.teacher-modal-stats p{margin:4px 0;color:var(--color-text-secondary, #94a3b8);font-size:.9rem}.teacher-checkpoint-item{display:flex;gap:12px;padding:6px 0;font-size:.85rem;color:var(--color-text-secondary, #94a3b8);border-bottom:1px solid var(--color-border-subtle, rgba(51, 65, 85, .3))}.teacher-cp-quality{font-weight:600;min-width:60px}.teacher-cp--correct{color:var(--color-success, #22c55e)}.teacher-cp--partial{color:var(--color-warning, #f59e0b)}.teacher-cp--incorrect{color:var(--color-error, #ef4444)}.teacher-modal-close{margin-top:16px;padding:8px 20px;background:var(--color-surface-hover, #334155);border:1px solid var(--color-border, #334155);border-radius:8px;color:var(--color-text-primary, #f1f5f9);cursor:pointer}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.for-teachers-page{min-height:100vh}.ft-hero{position:relative;padding:100px 40px 60px;background:var(--bg);overflow:hidden}.ft-hero-inner{max-width:1140px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.ft-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:20px;font-size:.82rem;font-weight:600;color:var(--accent);margin-bottom:20px}.ft-headline{font-size:2.8rem;font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--text);margin-bottom:16px}.ft-sub{font-size:1.05rem;line-height:1.6;color:var(--text-secondary);margin-bottom:28px;max-width:480px}.ft-ctas{display:flex;gap:12px;flex-wrap:wrap}.ft-preview-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:0 8px 32px #00000026}.ft-preview-header{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border)}.ft-preview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.ft-preview-stat{text-align:center;padding:12px 8px;background:#6366f10d;border-radius:10px}.ft-stat-warning{background:#f59e0b14}.ft-stat-value{display:block;font-size:1.8rem;font-weight:700;color:var(--text)}.ft-stat-label{display:block;font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.ft-preview-item{display:flex;align-items:center;gap:10px;padding:10px 0;font-size:.85rem;color:var(--text-secondary);border-bottom:1px solid var(--border-light, rgba(99,102,241,.08))}.ft-preview-item:last-child{border-bottom:none}.ft-auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100}.ft-auth-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;max-width:420px;width:90%;animation:slideUp .3s ease}.ft-auth-card h2{font-size:1.3rem;color:var(--text);margin:0 0 4px}.ft-auth-card .auth-field input{width:100%;padding:11px 14px;background:var(--bg);border:1.5px solid var(--border);border-radius:8px;color:var(--text);font-size:.92rem;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.ft-auth-card .auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim, rgba(99,102,241,.15))}.ft-auth-card .auth-field input::placeholder{color:var(--text-muted, #64748b)}.ft-auth-card .auth-field label{font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:2px}.ft-auth-card .auth-submit-btn{width:100%;margin-top:4px}@media (max-width: 900px){.ft-hero-inner{grid-template-columns:1fr;gap:40px}.ft-headline{font-size:2.2rem}.ft-preview{display:none}}@media (max-width: 600px){.ft-hero{padding:80px 20px 40px}.ft-headline{font-size:1.8rem}.ft-ctas{flex-direction:column}}.bug-report-fab{position:fixed;bottom:24px;left:24px;width:42px;height:42px;border-radius:50%;background:var(--accent, #6366f1);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #6366f166;z-index:90;transition:transform .2s,box-shadow .2s}.bug-report-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #6366f180}.bug-report-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:200}.bug-report-modal{background:var(--surface, #1e293b);border:1px solid var(--border, #334155);border-radius:16px;padding:28px;max-width:480px;width:90%;animation:slideUp .3s ease}.bug-report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.bug-report-header h3{margin:0;font-size:1.2rem;color:var(--text, #f1f5f9)}.bug-report-close{background:none;border:none;color:var(--text-secondary, #94a3b8);cursor:pointer;padding:4px}.bug-report-form{display:flex;flex-direction:column;gap:16px}.bug-report-field{display:flex;flex-direction:column;gap:6px}.bug-report-field label{font-size:.85rem;font-weight:600;color:var(--text-secondary, #94a3b8)}.bug-report-field textarea,.bug-report-field select{width:100%;padding:10px 14px;background:var(--bg, #0f172a);border:1.5px solid var(--border, #334155);border-radius:8px;color:var(--text, #f1f5f9);font-size:.9rem;font-family:inherit;outline:none;resize:vertical;box-sizing:border-box}.bug-report-field textarea:focus,.bug-report-field select:focus{border-color:var(--accent, #6366f1);box-shadow:0 0 0 3px #6366f126}.bug-report-field textarea::placeholder{color:var(--text-muted, #64748b)}.bug-report-error{background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:8px 12px;color:#ef4444;font-size:.85rem}.bug-report-meta{font-size:.75rem;color:var(--text-muted, #64748b);padding:4px 0}.bug-report-submit{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;background:var(--accent, #6366f1);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s}.bug-report-submit:hover:not(:disabled){opacity:.9}.bug-report-submit:disabled{opacity:.6;cursor:not-allowed}.bug-report-success{text-align:center;padding:20px 0;color:var(--text, #f1f5f9)}.bug-report-success svg{color:#22c55e;margin-bottom:12px}.bug-report-success h3{margin:0 0 8px}.bug-report-success p{color:var(--text-secondary, #94a3b8);margin:0;font-size:.9rem}@media (max-width: 600px){.bug-report-fab{bottom:16px;left:16px;width:38px;height:38px}}
