:root{--bg:#f6f7f9;--root-fill:#fff;--panel:#ffffffeb;--panel-solid:#fff;--panel-border:#d9dde3;--text:#1d2330;--muted:#5f6878;--accent:#2563eb;--accent-soft:#2563eb1f;--edge:#6b7385;--edge-dim:#6b738538;--edge-hl:#d9480f;--pin-open:#2563eb;--pin-closed:#c2410c;--label-halo:#fff;--trail:#9333ea;--trail-glow:#9333ea8c;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12151b;--root-fill:#171b22;--panel:#1c2028eb;--panel-solid:#1c2028;--panel-border:#333a46;--text:#e6e9ef;--muted:#9aa3b2;--accent:#6ea0ff;--accent-soft:#6ea0ff29;--edge:#8f98aa;--edge-dim:#8f98aa33;--edge-hl:#ff8a4c;--pin-open:#6ea0ff;--pin-closed:#f08a4b;--label-halo:#12151b;--trail:#c084fc;--trail-glow:#c084fc99;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}.app{position:fixed;inset:0}.canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}.canvas:active{cursor:grabbing}.node{cursor:pointer}.node .node-box{transition:fill .3s ease-out,stroke-width .15s}.node.selected .node-box{stroke:var(--accent)!important}.node text{pointer-events:none;font-family:inherit}.label-center{text-anchor:middle;font-weight:600;transition:opacity .3s ease-out}.label-header{letter-spacing:.01em;font-weight:600;transition:opacity .3s ease-out}.label-debug{fill:var(--muted);font:10px ui-monospace,Consolas,monospace}.node.enter{transform-box:fill-box;transform-origin:50%;animation:.32s ease-out both node-in}.node.exit{transform-box:fill-box;transform-origin:50%;pointer-events:none;animation:.28s ease-in forwards node-out}@keyframes node-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@keyframes node-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.82)}}.pin{cursor:pointer}.pin circle{stroke-width:1.2px}.pin-glyph{fill:none;stroke-width:1.4px;stroke-linejoin:round;stroke-linecap:round}.pin-auto>circle{fill:var(--panel);stroke:var(--panel-border)}.pin-auto .pin-glyph{stroke:var(--muted)}.pin-auto:hover>circle{stroke:var(--accent)}.pin-open>circle{fill:var(--pin-open);stroke:var(--pin-open)}.pin-closed>circle{fill:var(--pin-closed);stroke:var(--pin-closed)}.pin-open .pin-glyph,.pin-closed .pin-glyph{stroke:#fff}.pin-badge circle{fill:#fff;stroke-width:1.2px}.pin-open .pin-badge circle{stroke:var(--pin-open)}.pin-closed .pin-badge circle{stroke:var(--pin-closed)}.pin-badge path{stroke-width:1.4px;stroke-linecap:round}.pin-open .pin-badge path{stroke:var(--pin-open)}.pin-closed .pin-badge path{stroke:var(--pin-closed)}.edges{pointer-events:none}.edge path{fill:none;stroke-width:1.4px;transition:stroke .2s,opacity .2s}.edge-normal path{stroke:var(--edge);opacity:.75}.edge-hl path{stroke:var(--edge-hl);stroke-width:2.2px}.edge-dim path{stroke:var(--edge-dim)}.arrow-normal{fill:var(--edge)}.arrow-hl{fill:var(--edge-hl)}.arrow-dim{fill:var(--edge-dim)}.edge.enter{animation:.32s ease-out both fade-in}.edge.exit{animation:.28s ease-in forwards fade-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.edge-badge rect{fill:var(--panel);stroke:var(--edge);stroke-width:1px}.edge-hl .edge-badge rect{stroke:var(--edge-hl)}.edge-dim .edge-badge{opacity:.35}.edge-badge text{text-anchor:middle;fill:var(--text);font-size:10.5px;font-weight:700}.edge-label{text-anchor:middle;fill:var(--muted);paint-order:stroke;stroke:var(--label-halo);stroke-width:3px;stroke-linejoin:round;font-size:11px}.edge-dim .edge-label{opacity:.3}.topbar{pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;top:8px;left:8px;right:8px}.topbar>*{pointer-events:auto}.crumbs,.toolbar,.hud,.hint,.loading{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px}.crumbs{white-space:nowrap;flex:auto;align-items:center;min-width:0;padding:4px 6px;display:flex;overflow:hidden}.crumb-wrap{align-items:center;min-width:0;display:inline-flex}.crumb{color:var(--muted);font:inherit;cursor:pointer;text-overflow:ellipsis;background:0 0;border:0;border-radius:6px;max-width:220px;padding:4px 6px;overflow:hidden}.crumb:hover{background:var(--accent-soft);color:var(--text)}.crumb.current{color:var(--text);font-weight:600}.crumb-sep,.crumb-gap{color:var(--muted);padding:0 2px}.toolbar{flex:none;align-items:center;gap:10px;padding:5px 8px;display:flex}.toolbar select,.toolbar button{font:inherit;color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px}.toolbar select{background:var(--panel)}.toolbar button:hover{border-color:var(--accent)}.btn-group{gap:4px;display:flex}.btn-group button{min-width:30px}.detail{color:var(--muted);align-items:center;gap:6px;display:flex}.detail input{width:110px;accent-color:var(--accent)}.detail output{font-variant-numeric:tabular-nums;width:32px;color:var(--text)}.debug-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:4px;display:flex}.hud{pointer-events:none;max-width:calc(100% - 16px);padding:8px 10px;font:11.5px/1.55 ui-monospace,Consolas,monospace;position:absolute;bottom:8px;left:8px}.hud b{color:var(--muted);margin-right:4px;font-weight:500}.hud code{word-break:break-all;font-size:10.5px}.hint{max-width:calc(100% - 300px);color:var(--muted);pointer-events:none;padding:6px 10px;font-size:12px;position:absolute;bottom:8px;right:8px}.loading{color:var(--muted);padding:10px 16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=760px){.topbar{flex-direction:column;align-items:stretch}.toolbar{flex-wrap:wrap}.hint{display:none}}.topbar{flex-wrap:wrap}.search{flex:0 260px;min-width:160px;position:relative}.search input{width:100%;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;padding:7px 10px}.search input:focus{outline:2px solid var(--accent);outline-offset:-1px}.search-results{z-index:20;background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:10px;max-height:60vh;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0000002e}.search-results li{cursor:pointer;border-radius:6px;flex-direction:column;padding:6px 8px;display:flex}.search-results li.active{background:var(--accent-soft)}.search-label{color:var(--text)}.search-path{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.search-empty{color:var(--muted);cursor:default!important}.toolbar button.active,.inspector button.active{background:var(--accent-soft);border-color:var(--accent)}.inspector button,.modal button,.modal select,.inspector select{font:inherit;color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 9px}.inspector button:hover:not(:disabled),.modal button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default!important}button.primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}button.danger{color:var(--pin-closed)!important}button.link{color:var(--accent)!important;border:0!important;padding:2px 4px!important}button.icon{font-size:18px;line-height:1;color:var(--muted)!important;border:0!important;padding:0 6px!important}.inspector{background:var(--panel-solid);border:1px solid var(--panel-border);z-index:10;border-radius:10px;width:310px;max-width:calc(100% - 16px);position:absolute;top:100px;bottom:8px;right:8px;overflow:auto;box-shadow:0 8px 24px #0000001f}.inspector-head{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.inspector-section{border-bottom:1px solid var(--panel-border);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.inspector-section.buttons{flex-flow:wrap;gap:6px}.inspector-section.foot{border-bottom:0}.inspector .search{flex:none}.field{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.field.inline{flex-direction:row;align-items:center;gap:6px}.field input,.field textarea,.edge-list input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--panel-border);resize:vertical;border-radius:6px;padding:5px 7px;font-size:13px}.row{justify-content:space-between;align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap;justify-content:flex-start}.muted{color:var(--muted)}.small{font-size:11.5px}.error{color:var(--pin-closed)}.edge-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.edge-list li{grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:4px;display:grid}.edge-ends{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.edge-list input{padding:3px 6px;font-size:12px}.modal-backdrop{z-index:30;background:#0a0c1059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:10px;width:min(760px,100%);max-height:calc(100vh - 32px);padding:14px 16px;display:flex;overflow:auto;box-shadow:0 16px 48px #0000004d}.modal p{margin:0}.modal-head,.modal-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal textarea.code{min-height:260px;color:var(--text);background:var(--bg);border:1px solid var(--panel-border);resize:vertical;border-radius:8px;padding:8px 10px;font:12.5px/1.45 ui-monospace,Consolas,monospace}.file-btn{border:1px solid var(--panel-border);cursor:pointer;border-radius:6px;padding:4px 9px;position:relative}.file-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.preview{background:var(--bg);border:1px solid var(--panel-border);border-radius:8px;max-height:46vh;padding:6px 10px;overflow:auto}.preview ul{margin:2px 0;padding-left:18px}.preview .group{color:var(--accent);font-weight:600}.toast,.banner{background:var(--panel-solid);border:1px solid var(--panel-border);z-index:25;border-radius:10px;max-width:calc(100% - 32px);padding:8px 14px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000026}.toast{bottom:48px}.banner{border-color:var(--accent);top:104px}.canvas.connecting,.canvas.connecting .node{cursor:crosshair}.app.editing .canvas{width:calc(100% - 326px)}@media (width<=760px){.app.editing .canvas{width:100%}}.node-box,.edge path,.edge-badge rect{vector-effect:non-scaling-stroke}.sticky-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.app.editing .sticky-layer{right:326px}.sticky-label{pointer-events:auto;background:var(--panel);border:1px solid var(--panel-border);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-left:3px solid;border-radius:6px;padding:5px 8px;font:600 12.5px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:absolute;overflow:hidden;box-shadow:0 1px 4px #00000014}.sticky-label:hover{border-color:var(--accent)}.minimap{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;border-radius:10px;padding:6px;position:absolute;bottom:44px;right:8px}.app.editing .minimap{right:334px}.minimap svg{cursor:pointer;display:block}.mm-root{fill:var(--root-fill);stroke:var(--panel-border);vector-effect:non-scaling-stroke}.mm-box{stroke-width:.75px;vector-effect:non-scaling-stroke}.mm-box.on-path{stroke-width:1.75px;stroke:var(--accent)!important}.mm-view{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.mm-cross circle,.mm-cross line{fill:none;stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}@media (width<=760px){.minimap{display:none}}.node.trail-visited .node-box{stroke-dasharray:5 3;stroke:var(--trail)!important;stroke-width:2px!important}.node.trail-current .node-box{filter:drop-shadow(0 0 6px var(--trail-glow));stroke:var(--trail)!important;stroke-width:3.5px!important}.edge-trail path{stroke:var(--trail);stroke-width:3px;stroke-dasharray:8 5;animation:.9s linear infinite march}.arrow-trail{fill:var(--trail)}.edge-trail .edge-badge rect{stroke:var(--trail)}@keyframes march{to{stroke-dashoffset:-26px}}.walk{background:var(--panel-solid);border:1px solid var(--panel-border);border-top:3px solid var(--trail);z-index:15;border-radius:12px;flex-direction:column;gap:8px;width:min(640px,100% - 32px);max-height:46vh;padding:10px 12px;display:flex;position:absolute;bottom:12px;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 10px 30px #0000002e}.walk button{font:inherit;color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:6px;padding:3px 9px}.walk button:hover:not(:disabled){border-color:var(--trail)}.walk-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.walk-trail{flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.walk-trail button{color:var(--muted);padding:1px 7px;font-size:12px}.walk-trail button.here{color:var(--text);border-color:var(--trail);font-weight:600}.walk-current{font-size:15px;font-weight:600}.walk-options{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.walk-options button{text-align:left;align-items:baseline;gap:8px;width:100%;display:flex}.walk-options kbd{color:var(--muted);border:1px solid var(--panel-border);border-radius:4px;padding:0 4px;font:11px ui-monospace,Consolas,monospace}.walk-options .via{color:var(--muted);font-size:12px}.walk-options .seen{opacity:.6}.toolbar select.export-menu{max-width:96px}.context-menu{z-index:60;background:var(--panel-solid);border:1px solid var(--panel-border);border-radius:10px;outline:none;min-width:220px;max-width:320px;max-height:calc(100vh - 12px);padding:4px;font-size:13px;position:fixed;overflow:auto;box-shadow:0 10px 28px #0003}.cm-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:5px 8px 5px 4px;display:flex}.cm-item.active{background:var(--accent-soft)}.cm-item:disabled{color:var(--muted);cursor:default}.cm-item.danger{color:#d33a3a}.cm-check{text-align:center;width:14px;color:var(--accent);flex:none;font-size:9px}.cm-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cm-item kbd{color:var(--muted);background:0 0;border:0;padding:0;font:11px ui-monospace,Consolas,monospace}.cm-heading{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:6px 8px 2px 24px;font-size:11.5px;font-weight:600;overflow:hidden}.cm-sep{background:var(--panel-border);height:1px;margin:4px 6px}.modal.narrow{width:min(560px,100%)}.notice{background:var(--accent-soft);color:var(--text);border-radius:8px;padding:8px 10px}.notice a,.licenses a{color:var(--accent)}.share-url{min-width:0;color:var(--text);background:var(--bg);border:1px solid var(--panel-border);border-radius:6px;flex:1;padding:5px 7px;font:12px ui-monospace,Consolas,monospace}.licenses{border:1px solid var(--panel-border);border-radius:8px;max-height:40vh;padding:4px 10px;overflow:auto}.licenses details{border-bottom:1px solid var(--panel-border);padding:4px 0}.licenses details:last-child{border-bottom:0}.licenses summary{cursor:pointer}.licenses pre{white-space:pre-wrap;max-height:200px;color:var(--muted);margin:6px 0;font-size:11px;overflow:auto}.ai-steps{border:1px dashed var(--panel-border);border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.modal .ai-steps textarea.code{min-height:84px}.warnings{color:var(--pin-closed);margin:0;padding-left:18px}.about-btn{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 6px}.about-btn:hover{color:var(--accent)}
