*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}body{height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;transition:background-color .3s,color .3s;overflow:hidden}:root{--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--fs-xs:.733rem;--fs-sm:.833rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.333rem;--fs-xl:1.6rem;--fs-2xl:2rem;--fs-3xl:2.667rem;--fs-4xl:3.6rem;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:280px;--sidebar-collapsed:0px;--topbar-height:60px;--z-sidebar:100;--z-topbar:90;--z-modal:200;--z-toast:300;--z-confetti:400 }[data-theme=dark],:root{--bg-primary:#0a1628;--bg-secondary:#111d35;--bg-tertiary:#162040;--bg-elevated:#1a2744;--surface-glass:#ffffff0a;--surface-glass-hover:#ffffff14;--surface-glass-active:#ffffff1f;--surface-glass-border:#ffffff14;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-inverse:#0f172a;--border-default:#ffffff14;--border-subtle:#ffffff0a;--border-strong:#ffffff29;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-muted:#3b82f626;--primary-glow:#3b82f640;--accent:#8b5cf6;--accent-hover:#a78bfa;--accent-muted:#8b5cf626;--success:#10b981;--success-hover:#34d399;--success-muted:#10b98126;--success-bg:#10b98114;--warning:#f59e0b;--warning-hover:#fbbf24;--warning-muted:#f59e0b26;--warning-bg:#f59e0b14;--error:#ef4444;--error-hover:#f87171;--error-muted:#ef444426;--error-bg:#ef444414;--info:#06b6d4;--info-hover:#22d3ee;--info-muted:#06b6d426;--gradient-primary:linear-gradient(135deg, #3b82f6, #8b5cf6);--gradient-success:linear-gradient(135deg, #10b981, #06b6d4);--gradient-warm:linear-gradient(135deg, #f59e0b, #ef4444);--gradient-surface:linear-gradient(180deg, #ffffff0f 0%, #ffffff05 100%);--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 30px #3b82f626;--shadow-glow-success:0 0 30px #10b98126;--scrollbar-track:#ffffff05;--scrollbar-thumb:#ffffff1a;--scrollbar-thumb-hover:#fff3 }[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-elevated:#fff;--surface-glass:#00000005;--surface-glass-hover:#0000000a;--surface-glass-active:#0000000f;--surface-glass-border:#00000014;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inverse:#f8fafc;--border-default:#00000014;--border-subtle:#0000000a;--border-strong:#00000029;--primary:#2563eb;--primary-hover:#3b82f6;--primary-muted:#2563eb1a;--primary-glow:#2563eb26;--accent:#7c3aed;--accent-hover:#8b5cf6;--accent-muted:#7c3aed1a;--success:#059669;--success-hover:#10b981;--success-muted:#0596691a;--success-bg:#0596690f;--warning:#d97706;--warning-hover:#f59e0b;--warning-muted:#d977061a;--warning-bg:#d977060f;--error:#dc2626;--error-hover:#ef4444;--error-muted:#dc26261a;--error-bg:#dc26260f;--info:#0891b2;--info-hover:#06b6d4;--info-muted:#0891b21a;--gradient-primary:linear-gradient(135deg, #2563eb, #7c3aed);--gradient-success:linear-gradient(135deg, #059669, #0891b2);--gradient-warm:linear-gradient(135deg, #d97706, #dc2626);--gradient-surface:linear-gradient(180deg, #00000008 0%, #00000003 100%);--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001f;--shadow-glow:0 0 30px #2563eb14;--shadow-glow-success:0 0 30px #05966914;--scrollbar-track:#00000005;--scrollbar-thumb:#0000001f;--scrollbar-thumb-hover:#0003 }body{background-color:var(--bg-primary);color:var(--text-primary)}a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}::selection{background:var(--primary-muted);color:var(--primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}#app{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-default);height:100vh;transition:width var(--transition-base),min-width var(--transition-base),transform var(--transition-base);z-index:var(--z-sidebar);flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed);min-width:var(--sidebar-collapsed)}.sidebar-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);min-height:var(--topbar-height);justify-content:space-between;align-items:center;display:flex}.logo{align-items:center;gap:var(--space-2);white-space:nowrap;cursor:pointer;transition:transform var(--transition-fast),opacity var(--transition-fast);display:flex}.logo:hover{opacity:.9;transform:translateY(-1px)}.logo-icon{font-size:var(--fs-xl)}.logo-text{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);letter-spacing:-.02em}.logo-accent{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.sidebar-toggle{color:var(--text-tertiary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sidebar-toggle:hover{color:var(--text-primary);background:var(--surface-glass-hover)}.sidebar-nav{padding:var(--space-4) var(--space-3);flex:1;overflow-y:auto}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--border-subtle)}.nav-section{margin-bottom:var(--space-4)}.nav-section-title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1)}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;text-overflow:ellipsis;text-align:left;background:0 0;border:none;width:100%;display:flex;position:relative;overflow:hidden}.nav-item:hover{background:var(--surface-glass-hover);color:var(--text-primary)}.nav-item.active{background:var(--primary-muted);color:var(--primary);font-weight:var(--fw-semibold)}.nav-item.completed{color:var(--success)}.nav-item.locked{opacity:.4;cursor:not-allowed}.nav-item-icon{width:20px;height:20px;font-size:var(--fs-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-item-badge{font-size:var(--fs-xs);border-radius:var(--radius-full);font-weight:var(--fw-semibold);margin-left:auto;padding:2px 6px}.nav-item-badge.k-level{background:var(--accent-muted);color:var(--accent)}.nav-chapter{margin-bottom:var(--space-2)}.nav-chapter-header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);text-align:left;background:0 0;border:none;width:100%;display:flex}.nav-chapter-header:hover{background:var(--surface-glass-hover)}.nav-chapter-arrow{transition:transform var(--transition-fast);flex-shrink:0}.nav-chapter.expanded .nav-chapter-arrow{transform:rotate(90deg)}.nav-chapter-topics{padding-left:var(--space-6);max-height:0;transition:max-height var(--transition-base);overflow:hidden}.nav-chapter.expanded .nav-chapter-topics{max-height:1000px}.nav-topic-progress{background:var(--border-default);border-radius:50%;flex-shrink:0;width:6px;height:6px}.nav-topic-progress.completed{background:var(--success)}.nav-topic-progress.in-progress{background:var(--warning)}.nav-topic-progress.locked{background:var(--text-tertiary);opacity:.3}.study-timer-widget{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-md);display:flex}.timer-icon{font-size:var(--fs-md)}.timer-display{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.main-content{transition:margin-left var(--transition-base);flex-direction:column;flex:1;display:flex;overflow:hidden}.top-bar{padding:0 var(--space-6);height:var(--topbar-height);min-height:var(--topbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);z-index:var(--z-topbar);justify-content:space-between;align-items:center;display:flex}.top-bar-left{align-items:center;gap:var(--space-4);display:flex;flex:1;min-width:0;overflow:hidden}.top-bar-right{align-items:center;gap:var(--space-3);display:flex;flex-shrink:0}.mobile-menu-btn{color:var(--text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:none;flex-shrink:0}.breadcrumb{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);color:var(--text-tertiary);display:flex;flex-wrap:nowrap;white-space:nowrap;min-width:0;overflow:hidden}.breadcrumb-item{cursor:pointer;transition:color var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;flex-shrink:1;display:inline-block;vertical-align:middle}.breadcrumb-item:hover{color:var(--primary)}.breadcrumb-separator{opacity:.4;flex-shrink:0;-webkit-user-select:none;user-select:none}.breadcrumb-item.current{color:var(--text-primary);font-weight:var(--fw-medium);max-width:240px}.sync-status{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--fs-xs);background:var(--surface-glass);border:1px solid var(--border-default);display:flex}.sync-dot{background:var(--warning);border-radius:50%;width:8px;height:8px}.sync-status.online .sync-dot{background:var(--success)}.sync-status.syncing .sync-dot{background:var(--primary);animation:1.5s infinite pulse}.sync-status.error .sync-dot{background:var(--error)}.sync-label{font-weight:var(--fw-medium);color:var(--text-secondary)}.icon-btn{border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-glass);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--surface-glass-hover);color:var(--text-primary);border-color:var(--border-strong)}.page-container{padding:var(--space-8);scroll-behavior:smooth;flex:1;overflow-y:auto}.loading-screen{justify-content:center;align-items:center;gap:var(--space-4);min-height:60vh;color:var(--text-tertiary);flex-direction:column;display:flex}.loading-spinner{border:3px solid var(--border-default);border-top:3px solid var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.toast-container{bottom:var(--space-6);right:var(--space-6);z-index:var(--z-toast);gap:var(--space-3);flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideInRight .4s var(--transition-spring);max-width:400px;font-size:var(--fs-sm);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:flex}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--error)}.toast.warning{border-left:3px solid var(--warning)}.toast.info{border-left:3px solid var(--info)}.toast-icon{font-size:var(--fs-lg);flex-shrink:0}.toast-message{color:var(--text-primary);flex:1}.toast-close{color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);font-size:var(--fs-lg);background:0 0;border:none;line-height:1}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-modal);padding:var(--space-4);background:#0009;justify-content:center;align-items:center;display:none;position:fixed;top:0;right:0;bottom:0;left:0}.modal-overlay.active{animation:.2s fadeIn;display:flex}.modal-content{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:600px;max-height:85vh;animation:scaleIn .3s var(--transition-spring);overflow-y:auto}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.modal-body{padding:var(--space-6)}.modal-footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);display:flex}.confetti-canvas{pointer-events:none;z-index:var(--z-confetti);position:fixed;top:0;right:0;bottom:0;left:0}@media (width<=1024px){.sidebar{position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.mobile-menu-btn{display:flex}.page-container{padding:var(--space-4)}}@media (width<=640px){html{font-size:14px}.page-container{padding:var(--space-3)}.top-bar{padding:0 var(--space-3);height:52px;min-height:52px;gap:var(--space-2)}.top-bar-left,.top-bar-right{gap:var(--space-2)}.breadcrumb{font-size:var(--fs-xs);gap:4px}.breadcrumb-item{max-width:100px}.breadcrumb-item.current{max-width:140px}.breadcrumb-item.crumb-ancestor,.breadcrumb-separator.crumb-ancestor{display:none!important}.sync-label{display:none}.sync-status{padding:var(--space-1);background:transparent;border-color:transparent}.topic-cta{padding:var(--space-6) var(--space-3)}.topic-cta-title{font-size:var(--fs-lg)}.toast-container{bottom:var(--space-3);right:var(--space-3);left:var(--space-3)}.toast{max-width:100%}}@media (width<=400px){.breadcrumb-item{max-width:80px}.breadcrumb-item.current{max-width:110px}}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--gradient-primary);color:#fff;border:none;box-shadow:0 4px 15px #3b82f640}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 25px #3b82f659}.btn-success{background:var(--gradient-success);color:#fff;border:none;box-shadow:0 4px 15px #10b98140}.btn-success:hover{transform:translateY(-1px);box-shadow:0 6px 25px #10b98159}.btn-secondary{background:var(--surface-glass);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover{background:var(--surface-glass-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary);background:0 0;border:none}.btn-ghost:hover{background:var(--surface-glass-hover);color:var(--text-primary)}.btn-danger{background:var(--error-muted);color:var(--error);border:1px solid var(--error-muted)}.btn-danger:hover{background:var(--error);color:#fff}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--fs-base);border-radius:var(--radius-lg)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--fs-xs)}.btn-icon{border-radius:var(--radius-md);width:40px;height:40px;padding:0}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all var(--transition-base)}.card:hover{background:var(--surface-glass-hover);border-color:var(--border-strong);box-shadow:var(--shadow-md)}.card-glass{background:var(--gradient-surface);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.card-highlight{background:var(--primary-muted);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid #3b82f633}.card-success{background:var(--success-bg);border:1px solid #10b98133}.card-warning{background:var(--warning-bg);border:1px solid #f59e0b33}.card-error{background:var(--error-bg);border:1px solid #ef444433}.progress-bar{background:var(--surface-glass);border-radius:var(--radius-full);height:8px;position:relative;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:var(--gradient-primary);height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1);position:relative}.progress-bar-fill:after{content:"";border-radius:var(--radius-full);background:linear-gradient(90deg,#0000,#ffffff4d);width:30px;position:absolute;top:0;bottom:0;right:0}.progress-bar-success .progress-bar-fill{background:var(--gradient-success)}.progress-bar-lg{height:12px}.progress-bar-sm{height:4px}.progress-ring{justify-content:center;align-items:center;display:inline-flex;position:relative}.progress-ring svg{transform:rotate(-90deg)}.progress-ring-bg{fill:none;stroke:var(--surface-glass);stroke-width:6px}.progress-ring-fill{fill:none;stroke:url(#progressGradient);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.34,1.56,.64,1)}.progress-ring-text{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);position:absolute}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-semibold);white-space:nowrap;display:inline-flex}.badge-primary{background:var(--primary-muted);color:var(--primary)}.badge-success{background:var(--success-muted);color:var(--success)}.badge-warning{background:var(--warning-muted);color:var(--warning)}.badge-error{background:var(--error-muted);color:var(--error)}.badge-accent{background:var(--accent-muted);color:var(--accent)}.badge-k1{color:var(--success);background:#10b98126}.badge-k2{color:var(--primary);background:#3b82f626}.badge-k3{color:var(--warning);background:#f59e0b26}.badge-k4{color:var(--error);background:#ef444426}.quiz-container{max-width:800px;margin:0 auto}.quiz-header{margin-bottom:var(--space-8);justify-content:space-between;align-items:center;display:flex}.quiz-progress-text{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium)}.quiz-timer{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text-primary);padding:var(--space-2) var(--space-4);background:var(--surface-glass);border-radius:var(--radius-md);border:1px solid var(--border-default);display:flex}.quiz-timer.warning{color:var(--warning);border-color:var(--warning-muted)}.quiz-timer.danger{color:var(--error);border-color:var(--error-muted);animation:1s infinite pulse}.question-card{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-8);margin-bottom:var(--space-6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.question-number{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-3)}.question-stem{font-size:var(--fs-md);font-weight:var(--fw-medium);margin-bottom:var(--space-6);color:var(--text-primary);line-height:1.7}.question-scenario{background:var(--primary-muted);border-left:3px solid var(--primary);padding:var(--space-4) var(--space-5);border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:var(--space-6);font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7}.quiz-options{gap:var(--space-3);flex-direction:column;display:flex}.quiz-option{align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:2px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;width:100%;font-family:var(--font-body);font-size:var(--fs-sm);color:var(--text-primary);background:0 0;line-height:1.6;display:flex}.quiz-option:hover:not(.disabled){background:var(--surface-glass-hover);border-color:var(--primary);transform:translate(4px)}.quiz-option.selected{background:var(--primary-muted);border-color:var(--primary)}.quiz-option.correct{background:var(--success-bg);border-color:var(--success);animation:.5s correctPulse}.quiz-option.incorrect{background:var(--error-bg);border-color:var(--error);animation:.5s shake}.quiz-option.disabled{cursor:default;opacity:.6}.quiz-option.correct-answer{background:var(--success-bg);border-color:var(--success);opacity:1!important}.option-letter{border-radius:var(--radius-sm);background:var(--surface-glass);width:32px;height:32px;font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--text-secondary);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.quiz-option.selected .option-letter{background:var(--primary);color:#fff}.quiz-option.correct .option-letter{background:var(--success);color:#fff}.quiz-option.incorrect .option-letter{background:var(--error);color:#fff}.option-text{flex:1}.quiz-explanation{margin-top:var(--space-4);padding:var(--space-5);background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-md);animation:.3s slideUp}.quiz-explanation-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--primary);margin-bottom:var(--space-2);align-items:center;gap:var(--space-2);display:flex}.quiz-explanation-text{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7}.quiz-nav{gap:var(--space-2);padding:var(--space-4);background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.quiz-nav-item{border-radius:var(--radius-sm);border:1px solid var(--border-default);cursor:pointer;width:36px;height:36px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.quiz-nav-item:hover{background:var(--surface-glass-hover)}.quiz-nav-item.current{border-color:var(--primary);color:var(--primary);background:var(--primary-muted)}.quiz-nav-item.answered{background:var(--primary-muted);color:var(--primary)}.quiz-nav-item.flagged{border-color:var(--warning);color:var(--warning)}.quiz-nav-item.correct{background:var(--success-muted);color:var(--success);border-color:var(--success)}.quiz-nav-item.incorrect{background:var(--error-muted);color:var(--error);border-color:var(--error)}.quiz-results{text-align:center;padding:var(--space-10) var(--space-6)}.quiz-results-icon{margin-bottom:var(--space-4);font-size:4rem}.quiz-results-score{font-size:var(--fs-3xl);font-weight:var(--fw-extrabold);margin-bottom:var(--space-2)}.quiz-results-score.passed{color:var(--success)}.quiz-results-score.failed{color:var(--error)}.quiz-results-label{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin-bottom:var(--space-8)}.topic-content{max-width:800px;margin:0 auto}.topic-header{margin-bottom:var(--space-8)}.topic-k-level{margin-bottom:var(--space-3)}.topic-title{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);letter-spacing:-.02em;margin-bottom:var(--space-2);line-height:1.2}.topic-title-en{font-size:var(--fs-md);color:var(--text-tertiary);margin-bottom:var(--space-4);font-style:italic}.topic-lo{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}.topic-lo-title{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin-bottom:var(--space-2)}.topic-lo-item{font-size:var(--fs-sm);color:var(--text-secondary);padding:var(--space-1) 0;gap:var(--space-2);line-height:1.6;display:flex}.topic-lo-item:before{content:"→";color:var(--primary);flex-shrink:0}.content-body h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-top:var(--space-10);margin-bottom:var(--space-4);color:var(--text-primary);padding-bottom:var(--space-2);border-bottom:2px solid var(--border-subtle)}.content-body h3{font-size:var(--fs-lg);font-weight:var(--fw-semibold);margin-top:var(--space-8);margin-bottom:var(--space-3);color:var(--text-primary)}.content-body h4{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-top:var(--space-6);margin-bottom:var(--space-2);color:var(--text-primary)}.content-body p{margin-bottom:var(--space-4);color:var(--text-secondary);line-height:1.8}.content-body strong{color:var(--text-primary);font-weight:var(--fw-semibold)}.content-body ul,.content-body ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.content-body li{margin-bottom:var(--space-2);color:var(--text-secondary);line-height:1.7}.content-body code{font-family:var(--font-mono);background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--primary);padding:2px 6px;font-size:.9em}.content-body pre{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-4);overflow-x:auto}.content-body pre code{color:var(--text-primary);background:0 0;border:none;padding:0}.content-body table{border-collapse:collapse;width:100%;margin-bottom:var(--space-6);font-size:var(--fs-sm)}.content-body th{background:var(--surface-glass);padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--fw-semibold);color:var(--text-primary);border-bottom:2px solid var(--border-default)}.content-body td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.content-body blockquote{border-left:3px solid var(--primary);padding:var(--space-3) var(--space-5);margin:var(--space-4) 0;background:var(--primary-muted);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--text-secondary);font-style:italic}.concept-callout{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-left:4px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-4) var(--space-5);margin:var(--space-6) 0}.concept-callout-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent);margin-bottom:var(--space-2);align-items:center;gap:var(--space-2);display:flex}.concept-callout-body{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7}.case-study-card{background:var(--gradient-surface);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);margin:var(--space-8) 0;overflow:hidden}.case-study-header{background:var(--gradient-primary);padding:var(--space-5) var(--space-6);align-items:center;gap:var(--space-3);display:flex}.case-study-icon{font-size:var(--fs-xl)}.case-study-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.1em;color:#fffc}.case-study-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:#fff}.case-study-body{padding:var(--space-6)}.case-study-section{margin-bottom:var(--space-5)}.case-study-section-title{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--primary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.case-study-text{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7}.case-study-lessons{padding:0;list-style:none}.case-study-lessons li{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--fs-sm);color:var(--text-secondary);display:flex}.case-study-lessons li:before{content:"💡";flex-shrink:0}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat-card{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-5);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all var(--transition-base)}.stat-card:hover{box-shadow:var(--shadow-glow);transform:translateY(-2px)}.stat-icon{font-size:var(--fs-xl);margin-bottom:var(--space-3)}.stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);color:var(--text-primary);margin-bottom:var(--space-1);line-height:1}.stat-label{font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:var(--fw-medium)}.cert-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.cert-card{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-xl);padding:var(--space-8);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.cert-card:before{content:"";background:var(--gradient-primary);opacity:0;height:4px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.cert-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary);transform:translateY(-4px)}.cert-card:hover:before{opacity:1}.cert-card.locked{opacity:.5;cursor:not-allowed}.cert-card.locked:hover{box-shadow:none;transform:none}.cert-badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-semibold);margin-bottom:var(--space-4);display:inline-flex}.cert-badge.available{background:var(--success-muted);color:var(--success)}.cert-badge.coming-soon{background:var(--warning-muted);color:var(--warning)}.cert-badge.in-progress{background:var(--primary-muted);color:var(--primary)}.cert-badge.completed{background:var(--success-muted);color:var(--success)}.cert-icon{font-size:var(--fs-3xl);margin-bottom:var(--space-4)}.cert-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:var(--space-2)}.cert-version{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--space-4)}.cert-meta{gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);flex-wrap:wrap;display:flex}.cert-meta-item{font-size:var(--fs-xs);color:var(--text-tertiary);align-items:center;gap:var(--space-1);display:flex}.chapter-grid{gap:var(--space-4);flex-direction:column;display:flex}.chapter-card{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);display:flex}.chapter-card:hover:not(.locked){background:var(--surface-glass-hover);border-color:var(--primary);transform:translate(4px)}.chapter-card.locked{opacity:.4;cursor:not-allowed}.chapter-card.completed{border-color:#10b9814d}.chapter-number{border-radius:var(--radius-md);background:var(--primary-muted);width:48px;height:48px;color:var(--primary);font-size:var(--fs-lg);font-weight:var(--fw-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chapter-card.completed .chapter-number{background:var(--success-muted);color:var(--success)}.chapter-info{flex:1}.chapter-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--space-1)}.chapter-subtitle{font-size:var(--fs-sm);color:var(--text-tertiary)}.chapter-progress{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.chapter-progress-text{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-secondary)}.review-concept{background:var(--warning-bg);border:1px solid #f59e0b33;border-left:4px solid var(--warning);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:var(--space-5);margin-bottom:var(--space-4)}.review-concept-title{font-weight:var(--fw-bold);color:var(--warning);margin-bottom:var(--space-2);font-size:var(--fs-sm)}.review-concept-body{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.7}.settings-section{margin-bottom:var(--space-8)}.settings-section-title{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--border-subtle)}.settings-row{padding:var(--space-4) 0;border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.settings-label{font-size:var(--fs-sm);font-weight:var(--fw-medium)}.settings-description{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.settings-input{padding:var(--space-2) var(--space-4);background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-sm);width:300px;transition:border-color var(--transition-fast)}.settings-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted);outline:none}.empty-state{text-align:center;min-height:40vh;padding:var(--space-8);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-4);opacity:.5;font-size:4rem}.empty-state-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:400px;line-height:1.7}.tag{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--fs-xs);background:var(--surface-glass);border:1px solid var(--border-default);color:var(--text-secondary);align-items:center;display:inline-flex}.divider{background:var(--border-subtle);height:1px;margin:var(--space-6) 0}.section-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:var(--space-2);letter-spacing:-.01em}.section-subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--space-6)}.toggle-switch{cursor:pointer;width:44px;height:24px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-full);transition:all var(--transition-fast);position:absolute;top:0;right:0;bottom:0;left:0}.toggle-slider:before{content:"";background:var(--text-secondary);width:18px;height:18px;transition:all var(--transition-fast);border-radius:50%;position:absolute;bottom:2px;left:2px}.toggle-switch input:checked+.toggle-slider{background:var(--primary);border-color:var(--primary)}.toggle-switch input:checked+.toggle-slider:before{background:#fff;transform:translate(20px)}.notes-area{width:100%;min-height:120px;padding:var(--space-4);background:var(--surface-glass);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--fs-sm);resize:vertical;transition:border-color var(--transition-fast);line-height:1.6}.notes-area:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted);outline:none}.notes-area::placeholder{color:var(--text-tertiary)}.mindmap-section{margin:var(--space-6) 0 var(--space-8) 0;gap:var(--space-4);flex-direction:column;display:flex}.mindmap-toggle-btn{font-weight:var(--fw-semibold);transition:all var(--transition-fast);align-self:flex-start}.mindmap-toggle-btn.active{background:var(--primary-muted);color:var(--primary);border-color:var(--primary)}.mindmap-visual-container{max-height:2000px;transition:max-height var(--transition-slow) cubic-bezier(.4,0,.2,1),opacity var(--transition-base),padding var(--transition-base);opacity:1;overflow:hidden}.mindmap-visual-container.collapsed{opacity:0;pointer-events:none;max-height:0;padding-top:0;padding-bottom:0}.mindmap-card-wrapper{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);gap:var(--space-6);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.mindmap-center-node{background:var(--gradient-primary);color:#fff;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-weight:var(--fw-bold);font-size:var(--fs-md);text-align:center;align-self:center;align-items:center;gap:var(--space-2);box-shadow:var(--shadow-md);z-index:2;transition:transform var(--transition-fast);display:flex;position:relative}.mindmap-center-node:hover{transform:scale(1.03)}.mindmap-center-icon{font-size:var(--fs-lg)}.mindmap-center-text{letter-spacing:-.01em}.mindmap-branches{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.mindmap-branch{background:var(--bg-secondary);border:1px solid var(--border-default);border-top:4px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);transition:transform var(--transition-fast),box-shadow var(--transition-fast);flex-direction:column;display:flex}.mindmap-branch:nth-child(2n){border-top-color:var(--primary)}.mindmap-branch:nth-child(3n){border-top-color:var(--success)}.mindmap-branch:nth-child(4n){border-top-color:var(--warning)}.mindmap-branch:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.mindmap-branch-header{align-items:center;gap:var(--space-2);display:flex}.mindmap-branch-dot{opacity:.8;background:currentColor;border-radius:50%;width:8px;height:8px}.mindmap-branch:first-child .mindmap-branch-dot{color:var(--accent)}.mindmap-branch:nth-child(2) .mindmap-branch-dot{color:var(--primary)}.mindmap-branch:nth-child(3) .mindmap-branch-dot{color:var(--success)}.mindmap-branch:nth-child(4) .mindmap-branch-dot{color:var(--warning)}.mindmap-branch-title{font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--text-primary);line-height:1.3}.mindmap-sub-branches{gap:var(--space-2);margin-top:var(--space-1);flex-direction:column;display:flex}.mindmap-sub-branch-item{align-items:flex-start;gap:var(--space-2);font-size:var(--fs-xs);color:var(--text-secondary);line-height:1.4;display:flex}.mindmap-sub-dot{content:"";background:var(--text-tertiary);border-radius:50%;flex-shrink:0;width:4px;height:4px;margin-top:6px}.mindmap-sub-text{flex:1}@media (width<=640px){.mindmap-branches{grid-template-columns:1fr}}.dashboard-page{max-width:1200px;margin:0 auto}.dashboard-hero{margin-bottom:var(--space-8);padding:var(--space-8);background:var(--gradient-surface);border:1px solid var(--surface-glass-border);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);justify-content:space-between;align-items:center;display:flex;position:relative;overflow:hidden}.dashboard-hero:before{content:"";background:radial-gradient(circle,var(--primary-glow) 0%,transparent 70%);pointer-events:none;width:400px;height:400px;position:absolute;top:-50%;right:-20%}.dashboard-hero-left{z-index:1}.dashboard-greeting{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--space-2)}.dashboard-title{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);margin-bottom:var(--space-2);letter-spacing:-.02em}.dashboard-subtitle{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--space-4)}.dashboard-streak{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--warning-muted);color:var(--warning);border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:var(--fw-semibold);display:inline-flex}.dashboard-hero-right{z-index:1}.dashboard-section{margin-bottom:var(--space-8)}.dashboard-section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.dashboard-section-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.dashboard-section-link{font-size:var(--fs-sm);color:var(--primary);font-weight:var(--fw-medium);cursor:pointer}.chart-container{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.chart-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--space-4)}.charts-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(350px,1fr));display:grid}.cert-select-page{max-width:1000px;margin:0 auto}.cert-select-header{text-align:center;margin-bottom:var(--space-10)}.cert-select-title{font-size:var(--fs-3xl);font-weight:var(--fw-extrabold);margin-bottom:var(--space-3);letter-spacing:-.02em}.cert-select-subtitle{font-size:var(--fs-md);color:var(--text-tertiary);max-width:600px;margin:0 auto;line-height:1.7}.chapter-overview-page{max-width:900px;margin:0 auto}.chapter-overview-header{margin-bottom:var(--space-8)}.chapter-overview-badge{margin-bottom:var(--space-4)}.chapter-overview-title{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);margin-bottom:var(--space-3);letter-spacing:-.02em}.chapter-overview-desc{font-size:var(--fs-md);color:var(--text-secondary);margin-bottom:var(--space-6);line-height:1.7}.chapter-overview-stats{gap:var(--space-6);padding:var(--space-4) var(--space-6);background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-md);display:flex}.chapter-stat{gap:var(--space-1);flex-direction:column;display:flex}.chapter-stat-value{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--primary)}.chapter-stat-label{font-size:var(--fs-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.topics-list{gap:var(--space-3);flex-direction:column;display:flex}.topic-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.topic-item:hover:not(.locked){background:var(--surface-glass-hover);border-color:var(--primary);transform:translate(4px)}.topic-item.locked{opacity:.4;cursor:not-allowed}.topic-item.completed{border-left:3px solid var(--success)}.topic-item.current{border-left:3px solid var(--primary);background:var(--primary-muted)}.topic-status-icon{width:28px;height:28px;font-size:var(--fs-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.topic-status-icon.completed{background:var(--success-muted);color:var(--success)}.topic-status-icon.current{background:var(--primary-muted);color:var(--primary)}.topic-status-icon.locked{background:var(--surface-glass);color:var(--text-tertiary)}.topic-item-info{flex:1}.topic-item-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:2px}.topic-item-subtitle{font-size:var(--fs-xs);color:var(--text-tertiary)}.topic-study-page{max-width:850px;margin:0 auto}.topic-nav{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.topic-cta{text-align:center;margin-top:var(--space-8);padding:var(--space-8) var(--space-6);background:var(--gradient-surface);border:1px solid var(--surface-glass-border);border-radius:var(--radius-xl);max-width:100%;box-sizing:border-box;overflow:hidden}.topic-cta .btn{max-width:100%;white-space:normal;text-align:center;word-break:break-word}.topic-cta-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:var(--space-2);line-height:1.3}.topic-cta-text{color:var(--text-tertiary);margin-bottom:var(--space-6);font-size:var(--fs-sm);line-height:1.5}.topic-notes{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border-subtle)}.topic-notes-title{font-size:var(--fs-md);font-weight:var(--fw-semibold);margin-bottom:var(--space-3);align-items:center;gap:var(--space-2);display:flex}.quiz-page{max-width:800px;margin:0 auto}.quiz-page-header{text-align:center;margin-bottom:var(--space-8)}.quiz-type-badge{margin-bottom:var(--space-3)}.quiz-page-title{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);margin-bottom:var(--space-2)}.quiz-page-subtitle{font-size:var(--fs-sm);color:var(--text-tertiary)}.quiz-actions{margin-top:var(--space-6);justify-content:space-between;align-items:center;display:flex}.quiz-actions-right{gap:var(--space-3);display:flex}.review-page{max-width:800px;margin:0 auto}.review-header{text-align:center;margin-bottom:var(--space-8);padding:var(--space-8);background:var(--warning-bg);border-radius:var(--radius-xl);border:1px solid #f59e0b33}.review-icon{margin-bottom:var(--space-3);font-size:3rem}.review-title{font-size:var(--fs-xl);font-weight:var(--fw-bold);margin-bottom:var(--space-2)}.review-subtitle{color:var(--text-tertiary);font-size:var(--fs-sm)}.review-failed-questions{margin-bottom:var(--space-8)}.review-question-card{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-4)}.review-your-answer{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--error-bg);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--error);margin-bottom:var(--space-2);display:flex}.review-correct-answer{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--success-bg);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--success);margin-bottom:var(--space-4);display:flex}.exam-page{max-width:900px;margin:0 auto}.exam-header{padding:var(--space-4) var(--space-6);background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);z-index:10;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.exam-info{align-items:center;gap:var(--space-6);display:flex}.exam-flag-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--fs-sm);transition:all var(--transition-fast);background:0 0;display:flex}.exam-flag-btn:hover,.exam-flag-btn.flagged{background:var(--warning-muted);border-color:var(--warning);color:var(--warning)}.results-page{max-width:800px;margin:0 auto}.results-card{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-xl);padding:var(--space-10);text-align:center;margin-bottom:var(--space-8);position:relative;overflow:hidden}.results-card.passed:before{content:"";background:var(--gradient-success);height:4px;position:absolute;top:0;left:0;right:0}.results-card.failed:before{content:"";background:var(--gradient-warm);height:4px;position:absolute;top:0;left:0;right:0}.results-breakdown{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.results-breakdown-item{background:var(--surface-glass);border:1px solid var(--surface-glass-border);border-radius:var(--radius-md);padding:var(--space-4);text-align:center}.results-actions{justify-content:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.settings-page{max-width:700px;margin:0 auto}.settings-header{margin-bottom:var(--space-8)}.settings-title{font-size:var(--fs-2xl);font-weight:var(--fw-extrabold);margin-bottom:var(--space-2)}.settings-subtitle{color:var(--text-tertiary);font-size:var(--fs-sm)}@media (width<=768px){.dashboard-hero{text-align:center;gap:var(--space-6);flex-direction:column}.charts-grid,.cert-grid{grid-template-columns:1fr}.cert-select-title{font-size:var(--fs-2xl)}.stats-grid{grid-template-columns:repeat(2,1fr)}.chapter-overview-stats{flex-wrap:wrap}.quiz-actions{gap:var(--space-3);flex-direction:column}.results-breakdown{grid-template-columns:1fr 1fr}.exam-header{gap:var(--space-3);flex-direction:column}.settings-row{align-items:flex-start;gap:var(--space-3);flex-direction:column}.settings-input{width:100%}}@media (width<=480px){.stats-grid,.results-breakdown{grid-template-columns:1fr}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.01)}to{transform:scale(1)}}@keyframes progressFill{0%{width:0}}@keyframes glow{0%,to{box-shadow:0 0 5px #3b82f633}50%{box-shadow:0 0 20px #3b82f666}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes badgeAppear{0%{opacity:0;transform:scale(0)rotate(-180deg)}60%{transform:scale(1.2)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(4)}}.page-enter{animation:.35s forwards slideUp}.page-exit{animation:.15s forwards fadeOut}.stagger-children>*{opacity:0;animation:.4s forwards slideUp}.stagger-children>:first-child{animation-delay:50ms}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.35s}.stagger-children>:nth-child(8){animation-delay:.4s}.stagger-children>:nth-child(9){animation-delay:.45s}.stagger-children>:nth-child(10){animation-delay:.5s}.skeleton{background:linear-gradient(90deg,var(--surface-glass) 25%,var(--surface-glass-hover) 50%,var(--surface-glass) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton-text{height:16px;margin-bottom:var(--space-2)}.skeleton-title{width:60%;height:28px;margin-bottom:var(--space-4)}.skeleton-card{height:120px;margin-bottom:var(--space-4)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.focus-ring:focus-visible{box-shadow:0 0 0 3px var(--primary-muted);outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
