:root,[data-theme=light]{--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #e5e5e5;--color-neutral-300: #d4d4d4;--color-neutral-400: #a3a3a3;--color-neutral-500: #737373;--color-neutral-600: #525252;--color-neutral-700: #404040;--color-neutral-800: #262626;--color-neutral-900: #171717;--color-bg: #ffffff;--color-bg-secondary: #fafafa;--color-bg-tertiary: #f5f5f5;--color-surface: #ffffff;--color-surface-hover: #f5f5f5;--color-surface-active: #ebebeb;--color-border: #e5e5e5;--color-border-strong: #d4d4d4;--color-text: #171717;--color-text-secondary: #525252;--color-text-tertiary: #737373;--color-text-inverse: #ffffff;--color-accent: #6366f1;--color-accent-hover: #4f46e5;--color-accent-light: #eef2ff;--color-accent-text: #ffffff;--color-success: #22c55e;--color-success-light: #f0fdf4;--color-warning: #f59e0b;--color-warning-light: #fffbeb;--color-error: #ef4444;--color-error-light: #fef2f2;--color-info: #3b82f6;--color-info-light: #eff6ff;--color-progress: #f59e0b;--color-progress-light: #fffbeb;--color-course: #3b82f6;--color-lesson: #8b5cf6;--color-exercise: #ec4899;--color-quiz: #14b8a6;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .07), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .05);--sidebar-bg: #ffffff;--sidebar-border: #e5e5e5}[data-theme=dark]{--color-neutral-50: #171717;--color-neutral-100: #1a1a1a;--color-neutral-200: #262626;--color-neutral-300: #404040;--color-neutral-400: #525252;--color-neutral-500: #737373;--color-neutral-600: #a3a3a3;--color-neutral-700: #d4d4d4;--color-neutral-800: #e5e5e5;--color-neutral-900: #fafafa;--color-bg: #0f0f0f;--color-bg-secondary: #141414;--color-bg-tertiary: #1a1a1a;--color-surface: #1a1a1a;--color-surface-hover: #222222;--color-surface-active: #2a2a2a;--color-border: #2a2a2a;--color-border-strong: #404040;--color-text: #fafafa;--color-text-secondary: #bfbfbf;--color-text-tertiary: #9a9a9a;--color-text-inverse: #171717;--color-accent: #818cf8;--color-accent-hover: #6366f1;--color-accent-light: #1e1b4b;--color-accent-text: #ffffff;--color-success: #4ade80;--color-success-light: #052e16;--color-warning: #fbbf24;--color-warning-light: #422006;--color-error: #f87171;--color-error-light: #450a0a;--color-info: #60a5fa;--color-info-light: #172554;--color-progress: #fbbf24;--color-progress-light: #422006;--color-course: #60a5fa;--color-lesson: #a78bfa;--color-exercise: #f472b6;--color-quiz: #2dd4bf;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--sidebar-bg: #141414;--sidebar-border: #2a2a2a}:root{--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;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--sidebar-width: 260px;--topbar-height: 64px;--bottomnav-height: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}input:focus,textarea:focus,select:focus{outline:none}input,textarea,select{font-family:inherit;font-size:inherit}.loading-state,.error-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-12);color:var(--color-text-secondary)}.error-message{color:var(--color-error)}.back-link{color:var(--color-accent);text-decoration:none}.back-link:hover{text-decoration:underline}.stat-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.stat-chip-success{background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success)}.stat-chip-accent{background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-text-secondary)}.stat-chip-progress{background:color-mix(in srgb,var(--color-progress) 10%,transparent);color:var(--color-progress)}.btn-primary,.btn-secondary,.btn-ghost,.btn-text,.btn-outline,.btn-danger,.btn-danger-outline{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;text-decoration:none;transition:all var(--transition-fast);white-space:nowrap}.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled,.btn-outline:disabled,.btn-danger:disabled,.btn-danger-outline:disabled{opacity:.5;cursor:not-allowed}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-danger:active:not(:disabled){transform:scale(.97)}.btn-primary{padding:var(--space-3) var(--space-6);background:var(--color-accent);color:var(--color-accent-text);border:none;font-size:var(--text-base);height:48px}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-secondary{padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong);text-decoration:none}.btn-ghost{padding:var(--space-2) var(--space-4);background:transparent;color:var(--color-text-secondary);border:none}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-text{padding:var(--space-1) var(--space-2);background:none;color:var(--color-text-secondary);border:none;font-weight:500}.btn-text:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-hover)}.btn-outline{padding:var(--space-2) var(--space-5);background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn-outline:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong);text-decoration:none}.btn-danger{padding:var(--space-2) var(--space-5);background:var(--color-error);color:#fff;border:none}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger-outline{padding:var(--space-2) var(--space-5);background:transparent;color:var(--color-error);border:1px solid var(--color-error)}.btn-danger-outline:hover:not(:disabled){background:var(--color-error);color:#fff}.title-chip{display:inline-flex;align-items:center;vertical-align:middle;margin-left:var(--space-2);position:relative;top:-2px}.action-completed{color:var(--color-success);border-color:var(--color-success)}.action-completed:hover{background:color-mix(in srgb,var(--color-success) 8%,transparent);border-color:var(--color-success);color:var(--color-success)}.section-heading{font-size:var(--text-lg);font-weight:700;color:var(--color-text);margin-bottom:var(--space-3)}.btn-toggle{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.btn-toggle:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong)}.help-buttons{display:flex;flex-direction:column;gap:var(--space-2)}
