.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-border-default:1px solid #bbb;--xy-node-border-selected-default:1px solid #555;--xy-handle-background-color-default:#333;--xy-selection-background-color-default:#9696b41a;--xy-selection-border-default:1px dotted #9b9b9bcc;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));min-width:5px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{justify-content:center;align-items:center;width:26px;height:26px;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border:var(--xy-node-border,var(--xy-node-border-default));color:var(--xy-node-color,var(--xy-node-color-default))}.react-flow__node-input.selected,.react-flow__node-input:focus,.react-flow__node-input:focus-visible,.react-flow__node-default.selected,.react-flow__node-default:focus,.react-flow__node-default:focus-visible,.react-flow__node-output.selected,.react-flow__node-output:focus,.react-flow__node-output:focus-visible,.react-flow__node-group.selected,.react-flow__node-group:focus,.react-flow__node-group:focus-visible{border:var(--xy-node-border-selected,var(--xy-node-border-selected-default));outline:none}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--bg:#141414;--canvas:#0b0b0c;--panel:#1a1a1a;--card:#151516;--card-2:#1b1b1b;--line:#242424;--line-2:#2e2e2e;--text:#ededed;--text-2:#a1a1a1;--text-3:#6b6b6b;--accent:#f5c451;--accent-soft:#f5c4511f;--danger:#f87171;--ok:#4ade80;--edge:#8a8a8a;--dots:#ffffff17;--mono:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Geist", system-ui, -apple-system, sans-serif;--r:10px;--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.45 var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.35}input,textarea,select{font:inherit;color:inherit}::selection{background:#f5c4514d}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#262626 padding-box padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-track{background:0 0}.app{grid-template-columns:0 1fr 0;gap:0;height:100vh;padding:8px;transition:grid-template-columns .28s cubic-bezier(.2,.8,.2,1);display:grid}.side-panel{min-width:0;min-height:0;display:flex;overflow:hidden}.side-left{grid-column:1;justify-content:flex-end}.side-right{grid-column:3;justify-content:flex-start}.side-panel>*{opacity:0;flex-shrink:0;height:100%;transition:opacity .2s,transform .28s cubic-bezier(.2,.8,.2,1)}.side-left>*{width:280px;transform:translate(-16px)}.side-right>*{width:400px;transform:translate(16px)}.side-panel.is-open>*{opacity:1;transition-delay:40ms;transform:none}@media (prefers-reduced-motion:reduce){.app,.side-panel,.side-panel>*{transition:none!important}}.app.left-open{grid-template-columns:280px 1fr 0}.app.right-open{grid-template-columns:0 1fr 400px}.app.left-open.right-open{grid-template-columns:280px 1fr 400px}.stage{background:var(--canvas);border-radius:14px;grid-column:2;min-width:0;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0a,0 1px 2px #0006}.label{font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.label em{color:var(--text-2);letter-spacing:0;margin-left:4px;font-style:normal}.muted{color:var(--text-3)}.small{font-size:12px}.grow{flex:1}.kbd{font:500 10.5px/1 var(--mono);color:var(--text-2);border:1px solid var(--line-2);background:#1d1d1d;border-bottom-width:2px;border-radius:5px;padding:3px 5px}.icon-btn{width:30px;height:30px;color:var(--text-2);border-radius:7px;flex-shrink:0;place-items:center;transition:background .12s,color .12s;display:inline-grid}.icon-btn:hover{color:var(--text);background:#1e1e1e}.icon-btn.danger:hover{color:var(--danger);background:#f871711a}.ghost-btn{height:30px;color:var(--text-2);white-space:nowrap;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.ghost-btn:hover{border-color:var(--line);color:var(--text);background:#1b1b1b}.primary-btn{background:var(--accent);color:#1a1405;border-radius:8px;height:34px;padding:0 18px;font-weight:600}.primary-btn:hover:not(:disabled){filter:brightness(1.08)}.link-btn{color:var(--text-2);align-items:center;gap:4px;font-size:13px;display:inline-flex}.link-btn:hover{color:var(--accent)}.pill{height:24px;font:500 12px/1 var(--mono);border-radius:99px;align-items:center;gap:5px;padding:0 9px;display:inline-flex}.pill-warn{color:#fbbf24;background:#fbbf241a;border:1px solid #fbbf2433}.header{z-index:10;background:linear-gradient(var(--canvas) 55%, transparent);pointer-events:none;align-items:center;gap:10px;padding:14px 16px;display:flex;position:absolute;top:0;left:0;right:0}.header>*{pointer-events:auto}.header-sep{background:var(--line-2);width:1px;height:20px}.crumbs{flex:auto;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.crumb-root{font:500 13px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.crumb-root:hover{color:var(--text-2)}.crumb-chev{color:var(--text-3)}.crumb-title{color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;outline:none;max-width:40vw;padding:3px 6px;font-size:16px;font-weight:500}.crumb-title:hover{border-color:var(--line)}.crumb-title:focus{border-color:var(--line-2);background:#141414}.crumb-dialect{font:500 10.5px/1 var(--mono);color:var(--text-3);border:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em;border-radius:5px;flex-shrink:0;padding:3px 6px}.header-actions{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.canvas{position:absolute;inset:0}.react-flow{--xy-background-color:var(--canvas)}.react-flow__pane{cursor:default}.react-flow__pane.dragging{cursor:grabbing}.canvas-empty{text-align:center;pointer-events:none;place-content:center;gap:6px;display:grid;position:absolute;inset:0}.canvas-empty p{font:500 15px var(--mono);color:var(--text-2);margin:0}.canvas-empty span{color:var(--text-3)}.tnode{background:var(--card);border:1px solid var(--line-2);width:272px;font-family:var(--mono);border-radius:9px;font-size:11px;transition:opacity .15s,border-color .15s,box-shadow .15s;position:relative;box-shadow:0 10px 30px -12px #000000b3}.tnode.is-selected{border-color:#555;box-shadow:0 0 0 1px #555,0 16px 40px -14px #000c}.tnode.is-related{border-color:#3a3a3a}.tnode.is-dimmed{opacity:.38}.tnode-head{border-bottom:1px solid var(--line);cursor:grab;background:linear-gradient(90deg, color-mix(in srgb, var(--tc) 9%, transparent), transparent 70%);border-radius:9px 9px 0 0;align-items:center;gap:8px;height:36px;padding:0 10px 0 12px;display:flex}.tnode-head:active{cursor:grabbing}.tnode-icon{color:var(--tc);flex-shrink:0}.tnode-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:600;overflow:hidden}.tnode-rename{border:1px solid var(--line-2);min-width:0;font:600 12px var(--mono);background:#0f0f0f;border-radius:5px;outline:none;flex:1;padding:3px 6px}.tnode-close{width:20px;height:20px;color:var(--text-3);border-radius:5px;place-items:center;display:grid}.tnode-close:hover{color:var(--text);background:#262626}.tnode-issue{color:#fbbf24;background:#fbbf2424;border-radius:99px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10px;display:grid}.trow{cursor:pointer;border-bottom:1px solid #1d1d1d;align-items:center;gap:8px;height:28px;padding:0 12px 0 8px;display:flex;position:relative}.trow:hover{background:#1b1b1b}.trow.is-focus{background:var(--accent-soft)}.trow-key{width:24px;height:16px;color:var(--text-3);border-radius:4px;flex-shrink:0;place-items:center;font-size:9px;font-weight:600;display:grid}.trow-key.is-pk{color:var(--accent);background:#262626}.trow-key-ghost{opacity:.35}.trow-name{color:#d6d6d6;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trow-flags{gap:3px;margin-right:auto;display:flex}.trow-flags i{color:var(--text-3);border:1px solid #2c2c2c;border-radius:3px;padding:1px 3px;font-size:8.5px;font-style:normal;font-weight:600;line-height:1}.trow-flags i.is-fk{color:#9ca3af}.trow-type{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-size:10.5px;overflow:hidden}.thandle.react-flow__handle{background:var(--canvas);opacity:0;border:1.5px solid #555;border-radius:50%;width:9px;min-width:0;height:9px;min-height:0;transition:opacity .12s,transform .12s}.react-flow__handle-left.thandle{left:-5px}.react-flow__handle-right.thandle{right:-5px}.trow:hover .thandle,.react-flow__handle.connectingto,.react-flow__handle.connectingfrom,.react-flow.is-connecting .thandle{opacity:1}.thandle:hover,.react-flow__handle.connectingto{border-color:var(--accent);background:var(--accent);transform:translateY(-50%)scale(1.25)}.react-flow__handle.valid{border-color:var(--ok);background:var(--ok)}.tnode-add{width:100%;height:30px;color:var(--text-3);border-radius:0 0 9px 9px;align-items:center;gap:5px;padding:0 12px;font-size:10.5px;display:flex}.tnode-add:hover{color:var(--accent);background:#191919}.redge{transition:stroke .15s}.redge.is-active{animation:.9s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-8px}}.react-flow__edge:hover .redge{stroke:#c9c9c9!important}.react-flow__connection-path{stroke:var(--accent)}.redge-label{pointer-events:none;font:500 10.5px var(--mono);color:var(--accent);white-space:nowrap;z-index:10;background:#1a1a1a;border:1px solid #3a3320;border-radius:6px;padding:3px 7px;position:absolute}.toolbar{z-index:10;border:1px solid var(--line-2);background:#121212;border-radius:12px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute;bottom:20px;left:20px;box-shadow:0 10px 30px -10px #000c}.tb-btn{min-width:34px;height:34px;color:var(--text-2);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 8px;display:inline-flex}.tb-btn:hover:not(:disabled){color:var(--text);background:#1e1e1e}.tb-text{padding:0 12px;font-size:14px}.tb-zoom{font:500 14px var(--mono);min-width:58px}.tb-sep{background:var(--line-2);width:1px;height:20px;margin:0 4px}.tb-primary{color:var(--accent)}.legend{z-index:5;font:500 10.5px var(--mono);color:var(--text-3);pointer-events:none;gap:14px;display:flex;position:absolute;bottom:18px;right:18px}.legend span{align-items:center;gap:6px;display:inline-flex}.legend svg{stroke:var(--edge);fill:var(--canvas);stroke-width:1.2px}.sidebar{flex-direction:column;gap:18px;min-width:0;padding:10px 14px 6px 8px;display:flex;overflow:hidden}.sb-section{flex-direction:column;gap:8px;min-height:0;display:flex}.sb-grow{flex:1}.sb-head{justify-content:space-between;align-items:center;height:28px;display:flex}.sb-projects,.sb-tables{margin:0;padding:0;list-style:none;overflow-y:auto}.sb-projects{max-height:34vh}.sb-projects li{border-radius:8px;align-items:center;display:flex;position:relative}.sb-projects li:hover,.sb-projects li.is-active{background:#151515}.sb-projects li.is-active{box-shadow:inset 2px 0 0 var(--accent)}.sb-project{text-align:left;min-width:0;color:var(--text-2);flex:1;grid-template-columns:16px 1fr;column-gap:8px;padding:8px 10px;display:grid}.sb-project svg{grid-row:span 2;margin-top:2px}.sb-projects li.is-active .sb-project{color:var(--text)}.sb-project-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.sb-meta{font:11px var(--mono);color:var(--text-3)}.sb-del{width:26px;height:26px;color:var(--text-3);border-radius:6px;place-items:center;display:none;position:absolute;right:6px}.sb-projects li:hover .sb-del{display:grid}.sb-del:hover{color:var(--danger);background:#f871711a}.sb-search{border:1px solid var(--line);height:34px;color:var(--text-3);background:#101010;border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.sb-search:focus-within{border-color:var(--line-2)}.sb-search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.sb-table{width:100%;font:12px var(--mono);color:var(--text-2);text-align:left;border-radius:7px;align-items:center;gap:8px;padding:7px 10px;display:flex}.sb-table span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sb-table:hover{color:var(--text);background:#151515}.sb-table.is-active{background:var(--accent-soft);color:var(--text)}.sb-empty{color:var(--text-3);padding:10px;font-size:12px}.inspector{flex-direction:column;min-width:0;min-height:0;padding:4px 4px 0 14px;display:flex}.tabs{border:1px solid var(--line);border-radius:10px;flex-shrink:0;gap:4px;margin-bottom:12px;padding:4px;display:flex}.tabs button{height:30px;color:var(--text-3);border-radius:7px;flex:1;font-weight:500}.tabs button.is-active{color:var(--text);background:#1c1c1c}.inspector-body{flex:1;min-height:0;margin-right:-8px;padding-right:8px;overflow-y:auto}.panel{flex-direction:column;gap:14px;padding:2px 2px 40px;display:flex}.back{font:14px var(--mono);color:var(--text-2);align-self:flex-start;align-items:center;gap:8px;display:inline-flex}.back:hover{color:var(--text)}.panel-title{align-items:center;gap:10px;margin-top:4px;display:flex}.panel-title h2{font:600 19px/1.2 var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;overflow:hidden}.eyebrow{font:500 11.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-top:-8px}.field{flex-direction:column;gap:9px;margin-top:6px;display:flex}.input{border:1px solid var(--line-2);resize:vertical;background:#0e0e0e;border-radius:9px;outline:none;width:100%;padding:9px 12px;transition:border-color .12s}.input:focus{border-color:#4a4a4a}.input-lg{font:15px var(--mono);padding:11px 14px}.input-sm{font:12.5px var(--mono);padding:7px 10px}textarea.input{font-size:13px}.swatches{flex-wrap:wrap;gap:10px;padding:4px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:22px;height:22px;box-shadow:inset 0 0 0 1px #0000004d}.swatch.is-active{box-shadow:0 0 0 2px var(--panel), 0 0 0 3.5px #ddd}.section-head{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.ok{font:500 12px var(--mono);color:var(--ok)}.columns{flex-direction:column;gap:8px;display:flex}.drop-slot{position:relative}.drop-above:before,.drop-below:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;left:0;right:0}.drop-above:before{top:-5px}.drop-below:after{bottom:-5px}.ccard{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:7px;padding:8px 10px 10px;transition:border-color .15s;display:flex}.ccard.is-focus{border-color:#4b4128;box-shadow:0 0 0 3px #f5c4510f}.ccard-head{align-items:center;gap:4px;margin-left:-6px;display:flex}.grip{width:18px;height:24px;color:var(--text-3);cursor:grab;opacity:.5;place-items:center;display:grid}.grip:hover{opacity:1}.ccard-name{min-width:0;font:500 13.5px var(--mono);background:0 0;border:1px solid #0000;border-radius:7px;outline:none;flex:1;padding:3px 6px}.ccard-name:hover{border-color:var(--line)}.ccard-name:focus{border-color:var(--line-2);background:#0e0e0e}.crow{align-items:center;gap:8px;display:flex}.crow-label{width:64px;color:var(--text-2);flex-shrink:0;font-size:12px}.crow>.select,.crow>.combo,.crow>.input{flex:1;min-width:0}.more-btn{font:11.5px var(--mono);color:var(--text-3);align-self:flex-start;margin-left:72px}.more-btn:hover{color:var(--text-2)}.select{display:flex;position:relative}.select select{appearance:none;border:1px solid var(--line-2);width:100%;font:12px var(--mono);cursor:pointer;background:#0e0e0e;border-radius:7px;outline:none;padding:5px 26px 5px 9px}.select select:focus{border-color:#4a4a4a}.select-chevron{color:var(--text-3);pointer-events:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.crow>.select-sm{flex:0 0 122px}.crow-toggles{flex-wrap:wrap;gap:4px 12px;min-width:0;display:flex}.select option,.select optgroup{background:#151515}.combo{display:flex;position:relative}.combo input{border:1px solid var(--line-2);width:100%;font:12px var(--mono);background:#0e0e0e;border-radius:7px;outline:none;padding:5px 26px 5px 9px}.combo input:focus{border-color:#4a4a4a}.combo .select-chevron{pointer-events:auto;cursor:pointer}.combo-list{z-index:30;border:1px solid var(--line-2);background:#171717;border-radius:9px;max-height:240px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 16px 40px -10px #000c}.combo-list li{font:12.5px var(--mono);color:var(--text-2);cursor:pointer;border-radius:6px;padding:6px 8px}.combo-list li.is-active{color:var(--text);background:#232323}.combo-list li.is-current{color:var(--accent)}.toggle{color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.toggle.is-disabled{opacity:.45;cursor:default}.toggle-track{background:#2a2a2a;border-radius:99px;flex-shrink:0;width:26px;height:15px;transition:background .15s;position:relative}.toggle-track[aria-checked=true]{background:#5a5a5a}.toggle-thumb{background:#e5e5e5;border-radius:50%;width:10px;height:10px;transition:transform .15s;position:absolute;top:2.5px;left:2.5px}.toggle-track[aria-checked=true] .toggle-thumb{transform:translate(11px)}.toggle-track:disabled{opacity:1}.add-wide{border:1px dashed var(--line-2);height:34px;color:var(--text-3);border-radius:10px;justify-content:center;align-items:center;gap:6px;display:flex}.add-wide:hover{color:var(--accent);border-color:#4b4128}.quick{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:-4px;display:flex}.quick button{font:11.5px var(--mono);color:var(--text-2);border:1px solid var(--line);border-radius:99px;padding:3px 9px}.quick button:hover{border-color:var(--line-2);color:var(--text)}.ref-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ref-list button{text-align:left;width:100%;font:12.5px var(--mono);color:var(--text-2);border-radius:7px;align-items:center;gap:8px;padding:7px 10px;display:flex}.ref-list button>span:first-of-type{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.ref-list button .muted{white-space:nowrap;margin-left:auto;font-size:11.5px}.ref-list button:hover{color:var(--text);background:#151515}.tag{font:10.5px var(--mono);border:1px solid var(--line-2);color:var(--text-3);border-radius:5px;padding:1px 5px}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats div{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;padding:12px;display:flex}.stats b{font:600 20px var(--mono)}.stats span{color:var(--text-3);font-size:12px}.segmented{border:1px solid var(--line);background:#0e0e0e;border-radius:9px;gap:2px;padding:3px;display:inline-flex}.segmented button{height:28px;color:var(--text-3);white-space:nowrap;border-radius:6px;padding:0 12px;font-size:12.5px}.segmented button.is-active{color:var(--text);background:#222}.segmented-sm button{height:24px;padding:0 8px;font-size:11.5px}.issues{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.issues button{text-align:left;border-radius:8px;align-items:flex-start;gap:8px;width:100%;padding:8px 10px;font-size:12.5px;line-height:1.4;display:flex}.issues svg{flex-shrink:0;margin-top:2px}.issue-warning button{color:#e7c46a;background:#fbbf240f}.issue-error button{color:#f3a0a0;background:#f8717112}.issues button:hover{filter:brightness(1.2)}.tips{border:1px dashed var(--line-2);color:var(--text-3);border-radius:10px;margin-top:18px;padding:14px;font-size:12.5px}.tips p{margin:8px 0 0}.code-panel{flex-direction:column;gap:10px;height:100%;display:flex}.code-bar{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.code-actions{gap:4px;margin-left:-10px;display:flex}.code{border:1px solid var(--line);font:12px/1.65 var(--mono);color:#cfcfcf;white-space:pre;tab-size:2;background:#0d0d0d;border-radius:10px;flex:1;margin:0;padding:14px 16px;overflow:auto}.tok-k{color:var(--accent)}.tok-s{color:#86efac}.tok-c{color:#5f5f5f;font-style:italic}.overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0009;place-items:center;padding:20px;animation:.12s fade;display:grid;position:fixed;inset:0}.overlay-top{place-items:start center;padding-top:14vh}@keyframes fade{0%{opacity:0}}.modal{border:1px solid var(--line-2);background:#131313;border-radius:14px;flex-direction:column;gap:14px;width:min(560px,100%);max-height:90vh;padding:20px;display:flex;overflow:auto;box-shadow:0 30px 80px -20px #000000e6}.modal-wide{width:min(780px,100%)}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h3{font:600 16px var(--mono);margin:0}.modal p{margin:0}.modal-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.code-input{height:320px;font:12.5px/1.6 var(--mono);resize:vertical}.import-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.warnings{color:#e7c46a;background:#fbbf240f;border-radius:8px;margin:0;padding:10px 12px 10px 28px;font-size:12px}.templates{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.template{text-align:left;border:1px solid var(--line-2);background:#161616;border-radius:11px;flex-direction:column;align-items:flex-start;gap:6px;min-height:110px;padding:16px;display:flex}.template:hover{background:#181714;border-color:#4b4128}.template svg{color:var(--accent)}.template b{font:600 13.5px var(--mono)}.template span{color:var(--text-3);font-size:12.5px}.palette{border:1px solid var(--line-2);background:#141414;border-radius:14px;width:min(620px,100%);overflow:hidden;box-shadow:0 30px 80px -20px #000000e6}.palette input{border:0;border-bottom:1px solid var(--line);background:0 0;outline:none;width:100%;height:54px;padding:0 18px;font-size:15px}.palette ul{max-height:52vh;margin:0;padding:6px;list-style:none;overflow-y:auto}.palette-group{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);padding:10px 10px 4px}.palette li button{text-align:left;width:100%;color:var(--text-2);border-radius:8px;align-items:center;gap:10px;padding:9px 10px;display:flex}.palette li button span:first-of-type{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.palette li button.is-active{color:var(--text);background:#202020}.palette-empty{text-align:center;color:var(--text-3);padding:20px}.menu{position:relative}.menu-pop{z-index:40;border:1px solid var(--line-2);background:#161616;border-radius:10px;min-width:210px;padding:5px;position:absolute;top:calc(100% + 6px);box-shadow:0 16px 40px -10px #000c}.menu-right{right:0}.menu-left{left:0}.menu-pop button{width:100%;color:var(--text-2);text-align:left;border-radius:7px;align-items:center;gap:9px;padding:8px 10px;display:flex}.menu-pop button:hover{color:var(--text);background:#222}.menu-label{font:500 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);padding:8px 10px 4px}.toast{z-index:200;border:1px solid var(--line-2);color:var(--text);background:#1c1c1c;border-radius:10px;padding:10px 16px;font-size:13px;animation:.18s ease-out rise;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px -10px #000c}@keyframes rise{0%{opacity:0;transform:translate(-50%,8px)}}.palette-card{text-align:left;background:var(--panel);border:1px solid var(--line);cursor:grab;border-radius:12px;flex-shrink:0;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:12px 14px;transition:border-color .15s;display:flex}.palette-card:hover{border-color:#3a3a3a}.palette-card:active{cursor:grabbing}.palette-card>span:last-child{flex-direction:column;gap:2px;display:flex}.palette-card b{font-size:14px;font-weight:500}.palette-card .muted{font-size:12.5px}.palette-card-icon{width:34px;height:34px;color:var(--text-2);background:#242424;border-radius:9px;place-items:center;display:grid}.is-capturing .tnode-add,.is-capturing .tnode-issue{display:none}.is-capturing .tnode{border-radius:9px}.is-capturing .trow:last-of-type{border-bottom:0}.share-btn{align-items:center;gap:6px;height:30px;margin-left:4px;padding:0 12px;font-size:13px;display:inline-flex}.share-modal{width:min(920px,100%)}.share-preview{border:1px solid var(--line);background:#0e0e0e;border-radius:12px;place-items:center;min-height:320px;max-height:56vh;padding:14px;display:grid;overflow:auto}.share-preview img{border-radius:8px;max-width:100%;max-height:calc(56vh - 30px);display:block;box-shadow:0 20px 50px -20px #000000e6}.share-loading{align-items:center;gap:8px;display:inline-flex}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.share-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.share-themes{gap:8px;display:flex}.share-theme{border:1px solid var(--line-2);height:34px;color:var(--text-2);border-radius:9px;align-items:center;gap:8px;padding:0 12px 0 6px;display:inline-flex}.share-theme span{border-radius:6px;width:22px;height:22px;box-shadow:inset 0 0 0 1px #ffffff1f}.share-theme.is-active{border-color:var(--accent);color:var(--text)}.share-check{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;display:inline-flex}.share-check input{accent-color:var(--accent)}.share-actions{gap:6px;display:flex}.share-actions .primary-btn{align-items:center;gap:7px;display:inline-flex}.guide{z-index:300;animation:.15s fade;position:fixed;inset:0}.guide-hole{pointer-events:none;border-radius:12px;transition:left .25s,top .25s,width .25s,height .25s;position:fixed;box-shadow:0 0 0 9999px #0000008c,0 0 0 1.5px #f5c451b3}.guide-tip{background:#171717;border:1px solid #333;border-radius:14px;padding:16px 16px 14px;transition:left .25s,top .25s;position:fixed;box-shadow:0 24px 60px -18px #000000e6}.guide-tip h4{font:600 15px var(--sans);margin:4px 0 6px}.guide-tip p{color:var(--text-2);margin:0;font-size:13.5px;line-height:1.55}.guide-count{font:500 11px var(--mono);color:var(--accent);letter-spacing:.08em}.guide-close{width:24px;height:24px;color:var(--text-3);border-radius:6px;place-items:center;display:grid;position:absolute;top:10px;right:10px}.guide-close:hover{color:var(--text);background:#262626}.guide-foot{justify-content:flex-end;gap:6px;margin-top:14px;display:flex}.guide-next{height:32px;padding:0 16px;font-size:13px}@media (prefers-reduced-motion:reduce){.guide-hole,.guide-tip{transition:none}}@media (width<=1200px){.hide-sm,.crumb-dialect{display:none}.app.right-open,.app.left-open.right-open{grid-template-columns:0 1fr 360px}.side-right>*{width:360px}.app.left-open.right-open .side-left>*{opacity:0;pointer-events:none}.legend{display:none}}@media (width<=760px){.app{padding:0}.app,.app.left-open,.app.right-open,.app.left-open.right-open{grid-template-columns:0 1fr 0}.stage{border:0;border-radius:0}.side-panel{z-index:50;visibility:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),visibility 0s linear .28s;position:fixed;top:0;bottom:0;overflow:visible}.side-panel.is-open{visibility:visible;transition-delay:0s;transform:none}.side-left{left:0;transform:translate(-100%)}.side-right{right:0;transform:translate(100%)}.side-panel>*,.side-panel.is-open>*{opacity:1;transform:none}.sidebar,.inspector{background:var(--bg);padding:16px;box-shadow:0 0 60px #000c}.side-left>.sidebar{width:min(280px,85vw)}.side-right>.inspector,.side-right>*{width:min(400px,92vw)}.crumb-root,.crumb-chev,.crumb-dialect{flex-shrink:0;display:none}.toolbar{bottom:12px;left:12px;right:12px;overflow-x:auto}.tb-text{padding:0 8px}}
