.skilltree-wrapper.svelte-12o4jo5{position:relative;width:100%;min-height:calc(100vh - 280px)}.subtopic-nav.svelte-12o4jo5{display:flex;align-items:center;gap:16px;padding:12px 24px;max-width:1200px;margin:0 auto}.back-btn.svelte-12o4jo5{display:flex;align-items:center;gap:4px;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:4px;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.back-btn.svelte-12o4jo5:hover{background:var(--bg-tertiary);border-color:var(--accent);color:var(--accent)}.breadcrumb-path.svelte-12o4jo5{display:flex;align-items:center;gap:6px}.crumb.svelte-12o4jo5{display:flex;align-items:center;padding:4px 8px;background:transparent;border:none;border-radius:4px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.crumb.svelte-12o4jo5:hover:not(.current){background:var(--bg-tertiary);color:var(--text-primary)}.crumb.home.svelte-12o4jo5{color:var(--accent)}.crumb.current.svelte-12o4jo5{color:var(--text-primary);font-weight:600;cursor:default}.sep.svelte-12o4jo5{color:var(--text-muted);font-size:12px}.edit-subgraph-btn.svelte-12o4jo5{margin-left:auto;display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:4px;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.edit-subgraph-btn.svelte-12o4jo5:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.roadmap-scroll-container.svelte-12o4jo5{width:100%;overflow-x:auto;overflow-y:hidden;padding:40px 24px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg-tertiary);transition:opacity .3s ease,transform .3s ease;cursor:grab}.roadmap-scroll-container.dragging.svelte-12o4jo5{cursor:grabbing;scroll-behavior:auto}.roadmap-scroll-container.subgraph-view.svelte-12o4jo5{max-width:1200px;margin:0 auto}.roadmap-scroll-container.zooming-out.svelte-12o4jo5{animation:svelte-12o4jo5-zoomOut .3s ease-out forwards}.roadmap-scroll-container.zooming-in.svelte-12o4jo5{animation:svelte-12o4jo5-zoomIn .3s ease-out forwards}@keyframes svelte-12o4jo5-zoomOut{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}to{opacity:0;transform:scale(1.5)}}@keyframes svelte-12o4jo5-zoomIn{0%{opacity:0;transform:scale(.5)}50%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.roadmap-scroll-container.svelte-12o4jo5::-webkit-scrollbar{height:8px}.roadmap-scroll-container.svelte-12o4jo5::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}.roadmap-scroll-container.svelte-12o4jo5::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px}.roadmap-track.svelte-12o4jo5{position:relative;padding:60px 40px 40px}.stage-label.svelte-12o4jo5{position:absolute;top:16px;transform:translate(-50%);white-space:nowrap;z-index:1}.edges-svg.svelte-12o4jo5{position:absolute;top:60px;left:40px;pointer-events:none;z-index:0}.edge-path.svelte-12o4jo5{stroke:var(--accent);stroke-width:2;stroke-dasharray:6,4;opacity:.35}.nodes-layer.svelte-12o4jo5{position:relative;z-index:1;width:100%;height:100%}.node-pill.svelte-12o4jo5{position:absolute;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--node-default);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0000001a}.node-pill.svelte-12o4jo5:hover{transform:translateY(-2px);background:var(--node-default-hover);box-shadow:0 6px 16px #d8b4fe59}.node-pill.svelte-12o4jo5:active{transform:translateY(0) scale(.98)}.node-pill.zoom-target.svelte-12o4jo5{animation:svelte-12o4jo5-pulseGrow .3s ease-out forwards;z-index:100}@keyframes svelte-12o4jo5-pulseGrow{0%{transform:scale(1)}50%{transform:scale(1.15);box-shadow:0 8px 30px #0000004d}to{transform:scale(1.3);opacity:0}}.node-pill.completed.svelte-12o4jo5{background:var(--node-completed)}.node-pill.completed.svelte-12o4jo5:hover{background:var(--node-completed-hover);box-shadow:0 6px 16px #86efac59}.node-pill.in-progress.svelte-12o4jo5{background:var(--node-in-progress)}.node-pill.in-progress.svelte-12o4jo5:hover{background:var(--node-in-progress-hover);box-shadow:0 6px 16px #fde68a59}.node-pill.has-subtopics.svelte-12o4jo5{border:2px solid rgba(255,255,255,.5)}.node-pill.has-subtopics.svelte-12o4jo5:hover{border-color:#fffc}.node-content.svelte-12o4jo5{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.node-name.svelte-12o4jo5{font-size:13px;font-weight:600;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-info.svelte-12o4jo5{display:flex;align-items:center;gap:5px}.progress-text.svelte-12o4jo5{font-size:11px;font-weight:500;color:#0009}.progress-pie.svelte-12o4jo5{flex-shrink:0}.pie-bg.svelte-12o4jo5{fill:none;stroke:#00000026;stroke-width:3}.pie-fill.svelte-12o4jo5{fill:none;stroke:#00000080;stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .3s ease}.pie-fill.complete.svelte-12o4jo5{stroke:#166534}.subtopic-indicator.svelte-12o4jo5{display:flex;align-items:center;justify-content:center;flex-shrink:0}.expand-icon.svelte-12o4jo5{font-size:14px;color:#0006;transition:transform .2s ease}.node-pill.svelte-12o4jo5:hover .expand-icon:where(.svelte-12o4jo5){transform:scale(1.2);color:#0009}@media(max-width:768px){.skilltree-wrapper.svelte-12o4jo5{min-height:calc(100vh - 320px)}.subtopic-nav.svelte-12o4jo5{padding:8px 16px;gap:12px}.back-btn.svelte-12o4jo5{padding:6px 10px;font-size:12px}.breadcrumb-path.svelte-12o4jo5{overflow-x:auto}.roadmap-scroll-container.svelte-12o4jo5{padding:50px 16px 24px}.roadmap-track.svelte-12o4jo5{padding:50px 16px 16px}.stage-label.svelte-12o4jo5{top:16px;font-size:10px}.edges-svg.svelte-12o4jo5{top:50px;left:16px}.node-pill.svelte-12o4jo5{padding:0 12px}.node-name.svelte-12o4jo5{font-size:12px}}.editor-backdrop.svelte-1gt9q3d{position:fixed;inset:0;background:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px}.editor-container.svelte-1gt9q3d{width:100%;max-width:1600px;height:90vh;background:var(--bg-primary);border-radius:4px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 50px #00000080}.toolbar.svelte-1gt9q3d{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle)}.toolbar.svelte-1gt9q3d h2:where(.svelte-1gt9q3d){font-size:18px;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap}.toolbar-actions.svelte-1gt9q3d{display:flex;gap:12px}.btn.svelte-1gt9q3d{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn.svelte-1gt9q3d:hover{background:var(--bg-primary);border-color:var(--accent)}.btn.active.svelte-1gt9q3d{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.close.svelte-1gt9q3d{background:#ef4444;color:#fff;border-color:#ef4444}.btn.close.svelte-1gt9q3d:hover{background:#dc2626}.editor-body.svelte-1gt9q3d{display:flex;flex:1;overflow:hidden}.canvas.svelte-1gt9q3d{flex:1;overflow:hidden;background:var(--bg-secondary)}.roadmap-scroll-container.svelte-1gt9q3d{width:100%;height:100%;overflow:auto;padding:24px}.roadmap-track.svelte-1gt9q3d{position:relative;min-width:max-content;padding:40px 20px 20px}.edges-svg.svelte-1gt9q3d{position:absolute;top:40px;left:20px;z-index:2;pointer-events:none}.edge-path.svelte-1gt9q3d{stroke:var(--accent);stroke-width:2;stroke-dasharray:6,4;opacity:.4}.edge-delete.svelte-1gt9q3d{fill:#ef4444;opacity:.5;cursor:pointer;pointer-events:all;transition:all .2s;stroke:#fff;stroke-width:1.5}.edge-group.svelte-1gt9q3d:hover .edge-delete:where(.svelte-1gt9q3d){opacity:.85}.edge-delete.svelte-1gt9q3d:hover{opacity:1!important;filter:drop-shadow(0 0 4px #ef4444)}.grid-container.svelte-1gt9q3d{position:relative;z-index:1}.grid-cell.svelte-1gt9q3d{position:absolute;border:1px dashed transparent;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:8px}.grid-cell.svelte-1gt9q3d:not(.has-node){pointer-events:all}.grid-cell.svelte-1gt9q3d:hover:not(.has-node){border-color:var(--border-subtle);background:#6750a408}.node-pill.svelte-1gt9q3d{pointer-events:all}.stage-label.svelte-1gt9q3d{position:absolute;top:8px;width:240px;text-align:center;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.node-pill.admin.svelte-1gt9q3d{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--node-color);border:2px solid transparent;border-radius:4px;cursor:move;transition:all .2s;width:100%}.node-pill.admin.svelte-1gt9q3d:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000040}.node-pill.admin.connecting.svelte-1gt9q3d{border-color:#10b981;animation:svelte-1gt9q3d-pulse 1s infinite}@keyframes svelte-1gt9q3d-pulse{0%,to{opacity:1}50%{opacity:.7}}.node-pill.svelte-1gt9q3d .drag-handle{color:#1c1b1f66;flex-shrink:0}.node-name.svelte-1gt9q3d{flex:1;font-size:13px;font-weight:600;color:#1c1b1f;text-align:left}.node-actions.svelte-1gt9q3d{display:flex;gap:4px;opacity:0;transition:opacity .2s}.node-pill.svelte-1gt9q3d:hover .node-actions:where(.svelte-1gt9q3d){opacity:1}.action-btn.svelte-1gt9q3d{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#ffffff4d;border:none;border-radius:4px;cursor:pointer;transition:all .15s}.action-btn.delete.svelte-1gt9q3d{color:#ef4444}.action-btn.delete.svelte-1gt9q3d:hover{background:#ef4444;color:#fff}.action-btn.edit.svelte-1gt9q3d{color:var(--accent)}.action-btn.edit.svelte-1gt9q3d:hover{background:var(--accent);color:#fff}.action-btn.save.svelte-1gt9q3d{color:#10b981}.action-btn.save.svelte-1gt9q3d:hover{background:#10b981;color:#fff}.node-pill.editing.svelte-1gt9q3d{border-color:var(--accent);background:var(--bg-tertiary)}.node-name-input.svelte-1gt9q3d{flex:1;min-width:0;padding:4px 8px;font-size:13px;font-weight:500;background:var(--bg-primary);border:1px solid var(--accent);border-radius:4px;color:var(--text-primary);outline:none}.grid-cell.empty.svelte-1gt9q3d{cursor:pointer}.grid-cell.empty.svelte-1gt9q3d:hover{background:#8b5cf61a;border-color:var(--accent)}.empty-cell-hint.svelte-1gt9q3d{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-muted);opacity:0;transition:opacity .2s}.grid-cell.empty.svelte-1gt9q3d:hover .empty-cell-hint:where(.svelte-1gt9q3d){opacity:1;color:var(--accent)}.toolbar-hint.svelte-1gt9q3d{font-size:12px;color:var(--text-muted);margin:0}.editing-context.svelte-1gt9q3d{font-size:13px;color:var(--accent);margin:0 0 4px}.editing-context.svelte-1gt9q3d strong:where(.svelte-1gt9q3d){color:var(--text-primary)}@media(max-width:768px){.editor-backdrop.svelte-1gt9q3d{padding:0}.editor-container.svelte-1gt9q3d{border-radius:0;height:100vh;max-width:100%}.toolbar.svelte-1gt9q3d{flex-wrap:wrap;padding:12px 16px;gap:8px}.toolbar.svelte-1gt9q3d h2:where(.svelte-1gt9q3d){font-size:16px;width:100%}.toolbar-hint.svelte-1gt9q3d{display:none}.editing-context.svelte-1gt9q3d{width:100%;font-size:12px}.toolbar-actions.svelte-1gt9q3d{width:100%;display:flex;gap:8px}.toolbar-actions.svelte-1gt9q3d .btn:where(.svelte-1gt9q3d){flex:1;justify-content:center;padding:10px 12px;font-size:13px}.roadmap-scroll-container.svelte-1gt9q3d{padding:12px}.stage-label.svelte-1gt9q3d{font-size:10px}.node-pill.admin.svelte-1gt9q3d{padding:0 8px}.node-name.svelte-1gt9q3d{font-size:11px}.node-actions.svelte-1gt9q3d{opacity:1}.action-btn.svelte-1gt9q3d{width:28px;height:28px}}.sidebar-overlay.svelte-1e9z150{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);z-index:200;display:flex;animation:svelte-1e9z150-fadeIn .2s ease-out;isolation:isolate}@keyframes svelte-1e9z150-fadeIn{0%{opacity:0}to{opacity:1}}.topic-sidebar.svelte-1e9z150{position:fixed;left:0;top:0;bottom:0;width:66.67%;max-width:1200px;background:#18181b;border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;box-shadow:8px 0 32px #0000004d;animation:svelte-1e9z150-slideIn .25s ease-out;overflow:visible}[data-theme=light] .topic-sidebar.svelte-1e9z150{background:#f8f8fa}@keyframes svelte-1e9z150-slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.sidebar-header.svelte-1e9z150{display:flex;flex-direction:column;gap:8px;padding:24px 32px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;background:var(--bg-tertiary)}.sidebar-header-row.svelte-1e9z150{display:flex;align-items:center;gap:16px}.sidebar-header.svelte-1e9z150 h3:where(.svelte-1e9z150){font-size:24px;font-weight:600;color:var(--text-primary);letter-spacing:-.02em;flex:1;margin:0}.breadcrumb-path.svelte-1e9z150{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.breadcrumb-item.svelte-1e9z150{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0;cursor:pointer;color:var(--text-secondary);font-size:12px;transition:color .15s ease}.breadcrumb-item.svelte-1e9z150:hover{color:var(--accent)}.breadcrumb-separator.svelte-1e9z150{color:var(--text-muted)}.breadcrumb-current.svelte-1e9z150{color:var(--text-primary);font-weight:500}.back-btn.svelte-1e9z150{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.back-btn.svelte-1e9z150:hover{background:#6750a414;border-color:var(--accent);color:var(--accent)}.close-sidebar-btn.svelte-1e9z150{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.close-sidebar-btn.svelte-1e9z150:hover{background:var(--bg-secondary);border-color:var(--accent);color:var(--accent)}.sidebar-content.svelte-1e9z150{flex:1;overflow-y:auto;padding:24px 32px;background:#18181b;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}[data-theme=light] .sidebar-content.svelte-1e9z150{background:#f8f8fa}.sidebar-content.svelte-1e9z150::-webkit-scrollbar{width:10px}.sidebar-content.svelte-1e9z150::-webkit-scrollbar-track{background:transparent}.sidebar-content.svelte-1e9z150::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#7c3aed,#a78bfa);border-radius:4px}.topic-description.svelte-1e9z150{padding:16px 0 24px;font-size:14px;line-height:1.6;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);margin-bottom:24px}.description-display.svelte-1e9z150{display:flex;align-items:flex-start;gap:12px}.description-display.svelte-1e9z150 p:where(.svelte-1e9z150){flex:1;margin:0}.no-description.svelte-1e9z150{color:var(--text-muted);font-style:italic}.description-text.svelte-1e9z150{white-space:pre-wrap}.btn-edit-description.svelte-1e9z150{flex-shrink:0;padding:6px 12px;display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-edit-description.svelte-1e9z150:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.edit-description-form.svelte-1e9z150{display:flex;flex-direction:column;gap:12px}.edit-description-form.svelte-1e9z150 textarea:where(.svelte-1e9z150){width:100%;padding:12px;background:#0f0f11;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);font-size:14px;font-family:inherit;resize:none;line-height:1.6}[data-theme=light] .edit-description-form.svelte-1e9z150 textarea:where(.svelte-1e9z150){background:#fff}.edit-description-form.svelte-1e9z150 textarea:where(.svelte-1e9z150):focus{outline:none;border-color:var(--accent)}.edit-description-actions.svelte-1e9z150{display:flex;gap:8px;justify-content:flex-end}.btn-cancel.svelte-1e9z150{padding:8px 16px;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-cancel.svelte-1e9z150:hover{background:#ef4444;border-color:#ef4444;color:#fff}.btn-save.svelte-1e9z150{padding:8px 16px;background:var(--accent);border:none;border-radius:4px;color:var(--on-accent);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-save.svelte-1e9z150:hover{filter:brightness(1.1)}.topic-description.svelte-1e9z150 p:where(.svelte-1e9z150){color:var(--text-secondary);line-height:1.6;margin:0}.dashboard-section.svelte-1e9z150{margin-bottom:28px;overflow:visible}.dashboard-section.svelte-1e9z150:last-child{margin-bottom:0}.section-header-row.svelte-1e9z150{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header-row.svelte-1e9z150 h4:where(.svelte-1e9z150){margin-bottom:0}.dashboard-section.svelte-1e9z150 h4:where(.svelte-1e9z150){font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:12px}.btn-add-inline.svelte-1e9z150{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--accent);color:var(--on-accent);border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-add-inline.svelte-1e9z150:hover{filter:brightness(1.1);transform:translateY(-1px)}.subtopics-list.svelte-1e9z150{display:flex;flex-direction:column;gap:8px}.subtopic-item.svelte-1e9z150{width:100%;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:4px;text-align:left;cursor:pointer;transition:all .2s ease}.subtopic-item.svelte-1e9z150:hover{background:var(--bg-tertiary);border-color:var(--accent)}.subtopic-header.svelte-1e9z150{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.subtopic-name.svelte-1e9z150{font-weight:600;color:var(--text-primary);font-size:15px}.subtopic-meta.svelte-1e9z150{display:flex;align-items:center;gap:10px}.subtopic-problem-count.svelte-1e9z150{font-size:12px;color:var(--text-secondary);opacity:.8}.progress-pie.svelte-1e9z150{flex-shrink:0}.pie-bg.svelte-1e9z150{fill:none;stroke:var(--border-subtle);stroke-width:3}.pie-fill.svelte-1e9z150{fill:none;stroke-width:3;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset .3s ease}.pie-fill.in-progress.svelte-1e9z150{stroke:var(--accent)}.pie-fill.completed.svelte-1e9z150{stroke:#22c55e}.subtopic-description.svelte-1e9z150{font-size:13px;color:var(--text-secondary);line-height:1.5;margin:0}.resource-list.svelte-1e9z150{display:flex;flex-direction:column;gap:8px}.resource-item.svelte-1e9z150{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#222225;border:1px solid var(--border-subtle);border-radius:4px;transition:all .2s ease}[data-theme=light] .resource-item.svelte-1e9z150{background:#fff}.resource-item.svelte-1e9z150:hover{background:#2a2a2e;border-color:var(--accent)}[data-theme=light] .resource-item.svelte-1e9z150:hover{background:#f5f5f7}.resource-item.dragging.svelte-1e9z150{opacity:.5;border-color:var(--accent)}.resource-item.drag-over.svelte-1e9z150{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.drag-handle.svelte-1e9z150{display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:grab;flex-shrink:0;padding:2px;margin-left:-4px}.drag-handle.svelte-1e9z150:hover{color:var(--text-secondary)}.drag-handle.svelte-1e9z150:active{cursor:grabbing}.resource-stars.svelte-1e9z150{display:flex;gap:2px;color:#fbbf24;flex-shrink:0}.resource-link.svelte-1e9z150{flex:1;text-decoration:none;color:var(--text-primary);font-weight:500;display:flex;align-items:center;overflow:hidden}.resource-link.svelte-1e9z150:hover{color:var(--accent)}.resource-title.svelte-1e9z150{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-link.svelte-1e9z150:hover .resource-title:where(.svelte-1e9z150){color:var(--accent)}.resource-actions.svelte-1e9z150{display:flex;gap:4px;flex-shrink:0}.btn-action.svelte-1e9z150{width:28px;height:28px;border-radius:4px;display:grid;place-items:center;background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.btn-action.svelte-1e9z150:hover{background:var(--bg-tertiary);border-color:var(--accent);color:var(--accent)}.btn-action-danger.svelte-1e9z150:hover{border-color:#ef4444;color:#ef4444}.progress-summary.svelte-1e9z150{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;background:var(--bg-tertiary);border-radius:4px}.progress-bar-container.svelte-1e9z150{flex:1;height:6px;background:var(--border-subtle);border-radius:3px;overflow:hidden}.progress-bar-fill.svelte-1e9z150{height:100%;background:linear-gradient(90deg,var(--accent) 0%,#22c55e 100%);border-radius:3px;transition:width .3s ease}.progress-label.svelte-1e9z150{font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap}.practice-table.svelte-1e9z150{display:flex;flex-direction:column;gap:6px}.practice-row.svelte-1e9z150{display:flex;align-items:center;gap:8px;padding:12px 14px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:4px;transition:all .15s ease}.practice-row.svelte-1e9z150:hover{border-color:var(--accent);background:var(--bg-tertiary)}.practice-row.dragging.svelte-1e9z150{opacity:.5;border-color:var(--accent)}.practice-row.drag-over.svelte-1e9z150{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.status-dropdown-wrapper.svelte-1e9z150{position:relative;flex-shrink:0}.status-circle-btn.svelte-1e9z150{width:22px;height:22px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .1s ease,transform .2s ease,box-shadow .2s ease;flex-shrink:0;box-shadow:0 1px 3px #00000026;position:relative;z-index:1}.status-circle-btn.svelte-1e9z150:hover{transform:scale(1.15);box-shadow:0 2px 6px #0003}.status-dropdown-menu.svelte-1e9z150{position:absolute;top:calc(100% + 8px);left:0;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:4px;box-shadow:0 8px 24px #0000004d;overflow:hidden;z-index:10001;min-width:180px;animation:svelte-1e9z150-dropdownSlideIn .15s ease-out}@keyframes svelte-1e9z150-dropdownSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.status-option.svelte-1e9z150{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border:none;background:transparent;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .1s ease;text-align:left}.status-option.svelte-1e9z150:hover{background:var(--bg-tertiary)}.status-circle.svelte-1e9z150{width:16px;height:16px;border-radius:50%;flex-shrink:0}.practice-name.svelte-1e9z150{flex:1;display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--text-primary);font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-name.svelte-1e9z150:hover{color:var(--accent)}.starred-tooltip-wrapper.svelte-1e9z150{position:relative;display:flex;align-items:center;flex-shrink:0}.starred-icon{color:#fbbf24;flex-shrink:0;cursor:help}.starred-tooltip.svelte-1e9z150{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:10px 14px;background:var(--bg-primary);border:1px solid #fbbf24;border-radius:4px;font-size:13px;line-height:1.5;color:var(--text-secondary);white-space:nowrap;box-shadow:0 8px 24px #0000004d;z-index:100;opacity:0;visibility:hidden;transition:all .15s ease;pointer-events:none}.starred-tooltip.svelte-1e9z150:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#fbbf24}.starred-tooltip-wrapper.svelte-1e9z150:hover .starred-tooltip:where(.svelte-1e9z150){opacity:1;visibility:visible}.notes-tooltip-wrapper.svelte-1e9z150{position:relative;display:flex;align-items:center;flex-shrink:0}.notes-icon{color:var(--text-muted);cursor:help;transition:color .15s ease}.notes-tooltip-wrapper.svelte-1e9z150:hover .notes-icon{color:var(--accent)}.notes-tooltip.svelte-1e9z150{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:4px;font-size:13px;line-height:1.5;color:var(--text-secondary);white-space:pre-wrap;max-width:280px;min-width:180px;box-shadow:0 8px 24px #0000004d;z-index:100;opacity:0;visibility:hidden;transition:all .15s ease;pointer-events:none}.notes-tooltip.svelte-1e9z150:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--border-subtle)}.notes-tooltip-wrapper.svelte-1e9z150:hover .notes-tooltip:where(.svelte-1e9z150){opacity:1;visibility:visible}.practice-name.external-link.svelte-1e9z150{color:var(--text-secondary)}.practice-name.external-link.svelte-1e9z150:hover{color:var(--accent)}.source-badge.svelte-1e9z150{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;text-align:center;flex-shrink:0;background:#ffffff1a;color:var(--text-secondary);border:1px solid rgba(255,255,255,.15)}[data-theme=light] .source-badge.svelte-1e9z150{background:#0000000d;color:var(--text-secondary);border:1px solid rgba(0,0,0,.1)}.btn-edit-table.svelte-1e9z150,.btn-remove-table.svelte-1e9z150{width:28px;height:28px;border-radius:4px;display:grid;place-items:center;background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-edit-table.svelte-1e9z150:hover{background:var(--accent);border-color:var(--accent);color:#fff}.btn-remove-table.svelte-1e9z150:hover{background:#ef4444;border-color:#ef4444;color:#fff}.no-content.svelte-1e9z150{padding:32px;text-align:center;color:var(--text-muted);font-size:14px;background:var(--bg-primary);border:1px dashed var(--border-subtle);border-radius:4px}.edit-subgraph-section.svelte-1e9z150{margin-bottom:20px}.btn-edit-subgraph.svelte-1e9z150{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;width:100%;justify-content:center}.btn-edit-subgraph.svelte-1e9z150:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}@media(max-width:768px){.topic-sidebar.svelte-1e9z150{width:100%;max-width:100%}.sidebar-header.svelte-1e9z150{padding:24px}.sidebar-header.svelte-1e9z150 h3:where(.svelte-1e9z150){font-size:18px}.practice-row.svelte-1e9z150{gap:6px;padding:10px 8px}.drag-handle.svelte-1e9z150{margin-left:0;padding:0}.practice-name.svelte-1e9z150{flex:1;min-width:0;font-size:13px;gap:4px}.source-badge.svelte-1e9z150{font-size:10px;padding:3px 6px}.btn-edit-table.svelte-1e9z150,.btn-remove-table.svelte-1e9z150{width:32px;height:32px}}.modal-backdrop.svelte-1cih3xg{position:fixed;inset:0;background:#0009;backdrop-filter:blur(8px);z-index:300;display:grid;place-items:center;animation:svelte-1cih3xg-fadeIn .2s ease-out}@keyframes svelte-1cih3xg-fadeIn{0%{opacity:0}to{opacity:1}}.modal-content.svelte-1cih3xg{background:var(--bg-secondary);border-radius:4px;max-width:520px;width:calc(100% - 32px);max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;animation:svelte-1cih3xg-slideUp .3s ease-out}@keyframes svelte-1cih3xg-slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header.svelte-1cih3xg{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-subtle)}.modal-header.svelte-1cih3xg h2:where(.svelte-1cih3xg){font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.close-btn.svelte-1cih3xg{width:36px;height:36px;border-radius:4px;display:grid;place-items:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;flex-shrink:0}.close-btn.svelte-1cih3xg:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body.svelte-1cih3xg{padding:24px;overflow-y:auto;flex:1}.field.svelte-1cih3xg{margin-bottom:20px}.field.svelte-1cih3xg:last-child{margin-bottom:0}.field.svelte-1cih3xg label:where(.svelte-1cih3xg),.field-label.svelte-1cih3xg{display:block;margin-bottom:8px;font-weight:600;font-size:14px;color:var(--text-primary)}.input.svelte-1cih3xg{width:100%;padding:12px 16px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:all .15s ease}.input.svelte-1cih3xg:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #6750a41a}.star-selector.svelte-1cih3xg{display:flex;align-items:center;gap:4px}.star-btn.svelte-1cih3xg{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-muted);transition:all .15s ease;border-radius:4px}.star-btn.svelte-1cih3xg:hover,.star-btn.active.svelte-1cih3xg{color:#fbbf24}.importance-label.svelte-1cih3xg{margin-left:12px;font-size:13px;color:var(--text-secondary);font-weight:500}.modal-footer.svelte-1cih3xg{display:flex;gap:12px;padding:20px 24px;border-top:1px solid var(--border-subtle);justify-content:flex-end}.btn-cancel.svelte-1cih3xg,.btn-primary.svelte-1cih3xg{padding:10px 20px;border-radius:4px;font-weight:600;font-size:14px;cursor:pointer;transition:all .15s ease}.btn-cancel.svelte-1cih3xg{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary)}.btn-cancel.svelte-1cih3xg:hover{border-color:var(--text-secondary)}.btn-primary.svelte-1cih3xg{background:var(--accent);border:none;color:var(--on-accent)}.btn-primary.svelte-1cih3xg:hover{opacity:.9;transform:translateY(-1px)}.algorithms-page.svelte-1qewoaf{min-height:100vh;padding:100px 24px 60px;max-width:1200px;margin:0 auto}.page-header.svelte-1qewoaf{margin-bottom:20px}.header-row.svelte-1qewoaf{display:flex;justify-content:space-between;align-items:center;gap:16px}.page-header.svelte-1qewoaf h1:where(.svelte-1qewoaf){display:flex;align-items:center;gap:12px;font-size:32px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.page-header.svelte-1qewoaf p:where(.svelte-1qewoaf){font-size:15px;color:var(--text-secondary)}.scroll-hint.svelte-1qewoaf{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--text-muted);opacity:.7}.stats-row.svelte-1qewoaf{display:flex;align-items:center;gap:8px;margin-top:24px;justify-content:flex-end}.stat-pill.svelte-1qewoaf{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:9999px;font-size:12px}.stat-pill.svelte-1qewoaf .stat-value:where(.svelte-1qewoaf){font-weight:600;color:var(--text-primary)}.stat-pill.svelte-1qewoaf .stat-label:where(.svelte-1qewoaf){color:var(--text-secondary);font-weight:500}.stat-pill.online.svelte-1qewoaf{gap:6px}.stat-pill.online.svelte-1qewoaf .online-dot:where(.svelte-1qewoaf){width:6px;height:6px;background:#22c55e;border-radius:50%;animation:svelte-1qewoaf-pulse 2s ease-in-out infinite}@keyframes svelte-1qewoaf-pulse{0%,to{opacity:1}50%{opacity:.5}}.create-btn.svelte-1qewoaf{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.create-btn.svelte-1qewoaf:hover{filter:brightness(1.1)}.roadmap-section.svelte-1qewoaf{width:100vw;margin-left:calc(-50vw + 50%);position:relative}.graph-fullscreen-container.svelte-1qewoaf{position:relative;min-height:calc(100vh - 200px)}.roadmap-faq.svelte-1qewoaf{margin-top:48px}.roadmap-faq.svelte-1qewoaf h2:where(.svelte-1qewoaf){font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:24px}.roadmap-faq.svelte-1qewoaf .faq-list:where(.svelte-1qewoaf){display:flex;flex-direction:column}.roadmap-faq.svelte-1qewoaf .faq-item:where(.svelte-1qewoaf){width:100%;text-align:left;padding:0;background:none;border:none;border-top:1px solid var(--border-subtle);cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}.roadmap-faq.svelte-1qewoaf .faq-item:where(.svelte-1qewoaf):focus{outline:none}.roadmap-faq.svelte-1qewoaf .faq-item:where(.svelte-1qewoaf):last-child{border-bottom:1px solid var(--border-subtle)}.roadmap-faq.svelte-1qewoaf .faq-question:where(.svelte-1qewoaf){display:flex;justify-content:space-between;align-items:center;padding:20px 0;font-size:15px;font-weight:500;color:var(--text-primary);transition:color .15s ease}.roadmap-faq.svelte-1qewoaf .faq-item:where(.svelte-1qewoaf):hover .faq-question:where(.svelte-1qewoaf){color:var(--text-secondary)}.roadmap-faq.svelte-1qewoaf .faq-icon:where(.svelte-1qewoaf){flex-shrink:0;color:var(--text-secondary);transition:transform .3s cubic-bezier(.4,0,.2,1)}.roadmap-faq.svelte-1qewoaf .faq-icon.open:where(.svelte-1qewoaf){transform:rotate(45deg)}.roadmap-faq.svelte-1qewoaf .faq-answer-wrapper:where(.svelte-1qewoaf){display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1)}.roadmap-faq.svelte-1qewoaf .faq-answer-wrapper.open:where(.svelte-1qewoaf){grid-template-rows:1fr}.roadmap-faq.svelte-1qewoaf .faq-answer:where(.svelte-1qewoaf){overflow:hidden;font-size:14px;line-height:1.7;color:var(--text-secondary);text-align:left;margin:0;padding-bottom:0;transition:padding-bottom .3s cubic-bezier(.4,0,.2,1)}.roadmap-faq.svelte-1qewoaf .faq-answer-wrapper.open:where(.svelte-1qewoaf) .faq-answer:where(.svelte-1qewoaf){padding-bottom:20px}.difficulty-reference-table.svelte-1qewoaf{margin-top:12px;overflow-x:auto}@media(max-width:768px){.algorithms-page.svelte-1qewoaf{padding:90px 16px 40px}.page-header.svelte-1qewoaf h1:where(.svelte-1qewoaf){font-size:24px}.header-row.svelte-1qewoaf{flex-direction:column;align-items:flex-start}.create-btn.svelte-1qewoaf{width:100%;justify-content:center}}
