.react-flow{direction:ltr;--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: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--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: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--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: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--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 rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.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: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--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: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--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: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--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 rgba(0, 0, 0, .08);--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{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.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{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.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;-moz-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:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.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:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;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%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;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{position:absolute;z-index:5;margin:15px}.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{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.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{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;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))}.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{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.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-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.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))}.rf-canvas{width:100%;height:100%;position:relative}.rf-canvas--light{--rf-background: #f1f3f5;--rf-text: #1e293b;--rf-border: rgba(148, 163, 184, .3);--rf-control-bg: #ffffff;--rf-control-border: rgba(148, 163, 184, .4);--rf-control-text: #64748b;--rf-control-hover: rgba(59, 130, 246, .1);--rf-control-shadow: 0 2px 8px rgba(15, 23, 42, .08);--rf-selection: rgba(59, 130, 246, .1);--rf-selection-border: rgba(59, 130, 246, .4);--rf-edge-selected: rgba(59, 130, 246, .8)}.rf-canvas--dark{--rf-background: #111827;--rf-text: #e9edf4;--rf-border: rgba(148, 163, 184, .18);--rf-control-bg: #1e2535;--rf-control-border: rgba(148, 163, 184, .22);--rf-control-text: #94a3b8;--rf-control-hover: rgba(96, 165, 250, .15);--rf-control-shadow: 0 2px 8px rgba(0, 0, 0, .3);--rf-selection: rgba(96, 165, 250, .15);--rf-selection-border: rgba(96, 165, 250, .5);--rf-edge-selected: rgba(96, 165, 250, .8)}.rf-canvas .react-flow{background:var(--rf-background)}.rf-canvas .react-flow__node{cursor:pointer}.rf-canvas .react-flow__node.selected{outline:none}.rf-canvas .react-flow__handle{width:10px;height:10px;background:var(--rf-control-bg);border:2px solid var(--accent, #3b82f6);border-radius:50%;opacity:0;transition:opacity .15s ease,transform .15s ease}.rf-canvas .react-flow__node:hover .react-flow__handle,.rf-canvas .react-flow__node.selected .react-flow__handle{opacity:1}.rf-canvas .react-flow__handle:hover{transform:scale(1.2)}.rf-canvas .react-flow__handle.connectionindicator{opacity:1}.rf-canvas .react-flow__edge{cursor:pointer}.rf-canvas .react-flow__edge-path{stroke-linecap:round;stroke:#94a3b8;stroke-width:1.5}.rf-canvas .react-flow__edge.selected .react-flow__edge-path{stroke:var(--rf-edge-selected);stroke-width:2}.rf-canvas .react-flow__edge:hover .react-flow__edge-path{stroke:var(--rf-edge-selected)}.rf-canvas .react-flow__edge-textbg{fill:var(--rf-control-bg)}.rf-canvas .react-flow__edge-text{fill:var(--rf-control-text);font-size:11px;font-weight:500}.rf-canvas .react-flow__controls{display:none}.rf-canvas .react-flow__minimap{background:var(--rf-control-bg);border:1px solid var(--rf-control-border);border-radius:12px;box-shadow:var(--rf-control-shadow);overflow:hidden}.rf-canvas .react-flow__minimap-mask{fill:var(--rf-background);fill-opacity:.9}.rf-canvas .react-flow__background{opacity:.5}.rf-canvas .react-flow__selection{background:var(--rf-selection);border:1px solid var(--rf-selection-border);border-radius:4px}.rf-canvas .react-flow__resize-control{opacity:0;transition:opacity .15s ease}.rf-canvas .react-flow__node.selected .react-flow__resize-control{opacity:1}.rf-canvas{--accent-cyan: rgba(34, 211, 238, .8);--accent-teal: rgba(45, 212, 191, .8);--accent-amber: rgba(251, 191, 36, .8);--accent-gray: rgba(156, 163, 175, .8);--accent-indigo: rgba(129, 140, 248, .8);--accent-orange: rgba(251, 146, 60, .8);--accent-blue: rgba(59, 130, 246, .8);--accent-purple: rgba(168, 85, 247, .8);--accent-green: rgba(34, 197, 94, .8);--accent-neutral: rgba(163, 163, 163, .8);--node-service: #3b82f6;--node-database: #16a34a;--node-external: #dc2626;--node-interface: #7c3aed;--node-decision: #d97706;--node-class: #4f46e5;--node-port: #0d9488;--node-method: #7c3aed;--node-attribute: #0891b2}.rf-canvas .react-flow__attribution{display:none}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAQAABAAAAAACEwAAAOmAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEgAZBEICoMkgmcLFgABNgIkAyYEIAWFNAdiDAcb3wYgngU5GW9qFpxcIlPzNPVjx7JSP3iet+s9971Zzn7Q8yEHG1C91aUi2aFP6j1c07wqko0ssGwl8RDyRPehgRL1M2Z+akJOifHwcbX3d1ZvWowiysMskA0v3NL0wohiuX//l5EDn7gc/6xs+9oikSbyg6LCvegvncOw87lpLFr4wF0a4AIKCLJtSQTXJ0FUc+nW+HePCPAAAEUITQhwS1VELdq2lyi7mSBClGUAfAiQcQoLURwIEAbFSTgpoQyQKZ5QAIQmFC1RkEIyQbp0pOgGEpLm3PgkW7FBndVwEN1qI7KmHk2wjgMoN/MuNwf0QzU7Z/j7kmFrZXIicgFQg/oLEmlS/KkQSoFU6jDNFoqGGVviKyYilIFgeICEGqgfEltBPQFQQINQmoBQhgEQgQJp4CdRoy9ui0o85+N8br7clI0pPwej4FsISZ8AAG4AocADpkJsAmKJAgaVDFMxCCmFTiMiwqAEjpMAFgtkLp3maM5wD/V4R2VGmtOOnpVldz6417+z3Hs/fjQ3vH/P8VTm8PUfPsiyszHmoVMsvf3e3PCx2Nz17t3UTWLjVinvrCiLufT6svGmhrWE6j1tzjbHRH9FSDV/huK83vrzvQ3fI6ndj0Zy4vGOxfHp5Y1xeSVeq2vI33SA3qppmjKsHF6ZEGh7/N5KGlGRkPj/ZcXKUFbp4I6/swFaqzO4Ma0xdWffCXO6Pk1bcMKYilvTUptzO3JeZGW9yGnPTWl2rULNEeDgdJnXYLs0jrQATKiT/q1eKoDq8x6fmt/6kqv5H9f6D+D76dxIgF8Hd4wmlf/C2bAnARD8c2b1CGD+x+Y/y3RXsZSaYiOmkDkC4A/SVw6msSjArYwhliYAAAAUAab1aFK6gHsy1ZSJ5GiRKf5RJtNa/MsMRW7JbKqsltnlGy71VyZZRzQe4YCJuAlcAgYBASK0IhA+h+aGwWGxiY5BNcKNFPyXRTSMIyJwXYs4fF3zMJaefnNbRz6JWyM8BCMQF4gQ1zGIwSL5COaageEcIIQVyWcpV6jaNCYBAB/3oC9fpXzFLGNS1cPDhIcenLt9c3odbByMS851lFpG5gSIfGIfNo4VsYQ1kdcJGCW/zusPwACXQSNgjSTBBhgOyzwy+zRO0LeRVF2TgEDPYsADhE8RQ4/8DQob9KVubTdI9VgUOrQYYhO7OOyNE6/83y22ZK7Ttxot1TzIenBoNZW4JkySwrgAB+bE17sUW2WXxLfqlLEJAA==) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-vietnamese-400-normal-Cg2kxhWu.woff2) format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-400-normal-B8TCSmUq.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-ext-400-normal-D127hM_v.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-400-normal-2ppkqaOR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAQwABAAAAAACHQAAAPWAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMkgmULFgABNgIkAyYEIAWFXgdiDAcbAwdRlE3OAiA/C2NnWmqDevE1lV86rytbx0YiXN7GJix16cheg+c///7dZ+Z+SEzSUhXoEkLHLqv//fu/tfY3nUm+g2lnlqwhYmnWZ232zf5BQiV0qzxKoR5UjVQLFR7+uVfv+5lDN4WzaUwPWEASTFvwak+Pl2rLqgUqWr/l7mqeJpR5FlJkbclrawv4WyBZaRDdxDX5/xelhdVKE4m2zbooInWEO19jURQVPvBuOvDkAcHeliEDXwoiZxo1/tstIsAWAChCaEKAtVDJ1GlxfR+yN4oBZBkAkwkC5GqIAOJAgDAoloQlxZUBIvkTCoDQhKLN8VKYRQwXjizagXkAs434JyuYQT2rCECN1YtcoBrzICIWQLla63ltC57YDcVwpmCYNY1OyAtAdew3EEiTvR8LrhQIpZ4sGxUNU3fqKTYIVwZ6wxb4twhACrICgAIauNIEuDI0Ahw50sBOoCL3fkMFiomxx/Jz8zHHWET500Ih1xCSmuAAwBqAK7AF44Bd4MsRYFApIMBjEJKlWhoePhvhmMSB1Ro5D2fWZibFkofp/bPMacp6vCkbxnNyp3atz66P1K75BuuPeXZe/3xXNlQfm0uF9U+mqV1rYHNKX80eoYGO1L5bZLBZ37LabkggZnym3HIxRqivANhY/1+NlKncG/kn6rGEPYd8ufSeriuFFF+iE7bqaWxa2cwaeQv2IOd05Pu/v386CWdDv/T35UJC4mam3WgqVPQregeerWBu3ebN2oUbvNYNa6rhi42eyuXw8IeI7mbYQmSZbagRBFiwdM8fzreS7vMYYAP1qq91voMA1Q4fa+5fH3DIfZZa/wf49R3rCfj7vreXVLqyajqYUwAEL5tOveUx/znVL7LYKlnPKrmnolmug3QdfFMwL6AAa+kMvjQBAACgCLB3Q4ZkrYDnMeuxRGJMWIp9xLO0Yn/tRhXLTLY7LHOxtrLspWtkOQoWz3RiK1gvGpDu7RYZwAZpLaN/Ac04HxVYgSgPozliYCw2tMGgYyTfNo8UIapRLkpAFNGCCkRsCIUiIwkSrKIRmBCKtK3CeNoWCJaOBovWO1eiGjtbu6AdMojvZ7gAkSxeogxJckwwIY7zRM50xcsSL0Wivtr+a7VlzZbxdGA3ZJE8avQ8Osn60jlc6Io43TCRLFEbA7XGAKPhvtpGjuUcBq3PuCISsnGiorvImzBPYPxsJFXbCM7XsRrn4tCVkKHD7hpFxJrGULWyNQj1JhQ6tBhiJuZiYV6k/hXAuNiagHXH+8Rkbte5sz8+pJaoJtH4Rg5JTJoeMxsvf4RbbhkZAA==) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-vietnamese-500-normal-DiU8zqi-.woff2) format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-500-normal-CvE5C8T-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-ext-500-normal-9VZagAe1.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-500-normal-CqEEAICU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAQcABAAAAAACIgAAAPAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMogmULFgABNgIkAyYEIAWFbgdiDAcbEwcgnge2zWYrRGrW2DqMIvVrh6cG/6B/9ecmGb7Z3Q/IFcgSYAe7BJC/X2tvBdPop7KYypr+m92/iE0nEhIeMkO6SiJfo3oCmXALgMKT3MtvBPKJY8aL5MhAnUgFTTtot/MqGvHOs2lU9Q389/gPWGD8OnXqgVcTwoAOlml+fY8ISAAABiEsQkCcfJqR9RrMrkL5sN7YgnIcgPcI0ND+tgWFgADhMEQRUQzp0EAhDQgMAMIiDJZGIQw0QxcQglR7gIaTAJxem07kgZk/RAFNG1EPIqmPikUAw83adWYBsiTlOuSSfR4QSqV+uYBYAWCym1dALhRa/LaQDgnkQ44ZqGCCgsHPGkQJIh1aQkoANhOAoqYTABjAAulQCCZ961aAVCpRQBK5DLnlpEyuQ94T/Fr/y+9P+P6+tpe2EKiCkPekgIyzOB0gAQwALACyIQkcxisYPoeQo0Vdxox0UqqeqmCkgYx4y2BooMbXE6tdS7YDeeteTdtzKT7/TrH4xvv3gwV37zJ1VaZO8+/d07S1WYNNu5i6+2Kw4H7JYN2dOwOKxHpeyepQljdHsPpoGnc8Z7AqpeqGBtHxiIV+RCkJvVwuTza50nPJys9dUz5nzMrN/fWWXWob/8YVjM3kb7y63KydGR+YGNbat1O1Nnf72eOGw1t7d6vW5M7MrDmEiZ9XoOg04PBxEtup5mrNDdy0qDUPziYfVw7bRInVXCoWmYxZcvMFXJlxd3WrOJAFIIAIUfZw5V4co5j3UgAEYLbbT8PLfUCASVM8W/aXnim937L2JcDT/cUyAcCLrSu6UeK/TuuPMAYAwdtmNYcI8P8ZNcFsjcfMVKpdBkNmL3wDzEaKAUbCCCBOBTTZUBRazyAgmT1Y5GLAGU102aJcGrENyarCtjTwX+lo7BBVvLLDlHLNTqaCVXYqPs2W1NCdIrIkyFCvaAoQQOIa5z+BNhATyzIFYxlUvA0ilUyBrRCZVMMQg2CRweXwmMbSsWwYy2MFy+JQYFiGo1tamoNnU2VgjhSHypCC2GRpC8bNls4Wo9ROLoW+TmRvokIsHs1SGB2a9JBJMET+vGMHI6VLSgvG3tG8qxbMWNCzBMByXOYyUOzG1PYUSR+BZJyytzvh0YwxNo/VIEAsuvgmi2yIRsTDPIa4MAViU2pHHotDpuKvcXFSeIgpDUN0CHYqQ5RGIIpElfr+RKwdB/J5k8HKyimksCLh2n1+E6BbgTtCZZihUmTdNt4Hm5nhckW9+7pY/GgOVVCd79LCtL/Iz9rnFgEAAAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-vietnamese-600-normal-Y4VTTRme.woff2) format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-600-normal-5YsyKbU1.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-ext-600-normal-DQgPU_Cg.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-600-normal-B0WRRYJ1.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2) format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;font-family:Plus Jakarta Sans,Segoe UI,sans-serif;line-height:1.4;font-weight:400;--bg: #f1f3f5;--bg-pattern: #dde1e7;--bg-glow-a: rgba(0, 0, 0, 0);--bg-glow-b: rgba(0, 0, 0, 0);--surface: #ffffff;--surface-strong: #ffffff;--surface-glass: rgba(255, 255, 255, .92);--ink: #1e293b;--ink-soft: #334155;--muted: #64748b;--stroke: rgba(148, 163, 184, .5);--stroke-light: rgba(148, 163, 184, .3);--accent: #3b82f6;--accent-soft: rgba(59, 130, 246, .12);--danger: #dc2626;--warning: #d97706;--success: #16a34a;--panel-shadow: 0 .125rem .5rem rgba(15, 23, 42, .08), 0 .0625rem .1875rem rgba(15, 23, 42, .04);--card-shadow: 0 .0625rem .25rem rgba(15, 23, 42, .06);--node-shadow: 0 .125rem .5rem rgba(15, 23, 42, .08), 0 .0625rem .1875rem rgba(15, 23, 42, .04);--focus-glow: 0 0 0 .125rem rgba(59, 130, 246, .3);--node-service: #3b82f6;--node-database: #16a34a;--node-external: #dc2626;--node-interface: #7c3aed;--node-decision: #d97706;--node-class: #4f46e5;--node-port: #0d9488;--node-method: #7c3aed;--node-attribute: #0891b2}:root[data-theme=dark]{color-scheme:dark;--bg: #111827;--bg-pattern: #1a2030;--bg-glow-a: rgba(0, 0, 0, 0);--bg-glow-b: rgba(0, 0, 0, 0);--surface: #1e2535;--surface-strong: #212840;--surface-glass: rgba(30, 37, 53, .92);--ink: #e9edf4;--ink-soft: #e2e8f0;--muted: #94a3b8;--stroke: rgba(148, 163, 184, .25);--stroke-light: rgba(148, 163, 184, .18);--accent: #60a5fa;--accent-soft: rgba(96, 165, 250, .15);--danger: #f87171;--warning: #fbbf24;--success: #4ade80;--panel-shadow: 0 .25rem 1rem rgba(0, 0, 0, .3), 0 .0625rem .25rem rgba(0, 0, 0, .2);--card-shadow: 0 .125rem .5rem rgba(0, 0, 0, .25);--node-shadow: 0 .25rem 1rem rgba(0, 0, 0, .3), 0 .0625rem .25rem rgba(0, 0, 0, .2);--focus-glow: 0 0 0 .125rem rgba(96, 165, 250, .4)}*{box-sizing:border-box}html,body{margin:0}#root{min-height:100dvh;width:100%}body{color:var(--ink);background:var(--bg)}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 55%,transparent) color-mix(in srgb,var(--surface-strong) 80%,transparent)}*::-webkit-scrollbar{width:.625rem;height:.625rem}*::-webkit-scrollbar-track{background:color-mix(in srgb,var(--surface-strong) 70%,transparent);border-radius:62.5rem}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 55%,var(--surface-strong));border-radius:62.5rem;border:.125rem solid color-mix(in srgb,var(--surface-strong) 70%,transparent)}*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 70%,var(--surface-strong))}*::-webkit-scrollbar-button{width:0;height:0;display:none}*::-webkit-scrollbar-button:single-button{width:0;height:0;display:none}*::-webkit-scrollbar-button:increment,*::-webkit-scrollbar-button:decrement,*::-webkit-scrollbar-button:vertical:increment,*::-webkit-scrollbar-button:vertical:decrement,*::-webkit-scrollbar-button:horizontal:increment,*::-webkit-scrollbar-button:horizontal:decrement{width:0;height:0;display:none}*::-webkit-scrollbar-corner{background:transparent}.glass{background:var(--surface-glass);backdrop-filter:blur(.5rem);-webkit-backdrop-filter:blur(.5rem);border:.0625rem solid var(--stroke-light);box-shadow:var(--panel-shadow)}.glass-strong{background:var(--surface-strong);backdrop-filter:blur(.75rem);-webkit-backdrop-filter:blur(.75rem);border:.0625rem solid var(--stroke);box-shadow:var(--panel-shadow)}button,input,select,textarea{font:inherit}button{border:.0625rem solid var(--stroke);border-radius:.625rem;background:var(--surface-strong);color:var(--ink);padding:.5rem .75rem;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}button:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--stroke))}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 .125rem color-mix(in srgb,var(--accent),rgba(255,255,255,.5))}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{border:.0625rem solid var(--stroke);border-radius:.5rem;padding:.5rem;width:100%;color:var(--ink);background:var(--surface-strong)}.list-input{display:grid;gap:.375rem}.list-input__label{font-size:.875rem;color:var(--muted)}.list-input__rows{display:grid;gap:.375rem;max-height:min(13.75rem,40vh);overflow:auto;padding-right:.125rem}.list-input__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.375rem;border-radius:.75rem;border:.0625rem solid color-mix(in srgb,var(--stroke) 70%,transparent);background:color-mix(in srgb,var(--surface-strong) 88%,transparent);box-shadow:inset 0 0 0 .0625rem color-mix(in srgb,var(--stroke) 24%,transparent);transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.list-input__row:focus-within{border-color:color-mix(in srgb,var(--accent) 60%,var(--stroke));box-shadow:0 0 0 .125rem color-mix(in srgb,var(--accent) 30%,transparent)}.list-input__row input{min-width:0;border:none;background:transparent;padding:.375rem .5rem}.list-input__remove{width:1.75rem;height:1.75rem;padding:0;border-radius:62.5rem;display:grid;place-items:center;background:color-mix(in srgb,var(--surface-strong) 72%,transparent);border:.0625rem solid color-mix(in srgb,var(--stroke) 70%,transparent);color:var(--muted)}.list-input__add{justify-self:start;display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:62.5rem;background:transparent;border:.0625rem dashed color-mix(in srgb,var(--stroke) 70%,transparent);color:var(--ink)}label{font-size:.875rem;color:var(--muted)}.error-text{color:var(--danger)}.projects-screen{min-height:100dvh;background:var(--bg);color:var(--ink)}.projects-nav{display:flex;align-items:center;justify-content:space-between;padding:.875rem clamp(1.5rem,4vw,3rem);max-width:72rem;margin:0 auto;border-bottom:1px solid var(--stroke-light)}.projects-nav__logo{font-size:1.25rem;font-weight:700;letter-spacing:.02em;color:var(--ink);text-decoration:none}.projects-nav__actions{display:flex;align-items:center;gap:.75rem}.projects-main{max-width:72rem;margin:0 auto;padding:clamp(1.5rem,3vw,2.5rem) clamp(1.5rem,4vw,3rem);display:grid;gap:1.5rem}.projects-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.projects-toolbar__heading{display:flex;align-items:baseline;gap:.625rem}.projects-toolbar__heading h1{font-size:1.75rem;margin:0;letter-spacing:-.01em}.projects-toolbar__count{font-size:.875rem;color:var(--muted);font-weight:500}.projects-toolbar__search{flex:0 1 18rem}.projects-toolbar__search input{width:100%;padding:.5rem .875rem;border-radius:.5rem;border:1px solid var(--stroke);background:var(--surface);color:var(--ink);font-size:.875rem}.projects-toolbar__search input::placeholder{color:var(--muted)}.projects-toolbar__search input:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-glow)}.landing{min-height:100dvh;background:radial-gradient(ellipse 80% 50% at 50% -10%,color-mix(in srgb,var(--accent),transparent 80%),transparent),var(--bg);color:var(--ink)}.landing__nav{display:flex;align-items:center;justify-content:space-between;padding:1rem clamp(1.5rem,4vw,3rem);max-width:72rem;margin:0 auto}.landing__logo{font-size:1.25rem;font-weight:700;letter-spacing:.02em;color:var(--ink)}.landing__hero{text-align:center;padding:clamp(3rem,8vw,6rem) clamp(1.5rem,4vw,3rem) clamp(2rem,4vw,3rem);max-width:52rem;margin:0 auto}.landing__eyebrow{letter-spacing:.25em;font-size:.72rem;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 1rem}.landing__title{font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.15;margin:0 0 1.25rem;letter-spacing:-.01em}.landing__subtitle{margin:0 auto 2rem;max-width:48ch;font-size:clamp(1rem,1.2vw,1.125rem);color:var(--muted);line-height:1.6}.landing__hero-actions{display:flex;justify-content:center;gap:.75rem}.landing__cta{font-size:1rem;padding:.875rem 2rem}.landing__workflow{max-width:60rem;margin:0 auto;padding:clamp(2rem,4vw,4rem) clamp(1.5rem,4vw,3rem)}.landing__section-title{text-align:center;font-size:clamp(1.5rem,2.5vw,2rem);margin:0 0 2.5rem;letter-spacing:-.01em}.landing__flow-steps{display:flex;align-items:flex-start;justify-content:center;gap:1rem}.landing__flow-step{flex:1;max-width:16rem;text-align:center}.landing__flow-icon{width:3.5rem;height:3.5rem;margin:0 auto 1rem;border-radius:.875rem;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.landing__flow-step h3{font-size:1.125rem;margin:0 0 .5rem}.landing__flow-step p{font-size:.875rem;color:var(--muted);line-height:1.55;margin:0}.landing__flow-arrow{margin-top:1.25rem;color:var(--stroke);flex-shrink:0}@media(max-width:40rem){.landing__flow-steps{flex-direction:column;align-items:center}.landing__flow-arrow{transform:rotate(90deg);margin:0}.landing__flow-step{max-width:20rem}}.landing__features{max-width:60rem;margin:0 auto;padding:clamp(2rem,4vw,4rem) clamp(1.5rem,4vw,3rem)}.landing__feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem}.landing__feature-card{border-radius:1rem;padding:1.5rem;background:var(--surface);border:1px solid var(--stroke-light);box-shadow:var(--card-shadow)}.landing__feature-icon{width:2.75rem;height:2.75rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);margin-bottom:1rem}.landing__feature-card h3{font-size:1rem;margin:0 0 .5rem}.landing__feature-card p{font-size:.875rem;color:var(--muted);line-height:1.55;margin:0}.landing__privacy{max-width:44rem;margin:0 auto;padding:clamp(2rem,4vw,3rem) clamp(1.5rem,4vw,3rem);text-align:center}.landing__privacy-text{font-size:1rem;color:var(--muted);line-height:1.6;margin:0}.landing__footer{max-width:60rem;margin:0 auto;padding:2rem clamp(1.5rem,4vw,3rem) 1.5rem;text-align:center;border-top:1px solid var(--stroke-light)}.landing__disclaimer{font-size:.8rem;color:var(--warning);margin:0 0 .375rem;font-weight:500}.landing__copyright{font-size:.75rem;color:var(--muted);margin:0}.btn--primary{border:none;border-radius:62.5rem;padding:.875rem 1.625rem;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent),#0e0f1e 40%));color:#fff;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:center;gap:.375rem;box-shadow:none;transition:transform .15s ease,filter .15s ease}.btn--primary:hover{transform:translateY(-.0625rem);filter:brightness(1.04)}.btn--primary:focus-visible{outline:.125rem solid color-mix(in srgb,var(--accent),rgba(255,255,255,.5));outline-offset:.125rem;box-shadow:none}.projects-gallery__list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem}.projects-gallery__empty{grid-column:1 / -1;border-radius:1rem;border:1px dashed var(--stroke);padding:2.5rem 1.5rem;color:var(--muted);font-size:.95rem;text-align:center;background:var(--surface)}.projects-gallery__import-button{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--stroke);background:var(--surface);color:var(--muted);font-size:.875rem;font-weight:500;cursor:pointer;gap:.375rem;transition:border-color .15s ease,color .15s ease}.projects-gallery__import-button:hover{border-color:var(--accent);color:var(--accent)}.projects-gallery__import-button input{display:none}.project-card{width:100%;border-radius:.875rem;padding:1.25rem;border:1px solid var(--stroke-light);background:var(--surface);display:flex;flex-direction:column;gap:.625rem;text-align:left;color:var(--ink);box-shadow:var(--card-shadow);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;cursor:pointer}.project-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--panel-shadow)}.project-card--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 30%,var(--surface) 70%)}.project-card:focus-visible{outline:none;box-shadow:0 0 0 .125rem color-mix(in srgb,var(--accent),rgba(255,255,255,.3))}.project-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:.875rem}.project-card__title{display:flex;flex-direction:column;gap:.375rem}.project-card__pattern{padding:.25rem .875rem;border-radius:62.5rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;background:color-mix(in srgb,var(--accent-soft) 70%,transparent 30%);color:var(--accent)}.project-card__actions{display:inline-flex;align-items:center;gap:.375rem}.project-card__action{border-radius:62.5rem;width:2rem;height:2rem;padding:0;display:inline-flex;justify-content:center;align-items:center;background:color-mix(in srgb,var(--surface-strong) 88%,transparent);border:.0625rem solid var(--stroke);color:var(--muted);transition:border-color .15s ease,background .15s ease;cursor:pointer}.project-card__action--edit{color:color-mix(in srgb,var(--accent) 85%,#fff);border-color:color-mix(in srgb,var(--accent) 35%,var(--stroke));background:color-mix(in srgb,var(--accent-soft) 70%,transparent 30%)}.project-card__action--edit:hover{border-color:color-mix(in srgb,var(--accent) 70%,var(--stroke));background:color-mix(in srgb,var(--accent-soft) 90%,transparent 10%)}.project-card__action--delete{color:color-mix(in srgb,var(--danger) 88%,#fff);border-color:color-mix(in srgb,var(--danger) 45%,var(--stroke));background:color-mix(in srgb,var(--danger),transparent 82%)}.project-card__action--delete:hover{border-color:color-mix(in srgb,var(--danger) 80%,var(--stroke));background:color-mix(in srgb,var(--danger),transparent 70%)}.project-card__description{margin:0;color:var(--muted);font-size:1rem;line-height:1.5}.project-card__footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.875rem;padding-top:.1875rem}.project-card__meta{display:inline-flex;align-items:center;gap:.375rem;color:var(--muted)}.project-card__meta-icon{width:.75rem;height:.75rem;border-radius:50%;background:var(--accent);display:inline-block}.project-card__meta-date{font-size:.875rem;color:var(--muted)}.projects-error{padding:.875rem 1.25rem;border-radius:1rem;border:.0625rem solid color-mix(in srgb,var(--danger),rgba(0,0,0,.25));background:color-mix(in srgb,var(--danger),rgba(0,0,0,.15));color:#fecdd3;font-size:.875rem}.panel{background:var(--surface);border:.0625rem solid var(--stroke);border-radius:.875rem;padding:.75rem;display:grid;gap:.5rem;box-shadow:var(--panel-shadow)}.app-shell{width:100dvw;height:100dvh;display:grid;grid-template-columns:18.75rem minmax(0,1fr) 21.25rem;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"header header header" "sidebar main inspector";overflow:hidden}.app-shell__header{grid-area:header;border-bottom:.0625rem solid var(--stroke);background:var(--surface);padding:.75rem 1rem;box-shadow:0 .0625rem .1875rem #0000000f;z-index:2}.app-shell__sidebar{grid-area:sidebar;padding:.75rem;border-right:.0625rem solid var(--stroke);background:var(--surface);overflow:auto}.app-shell__main{grid-area:main;position:relative;overflow:hidden;min-width:0;min-height:0}.app-shell__inspector{grid-area:inspector;padding:.75rem;border-left:.0625rem solid var(--stroke);background:var(--surface);overflow:auto}.board-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.board-header h1{margin:0;font-size:1.25rem}.board-header p{margin:.1875rem 0 0;color:var(--muted)}.board-header__actions{display:flex;gap:.625rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.board-header__actions a{color:var(--ink);text-decoration:none;border:.0625rem solid var(--stroke);border-radius:.625rem;padding:.375rem .625rem;background:var(--surface-strong)}.theme-toggle{font-size:.75rem}.theme-toggle__select{width:auto;min-width:6rem}.theme-toggle__status{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.stack{display:grid;gap:.75rem}.board-toolbar{display:grid;gap:.625rem}.board-toolbar__group{display:grid;gap:.5rem}.semantic-picker{display:grid;gap:.625rem}.semantic-picker__section{display:grid;gap:.5rem}.semantic-picker__section h3{margin:0;font-size:.875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.semantic-picker__grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.semantic-picker__card{display:grid;gap:.5rem;justify-items:start;align-content:start;text-align:left;min-height:4.75rem;padding:.625rem;border-radius:.75rem;border:.0625rem solid var(--stroke);background:color-mix(in srgb,var(--surface-strong) 84%,white 16%)}.semantic-picker__card:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--stroke));box-shadow:var(--focus-glow)}.semantic-picker__marker{width:1.875rem;height:1.875rem;border-radius:.625rem;display:grid;place-items:center;color:var(--accent);border:.0625rem solid color-mix(in srgb,var(--accent) 24%,var(--stroke));background:color-mix(in srgb,var(--accent-soft) 60%,transparent)}.semantic-picker__label{font-size:.875rem;line-height:1.2}.semantic-picker__empty{margin:0;font-size:.875rem;color:var(--muted)}.board-stage{position:relative;width:100%;height:100%}.tldraw-host{position:absolute;top:0;right:0;bottom:0;left:0}.tldraw-host .tl-canvas{background:transparent}.node-inspector,.inspector-section{display:grid;gap:.5rem}.inspector-section__toggle{display:flex;align-items:center;justify-content:space-between;gap:.625rem;width:100%;border:.0625rem solid var(--stroke);border-radius:.75rem;padding:.625rem .75rem;background:var(--surface-glass);color:var(--ink);font-size:.875rem;font-weight:600;transition:border-color .15s ease,background .15s ease}.inspector-section__toggle:hover{border-color:var(--accent);background:var(--surface-strong)}.inspector-section__toggle-main{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;text-align:left}.inspector-section__summary{font-size:.75rem;color:var(--muted);font-weight:500;text-transform:none;letter-spacing:normal}.inspector-section__indicator{width:1.75rem;height:1.75rem;border-radius:62.5rem;border:.0625rem solid var(--stroke);display:grid;place-items:center;font-size:1rem;line-height:1}.inspector-section__panel{display:none;gap:.625rem}.inspector-section__panel.is-open{display:grid}.node-inspector h2{margin:0}.node-inspector__type{margin:0;font-size:.875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.node-inspector__parent{margin:0;padding:.5rem .625rem;border-radius:.5rem;border:.0625rem solid var(--stroke);background:color-mix(in srgb,var(--accent-soft) 36%,transparent);font-size:.875rem;color:var(--ink)}.node-appearance{display:grid;gap:.5rem;padding:.625rem;border:.0625rem solid var(--stroke);border-radius:.75rem;background:color-mix(in srgb,var(--surface-strong) 86%,transparent)}.node-appearance-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.75rem;border-radius:.875rem;border:.0625rem solid var(--stroke);background:color-mix(in srgb,var(--surface-strong) 88%,transparent)}.node-appearance-summary__preview{width:2.75rem;height:2.75rem;border-radius:.75rem;border:.0625rem solid var(--stroke);background:color-mix(in srgb,var(--accent-soft) 60%,transparent);display:grid;place-items:center}.node-appearance-summary__preview-icon{width:2rem;height:2rem;display:grid;place-items:center}.node-appearance-summary__details{display:flex;flex-direction:column;gap:.125rem}.node-appearance-summary__title{margin:0;font-size:.875rem;font-weight:600}.node-appearance-summary__provider{margin:0;font-size:.75rem;color:var(--muted)}.node-appearance-summary__button{border:.0625rem solid var(--stroke);border-radius:.625rem;padding:.5rem .875rem;background:transparent;color:var(--ink);font-weight:600;font-size:.875rem;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.node-appearance-summary__button.node-appearance-summary__trigger{padding:0;width:2.5rem;height:2.5rem;border-radius:.75rem;display:grid;place-items:center}.node-appearance-summary__button:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}.node-appearance__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.node-appearance__header h3{margin:0;font-size:1rem}.node-appearance__preview{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--muted)}.node-appearance__preview-icon{width:1.875rem;height:1.875rem;border-radius:.5rem;display:grid;place-items:center;border:.0625rem solid var(--stroke);background:color-mix(in srgb,var(--accent-soft) 60%,transparent);color:var(--accent)}.icon-picker-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem}.icon-picker-tabs button{min-width:0;padding:.5rem .375rem;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-picker-tabs button.active{border-color:var(--accent);background:var(--accent-soft)}.icon-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem;max-height:15rem;overflow:auto;padding-right:.125rem}.icon-picker-card{display:grid;grid-template-columns:1.5rem 1fr;align-items:center;gap:.5rem;text-align:left;min-height:2.25rem;padding:.375rem .5rem}.icon-picker-card__icon{width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;overflow:visible;border-radius:.375rem;color:var(--muted)}.icon-picker-card__icon svg{width:1.125rem;height:1.125rem;display:block}.icon-picker-card__icon--cloud svg{width:1.25rem;height:1.25rem}.icon-picker-card span{font-size:.875rem;min-width:0}.icon-picker-card.selected{border-color:var(--accent);background:var(--accent-soft)}.icon-picker-card.selected .icon-picker-card__icon{color:var(--accent)}.field-error{margin:-.125rem 0 0;font-size:.75rem;color:var(--danger)}.relation-panel form{display:grid;gap:.5rem}.relation-panel__hint{margin:0;padding:.5rem .625rem;border-radius:.5rem;border:.0625rem solid color-mix(in srgb,var(--warning) 44%,var(--stroke));background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning);font-size:.875rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060c1894;display:flex;justify-content:center;align-items:flex-start;padding:7.5rem 1rem 1rem;overflow:auto;z-index:120;-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem)}.dialog-card{width:min(51.25rem,100%);background:var(--surface-strong);border:.0625rem solid var(--stroke);border-radius:.875rem;clip-path:inset(0 round .875rem);padding:.75rem;display:grid;gap:.75rem;max-height:calc(100dvh - 8.5rem);overflow:auto;box-shadow:var(--panel-shadow)}.dialog-card--export{width:min(61.25rem,100%)}.dialog-card textarea{font-family:IBM Plex Mono,Fira Code,monospace}.dialog-card__header.node-appearance-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.25rem}.node-appearance-dialog{width:min(40rem,92vw);max-height:min(90dvh,51.25rem);overflow:hidden;padding:0;gap:1rem;display:grid}.node-appearance-dialog__header-actions{display:flex;align-items:center;gap:.375rem}.node-appearance-dialog__header-main{display:flex;align-items:center;gap:.75rem}.node-appearance__provider-summary{margin:0;font-size:.75rem;color:var(--muted)}.node-appearance-tablist{display:flex;gap:.5rem;padding:0 1rem;border-bottom:.0625rem solid var(--stroke)}.node-appearance-tablist button{flex:1;border:.0625rem solid transparent;border-radius:.5rem;background:transparent;color:var(--muted);font-size:.875rem;padding:.5rem 0;cursor:pointer;transition:border .15s ease,color .15s ease,background .15s ease}.node-appearance-tablist button.is-active{border-color:var(--stroke);background:color-mix(in srgb,var(--surface-strong) 70%,transparent);color:var(--ink)}.node-appearance-tabpanels{display:grid;gap:1rem;padding:0 1rem 1rem}.node-appearance-tabpanel{display:none;gap:.625rem;max-height:21.25rem;overflow:auto}.node-appearance-tabpanel:not([hidden]){display:grid}.node-appearance-dialog__header-actions button{border-radius:.625rem;border:.0625rem solid var(--stroke);background:transparent;color:var(--ink);padding:.375rem .625rem;font-size:.875rem;font-weight:600;cursor:pointer}.node-appearance-dialog__close{width:2.125rem;height:2.125rem;padding:0;display:flex;align-items:center;justify-content:center}.node-appearance-dialog__header-actions button:hover{border-color:var(--accent);color:var(--accent)}.node-appearance--dialog{border:none;background:transparent;padding:0;box-shadow:none}.dialog-card__header h2{margin:0}.dialog-import-form{display:grid;gap:.75rem}.dialog-tabs{display:flex;gap:.5rem}.dialog-tabs__tab{border-radius:62.5rem;padding:.375rem .75rem}.dialog-tabs__tab.active{border-color:var(--accent);background:var(--accent-soft)}.dialog-export-panel{display:grid;gap:.625rem}.confirmation-dialog{max-width:28.75rem;width:min(90vw,28.75rem);text-align:left}.confirmation-dialog__description{margin:0;color:var(--muted);line-height:1.5;font-size:1rem}.confirmation-dialog__confirm{border:none;background:var(--danger);color:#fff;font-weight:600;padding:.75rem 1.375rem;border-radius:62.5rem;box-shadow:0 .5rem 1rem #0000004d;transition:transform .12s ease,box-shadow .12s ease}.confirmation-dialog__confirm:hover:not(:disabled){transform:translateY(-.0625rem);box-shadow:0 .625rem 1.25rem #00000059}.confirmation-dialog__confirm:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.dialog-export-panel__controls{display:grid;gap:.5rem;grid-template-columns:8.125rem 1fr auto auto;align-items:center}.prompt-preview-list{display:grid;gap:.625rem;max-height:48vh;overflow:auto;padding-right:.25rem}.prompt-preview-card{border:.0625rem solid var(--stroke);border-radius:.625rem;padding:.625rem;display:grid;gap:.375rem;background:color-mix(in srgb,var(--surface-strong) 88%,transparent)}.prompt-preview-card h3,.prompt-preview-card p{margin:0}.prompt-preview-card p{color:var(--muted);font-size:.875rem}.dialog-card__actions{display:flex;gap:.5rem;justify-content:flex-end}.n3-internals-dialog{width:min(70rem,96vw);max-height:min(84dvh,56.25rem);display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto}.n3-internals-dialog__header{display:flex;justify-content:space-between;align-items:flex-start}.n3-internals-dialog__header h2{margin:0}.n3-internals-dialog__subtitle{margin:.375rem 0 0;color:var(--muted);font-size:.875rem}.n3-internals-dialog__close{padding:.375rem;min-width:2.25rem}.n3-internals-dialog__content{overflow:auto;border:.0625rem solid var(--stroke);border-radius:.75rem;padding:.75rem;background:color-mix(in srgb,var(--surface-strong) 94%,transparent)}.n3-internals-dialog__empty{margin:0 0 .625rem;color:var(--muted);font-size:.875rem}.n3-internals-dialog__error{margin:0}.n3-table{width:100%;border-collapse:collapse}.n3-table th,.n3-table td{border:.0625rem solid var(--stroke-light);padding:.5rem;text-align:left;vertical-align:top}.n3-table th{font-size:.875rem;color:var(--muted);font-weight:600}.n3-table td button{white-space:nowrap}.n3-table__actions{display:flex;gap:.25rem}.n3-table__actions button{min-width:1.875rem;padding:.375rem}.n3-table__add{margin-top:.625rem;display:inline-flex;align-items:center;gap:.375rem}.n3-contract-form{display:grid;gap:.625rem}.n3-contract-form__grid{display:grid;gap:.625rem;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.n3-contract-form__grid--two{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.n3-contract-form__grid label{display:grid;gap:.375rem}.n3-note-backdrop{z-index:20}.n3-note-dialog{width:min(38.75rem,92vw)}.n3-note-dialog .dialog-card__header h2{display:inline-flex;align-items:center;gap:.5rem}@media(max-width:68.75rem){.app-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr);grid-template-areas:"header" "sidebar" "inspector" "main"}.app-shell__sidebar,.app-shell__inspector{max-height:30dvh}.projects-toolbar{flex-direction:column;align-items:stretch}.projects-toolbar__search{flex:1 1 auto}.dialog-export-panel__controls{grid-template-columns:1fr;align-items:stretch}.n3-contract-form__grid,.n3-contract-form__grid--two,.pattern-dialog__brief{grid-template-columns:1fr}.pattern-dialog__brief label:first-child,.pattern-dialog__brief label:nth-child(2){grid-column:span 1}}@media(max-width:43.75rem){.projects-nav{padding:.75rem 1rem}.projects-nav__actions{gap:.5rem}.projects-main{padding:1rem}.projects-gallery__list{grid-template-columns:1fr}}.board-layout{position:relative;width:100dvw;height:100dvh;overflow:hidden}.board-layout__canvas{position:absolute;top:0;right:0;bottom:0;left:0}.floating-header{position:fixed;top:1rem;left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:1rem;padding:.625rem 1.25rem;border-radius:.875rem;background:var(--surface-glass);backdrop-filter:blur(.625rem);-webkit-backdrop-filter:blur(.625rem);border:.0625rem solid var(--stroke);box-shadow:var(--panel-shadow)}.floating-header__brand{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:1rem;color:var(--ink)}.floating-header__brand-icon{width:1.75rem;height:1.75rem;border-radius:.5rem;background:var(--accent);display:grid;place-items:center;color:#fff}.floating-header__divider{width:.0625rem;height:1.5rem;background:var(--stroke)}.floating-header__info{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--muted)}.floating-header__level{padding:.125rem .5rem;border-radius:.375rem;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:600;text-transform:uppercase}.floating-header__actions{display:flex;align-items:center;gap:.375rem}.floating-header__btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border-radius:.5rem;border:.0625rem solid transparent;background:transparent;color:var(--muted);transition:all .12s ease}.floating-header__btn:hover{background:var(--surface-strong);border-color:var(--stroke);color:var(--ink)}.floating-header__btn--text{width:auto;padding:0 .75rem;font-size:.875rem}.floating-toolbar{position:fixed;left:1rem;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:.125rem;padding:.5rem;border-radius:.875rem;background:var(--surface-glass);backdrop-filter:blur(.625rem);-webkit-backdrop-filter:blur(.625rem);border:.0625rem solid var(--stroke);box-shadow:var(--panel-shadow)}.floating-toolbar__section{display:flex;flex-direction:column;gap:.125rem}.floating-toolbar__divider{height:.0625rem;margin:.25rem 0;background:var(--stroke)}.floating-toolbar__btn{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border-radius:.625rem;border:.0625rem solid transparent;background:transparent;color:var(--muted);transition:all .12s ease;position:relative}.floating-toolbar__btn:hover{background:var(--surface-strong);border-color:var(--stroke);color:var(--ink)}.floating-toolbar__btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.floating-toolbar__btn-badge{position:absolute;top:-.125rem;right:-.125rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent)}.floating-toolbar__submenu{position:absolute;left:100%;top:0;margin-left:.5rem;padding:.5rem;border-radius:.75rem;background:var(--surface-glass);backdrop-filter:blur(.625rem);-webkit-backdrop-filter:blur(.625rem);border:.0625rem solid var(--stroke);box-shadow:var(--panel-shadow);display:none;min-width:11.25rem}.floating-toolbar__submenu.open{display:block}.floating-toolbar__submenu-title{margin:0 0 .375rem;padding:.25rem .5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.floating-toolbar__submenu-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .625rem;text-align:left;font-size:.875rem;border-radius:.5rem}.floating-toolbar__submenu-item:hover{background:var(--accent-soft)}.floating-toolbar__submenu input[type=search]{margin-bottom:.5rem;padding:.5rem .625rem;font-size:.875rem}.floating-inspector{position:fixed;right:1rem;top:5rem;z-index:100;width:20rem;max-height:calc(100dvh - 6rem);overflow:hidden;display:flex;flex-direction:column;border-radius:1rem;background:var(--surface-glass);backdrop-filter:blur(.625rem);-webkit-backdrop-filter:blur(.625rem);border:.0625rem solid var(--stroke);box-shadow:var(--panel-shadow);animation:slideInRight .2s ease}.floating-inspector.floating-inspector--hidden{opacity:0;pointer-events:none;visibility:hidden;transform:translate(1.25rem)}@keyframes slideInRight{0%{opacity:0;transform:translate(1.25rem)}to{opacity:1;transform:translate(0)}}.floating-inspector__header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .875rem;border-bottom:.0625rem solid var(--stroke-light)}.floating-inspector__title{margin:0;font-size:1rem;font-weight:600}.floating-inspector__close{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border-radius:.375rem;border:none;background:transparent;color:var(--muted)}.floating-inspector__close:hover{background:var(--surface-strong);color:var(--ink)}.floating-inspector__content{flex:1;overflow:auto;padding:.75rem .875rem}.node-action-menu{position:fixed;z-index:200;display:flex;gap:.25rem;padding:.375rem;border-radius:.75rem;background:var(--surface-glass);backdrop-filter:blur(.625rem);-webkit-backdrop-filter:blur(.625rem);border:.0625rem solid var(--stroke);box-shadow:var(--panel-shadow);animation:fadeInUp .15s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.node-action-menu__btn{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border-radius:.5rem;border:.0625rem solid transparent;background:transparent;color:var(--muted);transition:all .1s ease}.node-action-menu__btn:hover{background:var(--surface-strong);border-color:var(--stroke);color:var(--ink)}.node-action-menu__btn--danger:hover{background:#dc26261a;border-color:#dc26264d;color:var(--danger)}.semantic-node__table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.875rem;line-height:1.4;color:var(--ink)}.semantic-node__table th{font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.625rem;color:var(--muted);padding-right:.25rem;vertical-align:top;width:32%}.semantic-node__table td{font-size:.875rem;color:var(--ink);word-break:break-word}.icon-btn{display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:inherit;cursor:pointer}@media(max-width:48rem){.floating-header{left:1rem;right:1rem;transform:none;width:auto}.floating-toolbar{left:.5rem;padding:.375rem}.floating-toolbar__btn{width:2.25rem;height:2.25rem}.floating-inspector{right:.5rem;left:.5rem;width:auto;top:auto;bottom:.5rem;max-height:50dvh}}.pattern-dialog{max-width:42.5rem;width:90vw}.pattern-dialog__subtitle{color:var(--muted);font-size:.875rem;margin-top:.25rem}.pattern-dialog__form-fields label{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.pattern-dialog__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem;max-height:25rem;overflow-y:auto}.pattern-dialog__brief-toggle,.node-creation-dialog__advanced-toggle{justify-self:start;border:.0625rem solid var(--stroke);border-radius:62.5rem;background:transparent;color:var(--ink);padding:.375rem .75rem;font-size:.875rem}.pattern-dialog__brief{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem;margin:.75rem 0 1rem;align-items:start}.pattern-dialog__brief>*{align-self:start}.pattern-dialog__brief label,.node-creation-dialog__form label,.node-creation-dialog__advanced label{display:grid;gap:.375rem;font-size:.875rem;color:var(--muted)}.pattern-dialog__brief label:first-child,.pattern-dialog__brief label:nth-child(2){grid-column:span 2}.node-creation-dialog{width:min(35rem,92vw)}.node-creation-dialog__form,.node-creation-dialog__advanced{display:grid;gap:.625rem}.node-inspector__prompts{display:flex;flex-wrap:wrap;gap:.375rem}.node-inspector__prompt-chip{padding:.25rem .5rem;border-radius:62.5rem;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:600}.node-inspector__helper{margin:0;color:var(--muted);font-size:.875rem;line-height:1.5}.pattern-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem;border:.125rem solid var(--stroke-light);border-radius:.5rem;background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.pattern-card:hover{border-color:var(--accent)}.pattern-card--selected{border-color:var(--accent);box-shadow:0 0 0 .125rem var(--accent-soft);background:var(--accent-soft)}.pattern-card__name{font-weight:600;font-size:.875rem;color:var(--ink)}.pattern-card__desc{font-size:.75rem;color:var(--muted);line-height:1.3}.floating-header__pattern-badge{font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:.625rem;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.edge-action-menu{position:fixed;z-index:200;display:flex;flex-direction:column;gap:.125rem;padding:.25rem;border-radius:.5rem;background:var(--surface);border:.0625rem solid var(--stroke-light);box-shadow:var(--panel-shadow);min-width:8.75rem}.edge-action-menu__btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.375rem .625rem;border:none;border-radius:.25rem;background:transparent;color:var(--ink);font-size:.875rem;cursor:pointer;text-align:left}.edge-action-menu__btn:hover{background:var(--accent-soft)}.edge-action-menu__btn--danger{color:var(--danger)}.edge-action-menu__btn--danger:hover{background:#dc262614}.connection-suggestion-popup{position:fixed;z-index:200;display:flex;flex-direction:column;gap:.125rem;padding:.375rem;border-radius:.625rem;background:var(--surface);border:.0625rem solid var(--stroke-light);box-shadow:var(--panel-shadow);min-width:12.5rem;max-width:17.5rem}.connection-suggestion-popup__title{font-size:.75rem;font-weight:600;color:var(--muted);padding:.25rem .5rem .125rem}.connection-suggestion-popup__search{margin:.125rem .25rem .25rem;padding:.25rem .5rem;font-size:.875rem;border:.0625rem solid var(--stroke-light);border-radius:.375rem;background:var(--surface);color:var(--ink)}.connection-suggestion-popup__item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.375rem .625rem;border:none;border-radius:.375rem;background:transparent;color:var(--ink);font-size:.875rem;cursor:pointer;text-align:left}.connection-suggestion-popup__item:hover{background:var(--accent-soft)}.connection-suggestion-popup__item-label{font-weight:500}.connection-suggestion-popup__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.connection-suggestion-popup__marker{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.125rem .25rem;font-size:.75rem;font-weight:600;border-radius:.25rem;background:var(--accent-soft);color:var(--accent)}.connection-suggestion-popup__label{font-weight:500}.connection-suggestion-popup__empty{padding:.5rem .625rem;font-size:.875rem;color:var(--muted);text-align:center}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
