:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;--bg:#f6f6f4;--panel:#fff;--canvas-bg:#fff;--border:#e2e1dc;--ink:#1f1f24;--muted:#6b6b75;--grid:#c9c8c2;--accent:#2f6fde;--accent-soft:#2f6fde1a;--danger:#d23c3c;font:14px/1.45 var(--sans);color:var(--ink);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#15161a;--panel:#1d1e23;--canvas-bg:#1a1b20;--border:#2e3038;--ink:#e7e7ea;--muted:#9a9aa5;--grid:#3a3c45;--accent:#6b9cff;--accent-soft:#6b9cff26;--danger:#ff6b6b}}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;height:100vh;display:flex}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:5px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger)}input,select,textarea{background:var(--canvas-bg);border:1px solid var(--border);border-radius:6px;width:100%;padding:5px 8px}.topbar{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.topbar .spacer{flex:1}.topbar .sep{background:var(--border);width:1px;height:22px;margin:0 4px}.title{font-weight:600}.editor{flex:1;min-height:0;display:flex}.editor .canvas-wrap{flex:1;min-width:0;position:relative}.hint{color:var(--muted);pointer-events:none;font-size:12px;position:absolute;bottom:10px;left:12px}.inspector{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;gap:10px;width:260px;padding:12px;display:flex;overflow-y:auto}.inspector h3{margin:0;font-size:14px}.inspector label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.inspector label.row{color:var(--ink);flex-direction:row;align-items:center;gap:6px}.inspector label.row input{width:auto}.inspector .empty{color:var(--muted)}@media (width<=720px){.editor{flex-direction:column}.inspector{border-left:0;border-top:1px solid var(--border);width:auto;max-height:40vh}}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--danger);margin:8px 0}.notice{color:#2e8b57;margin:8px 0}.nav{gap:14px;margin-left:16px;display:flex}.nav a{color:var(--muted)}.nav a.active{color:var(--ink);font-weight:600}.center{flex:1;place-items:center;padding:16px;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;max-width:420px;padding:20px}.login{flex-direction:column;gap:12px;display:flex}.login h1{margin:0 0 4px;font-size:20px}.login label,.stack label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.page{width:100%;max-width:980px;margin:0 auto;padding:16px 24px 40px;overflow-y:auto}.page.narrow{max-width:420px}.page h2{margin:24px 0 10px;font-size:17px}.page-head{justify-content:space-between;align-items:center;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.wrap input{flex:180px;width:auto}.table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}.table th{color:var(--muted);font-size:12px;font-weight:500}.table tr:last-child td{border-bottom:0}.table td.actions{text-align:right;white-space:nowrap}.table td.actions button{margin-left:6px}.table tr.disabled td{color:var(--muted)}.badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:10px;margin-left:6px;padding:1px 6px;font-size:11px}.crumbs{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.title-input{background:0 0;border-color:#0000;width:auto;min-width:120px;font-weight:600}.title-input:hover,.title-input:focus{border-color:var(--border);background:var(--canvas-bg)}.status{color:var(--muted);white-space:nowrap;font-size:12px}.status-offline{color:var(--danger)}.avatars{display:flex}.avatar{color:#fff;border:2px solid var(--panel);border-radius:50%;place-items:center;width:26px;height:26px;margin-left:-6px;font-size:11px;font-weight:600;display:grid}.modal-backdrop{z-index:10;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;width:100%;max-width:560px;padding:18px;display:flex}.modal h3,.modal p{margin:0}.modal-actions{justify-content:flex-end;display:flex}.map-canvas{-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:100%;font-family:var(--sans);display:block}.map-canvas .bg{fill:var(--canvas-bg);cursor:grab}.map-canvas .bg:active{cursor:grabbing}.map-canvas .axis{stroke:var(--ink);stroke-width:1.5px}.map-canvas .stage-line{stroke:var(--grid);stroke-dasharray:4 6}.map-canvas .axis-label{fill:var(--muted);font-size:12px}.map-canvas .axis-title{fill:var(--muted);font-size:12px;font-style:italic}.map-canvas .link{stroke:var(--ink);stroke-width:1.2px;pointer-events:none}.map-canvas .link.selected{stroke:var(--accent);stroke-width:2.5px}.map-canvas .link-hit{stroke:#0000;stroke-width:12px;cursor:pointer}.map-canvas .evolution{stroke:var(--danger);stroke-width:1.5px;stroke-dasharray:6 4;pointer-events:none}.map-canvas .evo-head{fill:var(--danger)}.map-canvas .evolution-ghost{fill:var(--canvas-bg);stroke:var(--danger);stroke-dasharray:2 2;pointer-events:none}.map-canvas .evolution-handle{fill:#0000;cursor:ew-resize}.map-canvas .pipeline{fill:none;stroke:var(--ink);stroke-width:1.2px;pointer-events:none}.map-canvas .node{cursor:move}.map-canvas .node .hit{fill:#0000}.map-canvas .node .shape{fill:var(--canvas-bg);stroke:var(--ink);stroke-width:1.5px}.map-canvas .node .shape.eco{stroke-dasharray:3 2}.map-canvas .node .shape-inner{fill:var(--ink)}.map-canvas .node .label{fill:var(--ink);font-size:13px}.map-canvas .node .anchor-label{fill:var(--ink);font-size:14px;font-weight:600}.map-canvas .node .inertia{fill:var(--ink)}.map-canvas .node.selected .shape{stroke:var(--accent);stroke-width:3px}.map-canvas .node.selected .label,.map-canvas .node.selected .anchor-label{fill:var(--accent)}.map-canvas .node.link-source .shape{stroke:var(--accent);stroke-dasharray:2 2;stroke-width:3px}.map-canvas .node.has-submap{cursor:pointer}.map-canvas .submap-badge rect{fill:var(--accent)}.map-canvas .submap-badge path{fill:none;stroke:#fff;stroke-width:1.2px}.map-canvas .note{fill:var(--muted);cursor:move;font-size:13px}.map-canvas .note.selected{fill:var(--accent)}.map-canvas .cursor path{stroke:#fff;stroke-width:1px}.map-canvas .cursor text{fill:#fff;font-size:11px}.map-canvas .link-handle{opacity:0;cursor:crosshair;transition:opacity .12s}.map-canvas .node:hover .link-handle,.map-canvas .node.selected .link-handle{opacity:1}.map-canvas.linking .link-handle{opacity:0}.map-canvas .link-handle-hit{fill:#0000}.map-canvas .link-handle-dot{fill:var(--accent);stroke:var(--canvas-bg);stroke-width:2px}.map-canvas .link-handle:hover .link-handle-dot{r:6.5}.map-canvas.linking,.map-canvas.linking .node,.map-canvas.linking .bg{cursor:crosshair}.map-canvas .link-draft{stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 4;pointer-events:none}.map-canvas .node.link-target .shape{stroke:var(--accent);stroke-width:3px}.map-canvas .node.link-target .label{fill:var(--accent)}.map-canvas .inline-editor input{width:100%;height:100%;font:13px var(--sans);color:var(--ink);background:var(--canvas-bg);border:1.5px solid var(--accent);border-radius:4px;outline:none;padding:2px 6px;box-shadow:0 2px 8px #0000001f}.map-canvas .inline-editor input.center{text-align:center}.map-canvas .submap-badge{cursor:pointer}
