svg.svelte-13so817{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1em;height:1em}.learning-path.svelte-6sgw5v{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);border-radius:8px;gap:12px;padding:18px;display:grid}.learning-header.svelte-6sgw5v{grid-template-columns:minmax(0,1fr) minmax(132px,auto);align-items:start;gap:12px;display:grid}.path-controls.svelte-6sgw5v{justify-items:end;gap:8px;display:grid}label.svelte-6sgw5v{color:var(--flat-text-subtle,#646b7a);gap:5px;font-size:11px;font-weight:700;display:grid}label.svelte-6sgw5v span:where(.svelte-6sgw5v){line-height:1}select.svelte-6sgw5v{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);max-width:170px;min-height:34px;color:var(--flat-text,#21242c);font:inherit;border-radius:7px;font-size:12px;font-weight:650}.eyebrow.svelte-6sgw5v,.step-kicker.svelte-6sgw5v{color:var(--flat-text-subtle,#646b7a);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:750}h2.svelte-6sgw5v,h3.svelte-6sgw5v,p.svelte-6sgw5v{margin-top:0}h2.svelte-6sgw5v{color:var(--flat-text,#21242c);margin-bottom:6px;font-size:18px;font-weight:760;line-height:1.25}.learning-header.svelte-6sgw5v p:where(.svelte-6sgw5v),.current-step.svelte-6sgw5v p:where(.svelte-6sgw5v){color:var(--flat-text-muted,#475774);margin-bottom:0;font-size:13px;line-height:1.5}.learning-header.svelte-6sgw5v .depth-summary:where(.svelte-6sgw5v){color:var(--flat-text,#21242c);margin-top:8px;font-size:12px;font-weight:750}.path-count.svelte-6sgw5v{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);color:var(--flat-text,#21242c);border-radius:999px;padding:6px 9px;font-size:12px;font-weight:750}.path-meta.svelte-6sgw5v{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.path-meta.svelte-6sgw5v div:where(.svelte-6sgw5v){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);border-radius:8px;padding:8px}dt.svelte-6sgw5v{color:var(--flat-text-subtle,#646b7a);font-size:11px;font-weight:750}dd.svelte-6sgw5v{color:var(--flat-text,#21242c);margin:2px 0 0;font-size:12px;font-weight:750}.depth-hint.svelte-6sgw5v{background:#f3f7ff;border:1px solid #c7d8f8;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.depth-hint.svelte-6sgw5v strong:where(.svelte-6sgw5v){color:#174ea6;font-size:12px;font-weight:800}.depth-hint.svelte-6sgw5v span:where(.svelte-6sgw5v),.progress-row.svelte-6sgw5v span:where(.svelte-6sgw5v){color:var(--flat-text-muted,#475774);font-size:12px;line-height:1.4}.progress-row.svelte-6sgw5v{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.progress-row.svelte-6sgw5v div:where(.svelte-6sgw5v){gap:2px;min-width:0;display:grid}.progress-row.svelte-6sgw5v strong:where(.svelte-6sgw5v){color:var(--flat-text,#21242c);font-size:13px;font-weight:800}.reset-progress.svelte-6sgw5v{min-width:64px;min-height:32px;padding:6px 10px}.progress-track.svelte-6sgw5v{background:var(--flat-surface-muted,#f7f8fa);border-radius:999px;height:8px;overflow:hidden}.progress-track.svelte-6sgw5v span:where(.svelte-6sgw5v){border-radius:inherit;background:#1865f2;height:100%;display:block}.current-step.svelte-6sgw5v{border:1px solid color-mix(in srgb, var(--step-accent) 42%, var(--flat-border,#dbdcdd));border-left:4px solid var(--step-accent);background:color-mix(in srgb, var(--step-accent) 5%, white);border-radius:8px;gap:10px;padding:13px;display:grid}.current-step.svelte-6sgw5v h3:where(.svelte-6sgw5v){color:var(--flat-text,#21242c);margin-bottom:0;font-size:15px;font-weight:760;line-height:1.3}.step-tags.svelte-6sgw5v{flex-wrap:wrap;gap:5px;display:flex}.step-tags.svelte-6sgw5v span:where(.svelte-6sgw5v){border:1px solid var(--flat-border,#dbdcdd);color:var(--flat-text-muted,#475774);background:#fff;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:650}.step-tags.svelte-6sgw5v .status-tag:where(.svelte-6sgw5v){color:#1f6b37;background:#f1f8f2;border-color:#9cc8a5}.step-actions.svelte-6sgw5v,.step-nav.svelte-6sgw5v{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.step-nav.svelte-6sgw5v{grid-template-columns:repeat(2,minmax(0,1fr))}button.svelte-6sgw5v{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);min-height:34px;color:var(--flat-text,#21242c);cursor:pointer;border-radius:7px;font-size:12px;font-weight:700}button.primary.svelte-6sgw5v{color:#fff;background:#1865f2;border-color:#1865f2}button.svelte-6sgw5v:disabled{cursor:not-allowed;opacity:.52}button.svelte-6sgw5v:focus-visible,select.svelte-6sgw5v:focus-visible{outline-offset:2px;outline:3px solid #1865f240}.step-list.svelte-6sgw5v{gap:6px;margin:0;padding:0;list-style:none;display:grid}.step-list.svelte-6sgw5v button:where(.svelte-6sgw5v){text-align:left;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-height:42px;padding:7px 9px;display:grid}.step-list.svelte-6sgw5v button.active:where(.svelte-6sgw5v){background:#edf3fe;border-color:#1865f2}.step-list.svelte-6sgw5v button.complete:where(.svelte-6sgw5v){background:#f1f8f2;border-color:#9cc8a5}.step-list.svelte-6sgw5v span:where(.svelte-6sgw5v){color:var(--flat-text-subtle,#646b7a);font-size:11px;font-weight:800}.step-list.svelte-6sgw5v strong:where(.svelte-6sgw5v){min-width:0;color:var(--flat-text,#21242c);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.step-list.svelte-6sgw5v small:where(.svelte-6sgw5v){color:var(--flat-text-muted,#475774);white-space:nowrap;font-size:11px}@media (width<=720px){.learning-header.svelte-6sgw5v,.step-actions.svelte-6sgw5v,.progress-row.svelte-6sgw5v{grid-template-columns:1fr}.path-controls.svelte-6sgw5v{justify-items:stretch}select.svelte-6sgw5v{width:100%;max-width:none}.step-list.svelte-6sgw5v button:where(.svelte-6sgw5v){grid-template-columns:30px minmax(0,1fr)}.step-list.svelte-6sgw5v small:where(.svelte-6sgw5v){grid-column:2}}.map-workspace.svelte-zhue1c{gap:16px;max-width:1440px;margin:0 auto;display:grid}.roadmap-panel.svelte-zhue1c,.drill-panel.svelte-zhue1c,.path-panel.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);border-radius:8px}.empty-state.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);min-height:220px;color:var(--flat-text-muted,#475774);text-align:center;border-radius:8px;grid-column:1/-1;align-content:center;justify-items:center;gap:10px;padding:18px;display:grid}.empty-state.compact.svelte-zhue1c{min-height:180px}.empty-state.svelte-zhue1c h2:where(.svelte-zhue1c),.empty-state.svelte-zhue1c h3:where(.svelte-zhue1c){color:var(--flat-text,#21242c);margin:0;font-size:18px;line-height:1.25}.empty-state.svelte-zhue1c p:where(.svelte-zhue1c){max-width:32rem;color:var(--flat-text-muted,#475774);margin:0;font-size:14px;line-height:1.5}.empty-state.svelte-zhue1c svg{width:32px;height:32px;color:var(--flat-text-muted,#475774);fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px}.panel-heading.svelte-zhue1c{justify-content:space-between;align-items:flex-end;gap:16px;padding:18px 18px 4px;display:flex}.learning-overlay.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);border-radius:8px;gap:12px;margin:12px 18px 0;padding:12px;display:grid}.overlay-summary.svelte-zhue1c{grid-template-columns:minmax(0,1fr) minmax(150px,220px);align-items:center;gap:12px;display:grid}.overlay-summary.svelte-zhue1c h3:where(.svelte-zhue1c){color:var(--flat-text,#21242c);margin:0;font-size:15px;font-weight:760;line-height:1.25}.overlay-progress.svelte-zhue1c{justify-items:end;gap:6px;display:grid}.overlay-progress.svelte-zhue1c>span:where(.svelte-zhue1c){color:var(--flat-text,#21242c);font-size:12px;font-weight:800}.overlay-progress-track.svelte-zhue1c{background:#e7ebf0;border-radius:999px;width:100%;height:8px;overflow:hidden}.overlay-progress-track.svelte-zhue1c span:where(.svelte-zhue1c){border-radius:inherit;background:#1865f2;height:100%;display:block}.path-choice-list.svelte-zhue1c{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.path-choice-list.svelte-zhue1c button:where(.svelte-zhue1c){border:1px solid var(--flat-border,#dbdcdd);min-width:0;min-height:46px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;background:#fff;border-radius:8px;gap:3px;padding:8px 10px;display:grid}.path-choice-list.svelte-zhue1c button:where(.svelte-zhue1c):hover,.path-choice-list.svelte-zhue1c button.active:where(.svelte-zhue1c){background:#edf3fe;border-color:#1865f2}.path-choice-list.svelte-zhue1c button:where(.svelte-zhue1c):focus-visible{outline-offset:2px;outline:3px solid #1865f240}.path-choice-list.svelte-zhue1c span:where(.svelte-zhue1c),.path-choice-list.svelte-zhue1c strong:where(.svelte-zhue1c){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.path-choice-list.svelte-zhue1c span:where(.svelte-zhue1c){font-size:12px;font-weight:800}.path-choice-list.svelte-zhue1c strong:where(.svelte-zhue1c){color:var(--flat-text-muted,#475774);font-size:11px;font-weight:700}.eyebrow.svelte-zhue1c{color:var(--flat-text-subtle,#646b7a);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:750}h2.svelte-zhue1c,h3.svelte-zhue1c,p.svelte-zhue1c{margin-top:0}.panel-heading.svelte-zhue1c h2:where(.svelte-zhue1c),.stage-detail-header.svelte-zhue1c h2:where(.svelte-zhue1c),.path-header.svelte-zhue1c h2:where(.svelte-zhue1c),.path-preview.svelte-zhue1c h2:where(.svelte-zhue1c),.empty-path.svelte-zhue1c h2:where(.svelte-zhue1c){color:var(--flat-text,#21242c);margin-bottom:0;font-size:20px;font-weight:750;line-height:1.25}.path-summary.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);color:var(--flat-text-muted,#475774);white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:650}.resume-chip.svelte-zhue1c{border:1px solid color-mix(in srgb, var(--stage-accent,#1865f2) 42%, var(--flat-border,#dbdcdd));background:color-mix(in srgb, var(--stage-accent,#1865f2) 8%, white);max-width:360px;min-height:40px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:8px;align-content:center;justify-items:start;gap:2px;padding:7px 11px;display:inline-grid}.resume-chip.svelte-zhue1c:hover{border-color:var(--stage-accent,#1865f2);background:color-mix(in srgb, var(--stage-accent,#1865f2) 12%, white)}.resume-chip.svelte-zhue1c:focus-visible{outline-offset:2px;outline:3px solid #1865f240}.resume-chip.svelte-zhue1c span:where(.svelte-zhue1c){color:color-mix(in srgb, var(--stage-accent,#1865f2) 58%, #111827);letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:850;line-height:1}.resume-chip.svelte-zhue1c strong:where(.svelte-zhue1c){text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:12px;font-weight:760;line-height:1.25;overflow:hidden}.stage-roadmap.svelte-zhue1c{grid-template-columns:repeat(9,minmax(0,1fr));gap:0;padding:14px 18px 18px;display:grid}.stage-card.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:color-mix(in srgb, var(--stage-accent) 7%, white);min-width:0;min-height:212px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:8px;align-content:start;gap:10px;padding:14px;display:grid;position:relative}.stage-card[aria-current=step].svelte-zhue1c,.topic-button[aria-current=true].svelte-zhue1c,.concept-card[aria-current=true].svelte-zhue1c{scroll-margin:16px}.stage-card.svelte-zhue1c:hover{border-color:color-mix(in srgb, var(--stage-accent) 50%, var(--flat-border,#dbdcdd));background:color-mix(in srgb, var(--stage-accent) 10%, white)}.stage-card.selected.svelte-zhue1c{border-color:var(--stage-accent);outline:2px solid color-mix(in srgb, var(--stage-accent) 18%, transparent);outline-offset:2px}.stage-card.on-path.svelte-zhue1c:after{background:var(--stage-accent);content:"";border-radius:999px;width:8px;height:8px;position:absolute;top:10px;right:10px}.stage-card.path-highlight.svelte-zhue1c{border-color:color-mix(in srgb, var(--stage-accent) 58%, var(--flat-border,#dbdcdd));background:color-mix(in srgb, var(--stage-accent) 11%, white)}.stage-card.path-dimmed.svelte-zhue1c{filter:saturate(.55);background:#f8f9fb}.stage-card.resume-stage.svelte-zhue1c{border-color:color-mix(in srgb, var(--stage-accent) 64%, var(--flat-border,#dbdcdd));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--stage-accent) 22%, transparent)}.stage-card.svelte-zhue1c:focus-visible,.topic-button.svelte-zhue1c:focus-visible,.concept-card.svelte-zhue1c:focus-visible,.route-node.svelte-zhue1c:focus-visible,.route-edge.svelte-zhue1c:focus-visible,.pager.svelte-zhue1c button:where(.svelte-zhue1c):focus-visible,.path-preview.svelte-zhue1c button:where(.svelte-zhue1c):focus-visible,.unlock-list.svelte-zhue1c button:where(.svelte-zhue1c):focus-visible{outline-offset:2px;outline:3px solid #1865f240}.stage-topline.svelte-zhue1c{justify-content:space-between;align-items:center;gap:8px;display:flex}.stage-number.svelte-zhue1c{color:color-mix(in srgb, var(--stage-accent) 48%, #111827);font-size:12px;font-weight:800}.stage-icon.svelte-zhue1c{border:1px solid color-mix(in srgb, var(--stage-accent) 28%, white);width:30px;height:30px;color:color-mix(in srgb, var(--stage-accent) 48%, #111827);background:#fff;border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.stage-icon.svelte-zhue1c svg,.empty-path.svelte-zhue1c svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px}.stage-label.svelte-zhue1c{color:var(--flat-text,#21242c);font-size:14px;font-weight:760;line-height:1.25}.stage-description.svelte-zhue1c{color:var(--flat-text-muted,#475774);font-size:12px;line-height:1.45}.stage-metrics.svelte-zhue1c{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.stage-metrics.svelte-zhue1c span:where(.svelte-zhue1c){border:1px solid color-mix(in srgb, var(--stage-accent) 16%, var(--flat-border,#dbdcdd));color:var(--flat-text-muted,#475774);background:#ffffffb8;border-radius:999px;padding:4px 7px;font-size:11px;line-height:1}.stage-metrics.svelte-zhue1c strong:where(.svelte-zhue1c){color:var(--flat-text,#21242c)}.path-hit.svelte-zhue1c{color:color-mix(in srgb, var(--stage-accent) 48%, #111827)!important}.path-sequence.svelte-zhue1c{font-weight:750;border-color:color-mix(in srgb, var(--stage-accent) 32%, var(--flat-border,#dbdcdd))!important;background:color-mix(in srgb, var(--stage-accent) 9%, white)!important;color:var(--flat-text,#21242c)!important}.resume-hit.svelte-zhue1c{font-weight:800;border-color:color-mix(in srgb, var(--stage-accent) 48%, var(--flat-border,#dbdcdd))!important;color:color-mix(in srgb, var(--stage-accent) 58%, #111827)!important}.stage-connector.svelte-zhue1c{display:none}.detail-grid.svelte-zhue1c{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:start;gap:16px;display:grid}.side-stack.svelte-zhue1c{gap:16px;display:grid}.drill-panel.svelte-zhue1c,.path-panel.svelte-zhue1c{min-height:580px;padding:18px}.stage-detail-header.svelte-zhue1c{border-left:4px solid var(--stage-accent);padding-left:14px}.stage-detail-header.svelte-zhue1c h2:where(.svelte-zhue1c){margin-bottom:6px}.stage-detail-header.svelte-zhue1c p:where(.svelte-zhue1c),.path-header.svelte-zhue1c p:where(.svelte-zhue1c),.path-preview.svelte-zhue1c p:where(.svelte-zhue1c),.empty-path.svelte-zhue1c p:where(.svelte-zhue1c),.unlock-panel.svelte-zhue1c p:where(.svelte-zhue1c){color:var(--flat-text-muted,#475774);margin-bottom:0;font-size:14px;line-height:1.55}.topic-strip.svelte-zhue1c{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin:18px 0;display:grid}.topic-button.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);min-height:52px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.topic-button.svelte-zhue1c:hover,.topic-button.selected.svelte-zhue1c{border-color:color-mix(in srgb, var(--stage-accent,#1865f2) 44%, var(--flat-border,#dbdcdd));background:var(--flat-surface-hover,#fbfcfe)}.topic-button.svelte-zhue1c span:where(.svelte-zhue1c){overflow-wrap:anywhere;min-width:0;font-size:13px;font-weight:650;line-height:1.25}.topic-button.svelte-zhue1c strong:where(.svelte-zhue1c){color:var(--flat-text-muted,#475774);flex:none;font-size:13px}.concept-toolbar.svelte-zhue1c{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.concept-toolbar.svelte-zhue1c h3:where(.svelte-zhue1c){color:var(--flat-text,#21242c);margin-bottom:0;font-size:17px;line-height:1.3}.pager.svelte-zhue1c{flex:none;align-items:center;gap:8px;display:inline-flex}.pager.svelte-zhue1c button:where(.svelte-zhue1c),.path-preview.svelte-zhue1c button:where(.svelte-zhue1c){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);min-height:34px;color:var(--flat-text,#21242c);cursor:pointer;border-radius:6px;padding:7px 11px;font-size:12px;font-weight:650}.pager.svelte-zhue1c button:where(.svelte-zhue1c):disabled{cursor:not-allowed;opacity:.45}.pager.svelte-zhue1c span:where(.svelte-zhue1c){color:var(--flat-text-muted,#475774);white-space:nowrap;font-size:12px}.concept-grid.svelte-zhue1c{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.concept-card.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);min-height:170px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:8px;align-content:start;gap:8px;padding:13px;display:grid}.concept-card.svelte-zhue1c:hover,.concept-card.selected.svelte-zhue1c{border-color:var(--stage-accent);background:color-mix(in srgb, var(--stage-accent) 5%, white)}.concept-card.on-path.svelte-zhue1c{border-color:color-mix(in srgb, var(--stage-accent) 70%, var(--flat-border,#dbdcdd))}.concept-card.not-on-learning-path.svelte-zhue1c{filter:saturate(.55);background:#fafbfc;border-style:dashed}.concept-card.resume-target.svelte-zhue1c{border-color:var(--stage-accent);background:color-mix(in srgb, var(--stage-accent) 7%, white);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--stage-accent) 22%, transparent)}.concept-meta.svelte-zhue1c{color:var(--flat-text-subtle,#646b7a);justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:700;line-height:1.2;display:flex}.path-tag.svelte-zhue1c{border:1px solid color-mix(in srgb, var(--stage-accent) 55%, transparent);background:color-mix(in srgb, var(--stage-accent) 14%, white);color:#005a64;border-radius:999px;padding:3px 6px}.concept-badges.svelte-zhue1c{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:4px;display:inline-flex}.path-step-tag.svelte-zhue1c{border-color:color-mix(in srgb, var(--stage-accent) 64%, var(--flat-border,#dbdcdd));background:color-mix(in srgb, var(--stage-accent) 13%, white);min-width:28px;color:color-mix(in srgb, var(--stage-accent) 52%, #111827);text-align:center;font-weight:850}.path-step-tag[data-status=complete].svelte-zhue1c{color:#1f6b37;background:#eef8f1;border-color:#8dbd9d}.path-step-tag[data-status=current].svelte-zhue1c{color:#fff;background:#1865f2;border-color:#1865f2}.concept-title.svelte-zhue1c{color:var(--flat-text,#21242c);font-size:14px;font-weight:760;line-height:1.25}.concept-description.svelte-zhue1c{color:var(--flat-text-muted,#475774);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.concept-facts.svelte-zhue1c{flex-wrap:wrap;gap:5px;margin-top:auto;display:flex}.concept-facts.svelte-zhue1c span:where(.svelte-zhue1c){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);color:var(--flat-text-muted,#475774);border-radius:999px;padding:3px 6px;font-size:11px}.path-panel.svelte-zhue1c{align-content:start;gap:14px;display:grid}.path-header.svelte-zhue1c{border-left:4px solid var(--stage-accent);padding-left:14px}.path-header.svelte-zhue1c h2:where(.svelte-zhue1c){margin-bottom:6px;font-size:18px}.route-list.svelte-zhue1c{gap:6px;display:grid}.route-node.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);border-left:4px solid var(--stage-accent);background:color-mix(in srgb, var(--stage-accent) 5%, white);min-height:48px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:8px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;display:grid}.route-node.goal-node.svelte-zhue1c{border-color:var(--stage-accent);background:color-mix(in srgb, var(--stage-accent) 10%, white)}.route-node.svelte-zhue1c span:where(.svelte-zhue1c){color:color-mix(in srgb, var(--stage-accent) 48%, #111827);font-size:12px;font-weight:800}.route-node.svelte-zhue1c strong:where(.svelte-zhue1c){text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:720;overflow:hidden}.route-node.svelte-zhue1c small:where(.svelte-zhue1c){color:var(--flat-text-muted,#475774);white-space:nowrap;font-size:11px}.route-edge.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);color:var(--flat-text-muted,#475774);cursor:help;border-radius:999px;justify-self:start;margin-left:18px;padding:3px 9px;font-size:11px;font-weight:650}.edge-explanation.svelte-zhue1c{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);min-height:44px;color:var(--flat-text-muted,#475774);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.45}.unlock-panel.svelte-zhue1c{gap:10px;display:grid}.unlock-panel.svelte-zhue1c h3:where(.svelte-zhue1c){color:var(--flat-text,#21242c);margin:0;font-size:15px}.unlock-list.svelte-zhue1c{gap:6px;display:grid}.unlock-list.svelte-zhue1c button:where(.svelte-zhue1c){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);min-height:38px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.unlock-list.svelte-zhue1c span:where(.svelte-zhue1c){text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:650;overflow:hidden}.unlock-list.svelte-zhue1c small:where(.svelte-zhue1c){color:var(--flat-text-muted,#475774);white-space:nowrap;font-size:11px}.path-preview.svelte-zhue1c,.empty-path.svelte-zhue1c{align-content:center;justify-items:start;gap:10px;min-height:260px;display:grid}.empty-path.svelte-zhue1c{text-align:center;justify-items:center}.empty-path.svelte-zhue1c svg{width:34px;height:34px;color:var(--flat-text-muted,#475774)}@media (width<=1280px){.stage-roadmap.svelte-zhue1c{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stage-card.svelte-zhue1c{min-height:174px}.concept-grid.svelte-zhue1c{grid-template-columns:repeat(2,minmax(0,1fr))}.path-choice-list.svelte-zhue1c{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=980px){.detail-grid.svelte-zhue1c{grid-template-columns:1fr}.side-stack.svelte-zhue1c{grid-template-columns:minmax(0,1fr)}.path-panel.svelte-zhue1c{min-height:auto}}@media (width<=720px){.map-workspace.svelte-zhue1c{gap:12px}.panel-heading.svelte-zhue1c,.concept-toolbar.svelte-zhue1c{align-items:start;gap:8px;padding:14px 14px 4px;display:grid}.learning-overlay.svelte-zhue1c{margin:10px 14px 0;padding:10px}.overlay-summary.svelte-zhue1c,.path-choice-list.svelte-zhue1c{grid-template-columns:1fr}.overlay-progress.svelte-zhue1c{justify-items:stretch}.stage-roadmap.svelte-zhue1c,.concept-grid.svelte-zhue1c{grid-template-columns:1fr}.stage-roadmap.svelte-zhue1c{padding:12px 14px 14px}.stage-card.svelte-zhue1c{min-height:0;padding:12px}.drill-panel.svelte-zhue1c,.path-panel.svelte-zhue1c{min-height:0;padding:14px}.topic-strip.svelte-zhue1c{grid-template-columns:1fr}.route-node.svelte-zhue1c{grid-template-columns:30px minmax(0,1fr)}.route-node.svelte-zhue1c small:where(.svelte-zhue1c){grid-column:2}.empty-state.svelte-zhue1c{min-height:180px;padding:16px}}.sidebar.svelte-181dlmc{--stage-accent-readable:color-mix(in srgb, var(--stage-accent) 48%, #111827);z-index:1060;border-left:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);flex-direction:column;width:400px;max-width:100vw;height:100vh;display:flex;position:fixed;top:0;right:0}.sidebar-header.svelte-181dlmc{border-bottom:1px solid var(--flat-border,#dbdcdd);border-top:4px solid var(--stage-accent-readable);grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px;display:grid}.sidebar-header.svelte-181dlmc p:where(.svelte-181dlmc){color:var(--stage-accent-readable);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:750}.sidebar-header.svelte-181dlmc h2:where(.svelte-181dlmc){color:var(--flat-text,#21242c);margin:0;font-size:20px;font-weight:760;line-height:1.28}.close-btn.svelte-181dlmc{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);width:36px;height:36px;color:var(--flat-text-muted,#475774);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;display:flex}.close-btn.svelte-181dlmc:hover{background:var(--flat-control-hover,#e7ebf0);color:var(--flat-text,#21242c)}.close-btn.svelte-181dlmc:focus-visible,.primary-btn.svelte-181dlmc:focus-visible,.secondary-btn.svelte-181dlmc:focus-visible,.link-list.svelte-181dlmc button:where(.svelte-181dlmc):focus-visible{outline-offset:2px;outline:3px solid #1865f240}svg.svelte-181dlmc{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:18px;height:18px}.sidebar-content.svelte-181dlmc{flex:1;align-content:start;gap:18px;padding:18px;display:grid;overflow-y:auto}.meta-grid.svelte-181dlmc{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.meta-grid.svelte-181dlmc span:where(.svelte-181dlmc){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);min-height:58px;color:var(--flat-text,#21242c);border-radius:8px;gap:4px;padding:10px;font-size:12px;line-height:1.3;display:grid}.meta-grid.svelte-181dlmc strong:where(.svelte-181dlmc){color:var(--flat-text-subtle,#646b7a);letter-spacing:.06em;text-transform:uppercase;font-size:10px}.detail-section.svelte-181dlmc{gap:8px;display:grid}.detail-section.svelte-181dlmc h3:where(.svelte-181dlmc){color:var(--flat-text,#21242c);margin:0;font-size:14px;font-weight:750}.detail-section.svelte-181dlmc p:where(.svelte-181dlmc){color:var(--flat-text-muted,#475774);margin:0;font-size:14px;line-height:1.58}.section-list.svelte-181dlmc{gap:6px;margin:0;padding:0;list-style:none;display:grid}.section-list.svelte-181dlmc li:where(.svelte-181dlmc){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface-muted,#f7f8fa);color:var(--flat-text-muted,#475774);border-radius:7px;padding:8px 10px;font-size:12px;line-height:1.35}.link-list.svelte-181dlmc{gap:6px;display:grid}.link-list.svelte-181dlmc button:where(.svelte-181dlmc){border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);min-height:40px;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.link-list.svelte-181dlmc span:where(.svelte-181dlmc){text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;font-weight:650;overflow:hidden}.link-list.svelte-181dlmc small:where(.svelte-181dlmc){color:var(--flat-text-muted,#475774);white-space:nowrap;font-size:11px}.actions.svelte-181dlmc{grid-template-columns:1fr 1fr;gap:8px;padding-top:4px;display:grid}.primary-btn.svelte-181dlmc,.secondary-btn.svelte-181dlmc{cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:700;display:inline-flex}.primary-btn.svelte-181dlmc{border:1px solid var(--stage-accent-readable);background:var(--stage-accent-readable);color:#fff}.primary-btn.svelte-181dlmc:disabled{border-color:var(--flat-border,#dbdcdd);background:var(--flat-control-bg,#f1f3f5);color:var(--flat-text-subtle,#646b7a);cursor:not-allowed}.secondary-btn.svelte-181dlmc{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);color:var(--flat-text,#21242c)}@media (width<=720px){.sidebar.svelte-181dlmc{border-left:0;width:100%}.meta-grid.svelte-181dlmc,.actions.svelte-181dlmc{grid-template-columns:1fr}}.controls.svelte-1y71c66{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.mode-switch.svelte-1y71c66{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);border-radius:8px;grid-template-columns:repeat(2,minmax(112px,1fr));display:inline-grid;overflow:hidden}.mode-switch.svelte-1y71c66 button:where(.svelte-1y71c66){border:0;border-right:1px solid var(--flat-border,#dbdcdd);min-height:42px;color:var(--flat-text-muted,#475774);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:650;display:inline-flex}.mode-switch.svelte-1y71c66 button:where(.svelte-1y71c66):last-child{border-right:0}.mode-switch.svelte-1y71c66 button:where(.svelte-1y71c66):hover{background:var(--flat-surface-hover,#fbfcfe);color:var(--flat-text,#21242c)}.mode-switch.svelte-1y71c66 button.active:where(.svelte-1y71c66){color:#164ca7;background:#edf3fe}.mode-switch.svelte-1y71c66 button:where(.svelte-1y71c66):focus-visible{outline-offset:-3px;outline:3px solid #1865f240}svg.svelte-1y71c66{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:18px;height:18px}.stats.svelte-1y71c66{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;min-height:42px;padding:6px;display:flex}.stats.svelte-1y71c66 span:where(.svelte-1y71c66){background:var(--flat-surface-muted,#f7f8fa);color:var(--flat-text-muted,#475774);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:5px 8px;font-size:12px;line-height:1.2;display:inline-flex}.stats.svelte-1y71c66 strong:where(.svelte-1y71c66){color:var(--flat-text,#21242c);font-weight:700}.goal-strip.svelte-1y71c66{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);border-radius:8px;align-items:center;gap:8px;min-width:0;max-width:440px;min-height:42px;padding:8px 12px;display:inline-flex}.goal-label.svelte-1y71c66{color:var(--flat-text-subtle,#646b7a);letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:11px;font-weight:750}.goal-title.svelte-1y71c66{min-width:0;color:var(--flat-text,#21242c);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;overflow:hidden}@media (width<=720px){.controls.svelte-1y71c66{grid-template-columns:1fr;display:grid}.mode-switch.svelte-1y71c66{width:100%}.goal-strip.svelte-1y71c66{max-width:none}}.search-container.svelte-tsg0ih{width:100%;min-width:0;position:relative}.search-input-wrapper.svelte-tsg0ih{align-items:center;display:flex;position:relative}.search-icon.svelte-tsg0ih,.clear-btn.svelte-tsg0ih svg:where(.svelte-tsg0ih){fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px}.search-icon.svelte-tsg0ih{width:18px;height:18px;color:var(--flat-text-subtle,#646b7a);pointer-events:none;position:absolute;left:14px}input.svelte-tsg0ih{border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);width:100%;min-height:44px;color:var(--flat-text,#21242c);border-radius:8px;outline:none;padding:12px 44px;font-size:14px;font-weight:500}input.svelte-tsg0ih::placeholder{color:var(--flat-text-subtle,#646b7a);font-weight:400}input.svelte-tsg0ih:focus{border-color:var(--flat-focus-ring,#1865f2);box-shadow:0 0 0 3px #1865f224}.clear-btn.svelte-tsg0ih{background:var(--flat-control-bg,#f1f3f5);width:28px;height:28px;color:var(--flat-text-muted,#475774);cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;right:10px}.clear-btn.svelte-tsg0ih:hover{background:var(--flat-control-hover,#e7ebf0);color:var(--flat-text,#21242c)}.clear-btn.svelte-tsg0ih:focus-visible{outline-offset:2px;outline:3px solid #1865f240}.clear-btn.svelte-tsg0ih svg:where(.svelte-tsg0ih){width:14px;height:14px}.search-results.svelte-tsg0ih{z-index:80;border:1px solid var(--flat-border,#dbdcdd);background:var(--flat-surface,#fff);border-radius:8px;max-height:min(420px,100vh - 220px);position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.result-item.svelte-tsg0ih{border:0;border-bottom:1px solid var(--flat-border,#dbdcdd);width:100%;color:var(--flat-text,#21242c);cursor:pointer;text-align:left;background:0 0;grid-template-columns:4px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;display:grid}.result-item.svelte-tsg0ih:last-child{border-bottom:0}.no-results.svelte-tsg0ih{color:var(--flat-text-muted,#475774);gap:4px;padding:14px 16px;display:grid}.no-results.svelte-tsg0ih strong:where(.svelte-tsg0ih){color:var(--flat-text,#21242c);font-size:13px;font-weight:750}.no-results.svelte-tsg0ih span:where(.svelte-tsg0ih){font-size:12px;line-height:1.4}.result-item.svelte-tsg0ih:hover,.result-item.selected.svelte-tsg0ih{background:var(--flat-surface-hover,#fbfcfe)}.result-item.svelte-tsg0ih:focus-visible{outline-offset:-3px;outline:3px solid #1865f240}.result-item.goal.svelte-tsg0ih{background:#edf3fe}.result-mark.svelte-tsg0ih{background:var(--result-accent,#1865f2);border-radius:999px;width:4px;height:34px}.result-content.svelte-tsg0ih{gap:3px;min-width:0;display:grid}.result-title.svelte-tsg0ih{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.result-meta.svelte-tsg0ih,.result-count.svelte-tsg0ih{color:var(--flat-text-muted,#475774);font-size:11px}.result-count.svelte-tsg0ih{white-space:nowrap}@media (width<=720px){.search-results.svelte-tsg0ih{max-height:min(360px,100vh - 180px)}.result-item.svelte-tsg0ih{grid-template-columns:4px minmax(0,1fr)}.result-count.svelte-tsg0ih{display:none}}*{box-sizing:border-box}body{background:var(--flat-page-bg,#f7f8fa);color:var(--flat-text,#21242c);margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input{font:inherit}.app.svelte-1n46o8q{--flat-page-bg-local:var(--flat-page-bg,#f7f8fa);--flat-surface-local:var(--flat-surface,#fff);--flat-surface-muted-local:var(--flat-surface-muted,#f7f8fa);--flat-surface-hover-local:var(--flat-surface-hover,#fbfcfe);--flat-border-local:var(--flat-border,#dbdcdd);--flat-border-strong-local:var(--flat-border-strong,#c7c9cc);--flat-text-local:var(--flat-text,#21242c);--flat-text-muted-local:var(--flat-text-muted,#475774);--flat-text-subtle-local:var(--flat-text-subtle,#646b7a);--flat-accent-local:var(--flat-accent,#1865f2);--flat-control-bg-local:var(--flat-control-bg,#f1f3f5);--flat-control-hover-local:var(--flat-control-hover,#e7ebf0);--flat-focus-ring-local:var(--flat-focus-ring,#1865f2);--flat-danger-local:var(--learn-red,#b42318);--flat-radius-sm-local:var(--flat-radius-md,6px);--flat-radius-md-local:var(--flat-radius-lg,8px);background:var(--flat-page-bg-local);min-height:100vh;color:var(--flat-text-local);flex-direction:column;display:flex}.header.svelte-1n46o8q{z-index:20;flex:none}.iot-tool-nav-logo-text.svelte-1n46o8q{color:var(--flat-text-local);letter-spacing:0;white-space:nowrap;font-size:16px;font-weight:800}.subtitle.svelte-1n46o8q{color:var(--flat-text-muted-local);margin:10px auto 0;font-weight:400}.main.svelte-1n46o8q{background:var(--flat-page-bg-local);flex:1;min-height:0;position:relative}.offline-banner.svelte-1n46o8q{border:1px solid var(--flat-border-local);border-left:4px solid var(--flat-accent-local);border-radius:var(--flat-radius-md-local);background:var(--flat-surface-local);width:min(920px,100% - 40px);color:var(--flat-text-muted-local);align-items:center;gap:10px;margin:20px auto 0;padding:12px 14px;display:flex}.offline-banner.svelte-1n46o8q strong:where(.svelte-1n46o8q){color:var(--flat-text-local);flex:none;font-size:13px}.offline-banner.svelte-1n46o8q span:where(.svelte-1n46o8q){font-size:13px;line-height:1.45}.tool-shell.svelte-1n46o8q{min-height:calc(100vh - 214px);padding:20px;transition:padding-right .2s}.tool-shell.sidebar-open.svelte-1n46o8q{padding-right:420px}.topbar.svelte-1n46o8q{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:start;gap:16px;max-width:1440px;margin:0 auto 16px;display:grid}.loading.svelte-1n46o8q{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:520px;padding:24px;display:flex}.error.svelte-1n46o8q{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:520px;padding:24px;display:flex}.app-state.svelte-1n46o8q{border:1px solid var(--flat-border-local);border-radius:var(--flat-radius-md-local);background:var(--flat-surface-local);max-width:720px;margin:24px auto}.app-loading-state.svelte-1n46o8q{border:1px solid var(--flat-border-local);border-radius:var(--flat-radius-md-local);background:var(--flat-surface-local);width:min(860px,100%);margin:24px auto}.loading-copy.svelte-1n46o8q{text-align:center;max-width:520px}.loading-kicker.svelte-1n46o8q{color:var(--flat-accent-local);letter-spacing:0;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800;display:inline-block}.loading.svelte-1n46o8q h2:where(.svelte-1n46o8q){color:var(--flat-text-local);margin:0;font-size:22px;line-height:1.2}.loading.svelte-1n46o8q p:where(.svelte-1n46o8q),.error.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--flat-text-muted-local);margin:0;font-size:15px}.loading.svelte-1n46o8q p:where(.svelte-1n46o8q){margin-top:8px;line-height:1.5}.loading-skeleton-grid.svelte-1n46o8q{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid}.loading-skeleton-card.svelte-1n46o8q{border:1px solid var(--flat-border-local);border-radius:var(--flat-radius-md-local);background:var(--flat-surface-muted-local);min-height:132px;padding:16px}.skeleton-line.svelte-1n46o8q,.skeleton-meta-row.svelte-1n46o8q span:where(.svelte-1n46o8q){background:var(--flat-control-hover-local);border-radius:999px;height:12px;display:block}.skeleton-line.svelte-1n46o8q{width:100%;margin-bottom:12px}.skeleton-line-accent.svelte-1n46o8q{background:var(--learn-blue-soft,#edf3fe);width:38%}.skeleton-line-medium.svelte-1n46o8q{width:68%}.skeleton-meta-row.svelte-1n46o8q{gap:8px;margin-top:18px;display:flex}.skeleton-meta-row.svelte-1n46o8q span:where(.svelte-1n46o8q){width:76px;height:22px}.error.svelte-1n46o8q h2:where(.svelte-1n46o8q){color:var(--flat-danger-local);margin:0;font-size:20px;font-weight:650}.error.svelte-1n46o8q button:where(.svelte-1n46o8q){border:1px solid var(--flat-accent-local);border-radius:var(--flat-radius-sm-local);background:var(--flat-accent-local);color:var(--flat-surface-local);cursor:pointer;padding:11px 24px;font-size:14px;font-weight:650}.error.svelte-1n46o8q button:where(.svelte-1n46o8q):focus-visible{outline:3px solid color-mix(in srgb, var(--flat-accent-local) 25%, transparent);outline-offset:2px}@media (width<=1100px){.tool-shell.sidebar-open.svelte-1n46o8q{padding-right:20px}.topbar.svelte-1n46o8q{grid-template-columns:1fr}}@media (width<=720px){.tool-shell.svelte-1n46o8q{min-height:calc(100vh - 180px);padding:12px}.tool-shell.sidebar-open.svelte-1n46o8q{padding-right:12px}.offline-banner.svelte-1n46o8q{flex-direction:column;align-items:flex-start;gap:4px;width:calc(100% - 24px);margin-top:12px}.topbar.svelte-1n46o8q{gap:10px;margin-bottom:12px}.app-state.svelte-1n46o8q{min-height:360px;margin:12px;padding:20px}.app-loading-state.svelte-1n46o8q{padding:22px}.loading-skeleton-grid.svelte-1n46o8q{grid-template-columns:1fr}}:root{--iot-tool-bg:var(--flat-surface,#fff);--iot-tool-surface:var(--flat-surface,#fff);--iot-tool-surface-hover:var(--flat-surface-hover,#f7f8fa);--iot-tool-border:var(--flat-border,#dbdcdd);--iot-tool-border-strong:var(--flat-border-strong,#c7c9cc);--iot-tool-text:var(--flat-text,#21242c);--iot-tool-muted:var(--flat-text-muted,#475774);--iot-tool-subtle:var(--flat-text-subtle,#646b7a);--iot-tool-accent:var(--flat-accent,#1865f2);--iot-tool-control-bg:var(--flat-control-bg,#f1f3f5);--iot-tool-control-hover:var(--flat-control-hover,#e7ebf0);--iot-tool-control-border:var(--flat-border-strong,#cfd4da);--iot-tool-focus-ring:color-mix(in srgb, var(--iot-tool-accent) 28%, transparent);--iot-tool-radius-sm:var(--flat-radius-md,6px);--iot-tool-radius-md:var(--flat-radius-lg,8px);--iot-tool-warning-bg:#fff3bf;--iot-tool-warning-border:#e2b400;--iot-tool-warning-text:#5c4300;--iot-tool-footer-bg:#2b3038;--iot-tool-footer-text:#d8dde6;--iot-tool-width:1120px;--iot-tool-wide:1400px}.iot-tool-page{background:var(--iot-tool-bg);min-height:100vh;color:var(--iot-tool-text)}.iot-tool-navbar{z-index:1000;border-bottom:1px solid var(--iot-tool-border);background:color-mix(in srgb, var(--iot-tool-surface) 96%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;min-height:56px;padding:10px 28px;display:grid;position:sticky;top:0}.iot-tool-nav-logo{color:var(--iot-tool-accent);align-items:center;gap:8px;font-weight:800;text-decoration:none;display:inline-flex}.iot-tool-nav-logo img{width:auto;height:34px;display:block}.iot-tool-nav-toggle{border:1px solid var(--iot-tool-border);border-radius:var(--iot-tool-radius-sm);background:var(--iot-tool-surface);width:38px;height:38px;color:var(--iot-tool-text);cursor:pointer;justify-content:center;align-items:center;display:none}.iot-tool-nav-toggle:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-surface-hover)}.iot-tool-nav-toggle:focus-visible{outline:3px solid var(--iot-tool-focus-ring);outline-offset:2px}.iot-tool-nav-toggle-lines,.iot-tool-nav-toggle-lines:before,.iot-tool-nav-toggle-lines:after{content:"";background:currentColor;border-radius:2px;width:18px;height:2px;display:block}.iot-tool-nav-toggle-lines{position:relative}.iot-tool-nav-toggle-lines:before,.iot-tool-nav-toggle-lines:after{position:absolute;left:0}.iot-tool-nav-toggle-lines:before{top:-6px}.iot-tool-nav-toggle-lines:after{top:6px}.iot-tool-logo-mark{background:var(--iot-tool-surface-hover);border:1px solid var(--iot-tool-border);border-radius:var(--iot-tool-radius-sm);color:var(--iot-tool-text);flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.iot-tool-nav-center{justify-content:center;align-items:center;gap:22px;min-width:0;display:flex}.iot-tool-nav-center a,.iot-tool-nav-right a{color:var(--iot-tool-muted);white-space:nowrap;font-size:.86rem;font-weight:700;text-decoration:none}.iot-tool-nav-center a:hover,.iot-tool-nav-center a.iot-tool-nav-active,.iot-tool-nav-right a:hover{color:var(--iot-tool-accent)}.iot-tool-nav-right{justify-content:flex-end;align-items:center;gap:10px;display:flex}.iot-tool-nav-login-btn{border:1px solid var(--iot-tool-control-border);border-radius:var(--iot-tool-radius-sm);background:var(--iot-tool-control-bg);min-height:34px;color:var(--iot-tool-text);font:inherit;cursor:pointer;padding:8px 16px;font-size:.84rem;font-weight:800}.iot-tool-nav-login-btn:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-control-hover)}.iot-tool-hero{border-bottom:1px solid var(--iot-tool-border);background:var(--iot-tool-surface);text-align:center;padding:28px 24px 26px}.iot-tool-hero-inner{max-width:var(--iot-tool-width);margin:0 auto}.iot-tool-hero--wide .iot-tool-hero-inner{max-width:var(--iot-tool-wide)}.iot-tool-kicker{border-left:3px solid var(--iot-tool-accent);width:fit-content;color:var(--iot-tool-accent);letter-spacing:0;text-transform:uppercase;align-items:center;margin-bottom:8px;padding-left:9px;font-size:.72rem;font-weight:800;line-height:1.2;display:inline-flex}.iot-tool-title{color:var(--iot-tool-text);margin:0;font-size:2.1rem;font-weight:800;line-height:1.15}.iot-tool-subtitle{max-width:720px;color:var(--iot-tool-muted);margin:10px auto 0;font-size:1rem;line-height:1.55}.iot-tool-meta-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:16px;display:flex}.iot-tool-pill{border:1px solid var(--iot-tool-border);background:var(--iot-tool-surface-hover);min-height:28px;color:var(--iot-tool-muted);border-radius:999px;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.iot-tool-status-tag{border:1px solid var(--iot-tool-warning-border);background:var(--iot-tool-warning-bg);min-height:24px;color:var(--iot-tool-warning-text);text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 10px;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.iot-tool-switcher{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.iot-tool-switcher a{border:1px solid var(--iot-tool-border);border-left:3px solid var(--tool-accent,var(--iot-tool-accent));border-radius:var(--iot-tool-radius-sm);background:var(--iot-tool-surface);min-height:36px;color:var(--iot-tool-text);align-items:center;padding:8px 13px;font-size:.86rem;font-weight:800;text-decoration:none;display:inline-flex}.iot-tool-switcher a:hover,.iot-tool-switcher a.iot-tool-switcher-active{border-color:var(--iot-tool-border-strong);border-left-color:var(--tool-accent,var(--iot-tool-accent));background:var(--iot-tool-surface-hover);color:var(--tool-accent,var(--iot-tool-accent))}.iot-tool-panel,.iot-tool-card{border:1px solid var(--iot-tool-border);border-radius:var(--iot-tool-radius-md);background:var(--iot-tool-surface);box-shadow:none}.iot-tool-card:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-surface-hover)}.iot-tool-button-primary,.iot-tool-button-secondary{border-radius:var(--iot-tool-radius-sm);justify-content:center;align-items:center;min-height:36px;padding:8px 14px;font-size:.88rem;font-weight:800;text-decoration:none;display:inline-flex}.iot-tool-button-primary{border:1px solid var(--iot-tool-accent);background:var(--iot-tool-accent);color:var(--iot-tool-surface)}.iot-tool-button-secondary{border:1px solid var(--iot-tool-control-border);background:var(--iot-tool-control-bg);color:var(--iot-tool-text)}.iot-tool-button-secondary:hover{border-color:var(--iot-tool-border-strong);background:var(--iot-tool-control-hover)}.iot-tool-footer{border-top:1px solid var(--iot-tool-border);background:var(--iot-tool-footer-bg);color:var(--iot-tool-footer-text);margin-top:auto}.iot-tool-footer-inner{max-width:var(--iot-tool-wide);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin:0 auto;padding:28px 24px;display:flex}.iot-tool-footer a{color:var(--iot-tool-footer-text);text-decoration:none}.iot-tool-footer a:hover{color:var(--iot-tool-surface)}@media (width<=760px){.iot-tool-navbar{grid-template-columns:auto auto;gap:10px;padding:8px 12px}.iot-tool-nav-logo{min-width:0}.iot-tool-nav-toggle{justify-self:end;display:inline-flex}.iot-tool-nav-center,.iot-tool-nav-right{display:none}.iot-tool-navbar[data-nav-open=true] .iot-tool-nav-center{flex-direction:column;grid-column:1/-1;justify-content:flex-start;align-items:stretch;gap:4px;padding:8px 0 0;display:flex;overflow:visible}.iot-tool-nav-center a{border-radius:var(--iot-tool-radius-sm);border:1px solid #0000;align-items:center;min-height:36px;padding:0 10px;font-size:.78rem;display:flex}.iot-tool-nav-center a:hover,.iot-tool-nav-center a:focus-visible,.iot-tool-nav-center a.iot-tool-nav-active{border-color:var(--iot-tool-border);background:var(--iot-tool-surface-hover)}.iot-tool-navbar[data-nav-open=true] .iot-tool-nav-right{grid-column:1/-1;justify-content:stretch;padding-top:4px;display:flex}.iot-tool-nav-logo img{height:28px}.iot-tool-logo-mark{width:28px;height:28px}.iot-tool-nav-login-btn{width:100%;min-height:30px;padding:6px 12px;font-size:.78rem}.iot-tool-hero{padding:22px 16px}.iot-tool-title{font-size:1.65rem}.iot-tool-subtitle{font-size:.92rem}.iot-tool-switcher{flex-wrap:wrap;justify-content:center;padding-bottom:0;overflow-x:visible}.iot-tool-switcher a{white-space:nowrap}}
