@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Space+Grotesk:wght@500;600;700&display=swap";.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-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--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;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-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.dragging{cursor:grabbing}.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));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.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__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.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%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{color:#17213e;font-synthesis:none;text-rendering:optimizelegibility;background:#eef1f8;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:#eef1f8;min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #7868ff}.topbar,.app-shell,.footer,.legal-shell{width:min(1440px,100% - 56px);margin:0 auto}.topbar{align-items:center;gap:24px;height:76px;display:flex}.brand{color:#1a2342;letter-spacing:-1.5px;background:0 0;border:0;align-items:baseline;gap:2px;padding:0;font-family:Space Grotesk,sans-serif;font-size:22px;display:inline-flex}.brand span{color:#fff;background:#635bda;border-radius:8px 8px 3px;place-items:center;width:26px;height:26px;margin-right:8px;display:grid;transform:rotate(-5deg)}.brand span svg{transform:rotate(5deg)}.brand i{color:#6258df;font-style:normal;font-weight:700}.brand em{letter-spacing:.7px;color:#5f6c86;margin-left:4px;font-size:10px;font-style:normal}.local-badge{color:#197a4c;background:#e1f6eb;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:7px 10px;font-size:10px;font-weight:800;display:flex}.topbar nav{gap:17px;display:flex}.topbar nav button,.footer-links button,.back-link{color:#61708c;background:0 0;border:0;padding:5px;font-size:12px;font-weight:750}.topbar nav button:hover,.footer-links button:hover{color:#635bda}.menu-trigger{color:#283453;background:0 0;border:0;display:none}.hero-bar{justify-content:space-between;align-items:flex-end;gap:26px;padding:25px 0 28px;display:flex}.eyebrow{color:#6558df;letter-spacing:1.25px;align-items:center;gap:5px;font-size:10px;font-weight:850;display:inline-flex}.hero-bar h1{letter-spacing:-3.7px;margin:12px 0;font-family:Space Grotesk,sans-serif;font-size:clamp(38px,4.7vw,66px);line-height:.96}.hero-bar h1 i{color:#6558df;font-family:Georgia,serif;font-weight:400}.hero-bar p{color:#65718a;max-width:640px;margin:0;font-size:14px;line-height:1.65}.hero-actions{flex:none;gap:8px;display:flex}.hero-actions button{color:#4f5c77;background:#fff;border:1px solid #d1d8e8;border-radius:8px;align-items:center;gap:6px;padding:9px 11px;font-size:11px;font-weight:800;display:flex}.hero-actions button:first-child{color:#fff;background:#6558df;border-color:#6558df}.error-banner,.performance-note{color:#a34839;background:#fff0ec;border:1px solid #f0b8a8;border-radius:10px;align-items:center;gap:8px;margin-bottom:14px;padding:12px 14px;font-size:12px;display:flex}.error-banner svg,.performance-note svg{flex:none}.error-banner button{color:inherit;background:0 0;border:0;margin-left:auto}.performance-note{color:#875b13;background:#fff9e9;border-color:#f0d295}.toast,.copy-toast{z-index:20;color:#fff;background:#193058;border-radius:9px;align-items:center;gap:6px;padding:10px 12px;font-size:11px;font-weight:750;display:flex;position:fixed;top:20px;right:28px;box-shadow:0 12px 28px #13234033}.copy-toast{background:#1b8658;top:auto;bottom:24px}.workbench{background:#fff;border:1px solid #d2daea;border-radius:16px;grid-template-columns:minmax(280px,31%) minmax(420px,1fr) minmax(240px,22%);min-height:670px;display:grid;overflow:hidden;box-shadow:0 18px 45px #212d551a}.editor-pane,.generator-pane{background:#fff}.editor-pane{border-right:1px solid #dde3ef;flex-direction:column;display:flex}.pane-head{border-bottom:1px solid #e3e7ef;justify-content:space-between;align-items:center;min-height:72px;padding:17px 18px;display:flex}.pane-head span{color:#6a5fe3;letter-spacing:1.05px;font-size:9px;font-weight:850}.pane-head h2{color:#1b2745;letter-spacing:-.8px;margin:4px 0 0;font-family:Space Grotesk,sans-serif;font-size:18px}.validation{border-radius:6px;align-items:center;gap:4px;padding:6px 8px;font-size:9px;font-weight:850;display:flex}.validation.valid{color:#197a4b;background:#e8f8ef}.validation.invalid{color:#b4493e;background:#ffede9}.editor-wrap{background:#1e1e2e;flex:1;min-height:500px}.editor-foot{color:#abb4cc;background:#25263c;justify-content:space-between;align-items:center;height:42px;padding:0 14px;font-family:DM Mono,monospace;font-size:9px;display:flex}.editor-foot span{align-items:center;gap:5px;display:flex}.graph-pane{background:#f7f8fc;flex-direction:column;min-width:0;display:flex;position:relative}.graph-head{border-bottom:0}.node-count{background:#e9e8ff;border-radius:6px;color:#6155d9!important;letter-spacing:0!important;padding:6px 8px!important;font-size:10px!important}.graph-search{z-index:5;color:#637089;background:#fffffff0;border:1px solid #d9dfef;border-radius:9px;align-items:center;gap:8px;width:min(360px,70%);padding:9px 10px;display:flex;position:absolute;top:88px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #2431531a}.graph-search input{color:#26324d;background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:11px}.graph-search kbd{color:#8791a4;background:#edf0f6;border-radius:4px;padding:3px 5px;font-size:9px}.graph-canvas{flex:1;min-height:560px}.graph-hint{color:#768399;background:#fff;border-top:1px solid #e2e6f0;align-items:center;gap:5px;padding:10px 14px;font-size:10px;display:flex}.json-node{text-align:left;color:#26314b;background:#fff;border:1px solid #dfe4f0;border-left:3px solid #8996b7;border-radius:8px;align-items:center;gap:8px;width:190px;min-height:55px;padding:8px;display:flex;box-shadow:0 5px 12px #27355514}.json-node.root{background:#f0f4ff;border-left-color:#4c73ff}.json-node.object{border-left-color:#f3b34d}.json-node.array{background:#faf7ff;border-left-color:#9c70e8}.json-node.string{border-left-color:#22ae79}.json-node.number{border-left-color:#f38a4f}.json-node.boolean{border-left-color:#e86ca0}.json-node.null{border-left-color:#e15858}.json-node.matched{border-color:#6d5efc;box-shadow:0 0 0 3px #6d5efc29,0 6px 14px #2735551a}.node-icon{color:#62718f;background:#eef1f7;border-radius:6px;flex:none;place-items:center;width:23px;height:23px;display:grid}.array .node-icon{color:#8357d6;background:#eee5ff}.object .node-icon,.root .node-icon{color:#bf801c;background:#fff0d3}.node-copy{gap:2px;min-width:0;display:grid}.node-copy b,.node-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.node-copy b{font-size:10px}.node-copy small{color:#68758f;font-family:DM Mono,monospace;font-size:8px}.node-toggle{color:#7469e8;margin-left:auto;font-size:17px}.generator-pane{border-left:1px solid #dde3ef}.generator-pane .pane-head>svg{color:#6960df}.select-label{color:#77849a;gap:6px;padding:17px 18px 0;font-size:10px;font-weight:800;display:grid;position:relative}.select-label select{appearance:none;color:#33415e;background:#f8f9fc;border:1px solid #d7ddea;border-radius:7px;outline:0;width:100%;padding:9px 29px 9px 10px;font-size:11px}.select-label svg{color:#6f7e98;pointer-events:none;position:absolute;bottom:10px;right:29px}.code-box{background:#181c32;border:1px solid #252b47;border-radius:8px;height:420px;margin:14px 18px;overflow:auto}.code-box pre{color:#c7d4ff;white-space:pre-wrap;margin:0;padding:13px;font-family:DM Mono,monospace;font-size:10px;line-height:1.65}.copy-code{color:#fff;background:#6558df;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;width:calc(100% - 36px);margin:0 18px;padding:10px;font-size:11px;font-weight:850;display:flex}.generator-note{color:#65748a;gap:7px;margin:15px 18px 0;font-size:10px;line-height:1.55;display:flex}.generator-note svg{color:#2b9f70;flex:none}.generator-note p{margin:0}.footer{grid-template-columns:1fr 1fr auto;align-items:start;gap:25px;padding:28px 0;display:grid}.footer .brand{font-size:17px}.footer .brand span{width:22px;height:22px}.footer p{color:#738199;margin:9px 0 0;font-size:11px}.footer-links{flex-wrap:wrap;gap:10px 15px;display:flex}.footer>p{text-align:right}.footer b{color:#45536e}.legal-shell{max-width:850px;padding:52px 0 90px}.back-link{align-items:center;gap:5px;margin-bottom:55px;display:inline-flex}.legal-shell h1{color:#1a2545;letter-spacing:-3.7px;max-width:700px;margin:14px 0;font-family:Space Grotesk,sans-serif;font-size:clamp(43px,6vw,71px);line-height:.97}.legal-intro{color:#627089;max-width:720px;font-size:17px;line-height:1.7}.legal-rule{background:#dbe1ec;height:1px;margin-top:45px}.legal-shell section{border-bottom:1px solid #e1e6ef;grid-template-columns:68px 1fr;padding:29px 0;display:grid}.legal-shell section>span{color:#6659dc;font-size:11px;font-weight:850}.legal-shell h2{color:#243151;letter-spacing:-1px;margin:0 0 9px;font-family:Space Grotesk,sans-serif;font-size:22px}.legal-shell section p{color:#627189;margin:0;line-height:1.72}.legal-note{color:#566b7d;background:#e9f7ef;border-radius:10px;gap:10px;margin-top:35px;padding:17px;font-size:12px;line-height:1.65;display:flex}.legal-note svg{color:#249a67;flex:none;margin-top:2px}.legal-note p{margin:0}@media (width<=1160px){.topbar,.app-shell,.footer,.legal-shell{width:min(100% - 36px,1000px)}.workbench{grid-template-columns:minmax(260px,36%) minmax(0,1fr)}.generator-pane{border-top:1px solid #dce3ef;border-left:0;grid-column:1/-1;grid-template-columns:220px 1fr;align-items:start;display:grid}.generator-pane .pane-head{border-bottom:0;border-right:1px solid #e1e7f0;grid-row:span 2}.generator-pane .select-label{padding-top:17px}.code-box{height:180px}.copy-code{margin-top:0}.generator-note{display:none}}@media (width<=760px){.topbar,.app-shell,.footer,.legal-shell{width:min(100% - 30px,640px)}.topbar{height:65px}.local-badge,.topbar nav{display:none}.topbar nav.open{z-index:30;background:#fff;border-radius:10px;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:57px;left:15px;right:15px;box-shadow:0 12px 28px #1f2c5326}.topbar nav.open button{text-align:left}.menu-trigger{place-items:center;margin-left:auto;display:grid}.hero-bar{flex-direction:column;align-items:flex-start;padding:28px 0 22px}.hero-bar h1{font-size:47px}.hero-actions{width:100%}.hero-actions button{flex:1;justify-content:center}.workbench{display:block;overflow:visible}.editor-pane,.graph-pane,.generator-pane{border:1px solid #dce3ef;border-radius:13px;margin-bottom:13px;overflow:hidden}.editor-pane{min-height:490px}.editor-wrap{min-height:380px}.graph-pane{min-height:520px}.graph-canvas{min-height:450px}.generator-pane{display:block}.generator-pane .pane-head{border-bottom:1px solid #e1e7f0;border-right:0}.code-box{height:260px}.footer{grid-template-columns:1fr}.footer>p{text-align:left}.legal-shell{padding:32px 0 70px}.legal-shell h1{font-size:47px}.legal-shell section{grid-template-columns:42px 1fr}.legal-shell h2{font-size:20px}.toast,.copy-toast{left:15px;right:15px}.graph-search{width:80%;top:84px}}.file-source{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:68%;overflow:hidden}.file-source b{color:#d7def4;font-weight:600}.hero-actions .import-json{color:#fff;background:#4f47c4;border-color:#4f47c4}.tree-graph{width:100%;height:100%;position:relative}.performance-overlay{z-index:5;color:#5e5a88;background:#fffffff0;border:1px solid #d9d3ff;border-radius:8px;align-items:center;gap:7px;max-width:calc(100% - 28px);padding:8px 9px;font-size:9px;display:flex;position:absolute;bottom:14px;right:14px;box-shadow:0 8px 20px #2e2b6f21}.performance-overlay>svg{color:#6b5fe0;flex:none}.performance-overlay b{color:#3f397d}.performance-overlay button{color:#fff;background:#6358dc;border:0;border-radius:5px;align-items:center;gap:3px;padding:5px 6px;font-size:9px;font-weight:800;display:flex}.performance-overlay button:active{transform:scale(.97)}.mobile-section-nav{display:none}@media (width<=760px){html{scroll-behavior:smooth}.mobile-section-nav{z-index:12;background:#fffffff5;border:1px solid #d9dfed;border-radius:10px;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 12px;padding:7px;display:grid;position:sticky;top:0;box-shadow:0 8px 18px #2631561a}.mobile-section-nav a{color:#574bc9;background:#f0efff;border-radius:6px;justify-content:center;padding:8px 5px;font-size:10px;font-weight:850;text-decoration:none;display:flex}.mobile-section-nav a:active{transform:scale(.97)}.editor-pane,.graph-pane,.generator-pane{scroll-margin-top:14px}.editor-pane{height:min(72vh,560px);min-height:490px}.editor-wrap{min-height:0}.graph-pane{height:min(76vh,620px);min-height:520px}.graph-canvas{flex:auto;height:auto;min-height:0}.graph-canvas>.tree-graph{height:100%;min-height:0}.generator-pane{height:auto;min-height:0}.performance-overlay{justify-content:space-between;gap:5px;bottom:10px;left:10px;right:10px}.performance-overlay span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.performance-overlay button{flex:none}}
