header.svelte-1elxaub{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--bg-primary);border-bottom:1px solid var(--border-color);gap:1rem}.menu-toggle.svelte-1elxaub{display:none;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:4px;transition:background .15s}.menu-toggle.svelte-1elxaub:hover{background:var(--bg-active)}.logo.svelte-1elxaub{display:flex;align-items:center;gap:.5rem}.logo-img.svelte-1elxaub{width:32px;height:32px;object-fit:contain}.logo.svelte-1elxaub h1:where(.svelte-1elxaub){font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.progress-section.svelte-1elxaub{flex:1;max-width:400px;display:flex;flex-direction:column;gap:.25rem}.progress-bar.svelte-1elxaub{height:8px;background:var(--bg-active);border-radius:4px;overflow:hidden}.progress-fill.svelte-1elxaub{height:100%;background:linear-gradient(90deg,#4ade80,#22c55e);transition:width .3s ease}.progress-text.svelte-1elxaub{font-size:.75rem;color:var(--text-tertiary);text-align:center}.stats.svelte-1elxaub{display:flex;align-items:center;gap:1rem}.stat.svelte-1elxaub{display:flex;flex-direction:column;align-items:center;gap:.125rem}.stat-value.svelte-1elxaub{font-size:1.25rem;font-weight:700;color:#fbbf24}.stat-label.svelte-1elxaub{font-size:.625rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.sync-status.svelte-1elxaub{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-tertiary);padding:.25rem .75rem;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:999px;cursor:pointer;transition:all .15s}.sync-status.svelte-1elxaub:hover{background:var(--bg-active)}.sync-status.synced.svelte-1elxaub{color:#4ade80;border-color:#4ade80}.sync-status.syncing.svelte-1elxaub{color:#fbbf24;border-color:#fbbf24}.sync-status.error.svelte-1elxaub{color:#f87171;border-color:#f87171}.sync-status.offline.svelte-1elxaub{color:var(--text-tertiary)}.sync-text.svelte-1elxaub{display:inline}.theme-toggle.svelte-1elxaub{display:flex;align-items:center;justify-content:center;padding:.375rem;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:6px;color:var(--text-tertiary);cursor:pointer;transition:all .15s}.theme-toggle.svelte-1elxaub:hover{background:var(--bg-active);color:var(--text-primary)}.pyodide-status.svelte-1elxaub{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-tertiary);padding:.25rem .75rem;background:var(--bg-hover);border-radius:999px}.pyodide-status.ready.svelte-1elxaub{color:#4ade80}.pyodide-status.loading.svelte-1elxaub{color:#fbbf24}.status-text.svelte-1elxaub{display:inline}.dot.svelte-1elxaub{width:8px;height:8px;border-radius:50%;background:#4ade80}.dot.error.svelte-1elxaub{background:#f87171}.spinner.svelte-1elxaub{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:svelte-1elxaub-spin 1s linear infinite}@keyframes svelte-1elxaub-spin{to{transform:rotate(360deg)}}@media(max-width:1024px){.progress-section.svelte-1elxaub{max-width:250px}.stats.svelte-1elxaub{gap:.75rem}.status-text.svelte-1elxaub{display:none}}@media(max-width:768px){header.svelte-1elxaub{padding:.5rem 1rem;gap:.75rem}.menu-toggle.svelte-1elxaub{display:flex;align-items:center;justify-content:center}.logo.svelte-1elxaub h1:where(.svelte-1elxaub){font-size:1rem}.logo-img.svelte-1elxaub{width:28px;height:28px}.progress-section.svelte-1elxaub{display:none}.stat.svelte-1elxaub{min-width:40px}.stat-value.svelte-1elxaub{font-size:1rem}.sync-text.svelte-1elxaub{display:none}.pyodide-status.svelte-1elxaub{padding:.25rem .5rem}}@media(max-width:480px){.logo.svelte-1elxaub h1:where(.svelte-1elxaub){display:none}.stat-label.svelte-1elxaub,.pyodide-status.svelte-1elxaub{display:none}}.backdrop.svelte-129hoe0{display:none}aside.svelte-129hoe0{width:280px;min-width:280px;background:var(--bg-primary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease}aside.collapsed.svelte-129hoe0{width:56px;min-width:56px}.sidebar-header.svelte-129hoe0{padding:1rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.sidebar-header.svelte-129hoe0 h2:where(.svelte-129hoe0){margin:0;font-size:.875rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.collapse-btn.svelte-129hoe0{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;margin-left:auto}.collapse-btn.svelte-129hoe0:hover{background:var(--bg-active);color:var(--text-primary)}.collapsed.svelte-129hoe0 .collapse-btn:where(.svelte-129hoe0){margin:0 auto}.close-btn.svelte-129hoe0{display:none;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s}.close-btn.svelte-129hoe0:hover{background:var(--bg-active);color:var(--text-primary)}nav.svelte-129hoe0{flex:1;overflow-y:auto;padding:.5rem 1rem .5rem .5rem;overflow-x:hidden}.section.svelte-129hoe0{margin-bottom:.5rem}.section-header.svelte-129hoe0{width:100%;display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:var(--section-bg, var(--bg-active));border:none;color:var(--section-color, var(--text-primary));font-size:.875rem;font-weight:600;cursor:pointer;border-radius:6px;transition:all .15s;margin-bottom:.25rem}.section-header.svelte-129hoe0:hover{filter:brightness(1.1)}.section-icon.svelte-129hoe0{font-size:1rem}.section-name.svelte-129hoe0{flex:1;text-align:left}.section-count.svelte-129hoe0{font-size:.75rem;opacity:.8;font-weight:500}.section-chevron.svelte-129hoe0{font-size:.625rem;opacity:.7}.category.svelte-129hoe0{margin-bottom:.125rem;margin-left:.5rem}.category-header.svelte-129hoe0{width:100%;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:none;border:none;color:var(--text-secondary);font-size:.875rem;cursor:pointer;border-radius:4px;transition:background .15s}.category-header.svelte-129hoe0:hover{background:var(--bg-hover)}.chevron.svelte-129hoe0{font-size:.625rem;color:var(--text-muted);width:12px}.category-name.svelte-129hoe0{flex:1;text-align:left;font-weight:500}.category-count.svelte-129hoe0{font-size:.75rem;color:var(--text-muted)}.exercise-list.svelte-129hoe0{list-style:none;margin:0;padding:0 0 0 1.25rem}.exercise-item.svelte-129hoe0{width:100%;display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:none;border:none;color:var(--text-tertiary);font-size:.8125rem;cursor:pointer;border-radius:4px;transition:all .15s;text-align:left}.exercise-item.svelte-129hoe0:hover{background:var(--bg-hover);color:var(--text-secondary)}.exercise-item.current.svelte-129hoe0{background:var(--selection-bg);color:var(--text-primary)}.exercise-item.completed.svelte-129hoe0,.exercise-item.completed.svelte-129hoe0:hover{color:var(--section-color, #4ade80)}.status-icon.svelte-129hoe0{width:16px;text-align:center;font-size:.75rem}.exercise-item.completed.svelte-129hoe0 .status-icon:where(.svelte-129hoe0){color:#4ade80}.exercise-item.current.svelte-129hoe0 .status-icon:where(.svelte-129hoe0){color:#60a5fa}.exercise-id.svelte-129hoe0{font-family:monospace;font-size:.75rem;color:var(--text-muted);min-width:2rem}.exercise-item.current.svelte-129hoe0 .exercise-id:where(.svelte-129hoe0){color:#93c5fd}.exercise-name.svelte-129hoe0{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapsed-item.svelte-129hoe0{display:flex;align-items:center;justify-content:center;height:32px;margin:.125rem auto;background:none;border:none;color:var(--text-tertiary);font-size:.6875rem;font-family:monospace;cursor:pointer;border-radius:4px;transition:all .15s}.collapsed-item.svelte-129hoe0:hover{background:var(--bg-hover);color:var(--text-secondary)}.collapsed-item.current.svelte-129hoe0{background:var(--selection-bg);color:var(--text-primary)}.collapsed-item.completed.svelte-129hoe0{color:#4ade80}.collapsed-id.svelte-129hoe0{font-weight:500}.sidebar-footer.svelte-129hoe0{padding:1rem;border-top:1px solid var(--border-color)}.cheatsheet-link.svelte-129hoe0{display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:var(--bg-tertiary);border-radius:6px;color:var(--text-secondary);text-decoration:none;font-size:.875rem;transition:all .15s}.cheatsheet-link.svelte-129hoe0:hover{background:var(--bg-active);color:var(--text-primary)}.cheatsheet-icon.svelte-129hoe0{font-size:1rem}@media(max-width:1024px){aside.svelte-129hoe0{width:240px;min-width:240px}}@media(max-width:768px){.backdrop.svelte-129hoe0{display:block;position:fixed;inset:0;background:#00000080;z-index:40}aside.svelte-129hoe0{position:fixed;top:0;left:0;bottom:0;width:280px;min-width:280px;z-index:50;transform:translate(-100%);transition:transform .3s ease}aside.collapsed.svelte-129hoe0{width:280px;min-width:280px}aside.open.svelte-129hoe0{transform:translate(0)}.collapse-btn.svelte-129hoe0{display:none}.close-btn.svelte-129hoe0{display:flex;align-items:center;justify-content:center}}.editor-container.svelte-c4vs74{width:100%;height:100%;min-height:300px}[data-theme=dark] .jsx-tag-angle-bracket{color:gray!important}[data-theme=dark] .jsx-tag-name{color:#4ec9b0!important}[data-theme=dark] .jsx-tag-attribute-key{color:#9cdcfe!important}[data-theme=dark] .jsx-expression-braces{color:gold!important}[data-theme=dark] .jsx-text{color:#d4d4d4!important}[data-theme=light] .jsx-tag-angle-bracket{color:gray!important}[data-theme=light] .jsx-tag-name{color:#267f99!important}[data-theme=light] .jsx-tag-attribute-key{color:#e50000!important}[data-theme=light] .jsx-expression-braces{color:#0431fa!important}[data-theme=light] .jsx-text{color:#333!important}.results-wrapper.svelte-1wg06n2{display:flex;flex-direction:column;background:var(--bg-secondary);border-top:1px solid var(--border-color);flex-shrink:0}.resize-handle.svelte-1wg06n2{height:8px;cursor:ns-resize;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.resize-handle.svelte-1wg06n2:hover,.resize-handle.dragging.svelte-1wg06n2{background:var(--bg-tertiary)}.resize-grip.svelte-1wg06n2{width:40px;height:4px;background:var(--border-color);border-radius:2px}.resize-handle.svelte-1wg06n2:hover .resize-grip:where(.svelte-1wg06n2),.resize-handle.dragging.svelte-1wg06n2 .resize-grip:where(.svelte-1wg06n2){background:var(--text-tertiary)}.results-container.svelte-1wg06n2{padding:1rem;background:var(--bg-secondary);overflow-y:auto;flex:1;min-height:0}.status.svelte-1wg06n2{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:6px;font-size:.875rem}.status.running.svelte-1wg06n2{background:var(--bg-tertiary);color:#fbbf24}.status.success.svelte-1wg06n2{background:var(--success-bg);color:#4ade80}.status.error.svelte-1wg06n2{background:var(--error-bg);color:#f87171}.status.syntax-error.svelte-1wg06n2{background:#422006;color:#fbbf24}.error-box.svelte-1wg06n2{margin-top:.75rem;padding:.75rem;background:#1c1917;border:1px solid #422006;border-left:3px solid #f59e0b;border-radius:6px}.error-type.svelte-1wg06n2{font-size:.75rem;font-weight:600;color:#f59e0b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.error-message.svelte-1wg06n2{font-size:.875rem;color:#fbbf24}.error-message.svelte-1wg06n2 code:where(.svelte-1wg06n2){font-family:JetBrains Mono,monospace;background:none}.error-location.svelte-1wg06n2{margin-top:.5rem;font-size:.75rem;color:var(--text-tertiary)}.error-code.svelte-1wg06n2{margin-top:.5rem;padding:.5rem;background:var(--bg-primary);border-radius:4px}.error-code.svelte-1wg06n2 code:where(.svelte-1wg06n2){font-family:JetBrains Mono,monospace;font-size:.75rem;color:var(--text-secondary)}.status.idle.svelte-1wg06n2{background:var(--bg-tertiary);color:var(--text-tertiary)}.icon.svelte-1wg06n2{font-size:1.25rem}.message.svelte-1wg06n2{display:flex;flex-direction:column;gap:.25rem}.message.svelte-1wg06n2 strong:where(.svelte-1wg06n2){font-weight:600}.message.svelte-1wg06n2 span:where(.svelte-1wg06n2){font-size:.8125rem;opacity:.8}.spinner.svelte-1wg06n2{width:16px;height:16px;border:2px solid #fbbf24;border-top-color:transparent;border-radius:50%;animation:svelte-1wg06n2-spin 1s linear infinite}@keyframes svelte-1wg06n2-spin{to{transform:rotate(360deg)}}.test-details.svelte-1wg06n2{margin-top:.75rem;display:flex;flex-direction:column;gap:.25rem}.test-item.svelte-1wg06n2{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.8125rem;border-radius:4px}.test-item.passed.svelte-1wg06n2{background:var(--success-bg);color:#4ade80}.test-item.failed.svelte-1wg06n2{background:var(--error-bg);color:#f87171}.check.svelte-1wg06n2{color:#4ade80}.cross.svelte-1wg06n2{color:#f87171}.test-table-wrapper.svelte-1wg06n2{margin:.5rem 0 .75rem 1.5rem;overflow-x:auto}.test-table.svelte-1wg06n2{width:100%;border-collapse:collapse;font-size:.8125rem;background:var(--bg-primary);border-radius:6px;overflow:hidden}.test-table.svelte-1wg06n2 th:where(.svelte-1wg06n2),.test-table.svelte-1wg06n2 td:where(.svelte-1wg06n2){padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.test-table.svelte-1wg06n2 th:where(.svelte-1wg06n2){background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.test-table.svelte-1wg06n2 td:where(.svelte-1wg06n2){vertical-align:top}.test-table.svelte-1wg06n2 code:where(.svelte-1wg06n2){font-family:JetBrains Mono,monospace;font-size:.75rem;word-break:break-all}.test-table.svelte-1wg06n2 code.expected:where(.svelte-1wg06n2){color:#4ade80}.test-table.svelte-1wg06n2 code.actual:where(.svelte-1wg06n2){color:#f87171}.console-output.svelte-1wg06n2{margin-top:.75rem;padding:.75rem;background:var(--bg-primary);border-radius:6px;border-left:3px solid #60a5fa}.console-output.svelte-1wg06n2 h4:where(.svelte-1wg06n2){margin:0 0 .5rem;font-size:.8125rem;color:#60a5fa}.console-output.svelte-1wg06n2 pre:where(.svelte-1wg06n2){margin:0;padding:.5rem;background:var(--bg-tertiary);border-radius:4px;font-size:.75rem;color:var(--text-secondary);overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-family:JetBrains Mono,monospace}.js-habits.svelte-1wg06n2{margin-top:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:6px;border-left:3px solid #fbbf24}.js-habits.svelte-1wg06n2 h4:where(.svelte-1wg06n2){margin:0 0 .5rem;font-size:.8125rem;color:#fbbf24}.js-habits.svelte-1wg06n2 ul:where(.svelte-1wg06n2){margin:0;padding:0 0 0 1.25rem;font-size:.8125rem;color:var(--text-secondary)}.js-habits.svelte-1wg06n2 li:where(.svelte-1wg06n2){margin-bottom:.25rem}kbd.svelte-1wg06n2{display:inline-block;padding:.125rem .375rem;background:var(--bg-active);border-radius:3px;font-family:monospace;font-size:.75rem;color:var(--text-secondary);border:1px solid var(--border-color)}.exercise-view.svelte-w1zbce{flex:1;display:flex;overflow:hidden}.instructions-panel.svelte-w1zbce{width:400px;min-width:300px;max-width:500px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease,max-width .2s ease}.instructions-panel.collapsed.svelte-w1zbce{width:56px;min-width:56px;max-width:56px}.exercise-header.svelte-w1zbce{width:100%;padding:.75rem;border:none;border-bottom:1px solid var(--border-color);background:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.header-content.svelte-w1zbce{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;background:none;border:none;cursor:default;text-align:left;padding:0;gap:.75rem}.collapse-btn.svelte-w1zbce{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;flex-shrink:0}.collapse-btn.svelte-w1zbce:hover{background:var(--bg-active);color:var(--text-primary)}.collapsed.svelte-w1zbce .exercise-header:where(.svelte-w1zbce){flex-direction:column;padding:.5rem}.collapsed.svelte-w1zbce .header-content:where(.svelte-w1zbce){justify-content:center}.collapsed.svelte-w1zbce .collapse-btn:where(.svelte-w1zbce){margin-top:.5rem}.header-left.svelte-w1zbce{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-right.svelte-w1zbce{display:flex;align-items:center;gap:.5rem}.expand-icon.svelte-w1zbce{display:none;font-size:.75rem;color:var(--text-tertiary)}.exercise-number.svelte-w1zbce{font-size:.875rem;font-weight:600;color:#60a5fa;background:#1e3a5f;padding:.25rem .5rem;border-radius:4px;font-family:monospace;flex-shrink:0}.exercise-header.svelte-w1zbce h2:where(.svelte-w1zbce){margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-badge.svelte-w1zbce{font-size:.6875rem;color:var(--text-tertiary);background:var(--bg-active);padding:.25rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.instructions-content.svelte-w1zbce{flex:1;overflow-y:auto;padding:1rem}.instructions.svelte-w1zbce{margin:0;font-size:.875rem;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading.svelte-w1zbce{padding:2rem;text-align:center;color:var(--text-tertiary)}.editor-panel.svelte-w1zbce{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.editor-toolbar.svelte-w1zbce{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.toolbar-left.svelte-w1zbce{display:flex;align-items:center;gap:.5rem;color:var(--text-tertiary);font-size:.875rem}.file-icon.svelte-w1zbce{font-size:1rem}.file-name.svelte-w1zbce{font-family:monospace}.toolbar-right.svelte-w1zbce{display:flex;gap:.5rem}.btn.svelte-w1zbce{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn.svelte-w1zbce:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-w1zbce{background:var(--bg-active);color:var(--text-secondary)}.btn-secondary.svelte-w1zbce:hover:not(:disabled){background:var(--bg-hover)}.btn-primary.svelte-w1zbce{background:#2563eb;color:#fff}.btn-primary.svelte-w1zbce:hover:not(:disabled){background:#1d4ed8}.btn-success.svelte-w1zbce{background:#22c55e;color:#fff}.btn-success.svelte-w1zbce:hover{background:#16a34a}.btn-hint.svelte-w1zbce{background:#f59e0b;color:#fff}.btn-hint.svelte-w1zbce:hover:not(:disabled){background:#d97706}.editor-wrapper.svelte-w1zbce{flex:1;min-height:0}@media(max-width:1024px){.instructions-panel.svelte-w1zbce{width:320px;min-width:280px;max-width:350px}.exercise-header.svelte-w1zbce h2:where(.svelte-w1zbce){font-size:1rem}}@media(max-width:768px){.exercise-view.svelte-w1zbce{flex-direction:column}.instructions-panel.svelte-w1zbce{width:100%;min-width:100%;max-width:100%;border-right:none;border-bottom:1px solid var(--border-color);max-height:none;flex-shrink:0}.instructions-panel.svelte-w1zbce:not(.expanded){max-height:60px}.instructions-panel.svelte-w1zbce:not(.expanded) .instructions-content:where(.svelte-w1zbce){display:none}.exercise-header.svelte-w1zbce{cursor:pointer}.exercise-header.svelte-w1zbce:hover{background:var(--bg-hover)}.expand-icon.svelte-w1zbce{display:block}.category-badge.svelte-w1zbce{display:none}.instructions-panel.expanded.svelte-w1zbce{max-height:40vh}.editor-panel.svelte-w1zbce{min-height:0;flex:1}.editor-toolbar.svelte-w1zbce{padding:.5rem}.toolbar-left.svelte-w1zbce{display:none}.btn.svelte-w1zbce{padding:.5rem .75rem;font-size:.8125rem}}.exercise-view.svelte-1fat2pu{flex:1;display:flex;overflow:hidden}.instructions-panel.svelte-1fat2pu{width:400px;min-width:300px;max-width:500px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease,max-width .2s ease}.instructions-panel.collapsed.svelte-1fat2pu{width:56px;min-width:56px;max-width:56px}.exercise-header.svelte-1fat2pu{width:100%;padding:.75rem;border:none;border-bottom:1px solid var(--border-color);background:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.header-content.svelte-1fat2pu{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;background:none;border:none;cursor:default;text-align:left;padding:0;gap:.75rem}.collapse-btn.svelte-1fat2pu{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;flex-shrink:0}.collapse-btn.svelte-1fat2pu:hover{background:var(--bg-active);color:var(--text-primary)}.collapsed.svelte-1fat2pu .exercise-header:where(.svelte-1fat2pu){flex-direction:column;padding:.5rem}.collapsed.svelte-1fat2pu .header-content:where(.svelte-1fat2pu){justify-content:center}.collapsed.svelte-1fat2pu .collapse-btn:where(.svelte-1fat2pu){margin-top:.5rem}.header-left.svelte-1fat2pu{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-right.svelte-1fat2pu{display:flex;align-items:center;gap:.5rem}.expand-icon.svelte-1fat2pu{display:none;font-size:.75rem;color:var(--text-tertiary)}.exercise-number.svelte-1fat2pu{font-size:.875rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;font-family:monospace;flex-shrink:0}.exercise-number.sql.svelte-1fat2pu{color:#f59e0b;background:#451a03}.exercise-header.svelte-1fat2pu h2:where(.svelte-1fat2pu){margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-badge.svelte-1fat2pu{font-size:.6875rem;color:var(--text-tertiary);background:var(--bg-active);padding:.25rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.category-badge.sql.svelte-1fat2pu{color:#f59e0b;background:#451a03}.instructions-content.svelte-1fat2pu{flex:1;overflow-y:auto;padding:1rem}.instructions.svelte-1fat2pu{margin:0;font-size:.875rem;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading.svelte-1fat2pu{padding:2rem;text-align:center;color:var(--text-tertiary)}.editor-panel.svelte-1fat2pu{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary)}.editor-toolbar.svelte-1fat2pu{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.toolbar-left.svelte-1fat2pu{display:flex;align-items:center;gap:.5rem;color:var(--text-tertiary);font-size:.875rem}.file-icon.svelte-1fat2pu{font-size:1rem}.file-name.svelte-1fat2pu{font-family:monospace}.toolbar-right.svelte-1fat2pu{display:flex;gap:.5rem}.btn.svelte-1fat2pu{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn.svelte-1fat2pu:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-1fat2pu{background:var(--bg-active);color:var(--text-secondary)}.btn-secondary.svelte-1fat2pu:hover:not(:disabled){background:var(--bg-hover)}.btn-primary.svelte-1fat2pu{background:#2563eb;color:#fff}.btn-primary.sql.svelte-1fat2pu{background:#d97706}.btn-primary.sql.svelte-1fat2pu:hover:not(:disabled){background:#b45309}.btn-primary.svelte-1fat2pu:hover:not(:disabled){background:#1d4ed8}.btn-success.svelte-1fat2pu{background:#22c55e;color:#fff}.btn-success.svelte-1fat2pu:hover{background:#16a34a}.btn-hint.svelte-1fat2pu{background:#f59e0b;color:#fff}.btn-hint.svelte-1fat2pu:hover:not(:disabled){background:#d97706}.editor-wrapper.svelte-1fat2pu{flex:1;min-height:0}.results-panel.svelte-1fat2pu{min-height:150px;max-height:300px;overflow-y:auto;background:var(--bg-secondary);border-top:1px solid var(--border-color);padding:1rem}.status.svelte-1fat2pu{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:6px;font-size:.875rem}.status.running.svelte-1fat2pu{background:var(--bg-tertiary);color:#fbbf24}.status.success.svelte-1fat2pu{background:var(--success-bg);color:#4ade80}.status.error.svelte-1fat2pu{background:var(--error-bg);color:#f87171}.status.idle.svelte-1fat2pu{background:var(--bg-tertiary);color:var(--text-tertiary)}.icon.svelte-1fat2pu{font-size:1.25rem}.message.svelte-1fat2pu{display:flex;flex-direction:column;gap:.25rem}.message.svelte-1fat2pu strong:where(.svelte-1fat2pu){font-weight:600}.message.svelte-1fat2pu span:where(.svelte-1fat2pu){font-size:.8125rem;opacity:.8}.spinner.svelte-1fat2pu{width:16px;height:16px;border:2px solid #fbbf24;border-top-color:transparent;border-radius:50%;animation:svelte-1fat2pu-spin 1s linear infinite}@keyframes svelte-1fat2pu-spin{to{transform:rotate(360deg)}}.result-table.svelte-1fat2pu{margin-top:1rem}.result-table.svelte-1fat2pu h4:where(.svelte-1fat2pu){margin:0 0 .5rem;font-size:.8125rem;color:var(--text-tertiary)}.result-table.expected.svelte-1fat2pu h4:where(.svelte-1fat2pu){color:#4ade80}.result-table.preview.svelte-1fat2pu h4:where(.svelte-1fat2pu){color:#60a5fa}.table-wrapper.svelte-1fat2pu{overflow-x:auto}table.svelte-1fat2pu{width:100%;border-collapse:collapse;font-family:monospace;font-size:.8125rem}th.svelte-1fat2pu,td.svelte-1fat2pu{padding:.5rem;text-align:left;border:1px solid var(--border-color)}th.svelte-1fat2pu{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600}td.svelte-1fat2pu{background:var(--bg-primary);color:var(--text-primary)}.empty.svelte-1fat2pu{color:var(--text-tertiary);font-style:italic;margin:0}kbd.svelte-1fat2pu{display:inline-block;padding:.125rem .375rem;background:var(--bg-active);border-radius:3px;font-family:monospace;font-size:.75rem;color:var(--text-secondary);border:1px solid var(--border-color)}@media(max-width:768px){.exercise-view.svelte-1fat2pu{flex-direction:column}.instructions-panel.svelte-1fat2pu{width:100%;min-width:100%;max-width:100%;border-right:none;border-bottom:1px solid var(--border-color)}.instructions-panel.svelte-1fat2pu:not(.expanded){max-height:60px}.instructions-panel.svelte-1fat2pu:not(.expanded) .instructions-content:where(.svelte-1fat2pu){display:none}.instructions-panel.expanded.svelte-1fat2pu{max-height:40vh}.expand-icon.svelte-1fat2pu{display:block}.category-badge.svelte-1fat2pu{display:none}}.exercise-view.svelte-1os9yej{flex:1;display:flex;overflow:hidden}.instructions-panel.svelte-1os9yej{width:350px;min-width:280px;max-width:400px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease,max-width .2s ease}.instructions-panel.collapsed.svelte-1os9yej{width:56px;min-width:56px;max-width:56px}.exercise-header.svelte-1os9yej{width:100%;padding:.75rem;border:none;border-bottom:1px solid var(--border-color);background:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.header-content.svelte-1os9yej{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;background:none;border:none;cursor:default;text-align:left;padding:0;gap:.75rem}.collapse-btn.svelte-1os9yej{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;flex-shrink:0}.collapse-btn.svelte-1os9yej:hover{background:var(--bg-active);color:var(--text-primary)}.collapsed.svelte-1os9yej .exercise-header:where(.svelte-1os9yej){flex-direction:column;padding:.5rem}.collapsed.svelte-1os9yej .header-content:where(.svelte-1os9yej){justify-content:center}.collapsed.svelte-1os9yej .collapse-btn:where(.svelte-1os9yej){margin-top:.5rem}.header-left.svelte-1os9yej{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-right.svelte-1os9yej{display:flex;align-items:center;gap:.5rem}.expand-icon.svelte-1os9yej{display:none;font-size:.75rem;color:var(--text-tertiary)}.exercise-number.svelte-1os9yej{font-size:.875rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;font-family:monospace;flex-shrink:0}.exercise-number.react.svelte-1os9yej{color:#61dafb;background:#1a2733}.exercise-header.svelte-1os9yej h2:where(.svelte-1os9yej){margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-badge.svelte-1os9yej{font-size:.6875rem;color:var(--text-tertiary);background:var(--bg-active);padding:.25rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.category-badge.react.svelte-1os9yej{color:#61dafb;background:#1a2733}.instructions-content.svelte-1os9yej{flex:1;overflow-y:auto;padding:1rem}.instructions.svelte-1os9yej{margin:0;font-size:.875rem;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading.svelte-1os9yej{padding:2rem;text-align:center;color:var(--text-tertiary)}.main-panel.svelte-1os9yej{flex:1;display:flex;flex-direction:column;overflow:hidden}.editor-panel.svelte-1os9yej{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary);min-height:0}.editor-toolbar.svelte-1os9yej{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.toolbar-left.svelte-1os9yej{display:flex;align-items:center;gap:.5rem;color:var(--text-tertiary);font-size:.875rem}.file-icon.svelte-1os9yej{font-size:1rem}.file-name.svelte-1os9yej{font-family:monospace}.toolbar-right.svelte-1os9yej{display:flex;gap:.5rem}.btn.svelte-1os9yej{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn.svelte-1os9yej:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-1os9yej{background:var(--bg-active);color:var(--text-secondary)}.btn-secondary.svelte-1os9yej:hover:not(:disabled){background:var(--bg-hover)}.btn-primary.svelte-1os9yej{background:#2563eb;color:#fff}.btn-primary.react.svelte-1os9yej{background:#0ea5e9}.btn-primary.react.svelte-1os9yej:hover:not(:disabled){background:#0284c7}.btn-primary.svelte-1os9yej:hover:not(:disabled){background:#1d4ed8}.btn-success.svelte-1os9yej{background:#22c55e;color:#fff}.btn-success.svelte-1os9yej:hover{background:#16a34a}.btn-hint.svelte-1os9yej{background:#f59e0b;color:#fff}.btn-hint.svelte-1os9yej:hover:not(:disabled){background:#d97706}.editor-wrapper.svelte-1os9yej{flex:1;min-height:200px}.preview-panel.svelte-1os9yej{height:300px;min-height:200px;border-top:1px solid var(--border-color);display:flex;flex-direction:column}.preview-toolbar.svelte-1os9yej{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.preview-title.svelte-1os9yej{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.loading-indicator.svelte-1os9yej{font-size:.75rem;color:var(--text-tertiary)}.preview-wrapper.svelte-1os9yej{flex:1;background:#fff;overflow:hidden}[data-theme=dark] .preview-wrapper.svelte-1os9yej{background:#1e1e1e}.preview-wrapper.svelte-1os9yej iframe:where(.svelte-1os9yej){width:100%;height:100%;border:none}[data-theme=dark] .preview-wrapper.svelte-1os9yej iframe:where(.svelte-1os9yej){filter:invert(1) hue-rotate(180deg)}.preview-error.svelte-1os9yej,.preview-loading.svelte-1os9yej{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary)}.preview-error.svelte-1os9yej{color:#f87171;background:var(--error-bg)}@media(max-width:768px){.exercise-view.svelte-1os9yej{flex-direction:column}.instructions-panel.svelte-1os9yej{width:100%;min-width:100%;max-width:100%;border-right:none;border-bottom:1px solid var(--border-color)}.instructions-panel.svelte-1os9yej:not(.expanded){max-height:60px}.instructions-panel.svelte-1os9yej:not(.expanded) .instructions-content:where(.svelte-1os9yej){display:none}.instructions-panel.expanded.svelte-1os9yej{max-height:30vh}.expand-icon.svelte-1os9yej{display:block}.category-badge.svelte-1os9yej{display:none}}.exercise-view.svelte-1rjukir{flex:1;display:flex;overflow:hidden}.instructions-panel.svelte-1rjukir{width:350px;min-width:280px;max-width:400px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease,min-width .2s ease,max-width .2s ease}.instructions-panel.collapsed.svelte-1rjukir{width:56px;min-width:56px;max-width:56px}.exercise-header.svelte-1rjukir{width:100%;padding:.75rem;border:none;border-bottom:1px solid var(--border-color);background:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.header-content.svelte-1rjukir{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;background:none;border:none;cursor:default;text-align:left;padding:0;gap:.75rem}.collapse-btn.svelte-1rjukir{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;border-radius:4px;transition:all .15s;flex-shrink:0}.collapse-btn.svelte-1rjukir:hover{background:var(--bg-active);color:var(--text-primary)}.collapsed.svelte-1rjukir .exercise-header:where(.svelte-1rjukir){flex-direction:column;padding:.5rem}.collapsed.svelte-1rjukir .header-content:where(.svelte-1rjukir){justify-content:center}.collapsed.svelte-1rjukir .collapse-btn:where(.svelte-1rjukir){margin-top:.5rem}.header-left.svelte-1rjukir{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-right.svelte-1rjukir{display:flex;align-items:center;gap:.5rem}.expand-icon.svelte-1rjukir{display:none;font-size:.75rem;color:var(--text-tertiary)}.exercise-number.svelte-1rjukir{font-size:.875rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;font-family:monospace;flex-shrink:0}.exercise-number.typescript.svelte-1rjukir{color:#3178c6;background:#1a2940}.exercise-header.svelte-1rjukir h2:where(.svelte-1rjukir){margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-badge.svelte-1rjukir{font-size:.6875rem;color:var(--text-tertiary);background:var(--bg-active);padding:.25rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.category-badge.typescript.svelte-1rjukir{color:#3178c6;background:#1a2940}.instructions-content.svelte-1rjukir{flex:1;overflow-y:auto;padding:1rem}.instructions.svelte-1rjukir{margin:0;font-size:.875rem;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading.svelte-1rjukir{padding:2rem;text-align:center;color:var(--text-tertiary)}.main-panel.svelte-1rjukir{flex:1;display:flex;flex-direction:column;overflow:hidden}.editor-panel.svelte-1rjukir{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary);min-height:0}.editor-toolbar.svelte-1rjukir{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.toolbar-left.svelte-1rjukir{display:flex;align-items:center;gap:.5rem;color:var(--text-tertiary);font-size:.875rem}.file-icon.svelte-1rjukir{font-size:1rem}.file-name.svelte-1rjukir{font-family:monospace}.toolbar-right.svelte-1rjukir{display:flex;gap:.5rem}.btn.svelte-1rjukir{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s}.btn.svelte-1rjukir:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.svelte-1rjukir{background:var(--bg-active);color:var(--text-secondary)}.btn-secondary.svelte-1rjukir:hover:not(:disabled){background:var(--bg-hover)}.btn-primary.svelte-1rjukir{background:#2563eb;color:#fff}.btn-primary.typescript.svelte-1rjukir{background:#3178c6}.btn-primary.typescript.svelte-1rjukir:hover:not(:disabled){background:#265ba0}.btn-primary.svelte-1rjukir:hover:not(:disabled){background:#1d4ed8}.btn-success.svelte-1rjukir{background:#22c55e;color:#fff}.btn-success.svelte-1rjukir:hover{background:#16a34a}.btn-hint.svelte-1rjukir{background:#f59e0b;color:#fff}.btn-hint.svelte-1rjukir:hover:not(:disabled){background:#d97706}.editor-wrapper.svelte-1rjukir{flex:1;min-height:200px}.preview-panel.svelte-1rjukir{height:300px;min-height:200px;border-top:1px solid var(--border-color);display:flex;flex-direction:column}.preview-toolbar.svelte-1rjukir{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.preview-title.svelte-1rjukir{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.loading-indicator.svelte-1rjukir{font-size:.75rem;color:var(--text-tertiary)}.preview-wrapper.svelte-1rjukir{flex:1;background:#1e1e1e;overflow:hidden}.preview-wrapper.svelte-1rjukir iframe:where(.svelte-1rjukir){width:100%;height:100%;border:none}.preview-error.svelte-1rjukir,.preview-loading.svelte-1rjukir{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary)}.preview-error.svelte-1rjukir{color:#f87171;background:var(--error-bg)}@media(max-width:768px){.exercise-view.svelte-1rjukir{flex-direction:column}.instructions-panel.svelte-1rjukir{width:100%;min-width:100%;max-width:100%;border-right:none;border-bottom:1px solid var(--border-color)}.instructions-panel.svelte-1rjukir:not(.expanded){max-height:60px}.instructions-panel.svelte-1rjukir:not(.expanded) .instructions-content:where(.svelte-1rjukir){display:none}.instructions-panel.expanded.svelte-1rjukir{max-height:30vh}.expand-icon.svelte-1rjukir{display:block}.category-badge.svelte-1rjukir{display:none}}.loading.svelte-1ik4brk,.unsupported.svelte-1ik4brk{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary)}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-secondary);overflow:hidden}*{box-sizing:border-box}.app.svelte-1uha8ag{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}main.svelte-1uha8ag{flex:1;display:flex;overflow:hidden;position:relative}@media(max-width:768px){main.svelte-1uha8ag{flex-direction:column}}
