:root{--bg:#0d1117;--bg-panel:#11161d;--bg-raised:#161b22;--border:#262c36;--text:#e6edf3;--text-dim:#8b949e;--accent:#58a6ff;--accent-dim:#1f6feb;--warn:#d29922;--error:#f85149;--warn-bg:#d2992224;--warn-bg-hover:#d2992242;--error-bg:#f851491f;--grip:#4d5866;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#fff;--bg-panel:#f6f8fa;--bg-raised:#f0f3f6;--border:#d0d7de;--text:#1f2328;--text-dim:#59636e;--accent:#0969da;--accent-dim:#0969da;--warn:#9a6700;--error:#cf222e;--warn-bg:#9a67001a;--warn-bg-hover:#9a670033;--error-bg:#cf222e1a;--grip:#8c959f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.55 ui-sans-serif,-apple-system,Segoe UI,system-ui,sans-serif}.app{flex-direction:column;height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg-panel);flex:none;align-items:center;gap:16px;padding:8px 14px;display:flex}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:8px;font-weight:600;text-decoration:none;display:flex}.brand-mark{width:22px;height:22px;display:block}.diagram-title{color:var(--text-dim)}.workspace-root{white-space:nowrap;color:var(--text-dim);flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.header-warning{border:1px solid var(--warn);background:var(--warn-bg);color:var(--warn);white-space:nowrap;cursor:help;border-radius:6px;padding:3px 10px;font-size:12px}.header-actions{align-items:center;gap:16px;margin-left:auto;display:flex}.header-actions label{color:var(--text-dim);cursor:pointer;align-items:center;gap:6px;display:flex}.diagram-picker select{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;max-width:280px;padding:4px 8px}.diagram-picker select:hover{border-color:var(--accent-dim)}.diagram-picker.empty{color:var(--text-dim)}@media (width<=900px){.app-header,.header-actions{gap:10px}.workspace-root,.diagram-title{display:none}}.connection-lost{border:1px solid var(--warn);background:var(--warn-bg);color:var(--warn);font:inherit;cursor:pointer;border-radius:6px;padding:3px 10px;font-size:12px}.connection-lost:hover{background:var(--warn-bg-hover)}.app-body{flex:auto;min-height:0}.center-group{height:100%}.resize-handle{background:var(--border);cursor:col-resize;flex:0 0 6px;justify-content:center;align-items:center;transition:background .15s;display:flex;position:relative}.resize-handle.horizontal{cursor:row-resize}.resize-handle:before{content:"";background:var(--grip);border-radius:3px;width:2px;height:26px;transition:background .15s;position:absolute}.resize-handle.horizontal:before{width:26px;height:2px}.resize-handle:hover,.resize-handle[data-resize-handle-active]{background:var(--accent-dim)}.resize-handle:hover:before,.resize-handle[data-resize-handle-active]:before{background:#fff}.panel-header{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--bg-panel);flex:none;padding:7px 12px;font-size:11px}.sidebar-header{width:100%;font:inherit;text-transform:uppercase;letter-spacing:.07em;text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.sidebar-header:hover{color:var(--text);background:var(--bg-raised)}.sidebar-panel,.docs-panel-slot{overflow:hidden}.sidebar-reveal{border:0;border-right:1px solid var(--border);background:var(--bg-panel);color:var(--text-dim);cursor:pointer;font:inherit;text-transform:uppercase;letter-spacing:.07em;box-sizing:border-box;flex:none;align-self:stretch;place-items:center;width:28px;padding:0;font-size:11px;display:grid}.docs-reveal{border-right:0;border-left:1px solid var(--border)}.sidebar-reveal span{writing-mode:vertical-rl;transform:rotate(180deg)}.sidebar-reveal:hover{color:var(--text);background:var(--bg-raised)}.icon-button{border:1px solid var(--border);background:var(--bg-raised);width:26px;height:24px;color:var(--text-dim);cursor:pointer;border-radius:6px;place-items:center;padding:0;display:grid}.icon-button:hover{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.icon-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.icon-button[aria-pressed=true]:hover{color:#fff}.header-action-divider{background:var(--border);width:1px;height:20px}.github-link{flex:none;text-decoration:none}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.sidebar-collapse{z-index:2;border:1px solid var(--border);background:var(--bg-raised);width:26px;height:26px;color:var(--text-dim);cursor:pointer;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;bottom:8px;right:8px}.sidebar-collapse:hover{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.step-list{flex:auto;padding:6px 6px 42px;overflow-y:auto}.tree-item{text-align:left;width:100%;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.tree-item:hover{background:var(--bg-raised)}.tree-item.active{background:var(--accent-dim);color:#fff}.step-index{background:var(--bg-raised);height:20px;color:var(--text-dim);border-radius:50%;flex:0 0 20px;place-items:center;font-size:11px;display:grid}.tree-item.active .step-index{color:#fff;background:#ffffff40}.step-group+.step-group{margin-top:10px}.step-phase{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:5px 10px 3px;font-size:10px;font-weight:600}.phase-tag{color:var(--accent);white-space:nowrap;text-transform:none;letter-spacing:0;font-size:11px}.badge{background:var(--bg-raised);color:var(--text-dim);white-space:nowrap;border-radius:10px;margin-left:auto;padding:1px 6px;font-size:10px}.canvas-panel{flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.canvas{background:var(--bg);flex:auto;min-height:0;position:relative;overflow:hidden}.canvas-viewport{cursor:grab;width:100%!important;height:100%!important}.canvas-viewport:active{cursor:grabbing}.canvas-content{width:100%;height:100%}.mermaid-host{opacity:0;padding:24px}.mermaid-host.is-fitted{opacity:1}.mermaid-host svg{height:auto;max-width:none!important}.mermaid-host.is-clickable path.flowchart-link,.mermaid-host.is-clickable .messageLine0,.mermaid-host.is-clickable .messageLine1{pointer-events:none}.mermaid-host.is-clickable .mermaid-docs-hit,.mermaid-host.is-clickable .edgeLabels>*,.mermaid-host.is-clickable .messageText{cursor:pointer}.mermaid-host .mermaid-docs-hit{marker-end:none;marker-start:none;pointer-events:stroke;stroke:#0000!important;stroke-width:14px!important;fill:none!important}.mermaid-host .is-muted{opacity:.15}.mermaid-host .is-active{opacity:1}.mermaid-host path.is-active,.mermaid-host line.is-active{stroke:var(--accent)!important;stroke-width:2.5px!important}.mermaid-host .is-active marker path,.mermaid-host text.is-active{font-weight:600;fill:var(--accent)!important}.mermaid-host .mermaid-docs-actor-backdrop{fill:var(--bg);opacity:0;pointer-events:none}.canvas-toolbar{z-index:5;background:var(--bg-raised);border:1px solid var(--border);opacity:.35;border-radius:8px;align-items:center;gap:4px;padding:4px;transition:opacity .15s;display:flex;position:absolute;top:10px;right:10px}.canvas-settings{z-index:5;background:var(--bg-raised);border:1px solid var(--border);opacity:.35;border-radius:8px;align-items:center;gap:10px;padding:4px 8px;transition:opacity .15s;display:flex;position:absolute;bottom:10px;left:10px}.canvas-toolbar:hover,.canvas-settings:hover{opacity:1}.canvas-toolbar:has(:focus-visible){opacity:1}.canvas-settings:has(:focus-visible){opacity:1}.canvas-settings label{color:var(--text-dim);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:flex}.canvas-settings label:hover{color:var(--text)}.canvas-settings input{cursor:pointer;margin:0}.canvas-toolbar button{min-width:28px;height:26px;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:5px;padding:0 8px}.canvas-toolbar button:hover{background:var(--accent-dim);color:#fff}.canvas-toolbar .icon-button,.canvas-settings .icon-button{width:28px;height:26px;color:var(--text);background:0 0;border:0;border-radius:5px}.zoom-readout{text-align:center;font-variant-numeric:tabular-nums;min-width:52px;color:var(--text-dim);font-size:12px}.canvas-note,.empty-note{color:var(--text-dim);margin:0;padding:10px 14px;font-size:13px}.canvas-error{color:var(--error);padding:20px}.canvas-error pre{white-space:pre-wrap;color:var(--text-dim)}.source-panel{background:var(--bg-panel);border-top:1px solid var(--border);flex-direction:column;height:100%;display:flex}.source-lines{flex:auto;margin:0;padding:8px 0;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.source-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.clear-selection{border:1px solid var(--accent-dim);color:var(--accent);font:inherit;text-transform:none;letter-spacing:0;cursor:pointer;background:0 0;border-radius:5px;padding:1px 8px;font-size:11px}.clear-selection:hover{background:var(--accent-dim);color:#fff}.source-line{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:12px;padding:0 14px;transition:background .15s,opacity .15s;display:flex}.source-line:disabled{cursor:default}.source-line:not(:disabled):hover{background:#58a6ff12}.source-line.hl{box-shadow:inset 3px 0 0 var(--accent);background:#58a6ff24}.source-line.selected{box-shadow:inset 3px 0 0 var(--accent);background:#58a6ff3d}.source-line.dim{opacity:.38}.line-number{text-align:right;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex:0 0 32px}.source-line code{white-space:pre}.docs-panel{background:var(--bg-panel);border-left:1px solid var(--border);flex-direction:column;height:100%;display:flex;position:relative}.docs-collapse{z-index:2;border:1px solid var(--border);background:var(--bg-raised);width:26px;height:26px;color:var(--text-dim);cursor:pointer;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;bottom:8px;left:8px}.docs-collapse:hover{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.docs-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.docs-title{border-radius:6px;flex:auto;min-width:0;margin:-2px -6px;padding:2px 6px}.docs-title.clickable{cursor:pointer}.docs-title.clickable:hover{background:var(--bg-raised)}.docs-title.clickable:hover h2{color:var(--text)}.docs-header h2{color:var(--text);text-transform:none;letter-spacing:0;margin:2px 0 0;font-size:15px}.step-counter-label{color:var(--text-dim);font-size:11px;display:block}.docs-header-actions{flex:none;align-items:center;gap:10px;display:flex}.font-controls{gap:4px;display:flex}.font-controls button{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);cursor:pointer;border-radius:5px;padding:2px 7px;font-size:12px}.docs-body{flex:auto;padding:16px 18px 44px;line-height:1.6;overflow-y:auto}.docs-body p{margin:0 0 12px}.docs-body h1,.docs-body h2,.docs-body h3{margin:1.15em 0 .55em;font-size:1.15em}.docs-body ul,.docs-body ol{margin:.6em 0 .85em;padding-left:20px}.docs-body table{border-collapse:collapse;width:100%;margin:1em 0}.docs-body th,.docs-body td{border:1px solid var(--border);text-align:left;padding:6px 10px}.docs-body th{background:var(--bg-raised)}.docs-body :not(pre)>code{background:var(--bg-raised);border-radius:4px;padding:1px 5px;font:.88em ui-monospace,monospace}.docs-body a{color:var(--accent)}.docs-body blockquote{border-left:3px solid var(--border);color:var(--text-dim);margin:1em 0;padding:2px 14px}.code-block{margin:12px 0;position:relative}.code-block pre{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--bg-raised);color:var(--text);border-radius:6px;margin:0;padding:12px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto}.code-block pre code{white-space:pre}.copy-button{opacity:0;border:1px solid var(--border);background:var(--bg);color:var(--text-dim);cursor:pointer;border-radius:5px;padding:2px 8px;font-size:11px;transition:opacity .15s;position:absolute;top:7px;right:7px}.code-block:hover .copy-button{opacity:1}.step-nav{align-items:center;gap:10px;display:flex}.step-nav button{border:1px solid var(--border);background:var(--bg-raised);color:var(--text);cursor:pointer;font:inherit;border-radius:6px;padding:4px 12px}.step-nav button:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent-dim)}.step-nav button:disabled{opacity:.4;cursor:default}.step-counter{text-align:center;min-width:110px;color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px}.step-position{flex-direction:column;gap:5px;display:flex}.step-progress{background:var(--border);border-radius:1px;height:2px;overflow:hidden}.step-progress-fill{background:var(--accent);height:100%;transition:width .14s}.app:fullscreen{background:var(--bg)}.issue-banner{border-bottom:1px solid var(--border);flex:none;max-height:30%;padding:4px 10px;font-size:13px;overflow-y:auto}.issue-banner.error{background:var(--error-bg);color:var(--error)}.issue-banner.warning{background:var(--warn-bg);color:var(--warn)}.issue-summary{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:4px 0;font-weight:600;display:flex}.issue-caret{font-size:10px}.issue-banner ul{margin:2px 0 6px;padding-left:18px}.issue-banner code{opacity:.8;font-family:ui-monospace,monospace}.badge.warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn)}
