@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--primary: #1D3557;--primary-dark: #14263F;--primary-light: #2D4A73;--primary-50: #EDF2F7;--primary-100: #DCE5F0;--primary-200: #C4D2E4;--primary-500: #1D3557;--primary-600: #14263F;--primary-700: #0F1D33;--primary-800: #0B1729;--primary-900: #081220;--primary-950: #060D18;--accent: #0F766E;--accent-dark: #115E59;--accent-light: #14B8A6;--accent-50: #ECFEFF;--accent-100: #CCFBF1;--accent-200: #99F6E4;--success: #10B981;--success-50: #ECFDF5;--success-light: #D1FAE5;--success-dark: #059669;--warning: #F59E0B;--warning-light: #FEF3C7;--warning-dark: #D97706;--error: #EF4444;--error-light: #FEE2E2;--error-dark: #DC2626;--info: #3B82F6;--info-light: #DBEAFE;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--gray-950: #030712;--background: #F5F7FA;--foreground: #0D1117;--card-bg: #FFFFFF;--input-bg: #FFFFFF;--border: #E8ECF2;--border-subtle: #F0F3F8;--surface-1: #FFFFFF;--surface-2: #F5F7FA;--surface-3: #EDF0F5;--text-primary: #0D1117;--text-secondary: #4A5568;--text-muted: #718096;--ring: var(--primary);--ring-rgb: 29, 53, 87;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px}[data-theme=dark]{--background: #0C1018;--foreground: #EDF2F7;--card-bg: #141C26;--input-bg: #111820;--border: #1E2A3A;--border-subtle: #192230;--surface-1: #141C26;--surface-2: #111820;--surface-3: #1A2332;--text-primary: #F3F7FF;--text-secondary: #C7D2E5;--text-muted: #94A3B8;--ring-rgb: 20, 184, 166;--gray-50: #10151D;--gray-100: #1A2230;--gray-200: #273142;--gray-300: #3A4860;--gray-400: #64748B;--gray-500: #94A3B8;--gray-600: #C7D2E5;--gray-700: #DBE5F5;--gray-800: #E8F0FC;--gray-900: #F3F7FF;--gray-950: #FFFFFF;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow: 0 1px 3px 0 rgb(0 0 0 / .4), 0 1px 2px -1px rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .4), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .4), 0 4px 6px -4px rgb(0 0 0 / .3);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .5), 0 8px 10px -6px rgb(0 0 0 / .4);--success-light: #064E3B;--success-50: rgba(16, 185, 129, .14);--warning-light: #78350F;--error-light: #7F1D1D;--info-light: #1E3A5F;--primary-50: #0F1726;--primary-100: #172338;--primary-200: #22344E;--accent-50: #0D2422;--accent-100: #123432;--accent-200: #1FA89A}[data-theme=dark] .btn-secondary{color:var(--gray-700);border-color:var(--gray-300)}[data-theme=dark] .btn-secondary:hover:not(:disabled){background:var(--gray-50)}[data-theme=dark] .btn-primary{background:#1f4e61}[data-theme=dark] .btn-primary:hover:not(:disabled){background:#23677e}[data-theme=dark] .input,[data-theme=dark] select{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .course-card,[data-theme=dark] .note-card,[data-theme=dark] .video-card,[data-theme=dark] .quiz-question-card,[data-theme=dark] .progress-stat-card,[data-theme=dark] .progress-section,[data-theme=dark] .settings-panel,[data-theme=dark] .chat-page,[data-theme=dark] .quiz-page,[data-theme=dark] .codelab-page{background:var(--card-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .chat-msg.user .chat-msg-text{background:var(--primary)}[data-theme=dark] .chat-msg.assistant .chat-msg-text{background:var(--gray-100);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .sidebar{background:#0e172a;border-color:var(--border)}[data-theme=dark] .topbar{background:#0d1628e6;border-color:var(--border)}[data-theme=dark] .topbar-search-input:focus{background:var(--input-bg)}[data-theme=dark] .courses-search,[data-theme=dark] .courses-filter-group select{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .courses-search input{color:var(--foreground)}[data-theme=dark] .progress-stat-icon{opacity:.85}[data-theme=dark] .auth-right{background:var(--background)}[data-theme=dark] .btn-outline:hover:not(:disabled){background:var(--gray-100);border-color:var(--border)}[data-theme=dark] .btn-ghost{color:var(--foreground)}[data-theme=dark] .btn-ghost:hover:not(:disabled){background:var(--gray-100)}[data-theme=dark] .dashboard h1,[data-theme=dark] .dashboard h2,[data-theme=dark] .dashboard h4,[data-theme=dark] .dash-welcome-title,[data-theme=dark] .dash-stat-value,[data-theme=dark] .dash-streak-value,[data-theme=dark] .dash-course-info h4,[data-theme=dark] .dash-deadline-info h4,[data-theme=dark] .dash-rec-card h4,[data-theme=dark] .auth-title,[data-theme=dark] .auth-form-container,[data-theme=dark] .auth-field label{color:var(--foreground)}[data-theme=dark] .auth-field input{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .auth-social-btn{color:var(--foreground)}[data-theme=dark] .sidebar-study-card{background:linear-gradient(135deg,#78350f,#92400e)}[data-theme=dark] .sidebar-study-title{color:#fef3c7}[data-theme=dark] .sidebar-study-sub{color:#fde68a}[data-theme=dark] .chat-msg-name{color:var(--foreground)}[data-theme=dark] .chat-input-wrapper textarea{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .chat-sidebar{background:#0e172a;border-color:var(--border)}[data-theme=dark] .chat-history-item{color:var(--gray-600)}[data-theme=dark] .chat-history-item:hover{background:var(--gray-100)}[data-theme=dark] .quiz-header h2,[data-theme=dark] .quiz-question-text{color:var(--foreground)}[data-theme=dark] .quiz-option{color:var(--foreground);border-color:var(--border)}[data-theme=dark] .quiz-explanation,[data-theme=dark] .quiz-explanation strong{color:var(--foreground)}[data-theme=dark] .quiz-explanation p{color:var(--gray-600)}[data-theme=dark] .quiz-nav-sidebar{background:#0e172a;border-color:var(--border)}[data-theme=dark] .quiz-nav-sidebar h4{color:var(--foreground)}[data-theme=dark] .codelab-toolbar{background:#1e2130!important;border-color:#2d3348!important}[data-theme=dark] .codelab-lang-btn{background:#131620;border-color:#3d4460;color:#d1d5db}[data-theme=dark] .codelab-lang-dropdown{background:#1e2130;border-color:#3d4460}[data-theme=dark] .codelab-lang-dropdown button{color:#d1d5db}[data-theme=dark] .codelab-lang-dropdown button:hover,[data-theme=dark] .codelab-lang-dropdown button.active{background:#2d3348}[data-theme=dark] .codelab-toolbar-actions .btn{color:#d1d5db}[data-theme=dark] .codelab-toolbar-actions .btn:hover{color:#fff;background:#2d3348}[data-theme=dark] .codelab-editor{background:#0f1117!important}[data-theme=dark] .codelab-line-numbers{color:#6b7280;border-color:#2d3348}[data-theme=dark] .codelab-output{background:#131620!important;border-color:#2d3348!important}[data-theme=dark] .codelab-output-header{color:#9ca3af;border-color:#2d3348}[data-theme=dark] .codelab-problem,[data-theme=dark] .codelab-problem-header{border-color:var(--border)}[data-theme=dark] .codelab-problem-header h2{color:var(--foreground)}[data-theme=dark] .codelab-problem-body{color:var(--gray-600)}[data-theme=dark] .codelab-problem-body h4{color:var(--foreground)}[data-theme=dark] .codelab-testcase{background:var(--gray-100);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .progress-header h1,[data-theme=dark] .progress-stat-val,[data-theme=dark] .progress-mastery-pct,[data-theme=dark] .progress-section h3,[data-theme=dark] .progress-activity-title,[data-theme=dark] .progress-mastery-name,[data-theme=dark] .notes-header h1,[data-theme=dark] .note-card-title,[data-theme=dark] .videos-header h1,[data-theme=dark] .video-card-body h3,[data-theme=dark] .settings-header h1,[data-theme=dark] .settings-panel h2,[data-theme=dark] .settings-field label{color:var(--foreground)}[data-theme=dark] .settings-field input,[data-theme=dark] .settings-field textarea{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .courses-page h1,[data-theme=dark] .course-card h3,[data-theme=dark] .course-detail-header h1{color:var(--foreground)}[data-theme=dark] .course-detail-tabs .tab{color:var(--gray-500)}[data-theme=dark] .course-detail-tabs .tab.active{color:var(--primary)}[data-theme=dark] .dash-stat-card,[data-theme=dark] .dash-section,[data-theme=dark] .dash-course-card,[data-theme=dark] .dash-deadline-item,[data-theme=dark] .dash-rec-card{border-color:var(--border)}[data-theme=dark] .dash-deadline-icon{opacity:.85}[data-theme=dark] .landing-feature-title,[data-theme=dark] .landing-section-title,[data-theme=dark] .landing-testimonial-name{color:var(--foreground)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--foreground);line-height:1.6;min-height:100vh}code,pre{font-family:JetBrains Mono,Fira Code,monospace}img,video,svg{max-width:100%;display:block}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-dark)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:1rem}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:var(--text-primary);margin:0}h1{font-size:2rem;font-weight:800;letter-spacing:-.03em}h2{font-size:1.5rem;font-weight:800;letter-spacing:-.025em}h3{font-size:1.125rem;font-weight:700;letter-spacing:-.015em}h4{font-size:.9375rem;font-weight:600;letter-spacing:-.01em}h5{font-size:.875rem;font-weight:600}h6{font-size:.8125rem;font-weight:600}p{margin:0;color:var(--text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-fade-in{animation:fadeIn .4s ease-out}.animate-fade-in-up{animation:fadeInUp .6s ease-out}.animate-slide-left{animation:slideInLeft .4s ease-out}.animate-slide-right{animation:slideInRight .4s ease-out}.animate-scale-in{animation:scaleIn .3s ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-float{animation:float 3s ease-in-out infinite}.delay-100{animation-delay:.1s;animation-fill-mode:both}.delay-200{animation-delay:.2s;animation-fill-mode:both}.delay-300{animation-delay:.3s;animation-fill-mode:both}.delay-400{animation-delay:.4s;animation-fill-mode:both}.delay-500{animation-delay:.5s;animation-fill-mode:both}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius);font-weight:600;font-size:.875rem;border:none;cursor:pointer;transition:all .15s ease;white-space:nowrap;text-decoration:none;letter-spacing:-.01em}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.btn-secondary:hover:not(:disabled){background:var(--primary-50)}.btn-ghost{background:transparent;color:var(--gray-700)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){background:var(--error-dark)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-dark)}.btn-lg{padding:.875rem 1.75rem;font-size:1.0625rem;border-radius:var(--radius-md)}.btn-sm{padding:.375rem .875rem;font-size:.8125rem}.btn-icon{padding:.625rem;border-radius:var(--radius)}.btn-outline{background:transparent;color:var(--foreground);border:1.5px solid var(--border)}.btn-outline:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-400)}.btn-warning{background:transparent;color:var(--warning);border:1.5px solid var(--warning)}.btn-warning:hover:not(:disabled){background:#f59e0b1a}.btn:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.input:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}.card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border-subtle, var(--border));box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-body{padding:1.5rem}.input{width:100%;padding:.75rem 1rem;background:var(--input-bg);border:1.5px solid var(--border);border-radius:var(--radius);font-size:.9375rem;color:var(--foreground);transition:all .2s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0f766e1f;outline:none}.input::placeholder{color:var(--gray-400)}.input-error{border-color:var(--error)}.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;white-space:nowrap}.badge-primary{background:var(--primary-100);color:var(--primary-700)}.badge-success{background:var(--success-light);color:var(--success-dark)}.badge-warning{background:var(--warning-light);color:var(--warning-dark)}.badge-error{background:var(--error-light);color:var(--error-dark)}.badge-info{background:var(--info-light);color:#1d4ed8}.progress-bar{width:100%;height:6px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent),var(--accent-light));transition:width .8s cubic-bezier(.4,0,.2,1);animation:progressIn .8s cubic-bezier(.4,0,.2,1) both}@keyframes progressIn{0%{width:0!important}}.avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent-dark),var(--accent));overflow:hidden;flex-shrink:0;letter-spacing:-.02em}.avatar-sm{width:2rem;height:2rem;font-size:.75rem}.avatar-md{width:2.5rem;height:2.5rem;font-size:.875rem}.avatar-lg{width:3.5rem;height:3.5rem;font-size:1.25rem}.avatar-xl{width:5rem;height:5rem;font-size:1.5rem}.avatar img{width:100%;height:100%;object-fit:cover}.tabs{display:flex;border-bottom:2px solid var(--gray-200);gap:0}.tab{padding:.75rem 1.25rem;font-weight:500;font-size:.9375rem;color:var(--gray-500);border:none;background:none;cursor:pointer;position:relative;transition:all .2s}.tab:hover{color:var(--accent)}.tab.active{color:var(--accent);font-weight:600}.tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--accent);border-radius:1px 1px 0 0}.divider{display:flex;align-items:center;gap:1rem;color:var(--gray-400);font-size:.875rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--gray-200)}.toggle{position:relative;width:3rem;height:1.5rem;background:var(--gray-300);border-radius:var(--radius-full);cursor:pointer;transition:background .3s;border:none;padding:0}.toggle.active{background:var(--accent)}.app-content>*{animation:pageEnter .18s ease-out both}@keyframes pageEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--surface-2)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--gray-300)}.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:1.25rem;height:1.25rem;background:#fff;border-radius:50%;transition:transform .3s;box-shadow:var(--shadow-sm)}.toggle.active:after{transform:translate(1.5rem)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:.375rem .75rem;background:var(--gray-900);color:#fff;font-size:.75rem;border-radius:var(--radius);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}.tooltip:hover:after{opacity:1}.glass{background:#ffffffb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.3)}.skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1.5rem}@media(max-width:768px){.container{padding:0 1rem}h1{font-size:1.875rem}h2{font-size:1.5rem}}.sidebar{width:240px;height:100vh;position:fixed;top:0;left:0;z-index:40;display:flex;flex-direction:column;background:var(--surface-1);border-right:1px solid var(--border);transition:width .3s ease;overflow:hidden}.sidebar-collapsed{width:64px}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1rem 1rem;position:relative;min-height:64px}.sidebar-logo{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--primary),var(--accent-dark));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 2px 8px #0f172a40;position:relative;overflow:hidden}.sidebar-logo:after{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(to right,#fff0,#ffffff4d,#fff0);transform:skew(-20deg);animation:shine 4s infinite}@keyframes shine{0%{left:-100%}20%{left:200%}to{left:200%}}.sidebar-brand-text{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:800;letter-spacing:-.02em;color:var(--text-primary);margin-left:.1rem;white-space:nowrap}[data-theme=dark] .sidebar-brand-text{color:var(--foreground)}.sidebar-toggle{position:absolute;right:-12px;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:var(--card-bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s;color:var(--text-muted);box-shadow:var(--shadow-sm)}.sidebar-toggle:hover{background:var(--surface-3);color:var(--text-primary)}.sidebar-nav{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:.5rem .625rem .75rem;overflow-y:auto;gap:0}.sidebar-section-label{padding:.75rem .75rem .25rem;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;overflow:hidden}.sidebar-nav-group{display:flex;flex-direction:column;gap:1px;margin-bottom:.25rem}.sidebar-link{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:all .12s ease;white-space:nowrap;position:relative}.sidebar-link:hover{background:var(--surface-2);color:var(--text-primary)}.sidebar-link.active{background:#0f766e14;color:var(--accent);font-weight:600}.sidebar-link.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:0 2px 2px 0;background:var(--accent)}.sidebar-link.active svg{color:var(--accent)}[data-theme=dark] .sidebar-link.active{background:#14b8a61a;color:var(--accent-light)}[data-theme=dark] .sidebar-link.active:before{background:var(--accent-light)}[data-theme=dark] .sidebar-link.active svg{color:var(--accent-light)}.sidebar-link svg{opacity:.7;transition:opacity .12s;flex-shrink:0}.sidebar-link:hover svg,.sidebar-link.active svg{opacity:1}.sidebar-badge{margin-left:auto;padding:.1rem .4rem;background:var(--accent);color:#fff;font-size:.6rem;font-weight:700;border-radius:var(--radius-full);letter-spacing:.04em}.sidebar-study-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;margin:.25rem 0;background:#0f766e14;border:1px solid rgba(15,118,110,.15);border-radius:var(--radius-md)}[data-theme=dark] .sidebar-study-card{background:#14b8a614;border-color:#14b8a626}.sidebar-study-icon{color:var(--accent);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}[data-theme=dark] .sidebar-study-icon{color:var(--accent-light)}.sidebar-study-title{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.sidebar-study-sub{font-size:.6875rem;color:var(--text-muted)}[data-theme=dark] .sidebar-study-title{color:var(--foreground)}[data-theme=dark] .sidebar-study-sub{color:var(--text-muted)}.sidebar-nav-bottom{display:flex;flex-direction:column;gap:1px;padding-top:.5rem;border-top:1px solid var(--border);margin-top:auto}.sidebar-collapsed .sidebar-link{justify-content:center;padding:.625rem}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:1.25rem .5rem}.sidebar-collapsed .sidebar-section-label,.sidebar-collapsed .sidebar-study-card{display:none}@media(max-width:768px){.sidebar{display:none}.sidebar.mobile-open{display:flex;transform:translate(0)}}.topbar{height:56px;background:var(--surface-1);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem;position:sticky;top:0;z-index:30;gap:1rem}.topbar-left{display:flex;align-items:center;gap:.75rem;min-width:0}.topbar-breadcrumb{font-size:.875rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap}.topbar-menu-btn{display:none;padding:.5rem;border:none;background:none;color:var(--gray-600);border-radius:var(--radius);cursor:pointer}.topbar-menu-btn:hover{background:var(--gray-100)}.topbar-search{flex:1;max-width:480px;position:relative;display:flex;align-items:center}.topbar-search-icon{position:absolute;left:.875rem;color:var(--gray-400);pointer-events:none}.topbar-search-input{width:100%;height:40px;padding:0 3rem 0 2.75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.875rem;color:var(--foreground);outline:none;transition:all .2s}.topbar-search-input:focus{border-color:var(--accent);background:var(--card-bg);box-shadow:0 0 0 3px #0f766e1a}.topbar-search-input::placeholder{color:var(--gray-400)}.topbar-search-kbd{position:absolute;right:.75rem;padding:.125rem .375rem;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:4px;font-size:.6875rem;color:var(--gray-400);font-family:inherit}.topbar-actions{display:flex;align-items:center;gap:.75rem}.topbar-icon-btn{position:relative;padding:.5rem;border:none;background:none;border-radius:var(--radius);color:var(--gray-600);cursor:pointer;transition:all .2s}.topbar-icon-btn:hover{background:var(--gray-100);color:var(--foreground)}.topbar-notif-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;background:var(--error);color:#fff;font-size:.625rem;font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;border:2px solid var(--card-bg)}.topbar-profile-wrapper{position:relative}.topbar-profile{display:flex;align-items:center;gap:.625rem;padding:.375rem .5rem;border:none;background:none;border-radius:var(--radius);cursor:pointer;transition:all .2s}.topbar-profile:hover{background:var(--gray-100)}.topbar-profile-info{display:flex;flex-direction:column;text-align:left}.topbar-profile-name{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.topbar-profile-role{font-size:.6875rem;color:var(--text-muted);text-transform:capitalize}.topbar-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);overflow:hidden;z-index:50}.topbar-dropdown-header{display:flex;align-items:center;gap:.75rem;padding:1rem}.topbar-dropdown-name{font-size:.875rem;font-weight:600;color:var(--text-primary)}.topbar-dropdown-email{font-size:.75rem;color:var(--text-muted)}.topbar-dropdown-divider{height:1px;background:var(--border)}.topbar-dropdown-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem 1rem;border:none;background:none;font-size:.875rem;color:var(--text-secondary);cursor:pointer;transition:all .15s}.topbar-dropdown-item:hover{background:var(--surface-2)}.topbar-dropdown-danger{color:var(--error)}.topbar-dropdown-danger:hover{background:var(--error-light)}[data-theme=dark] .topbar-search-input{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .topbar-search-input:focus{background:var(--input-bg);border-color:var(--gray-300)}[data-theme=dark] .topbar-icon-btn:hover,[data-theme=dark] .topbar-profile:hover,[data-theme=dark] .topbar-dropdown-item:hover{background:var(--gray-50)}[data-theme=dark] .topbar-search-kbd{background:var(--gray-100);border-color:var(--border);color:var(--gray-400)}@media(max-width:768px){.topbar-menu-btn{display:flex}.topbar-search,.topbar-profile-info{display:none}}.bottom-nav{display:none}@media(max-width:768px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--card-bg);border-top:1px solid var(--border);z-index:200;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--text-muted);font-size:.625rem;font-weight:500;letter-spacing:.02em;transition:color .15s;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item svg{transition:transform .15s}.bottom-nav-item.active svg{transform:translateY(-1px)}}.onboarding-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:5vh 1rem 2rem}.onboarding-modal{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl, 1.25rem);padding:2.5rem 2rem 2rem;width:100%;max-width:400px;position:relative;box-shadow:0 20px 60px #0000002e;text-align:center}.onboarding-close{position:absolute;top:1rem;right:1rem;background:var(--surface-2);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}.onboarding-close:hover{background:var(--surface-3);color:var(--text-primary)}.onboarding-step-indicator{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.75rem}.onboarding-dot{width:8px;height:8px;border-radius:9999px;background:var(--border);cursor:pointer;transition:background .2s,width .2s}.onboarding-dot.active{background:var(--accent);width:24px}.onboarding-dot.done{background:#0f766e66}.onboarding-icon-wrap{width:64px;height:64px;border-radius:1rem;background:#0f766e1a;color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.onboarding-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .625rem;letter-spacing:-.02em}.onboarding-desc{font-size:.9rem;color:var(--text-muted);line-height:1.6;margin:0 0 1.75rem}.onboarding-actions{display:flex;flex-direction:column;gap:.625rem}.onboarding-actions .btn{width:100%;justify-content:center;gap:.4rem}.onboarding-skip{margin-top:1rem;font-size:.8125rem;color:var(--text-muted);cursor:pointer;transition:color .15s}.onboarding-skip:hover{color:var(--text-secondary)}@keyframes scaleIn{0%{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-scale-in{animation:scaleIn .22s ease-out forwards}.app-shell{display:flex;height:100vh;overflow:hidden}.app-main{flex:1;margin-left:240px;display:flex;flex-direction:column;height:100vh;overflow:hidden;transition:margin-left .3s ease;background:var(--background)}.sidebar-collapsed~.app-main,.sidebar-collapsed+.app-main{margin-left:64px}.app-content{flex:1;padding:1.5rem;overflow-y:auto;background:var(--background);min-height:0}@media(max-width:768px){.app-main{margin-left:0}.app-content{padding:1rem;padding-bottom:calc(1rem + 60px + env(safe-area-inset-bottom))}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.45"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.math-content{font-size:.9rem;line-height:1.65;color:var(--foreground);word-break:break-word}.math-code-block{background:#1e2330;color:#e2e8f0;border-radius:.5rem;padding:.875rem 1rem;margin:.625rem 0;overflow-x:auto;font-family:JetBrains Mono,Fira Code,monospace;font-size:.82rem;position:relative}.math-code-lang{position:absolute;top:.4rem;right:.6rem;font-size:.7rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-family:sans-serif}.math-content .katex-display{margin:.75rem 0;overflow-x:auto}.math-content .ai-h1,.math-content .ai-h2,.math-content .ai-h3,.math-content .ai-h4{font-weight:600;color:var(--foreground);margin:.75rem 0 .25rem}.math-content .ai-h1{font-size:1.05rem}.math-content .ai-h2{font-size:.975rem}.math-content .ai-h3{font-size:.9rem}.math-content .ai-h4{font-size:.85rem}.math-content ul,.math-content ol{padding-left:1.4rem;margin:.35rem 0}.math-content li{margin:.15rem 0}.math-content .ai-table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.85rem}.math-content .ai-table th,.math-content .ai-table td{border:1px solid var(--border, #e5e7eb);padding:.4rem .75rem;text-align:left}.math-content .ai-table th{background:var(--surface-2, #f3f4f6);font-weight:600}.math-content .ai-table tr:nth-child(2n) td{background:var(--surface-1, #fafafa)}.chat-cursor{display:inline-block;width:2px;height:1em;background:var(--primary);margin-left:2px;vertical-align:text-bottom;animation:blink .9s step-end infinite}.ai-fab-wrap{position:fixed;z-index:50}.ai-fab-btn{position:relative;width:64px;height:64px;border:none;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;background:linear-gradient(135deg,#1d3557,#16324a 55%,#0f2d3c);box-shadow:0 14px 34px #08102080,0 2px 10px #03071270;transition:transform .18s ease,box-shadow .22s ease,filter .22s ease}.ai-fab-btn:hover{transform:translateY(-1px) scale(1.04);box-shadow:0 18px 40px #08102094,0 4px 14px #03071280;filter:saturate(1.04)}.ai-fab-btn:active{transform:scale(.98)}.ai-fab-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #ffffffd1,0 0 0 6px #0f766e85,0 18px 40px #0810208f}.ai-fab-ring{position:absolute;inset:-6px;border-radius:9999px;border:2px solid rgba(15,118,110,.4);opacity:0;animation:ai-fab-pulse 4s ease-in-out infinite;pointer-events:none}.ai-fab-btn.open .ai-fab-ring{opacity:0;animation:none}.ai-fab-icon{width:27px;height:27px}.ai-fab-tooltip{position:absolute;right:74px;bottom:19px;white-space:nowrap;font-size:12px;font-weight:600;color:#d7e4f5;background:#101423e6;border:1px solid rgba(72,96,130,.45);border-radius:9999px;padding:6px 10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.ai-fab-wrap:hover .ai-fab-tooltip,.ai-fab-btn:focus-visible+.ai-fab-tooltip{opacity:1;transform:translateY(0)}@keyframes ai-fab-pulse{0%{opacity:0;transform:scale(.9)}20%{opacity:.7}70%{opacity:0;transform:scale(1.1)}to{opacity:0;transform:scale(1.1)}}@media(max-width:640px){.ai-fab-btn{width:58px;height:58px}.ai-fab-tooltip{display:none}}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.75rem;max-width:min(400px,calc(100vw - 2rem));pointer-events:none}.toast-container>*{pointer-events:auto}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background:var(--card-bg);border:1px solid var(--border)}.toast-success{border-left:4px solid var(--success)}.toast-success .toast-icon{color:var(--success);flex-shrink:0}.toast-error{border-left:4px solid var(--error)}.toast-error .toast-icon{color:var(--error);flex-shrink:0}.toast-message{flex:1;font-size:.9rem;color:var(--foreground)}.toast-dismiss{display:flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;border-radius:var(--radius);color:var(--gray-500);cursor:pointer;transition:color .2s,background .2s}.toast-dismiss:hover{color:var(--foreground);background:var(--gray-100)}.toast-dismiss:focus-visible{outline:2px solid var(--primary);outline-offset:2px}[data-theme=dark] .toast{background:var(--surface-1);border-color:var(--border)}[data-theme=dark] .toast-dismiss:hover{background:var(--surface-2)}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:50;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(229,231,235,.5)}.landing-nav-inner{display:flex;align-items:center;justify-content:space-between;height:72px}.landing-nav-brand{display:flex;align-items:center;gap:.625rem}.landing-logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff}.landing-logo-text{font-family:Outfit,sans-serif;font-size:1.625rem;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#111827,#4f46e5);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-nav-links{display:flex;gap:2rem}.landing-nav-links a{font-size:.9375rem;font-weight:500;color:var(--gray-600);transition:color .2s}.landing-nav-links a:hover{color:var(--primary)}.landing-nav-actions{display:flex;gap:.75rem}.landing-hero{position:relative;padding:8rem 0 5rem;overflow:hidden;min-height:85vh;display:flex;align-items:center}.landing-hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(79,70,229,.08),transparent),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(139,92,246,.06),transparent),linear-gradient(180deg,var(--card-bg) 0%,var(--gray-50) 100%);z-index:-1}.landing-hero-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.landing-hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem 1rem;background:var(--primary-50);color:var(--primary);border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;margin-bottom:1.5rem;border:1px solid var(--primary-100)}.landing-hero-title{font-size:3.5rem;font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--gray-900);margin-bottom:1.5rem}.landing-hero-gradient{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.landing-hero-desc{font-size:1.125rem;color:var(--gray-600);line-height:1.7;margin-bottom:2rem;max-width:520px}.landing-hero-ctas{display:flex;gap:1rem;margin-bottom:2.5rem}.landing-hero-trust{display:flex;gap:1.5rem;flex-wrap:wrap}.landing-trust-item{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--gray-600);font-weight:500}.landing-trust-item svg{color:var(--success)}.landing-hero-mockup{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl),0 0 60px #4f46e51a;overflow:hidden;border:1px solid var(--gray-200)}.mockup-header{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.mockup-dots{display:flex;gap:6px}.mockup-dots span{width:10px;height:10px;border-radius:50%;background:var(--gray-300)}.mockup-dots span:first-child{background:#ef4444}.mockup-dots span:nth-child(2){background:#f59e0b}.mockup-dots span:nth-child(3){background:#10b981}.mockup-title{font-size:.8125rem;font-weight:600;color:var(--gray-700)}.mockup-body{padding:1.25rem;display:flex;flex-direction:column;gap:.875rem}.mockup-msg{padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.8125rem;line-height:1.5}.mockup-msg-user{background:var(--primary);color:#fff;align-self:flex-end;max-width:80%}.mockup-msg-ai{background:var(--gray-50);color:var(--gray-700);border:1px solid var(--gray-200)}.mockup-ai-header{display:flex;align-items:center;gap:.375rem;font-weight:600;color:var(--primary);margin-bottom:.375rem;font-size:.75rem}.mockup-typing{display:flex;gap:4px;padding:.75rem 1rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);width:fit-content}.mockup-typing span{width:8px;height:8px;border-radius:50%;background:var(--gray-400);animation:pulse 1.5s ease-in-out infinite}.mockup-typing span:nth-child(2){animation-delay:.2s}.mockup-typing span:nth-child(3){animation-delay:.4s}.landing-section-header{text-align:center;max-width:600px;margin:0 auto 3.5rem}.landing-section-header h2{margin:.75rem 0;font-size:2.25rem}.landing-section-header p{color:var(--gray-600);font-size:1.0625rem}.landing-features{padding:6rem 0;background:var(--card-bg)}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.landing-feature-card{padding:2rem;border-radius:var(--radius-lg);border:1px solid var(--gray-200);transition:all .3s ease;cursor:pointer}.landing-feature-card:hover{border-color:var(--primary-200);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.landing-feature-icon{width:3rem;height:3rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.landing-feature-card h3{font-size:1.125rem;margin-bottom:.5rem}.landing-feature-card p{font-size:.9rem;color:var(--gray-600);line-height:1.6;margin-bottom:1rem}.landing-feature-link{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;color:var(--primary);font-size:.875rem;font-weight:600;cursor:pointer;padding:0;transition:gap .2s}.landing-feature-link:hover{gap:.5rem}.landing-differ{padding:6rem 0;background:var(--gray-50)}.landing-differ-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.landing-differ-text h2{margin:.75rem 0 1rem}.landing-differ-text>p{color:var(--gray-600);line-height:1.7;margin-bottom:2rem}.landing-differ-list{display:flex;flex-direction:column;gap:1.25rem}.landing-differ-item{display:flex;gap:.875rem;align-items:flex-start}.landing-differ-item strong{display:block;font-size:.9375rem;color:var(--gray-900)}.landing-differ-item span{font-size:.8125rem;color:var(--gray-500)}.landing-differ-table table{width:100%;border-collapse:separate;border-spacing:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.landing-differ-table th,.landing-differ-table td{padding:.875rem 1.25rem;text-align:left;font-size:.875rem}.landing-differ-table thead{background:var(--gray-900);color:#fff}.landing-differ-table thead th{font-weight:600}.landing-differ-table tbody tr{background:var(--card-bg);border-bottom:1px solid var(--gray-100)}.landing-differ-table tbody tr:hover{background:var(--gray-50)}.landing-differ-table .highlight{color:var(--primary);font-weight:600}.landing-subjects{padding:6rem 0;background:var(--card-bg)}.landing-subjects-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.landing-subject-chip{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--primary-50);color:var(--primary);border:1.5px solid var(--primary-200);border-radius:var(--radius-full);font-size:.9375rem;font-weight:600;transition:all .2s;cursor:pointer}.landing-subject-chip:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.landing-testimonials{padding:6rem 0;background:var(--gray-50)}.landing-testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.landing-testimonial-card{background:var(--card-bg);padding:2rem;border-radius:var(--radius-lg);border:1px solid var(--gray-200);transition:all .3s}.landing-testimonial-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.landing-testimonial-stars{display:flex;gap:2px;margin-bottom:1rem}.landing-testimonial-text{font-size:.9375rem;color:var(--gray-700);line-height:1.7;margin-bottom:1.5rem;font-style:italic}.landing-testimonial-author{display:flex;align-items:center;gap:.75rem}.landing-testimonial-name{font-weight:600;font-size:.875rem;color:var(--gray-900)}.landing-testimonial-role{font-size:.75rem;color:var(--gray-500)}.landing-cta{padding:6rem 0;background:linear-gradient(135deg,var(--primary),var(--accent));position:relative;overflow:hidden}.landing-cta:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1),transparent 50%),radial-gradient(circle at 80% 50%,rgba(255,255,255,.05),transparent 50%)}.landing-cta-content{text-align:center;position:relative;z-index:1}.landing-cta h2{color:#fff;font-size:2.5rem;margin-bottom:1rem}.landing-cta p{color:#ffffffd9;font-size:1.125rem;margin-bottom:2rem}.landing-cta-btn{background:#fff!important;color:var(--primary)!important;font-weight:700}.landing-cta-btn:hover{transform:translateY(-2px)!important;box-shadow:var(--shadow-xl)!important}.landing-footer{background:var(--primary-900);color:#ffffffb3;padding:4rem 0 0}.landing-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.1)}.landing-footer-brand p{font-size:.875rem;line-height:1.6;margin:1rem 0}.landing-footer-social{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.landing-footer h4{color:#fff;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:1.25rem}.landing-footer-grid>div:not(:first-child){display:flex;flex-direction:column;gap:.625rem}.landing-footer-grid a{color:#fff9;font-size:.875rem;transition:color .2s}.landing-footer-grid a:hover{color:#fff}.landing-footer-bottom{padding:1.5rem 0;text-align:center;font-size:.8125rem;color:#fff6}@media(max-width:1024px){.landing-hero-content{grid-template-columns:1fr;text-align:center}.landing-hero-desc{margin:0 auto 2rem}.landing-hero-ctas,.landing-hero-trust{justify-content:center}.landing-hero-visual{display:none}.landing-hero-title{font-size:2.75rem}.landing-features-grid{grid-template-columns:repeat(2,1fr)}.landing-differ-content{grid-template-columns:1fr}.landing-testimonials-grid{grid-template-columns:repeat(2,1fr)}.landing-footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.landing-nav-links{display:none}.landing-hero{padding:6rem 0 3rem;min-height:auto}.landing-hero-title{font-size:2rem}.landing-features-grid,.landing-testimonials-grid,.landing-footer-grid{grid-template-columns:1fr}.landing-hero-ctas{flex-direction:column;align-items:center}}[data-theme=dark] .landing-nav{background:#070a0feb;border-bottom-color:var(--border)}[data-theme=dark] .landing-hero-bg{background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(31,168,154,.2),transparent),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(79,124,172,.12),transparent),linear-gradient(180deg,var(--background) 0%,#0B1119 100%)}[data-theme=dark] .landing-hero-title{color:var(--foreground)}[data-theme=dark] .landing-logo-text{background:linear-gradient(135deg,#f9fafb,#9cc7ff);-webkit-background-clip:text;background-clip:text;color:transparent}[data-theme=dark] .landing-feature-card{background:var(--surface-1);border-color:var(--border)}[data-theme=dark] .landing-feature-card h3{color:var(--foreground)}[data-theme=dark] .landing-feature-card p,[data-theme=dark] .landing-section-header p,[data-theme=dark] .landing-hero-desc,[data-theme=dark] .landing-differ-text>p,[data-theme=dark] .landing-differ-item span,[data-theme=dark] .landing-testimonial-role{color:var(--gray-600)}[data-theme=dark] .landing-section-header h2{color:var(--foreground)}[data-theme=dark] .landing-differ{background:#0a0f17;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}[data-theme=dark] .landing-differ-text h2,[data-theme=dark] .landing-differ-item strong{color:var(--foreground)}[data-theme=dark] .landing-differ-table thead{background:#1a2433}[data-theme=dark] .landing-differ-table tbody tr{background:var(--card-bg);border-color:var(--border)}[data-theme=dark] .landing-differ-table tbody tr:hover{background:var(--surface-3)}[data-theme=dark] .landing-differ-table td{color:var(--foreground);border-color:var(--border)}[data-theme=dark] .landing-subjects{background:#0b1119;border-bottom:1px solid var(--border)}[data-theme=dark] .landing-testimonials{background:#0a0f17}[data-theme=dark] .landing-testimonial-card{background:var(--surface-1);border-color:var(--border)}[data-theme=dark] .landing-testimonial-name{color:var(--foreground)}[data-theme=dark] .landing-testimonial-text{color:var(--gray-700)}[data-theme=dark] .landing-hero-mockup{border-color:var(--border)}[data-theme=dark] .mockup-header{background:var(--surface-3);border-color:var(--border)}[data-theme=dark] .mockup-title{color:var(--foreground)}[data-theme=dark] .mockup-msg-ai{background:var(--surface-3);color:var(--foreground);border-color:var(--border)}[data-theme=dark] .mockup-typing{background:var(--surface-3);border-color:var(--border)}[data-theme=dark] .landing-nav-links a{color:var(--gray-600)}[data-theme=dark] .landing-nav-links a:hover{color:var(--foreground)}[data-theme=dark] .landing-nav-actions .btn-ghost{color:var(--text-secondary)}[data-theme=dark] .landing-nav-actions .btn-ghost:hover{background:var(--surface-2);color:var(--text-primary)}[data-theme=dark] .landing-nav-actions .btn-primary{background:#1f4e61}[data-theme=dark] .landing-nav-actions .btn-primary:hover{background:#23677e}[data-theme=dark] .landing-subject-chip{background:var(--surface-3);color:var(--gray-700);border:1px solid var(--border)}[data-theme=dark] .landing-subject-chip:hover{background:#1f4e61;color:#fff;border-color:#23677e}[data-theme=dark] .landing-hero-badge{background:var(--surface-3);color:var(--gray-700);border-color:var(--border)}[data-theme=dark] .landing-trust-item{color:var(--gray-600)}[data-theme=dark] .landing-features{background:#0b1119;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}[data-theme=dark] .landing-footer{background:#05080d}.join-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background);padding:1.5rem}.join-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2rem;max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;box-shadow:0 8px 32px #00000040}.join-logo{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:800;color:var(--accent);margin-bottom:.5rem}.join-card h2{font-size:1.375rem;font-weight:800;color:var(--text-primary);margin:0}.join-card p{font-size:.9375rem;color:var(--text-secondary);line-height:1.6;margin:0}.join-sub{font-size:.8125rem!important;color:var(--text-muted)!important}.join-spinner{color:var(--accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.join-success-icon{color:#5fa89c}.join-error-icon{color:#c86f7a}.join-btn{margin-top:.5rem;width:100%;justify-content:center}.auth-page{display:flex;min-height:100vh}.auth-left{width:45%;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.auth-left:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.1),transparent 40%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.08),transparent 40%)}.auth-left-content{position:relative;z-index:1;text-align:center;padding:2rem;color:#fff}.auth-left-brand{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.5rem}.auth-left-brand .landing-logo-icon{background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-left-logo{font-family:Outfit,sans-serif;font-size:1.875rem;font-weight:800;letter-spacing:-.02em;color:#fff}.auth-left-tagline{font-size:1rem;color:#ffffffbf;margin-bottom:3rem}.auth-left-illustration{position:relative;width:280px;height:280px;margin:0 auto 3rem}.auth-illustration-orb{position:absolute;border-radius:50%;opacity:.3;animation:float 6s ease-in-out infinite}.auth-orb-1{width:200px;height:200px;background:#ffffff26;top:10%;left:10%}.auth-orb-2{width:140px;height:140px;background:#ffffff1a;top:40%;right:5%;animation-delay:-2s}.auth-orb-3{width:100px;height:100px;background:#ffffff14;bottom:5%;left:20%;animation-delay:-4s}.auth-illustration-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:#ffffff26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:24px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 20px 40px #00000026}.auth-left-features{display:flex;justify-content:center;gap:1.5rem}.auth-feature-item{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.8125rem;color:#ffffffbf}.auth-feature-icon{width:40px;height:40px;border-radius:12px;background:#ffffff26;display:flex;align-items:center;justify-content:center;color:#fff}.auth-right{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--background)}.auth-form-container{width:100%;max-width:420px}.auth-title{font-size:1.75rem;font-weight:800;margin-bottom:.375rem}.auth-subtitle{color:var(--text-muted);font-size:.9375rem;margin-bottom:1.75rem}.auth-error{padding:.75rem 1rem;background:var(--error-light);color:var(--error-dark);border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem;border-left:3px solid var(--error)}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.auth-field label{display:block;font-size:.8125rem;font-weight:600;color:var(--text-secondary);margin-bottom:.375rem}.auth-input-wrapper{position:relative}.auth-input-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none}.auth-input-with-icon{padding-left:2.75rem!important}.auth-eye-btn{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gray-400);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm)}.auth-eye-btn:hover{color:var(--gray-600)}.auth-row{display:flex;align-items:center;justify-content:space-between}.auth-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--gray-600);cursor:pointer}.auth-checkbox{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.auth-role-label{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;padding:.75rem;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.auth-role-label:hover{background:var(--surface-3)}.auth-role-text{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--text-secondary);font-weight:500}.auth-role-icon{flex-shrink:0;color:var(--primary)}.auth-role-hint{margin:.35rem 0 0 1.75rem;font-size:.75rem;color:var(--text-muted);line-height:1.3}.auth-link{font-size:.8125rem;color:var(--primary);font-weight:500}.auth-link:hover{color:var(--primary-dark)}.auth-submit{width:100%;height:48px;margin-top:.25rem}.auth-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.auth-password-strength{display:flex;align-items:center;gap:.5rem;margin-top:.375rem}.auth-strength-bar{flex:1;height:4px;background:var(--gray-200);border-radius:2px;overflow:hidden}.auth-strength-fill{height:100%;border-radius:2px;transition:all .3s ease}.auth-field-error{font-size:.75rem;color:var(--error);margin-top:.25rem}.auth-social-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}.auth-social-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;height:44px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.auth-social-btn:hover{background:var(--surface-2);border-color:var(--gray-300)}.auth-footer-text{text-align:center;font-size:.875rem;color:var(--text-muted);margin-top:1.5rem}.auth-link-bold{color:var(--primary);font-weight:600}@media(max-width:900px){.auth-left{display:none}.auth-right{padding:1.5rem}}.forgot-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background);padding:1.5rem}.forgot-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl, 1.25rem);padding:2.5rem 2rem;width:100%;max-width:420px;box-shadow:0 4px 24px #0000000f;text-align:center}.forgot-logo{width:48px;height:48px;border-radius:.875rem;background:#0f766e1a;color:var(--accent);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.forgot-title{font-size:1.375rem;font-weight:800;color:var(--text-primary);letter-spacing:-.025em;margin:0 0 .5rem}.forgot-sub{font-size:.9rem;color:var(--text-muted);margin:0 0 1.5rem;line-height:1.55}.forgot-form{display:flex;flex-direction:column;gap:1rem}.forgot-success{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:.5rem 0}.forgot-success-icon{width:72px;height:72px;border-radius:50%;background:#0f766e1a;color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.forgot-success h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0}.forgot-success p{font-size:.875rem;color:var(--text-muted);line-height:1.6;margin:0}.forgot-success-hint{font-size:.8125rem!important}.forgot-resend-btn{background:none;border:none;color:var(--accent);font-size:inherit;cursor:pointer;padding:0;text-decoration:underline}.forgot-back{display:inline-flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--text-muted);text-decoration:none;margin-top:1.5rem;transition:color .15s}.forgot-back:hover{color:var(--text-primary)}.empty-state{text-align:center;padding:2.5rem 1.5rem;color:var(--gray-500)}.empty-state-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;margin:0 auto 1rem;border-radius:var(--radius-lg);background:var(--gray-100);color:var(--gray-400)}.empty-state-title{font-size:1.1rem;font-weight:600;color:var(--foreground);margin:0 0 .5rem}.empty-state-desc{font-size:.9rem;color:var(--gray-500);margin:0 0 1.25rem;max-width:320px;margin-left:auto;margin-right:auto}.empty-state-action{margin-top:.5rem}[data-theme=dark] .empty-state-icon{background:var(--surface-2);color:var(--text-muted)}.dashboard{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.dash-welcome{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;background:linear-gradient(135deg,var(--surface-2),var(--surface-3));border-radius:var(--radius-lg);border:1px solid var(--border)}.dash-welcome-title{font-size:1.5rem;font-weight:700}.dash-welcome-sub{color:var(--text-secondary);font-size:.9375rem;margin-top:.25rem}.dash-streak-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow);border:1px solid var(--border)}.dash-streak-icon{color:#b59a63}.dash-streak-value{display:block;font-weight:700;font-size:.9375rem;color:var(--text-primary)}.dash-streak-label{font-size:.75rem;color:var(--text-muted)}.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.dash-stat-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border);transition:all .2s}.dash-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.dash-stat-icon{width:3.25rem;height:3.25rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-stat-info{display:flex;flex-direction:column}.dash-stat-value{font-size:1.75rem;font-weight:800;color:var(--text-primary);line-height:1}.dash-stat-label{font-size:.8125rem;color:var(--text-muted);margin-top:.125rem}.dash-stat-change{font-size:.6875rem;color:var(--success);font-weight:500;margin-top:.25rem}.dash-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem}.dash-section{background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border);padding:1.5rem}.dash-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.dash-section-header h2{font-size:1.125rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.dash-courses{display:flex;flex-direction:column;gap:.875rem}.dash-course-card{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;transition:all .2s}.dash-course-card:hover{background:var(--surface-2);border-color:var(--gray-300)}.dash-course-card.dash-course-skeleton{cursor:default;pointer-events:none}.dash-course-card.dash-course-skeleton:hover{background:transparent;border-color:var(--border)}.dash-stat-skeleton-value{width:3rem;height:1.75rem;border-radius:var(--radius-sm)}.dash-course-skeleton-thumb{width:3rem;height:3rem;border-radius:var(--radius);flex-shrink:0}.dash-course-skeleton-title{height:.9rem;width:70%;border-radius:var(--radius-sm)}.dash-course-skeleton-code{height:.75rem;width:40%;border-radius:var(--radius-sm);margin-top:.5rem}.dash-course-skeleton-bar{height:.5rem;width:100%;border-radius:var(--radius-full);margin-top:.75rem}.dash-course-skeleton-btn{width:5rem;height:2rem;border-radius:var(--radius);flex-shrink:0}.dash-course-thumb{width:3rem;height:3rem;border-radius:var(--radius);background:var(--surface-3);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.dash-course-info{flex:1;min-width:0}.dash-course-info h4{font-size:.9rem;font-weight:600;margin-bottom:.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-course-code{font-size:.75rem;color:var(--text-muted)}.dash-course-meta{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--text-muted);margin-top:.25rem}.dash-deadlines{display:flex;flex-direction:column;gap:.75rem}.dash-deadline-item{display:flex;align-items:center;gap:.875rem;padding:.875rem;border-radius:var(--radius);border:1px solid var(--border);transition:all .2s}.dash-deadline-item:hover{background:var(--surface-2)}.dash-deadline-icon{width:2.5rem;height:2.5rem;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-deadline-info{flex:1;min-width:0}.dash-deadline-info h4{font-size:.8125rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-deadline-info span{font-size:.6875rem;color:var(--text-muted)}.dash-deadline-due{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.dash-deadline-date{font-size:.6875rem;color:var(--text-muted)}.dash-recommended{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.dash-rec-card{padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--border);display:flex;flex-direction:column;gap:.625rem;transition:all .2s;cursor:pointer;background:var(--surface-1)}.dash-rec-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dash-rec-icon{width:2.5rem;height:2.5rem;border-radius:var(--radius);background:#1fa89a24;color:var(--accent);display:flex;align-items:center;justify-content:center}.dash-rec-card h4{font-size:.875rem;font-weight:600}.dash-rec-meta{font-size:.75rem;color:var(--text-muted)}@media(max-width:1024px){.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.dash-recommended{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dash-welcome{flex-direction:column;gap:1rem;text-align:center}.dash-stats{grid-template-columns:1fr 1fr}.dash-grid,.dash-recommended{grid-template-columns:1fr}}.dash-error{padding:.75rem 1rem;background:var(--error-light);color:var(--error-dark);border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);font-size:.875rem}.dash-loading,.dash-empty{padding:1rem;color:var(--text-muted);font-size:.875rem}.dash-plan-empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1rem;color:var(--text-muted);text-align:center}.dash-plan-empty p{font-size:.875rem;max-width:420px}.dash-plan-loading{display:flex;align-items:center;gap:.75rem;padding:1.5rem 0;color:var(--text-muted);font-size:.875rem}.dash-plan-priorities{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.dash-plan-priority-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.dash-plan-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.875rem;margin-bottom:.75rem}.dash-plan-day{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:.875rem}.dash-plan-day-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.dash-plan-day-name{font-size:.8125rem;font-weight:700;color:var(--foreground);text-transform:uppercase;letter-spacing:.05em}.dash-plan-day-hours{font-size:.75rem;color:var(--text-muted);background:var(--surface-3);padding:.1rem .4rem;border-radius:var(--radius-full);border:1px solid var(--border)}.dash-plan-sessions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.dash-plan-sessions li{font-size:.78rem;color:var(--text-secondary);line-height:1.4;padding-left:.75rem;position:relative}.dash-plan-sessions li:before{content:"";position:absolute;left:0;top:.45em;width:4px;height:4px;border-radius:50%;background:var(--accent)}.dash-plan-toggle{margin-top:.25rem;display:flex;align-items:center;gap:.3rem}.dash-plan-summary{font-size:.8125rem;color:var(--text-muted);line-height:1.6;border-top:1px solid var(--border);padding-top:.75rem;margin-top:.5rem}.pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.pagination-info{font-size:.875rem;color:var(--text-secondary)}.pagination-total{color:var(--text-muted);font-weight:400}.pagination-buttons{display:flex;gap:.5rem}.pagination-buttons button:disabled{opacity:.5;cursor:not-allowed}.courses-page{padding:2rem;background:var(--background)}.courses-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.courses-header h1{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.courses-header p{color:var(--text-muted);margin-top:.25rem}.courses-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.courses-search{display:flex;align-items:center;gap:.75rem;flex:1;max-width:420px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);padding:.6rem 1rem;transition:border-color .2s}.courses-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--ring-rgb),.14)}.courses-search svg{color:var(--gray-400);flex-shrink:0}.courses-search input{border:none;background:none;outline:none;width:100%;font-size:.9rem;color:var(--foreground)}.courses-toolbar-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.courses-filter-toggle{display:flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;font-size:.85rem;font-weight:500;color:var(--text-secondary);transition:all .2s}.courses-filter-toggle:hover,.courses-filter-toggle.active{border-color:var(--gray-300);color:var(--foreground);background:var(--surface-2)}.courses-view-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius)}.courses-view-toggle button{padding:.5rem .7rem;background:var(--surface-2);border:none;cursor:pointer;color:var(--gray-400);transition:all .2s}.courses-view-toggle button.active{background:var(--accent);color:#fff}.courses-filters{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.25rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.5rem}.courses-filter-group label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}.courses-filter-group select{padding:.4rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;background:var(--input-bg);color:var(--foreground);cursor:pointer}.courses-result-count{margin-left:auto;font-size:.8rem;color:var(--text-muted);font-weight:500}.courses-grid{display:grid;gap:1.25rem}.courses-grid.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.courses-grid.list{grid-template-columns:1fr}.course-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform .2s,box-shadow .2s}.course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--accent)}.course-card.list{display:flex}.course-card-thumb{height:140px;background:linear-gradient(135deg,var(--surface-2),color-mix(in srgb,var(--surface-3) 80%,var(--surface-2) 20%));display:flex;align-items:center;justify-content:center;position:relative}.course-card.list .course-card-thumb{height:auto;width:160px;min-height:140px;flex-shrink:0}.course-card-emoji{font-size:3rem}.course-card-badge{position:absolute;top:.75rem;right:.75rem;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:.7rem;font-weight:700;color:#f8fafc;text-transform:uppercase;letter-spacing:.03em}.course-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.course-card-top{display:flex;align-items:center;justify-content:space-between}.course-card-code{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.course-card-rating{display:flex;align-items:center;gap:.25rem;font-size:.8rem;font-weight:600;color:var(--text-secondary)}.course-card-title{font-size:1.05rem;font-weight:700;color:var(--text-primary);line-height:1.3}.course-card-instructor{font-size:.8rem;color:var(--text-muted)}.course-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.course-card-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted);flex-wrap:wrap}.course-card-meta span{display:flex;align-items:center;gap:.3rem}.course-card-progress{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.course-card-progress-bar{flex:1;height:6px;background:var(--surface-3);border-radius:3px}.course-card-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-dark));border-radius:3px;transition:width .5s ease}.course-card-progress span{font-size:.75rem;font-weight:600;color:var(--accent);min-width:32px;text-align:right}.course-card-admin-stats{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted);padding:.5rem 0;border-top:1px solid var(--border);margin-top:.25rem}.course-card-admin-stats span{display:flex;align-items:center;gap:.3rem}.course-card-footer{margin-top:auto;padding-top:.75rem}.course-card-admin-actions{display:flex;gap:.5rem;flex-wrap:wrap}.course-card-delete-confirm{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--error)}.course-card-skeleton{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.course-card-skeleton.grid{display:flex;flex-direction:column}.course-card-skeleton.list{display:flex;flex-direction:row}.course-card-skeleton-thumb{height:120px;border-radius:0}.course-card-skeleton.list .course-card-skeleton-thumb{width:140px;height:auto;min-height:100px;flex-shrink:0}.course-card-skeleton-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.course-card-skeleton-line{height:.875rem;border-radius:var(--radius-sm)}.course-card-skeleton-meta{display:flex;gap:.5rem;margin-top:.25rem}.course-card-skeleton-chip{width:4rem;height:.75rem;border-radius:var(--radius-sm)}.course-card-skeleton-btn{height:2.25rem;width:100%;max-width:120px;border-radius:var(--radius);margin-top:.5rem}[data-theme=dark] .course-card-skeleton{background:#1a1d27;border-color:#2d3348}[data-theme=dark] .skeleton{background:linear-gradient(90deg,#2d3348 25%,#1e2130,#2d3348 75%);background-size:200% 100%}.courses-empty{text-align:center;padding:4rem 2rem;color:var(--text-muted)}.courses-empty h3{margin-top:1rem;color:var(--text-secondary)}.courses-empty p{margin-top:.5rem}.course-modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:5vh 1rem 2rem}.course-modal{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:600px;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);max-height:84vh}.course-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.course-modal-header h2{font-size:1.2rem;font-weight:700;color:var(--text-primary)}.course-modal-close{background:none;border:none;cursor:pointer;color:var(--gray-400);padding:.25rem;border-radius:var(--radius-sm);transition:all .2s}.course-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.course-modal-body{padding:1.5rem;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.course-modal-field label{display:block;font-weight:600;font-size:.85rem;color:var(--text-secondary);margin-bottom:.35rem}.course-modal-field .input{width:100%}.course-modal-field textarea.input{resize:vertical;min-height:70px}.course-modal-field select.input{cursor:pointer}.course-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.course-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border)}[data-theme=dark] .course-modal-header h2,[data-theme=dark] .course-modal-field label{color:var(--foreground)}[data-theme=dark] .course-modal-field .input{background:var(--input-bg);border-color:var(--border);color:var(--foreground)}[data-theme=dark] .courses-filters{background:var(--card-bg);border-color:var(--border)}[data-theme=dark] .courses-empty h3{color:var(--foreground)}@media(max-width:768px){.courses-page{padding:1rem}.courses-header{flex-direction:column;gap:.75rem}.courses-toolbar{flex-wrap:wrap}.courses-search{max-width:100%}.courses-grid.grid{grid-template-columns:1fr}.course-card.list{flex-direction:column}.course-card.list .course-card-thumb{width:100%;height:100px}.course-modal-row{grid-template-columns:1fr}}.courses-error{padding:.75rem 1rem;background:var(--error-50, #fef2f2);color:var(--error, #b91c1c);border:1px solid var(--error-200, #fecaca);border-radius:var(--radius-md);margin-bottom:1rem}.courses-loading{padding:1rem;color:var(--text-muted)}.course-card-badge{background:#5e8d83}.course-card-badge:where(:not([style])){background:#5e8d83}.course-card-admin-actions .btn{border-width:1px}[data-theme=dark] .courses-search,[data-theme=dark] .courses-filter-toggle,[data-theme=dark] .courses-view-toggle button,[data-theme=dark] .courses-filters{background:var(--surface-2)}[data-theme=dark] .course-card{background:var(--surface-1)}[data-theme=dark] .course-card-thumb{background:linear-gradient(135deg,#182333,#16202e)}[data-theme=dark] .course-card-rating{color:var(--text-secondary)}[data-theme=dark] .course-card-progress-bar{background:var(--surface-3)}[data-theme=dark] .course-card:hover{border-color:var(--accent);box-shadow:0 10px 20px -10px #0009}.file-dropzone-wrapper{width:100%}.file-dropzone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;position:relative}.file-dropzone:hover:not(.file-dropzone-disabled):not(.file-dropzone-has-file){border-color:var(--accent);background:#1fa89a1f}.file-dropzone-dragging{border-color:var(--accent);background:#1fa89a24}.file-dropzone-disabled{cursor:not-allowed;opacity:.7}.file-dropzone-has-file{border-style:solid;border-color:var(--success);background:var(--success-50)}.file-dropzone-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-dropzone-input:disabled{cursor:not-allowed}.file-dropzone-icon{color:var(--gray-400);display:block;margin:0 auto .5rem}.file-dropzone-text{display:block;font-size:.9rem;color:var(--text-secondary)}.file-dropzone-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.file-dropzone-file{display:inline-flex;align-items:center;gap:.5rem}.file-dropzone-filename{font-size:.9rem;font-weight:500;color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-dropzone-clear{display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-sm)}.file-dropzone-clear:hover{color:var(--error);background:var(--error-50)}.file-dropzone-error{margin:.5rem 0 0;font-size:.8rem;color:var(--error)}.confirm-modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:5vh 1rem 2rem}.confirm-modal{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:400px;overflow:hidden}.confirm-modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.confirm-modal-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.confirm-modal-message{margin:0;padding:1.25rem 1.5rem;font-size:.9375rem;color:var(--text-secondary);line-height:1.5}.confirm-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border);background:var(--surface-2)}[data-theme=dark] .confirm-modal{background:var(--card-bg);border-color:var(--border)}[data-theme=dark] .confirm-modal-header{border-bottom-color:var(--border)}[data-theme=dark] .confirm-modal-title{color:var(--foreground)}[data-theme=dark] .confirm-modal-message{color:var(--text-secondary)}[data-theme=dark] .confirm-modal-footer{background:var(--surface-2);border-top-color:var(--border)}[data-theme=dark] .confirm-modal .btn-outline{color:var(--text-secondary);border-color:var(--border)}[data-theme=dark] .confirm-modal .btn-outline:hover:not(:disabled){background:var(--surface-3);color:var(--text-primary)}.cd-page{width:100%;margin:0 auto;background-color:var(--background);min-height:100vh}.cd-tabs-wrapper{display:flex;align-items:center;padding:.5rem 1rem 0;border-bottom:1px solid var(--border);background:var(--surface-2);position:sticky;top:0;z-index:10}.cd-back-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);padding:.5rem;border-radius:50%;cursor:pointer;transition:background .2s;margin-right:1.5rem}.cd-back-btn:hover{background:var(--gray-100)}.cd-cr-tabs{display:flex;gap:1rem}.cd-cr-tab{padding:1rem 1.5rem;border:none;background:none;cursor:pointer;font-weight:500;font-size:.95rem;color:var(--text-secondary);border-bottom:3px solid transparent;transition:all .2s;border-radius:4px 4px 0 0}.cd-cr-tab:hover{background:var(--gray-50)}.cd-cr-tab.active{color:var(--text-primary);border-bottom-color:var(--accent);background:#1fa89a24}.cd-stream-container{max-width:1000px;margin:1.5rem auto;display:grid;grid-template-columns:200px 1fr;gap:1.5rem;padding:0 1.5rem}.cd-stream-sidebar{display:flex;flex-direction:column}.cd-upcoming-box{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.cd-upcoming-box h4{font-size:.9rem;font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.cd-upcoming-box p{font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.cd-upcoming-link{font-size:.85rem;color:var(--accent);text-decoration:none;font-weight:500;display:block;text-align:right}.cd-stream-main{display:flex;flex-direction:column;gap:1.5rem}.cd-cr-banner{height:240px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#1a2433,#141b24);position:relative;color:#fff;box-shadow:0 1px 3px #0000001a}.cd-cr-banner-content{position:absolute;bottom:0;left:0;padding:1.5rem 2rem}.cd-cr-banner-content h1{font-size:2.25rem;font-weight:600;margin:0 0 .25rem;letter-spacing:-.02em}.cd-cr-banner-content p{font-size:1.1rem;opacity:.9;margin:0}.cd-compose-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 1px 2px #0000000d}.cd-compose-trigger{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;cursor:pointer;background:var(--surface-1);transition:background .2s}.cd-compose-trigger:hover{background:var(--gray-50)}.cd-compose-trigger span{color:var(--gray-600);font-size:.95rem}.cd-compose-editor{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;background:var(--surface-2);border-top:1px solid var(--border)}.cd-editor-top textarea{width:100%;min-height:100px;border:none;background:transparent;resize:none;font-size:.95rem;outline:none;color:var(--gray-900)}.cd-editor-tools{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:.75rem}.cd-editor-icons,.cd-editor-actions{display:flex;gap:.5rem}.cd-cw-item-right .btn-icon{background:none;border:none;padding:.5rem;border-radius:var(--radius);color:var(--gray-600);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.cd-cw-item-right .btn-icon:hover:not(:disabled){background:#1fa89a24;color:var(--accent)}.cd-cw-item-right .btn-icon:last-of-type:hover:not(:disabled){background:var(--error-50, rgba(254, 226, 226, .5));color:var(--error, #dc2626)}.cd-feed{display:flex;flex-direction:column;gap:1.5rem}.cd-feed-item{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.cd-feed-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem}.cd-feed-icon{display:flex;align-items:center;justify-content:center}.cd-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.2rem}.cd-icon-badge{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cd-feed-meta{flex:1}.cd-feed-author{font-size:.95rem;font-weight:500;color:var(--text-primary);margin:0}.cd-feed-date{font-size:.8rem;color:var(--text-muted);margin:0}.cd-feed-body{padding:0 1.5rem 1.25rem;font-size:.95rem;color:var(--text-secondary);white-space:pre-wrap;line-height:1.6}.cd-feed-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-100);display:flex;align-items:center}.cd-classwork-container{max-width:800px;margin:2rem auto;padding:0 1.5rem}.cd-cw-actions{display:flex;align-items:center;margin-bottom:2rem}.cd-create-dropdown{position:relative}.cd-dropdown-menu{position:absolute;top:calc(100% + .5rem);left:0;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:200px;z-index:100;display:flex;flex-direction:column;padding:.5rem 0}.cd-dropdown-menu button{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;background:none;border:none;text-align:left;width:100%;color:var(--gray-700);font-size:.9rem;cursor:pointer}.cd-dropdown-menu button:hover{background:var(--gray-100)}.cd-divider{height:1px;background:var(--border);margin:.5rem 0}.cd-topics-view{display:flex;flex-direction:column;gap:3rem}.cd-topic-group{display:flex;flex-direction:column}.cd-topic-title{font-size:1.75rem;font-weight:400;color:var(--text-primary);margin-bottom:1rem;border-bottom:1px solid var(--accent);padding-bottom:.5rem}.cd-topic-items{display:flex;flex-direction:column}.cd-cw-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--gray-200);cursor:pointer}.cd-cw-item:hover{background:var(--gray-100)}.cd-cw-item-left{display:flex;align-items:center;gap:1rem}.cd-cw-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cd-cw-title{font-size:.95rem;font-weight:500;color:var(--text-primary)}.cd-cw-item-right{display:flex;align-items:center;gap:1rem}.cd-cw-due{font-size:.85rem;color:var(--text-muted)}.cd-cw-empty{padding:2rem;text-align:center;color:var(--gray-600);font-size:.9rem;border:1px dashed var(--gray-300);border-top:none;background:var(--gray-50)}.cd-people-container{max-width:800px;margin:2rem auto;padding:0 1.5rem;display:flex;flex-direction:column;gap:3rem}.cd-people-section h2{font-size:1.75rem;font-weight:400;color:var(--text-primary);margin-bottom:1rem;border-bottom:1px solid var(--accent);padding-bottom:.5rem}.cd-person{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--gray-200)}.cd-modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:5vh 1rem 2rem}.cd-modal{background:var(--card-bg);border-radius:var(--radius-lg);width:100%;max-width:600px;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);max-height:90vh}.cd-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.cd-modal-body{padding:1.5rem;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.cd-modal-field label{display:block;font-weight:500;font-size:.85rem;color:var(--gray-700);margin-bottom:.35rem}.cd-modal-field-full{width:100%}.cd-modal-field-label-optional{display:block;font-size:.8rem;color:var(--gray-500);margin-top:.5rem;margin-bottom:.25rem}.cd-modal-inline-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;margin:0 1.5rem 1rem;background:var(--error-50, rgba(254, 226, 226, .5));border:1px solid var(--error-200, #fecaca);border-radius:var(--radius-md);font-size:.9rem;color:var(--error, #dc2626)}.cd-modal-inline-error .btn-ghost{color:var(--foreground);flex-shrink:0}.cd-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.25rem 1.5rem;border-top:1px solid var(--border)}@media(max-width:768px){.cd-stream-container{grid-template-columns:1fr}.cd-upcoming-box{display:none}.cd-cr-banner{height:140px}.cd-cr-banner-content h1{font-size:1.5rem}}[data-theme=dark] .cd-cr-tab{color:var(--gray-500)}[data-theme=dark] .cd-cr-tab:hover{background:var(--gray-100)}[data-theme=dark] .cd-cr-tab.active{color:var(--gray-800);border-bottom-color:var(--accent);background:#1fa89a29}[data-theme=dark] .cd-tabs-wrapper{background:var(--gray-50);border-bottom-color:var(--border)}[data-theme=dark] .cd-compose-card,[data-theme=dark] .cd-upcoming-box,[data-theme=dark] .cd-feed-item{background:var(--card-bg);border-color:var(--border)}[data-theme=dark] .cd-upcoming-box h4{color:var(--foreground)}[data-theme=dark] .cd-upcoming-box p{color:var(--gray-400)}[data-theme=dark] .cd-topic-items{background:transparent}[data-theme=dark] .cd-cw-actions .btn-outline{background:var(--gray-50);border-color:var(--border);color:var(--gray-700)}[data-theme=dark] .cd-cw-actions .btn-outline:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-300)}[data-theme=dark] .cd-cw-item{background:transparent;border-bottom-color:var(--border)}[data-theme=dark] .cd-cw-due{color:var(--text-muted)}[data-theme=dark] .cd-cw-empty{background:var(--gray-100);border-color:var(--border);color:var(--gray-500)}[data-theme=dark] .cd-dropdown-menu{background:var(--card-bg);border-color:var(--border)}[data-theme=dark] .cd-dropdown-menu button{color:var(--foreground)}[data-theme=dark] .cd-dropdown-menu button:hover{background:var(--gray-50)}[data-theme=dark] .cd-feed-footer{border-top-color:var(--border)}[data-theme=dark] .cd-compose-trigger:hover,[data-theme=dark] .cd-compose-editor{background:var(--gray-100)}[data-theme=dark] .cd-editor-top textarea,[data-theme=dark] .cd-feed-author,[data-theme=dark] .cd-feed-body,[data-theme=dark] .cd-topic-title,[data-theme=dark] .cd-cw-title{color:var(--foreground)}[data-theme=dark] .cd-cw-item:hover{background:var(--gray-100)}[data-theme=dark] .cd-back-btn{color:var(--gray-400)}[data-theme=dark] .cd-back-btn:hover{background:var(--gray-100)}[data-theme=dark] .cd-people-section h2{color:var(--foreground)}[data-theme=dark] .cd-person{border-bottom-color:var(--border)}[data-theme=dark] .cd-modal{background:var(--card-bg);max-height:90vh;display:flex;flex-direction:column}[data-theme=dark] .cd-modal-field label{color:var(--foreground)}.cd-loading,.cd-error{padding:2rem;text-align:center}.cd-error{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--error)}.cd-person-progress{display:block;font-size:.75rem;color:var(--gray-500)}.cd-people-empty{color:var(--gray-500);padding:1rem}.cd-upload-name{font-size:.875rem;color:var(--gray-600);margin-top:.25rem}.cd-cw-title-link{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}.cd-cw-title-link:hover{text-decoration:underline;color:var(--primary)}.cd-doc-view-overlay{position:fixed;inset:0;background:var(--background);z-index:100;display:flex;flex-direction:column}.cd-doc-view{display:flex;flex-direction:column;height:100%;background:var(--card-bg)}.cd-doc-view-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--card-bg);flex-shrink:0}.cd-doc-view-header-title{display:flex;align-items:center;gap:.5rem;min-width:0}.cd-doc-view-icon{flex-shrink:0;color:var(--primary)}.cd-doc-view-title{margin:0;font-size:1.1rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.cd-doc-view-header-actions{display:flex;align-items:center;gap:.5rem}.cd-doc-view-main{display:flex;flex:1;min-height:0}.cd-doc-view-pdf-wrap{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--gray-50)}.cd-doc-view-iframe{width:100%;height:100%;min-height:300px;border:none;flex:1}.cd-doc-view-fallback{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;color:var(--gray-600)}.cd-doc-view-loading{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--gray-500)}.cd-doc-view-error{color:var(--error, #dc2626);margin:0}.cd-doc-view-sidebar{width:380px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border);background:var(--card-bg)}.cd-doc-view-sidebar-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.cd-doc-view-sidebar-icon{color:var(--primary)}.cd-doc-view-sidebar-title{margin:0;font-size:1rem;font-weight:600}.cd-doc-view-sidebar-summary{margin:0;padding:1rem 1.25rem;font-size:.875rem;color:var(--gray-600);line-height:1.5;border-bottom:1px solid var(--border)}.cd-doc-view-sidebar-chat{flex:1;display:flex;flex-direction:column;min-height:0}.cd-doc-view-messages{flex:1;overflow-y:auto;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.75rem}.cd-doc-view-messages-empty{margin:0;font-size:.875rem;color:var(--gray-500);text-align:center;padding:1rem}.cd-doc-view-msg{display:flex;flex-direction:column;gap:.25rem}.cd-doc-view-msg-user .cd-doc-view-msg-content{background:var(--gray-100);color:var(--foreground);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:.875rem}.cd-doc-view-msg-assistant .cd-doc-view-msg-content{background:var(--gray-50);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:.875rem;line-height:1.5}.cd-doc-view-msg-role{font-size:.75rem;font-weight:600;color:var(--gray-500)}.cd-doc-view-msg-loading{color:var(--gray-500);font-style:italic}.cd-doc-followups{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem 1rem .25rem}.cd-doc-followup-chip{background:var(--card-bg);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s;text-align:left}.cd-doc-followup-chip:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.cd-doc-view-input-wrap{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--card-bg)}.cd-doc-view-input{flex:1;min-width:0}.cd-doc-view-send{flex-shrink:0;padding:.5rem .75rem}.cd-people-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.cd-people-header h2{margin:0}.cd-invite-result{margin-top:1rem;padding:1rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md)}.cd-invite-code-row{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.cd-invite-code{font-family:monospace;font-size:1.125rem;font-weight:700;letter-spacing:.08em;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);padding:.375rem .75rem;border-radius:var(--radius)}.cd-modal-wide{max-width:560px;width:100%}.cd-invite-section{display:flex;flex-direction:column;gap:.25rem}.cd-invite-section-label{font-size:.8125rem;font-weight:700;color:var(--text-primary);margin-bottom:.375rem}.cd-invite-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.75rem;margin:1rem 0}.cd-invite-divider:before,.cd-invite-divider:after{content:"";flex:1;height:1px;background:var(--border)}.cd-csv-upload-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1.5px dashed var(--border);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;width:fit-content}.cd-csv-upload-btn:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.cd-csv-results{margin-top:1rem;border:1px solid var(--border);border-radius:var(--radius-md)}.cd-csv-results-header{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;background:var(--surface-2);font-size:.8125rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border)}.cd-csv-table{max-height:220px;overflow-y:auto}.cd-csv-row{display:flex;align-items:center;gap:.625rem;padding:.5rem .875rem;border-bottom:1px solid var(--border);font-size:.8125rem}.cd-csv-row:last-child{border-bottom:none}.cd-csv-row-error{background:color-mix(in srgb,var(--error) 6%,transparent)}.cd-csv-email{flex:1;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap}.cd-csv-err{font-size:.75rem;color:var(--error)}.cd-invite-code-sm{font-size:.875rem;padding:.25rem .5rem}.cd-invited-list{display:flex;flex-direction:column;gap:.375rem;margin-top:.75rem}.cd-invited-row{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.cd-invited-tag{margin-left:auto;font-size:.75rem;font-weight:600;color:#5fa89c;background:#5fa89c1f;padding:.15rem .5rem;border-radius:var(--radius-full);white-space:nowrap}.sgp-panel{width:320px;min-width:320px;background:var(--surface-2);border-left:1px solid var(--border);display:flex;flex-direction:column;height:100%;overflow:hidden}.sgp-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-1);flex-shrink:0}.sgp-header-left{display:flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--foreground)}.sgp-back-btn,.sgp-close-btn{background:none;border:none;cursor:pointer;color:var(--text-muted, #6b7280);display:flex;align-items:center;padding:.2rem;border-radius:.25rem;transition:color .15s}.sgp-back-btn:hover,.sgp-close-btn:hover{color:var(--foreground)}.sgp-body{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.sgp-loading{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.82rem;padding:1rem}.sgp-empty{text-align:center;padding:2rem 1rem;color:var(--text-muted, #6b7280);font-size:.82rem;display:flex;flex-direction:column;align-items:center;gap:.4rem}.sgp-empty-hint{font-size:.75rem;opacity:.7}.sgp-topic-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.sgp-topic-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .75rem;border-radius:var(--radius, .5rem);border:1px solid var(--border);background:var(--surface-1);cursor:pointer;transition:border-color .15s,background .15s}.sgp-topic-item:hover{border-color:var(--primary, #4f46e5);background:var(--surface-2)}.sgp-topic-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.sgp-topic-title{font-size:.83rem;font-weight:600;color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sgp-topic-desc{font-size:.72rem;color:var(--text-muted, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sgp-topic-count{font-size:.7rem;color:var(--primary, #4f46e5);font-weight:500}.sgp-topic-right{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.sgp-chevron{color:var(--text-muted, #6b7280)}.sgp-guide-desc{font-size:.78rem;color:var(--text-muted, #6b7280);line-height:1.5;padding:.5rem .25rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.sgp-prompt-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.sgp-prompt-card{border:1px solid var(--border);border-radius:var(--radius, .5rem);background:var(--surface-1);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.sgp-prompt-header{display:flex;align-items:flex-start;gap:.4rem;flex-wrap:wrap}.sgp-step-badge{font-size:.68rem;font-weight:700;background:var(--primary, #4f46e5);color:#fff;padding:.1rem .45rem;border-radius:999px;flex-shrink:0;margin-top:1px}.sgp-prompt-title{font-size:.8rem;font-weight:600;color:var(--foreground);flex:1;line-height:1.35}.sgp-prompt-text{font-size:.74rem;color:var(--text-muted, #6b7280);white-space:pre-wrap;word-break:break-word;font-family:inherit;line-height:1.55;background:var(--surface-2);border-radius:.35rem;padding:.5rem .6rem;margin:0;max-height:160px;overflow-y:auto;border:1px solid var(--border)}.sgp-use-btn{display:flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:500;padding:.35rem .7rem;border-radius:.35rem;border:1px solid var(--primary, #4f46e5);background:transparent;color:var(--primary, #4f46e5);cursor:pointer;transition:all .15s;align-self:flex-start}.sgp-use-btn:hover{background:var(--primary, #4f46e5);color:#fff}.sgp-use-btn.used{background:#16a34a;border-color:#16a34a;color:#fff}.sgp-icon-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;padding:.2rem;border-radius:.25rem;color:var(--text-muted, #6b7280);transition:color .15s;flex-shrink:0}.sgp-icon-btn.danger:hover{color:var(--danger, #ef4444)}.sgp-add-section{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border);flex-shrink:0}.sgp-add-btn{display:flex;align-items:center;gap:.4rem;width:100%;padding:.45rem .75rem;border-radius:var(--radius, .5rem);border:1px dashed var(--border);background:transparent;color:var(--text-muted, #6b7280);font-size:.8rem;cursor:pointer;transition:all .15s}.sgp-add-btn:hover{border-color:var(--primary, #4f46e5);color:var(--primary, #4f46e5)}.sgp-form{display:flex;flex-direction:column;gap:.5rem}.sgp-input{width:100%;padding:.4rem .6rem;border-radius:.35rem;border:1px solid var(--border);background:var(--surface-1);color:var(--foreground);font-size:.8rem;outline:none;box-sizing:border-box}.sgp-input:focus{border-color:var(--primary, #4f46e5)}.sgp-textarea{width:100%;padding:.4rem .6rem;border-radius:.35rem;border:1px solid var(--border);background:var(--surface-1);color:var(--foreground);font-size:.78rem;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box;line-height:1.5}.sgp-textarea:focus{border-color:var(--primary, #4f46e5)}.sgp-textarea-tall{min-height:160px}.sgp-form-actions{display:flex;gap:.4rem;justify-content:flex-end}.sgp-btn-primary{padding:.35rem .8rem;border-radius:.35rem;border:none;background:var(--primary, #4f46e5);color:#fff;font-size:.78rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:opacity .15s}.sgp-btn-primary:disabled{opacity:.5;cursor:not-allowed}.sgp-btn-secondary{padding:.35rem .75rem;border-radius:.35rem;border:1px solid var(--border);background:transparent;color:var(--text-muted, #6b7280);font-size:.78rem;cursor:pointer;transition:color .15s}.sgp-btn-secondary:hover{color:var(--foreground)}.chat-page{display:flex;height:calc(100vh - 64px - 3rem);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);background:var(--surface-1)}.chat-sidebar{width:260px;background:var(--surface-2);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem}.chat-new-btn{width:100%;margin-bottom:1.25rem}.chat-history{flex:1;overflow-y:auto}.chat-history-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);margin-bottom:.5rem}.chat-history-item-wrap{display:flex;align-items:center;gap:.25rem;border-radius:var(--radius);margin-bottom:.125rem}.chat-history-item-wrap:hover .chat-history-actions,.chat-history-item-wrap.active .chat-history-actions{opacity:1}.chat-history-item-wrap.active{background:#1d35571f}.chat-history-item{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius);font-size:.8125rem;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;background:transparent;text-align:left}.chat-history-item-wrap.active .chat-history-item{color:var(--foreground);font-weight:600}.chat-history-icon{flex-shrink:0}.chat-history-title{min-width:0;overflow:hidden;text-overflow:ellipsis}.chat-history-rename-input{flex:1;min-width:0;padding:.25rem .5rem;font-size:.8125rem;border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--gray-800)}.chat-history-actions{display:flex;align-items:center;gap:.125rem;opacity:.6;transition:opacity .15s}.chat-history-action{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm)}.chat-history-action:hover{background:var(--gray-200);color:var(--gray-700)}.chat-history-action-delete:hover{background:var(--error-50, #fef2f2);color:var(--error, #b91c1c)}.chat-history-loading,.chat-history-empty{font-size:.8125rem;color:var(--text-muted);padding:.5rem .75rem}.chat-history-loading{display:flex;align-items:center;gap:.5rem}.chat-history-item-wrap:hover .chat-history-item:not(:focus-within){background:var(--surface-3)}.chat-history-item-wrap.active .chat-history-item{background:transparent}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.chat-error{padding:.75rem 1rem;background:var(--error-50, #fef2f2);color:var(--error, #b91c1c);font-size:.875rem}.chat-loading-state{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--text-muted)}.chat-code-block{background:var(--gray-800, #1f2937);color:var(--gray-200, #e5e7eb);padding:.75rem;border-radius:.5rem;overflow-x:auto;font-family:monospace;margin:.5rem 0}.chat-msg-p{margin:.25rem 0}.chat-source{display:inline-flex;align-items:center;gap:.25rem}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.chat-msg{display:flex;gap:.875rem}.chat-msg.user{flex-direction:row-reverse}.chat-msg-avatar{width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}.chat-msg-avatar.user{background:var(--accent)}.chat-msg-avatar.assistant{background:linear-gradient(135deg,var(--primary),var(--accent-dark))}.chat-msg-content{max-width:70%}.chat-msg.user .chat-msg-content{text-align:right}.chat-msg-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.chat-msg.user .chat-msg-header{justify-content:flex-end}.chat-msg-name{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.chat-msg-time{font-size:.6875rem;color:var(--text-muted)}.chat-msg-text{padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.9rem;line-height:1.65}.chat-msg.user .chat-msg-text{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-msg.assistant .chat-msg-text{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-typing{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-muted)}.chat-suggestions{display:flex;flex-wrap:wrap;gap:.625rem;padding:0 1.5rem 1rem;justify-content:center}.chat-suggestion-btn{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--surface-3);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-full);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.chat-suggestion-btn:hover{background:var(--surface-2);border-color:var(--gray-300);transform:translateY(-1px)}.chat-input-area{padding:1rem 1.5rem;border-top:1px solid var(--border)}.chat-input-wrapper{display:flex;gap:.5rem;align-items:flex-end}.chat-input-wrapper textarea{background:var(--input-bg);color:var(--text-primary);flex:1;resize:none;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);font-size:.9rem;outline:none;min-height:44px;max-height:120px;font-family:inherit;transition:border-color .2s}.chat-input-wrapper textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--ring-rgb),.14)}.chat-send-btn{width:44px;height:44px;border-radius:var(--radius-md);background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.chat-send-btn:hover:not(:disabled){background:var(--accent-dark)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-input-hint{font-size:.6875rem;color:var(--text-muted);text-align:center;margin-top:.375rem}.chat-voice-btn{width:44px;height:44px;border-radius:var(--radius-md);background:var(--surface-3);color:var(--text-muted);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.chat-voice-btn:hover:not(:disabled){background:var(--gray-100);color:var(--foreground)}.chat-voice-btn.active{background:#ef44441a;border-color:#ef4444;color:#ef4444;animation:mic-pulse 1.2s ease-in-out infinite}.chat-voice-btn:disabled{opacity:.4;cursor:not-allowed}@keyframes mic-pulse{0%,to{box-shadow:0 0 #ef44444d}50%{box-shadow:0 0 0 6px #ef444400}}.chat-cursor{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink .8s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.chat-code-lang{display:block;font-size:.7rem;color:var(--text-muted);padding:.25rem .75rem;border-bottom:1px solid var(--border);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}@media(max-width:768px){.chat-sidebar{display:none}}.chat-citations{margin-top:.75rem;padding:.75rem;background:var(--bg-secondary, #f8f9fa);border-left:3px solid var(--primary, #4f46e5);border-radius:0 .5rem .5rem 0;font-size:.82rem}.chat-citations-title{font-weight:600;margin-bottom:.4rem;color:var(--text-muted, #6b7280);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.chat-citation-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;margin-bottom:.35rem}.chat-citation-badge{font-weight:700;color:var(--primary, #4f46e5);font-size:.78rem;min-width:1.5rem}.chat-citation-file{font-weight:500;color:var(--text, #111827)}.chat-citation-snippet{color:var(--text-muted, #6b7280);font-style:italic;font-size:.78rem;width:100%;margin-left:1.85rem}.chat-thinking{margin-bottom:.5rem;border:1px solid var(--border, #e5e7eb);border-radius:.5rem;overflow:hidden;font-size:.8rem}.chat-thinking-title{padding:.5rem .75rem;cursor:pointer;font-weight:600;color:var(--text-muted, #6b7280);background:var(--bg-secondary, #f8f9fa);-webkit-user-select:none;user-select:none;list-style:none}.chat-thinking-title::-webkit-details-marker{display:none}.chat-thinking-body{padding:.5rem .75rem;display:flex;flex-direction:column;gap:.5rem}.chat-thinking-step{border-left:2px solid var(--primary, #4f46e5);padding-left:.6rem}.chat-thinking-step-header{font-weight:600;color:var(--primary, #4f46e5);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem}.chat-thinking-thought{color:var(--text, #111827);margin-bottom:.2rem}.chat-thinking-tool{color:#7c3aed;font-family:monospace;font-size:.75rem}.chat-thinking-obs{color:var(--text-muted, #6b7280);font-style:italic;font-size:.75rem}.chat-mode-toggle{display:flex;gap:.35rem;margin-bottom:.5rem}.chat-mode-btn{display:flex;align-items:center;gap:.3rem;padding:.25rem .75rem;border-radius:999px;border:1px solid var(--border, #e5e7eb);background:transparent;color:var(--text-muted, #6b7280);font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s}.chat-mode-btn:hover{border-color:var(--primary, #4f46e5);color:var(--primary, #4f46e5)}.chat-mode-btn.active{background:var(--primary, #4f46e5);border-color:var(--primary, #4f46e5);color:#fff}.chat-dataset-section{margin-top:1rem;padding-top:.875rem;border-top:1px solid var(--border);flex-shrink:0}.chat-dataset-header{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #6b7280);margin-bottom:.5rem}.chat-dataset-upload-btn{display:flex;align-items:center;gap:.4rem;width:100%;padding:.45rem .75rem;border-radius:var(--radius, .5rem);border:1px dashed var(--border, #e5e7eb);background:transparent;color:var(--text-muted, #6b7280);font-size:.8rem;cursor:pointer;transition:all .15s;box-sizing:border-box}.chat-dataset-upload-btn:hover:not(.disabled){border-color:var(--primary, #4f46e5);color:var(--primary, #4f46e5)}.chat-dataset-upload-btn.disabled{opacity:.6;cursor:not-allowed}.chat-dataset-error{font-size:.75rem;color:var(--danger, #ef4444);margin:.3rem 0 0}.chat-dataset-list{list-style:none;padding:0;margin:.4rem 0 0;display:flex;flex-direction:column;gap:.25rem}.chat-dataset-item{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--foreground);background:var(--surface-1, #fff);border:1px solid var(--border);border-radius:.35rem;padding:.25rem .5rem}.chat-dataset-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-dataset-size{color:var(--text-muted, #6b7280);font-size:.7rem;flex-shrink:0}.chat-dataset-hint{font-size:.7rem;color:var(--text-muted, #6b7280);margin:.35rem 0 0}.chat-topbar{display:flex;align-items:center;justify-content:flex-end;padding:.4rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-1);flex-shrink:0}.chat-guide-toggle{display:flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:500;padding:.3rem .75rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted, #6b7280);cursor:pointer;transition:all .15s}.chat-guide-toggle:hover{border-color:var(--primary, #4f46e5);color:var(--primary, #4f46e5)}.chat-guide-toggle.active{background:var(--primary, #4f46e5);border-color:var(--primary, #4f46e5);color:#fff}.quiz-mode-choose{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem;text-align:center}.quiz-mode-choose h1{font-size:1.75rem;font-weight:800}.quiz-mode-choose>p{color:var(--text-muted);font-size:1rem}.quiz-mode-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;max-width:640px;width:100%;margin-top:.5rem}.quiz-mode-card{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;padding:1.5rem;border-radius:var(--radius-lg);border:1.5px solid var(--border);background:var(--surface-2);cursor:pointer;transition:all .2s;text-align:left}.quiz-mode-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}.quiz-mode-card-featured{border-color:var(--accent);background:#1fa89a0a}.quiz-mode-card-featured:hover{border-color:var(--accent);box-shadow:0 4px 20px #1fa89a26}.quiz-mode-icon{width:3rem;height:3rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.quiz-mode-card h3{font-size:1rem;font-weight:700;color:var(--text-primary)}.quiz-mode-card p{font-size:.8125rem;color:var(--text-muted);line-height:1.5}.quiz-page-scroll{height:auto;min-height:calc(100vh - 64px - 3rem);overflow-y:auto}.quiz-adaptive-container{flex:1;padding:1.5rem;overflow-y:auto}.adaptive-panel{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.adaptive-panel-header{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:var(--surface-2);border-radius:var(--radius-lg);border:1px solid var(--border)}.adaptive-panel-header h2{font-size:1.125rem;font-weight:700;margin-bottom:.125rem}.adaptive-panel-header p{font-size:.8125rem;color:var(--text-muted);line-height:1.5}.adaptive-form{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border)}.adaptive-field{display:flex;flex-direction:column;gap:.375rem}.adaptive-field label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.adaptive-required{color:var(--error)}.adaptive-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.adaptive-error{font-size:.8125rem;color:var(--error-dark);background:var(--error-light);border:1px solid rgba(239,68,68,.25);padding:.5rem .75rem;border-radius:var(--radius)}.adaptive-info-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.adaptive-info-card{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem;background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border)}.adaptive-info-card svg{flex-shrink:0;margin-top:2px}.adaptive-info-card strong{display:block;font-size:.8125rem;font-weight:600;color:var(--text-primary)}.adaptive-info-card span{font-size:.75rem;color:var(--text-muted)}.quiz-page{display:flex;flex-direction:column;height:calc(100vh - 64px - 3rem);background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.quiz-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface-2)}.quiz-header h2{font-size:1rem;font-weight:700}.quiz-header-center{display:flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:700;font-size:1.125rem}.quiz-header-right{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--text-secondary)}.quiz-score-banner{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--primary-50),var(--accent-50));border-bottom:1px solid var(--primary-100)}.quiz-score-circle{width:70px;height:70px;border-radius:50%;background:var(--card-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow);flex-shrink:0}.quiz-score-value{font-size:1.25rem;font-weight:800;color:var(--accent);line-height:1}.quiz-score-pct{font-size:.6875rem;color:var(--gray-500)}.quiz-score-info h3{font-size:1.125rem;color:var(--accent)}.quiz-score-info p{font-size:.875rem;color:var(--gray-600)}.quiz-content{flex:1;display:flex;overflow:hidden}.quiz-question-area{flex:1;overflow-y:auto;padding:2rem}.quiz-question-card{max-width:700px;margin:0 auto}.quiz-question-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem}.quiz-flag-btn{display:flex;align-items:center;gap:.25rem;margin-left:auto;background:none;border:1px solid var(--border);padding:.375rem .75rem;border-radius:var(--radius-full);font-size:.75rem;color:var(--text-muted);cursor:pointer;transition:all .2s}.quiz-flag-btn.flagged{border-color:var(--warning);color:var(--warning);background:var(--warning-light)}.quiz-question-text{font-size:1.125rem;font-weight:600;line-height:1.6;color:var(--text-primary);margin-bottom:1.5rem}.quiz-options{display:flex;flex-direction:column;gap:.75rem}.quiz-option{display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);background:var(--surface-1);cursor:pointer;transition:all .2s;text-align:left;font-size:.9375rem}.quiz-option:hover:not(.correct):not(.wrong){border-color:var(--gray-300);background:var(--surface-2)}.quiz-option.selected{border-color:var(--accent);background:#14b8a624}.quiz-option.correct{border-color:var(--success);background:var(--success-light)}.quiz-option.wrong{border-color:var(--error);background:var(--error-light)}.quiz-option-letter{width:2rem;height:2rem;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;background:var(--surface-3);color:var(--text-secondary);flex-shrink:0}.quiz-option.selected .quiz-option-letter{background:var(--accent);color:#fff}.quiz-option.correct .quiz-option-letter{background:var(--success);color:#fff}.quiz-option.wrong .quiz-option-letter{background:var(--error);color:#fff}.quiz-option-text{flex:1}.quiz-explanation{display:flex;gap:.75rem;padding:1rem;background:var(--info-light);border-radius:var(--radius-md);margin-top:1.25rem;border-left:3px solid var(--info)}.quiz-explanation svg{flex-shrink:0;color:var(--info);margin-top:2px}.quiz-explanation strong{display:block;font-size:.875rem;color:var(--gray-900);margin-bottom:.25rem}.quiz-explanation p{font-size:.875rem;color:var(--gray-700);line-height:1.5}.quiz-nav-sidebar{width:220px;background:var(--surface-2);border-left:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column}.quiz-nav-sidebar h4{font-size:.8125rem;font-weight:700;margin-bottom:.875rem;color:var(--gray-700)}.quiz-nav-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.375rem;margin-bottom:1.25rem}.quiz-nav-item{width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-1);font-size:.8125rem;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.quiz-nav-item.current{border-color:var(--accent);background:var(--accent);color:#fff}.quiz-nav-item.answered{border-color:var(--accent);background:#1fa89a24;color:var(--text-primary)}.quiz-nav-item.correct{border-color:var(--success);background:var(--success-light);color:var(--success-dark)}.quiz-nav-item.wrong{border-color:var(--error);background:var(--error-light);color:var(--error-dark)}.quiz-nav-item.flagged{box-shadow:inset 0 -3px 0 var(--warning)}.quiz-nav-legend{display:flex;flex-direction:column;gap:.375rem;font-size:.6875rem;color:var(--text-muted)}.quiz-nav-legend span{display:flex;align-items:center;gap:.375rem}.legend-dot{width:12px;height:12px;border-radius:3px}.legend-dot.current{background:var(--accent)}.legend-dot.answered{background:#1fa89a24;border:1.5px solid var(--accent)}.legend-dot.flagged{background:var(--warning-light);border-bottom:2px solid var(--warning)}.quiz-bottom-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-top:1px solid var(--border);background:var(--card-bg)}.quiz-bottom-info{font-size:.8125rem;color:var(--text-muted)}@media(max-width:768px){.quiz-nav-sidebar{display:none}}[data-theme=dark] .quiz-header{background:var(--surface-2)}[data-theme=dark] .quiz-header-right,[data-theme=dark] .quiz-bottom-info{color:var(--gray-500)}[data-theme=dark] .quiz-question-text{color:var(--foreground)}[data-theme=dark] .quiz-option{background:var(--surface-1);color:var(--text-secondary);border-color:var(--border)}[data-theme=dark] .quiz-option:hover:not(.correct):not(.wrong){border-color:var(--gray-300);background:var(--surface-2)}[data-theme=dark] .quiz-option.selected{border-color:var(--accent);background:#1fa89a29}[data-theme=dark] .quiz-option-letter{background:var(--gray-100);color:var(--gray-600)}[data-theme=dark] .quiz-nav-item{background:var(--surface-1);color:var(--text-secondary)}[data-theme=dark] .quiz-nav-item.answered{border-color:var(--accent);background:#1fa89a29;color:var(--gray-700)}.codelab-page{display:flex;height:calc(100vh - 64px - 3rem);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);background:var(--card-bg)}.codelab-problem{width:380px;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;background:var(--card-bg)}.codelab-problem-header{padding:1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.75rem}.codelab-problem-header h2{font-size:1.25rem;font-weight:600;color:var(--foreground);margin:0}.codelab-problem-body{flex:1;overflow-y:auto;padding:1.5rem;font-size:.95rem;color:var(--gray-600);line-height:1.7}.problem-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.codelab-problem-body h4{font-size:.875rem;font-weight:700;color:var(--foreground);margin:1.5rem 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.codelab-problem-body ul{padding-left:1.25rem;margin-bottom:1rem;list-style-type:disc}.codelab-problem-body li{margin-bottom:.5rem}.codelab-hint{background:var(--gray-50);border-left:3px solid var(--warning);padding:1rem;font-size:.9rem;color:var(--gray-700);border-radius:0 var(--radius) var(--radius) 0}[data-theme=dark] .codelab-hint{background:#f59e0b1a;color:var(--gray-300)}.codelab-buttons-stack{display:flex;flex-direction:column;gap:.5rem;margin:1.5rem 0}.codelab-editor-panel{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.codelab-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--gray-50);border-bottom:1px solid var(--border)}.codelab-lang-selector{position:relative}.codelab-lang-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--gray-700);font-size:.875rem;cursor:pointer;transition:all .2s}.codelab-lang-btn:hover{background:var(--gray-100);color:var(--foreground)}.codelab-lang-dropdown{position:absolute;top:calc(100% + 8px);left:0;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;z-index:20;min-width:140px;box-shadow:var(--shadow-lg)}.codelab-lang-dropdown button{display:block;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--gray-700);font-size:.875rem;text-align:left;cursor:pointer}.codelab-lang-dropdown button:hover{background:var(--gray-100);color:var(--foreground)}.codelab-toolbar-actions{display:flex;gap:.75rem}.codelab-editor{flex:1;display:flex;background:var(--gray-950);overflow:auto;position:relative}.codelab-line-numbers{padding:1.5rem 1rem;text-align:right;-webkit-user-select:none;user-select:none;color:var(--gray-600);font-family:JetBrains Mono,monospace;font-size:.9rem;line-height:1.6;border-right:1px solid var(--gray-800);min-width:3.5rem;background:var(--gray-900)}[data-theme=dark] .codelab-line-numbers{background:#0f1117;color:#6b7280;border-right:1px solid #2D3348}.codelab-line-numbers span{display:block}.codelab-textarea{flex:1;background:transparent;border:none;outline:none;color:#e5e7eb;font-family:JetBrains Mono,monospace;font-size:.9rem;line-height:1.6;padding:1.5rem;resize:none;tab-size:4}.codelab-output-section{height:350px;border-top:1px solid var(--border);background:var(--gray-900);display:flex;flex-direction:column;transition:height .3s ease}[data-theme=dark] .codelab-output-section{background:#131620;border-top:1px solid #2D3348}.codelab-output-tabs{display:flex;background:var(--gray-800);border-bottom:1px solid var(--gray-700)}[data-theme=dark] .codelab-output-tabs{background:#1e2130;border-bottom:1px solid #2D3348}.output-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:transparent;border:none;color:var(--gray-400);font-size:.875rem;font-weight:500;cursor:pointer;border-right:1px solid var(--gray-700);transition:all .2s}.output-tab:hover{color:var(--gray-200);background:var(--gray-750)}.output-tab.active{color:#4f46e5;background:var(--gray-900);border-bottom:2px solid #4F46E5;margin-bottom:-1px}[data-theme=dark] .output-tab{color:#9ca3af;border-right:1px solid #2D3348}[data-theme=dark] .output-tab:hover{background:#2d3348;color:#e5e7eb}[data-theme=dark] .output-tab.active{background:#131620;color:#818cf8;border-bottom:2px solid #818CF8}.codelab-output-content{flex:1;overflow:hidden;position:relative;background:var(--gray-950)}[data-theme=dark] .codelab-output-content{background:#131620}.codelab-console-text{padding:1rem;font-family:JetBrains Mono,monospace;font-size:.85rem;color:#a7f3d0;white-space:pre-wrap;margin:0;height:100%;overflow-y:auto;background:var(--gray-950)}[data-theme=dark] .codelab-console-text{background:#131620;color:#a7f3d0}.codelab-graph-panel{height:100%;display:flex;flex-direction:column;background:var(--gray-900);padding:1rem}.graph-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-800)}.graph-header h4{color:var(--gray-200);font-size:.9rem;margin:0}.graph-badges{display:flex;gap:.5rem}.graph-container{flex:1;min-height:0;background:var(--gray-950);border-radius:var(--radius);padding:1rem;border:1px solid var(--gray-800)}.graph-footer{margin-top:.75rem;display:flex;justify-content:flex-end}.graph-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gray-600)}.cl-console{height:100%;overflow-y:auto;padding:0;display:flex;flex-direction:column}.cl-console-running{display:flex;align-items:center;gap:.5rem;padding:1rem;font-size:.8125rem;color:var(--gray-400)}.cl-console-meta{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#0003;border-bottom:1px solid rgba(255,255,255,.05);font-size:.75rem;font-family:JetBrains Mono,monospace}.cl-console-runtime{color:#9ca3af}.cl-console-time{color:#6b7280}.cl-console-status{display:flex;align-items:center;gap:.25rem;margin-left:auto;font-weight:600}.cl-console-status.ok{color:#34d399}.cl-console-status.err{color:#f87171}.cl-stdout{color:#a7f3d0!important}.cl-stderr{color:#fca5a5!important}.cl-placeholder{color:#6b7280!important;font-style:italic}.cl-explain-btn{display:inline-flex;align-items:center;gap:.375rem;margin:.75rem 1rem;padding:.5rem 1rem;background:#1fa89a1f;border:1px solid rgba(31,168,154,.3);border-radius:var(--radius-full);color:var(--accent);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .2s}.cl-explain-btn:hover{background:#1fa89a33}.cl-tab-dot{width:7px;height:7px;border-radius:50%;margin-left:2px}.cl-tab-dot-ok{background:#34d399}.cl-tab-dot-error{background:#f87171}.cl-tab-dot-stream{background:#fbbf24;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.cl-lang-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.codelab-lang-dropdown button{display:flex;align-items:center;gap:.5rem}.cl-stdin-area{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--gray-900);border-bottom:1px solid var(--gray-800)}.cl-stdin-label{font-size:.75rem;font-weight:600;color:#9ca3af;font-family:JetBrains Mono,monospace;flex-shrink:0}.cl-stdin-input{flex:1;background:transparent;border:none;outline:none;color:#e5e7eb;font-family:JetBrains Mono,monospace;font-size:.8125rem}.cl-stdin-input::placeholder{color:#6b7280}.cl-expected-output{background:#00000040;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}.cl-expected-output pre{margin:0;padding:.75rem 1rem;font-family:JetBrains Mono,monospace;font-size:.8125rem;color:#a7f3d0;white-space:pre}.cl-ai-tab{height:100%;overflow-y:auto}.cl-ai-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;color:var(--text-muted);font-size:.875rem;line-height:1.6}.cl-ai-panel{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.875rem}.cl-ai-panel-header{display:flex;align-items:center;justify-content:space-between}.cl-ai-panel-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:700;color:#e5e7eb}.cl-ai-close{background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:4px;transition:color .2s}.cl-ai-close:hover{color:#e5e7eb}.cl-ai-explanation{font-size:.875rem;line-height:1.7;color:#d1d5db;white-space:pre-wrap;margin:0}.cl-ai-suggestions{display:flex;flex-direction:column;gap:.5rem}.cl-ai-suggestions-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280}.cl-ai-suggestion{display:flex;align-items:flex-start;gap:.75rem;font-size:.8125rem;color:#d1d5db;line-height:1.5}.cl-ai-suggestion-num{width:20px;height:20px;border-radius:50%;background:#1fa89a33;color:var(--accent);font-size:.6875rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.cl-ai-callout{display:flex;gap:.75rem;padding:.875rem 1rem;background:#1fa89a12;border:1px solid rgba(31,168,154,.2);border-radius:var(--radius);margin-top:1.5rem}.cl-ai-callout strong{display:block;font-size:.8125rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.cl-ai-callout span{font-size:.75rem;color:var(--text-muted);line-height:1.5}.cl-problem-sub{font-size:.75rem;color:var(--text-muted)}@media(max-width:1024px){.codelab-problem{width:300px}}@media(max-width:768px){.codelab-page{flex-direction:column;height:auto}.codelab-problem{width:100%;height:300px;border-right:none;border-bottom:1px solid var(--border)}.codelab-editor-panel{height:600px}}.cl-pick-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 .75rem}.cl-problem-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.cl-problem-card{display:flex;flex-direction:column;gap:.4rem;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s;width:100%}.cl-problem-card:hover{border-color:var(--primary, #4F46E5);box-shadow:0 1px 4px #00000014}.cl-problem-card-top{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.cl-problem-card-title{font-size:.875rem;font-weight:600;color:var(--text-primary);flex:1}.cl-problem-card-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.cl-pts{display:flex;align-items:center;gap:.2rem;font-size:.72rem;color:var(--text-muted)}.cl-topic{font-size:.7rem;color:var(--text-muted);background:var(--gray-100, #f3f4f6);padding:.1rem .4rem;border-radius:3px}.cl-no-problem-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(var(--card-bg-rgb, 255,255,255),.85);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:5;pointer-events:none}.cl-no-problem-overlay p{font-size:.875rem;color:var(--text-muted);text-align:center;max-width:220px}.codelab-problem-body .skeleton{background:linear-gradient(90deg,var(--gray-100, #f3f4f6) 25%,var(--gray-200, #e5e7eb) 50%,var(--gray-100, #f3f4f6) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}.videos-page{padding:2rem;max-width:1200px;margin:0 auto}.videos-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.videos-header h1{font-size:1.75rem;font-weight:700;color:var(--gray-900)}.videos-header p{color:var(--gray-500);margin-top:.25rem}.videos-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.videos-toolbar-actions{display:flex;align-items:center;gap:.5rem}.videos-select-all{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--gray-600)}.videos-select-all input{cursor:pointer}.videos-selection-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);margin-bottom:1rem}.videos-selection-bar span{font-size:.9rem;font-weight:500;color:var(--gray-700)}.videos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}.video-card{position:relative;background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;transition:all .3s}.video-card-selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-200)}.video-card-checkbox{position:absolute;top:.5rem;left:.5rem;z-index:2;cursor:pointer}.video-card-checkbox input{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--primary)}.video-card-clickable{cursor:pointer}.video-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--gray-300)}.video-card:hover .video-card-overlay{opacity:1}.video-card-thumb{position:relative;height:160px;background:linear-gradient(135deg,var(--gray-100),var(--gray-200));display:flex;align-items:center;justify-content:center;overflow:hidden}.video-card-thumb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.video-card-emoji{font-size:3rem}.video-card-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;color:#fff}.video-card-duration{position:absolute;bottom:.5rem;right:.5rem;display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#000000b3;color:#fff;font-size:.6875rem;border-radius:var(--radius-sm);font-weight:500}.video-progress-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#ffffff4d}.video-progress-fill{height:100%;background:var(--primary)}.video-watched-badge{position:absolute;top:.5rem;right:.5rem;padding:.125rem .5rem;background:var(--success);color:#fff;font-size:.6875rem;font-weight:600;border-radius:var(--radius-full)}.video-card-body{padding:1rem}.video-card-body h3{font-size:.875rem;font-weight:600;margin-bottom:.5rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.video-card-meta{display:flex;justify-content:space-between;font-size:.75rem;color:var(--gray-500)}.video-card-meta span{display:flex;align-items:center;gap:.25rem}@media(max-width:1024px){.videos-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.videos-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.videos-grid{grid-template-columns:1fr}}.course-modal-field-hint{display:block;font-size:.8rem;color:var(--gray-500);margin-top:.5rem;margin-bottom:.25rem}.videos-error{padding:.75rem 1rem;background:var(--error-light);color:var(--error-dark);border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);margin-bottom:1rem}.videos-loading{padding:1rem;color:var(--gray-500)}.videos-empty{text-align:center;padding:4rem 2rem;color:var(--gray-400)}.videos-empty-icon{font-size:3rem;margin-bottom:.5rem}.videos-empty h3{margin-top:.5rem;color:var(--gray-700);font-size:1.125rem}.videos-empty p{margin-top:.5rem;font-size:.9rem}.vp-page{display:flex;flex-direction:row;height:100%;overflow:hidden;background:var(--background)}.vp-left{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto;background:var(--card-bg)}.vp-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--card-bg);flex-shrink:0}.vp-title{margin:0;font-size:1.05rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vp-video-wrap{width:100%;aspect-ratio:16 / 9;background:#000;position:relative;flex-shrink:0}.vp-video{width:100%;height:100%;object-fit:contain;display:block}.vp-iframe{border:none}.vp-controls-overlay{position:absolute;bottom:0;left:0;width:100%;padding:.75rem 1rem;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);opacity:0;transition:opacity .25s;pointer-events:none}.vp-video-wrap:hover .vp-controls-overlay{opacity:1;pointer-events:auto}.vp-progress{height:5px;background:#ffffff40;border-radius:3px;cursor:pointer;position:relative;margin-bottom:.75rem}.vp-progress-bg{width:100%;height:100%;border-radius:3px;overflow:hidden}.vp-progress-fill{height:100%;background:var(--primary);border-radius:3px}.vp-chapter-marker{position:absolute;top:0;width:2px;height:100%;background:#fff9;z-index:2}.vp-controls-row{display:flex;align-items:center;justify-content:space-between;color:#fff}.vp-controls-left,.vp-controls-right{display:flex;align-items:center;gap:.75rem}.vp-ctrl-btn{background:none;border:none;color:#fff;cursor:pointer;padding:.375rem;opacity:.85;transition:opacity .15s;border-radius:50%;display:flex;align-items:center}.vp-ctrl-btn:hover{opacity:1;background:#ffffff1f}.vp-volume{display:flex;align-items:center;gap:.375rem}.vp-volume-slider{width:72px;height:3px;appearance:none;background:#ffffff4d;border-radius:2px;cursor:pointer}.vp-volume-slider::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:#fff;border-radius:50%}.vp-time{font-size:.8rem;font-family:JetBrains Mono,monospace;opacity:.85}.vp-speed{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:.2rem .4rem;font-size:.78rem;cursor:pointer}.vp-bottom{padding:1.25rem;display:flex;flex-direction:column;gap:1.5rem}.vp-section-label{display:flex;align-items:center;gap:.4rem;margin:0 0 .625rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500)}.vp-chapters-list{display:flex;flex-direction:column;gap:.375rem}.vp-chap-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;transition:border-color .15s;font-size:.875rem}.vp-chap-item:hover{border-color:var(--gray-400)}.vp-chap-item.active{border-color:var(--primary);background:#4f46e50a}.vp-chap-dot{width:7px;height:7px;border-radius:50%;background:var(--gray-300);flex-shrink:0}.vp-chap-item.active .vp-chap-dot{background:var(--primary)}.vp-chap-title{flex:1;font-size:.875rem;color:var(--foreground)}.vp-chap-time{font-size:.75rem;color:var(--gray-500);font-family:JetBrains Mono,monospace}.vp-add-note{display:flex;align-items:center;gap:.625rem;padding:.75rem;background:var(--gray-50);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.875rem}.vp-timestamp{display:flex;align-items:center;gap:.25rem;padding:.2rem .45rem;background:var(--gray-200);border-radius:4px;font-size:.72rem;font-family:JetBrains Mono,monospace;color:var(--gray-600);white-space:nowrap;flex-shrink:0}.vp-add-note .input{flex:1;font-size:.875rem}.vp-notes-list{display:flex;flex-direction:column;gap:.5rem}.vp-note-item{display:flex;gap:.75rem;padding:.75rem;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s,box-shadow .15s}.vp-note-item:hover{border-color:var(--primary-light);box-shadow:var(--shadow-sm)}.vp-note-time{color:var(--primary);font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:600;min-width:2.75rem;flex-shrink:0}.vp-note-text{flex:1;margin:0;font-size:.875rem;color:var(--gray-700)}.vp-empty{color:var(--gray-400);font-size:.85rem;padding:.5rem 0;margin:0}.vp-ai-sidebar{width:380px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border);background:var(--card-bg);overflow:hidden}.vp-ai-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.vp-ai-icon{color:var(--primary)}.vp-ai-title{margin:0;font-size:1rem;font-weight:600}.vp-ai-subtitle{margin:0;padding:.75rem 1.25rem;font-size:.8rem;color:var(--gray-500);line-height:1.5;border-bottom:1px solid var(--border);flex-shrink:0}.vp-ai-chat{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.vp-ai-messages{flex:1;overflow-y:auto;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.875rem;min-height:0}.vp-ai-empty{margin:0;font-size:.875rem;color:var(--gray-500);text-align:center;padding:1rem 0}.vp-ai-msg{display:flex;flex-direction:column;gap:.2rem}.vp-ai-msg-role{font-size:.72rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em}.vp-ai-msg-user .vp-ai-msg-content{background:var(--gray-100);color:var(--foreground);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:.875rem}.vp-ai-msg-assistant .vp-ai-msg-content{background:var(--gray-50);border-radius:var(--radius-md);padding:.5rem .75rem;font-size:.875rem;line-height:1.55}.vp-ai-msg-thinking{color:var(--gray-500);font-style:italic}.vp-ai-input-wrap{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--card-bg);flex-shrink:0}.vp-ai-input{flex:1;min-width:0}.vp-ai-send{flex-shrink:0;padding:.5rem .75rem}.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:1024px){.vp-ai-sidebar{width:320px}}@media(max-width:768px){.vp-page{flex-direction:column}.vp-ai-sidebar{width:100%;border-left:none;border-top:1px solid var(--border);height:420px}}.progress-page{max-width:1200px;margin:0 auto}.progress-header{margin-bottom:1.5rem}.progress-header h1{font-size:1.75rem}.progress-header p{color:var(--text-secondary);margin-top:.25rem}.progress-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:1.5rem}.progress-stat-card{display:flex;align-items:center;gap:.875rem;padding:1.25rem;background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border);transition:all .2s}.progress-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.progress-stat-icon{width:3rem;height:3rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.progress-stat-val{display:block;font-size:1.5rem;font-weight:800;color:var(--text-primary);line-height:1}.progress-stat-lbl{font-size:.75rem;color:var(--text-muted)}.progress-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.progress-section{background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border);padding:1.5rem}.progress-section h3{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;margin-bottom:1.25rem;color:var(--text-primary)}.progress-chart{display:flex;gap:.75rem;align-items:flex-end;height:200px;padding:0 .5rem}.progress-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem}.progress-chart-bar-wrapper{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.progress-chart-bar{width:80%;min-width:24px;max-width:48px;background:linear-gradient(180deg,var(--accent),var(--accent-dark));border-radius:6px 6px 0 0;position:relative;transition:height .6s ease}.progress-chart-value{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-size:.6875rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.progress-chart-label{font-size:.75rem;font-weight:500;color:var(--text-muted)}.progress-chart-summary{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);text-align:center}.progress-chart-summary span{display:flex;align-items:center;justify-content:center;gap:.375rem;font-size:.875rem;color:var(--success);font-weight:600}.progress-activity-list{display:flex;flex-direction:column;gap:.625rem}.progress-activity-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius);transition:background .15s}.progress-activity-item:hover{background:var(--surface-2)}.progress-activity-icon{color:var(--text-muted);flex-shrink:0}.progress-activity-info{display:flex;flex-direction:column}.progress-activity-title{font-size:.875rem;font-weight:500;color:var(--text-primary)}.progress-activity-time{font-size:.6875rem;color:var(--text-muted)}.progress-mastery-list{display:flex;flex-direction:column;gap:1rem}.progress-mastery-item{display:grid;grid-template-columns:200px 1fr 160px;gap:1rem;align-items:center;padding:.875rem;border-radius:var(--radius);transition:background .15s}.progress-mastery-item:hover{background:var(--surface-2)}.progress-mastery-info{display:flex;align-items:center;gap:.75rem}.progress-mastery-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.progress-mastery-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.progress-mastery-bar-wrapper{display:flex;align-items:center;gap:.75rem}.progress-mastery-pct{font-size:.875rem;font-weight:700;color:var(--text-primary);min-width:40px;text-align:right}.progress-mastery-stats{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted)}.peer-loading{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.875rem;padding:1.5rem 0}.peer-empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem;text-align:center;color:var(--text-muted);font-size:.875rem}.peer-content{display:grid;grid-template-columns:200px 1fr;gap:2rem;align-items:flex-start}.peer-left{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.peer-rank-badge{font-size:.8125rem;font-weight:700;padding:.375rem .875rem;border-radius:var(--radius-full)}.peer-summary{font-size:.8125rem;color:var(--text-secondary);line-height:1.6;margin:0}.peer-right{display:flex;flex-direction:column;gap:1.5rem}.peer-section-label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.75rem}.peer-dist-section{display:flex;flex-direction:column}.peer-dist-chart{display:flex;gap:4px;align-items:flex-end;height:80px}.peer-dist-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.peer-dist-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end}.peer-dist-bar{width:100%;background:var(--surface-3);border-radius:3px 3px 0 0;min-height:4px;transition:height .5s ease}.peer-dist-bar-user{background:var(--accent)}.peer-dist-label{font-size:.625rem;color:var(--text-muted)}.peer-dist-legend{display:flex;gap:1rem;margin-top:.5rem;font-size:.75rem;color:var(--text-muted)}.peer-dist-legend span{display:flex;align-items:center;gap:.375rem}.peer-legend-dot{width:10px;height:10px;border-radius:2px}.peer-legend-you{background:var(--accent)}.peer-legend-peer{background:var(--surface-3)}.peer-topics-section{display:flex;flex-direction:column;gap:.875rem}.peer-topic-row{display:grid;grid-template-columns:160px 1fr 48px;align-items:center;gap:.875rem}.peer-topic-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.peer-topic-bars{display:flex;flex-direction:column;gap:.375rem}.peer-topic-bar-row{display:flex;align-items:center;gap:.5rem}.peer-topic-bar-label{font-size:.625rem;font-weight:600;color:var(--text-muted);width:22px;flex-shrink:0}.peer-topic-bar-val{font-size:.6875rem;color:var(--text-secondary);min-width:32px;text-align:right}.peer-topic-diff{font-size:.8125rem;font-weight:700;text-align:right}.peer-no-data{font-size:.875rem;color:var(--text-muted);text-align:center;padding:1rem 0}@media(max-width:1024px){.progress-stats{grid-template-columns:repeat(3,1fr)}.progress-grid,.progress-mastery-item,.peer-content{grid-template-columns:1fr}.peer-left{flex-direction:row;justify-content:center;flex-wrap:wrap}}@media(max-width:768px){.progress-stats{grid-template-columns:repeat(2,1fr)}.peer-topic-row{grid-template-columns:1fr}}.notes-page{max-width:1200px;margin:0 auto}.notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.notes-header h1{font-size:1.75rem}.notes-header p{color:var(--gray-500);margin-top:.25rem}.notes-header-actions{display:flex;gap:.75rem;align-items:center}.notes-search{margin-bottom:1.5rem}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.notes-list-view{grid-template-columns:1fr}.note-card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;transition:all .3s;cursor:pointer}.note-card:hover{box-shadow:var(--shadow-md);border-color:var(--gray-300);transform:translateY(-2px)}.note-card-header{display:flex;justify-content:space-between;align-items:center}.note-card-icon{color:var(--primary)}.note-card-actions{display:flex;align-items:center;gap:.25rem}.note-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:none;background:transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-sm)}.note-action-btn:hover{background:var(--gray-100);color:var(--gray-700)}.note-action-delete:hover{background:var(--error-light, #fef2f2);color:var(--error)}.note-card-body{flex:1;min-height:0;cursor:pointer}.note-card-title{font-size:1rem;font-weight:700;color:var(--gray-900)}.note-card-course{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--gray-500)}.note-card-preview{font-size:.8125rem;color:var(--gray-600);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.note-card-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem}.note-tag{display:flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:var(--gray-100);color:var(--gray-600);border-radius:var(--radius-full);font-size:.6875rem;font-weight:500}.note-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border)}.note-card-footer span{display:flex;align-items:center;gap:.25rem;font-size:.6875rem;color:var(--gray-500)}@media(max-width:1024px){.notes-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.notes-grid{grid-template-columns:1fr}.notes-header{flex-direction:column;gap:1rem;align-items:flex-start}}.notes-error{padding:.75rem 1rem;background:var(--error-light);color:var(--error-dark);border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);margin-bottom:1rem}.notes-loading{padding:1rem;color:var(--gray-500)}.notes-empty{text-align:center;padding:3rem 1.5rem;background:var(--card-bg);border-radius:var(--radius-lg);border:1px dashed var(--gray-200)}.notes-empty-icon{color:var(--gray-300);margin-bottom:1rem}.notes-empty h3{font-size:1.25rem;color:var(--gray-700);margin-bottom:.5rem}.notes-empty p{color:var(--gray-500);margin-bottom:1.5rem}.notes-modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:5vh 1rem 2rem}.notes-modal{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column}.notes-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.notes-modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--gray-900)}.notes-modal-close{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;background:transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--radius-sm)}.notes-modal-close:hover{background:var(--gray-100);color:var(--gray-700)}.notes-modal-body{padding:1.5rem;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.notes-modal-field label{display:block;font-weight:500;font-size:.875rem;color:var(--gray-700);margin-bottom:.35rem}.notes-modal-field .input{width:100%}.notes-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border);background:var(--gray-50)}[data-theme=dark] .notes-modal-header h2{color:var(--foreground)}[data-theme=dark] .notes-modal-field label{color:var(--gray-700)}[data-theme=dark] .notes-empty{border-color:var(--border)}[data-theme=dark] .notes-empty h3{color:var(--gray-600)}[data-theme=dark] .notes-empty p{color:var(--gray-500)}.search-page{padding:2rem;max-width:800px;margin:0 auto}.search-page h1{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.search-page-desc{color:var(--gray-500);font-size:.875rem;margin-bottom:1.5rem}.search-error{padding:.75rem 1rem;background:var(--error-light);color:var(--error-dark);border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);margin-bottom:1rem}.search-placeholder,.search-loading,.search-empty{color:var(--gray-500);padding:2rem}.search-results{display:flex;flex-direction:column;gap:1.5rem}.search-section h2{font-size:1rem;font-weight:600;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.search-list{list-style:none;padding:0;margin:0}.search-list li{margin-bottom:.5rem}.search-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:border-color .2s}.search-item:hover{border-color:var(--gray-300);background:var(--gray-50)}.search-item-title{flex:1;font-weight:500}.search-item-sub{font-size:.875rem;color:var(--gray-600)}.settings-page{padding:2rem;max-width:1100px;margin:0 auto}.settings-header h1{font-size:1.75rem;font-weight:700;color:var(--foreground)}.settings-header p{color:var(--gray-500);margin-top:.25rem}.settings-layout{display:flex;gap:2rem;margin-top:2rem}.settings-tabs{display:flex;flex-direction:column;gap:.25rem;min-width:220px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.5rem;height:fit-content;position:sticky;top:5rem}.settings-tab{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:none;background:none;cursor:pointer;border-radius:var(--radius);font-weight:500;color:var(--gray-600);transition:all .2s;font-size:.9rem}.settings-tab:hover{background:var(--gray-100);color:var(--foreground)}.settings-tab.active{background:#14b8a624;color:var(--foreground);font-weight:600}.settings-content{flex:1;min-width:0}.settings-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem}.settings-panel h2{font-size:1.25rem;font-weight:700;color:var(--foreground)}.settings-panel-desc{color:var(--gray-500);font-size:.875rem;margin-top:.25rem;margin-bottom:1.5rem}.settings-avatar-section{display:flex;align-items:center;gap:1.25rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.settings-avatar{width:72px;height:72px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.5rem;color:#fff;flex-shrink:0}.settings-avatar-hint{color:var(--gray-400);font-size:.75rem;margin-top:.5rem}.settings-form{display:flex;flex-direction:column;gap:1.25rem}.settings-field label{display:block;font-weight:600;font-size:.85rem;color:var(--foreground);margin-bottom:.4rem}.settings-input-wrap{display:flex;align-items:center;gap:.75rem;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius);padding:0 .75rem;transition:border-color .2s,box-shadow .2s}.settings-input-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--ring-rgb),.14)}.settings-input-wrap svg{color:var(--gray-400);flex-shrink:0}.settings-input-wrap .input{border:none;background:none;width:100%;padding:.65rem 0;color:var(--foreground)}.settings-input-wrap .input:focus{outline:none;box-shadow:none}.settings-field-hint{font-size:.75rem;color:var(--gray-500);margin-top:.25rem;display:block}.settings-textarea{resize:vertical;min-height:80px;color:var(--foreground)}.settings-actions{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.settings-toggle-list{display:flex;flex-direction:column;gap:0}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border)}.settings-toggle-row:last-child{border-bottom:none}.settings-toggle-label{font-weight:600;font-size:.9rem;color:var(--foreground);display:block}.settings-toggle-desc{font-size:.8rem;color:var(--gray-600);display:block;margin-top:.15rem}.settings-toggle{position:relative;display:inline-flex;align-items:center;width:48px;height:26px;flex-shrink:0;cursor:pointer;border:none;background:none;padding:0;outline:none}.settings-toggle-slider{position:absolute;inset:0;background:var(--gray-300);border-radius:26px;transition:background .3s ease,box-shadow .3s ease;pointer-events:none}.settings-toggle-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:50%;transform:translateY(-50%);background:#fff;border-radius:50%;transition:transform .3s cubic-bezier(.4,0,.2,1),width .2s;box-shadow:0 1px 4px #0003,0 0 1px #0000001a}.settings-toggle.checked .settings-toggle-slider{background:var(--primary);box-shadow:0 0 8px #4f46e54d}.settings-toggle.checked .settings-toggle-slider:before{transform:translateY(-50%) translate(22px)}.settings-toggle:hover .settings-toggle-slider{box-shadow:0 0 0 2px #4f46e526}.settings-toggle:hover .settings-toggle-slider:before{box-shadow:0 2px 6px #00000040}.settings-toggle:focus-visible .settings-toggle-slider{outline:2px solid var(--primary);outline-offset:2px}.settings-toggle:active .settings-toggle-slider:before{width:24px}[data-theme=dark] .settings-toggle-slider{background:#374151}[data-theme=dark] .settings-toggle.checked .settings-toggle-slider{background:var(--primary)}.settings-section{margin-top:1.5rem}.settings-section h3{font-size:1rem;font-weight:700;color:var(--foreground);margin-bottom:1rem}.settings-theme-options{display:flex;gap:1rem}.theme-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0;border:2px solid var(--border);border-radius:var(--radius-md);background:none;cursor:pointer;transition:all .25s ease;overflow:hidden;min-width:110px}.theme-option:hover{border-color:var(--gray-400);transform:translateY(-2px);box-shadow:var(--shadow-md)}.theme-option.active{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--ring-rgb),.16)}.theme-preview{width:100%;height:70px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.theme-option:hover .theme-preview{transform:scale(1.05)}.theme-preview-light{background:#f9fafb;color:#f59e0b}.theme-preview-dark{background:#1a1d27;color:#a78bfa}.theme-preview-auto{background:linear-gradient(135deg,#f9fafb 50%,#1a1d27 50%);color:var(--primary)}.theme-option span:last-child{font-weight:600;font-size:.85rem;color:var(--foreground);padding-bottom:.75rem}.settings-font-options{display:flex;gap:1rem}.font-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem 1.5rem;border:2px solid var(--border);border-radius:var(--radius-md);background:none;cursor:pointer;transition:all .25s ease}.font-option:hover{border-color:var(--gray-400);transform:translateY(-2px);box-shadow:var(--shadow-md)}.font-option.active{border-color:var(--primary);background:#14b8a61f;box-shadow:0 0 0 3px rgba(var(--ring-rgb),.16)}.font-preview{font-weight:700;color:var(--foreground)}.font-preview-small{font-size:1rem}.font-preview-medium{font-size:1.3rem}.font-preview-large{font-size:1.6rem}.font-option span:last-child{font-size:.8rem;font-weight:500;color:var(--gray-500)}.settings-radio-group{display:flex;flex-direction:column;gap:.75rem}.settings-radio{display:flex;align-items:center;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s}.settings-radio:hover{background:var(--gray-100)}.settings-radio.active{border-color:var(--primary);background:#14b8a61f}.settings-radio input[type=radio]{display:none}.settings-radio svg{color:var(--gray-500)}.settings-radio.active svg{color:var(--primary)}.settings-radio-label{font-weight:600;font-size:.9rem;display:block;color:var(--foreground)}.settings-radio-desc{font-size:.8rem;color:var(--gray-500);display:block}.settings-danger{margin-top:2rem;padding:1.5rem;border:1px solid var(--error-light);border-radius:var(--radius-md);background:#ef44440a}.settings-danger h3{color:var(--error);font-size:1rem;font-weight:700;margin-bottom:.5rem}.settings-danger-desc{color:var(--gray-500);font-size:.85rem;margin-bottom:1rem}.settings-danger-actions{display:flex;gap:.75rem}[data-theme=dark] .settings-tabs,[data-theme=dark] .settings-panel{background:var(--card-bg);border-color:var(--border)}[data-theme=dark] .settings-input-wrap{background:var(--input-bg);border-color:var(--border)}[data-theme=dark] .settings-input-wrap svg{color:var(--gray-500)}[data-theme=dark] .theme-option{border-color:var(--border)}[data-theme=dark] .theme-option:hover{border-color:var(--gray-500)}[data-theme=dark] .font-option{border-color:var(--border)}[data-theme=dark] .font-option:hover{border-color:var(--gray-500)}[data-theme=dark] .settings-radio{border-color:var(--border)}[data-theme=dark] .settings-radio:hover{background:#ffffff08}[data-theme=dark] .settings-danger{border-color:#ef44444d;background:#ef44440f}@media(max-width:768px){.settings-page{padding:1rem}.settings-layout{flex-direction:column}.settings-tabs{flex-direction:row;min-width:0;overflow-x:auto;position:static}.settings-tab span{display:none}.settings-theme-options,.settings-font-options{flex-wrap:wrap}.settings-danger-actions{flex-direction:column}}.admin-page{padding:2rem;max-width:1100px;margin:0 auto}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.75rem}.admin-header-left{display:flex;align-items:flex-start;gap:1rem}.admin-back-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .875rem;border-radius:var(--radius);border:1.5px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.8125rem;font-weight:500;font-family:inherit;transition:all .15s;white-space:nowrap;flex-shrink:0;margin-top:.25rem}.admin-header h1{font-size:1.75rem;font-weight:700;color:var(--foreground)}.admin-header p{color:var(--text-muted);margin-top:.25rem;font-size:.9375rem}.admin-refresh-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius);border:1.5px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;font-family:inherit;transition:all .15s;flex-shrink:0}.admin-refresh-btn:hover:not(:disabled){background:var(--gray-100);border-color:var(--gray-400);color:var(--foreground)}.admin-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.admin-summary-bar{display:flex;align-items:center;gap:1.25rem;padding:.875rem 1.25rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1.25rem}.admin-summary-stat{font-size:.875rem;color:var(--text-muted)}.admin-summary-stat strong{color:var(--foreground);font-weight:600}.admin-summary-divider{width:1px;height:1rem;background:var(--border)}.admin-loading{color:var(--text-muted);font-size:.9rem;padding:2rem 0}.admin-error{background:var(--error-light);border:1px solid var(--error);border-radius:var(--radius);padding:.75rem 1rem;color:var(--error-dark);font-size:.875rem}.admin-agents-table{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-table-header{display:grid;grid-template-columns:2fr 1fr 1fr 1.25fr 1.25fr 1fr;padding:.625rem 1.25rem;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.admin-table-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.25fr 1.25fr 1fr;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border);transition:background .15s}.admin-table-row:last-child{border-bottom:none}.admin-table-row:hover{background:var(--surface-2)}.admin-agent-cell{display:flex;align-items:center;gap:.75rem}.admin-agent-icon{width:2rem;height:2rem;border-radius:var(--radius);background:var(--primary-50);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.admin-agent-name{font-size:.9375rem;font-weight:600;color:var(--foreground)}.admin-agent-desc{font-size:.8rem;color:var(--text-muted);margin-top:1px}.admin-cell-value{font-size:.9rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.admin-status-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;white-space:nowrap;width:fit-content}.admin-manage-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .875rem;border-radius:var(--radius);border:1.5px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;font-family:inherit;transition:all .15s;justify-self:end}.admin-manage-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.admin-agent-page{padding:2rem;max-width:860px;margin:0 auto}.admin-agent-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.75rem}.admin-back-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .875rem;border-radius:var(--radius);border:1.5px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.8125rem;font-weight:500;font-family:inherit;transition:all .15s;white-space:nowrap;flex-shrink:0}.admin-back-btn:hover{background:var(--gray-100);color:var(--foreground)}.admin-agent-header-info h1{font-size:1.5rem;font-weight:700;color:var(--foreground);margin:0}.admin-agent-header-info p{color:var(--text-muted);font-size:.875rem;margin:2px 0 0}.admin-agent-body{display:flex;flex-direction:column;gap:1.25rem}.admin-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.admin-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.admin-panel-header h2{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0}.admin-doc-count{font-size:.8125rem;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);padding:.125rem .625rem}.admin-loading{color:var(--text-muted);font-size:.875rem}.admin-error{background:var(--error-light);border:1px solid var(--error);border-radius:var(--radius);padding:.625rem .875rem;color:var(--error-dark);font-size:.875rem}.admin-empty{color:var(--text-muted);font-size:.875rem}.admin-docs-table{width:100%;border-collapse:collapse;font-size:.875rem}.admin-docs-table th{text-align:left;padding:.375rem .75rem;color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.admin-docs-table td{padding:.75rem;border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:middle}.admin-docs-table tr:last-child td{border-bottom:none}.admin-docs-table tr:hover td{background:var(--surface-2)}.admin-doc-name{font-family:JetBrains Mono,monospace;font-size:.8125rem;color:var(--foreground)!important}.admin-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;background:transparent;border:none;cursor:pointer;border-radius:var(--radius-sm);color:var(--text-muted);transition:all .15s;font-family:inherit}.admin-delete-btn:hover:not(:disabled){background:var(--error-light);color:var(--error-dark)}.admin-delete-btn:disabled{opacity:.4;cursor:not-allowed}.admin-dropzone{border:1.5px dashed var(--border);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-muted);background:var(--surface-2);margin-bottom:1rem}.admin-dropzone:hover,.admin-dropzone.drag-over{border-color:var(--accent);background:var(--accent-50);color:var(--accent)}.admin-dropzone-title{font-size:.9375rem;font-weight:500;color:var(--text-secondary);margin:0}.admin-dropzone.drag-over .admin-dropzone-title{color:var(--accent)}.admin-dropzone-sub{font-size:.8125rem;color:var(--text-muted)!important;margin:0!important}.admin-upload-msg{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:.75rem}.admin-upload-msg.success{background:var(--success-50);color:var(--success-dark);border:1px solid var(--success)}.admin-upload-msg.error{background:var(--error-light);color:var(--error-dark);border:1px solid var(--error)}.admin-upload-actions{display:flex;gap:.75rem}.admin-upload-actions .btn{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem}.admin-status-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600}.admin-status-pill.ok{background:var(--success-50);color:var(--success-dark)}.admin-status-pill.warn{background:var(--warning-light);color:var(--warning-dark)}.admin-status-pill.running{background:var(--info-light);color:var(--info)}.admin-index-log{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;font-family:JetBrains Mono,monospace;font-size:.8rem;display:flex;flex-direction:column;gap:.25rem;max-height:220px;overflow-y:auto;margin-bottom:1rem}.admin-log-line{color:var(--text-muted);line-height:1.5}.admin-log-line.success{color:var(--success-dark);font-weight:600}.admin-log-line.error{color:var(--error-dark);font-weight:600}.admin-index-stats{display:flex;gap:1.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.admin-index-stat{display:flex;flex-direction:column;gap:2px}.admin-index-stat-val{font-size:1.25rem;font-weight:700;color:var(--foreground);font-variant-numeric:tabular-nums}.admin-index-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.fc-page{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.fc-page-header h1{font-size:1.5rem;font-weight:800}.fc-page-header p{font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.fc-generator{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.fc-generator-header{display:flex;align-items:flex-start;gap:1rem}.fc-generator-header h2{font-size:1.125rem;font-weight:700;margin-bottom:.125rem}.fc-generator-header p{font-size:.8125rem;color:var(--text-muted);line-height:1.5}.fc-form{display:flex;flex-direction:column;gap:1rem}.fc-field-row{display:flex;gap:.75rem;align-items:flex-end}.fc-field{display:flex;flex-direction:column;gap:.375rem;flex:1}.fc-field-sm{flex:0 0 100px}.fc-field label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.fc-textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--input-bg, var(--surface-2));color:var(--text-primary);font-size:.875rem;font-family:inherit;line-height:1.6;resize:vertical;outline:none;transition:border-color .2s}.fc-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--ring-rgb),.14)}.fc-char-count{font-size:.6875rem;color:var(--text-muted);text-align:right}.fc-error{font-size:.8125rem;color:var(--error-dark);background:var(--error-light);border:1px solid rgba(239,68,68,.25);padding:.5rem .75rem;border-radius:var(--radius)}.fc-player{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.fc-player-header{width:100%;display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--surface-2);border-radius:var(--radius-md);border:1px solid var(--border)}.fc-card{width:100%;max-width:600px;height:280px;perspective:1200px;cursor:pointer}.fc-card-inner{position:relative;width:100%;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.fc-card-flipped .fc-card-inner{transform:rotateY(180deg)}.fc-card-front,.fc-card-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--radius-lg);border:1.5px solid var(--border);padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;text-align:center}.fc-card-front{background:var(--surface-1)}.fc-card-back{background:linear-gradient(135deg,var(--surface-2),var(--surface-3));transform:rotateY(180deg)}.fc-card-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.fc-card-front p,.fc-card-back p{font-size:1.0625rem;font-weight:600;color:var(--text-primary);line-height:1.6;max-width:480px}.fc-card-hint{font-size:.75rem;color:var(--text-muted)}.fc-card-meta{display:flex;align-items:center;gap:.5rem}.fc-quality-bar{width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;gap:.75rem}.fc-quality-bar>p{font-size:.875rem;color:var(--text-muted);font-weight:500}.fc-quality-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:.625rem;width:100%}.fc-quality-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;border-radius:var(--radius-md);border:1.5px solid var(--border);background:var(--surface-1);cursor:pointer;transition:all .15s}.fc-quality-btn:hover{border-color:var(--q-color, var(--accent));background:var(--surface-2);transform:translateY(-1px)}.fc-quality-btn strong{font-size:.8125rem;color:var(--text-primary)}.fc-quality-btn span{font-size:.6875rem;color:var(--text-muted);text-align:center}.fc-nav{display:flex;gap:.75rem}.fc-done{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 2rem;text-align:center}.fc-done h2{font-size:1.5rem;font-weight:800}.fc-done p{font-size:.9375rem;color:var(--text-muted)}.fc-done-btns{display:flex;gap:.75rem;margin-top:.5rem}.fc-how-it-works{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.fc-how-it-works h3{font-size:.875rem;font-weight:700;color:var(--text-secondary);margin-bottom:.875rem;text-transform:uppercase;letter-spacing:.05em}.fc-steps{display:flex;flex-direction:column;gap:.75rem}.fc-step{display:flex;align-items:flex-start;gap:.875rem}.fc-step svg{flex-shrink:0;margin-top:2px}.fc-step strong{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary)}.fc-step span{font-size:.8125rem;color:var(--text-muted)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.cm-page{display:flex;flex-direction:column;height:calc(100vh - 64px - 3rem);gap:.75rem}.cm-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;flex-shrink:0}.cm-header-left{display:flex;align-items:flex-start;gap:.75rem}.cm-header-left h1{font-size:1.25rem;font-weight:800;line-height:1.2}.cm-header-left p{font-size:.8125rem;color:var(--text-muted);margin-top:.125rem}.cm-controls{display:flex;gap:.625rem;flex-shrink:0}.cm-input{width:300px}.cm-error{font-size:.8125rem;color:var(--error-dark);background:var(--error-light);border:1px solid rgba(239,68,68,.25);padding:.5rem .875rem;border-radius:var(--radius-md);flex-shrink:0}.cm-stats-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.8125rem;flex-shrink:0;flex-wrap:wrap}.cm-stat-item{color:var(--text-secondary)}.cm-stat-item strong{font-weight:700}.cm-stat-sep{width:1px;height:14px;background:var(--border);flex-shrink:0}.cm-legend{display:flex;align-items:center;gap:.875rem;margin-left:auto}.cm-legend-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-muted)}.cm-legend-line{width:22px;height:2px;border-radius:1px;display:inline-block}.cm-legend-hint{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-muted)}.cm-canvas-wrap{flex:1;position:relative;border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;background:var(--surface-1);min-height:0}.cm-canvas-wrap .react-flow__background{background:var(--background)}.cm-controls-panel{border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;background:var(--surface-2)!important;box-shadow:var(--shadow)!important}.cm-controls-panel button{border-color:var(--border)!important;background:var(--surface-2)!important;color:var(--text-secondary)!important}.cm-controls-panel button:hover{background:var(--surface-3)!important}.cm-minimap{border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;background:var(--surface-2)!important}.cm-flow-node{width:220px;padding:.75rem;border-radius:10px;border:2px solid;background:var(--surface-2);display:flex;flex-direction:column;gap:.4rem;cursor:pointer;transition:box-shadow .2s,transform .15s}.cm-flow-node:hover{transform:translateY(-2px);box-shadow:0 6px 24px #00000040}.cm-flow-node-selected{transform:translateY(-2px)}.cm-flow-node-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.25rem}.cm-flow-node-label{font-size:.8rem;font-weight:700;color:var(--foreground);line-height:1.3}.cm-flow-node-pct{font-size:.75rem;font-weight:800;flex-shrink:0}.cm-flow-node-bar{width:100%;height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.cm-flow-node-bar-fill{height:100%;border-radius:2px;transition:width .5s ease}.cm-flow-node-footer{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.cm-flow-node-topic{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-flow-node-badge{font-size:.6rem;font-weight:700;padding:.1rem .4rem;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.cm-handle{width:8px!important;height:8px!important;background:var(--border)!important;border:2px solid var(--surface-1)!important}.cm-detail-overlay{position:absolute;top:1rem;right:1rem;width:280px;z-index:10}.cm-detail{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.125rem;display:flex;flex-direction:column;gap:.875rem;box-shadow:var(--shadow-md)}.cm-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.cm-detail-header h3{font-size:.9375rem;font-weight:700;color:var(--foreground);line-height:1.3}.cm-detail-topic{font-size:.75rem;color:var(--text-muted)}.cm-detail-close{width:1.75rem;height:1.75rem;border:none;background:var(--surface-3);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);flex-shrink:0;transition:background .15s}.cm-detail-close:hover{background:var(--error-light);color:var(--error-dark)}.cm-detail-mastery{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--text-muted)}.cm-detail-alert{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .625rem;background:var(--error-light);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);font-size:.75rem;color:var(--error-dark)}.cm-detail-alert svg{flex-shrink:0;margin-top:1px}.cm-detail-section h4{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.375rem}.cm-detail-tags{display:flex;flex-wrap:wrap;gap:.375rem}.cm-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;color:var(--text-muted)}.cm-empty-state h2{font-size:1.125rem;font-weight:700;color:var(--text-secondary)}.cm-empty-state p{font-size:.875rem;max-width:460px;line-height:1.6}.cm-empty-demo{display:flex;align-items:center;gap:1.5rem;margin-top:.5rem;position:relative}.cm-empty-demo:before{content:"";position:absolute;left:60px;right:60px;top:50%;height:2px;background:linear-gradient(to right,#c86f7a,#b59a63,#b59a63,#5fa89c);opacity:.4}.cm-empty-demo-node{padding:.5rem 1rem;border:2px solid;border-radius:8px;font-size:.75rem;font-weight:700;background:var(--surface-2);position:relative;z-index:1}.ep-page{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.ep-header h1{font-size:1.5rem;font-weight:800}.ep-header p{font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.ep-controls{display:flex;gap:.75rem;align-items:center}.ep-course-input{flex:1}.ep-hours{display:flex;align-items:center;gap:.375rem}.ep-hours-select{width:140px}.ep-error{font-size:.8125rem;color:var(--error-dark);background:var(--error-light);border:1px solid rgba(239,68,68,.25);padding:.5rem .875rem;border-radius:var(--radius-md)}.ep-priority-banner{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.25rem;background:#1fa89a14;border:1px solid rgba(31,168,154,.25);border-radius:var(--radius-lg);margin-bottom:.25rem}.ep-priority-banner strong{display:block;font-size:.8125rem;font-weight:700;color:var(--accent);margin-bottom:.125rem}.ep-priority-banner span{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.ep-section{display:flex;flex-direction:column;gap:.5rem}.ep-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 0}.ep-high{color:#c86f7a}.ep-med{color:#b59a63}.ep-low{color:#8fa3c2}.ep-topic-row{display:flex;align-items:center;gap:1rem;padding:.875rem 1.125rem;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-md);transition:background .15s}.ep-topic-row:hover{background:var(--surface-2)}.ep-topic-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.ep-topic-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.ep-topic-prob{display:flex;align-items:center;gap:.625rem}.ep-prob-label{font-size:.75rem;font-weight:600;white-space:nowrap;flex-shrink:0}.ep-prob-bar{flex:1;max-width:180px;height:5px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}.ep-prob-fill{height:100%;border-radius:var(--radius-full);transition:width .6s ease}.ep-action-badge{display:flex;align-items:center;gap:.375rem;padding:.3rem .625rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;white-space:nowrap;flex-shrink:0}.ep-study-btn{flex-shrink:0}.ep-legend{display:flex;flex-direction:column;gap:.125rem;font-size:.75rem;color:var(--text-muted);padding-top:.5rem;border-top:1px solid var(--border)}.ep-empty{display:flex;flex-direction:column;align-items:center;gap:.875rem;padding:4rem 2rem;text-align:center;color:var(--text-muted)}.ep-empty h2{font-size:1.125rem;font-weight:700;color:var(--text-secondary)}.ep-empty p{font-size:.875rem;max-width:460px;line-height:1.6}@media(max-width:640px){.ep-controls{flex-direction:column;align-items:stretch}.ep-hours-select{width:100%}.ep-topic-row{flex-wrap:wrap}}.sc-page{display:flex;flex-direction:column;height:calc(100vh - 64px - 3rem);background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden}.sc-setup{flex:1;display:flex;flex-direction:column;align-items:center;padding:3rem 1.5rem 2rem;overflow-y:auto;gap:.5rem}.sc-setup-icon{width:64px;height:64px;border-radius:var(--radius-lg);background:#1fa89a1a;border:1px solid rgba(31,168,154,.2);display:flex;align-items:center;justify-content:center;margin-bottom:.5rem}.sc-setup h1{font-size:1.75rem;font-weight:800;text-align:center}.sc-setup>p{color:var(--text-muted);text-align:center;max-width:480px;font-size:.9375rem;line-height:1.6;margin-bottom:1rem}.sc-setup-form{width:100%;max-width:520px;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;background:var(--surface-2);border-radius:var(--radius-lg);border:1px solid var(--border)}.sc-setup-field{display:flex;flex-direction:column;gap:.5rem}.sc-setup-field label{font-size:.8125rem;font-weight:600;color:var(--text-primary)}.sc-difficulty-row{display:flex;gap:.75rem}.sc-diff-btn{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.875rem;background:var(--surface-1);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;text-align:left}.sc-diff-btn strong{font-size:.8125rem;font-weight:700;color:var(--text-primary)}.sc-diff-btn span{font-size:.6875rem;color:var(--text-muted)}.sc-diff-btn:hover{border-color:var(--diff-color, var(--accent))}.sc-diff-btn.active{border-color:var(--diff-color, var(--accent));background:color-mix(in srgb,var(--diff-color, var(--accent)) 10%,transparent)}.sc-diff-btn.active strong{color:var(--diff-color, var(--accent))}.sc-start-btn{width:100%;justify-content:center;padding:.875rem;font-size:.9375rem}.sc-error{font-size:.8125rem;color:var(--error-dark);background:var(--error-light);border:1px solid rgba(239,68,68,.25);padding:.5rem .75rem;border-radius:var(--radius)}.sc-how{display:flex;gap:1.5rem;margin-top:1.5rem;max-width:520px;width:100%}.sc-how-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:.625rem;text-align:center}.sc-how-num{width:28px;height:28px;border-radius:50%;background:var(--surface-3);color:var(--text-secondary);font-size:.8125rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sc-how-step strong{display:block;font-size:.8125rem;font-weight:700;color:var(--text-primary)}.sc-how-step span{font-size:.75rem;color:var(--text-muted);line-height:1.4}.sc-page-debate{background:var(--surface-1)}.sc-debate-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;background:var(--surface-2);border-bottom:1px solid var(--border);gap:1rem}.sc-debate-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.sc-debate-topic{display:block;font-size:.9375rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-debate-sub{display:block;font-size:.75rem;color:var(--text-muted)}.sc-debate-header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.sc-diff-chip{font-size:.6875rem;font-weight:700;padding:.25rem .625rem;border-radius:var(--radius-full)}.sc-thread{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.sc-thread-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;text-align:center;color:var(--text-muted);padding:3rem}.sc-thread-empty p{font-size:.9375rem;color:var(--text-secondary)}.sc-thread-hint{font-size:.8125rem;color:var(--text-muted)!important}.sc-bubble{display:flex;gap:.75rem;max-width:720px}.sc-bubble-user{align-self:flex-end;flex-direction:row-reverse;max-width:600px}.sc-bubble-user .sc-bubble-body{background:var(--accent);border-radius:var(--radius-lg) var(--radius-lg) 0 var(--radius-lg)}.sc-bubble-user .sc-claim-text{color:#fff;font-size:.9375rem;line-height:1.6;margin:0}.sc-bubble-ai .sc-bubble-body{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) 0}.sc-bubble-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.sc-bubble-icon{width:32px;height:32px;border-radius:50%;background:#1fa89a1a;border:1px solid rgba(31,168,154,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:4px}.sc-challenge{font-size:.9375rem;font-weight:600;color:var(--text-primary);line-height:1.6;margin:0}.sc-explanation{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0}.sc-verdict{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600;padding:.375rem .75rem;border-radius:var(--radius-full);align-self:flex-start}.sc-verdict-correct{background:#5fa89c26;color:#5fa89c}.sc-verdict-wrong{background:#c86f7a26;color:#c86f7a}.sc-verdict-partial{background:#b59a6326;color:#b59a63}.sc-hints-section{display:flex;flex-direction:column;gap:.5rem}.sc-hints-toggle{display:inline-flex;align-items:center;gap:.375rem;background:none;border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-muted);font-size:.75rem;font-weight:600;padding:.3125rem .75rem;cursor:pointer;transition:all .2s;align-self:flex-start}.sc-hints-toggle:hover{background:var(--surface-3);color:var(--text-primary)}.sc-hints-toggle .rotated{transform:rotate(180deg)}.sc-hints-list{display:flex;flex-direction:column;gap:.5rem}.sc-hint{display:flex;align-items:flex-start;gap:.625rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.sc-hint-num{width:18px;height:18px;border-radius:50%;background:#b59a6333;color:#b59a63;font-size:.6875rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.sc-typing{display:flex;gap:5px;align-items:center;padding:.5rem 0}.sc-typing span{width:7px;height:7px;background:var(--text-muted);border-radius:50%;animation:sc-bounce 1.2s infinite}.sc-typing span:nth-child(2){animation-delay:.2s}.sc-typing span:nth-child(3){animation-delay:.4s}@keyframes sc-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.sc-inline-error{font-size:.8125rem;color:var(--error-dark);background:var(--error-light);border:1px solid rgba(239,68,68,.25);padding:.5rem .75rem;border-radius:var(--radius);align-self:center}.sc-input-bar{padding:1rem 1.25rem 1.25rem;border-top:1px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;gap:.375rem}.sc-input-wrap{display:flex;align-items:flex-end;gap:.75rem;background:var(--surface-1);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:.75rem .75rem .75rem 1rem;transition:border-color .2s}.sc-input-wrap:focus-within{border-color:var(--accent)}.sc-input{flex:1;background:none;border:none;outline:none;resize:none;font-size:.9375rem;color:var(--text-primary);line-height:1.5;font-family:inherit;max-height:120px;overflow-y:auto}.sc-input::placeholder{color:var(--text-muted)}.sc-send-btn{width:36px;height:36px;border-radius:var(--radius);background:var(--accent);border:none;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;flex-shrink:0;transition:all .2s}.sc-send-btn:hover:not(:disabled){background:var(--accent-dark, #178f83)}.sc-send-btn:disabled{opacity:.4;cursor:not-allowed}.sc-input-hint{font-size:.6875rem;color:var(--text-muted);text-align:center;margin:0}@media(max-width:600px){.sc-how,.sc-difficulty-row{flex-direction:column}.sc-thread{padding:1rem}}
