@likec4/diagram 1.21.1 → 1.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LikeC4Diagram.js +9 -13
- package/dist/base/index.d.ts +0 -1
- package/dist/base/primitives/element/styles.css.js +1 -1
- package/dist/{base → components}/Link.css.js +3 -3
- package/dist/components/SearchControl.css.d.ts +2 -0
- package/dist/components/SearchControl.css.js +7 -0
- package/dist/components/SearchControl.d.ts +5 -0
- package/dist/components/SearchControl.js +17 -0
- package/dist/context/DiagramFeatures.d.ts +1 -1
- package/dist/context/IconRenderer.d.ts +10 -0
- package/dist/context/IconRenderer.js +34 -0
- package/dist/hooks/useCurrentViewId.js +8 -0
- package/dist/hooks/useDiagram.d.ts +108 -72
- package/dist/hooks/useDiagram.js +3 -0
- package/dist/likec4diagram/DiagramActor.js +13 -2
- package/dist/likec4diagram/DiagramUI.js +0 -2
- package/dist/likec4diagram/XYFlow.d.ts +6 -1
- package/dist/likec4diagram/XYFlow.js +37 -31
- package/dist/likec4diagram/custom/edges/RelationshipsDropdownMenu.js +2 -1
- package/dist/likec4diagram/state/actorContext.d.ts +620 -468
- package/dist/likec4diagram/state/assign.js +1 -1
- package/dist/likec4diagram/state/machine.d.ts +120 -74
- package/dist/likec4diagram/state/machine.js +32 -12
- package/dist/likec4diagram/state/syncManualLayoutActor.js +4 -8
- package/dist/likec4diagram/ui/controls/Controls.js +65 -48
- package/dist/likec4diagram/ui/controls/NavigationButtons.js +44 -69
- package/dist/likec4diagram/ui/controls/ToggleReadonly.d.ts +1 -0
- package/dist/likec4diagram/ui/controls/ToggleReadonly.js +29 -0
- package/dist/likec4diagram/ui/controls/_shared.js +1 -1
- package/dist/likec4diagram/ui/diagram-title/DiagramTitlePanel.js +1 -1
- package/dist/likec4diagram/ui/search/ElementsColumn.css.d.ts +15 -0
- package/dist/likec4diagram/ui/search/ElementsColumn.css.js +30 -0
- package/dist/likec4diagram/ui/search/ElementsColumn.d.ts +1 -0
- package/dist/likec4diagram/ui/search/ElementsColumn.js +243 -0
- package/dist/likec4diagram/ui/search/LikeC4Search.css.d.ts +8 -0
- package/dist/likec4diagram/ui/search/LikeC4Search.css.js +20 -0
- package/dist/likec4diagram/ui/search/LikeC4Search.d.ts +1 -0
- package/dist/likec4diagram/ui/search/LikeC4Search.js +265 -0
- package/dist/likec4diagram/ui/search/SearchInput.d.ts +1 -0
- package/dist/likec4diagram/ui/search/SearchInput.js +196 -0
- package/dist/likec4diagram/ui/search/ViewsColum.d.ts +9 -0
- package/dist/likec4diagram/ui/search/ViewsColum.js +130 -0
- package/dist/likec4diagram/ui/search/ViewsColumn.css.d.ts +5 -0
- package/dist/likec4diagram/ui/search/ViewsColumn.css.js +12 -0
- package/dist/likec4diagram/ui/search/_shared.css.d.ts +16 -0
- package/dist/likec4diagram/ui/search/_shared.css.js +5 -0
- package/dist/likec4diagram/ui/search/state.d.ts +19 -0
- package/dist/likec4diagram/ui/search/state.js +72 -0
- package/dist/likec4diagram/ui/search/utils.d.ts +3 -0
- package/dist/likec4diagram/ui/search/utils.js +23 -0
- package/dist/likec4diagram/useLayoutConstraints.js +4 -5
- package/dist/likec4model/useLikeC4ElementsTree.d.ts +1 -0
- package/dist/likec4model/useLikeC4ElementsTree.js +1 -0
- package/dist/overlays/Overlays.js +9 -9
- package/dist/overlays/element-details/ElementDetailsCard.js +20 -13
- package/dist/overlays/overlay/Overlay.d.ts +6 -2
- package/dist/overlays/overlay/Overlay.js +18 -29
- package/dist/overlays/relationship-details/SelectEdge.js +1 -3
- package/dist/overlays/relationships-browser/RelationshipsBrowser.js +6 -5
- package/dist/overlays/relationships-browser/SelectElement.js +10 -6
- package/dist/overlays/relationships-browser/actor.d.ts +2 -2
- package/dist/overlays/relationships-browser/actor.js +8 -8
- package/dist/overlays/relationships-browser/custom/nodeTypes.js +2 -2
- package/dist/style.css +1 -1
- package/package.json +13 -13
- package/src/LikeC4Diagram.tsx +0 -1
- package/src/base/index.ts +0 -2
- package/src/base/primitives/element/styles.css.ts +2 -2
- package/src/{base → components}/Link.css.ts +3 -3
- package/src/components/SearchControl.css.ts +69 -0
- package/src/components/SearchControl.tsx +33 -0
- package/src/context/DiagramFeatures.tsx +1 -1
- package/src/context/IconRenderer.tsx +54 -1
- package/src/globals.css.ts +0 -2
- package/src/hooks/useDiagram.ts +5 -0
- package/src/likec4diagram/DiagramActor.tsx +15 -2
- package/src/likec4diagram/DiagramUI.tsx +0 -4
- package/src/likec4diagram/XYFlow.tsx +39 -31
- package/src/likec4diagram/custom/edges/RelationshipsDropdownMenu.tsx +2 -1
- package/src/likec4diagram/state/assign.ts +1 -1
- package/src/likec4diagram/state/machine.ts +40 -14
- package/src/likec4diagram/state/syncManualLayoutActor.ts +6 -9
- package/src/likec4diagram/ui/controls/Controls.tsx +37 -25
- package/src/likec4diagram/ui/controls/NavigationButtons.tsx +36 -58
- package/src/likec4diagram/ui/controls/ToggleReadonly.tsx +31 -0
- package/src/likec4diagram/ui/controls/styles.css.ts +3 -1
- package/src/likec4diagram/ui/diagram-title/DiagramTitlePanel.tsx +1 -1
- package/src/likec4diagram/ui/search/ElementsColumn.css.ts +119 -0
- package/src/likec4diagram/ui/search/ElementsColumn.tsx +291 -0
- package/src/likec4diagram/ui/search/LikeC4Search.css.ts +117 -0
- package/src/likec4diagram/ui/search/LikeC4Search.tsx +312 -0
- package/src/likec4diagram/ui/search/SearchInput.tsx +235 -0
- package/src/likec4diagram/ui/search/ViewsColum.tsx +158 -0
- package/src/likec4diagram/ui/search/ViewsColumn.css.ts +37 -0
- package/src/likec4diagram/ui/search/_shared.css.ts +104 -0
- package/src/likec4diagram/ui/search/state.ts +76 -0
- package/src/likec4diagram/ui/search/utils.ts +20 -0
- package/src/likec4diagram/useLayoutConstraints.ts +4 -5
- package/src/likec4model/useLikeC4ElementsTree.ts +4 -4
- package/src/overlays/Overlays.tsx +31 -25
- package/src/overlays/element-details/ElementDetailsCard.css.ts +4 -4
- package/src/overlays/element-details/ElementDetailsCard.tsx +245 -240
- package/src/overlays/overlay/Overlay.css.ts +10 -9
- package/src/overlays/overlay/Overlay.tsx +38 -26
- package/src/overlays/relationship-details/SelectEdge.css.ts +1 -0
- package/src/overlays/relationship-details/SelectEdge.tsx +2 -4
- package/src/overlays/relationships-browser/RelationshipsBrowser.tsx +10 -5
- package/src/overlays/relationships-browser/SelectElement.tsx +88 -82
- package/src/overlays/relationships-browser/actor.ts +10 -10
- package/src/overlays/relationships-browser/custom/nodeTypes.tsx +2 -2
- package/dist/LikeC4Search.css.d.ts +0 -1
- package/dist/LikeC4Search.css.js +0 -5
- package/dist/LikeC4Search.d.ts +0 -2
- package/dist/LikeC4Search.js +0 -88
- package/src/LikeC4Search.css.ts +0 -12
- package/src/LikeC4Search.tsx +0 -91
- /package/dist/{base → components}/Link.css.d.ts +0 -0
- /package/dist/{base → components}/Link.d.ts +0 -0
- /package/dist/{base → components}/Link.js +0 -0
- /package/src/{base → components}/Link.tsx +0 -0
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.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: rgb(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: rgb(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, var(--xy-background-color-props, 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__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__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-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__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:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform: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))}._16mg60z0{margin-inline-end:4px}:where(._16mg60z0) .tabler-icon{opacity:.8;width:70%;height:70%}.likec4-diagram-root{container-name:likec4-diagram-root;container-type:size;overflow:hidden;position:relative;width:100%;height:100%;padding:0;margin:0;box-sizing:border-box;-webkit-font-smoothing:var(--mantine-webkit-font-smoothing);-moz-osx-font-smoothing:var(--mantine-moz-font-smoothing)}:where(.likec4-diagram-root) .mantine-ActionIcon-icon .tabler-icon{width:75%;height:75%}.likec4-diagram-root{--likec4-font-family: var(--likec4-default-font-family,'ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"');--likec4-background-color: var(--mantine-color-body);--likec4-background-pattern-color: var(--mantine-color-gray-4);--likec4-compound-font-family: var(--likec4-font-family);--likec4-compound-title-color: var(--likec4-element-loContrast);--likec4-element-font-family: var(--likec4-font-family);--likec4-element-fill: #3b82f6;--likec4-element-stroke: #2563eb;--likec4-element-hiContrast: #eff6ff;--likec4-element-loContrast: #bfdbfe;--likec4-relation-lineColor: #64748b;--likec4-relation-labelBg: #0f172a;--likec4-relation-labelColor: #cbd5e1}:where([data-mantine-color-scheme=dark]) .likec4-diagram-root{--likec4-background-pattern-color: var(--mantine-color-dark-5)}:where([data-likec4-color=primary]){--likec4-element-fill: #3b82f6;--likec4-element-stroke: #2563eb;--likec4-element-hiContrast: #eff6ff;--likec4-element-loContrast: #bfdbfe;--likec4-compound-title-color: #bfdbfe;--likec4-relation-lineColor: #3b82f6;--likec4-relation-labelBg: #172554;--likec4-relation-labelColor: #60a5fa}:where([data-likec4-color=primary][data-compound-depth="1"]){--likec4-element-fill: #145ed7;--likec4-element-stroke: #194bb8}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="1"]){--likec4-element-fill: #1a5bc5;--likec4-element-stroke: #1e49a9}:where([data-likec4-color=primary][data-compound-depth="2"]){--likec4-element-fill: #195cc8;--likec4-element-stroke: #1d4aac}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="2"]){--likec4-element-fill: #1e56b1;--likec4-element-stroke: #204698}:where([data-likec4-color=primary][data-compound-depth="3"]){--likec4-element-fill: #1e59ba;--likec4-element-stroke: #2149a0}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="3"]){--likec4-element-fill: #21519f;--likec4-element-stroke: #224289}:where([data-likec4-color=primary][data-compound-depth="4"]){--likec4-element-fill: #2357ad;--likec4-element-stroke: #244795}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="4"]){--likec4-element-fill: #234c8e;--likec4-element-stroke: #243f7a}:where([data-likec4-color=primary][data-compound-depth="5"]){--likec4-element-fill: #2755a0;--likec4-element-stroke: #27468a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="5"]){--likec4-element-fill: #25467d;--likec4-element-stroke: #243b6c}:where([data-likec4-color=primary][data-compound-depth="6"]){--likec4-element-fill: #2a5293;--likec4-element-stroke: #2a447f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="6"]){--likec4-element-fill: #25416d;--likec4-element-stroke: #24365f}:where([data-likec4-color=blue]){--likec4-element-fill: #3b82f6;--likec4-element-stroke: #2563eb;--likec4-element-hiContrast: #eff6ff;--likec4-element-loContrast: #bfdbfe;--likec4-compound-title-color: #bfdbfe;--likec4-relation-lineColor: #3b82f6;--likec4-relation-labelBg: #172554;--likec4-relation-labelColor: #60a5fa}:where([data-likec4-color=blue][data-compound-depth="1"]){--likec4-element-fill: #145ed7;--likec4-element-stroke: #194bb8}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="1"]){--likec4-element-fill: #1a5bc5;--likec4-element-stroke: #1e49a9}:where([data-likec4-color=blue][data-compound-depth="2"]){--likec4-element-fill: #195cc8;--likec4-element-stroke: #1d4aac}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="2"]){--likec4-element-fill: #1e56b1;--likec4-element-stroke: #204698}:where([data-likec4-color=blue][data-compound-depth="3"]){--likec4-element-fill: #1e59ba;--likec4-element-stroke: #2149a0}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="3"]){--likec4-element-fill: #21519f;--likec4-element-stroke: #224289}:where([data-likec4-color=blue][data-compound-depth="4"]){--likec4-element-fill: #2357ad;--likec4-element-stroke: #244795}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="4"]){--likec4-element-fill: #234c8e;--likec4-element-stroke: #243f7a}:where([data-likec4-color=blue][data-compound-depth="5"]){--likec4-element-fill: #2755a0;--likec4-element-stroke: #27468a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="5"]){--likec4-element-fill: #25467d;--likec4-element-stroke: #243b6c}:where([data-likec4-color=blue][data-compound-depth="6"]){--likec4-element-fill: #2a5293;--likec4-element-stroke: #2a447f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="6"]){--likec4-element-fill: #25416d;--likec4-element-stroke: #24365f}:where([data-likec4-color=secondary]){--likec4-element-fill: #0284c7;--likec4-element-stroke: #0369a1;--likec4-element-hiContrast: #f0f9ff;--likec4-element-loContrast: #B6ECF7;--likec4-compound-title-color: #B6ECF7;--likec4-relation-lineColor: #0ea5e9;--likec4-relation-labelBg: #082f49;--likec4-relation-labelColor: #38bdf8}:where([data-likec4-color=secondary][data-compound-depth="1"]){--likec4-element-fill: #086392;--likec4-element-stroke: #084f76}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="1"]){--likec4-element-fill: #0d5d86;--likec4-element-stroke: #0b4a6c}:where([data-likec4-color=secondary][data-compound-depth="2"]){--likec4-element-fill: #0c5e88;--likec4-element-stroke: #0b4b6e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="2"]){--likec4-element-fill: #105579;--likec4-element-stroke: #0e4462}:where([data-likec4-color=secondary][data-compound-depth="3"]){--likec4-element-fill: #10597f;--likec4-element-stroke: #0e4767}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="3"]){--likec4-element-fill: #134e6c;--likec4-element-stroke: #103e57}:where([data-likec4-color=secondary][data-compound-depth="4"]){--likec4-element-fill: #135475;--likec4-element-stroke: #11435f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="4"]){--likec4-element-fill: #154660;--likec4-element-stroke: #11384e}:where([data-likec4-color=secondary][data-compound-depth="5"]){--likec4-element-fill: #164f6c;--likec4-element-stroke: #133f58}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="5"]){--likec4-element-fill: #163f55;--likec4-element-stroke: #123345}:where([data-likec4-color=secondary][data-compound-depth="6"]){--likec4-element-fill: #194a64;--likec4-element-stroke: #153c51}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="6"]){--likec4-element-fill: #17384a;--likec4-element-stroke: #132d3c}:where([data-likec4-color=sky]){--likec4-element-fill: #0284c7;--likec4-element-stroke: #0369a1;--likec4-element-hiContrast: #f0f9ff;--likec4-element-loContrast: #B6ECF7;--likec4-compound-title-color: #B6ECF7;--likec4-relation-lineColor: #0ea5e9;--likec4-relation-labelBg: #082f49;--likec4-relation-labelColor: #38bdf8}:where([data-likec4-color=sky][data-compound-depth="1"]){--likec4-element-fill: #086392;--likec4-element-stroke: #084f76}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="1"]){--likec4-element-fill: #0d5d86;--likec4-element-stroke: #0b4a6c}:where([data-likec4-color=sky][data-compound-depth="2"]){--likec4-element-fill: #0c5e88;--likec4-element-stroke: #0b4b6e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="2"]){--likec4-element-fill: #105579;--likec4-element-stroke: #0e4462}:where([data-likec4-color=sky][data-compound-depth="3"]){--likec4-element-fill: #10597f;--likec4-element-stroke: #0e4767}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="3"]){--likec4-element-fill: #134e6c;--likec4-element-stroke: #103e57}:where([data-likec4-color=sky][data-compound-depth="4"]){--likec4-element-fill: #135475;--likec4-element-stroke: #11435f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="4"]){--likec4-element-fill: #154660;--likec4-element-stroke: #11384e}:where([data-likec4-color=sky][data-compound-depth="5"]){--likec4-element-fill: #164f6c;--likec4-element-stroke: #133f58}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="5"]){--likec4-element-fill: #163f55;--likec4-element-stroke: #123345}:where([data-likec4-color=sky][data-compound-depth="6"]){--likec4-element-fill: #194a64;--likec4-element-stroke: #153c51}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="6"]){--likec4-element-fill: #17384a;--likec4-element-stroke: #132d3c}:where([data-likec4-color=muted]){--likec4-element-fill: #64748b;--likec4-element-stroke: #475569;--likec4-element-hiContrast: #f8fafc;--likec4-element-loContrast: #cbd5e1;--likec4-compound-title-color: #cbd5e1;--likec4-relation-lineColor: #64748b;--likec4-relation-labelBg: #0f172a;--likec4-relation-labelColor: #cbd5e1}:where([data-likec4-color=muted][data-compound-depth="1"]){--likec4-element-fill: #4e5a6a;--likec4-element-stroke: #384250}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="1"]){--likec4-element-fill: #4b5563;--likec4-element-stroke: #363e4b}:where([data-likec4-color=muted][data-compound-depth="2"]){--likec4-element-fill: #4c5665;--likec4-element-stroke: #363f4c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="2"]){--likec4-element-fill: #474f5c;--likec4-element-stroke: #333a45}:where([data-likec4-color=muted][data-compound-depth="3"]){--likec4-element-fill: #4a5360;--likec4-element-stroke: #353d48}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="3"]){--likec4-element-fill: #424a54;--likec4-element-stroke: #30363f}:where([data-likec4-color=muted][data-compound-depth="4"]){--likec4-element-fill: #48505b;--likec4-element-stroke: #333a44}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="4"]){--likec4-element-fill: #3e444d;--likec4-element-stroke: #2d323a}:where([data-likec4-color=muted][data-compound-depth="5"]){--likec4-element-fill: #454c56;--likec4-element-stroke: #323841}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="5"]){--likec4-element-fill: #393e46;--likec4-element-stroke: #292e34}:where([data-likec4-color=muted][data-compound-depth="6"]){--likec4-element-fill: #434951;--likec4-element-stroke: #30353d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="6"]){--likec4-element-fill: #34383e;--likec4-element-stroke: #26292f}:where([data-likec4-color=slate]){--likec4-element-fill: #64748b;--likec4-element-stroke: #475569;--likec4-element-hiContrast: #f8fafc;--likec4-element-loContrast: #cbd5e1;--likec4-compound-title-color: #cbd5e1;--likec4-relation-lineColor: #64748b;--likec4-relation-labelBg: #0f172a;--likec4-relation-labelColor: #cbd5e1}:where([data-likec4-color=slate][data-compound-depth="1"]){--likec4-element-fill: #4e5a6a;--likec4-element-stroke: #384250}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="1"]){--likec4-element-fill: #4b5563;--likec4-element-stroke: #363e4b}:where([data-likec4-color=slate][data-compound-depth="2"]){--likec4-element-fill: #4c5665;--likec4-element-stroke: #363f4c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="2"]){--likec4-element-fill: #474f5c;--likec4-element-stroke: #333a45}:where([data-likec4-color=slate][data-compound-depth="3"]){--likec4-element-fill: #4a5360;--likec4-element-stroke: #353d48}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="3"]){--likec4-element-fill: #424a54;--likec4-element-stroke: #30363f}:where([data-likec4-color=slate][data-compound-depth="4"]){--likec4-element-fill: #48505b;--likec4-element-stroke: #333a44}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="4"]){--likec4-element-fill: #3e444d;--likec4-element-stroke: #2d323a}:where([data-likec4-color=slate][data-compound-depth="5"]){--likec4-element-fill: #454c56;--likec4-element-stroke: #323841}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="5"]){--likec4-element-fill: #393e46;--likec4-element-stroke: #292e34}:where([data-likec4-color=slate][data-compound-depth="6"]){--likec4-element-fill: #434951;--likec4-element-stroke: #30353d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="6"]){--likec4-element-fill: #34383e;--likec4-element-stroke: #26292f}:where([data-likec4-color=gray]){--likec4-element-fill: #737373;--likec4-element-stroke: #525252;--likec4-element-hiContrast: #fafafa;--likec4-element-loContrast: #d4d4d4;--likec4-compound-title-color: #d4d4d4;--likec4-relation-lineColor: #6E6E6E;--likec4-relation-labelBg: #18191b;--likec4-relation-labelColor: #C6C6C6}:where([data-likec4-color=gray][data-compound-depth="1"]){--likec4-element-fill: #595959;--likec4-element-stroke: #3f3f3f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="1"]){--likec4-element-fill: #545454;--likec4-element-stroke: #3c3c3c}:where([data-likec4-color=gray][data-compound-depth="2"]){--likec4-element-fill: #555555;--likec4-element-stroke: #3d3d3d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="2"]){--likec4-element-fill: #4e4e4e;--likec4-element-stroke: #383838}:where([data-likec4-color=gray][data-compound-depth="3"]){--likec4-element-fill: #525252;--likec4-element-stroke: #3a3a3a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="3"]){--likec4-element-fill: #484848;--likec4-element-stroke: #343434}:where([data-likec4-color=gray][data-compound-depth="4"]){--likec4-element-fill: #4e4e4e;--likec4-element-stroke: #383838}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="4"]){--likec4-element-fill: #434343;--likec4-element-stroke: #303030}:where([data-likec4-color=gray][data-compound-depth="5"]){--likec4-element-fill: #4b4b4b;--likec4-element-stroke: #353535}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="5"]){--likec4-element-fill: #3d3d3d;--likec4-element-stroke: #2b2b2b}:where([data-likec4-color=gray][data-compound-depth="6"]){--likec4-element-fill: #474747;--likec4-element-stroke: #333333}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="6"]){--likec4-element-fill: #373737;--likec4-element-stroke: #272727}:where([data-likec4-color=red]){--likec4-element-fill: #AC4D39;--likec4-element-stroke: #853A2D;--likec4-element-hiContrast: #FBD3CB;--likec4-element-loContrast: #f5b2a3;--likec4-compound-title-color: #f5b2a3;--likec4-relation-lineColor: #AC4D39;--likec4-relation-labelBg: #b91c1c;--likec4-relation-labelColor: #f5b2a3}:where([data-likec4-color=red][data-compound-depth="1"]){--likec4-element-fill: #803e30;--likec4-element-stroke: #632f26}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="1"]){--likec4-element-fill: #773d30;--likec4-element-stroke: #5c2e26}:where([data-likec4-color=red][data-compound-depth="2"]){--likec4-element-fill: #793d31;--likec4-element-stroke: #5e2e26}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="2"]){--likec4-element-fill: #6c3a2f;--likec4-element-stroke: #542c25}:where([data-likec4-color=red][data-compound-depth="3"]){--likec4-element-fill: #723c31;--likec4-element-stroke: #582e27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="3"]){--likec4-element-fill: #62372e;--likec4-element-stroke: #4c2a24}:where([data-likec4-color=red][data-compound-depth="4"]){--likec4-element-fill: #6a3b31;--likec4-element-stroke: #522d27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="4"]){--likec4-element-fill: #58342c;--likec4-element-stroke: #442823}:where([data-likec4-color=red][data-compound-depth="5"]){--likec4-element-fill: #633a31;--likec4-element-stroke: #4d2c27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="5"]){--likec4-element-fill: #4f312a;--likec4-element-stroke: #3d2521}:where([data-likec4-color=red][data-compound-depth="6"]){--likec4-element-fill: #5d3931;--likec4-element-stroke: #482b27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="6"]){--likec4-element-fill: #462d28;--likec4-element-stroke: #36231f}:where([data-likec4-color=green]){--likec4-element-fill: #428a4f;--likec4-element-stroke: #2d5d39;--likec4-element-hiContrast: #f8fafc;--likec4-element-loContrast: #c2f0c2;--likec4-compound-title-color: #c2f0c2;--likec4-relation-lineColor: #15803d;--likec4-relation-labelBg: #052e16;--likec4-relation-labelColor: #22c55e}:where([data-likec4-color=green][data-compound-depth="1"]){--likec4-element-fill: #35683e;--likec4-element-stroke: #24462d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="1"]){--likec4-element-fill: #34613c;--likec4-element-stroke: #24412b}:where([data-likec4-color=green][data-compound-depth="2"]){--likec4-element-fill: #35623d;--likec4-element-stroke: #24422c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="2"]){--likec4-element-fill: #325839;--likec4-element-stroke: #223c29}:where([data-likec4-color=green][data-compound-depth="3"]){--likec4-element-fill: #345d3c;--likec4-element-stroke: #243e2a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="3"]){--likec4-element-fill: #305136;--likec4-element-stroke: #213626}:where([data-likec4-color=green][data-compound-depth="4"]){--likec4-element-fill: #33573a;--likec4-element-stroke: #233b29}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="4"]){--likec4-element-fill: #2d4932;--likec4-element-stroke: #1f3123}:where([data-likec4-color=green][data-compound-depth="5"]){--likec4-element-fill: #335238;--likec4-element-stroke: #223728}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="5"]){--likec4-element-fill: #2b422f;--likec4-element-stroke: #1d2c21}:where([data-likec4-color=green][data-compound-depth="6"]){--likec4-element-fill: #324d37;--likec4-element-stroke: #223426}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="6"]){--likec4-element-fill: #283a2b;--likec4-element-stroke: #1b271e}:where([data-likec4-color=amber]){--likec4-element-fill: #A35829;--likec4-element-stroke: #7E451D;--likec4-element-hiContrast: #FFE0C2;--likec4-element-loContrast: #f9b27c;--likec4-compound-title-color: #f9b27c;--likec4-relation-lineColor: #b45309;--likec4-relation-labelBg: #78350f;--likec4-relation-labelColor: #FFE0C2}:where([data-likec4-color=amber][data-compound-depth="1"]){--likec4-element-fill: #794524;--likec4-element-stroke: #5e361a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="1"]){--likec4-element-fill: #704225;--likec4-element-stroke: #56331b}:where([data-likec4-color=amber][data-compound-depth="2"]){--likec4-element-fill: #724325;--likec4-element-stroke: #58341b}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="2"]){--likec4-element-fill: #663e25;--likec4-element-stroke: #4e301b}:where([data-likec4-color=amber][data-compound-depth="3"]){--likec4-element-fill: #6b4126;--likec4-element-stroke: #52321c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="3"]){--likec4-element-fill: #5c3a25;--likec4-element-stroke: #472d1b}:where([data-likec4-color=amber][data-compound-depth="4"]){--likec4-element-fill: #643e27;--likec4-element-stroke: #4d301d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="4"]){--likec4-element-fill: #533624;--likec4-element-stroke: #402a1a}:where([data-likec4-color=amber][data-compound-depth="5"]){--likec4-element-fill: #5d3c28;--likec4-element-stroke: #472f1d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="5"]){--likec4-element-fill: #493223;--likec4-element-stroke: #38261a}:where([data-likec4-color=amber][data-compound-depth="6"]){--likec4-element-fill: #563a28;--likec4-element-stroke: #422d1e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="6"]){--likec4-element-fill: #412d21;--likec4-element-stroke: #322319}:where([data-likec4-color=indigo]){--likec4-element-fill: #6366f1;--likec4-element-stroke: #4f46e5;--likec4-element-hiContrast: #eef2ff;--likec4-element-loContrast: #c7d2fe;--likec4-compound-title-color: #c7d2fe;--likec4-relation-lineColor: #6366f1;--likec4-relation-labelBg: #1e1b4b;--likec4-relation-labelColor: #818cf8}:where([data-likec4-color=indigo][data-compound-depth="1"]){--likec4-element-fill: #2529e1;--likec4-element-stroke: #2d24c2}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="1"]){--likec4-element-fill: #2529d3;--likec4-element-stroke: #3028b2}:where([data-likec4-color=indigo][data-compound-depth="2"]){--likec4-element-fill: #2428d7;--likec4-element-stroke: #3028b5}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="2"]){--likec4-element-fill: #282bbf;--likec4-element-stroke: #312aa1}:where([data-likec4-color=indigo][data-compound-depth="3"]){--likec4-element-fill: #292cc8;--likec4-element-stroke: #322ba9}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="3"]){--likec4-element-fill: #2b2dac;--likec4-element-stroke: #312b91}:where([data-likec4-color=indigo][data-compound-depth="4"]){--likec4-element-fill: #2d30ba;--likec4-element-stroke: #342e9e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="4"]){--likec4-element-fill: #2c2f99;--likec4-element-stroke: #302c82}:where([data-likec4-color=indigo][data-compound-depth="5"]){--likec4-element-fill: #3133ac;--likec4-element-stroke: #363092}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="5"]){--likec4-element-fill: #2d2f87;--likec4-element-stroke: #2f2b73}:where([data-likec4-color=indigo][data-compound-depth="6"]){--likec4-element-fill: #34369f;--likec4-element-stroke: #373287}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="6"]){--likec4-element-fill: #2d2e76;--likec4-element-stroke: #2e2b65}.paikoy2{--backdrop-opacity: 0%;--backdrop-blur: 0px;box-sizing:border-box;margin:0;padding:0;position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;background:transparent;border:0 solid transparent}.paikoy2::backdrop{-webkit-backdrop-filter:blur(var(--backdrop-blur));backdrop-filter:blur(var(--backdrop-blur));background-color:rgb(36 36 36 / var(--backdrop-opacity))}.paikoy3{--paikoy0: var(--mantine-color-body);--paikoy1: linear-gradient(180deg, var(--likec4-element-fill), var(--likec4-element-fill) 4px, transparent 4px);position:absolute;pointer-events:all;gap:var(--mantine-spacing-lg);justify-content:stretch;background-color:var(--paikoy0);background-image:var(--paikoy1);border-top-color:var(--likec4-element-fill)}:where([data-mantine-color-scheme=dark]) .paikoy3{--paikoy0: var(--mantine-color-dark-6);--paikoy1: linear-gradient(180deg, color-mix(in srgb, var(--likec4-element-fill) 15%, transparent), transparent 80px), linear-gradient(180deg, var(--likec4-element-fill), var(--likec4-element-fill) 4px, transparent 4px) }.paikoy4{flex:0;cursor:move}:where(.paikoy3) .react-flow__attribution{display:none}.paikoy5{display:block;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;font-weight:600;font-size:24px;line-height:var(--mantine-line-height-xs)}.paikoy6{flex:0 0 40px;height:40px;width:40px;display:flex;align-items:center;justify-content:center;align-self:flex-start;cursor:move}:where([data-mantine-color-scheme=dark]) .paikoy6{mix-blend-mode:hard-light}.paikoy6 svg,.paikoy6 img{width:100%;height:auto;max-height:100%;pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 10%)) drop-shadow(0 1px 8px rgb(0 0 0 / 5%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 2%))}.paikoy6 img{object-fit:contain}.paikoy9{--paikoy7: var(--mantine-color-dark-1);width:100%;background:var(--mantine-color-body);border-radius:var(--mantine-radius-sm);padding:10px 8px;transition:all .13s cubic-bezier(.5,0,.2,1);border:1px solid var(--mantine-color-default-border)}.paikoy9:hover{--paikoy8: var(--mantine-color-dark-1);--paikoy7: var(--mantine-color-default-color);background:var(--mantine-color-default-hover)}:where([data-mantine-color-scheme=dark]) .paikoy9{background:var(--mantine-color-dark-6)}:where([data-mantine-color-scheme=light]) .paikoy9{--paikoy8: var(--mantine-color-gray-6);--paikoy7: var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=light]) .paikoy9:hover{--paikoy8: var(--mantine-color-gray-7)}.paikoy9 .mantine-ThemeIcon-root{--ti-size: 22px;transition:all .13s cubic-bezier(.5,0,.2,1);color:var(--paikoy8, var(--mantine-color-dark-2))}.paikoy9 .mantine-ThemeIcon-root:hover{color:var(--mantine-color-default-color)}.paikoy9>*{transition:all .13s cubic-bezier(.5,0,.2,1)}.paikoy9:hover>*{transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1.6px)}.paikoya{transition:all .13s cubic-bezier(.5,0,.2,1);color:var(--paikoy7, var(--mantine-color-gray-7));font-size:15px;font-weight:500;line-height:1.4}.paikoyb{flex:1;display:flex;flex-direction:column;justify-content:stretch;overflow:hidden;gap:var(--mantine-spacing-sm)}.paikoyc{background:var(--mantine-color-gray-1);border-radius:var(--mantine-radius-sm);flex-wrap:nowrap;gap:6px;padding:4px}:where([data-mantine-color-scheme=dark]) .paikoyc{background:var(--mantine-color-dark-7)}.paikoyd{font-size:var(--mantine-font-size-xs);font-weight:500;flex-grow:1;padding:6px 8px;transition:all .13s cubic-bezier(.5,0,.2,1);border-radius:var(--mantine-radius-sm);color:var(--mantine-color-gray-7)}.paikoyd:hover{transition-timing-function:cubic-bezier(0,0,.4,1);color:var(--mantine-color-default-color);background:var(--mantine-color-gray-3)}.paikoyd[data-active]{transition:none;background:var(--mantine-color-white);box-shadow:var(--mantine-shadow-xs);color:var(--mantine-color-default-color)}:where([data-mantine-color-scheme=dark]) .paikoyd{color:var(--mantine-color-dark-1)}:where([data-mantine-color-scheme=dark]) .paikoyd:hover{color:var(--mantine-color-white);background:var(--mantine-color-dark-6)}:where([data-mantine-color-scheme=dark]) .paikoyd:is([data-active]){color:var(--mantine-color-white);background:var(--mantine-color-dark-5)}.paikoye{flex:1;overflow:hidden;position:relative}.paikoye:not(:has(.mantine-ScrollArea-root)){padding-left:4px;padding-right:4px}.paikoye .mantine-ScrollArea-root{width:100%;height:100%}.paikoye .mantine-ScrollArea-viewport>div{padding-left:4px;padding-right:4px}.paikoyf{flex:1;display:grid;grid-template-columns:min-content 1fr;grid-auto-rows:min-content max-content;gap:calc(1.25rem * var(--mantine-scale)) calc(1rem * var(--mantine-scale));align-items:baseline;justify-items:stretch}.paikoyg{justify-self:end}.paikoyh{position:absolute;width:14px;height:14px;border:3.5px solid var(--mantine-color-dark-3);border-top:none;border-left:none;border-radius:2px;bottom:2px;right:2px;transition:all .13s cubic-bezier(.5,0,.2,1);cursor:se-resize}.paikoyh:hover{border-width:4px;border-color:var(--mantine-color-dark-1)}._6nb9wd0[data-level="1"]{margin-bottom:calc(1rem * var(--mantine-scale))}._6nb9wd1{cursor:default;margin-top:0;margin-bottom:0}._6nb9wd2{transition:all .13s cubic-bezier(.5,0,.2,1);color:var(--mantine-color-gray-7)}._6nb9wd2:hover{transition-timing-function:cubic-bezier(0,0,.4,1)}:where([data-mantine-color-scheme=dark]) ._6nb9wd2{color:var(--mantine-color-dark-1)}._6nb9wd2>*{transition:all .13s cubic-bezier(.5,0,.2,1)}._6nb9wd2:hover>:not([data-no-transform]){transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1px)}.mantine-Button-root:hover ._6nb9wd2>:not([data-no-transform]){transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1px)}._6nb9wd4{cursor:pointer;width:100%;justify-content:stretch;flex-wrap:nowrap;height:calc(2.25rem * var(--mantine-scale));padding-inline-start:calc(1rem * var(--mantine-scale));padding-inline-end:calc(.625rem * var(--mantine-scale));border-radius:var(--mantine-radius-sm);align-items:center;color:var(--mantine-color-gray-7)}._6nb9wd4:hover{background:var(--mantine-color-gray-light-hover)}:where([data-mantine-color-scheme=dark]) ._6nb9wd4{color:var(--mantine-color-gray-light-color)}._6nb9wd4 .tabler-icon{transition:all .13s cubic-bezier(.5,0,.2,1);width:90%;opacity:.65}._2h8g8h1,.react-flow.not-initialized{opacity:0}.react-flow._2h8g8h0{--xy-background-color: var(--likec4-background-color);--xy-background-pattern-color: var(--likec4-background-pattern-color)}.react-flow._2h8g8h0 .react-flow__pane{-webkit-user-select:none}.react-flow._2h8g8h0 .xyflow__viewport{will-change:transform}.react-flow._2h8g8h0._2h8g8h3{--likec4-background-color: transparent !important;--xy-background-color: transparent !important;background-color:transparent!important}:where(.react-flow._2h8g8h0,._2h8g8h3) .react-flow__attribution{display:none}:where([data-likec4-zoom-small=true]) ._2h8g8h4{visibility:hidden}@supports (hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){._2h8g8h0{--likec4-safari-animation-hook: }}@keyframes nrg7w95{0%{stroke-dashoffset:46}to{stroke-dashoffset:10}}.nrg7w91{--nrg7w90: black;--xy-edge-stroke: var(--likec4-relation-lineColor);--xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor), var(--nrg7w90) 35%);--xy-edge-label-color: color-mix(in srgb, var(--likec4-relation-labelColor), rgba(255 255 255 / .85) 40%);--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 40%);--xy-edge-stroke-width: 3}:where([data-mantine-color-scheme=dark]) .nrg7w91{--nrg7w90: white;--xy-edge-label-color: var(--likec4-relation-labelColor);--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 50%)}:where(.react-flow__edge.selected) .nrg7w91{--xy-edge-stroke: var(--xy-edge-stroke-selected);--xy-edge-stroke-width: 3}.nrg7w91:is([data-edge-hovered=true],[data-edge-active=true]){--xy-edge-stroke: var(--xy-edge-stroke-selected);--xy-edge-stroke-width: 3}:where(.react-flow__edge.selected) .nrg7w91[data-edge-hovered=true]{--xy-edge-stroke-width: 4}._2h8g8h0 .react-flow__edges>svg{mix-blend-mode:plus-lighter}:where([data-mantine-color-scheme=light]) ._2h8g8h0 .react-flow__edges>svg{mix-blend-mode:screen}._2h8g8h0 .react-flow__edges>svg:has(.nrg7w92){opacity:.6;transition:opacity .6s ease-in-out,filter .6s ease-in-out;transition-delay:.2s;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}.nrg7w93{stroke-opacity:.08;transition-property:stroke-width,stroke-opacity;transition-duration:155ms;transition-timing-function:ease-out}:where(.react-flow__edge.selected,[data-edge-active=true],[data-edge-hovered=true]) .nrg7w93{stroke-width:calc(var(--xy-edge-stroke-width) + 8);stroke-opacity:.15}.nrg7w94{fill:var(--xy-edge-stroke);stroke:var(--xy-edge-stroke)}.nrg7w96{animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear;animation-fill-mode:both;stroke-dashoffset:10}:where([data-edge-hovered=true]) .nrg7w96{animation-name:nrg7w95;animation-delay:.45s;transition:stroke .13s ease-out,stroke-width .13s ease-out}:where(.react-flow__edge.selected,[data-edge-active=true],[data-edge-animated=true]) .nrg7w96{animation-name:nrg7w95;animation-delay:0ms;transition:stroke .13s ease-out,stroke-width .13s ease-out}:where([data-edge-dir=back]) .nrg7w96{animation-direction:reverse}.nrg7w92 .nrg7w96{animation-play-state:paused}._1fqbh3j0{align-self:stretch;flex:0 0 auto;font-weight:600;font-size:calc(.875rem * var(--mantine-scale));line-height:1;padding:5px;text-align:center;min-width:22px;border-top-left-radius:4px;border-bottom-left-radius:4px;background-color:color-mix(in srgb,var(--likec4-relation-labelBg),var(--nrg7w90) 5%);font-variant-numeric:tabular-nums}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray]) ._1fqbh3j0{background-color:color-mix(in srgb,var(--likec4-relation-labelBg),var(--nrg7w90) 15%)}:where([data-edge-active=true],[data-edge-hovered=true]) ._1fqbh3j0{background-color:transparent}._1fqbh3j4{--_1fqbh3j3: translate(0,0);top:0;left:0;position:absolute;pointer-events:all;cursor:pointer;width:auto;height:auto;background-color:var(--xy-edge-label-background-color);border-radius:4px;border:0px solid transparent;mix-blend-mode:plus-lighter;transform:var(--_1fqbh3j3);transition:all .13s cubic-bezier(.5,0,.2,1)}._1fqbh3j4[data-edge-hovered=true]{mix-blend-mode:normal;transition:all .14s cubic-bezier(.5,0,.2,1);transform:var(--_1fqbh3j3) scale(1.12)}._1fqbh3j4:is([data-edge-dimmed=true]){opacity:.3;transition:opacity .6s ease-in-out,filter .6s ease-in-out;transition-delay:.2s;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}:where([data-mantine-color-scheme=light]) ._1fqbh3j4{mix-blend-mode:screen}._1fqbh3j5{font-family:var(--likec4-font-family);padding:3px 5px 5px;display:flex;flex-direction:column;align-items:center;width:max-content;max-width:100%;gap:calc(.25rem * var(--mantine-scale));color:var(--xy-edge-label-color)}._1fqbh3j5:has(._1fqbh3j0){flex-direction:row;padding:0;gap:0}._1fqbh3j6{display:contents}._1fqbh3j6:empty{display:none!important}._1fqbh3j5:has(._1fqbh3j0) ._1fqbh3j6{flex:1;display:flex;flex-direction:column;align-items:center;padding:1px 5px 5px}._1fqbh3j7{white-space-collapse:preserve-breaks;font-size:calc(.875rem * var(--mantine-scale));line-height:1.185;color:var(--xy-edge-label-color)}._1fqbh3j8{color:var(--xy-edge-label-color);text-align:center;white-space-collapse:preserve-breaks;font-size:calc(.6875rem * var(--mantine-scale));line-height:1;opacity:.75}._1fqbh3j5:has(._1fqbh3j0) ._1fqbh3j7{padding:2px 5px 4px 2px}._1fqbh3j9{position:absolute;top:4px;right:4px;z-index:9}._1fqbh3ja{--text-fz: var(--mantine-font-size-sm);-webkit-user-select:all;user-select:all;text-align:left;white-space-collapse:preserve-breaks;text-wrap:pretty;line-height:1.25}._1fqbh3jb{--ai-bg: var(--likec4-relation-labelBg);--ai-hover: color-mix(in srgb , var(--likec4-relation-labelBg), var(--nrg7w90) 10%);z-index:calc(var(--layer-overlays, 1) + 1);pointer-events:all;color:var(--xy-edge-label-color);cursor:pointer;opacity:.75;transition:all .13s cubic-bezier(.5,0,.2,1);background-color:var(--ai-bg)}._1fqbh3jb:hover{transform:translateY(1px) scale(1.15)}._1fqbh3jb:active{transform:translateY(-1px) scale(.9)}:where([data-edge-hovered=true]) ._1fqbh3jb{opacity:1}._1fqbh3jb .tabler-icon{width:80%;height:80%;stroke-width:2}@media (min-width: 62em){._1fqbh3ja{--text-fz: var(--mantine-font-size-md)}}._14fvrz60{position:absolute;top:calc(100% - 28px);left:0;width:100%;min-height:28px;display:flex;justify-content:center;align-items:center;z-index:10}._14fvrz61{display:flex;justify-content:center;align-items:center}._14fvrz62{--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg-container-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 50%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));color:var(--likec4-element-loContrast);opacity:.75;transition:all .13s cubic-bezier(.5,0,.2,1);background:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}:where([data-hovered=true]) ._14fvrz62{--ai-bg: var(--ai-bg-hover);opacity:1;box-shadow:1px 1px 3px #0003}._4fi0ne0{width:100%;height:100%;border:3px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);display:flex;justify-content:center;align-items:center}@keyframes _7cmew18{0%{opacity:.6}to{opacity:.3}}._7cmew15{--_7cmew11: 6px;--_7cmew14: 3px;position:relative;width:100%;height:100%;padding:0;margin:0;border:0px solid transparent}.react-flow__node:has(._7cmew15[data-likec4-dimmed=true]){opacity:.25;transition:opacity .6s ease-in-out,filter .6s ease-in-out;transition-delay:.2s;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}.react-flow__node:has(._7cmew15[data-likec4-dimmed=immediate]){opacity:.25;transition:opacity .1s ease-in-out,filter .1s ease-in-out;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}._7cmew16{border-radius:var(--_7cmew11);box-shadow:0 4px 10px .5px #0000001a,0 2px 2px -1px #0006;padding:0;margin:0;transition:all .25s cubic-bezier(.5,0,.2,1);cursor:default;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:0px solid transparent;background:var(--likec4-element-fill);background-clip:padding-box}:where(.react-flow__node.dragging) ._7cmew16{box-shadow:none}:where(.react-flow__node:focus-visible) ._7cmew16{transition-duration:0ms;outline:3px solid var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));outline-offset:calc(.09375rem * var(--mantine-scale))}:where([data-compound-transparent=true]) ._7cmew16{opacity:var(--_7cmew10);border-width:calc(var(--_7cmew14) - 1px)}:where([data-compound-transparent=true]:is([data-hovered=true])) ._7cmew16{transition-delay:.15s;transition-duration:.4s}:where([data-mantine-color-scheme=dark] [data-compound-transparent=true]){--_compound-border-color: color-mix(in srgb, var(--likec4-compound-title-color) 25%, var(--likec4-element-stroke))}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]){--_compound-title-color: var(--likec4-element-stroke)}._7cmew17{--_7cmew13: var(--_compound-border-color,var(--likec4-element-stroke));border-radius:var(--_7cmew11);padding:0;margin:0;transition:all .25s cubic-bezier(.5,0,.2,1);cursor:default;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background:transparent;border-style:dashed;border-width:var(--_7cmew14);border-color:color-mix(in srgb,var(--_7cmew13),transparent var(--_7cmew12, 5%))}._7cmew1b{--_7cmew19: var(--likec4-element-loContrast);--_7cmew1a: 6;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;visibility:hidden}:where(.react-flow__node.selected:not(:focus-visible)) ._7cmew1b{visibility:visible}:where(.react-flow__node:focus-within:not(.selected)) ._7cmew1b{--_7cmew19: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));--_7cmew1a: 8}:where([data-mantine-color-scheme=light]) ._7cmew1b{--_7cmew19: color-mix(in srgb, var(--likec4-element-stroke) 80%, #000)}._7cmew1b rect{stroke:var(--_7cmew19);transform-origin:center center;stroke-width:var(--_7cmew1a);animation-duration:.8s;animation-name:_7cmew18;animation-iteration-count:infinite;animation-direction:alternate;fill:none}._1dn4as0{display:flex;align-items:center;gap:6px;padding-left:14px;padding-top:6px;min-height:30px;padding-right:2px}:where(.react-flow__node.draggable) ._1dn4as0{cursor:grab}.likec4-compound-node:has(.compound-action) ._1dn4as0{padding-left:30px}._1dn4as1{flex:1;font-family:var(--likec4-compound-font-family);font-weight:600;font-size:calc(.9375rem * var(--mantine-scale));text-transform:uppercase;letter-spacing:.2px;color:var(--_compound-title-color,var(--likec4-compound-title-color));mix-blend-mode:screen}:where([data-mantine-color-scheme=light]) ._1dn4as1{mix-blend-mode:darken}._1dn4as2{flex:0 0 20px;height:20px;width:20px;display:flex;align-items:center;justify-content:center;mix-blend-mode:hard-light}._1dn4as2 svg,._1dn4as2 img{width:100%;height:auto;max-height:100%;pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 12%)) drop-shadow(0 1px 8px rgb(0 0 0 / 8%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))}._1dn4as2 img{object-fit:contain}._1smoows1{--_1smoows0: color-mix(in srgb, var(--likec4-element-stroke) 90%, var(--likec4-element-fill));position:relative;width:100%;height:100%;padding:0;margin:0;display:flex;align-items:center;justify-content:center}._1smoows1:after{content:" ";position:absolute;top:100%;left:0;right:0;height:24px;background:transparent;pointer-events:all}.react-flow__node:has(._1smoows1[data-likec4-dimmed=true]){opacity:.25;transition:opacity .4s cubic-bezier(.5,0,.2,1),filter .5s cubic-bezier(.5,0,.2,1);transition-delay:50ms;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(2px));will-change:opacity,filter}.react-flow__node:has(._1smoows1[data-likec4-dimmed=immediate]){opacity:.25;transition:opacity .1s cubic-bezier(.5,0,.2,1),filter .1s cubic-bezier(.5,0,.2,1);filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(2px));will-change:opacity,filter}@keyframes _4zok2q0{0%{stroke-opacity:.8}to{stroke-opacity:.5}}._4zok2q2{--_4zok2q1: var(--likec4-element-loContrast);stroke:var(--_4zok2q1);fill:none;transform-origin:center center;stroke-width:6;animation-duration:1s;animation-iteration-count:infinite;animation-direction:alternate;stroke-opacity:.8;visibility:hidden;pointer-events:none}:where(.react-flow__node.selected) ._4zok2q2{visibility:visible;animation-name:var(--likec4-safari-animation-hook, _4zok2q0)}:where(.react-flow__node:focus-visible,._1smoows1:focus-visible) ._4zok2q2{stroke-width:10;stroke:var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));visibility:visible}:where([data-likec4-shape=queue],[data-likec4-shape=cylinder],[data-likec4-shape=storage]) ._4zok2q2{stroke-width:10}:where([data-mantine-color-scheme=light]) ._4zok2q2{--_4zok2q1: color-mix(in srgb, var(--likec4-element-fill) 50%, #3c3c3c)}._4zok2q3{fill:var(--likec4-element-fill)}._4zok2q4{fill:var(--likec4-element-stroke)}._4zok2q5{fill:var(--_1smoows0, color-mix(in srgb, var(--likec4-element-stroke) 90%, var(--likec4-element-fill)))}._4zok2q7{top:0;left:0;position:absolute;width:100%;height:100%;pointer-events:none;fill:var(--likec4-element-fill);stroke:var(--likec4-element-stroke);overflow:visible;z-index:-1}._4zok2q8{transform-origin:50% 25%;transform:translate(14px,14px) perspective(300px) translateZ(-8px);filter:brightness(.65) saturate(.8);stroke:none}:where([data-likec4-shape=cylinder],[data-likec4-shape=storage]) ._4zok2q8{transform-origin:50% 100%}:where([data-likec4-shape=queue]) ._4zok2q8{transform-origin:75% 25%}._4zok2q8 ._4zok2q5{fill:var(--likec4-element-fill)}._4zok2q9{--_4zok2q6: drop-shadow(0 2px 1px rgba(0, 0, 0, .21)) drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-element-stroke) 40%, transparent)) drop-shadow(0 5px 3px rgba(0, 0, 0, .1)) ;filter:var(--_4zok2q6);transition:fill .12s linear,filter .13s cubic-bezier(.5,0,.2,1);transition-delay:0ms}:where([data-hovered=true]) ._4zok2q9{--_4zok2q6: drop-shadow(0 2px 1px rgba(0, 0, 0, .25)) drop-shadow(0 8px 3px rgba(0, 0, 0, .1)) drop-shadow(0 10px 10px rgba(0, 0, 0, .05)) }:where(.react-flow__node.selected,.react-flow__node:focus-visible,._1smoows1:focus-visible) ._4zok2q9{--_4zok2q6: none}:where([data-likec4-zoom-small=true]) ._4zok2q9{--_4zok2q6: none}._1smoows1{--v7x5jk0: calc(1.1875rem * var(--mantine-scale));--v7x5jk1: calc(1rem * var(--mantine-scale));--v7x5jk2: 60px}._1smoows1[data-likec4-shape-size=xs]{--v7x5jk2: 24px}._1smoows1[data-likec4-shape-size=sm]{--v7x5jk2: 36px}._1smoows1[data-likec4-shape-size=lg]{--v7x5jk2: 82px}._1smoows1[data-likec4-shape-size=xl]{--v7x5jk2: 90px}._1smoows1[data-likec4-text-size=xs]{--v7x5jk0: calc(.75rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=xs]{--v7x5jk1: calc(.5rem * var(--mantine-scale))}._1smoows1[data-likec4-text-size=sm]{--v7x5jk0: calc(.875rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=sm]{--v7x5jk1: calc(.625rem * var(--mantine-scale))}._1smoows1[data-likec4-text-size=lg]{--v7x5jk0: calc(1.5rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=lg]{--v7x5jk1: calc(1.5rem * var(--mantine-scale))}._1smoows1[data-likec4-text-size=xl]{--v7x5jk0: calc(2rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=xl]{--v7x5jk1: calc(2rem * var(--mantine-scale))}.fo05292{flex:0 0 auto;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;text-align:var(--fo05291);font-weight:500;font-size:var(--v7x5jk0);line-height:1.15;text-wrap:balance;color:var(--likec4-element-hiContrast);white-space-collapse:preserve-breaks}.fo05293{flex:0 1 auto;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;font-weight:400;font-size:calc(var(--v7x5jk0) * .74);line-height:1.2;text-align:var(--fo05291);text-wrap:pretty;color:var(--likec4-element-loContrast);white-space-collapse:preserve-breaks;text-overflow:ellipsis;overflow:hidden}:where([data-likec4-shape-size=xs]) .fo05293{display:none}.fo05294{flex:0 0 auto;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;font-weight:400;font-size:calc(var(--v7x5jk0) * .635);line-height:1.125;text-align:var(--fo05291);text-wrap:balance;opacity:.92;color:var(--likec4-element-loContrast)}:where([data-hovered=true]) .fo05294{opacity:1}:where([data-likec4-shape-size=xs],[data-likec4-shape-size=sm]) .fo05294{display:none}.fo05295{flex:1;height:fit-content;width:fit-content;margin:0 auto;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-top:var(--v7x5jk1);padding-bottom:var(--v7x5jk1);padding-left:calc(var(--v7x5jk1) + 8px);padding-right:calc(var(--v7x5jk1) + 8px);overflow:hidden;gap:calc(.75rem * var(--mantine-scale))}:where([data-likec4-shape=queue],[data-likec4-shape=mobile]) .fo05295{padding-left:46px;padding-right:16px}:where([data-likec4-shape=cylinder],[data-likec4-shape=storage]) .fo05295{padding-top:30px}:where([data-likec4-shape=browser]) .fo05295{padding-top:32px;padding-bottom:28px}:where([data-likec4-shape-size=lg],[data-likec4-shape-size=xl]) .fo05295{gap:calc(1rem * var(--mantine-scale))}.fo05296{--fo05291: center;height:fit-content;width:fit-content;flex:0 1 auto;display:flex;flex-direction:column;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden;gap:calc(.5rem * var(--mantine-scale))}.fo05296:has(.fo05293):has(.fo05294){gap:calc(.375rem * var(--mantine-scale))}:where(.fo05290) .fo05296{--fo05291: left;min-width:calc(50% + var(--v7x5jk2));align-items:flex-start}.fo05297{flex:0 0 var(--v7x5jk2);height:var(--v7x5jk2);width:var(--v7x5jk2);display:flex;align-items:center;justify-content:center;mix-blend-mode:hard-light;align-self:flex-start}.fo05297 svg,.fo05297 img{width:100%;height:auto;max-height:100%;pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 12%)) drop-shadow(0 1px 8px rgb(0 0 0 / 8%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))}.fo05297 img{object-fit:contain}._9mmte0{margin:0}._9mmte1:hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) ._9mmte1:hover{background-color:var(--mantine-color-default-hover);color:var(--mantine-color-white)}._9mmte2{max-height:70vh;max-height:calc(100cqh - 70px)}.k4m020{display:inline-block;font-size:var(--mantine-font-size-sm);font-weight:500;white-space:nowrap;padding:3px 6px;border-radius:3px;background:color-mix(in srgb,var(--likec4-element-fill),transparent 25%);line-height:1.2;color:var(--likec4-element-hiContrast)}:where([data-mantine-color-scheme=light]) .k4m021{background:var(--mantine-color-gray-1)}.k4m021[data-missing]{color:var(--mantine-color-orange-4);background:color-mix(in srgb,var(--mantine-color-orange-8) 15%,transparent);border-color:color-mix(in srgb,var(--mantine-color-orange-5) 20%,transparent)}:where([data-mantine-color-scheme=light]) .k4m021[data-missing]{color:var(--mantine-color-orange-8)}.k4m022{flex:1 1 100%;position:relative;width:100%;height:100%;background:var(--mantine-color-body);border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-sm)}:where([data-mantine-color-scheme=light]) .k4m022{border-color:var(--mantine-color-gray-3);background:var(--mantine-color-gray-1)}.k4m023:before{content:"scope:";position:absolute;top:0;left:8px;font-size:9px;font-weight:500;line-height:1;color:var(--mantine-color-dimmed);opacity:.85;transform:translateY(-100%) translateY(-2px)}:where([data-mantine-color-scheme=light]) .k4m023 .mantine-SegmentedControl-root{background:var(--mantine-color-gray-3)}.k4m024{display:inline-block;font-size:var(--mantine-font-size-xl);font-weight:600;padding:1px 5px;min-width:24px;text-align:center;border-radius:var(--mantine-radius-sm);background:var(--mantine-color-dark-7);color:var(--mantine-color-default-color)}:where([data-mantine-color-scheme=light]) .k4m024{background:var(--mantine-color-gray-4);color:var(--mantine-color-dark-6)}.k4m024[data-zero]{color:var(--mantine-color-dimmed)}:where([data-mantine-color-scheme=light]) .k4m024[data-zero]{background:var(--mantine-color-gray-3)}.k4m024[data-missing]{color:var(--mantine-color-orange-4);background:color-mix(in srgb,var(--mantine-color-orange-8) 20%,transparent)}:where([data-mantine-color-scheme=light]) .k4m024[data-missing]{color:var(--mantine-color-orange-8)}._15ijd1w0{margin-top:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-sm)}._15ijd1w1{display:inline-flex;transition:all .13s cubic-bezier(.5,0,.2,1);border:1px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-sm);padding:var(--mantine-spacing-xs) var(--mantine-spacing-md);align-items:center;cursor:pointer;color:var(--mantine-color-gray-7)}._15ijd1w1:hover{transition-timing-function:cubic-bezier(0,0,.4,1);border-style:solid;color:var(--mantine-color-default-color);background:var(--mantine-color-default-hover)}:where([data-mantine-color-scheme=dark]) ._15ijd1w1{color:var(--mantine-color-dark-1)}._15ijd1w1>*{transition:all .13s cubic-bezier(.5,0,.2,1)}._15ijd1w1:hover>*{transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1px)}._180738q0{display:flex;overflow:hidden;align-items:center;gap:3px;justify-content:stretch;border:1px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-sm);min-height:30px;padding:3px 16px 3px 3px;cursor:pointer;color:var(--mantine-color-gray-7)}._180738q0:hover{border-style:solid;color:var(--mantine-color-default-color);background:var(--mantine-color-default-hover)}:where([data-mantine-color-scheme=dark]) ._180738q0{color:var(--mantine-color-dark-1)}._180738q0[data-size=sm]{min-height:22px;padding:2px 8px 2px 2px}._180738q1{flex:0}._180738q2{flex:1 1 100%;transition:transform .13s cubic-bezier(.5,0,.2,1)}._180738q0:hover ._180738q2{transition-timing-function:cubic-bezier(0,0,.4,1);transition-delay:50ms;transform:translate(1px)}._1njqisf1{--_1njqisf0: 8px;--backdrop-color: 34 34 34;--backdrop-opacity: 0%;--backdrop-blur: 0px;container-name:overlay-dialog;container-type:size;box-sizing:border-box;margin:0;position:fixed;top:5rem;right:4rem;bottom:4rem;left:4rem;display:flex;flex-direction:column;align-items:stretch;width:auto;height:auto;max-width:100%;max-height:100%;background:color-mix(in srgb,var(--mantine-color-default-border),transparent 50%);box-shadow:var(--mantine-shadow-xl);border:0 solid transparent;outline:none;border-radius:var(--_1njqisf0);padding:6px}._1njqisf1::backdrop{cursor:zoom-out;-webkit-backdrop-filter:blur(var(--backdrop-blur));backdrop-filter:blur(var(--backdrop-blur));background-color:rgb(var(--backdrop-color) / var(--backdrop-opacity))}:where([data-mantine-color-scheme=light]) ._1njqisf1{--backdrop-color: 15 15 15}._1njqisf2{border:0 solid transparent;border-radius:calc(var(--_1njqisf0) - 2px);background-color:var(--mantine-color-body);overflow:hidden;flex:1;width:100%;height:100%}@media (max-width: 62em){._1njqisf1{border-radius:var(--mantine-radius-sm);top:2rem;right:2rem;bottom:2rem;left:2rem}}@media (max-width: 48em){._1njqisf1{border:none;top:0;right:0;bottom:0;left:0}}._1cwkcdb0{display:inline-flex;align-items:center;padding:6px 2px 0}._1cwkcdb0 .mantine-Text-root{font-size:var(--mantine-font-size-xs);font-weight:500;line-height:1}._1cwkcdb1{padding-left:4px;grid-column:1}._1cwkcdb2{grid-column:2}._1cwkcdb3{grid-column:3;padding-right:4px}._1cwkcdb4{display:grid;grid-column-start:1;grid-column-end:4;border-bottom:1px solid var(--mantine-color-default-border);margin-bottom:0;padding:0 4px 5px}._1cwkcdb4 .mantine-Text-root{font-size:var(--mantine-font-size-sm);font-weight:400;color:var(--mantine-color-dimmed)}._1cwkcdb5{display:contents}._1cwkcdb5:last-child ._1cwkcdb4{border-bottom:none;margin-bottom:0}._1cwkcdb5>*{transition:all .15s ease-in}._1cwkcdb5:is(:hover,[data-selected=true])>*{transition:all .15s ease-out;cursor:pointer;background-color:var(--mantine-color-default-hover)}._1cwkcdb6{display:grid;grid-template-columns:1fr 30px 1fr;grid-auto-rows:min-content max-content;gap:0;align-items:stretch}._1cwkcdb7{display:grid;grid-template-columns:min-content 1fr;grid-auto-rows:min-content max-content;gap:10px 12px;align-items:baseline;justify-items:start}._1cwkcdb8{max-height:70vh;max-height:calc(100cqh - 70px)}.o1xx0f0{gap:calc(var(--mantine-spacing-xs) / 1.5)}.o1xx0f1{top:var(--likec4-navigation-webview-top, 1rem);left:var(--likec4-navigation-webview-left, 1rem);gap:calc(var(--mantine-spacing-xs) / 1.5);margin:0}.likec4-top-left-panel .action-icon{--ai-size: 2rem}.likec4-top-left-panel .action-icon .tabler-icon{width:65%;height:65%}.o1xx0f2{box-shadow:var(--mantine-shadow-md)}.o1xx0f3 .tabler-icon{width:65%;height:65%}.o1xx0f4{flex:1 1 40%;text-align:center;font-weight:500;padding:4px 6px;font-size:calc(.6875rem * var(--mantine-scale));z-index:1}.o1xx0f5{background:var(--mantine-color-gray-2);border-radius:var(--mantine-radius-sm);border:1px solid var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .o1xx0f5{background:var(--mantine-color-dark-5);border-color:var(--mantine-color-dark-4)}.o1xx0f6{position:relative;border-radius:var(--mantine-radius-sm);background:var(--mantine-color-gray-3);box-shadow:inset 1px 1px 3px #00000024}:where([data-mantine-color-scheme=dark]) .o1xx0f6{background:var(--mantine-color-dark-7)}.o1xx0f7{position:absolute;width:8px;height:8px;border:2px solid var(--mantine-color-gray-5);border-radius:3px;transform:translate(-50%,-50%)}._1wkb4qe0{bottom:0;left:0;padding:8px;margin:0}._1wkb4qe1{cursor:default;min-width:200px;max-width:calc(100vw - 16px);background-color:color-mix(in srgb,var(--mantine-color-body),transparent 20%);-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(8px));backdrop-filter:var(--likec4-safari-animation-hook, blur(8px))}:where([data-mantine-color-scheme=dark]) ._1wkb4qe1{background-color:color-mix(in srgb,var(--mantine-color-dark-6),transparent 20%)}._1wkb4qe3{white-space-collapse:preserve-breaks;color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) ._1wkb4qe3{color:var(--mantine-color-gray-5)}@media (min-width: 48em){._1wkb4qe1{min-width:250px;max-width:90vw}}@media (min-width: 62em){._1wkb4qe1{min-width:350px;max-width:70vw}}.r9c4gg0{bottom:0;right:0;padding:8px;margin:0}.r9c4gg1{cursor:default;-webkit-user-select:none;user-select:none;min-width:200px;max-width:calc(100vw - 20px);background-color:color-mix(in srgb,var(--mantine-color-body),transparent 20%);-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(8px));backdrop-filter:var(--likec4-safari-animation-hook, blur(8px))}:where([data-mantine-color-scheme=dark]) .r9c4gg1{background-color:color-mix(in srgb,var(--mantine-color-dark-6),transparent 20%)}.r9c4gg2{padding:calc(var(--mantine-spacing-xs) / 2)}.r9c4gg3{background-color:transparent;transition:all .1s ease-in}.r9c4gg3:hover{transition:all .12s ease-out;background-color:color-mix(in srgb,var(--mantine-primary-color-2),transparent 50%)}:where([data-mantine-color-scheme=dark]) .r9c4gg3:hover{background-color:color-mix(in srgb,var(--mantine-color-dark-3),transparent 60%)}.r9c4gg4{fill:var(--likec4-element-fill);stroke:var(--likec4-element-stroke);stroke-width:1;overflow:visible;width:100%;height:auto;filter:drop-shadow(0 2px 3px rgb(0 0 0 / 22%)) drop-shadow(0 1px 8px rgb(0 0 0 / 10%))}.r9c4gg5{--badge-radius: 2px;--badge-fz: 9.5px;--badge-padding-x: 3px;--badge-height: 13.5px;--badge-lh: 1;font-weight:500;letter-spacing:.2px;padding-top:0;padding-bottom:0;text-transform:lowercase;transition:all .15s ease-in-out;cursor:pointer}@media (min-width: 48em){.r9c4gg1{min-width:300px;max-width:65vw}}@media (min-width: 62em){.r9c4gg1{max-width:40vw}}.totqfb0{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;align-items:center}.totqfb1{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all 175ms ease-in}.totqfb1:hover{transition-timing-function:ease-out;transform:scale(1.1)}.totqfb1:active{transition-duration:.1s;transform:scale(.98) translateY(3px)}.totqfb3{--totqfb2: 35%;--button-bg: color-mix(in srgb, var(--mantine-primary-color-filled), transparent var(--totqfb2));--button-hover: color-mix(in srgb, var(--mantine-primary-color-filled-hover), transparent var(--totqfb2));transition:all 175ms ease-in;background-color:var(--button-bg)}[data-mantine-color-scheme=light] .totqfb3{--totqfb2: 15%}:where(.totqfb1,.totqfb3) .tabler-icon{width:.85em;height:.85em}.totqfb4{position:absolute;margin:0;padding:0;top:0;left:0;width:100%;height:100%;border:2px solid var(--mantine-color-orange-6);pointer-events:none}@media (min-width: 62em){.totqfb0{gap:.6rem}.totqfb4{border-width:4px}}._1fw3wl00{fill:var(--xy-edge-stroke);stroke:var(--xy-edge-stroke);fill-opacity:.75;stroke-width:1;cursor:grab;pointer-events:auto;visibility:hidden}._1fw3wl00:hover{stroke:var(--mantine-primary-color-filled-hover);stroke-width:9;transition:stroke .1s ease-out,stroke-width .1s ease-out}:where(.react-flow__edge.selected,[data-edge-hovered=true]) ._1fw3wl00{visibility:visible;transition:fill-opacity .15s ease-out,stroke .15s ease-out,stroke-width .15s ease-out;transition-delay:50ms;fill-opacity:1;stroke-width:5}._1fw3wl01{cursor:grabbing}._1fw3wl01 *,._1fw3wl01 .react-flow__edge-interaction{cursor:grabbing!important}._1xfux2o0{position:absolute;top:1px;right:1px;z-index:9}._1xfux2o1{--text-fz: var(--mantine-font-size-sm);-webkit-user-select:all;user-select:all;text-align:left;white-space-collapse:preserve-breaks;text-wrap:pretty;line-height:1.25}@media (min-width: 62em){._1xfux2o1{--text-fz: var(--mantine-font-size-md)}}._1g39cqs0{overflow-y:scroll;min-width:250px;max-width:min(90vw,500px)}._1g39cqs1{gap:4px}._1g39cqs2{display:block;font-size:10px;font-weight:500;white-space:nowrap;padding:2px 5px;border-radius:2px;background:color-mix(in srgb,var(--likec4-element-fill),transparent 45%);line-height:1.1}:where([data-mantine-color-scheme=dark]) ._1g39cqs2{color:var(--likec4-element-loContrast)}._1g39cqs3{white-space-collapse:preserve-breaks;font-size:var(--mantine-font-size-sm)}.dbuyb70{position:absolute;top:4px;left:2px;z-index:10}.dbuyb71{width:min-content;height:min-content}.dbuyb72{--ai-color-hover: var(--likec4-element-hiContrast);--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));opacity:.45;color:var(--_compound-title-color,var(--likec4-element-loContrast));transition:all .13s cubic-bezier(.5,0,.2,1);background:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]) .dbuyb72{--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);--ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 10%);--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);opacity:.85}:where([data-hovered=true]) .dbuyb72{opacity:1}._1xwo2e70{font-size:calc(.625rem * var(--mantine-scale));font-weight:600;cursor:default;-webkit-user-select:all;user-select:all}.k9mic70{position:absolute;top:2px;right:2px;z-index:10}.k9mic70{--k9mic71: var(--likec4-element-loContrast)}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]) .k9mic70{--k9mic71: var(--likec4-element-stroke)}.k9mic72{--ai-color-hover: var(--likec4-element-hiContrast);--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));opacity:.4;pointer-events:all;cursor:pointer;color:var(--_compound-title-color,var(--k9mic71));background-color:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}.k9mic72:hover{opacity:1;box-shadow:1px 1px 3px #00000026}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]) .k9mic72{--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);--ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 10%);--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);opacity:.6}.k9mic73{width:min-content;height:min-content}._1jvuy7m0{position:absolute;top:2px;right:2px;z-index:10}:where([data-likec4-shape=browser]) ._1jvuy7m0{right:5px}:where([data-likec4-shape=cylinder],[data-likec4-shape=storage]) ._1jvuy7m0{top:14px}:where([data-likec4-shape=queue]) ._1jvuy7m0{top:1px;right:12px}._1jvuy7m1{width:min-content;height:min-content}._1jvuy7m2{--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));pointer-events:all;color:var(--likec4-element-loContrast);cursor:pointer;background-color:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}._1jvuy7m2:hover{box-shadow:1px 1px 3px #00000026}
|
|
1
|
+
.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: rgb(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: rgb(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, var(--xy-background-color-props, 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__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__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-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__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:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform: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))}._2h8g8h1,.react-flow.not-initialized{opacity:0}.react-flow._2h8g8h0{--xy-background-color: var(--likec4-background-color);--xy-background-pattern-color: var(--likec4-background-pattern-color)}.react-flow._2h8g8h0 .react-flow__pane{-webkit-user-select:none}.react-flow._2h8g8h0 .xyflow__viewport{will-change:transform}.react-flow._2h8g8h0._2h8g8h3{--likec4-background-color: transparent !important;--xy-background-color: transparent !important;background-color:transparent!important}:where(.react-flow._2h8g8h0,._2h8g8h3) .react-flow__attribution{display:none}:where([data-likec4-zoom-small=true]) ._2h8g8h4{visibility:hidden}@supports (hanging-punctuation: first) and (font: -apple-system-body) and (-webkit-appearance: none){._2h8g8h0{--likec4-safari-animation-hook: }}._1fw3wl00{fill:var(--xy-edge-stroke);stroke:var(--xy-edge-stroke);fill-opacity:.75;stroke-width:1;cursor:grab;pointer-events:auto;visibility:hidden}._1fw3wl00:hover{stroke:var(--mantine-primary-color-filled-hover);stroke-width:9;transition:stroke .1s ease-out,stroke-width .1s ease-out}:where(.react-flow__edge.selected,[data-edge-hovered=true]) ._1fw3wl00{visibility:visible;transition:fill-opacity .15s ease-out,stroke .15s ease-out,stroke-width .15s ease-out;transition-delay:50ms;fill-opacity:1;stroke-width:5}._1fw3wl01{cursor:grabbing}._1fw3wl01 *,._1fw3wl01 .react-flow__edge-interaction{cursor:grabbing!important}._1xfux2o0{position:absolute;top:1px;right:1px;z-index:9}._1xfux2o1{--text-fz: var(--mantine-font-size-sm);-webkit-user-select:all;user-select:all;text-align:left;white-space-collapse:preserve-breaks;text-wrap:pretty;line-height:1.25}@media (min-width: 62em){._1xfux2o1{--text-fz: var(--mantine-font-size-md)}}.likec4-diagram-root{overflow:hidden;position:relative;width:100%;height:100%;padding:0;margin:0;box-sizing:border-box;-webkit-font-smoothing:var(--mantine-webkit-font-smoothing);-moz-osx-font-smoothing:var(--mantine-moz-font-smoothing)}:where(.likec4-diagram-root) .mantine-ActionIcon-icon .tabler-icon{width:75%;height:75%}.likec4-diagram-root{--likec4-font-family: var(--likec4-default-font-family,'ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"');--likec4-background-color: var(--mantine-color-body);--likec4-background-pattern-color: var(--mantine-color-gray-4);--likec4-compound-font-family: var(--likec4-font-family);--likec4-compound-title-color: var(--likec4-element-loContrast);--likec4-element-font-family: var(--likec4-font-family);--likec4-element-fill: #3b82f6;--likec4-element-stroke: #2563eb;--likec4-element-hiContrast: #eff6ff;--likec4-element-loContrast: #bfdbfe;--likec4-relation-lineColor: #64748b;--likec4-relation-labelBg: #0f172a;--likec4-relation-labelColor: #cbd5e1}:where([data-mantine-color-scheme=dark]) .likec4-diagram-root{--likec4-background-pattern-color: var(--mantine-color-dark-5)}:where([data-likec4-color=primary]){--likec4-element-fill: #3b82f6;--likec4-element-stroke: #2563eb;--likec4-element-hiContrast: #eff6ff;--likec4-element-loContrast: #bfdbfe;--likec4-compound-title-color: #bfdbfe;--likec4-relation-lineColor: #3b82f6;--likec4-relation-labelBg: #172554;--likec4-relation-labelColor: #60a5fa}:where([data-likec4-color=primary][data-compound-depth="1"]){--likec4-element-fill: #145ed7;--likec4-element-stroke: #194bb8}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="1"]){--likec4-element-fill: #1a5bc5;--likec4-element-stroke: #1e49a9}:where([data-likec4-color=primary][data-compound-depth="2"]){--likec4-element-fill: #195cc8;--likec4-element-stroke: #1d4aac}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="2"]){--likec4-element-fill: #1e56b1;--likec4-element-stroke: #204698}:where([data-likec4-color=primary][data-compound-depth="3"]){--likec4-element-fill: #1e59ba;--likec4-element-stroke: #2149a0}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="3"]){--likec4-element-fill: #21519f;--likec4-element-stroke: #224289}:where([data-likec4-color=primary][data-compound-depth="4"]){--likec4-element-fill: #2357ad;--likec4-element-stroke: #244795}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="4"]){--likec4-element-fill: #234c8e;--likec4-element-stroke: #243f7a}:where([data-likec4-color=primary][data-compound-depth="5"]){--likec4-element-fill: #2755a0;--likec4-element-stroke: #27468a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="5"]){--likec4-element-fill: #25467d;--likec4-element-stroke: #243b6c}:where([data-likec4-color=primary][data-compound-depth="6"]){--likec4-element-fill: #2a5293;--likec4-element-stroke: #2a447f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=primary][data-compound-depth="6"]){--likec4-element-fill: #25416d;--likec4-element-stroke: #24365f}:where([data-likec4-color=blue]){--likec4-element-fill: #3b82f6;--likec4-element-stroke: #2563eb;--likec4-element-hiContrast: #eff6ff;--likec4-element-loContrast: #bfdbfe;--likec4-compound-title-color: #bfdbfe;--likec4-relation-lineColor: #3b82f6;--likec4-relation-labelBg: #172554;--likec4-relation-labelColor: #60a5fa}:where([data-likec4-color=blue][data-compound-depth="1"]){--likec4-element-fill: #145ed7;--likec4-element-stroke: #194bb8}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="1"]){--likec4-element-fill: #1a5bc5;--likec4-element-stroke: #1e49a9}:where([data-likec4-color=blue][data-compound-depth="2"]){--likec4-element-fill: #195cc8;--likec4-element-stroke: #1d4aac}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="2"]){--likec4-element-fill: #1e56b1;--likec4-element-stroke: #204698}:where([data-likec4-color=blue][data-compound-depth="3"]){--likec4-element-fill: #1e59ba;--likec4-element-stroke: #2149a0}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="3"]){--likec4-element-fill: #21519f;--likec4-element-stroke: #224289}:where([data-likec4-color=blue][data-compound-depth="4"]){--likec4-element-fill: #2357ad;--likec4-element-stroke: #244795}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="4"]){--likec4-element-fill: #234c8e;--likec4-element-stroke: #243f7a}:where([data-likec4-color=blue][data-compound-depth="5"]){--likec4-element-fill: #2755a0;--likec4-element-stroke: #27468a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="5"]){--likec4-element-fill: #25467d;--likec4-element-stroke: #243b6c}:where([data-likec4-color=blue][data-compound-depth="6"]){--likec4-element-fill: #2a5293;--likec4-element-stroke: #2a447f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=blue][data-compound-depth="6"]){--likec4-element-fill: #25416d;--likec4-element-stroke: #24365f}:where([data-likec4-color=secondary]){--likec4-element-fill: #0284c7;--likec4-element-stroke: #0369a1;--likec4-element-hiContrast: #f0f9ff;--likec4-element-loContrast: #B6ECF7;--likec4-compound-title-color: #B6ECF7;--likec4-relation-lineColor: #0ea5e9;--likec4-relation-labelBg: #082f49;--likec4-relation-labelColor: #38bdf8}:where([data-likec4-color=secondary][data-compound-depth="1"]){--likec4-element-fill: #086392;--likec4-element-stroke: #084f76}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="1"]){--likec4-element-fill: #0d5d86;--likec4-element-stroke: #0b4a6c}:where([data-likec4-color=secondary][data-compound-depth="2"]){--likec4-element-fill: #0c5e88;--likec4-element-stroke: #0b4b6e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="2"]){--likec4-element-fill: #105579;--likec4-element-stroke: #0e4462}:where([data-likec4-color=secondary][data-compound-depth="3"]){--likec4-element-fill: #10597f;--likec4-element-stroke: #0e4767}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="3"]){--likec4-element-fill: #134e6c;--likec4-element-stroke: #103e57}:where([data-likec4-color=secondary][data-compound-depth="4"]){--likec4-element-fill: #135475;--likec4-element-stroke: #11435f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="4"]){--likec4-element-fill: #154660;--likec4-element-stroke: #11384e}:where([data-likec4-color=secondary][data-compound-depth="5"]){--likec4-element-fill: #164f6c;--likec4-element-stroke: #133f58}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="5"]){--likec4-element-fill: #163f55;--likec4-element-stroke: #123345}:where([data-likec4-color=secondary][data-compound-depth="6"]){--likec4-element-fill: #194a64;--likec4-element-stroke: #153c51}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=secondary][data-compound-depth="6"]){--likec4-element-fill: #17384a;--likec4-element-stroke: #132d3c}:where([data-likec4-color=sky]){--likec4-element-fill: #0284c7;--likec4-element-stroke: #0369a1;--likec4-element-hiContrast: #f0f9ff;--likec4-element-loContrast: #B6ECF7;--likec4-compound-title-color: #B6ECF7;--likec4-relation-lineColor: #0ea5e9;--likec4-relation-labelBg: #082f49;--likec4-relation-labelColor: #38bdf8}:where([data-likec4-color=sky][data-compound-depth="1"]){--likec4-element-fill: #086392;--likec4-element-stroke: #084f76}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="1"]){--likec4-element-fill: #0d5d86;--likec4-element-stroke: #0b4a6c}:where([data-likec4-color=sky][data-compound-depth="2"]){--likec4-element-fill: #0c5e88;--likec4-element-stroke: #0b4b6e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="2"]){--likec4-element-fill: #105579;--likec4-element-stroke: #0e4462}:where([data-likec4-color=sky][data-compound-depth="3"]){--likec4-element-fill: #10597f;--likec4-element-stroke: #0e4767}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="3"]){--likec4-element-fill: #134e6c;--likec4-element-stroke: #103e57}:where([data-likec4-color=sky][data-compound-depth="4"]){--likec4-element-fill: #135475;--likec4-element-stroke: #11435f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="4"]){--likec4-element-fill: #154660;--likec4-element-stroke: #11384e}:where([data-likec4-color=sky][data-compound-depth="5"]){--likec4-element-fill: #164f6c;--likec4-element-stroke: #133f58}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="5"]){--likec4-element-fill: #163f55;--likec4-element-stroke: #123345}:where([data-likec4-color=sky][data-compound-depth="6"]){--likec4-element-fill: #194a64;--likec4-element-stroke: #153c51}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=sky][data-compound-depth="6"]){--likec4-element-fill: #17384a;--likec4-element-stroke: #132d3c}:where([data-likec4-color=muted]){--likec4-element-fill: #64748b;--likec4-element-stroke: #475569;--likec4-element-hiContrast: #f8fafc;--likec4-element-loContrast: #cbd5e1;--likec4-compound-title-color: #cbd5e1;--likec4-relation-lineColor: #64748b;--likec4-relation-labelBg: #0f172a;--likec4-relation-labelColor: #cbd5e1}:where([data-likec4-color=muted][data-compound-depth="1"]){--likec4-element-fill: #4e5a6a;--likec4-element-stroke: #384250}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="1"]){--likec4-element-fill: #4b5563;--likec4-element-stroke: #363e4b}:where([data-likec4-color=muted][data-compound-depth="2"]){--likec4-element-fill: #4c5665;--likec4-element-stroke: #363f4c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="2"]){--likec4-element-fill: #474f5c;--likec4-element-stroke: #333a45}:where([data-likec4-color=muted][data-compound-depth="3"]){--likec4-element-fill: #4a5360;--likec4-element-stroke: #353d48}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="3"]){--likec4-element-fill: #424a54;--likec4-element-stroke: #30363f}:where([data-likec4-color=muted][data-compound-depth="4"]){--likec4-element-fill: #48505b;--likec4-element-stroke: #333a44}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="4"]){--likec4-element-fill: #3e444d;--likec4-element-stroke: #2d323a}:where([data-likec4-color=muted][data-compound-depth="5"]){--likec4-element-fill: #454c56;--likec4-element-stroke: #323841}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="5"]){--likec4-element-fill: #393e46;--likec4-element-stroke: #292e34}:where([data-likec4-color=muted][data-compound-depth="6"]){--likec4-element-fill: #434951;--likec4-element-stroke: #30353d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=muted][data-compound-depth="6"]){--likec4-element-fill: #34383e;--likec4-element-stroke: #26292f}:where([data-likec4-color=slate]){--likec4-element-fill: #64748b;--likec4-element-stroke: #475569;--likec4-element-hiContrast: #f8fafc;--likec4-element-loContrast: #cbd5e1;--likec4-compound-title-color: #cbd5e1;--likec4-relation-lineColor: #64748b;--likec4-relation-labelBg: #0f172a;--likec4-relation-labelColor: #cbd5e1}:where([data-likec4-color=slate][data-compound-depth="1"]){--likec4-element-fill: #4e5a6a;--likec4-element-stroke: #384250}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="1"]){--likec4-element-fill: #4b5563;--likec4-element-stroke: #363e4b}:where([data-likec4-color=slate][data-compound-depth="2"]){--likec4-element-fill: #4c5665;--likec4-element-stroke: #363f4c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="2"]){--likec4-element-fill: #474f5c;--likec4-element-stroke: #333a45}:where([data-likec4-color=slate][data-compound-depth="3"]){--likec4-element-fill: #4a5360;--likec4-element-stroke: #353d48}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="3"]){--likec4-element-fill: #424a54;--likec4-element-stroke: #30363f}:where([data-likec4-color=slate][data-compound-depth="4"]){--likec4-element-fill: #48505b;--likec4-element-stroke: #333a44}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="4"]){--likec4-element-fill: #3e444d;--likec4-element-stroke: #2d323a}:where([data-likec4-color=slate][data-compound-depth="5"]){--likec4-element-fill: #454c56;--likec4-element-stroke: #323841}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="5"]){--likec4-element-fill: #393e46;--likec4-element-stroke: #292e34}:where([data-likec4-color=slate][data-compound-depth="6"]){--likec4-element-fill: #434951;--likec4-element-stroke: #30353d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=slate][data-compound-depth="6"]){--likec4-element-fill: #34383e;--likec4-element-stroke: #26292f}:where([data-likec4-color=gray]){--likec4-element-fill: #737373;--likec4-element-stroke: #525252;--likec4-element-hiContrast: #fafafa;--likec4-element-loContrast: #d4d4d4;--likec4-compound-title-color: #d4d4d4;--likec4-relation-lineColor: #6E6E6E;--likec4-relation-labelBg: #18191b;--likec4-relation-labelColor: #C6C6C6}:where([data-likec4-color=gray][data-compound-depth="1"]){--likec4-element-fill: #595959;--likec4-element-stroke: #3f3f3f}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="1"]){--likec4-element-fill: #545454;--likec4-element-stroke: #3c3c3c}:where([data-likec4-color=gray][data-compound-depth="2"]){--likec4-element-fill: #555555;--likec4-element-stroke: #3d3d3d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="2"]){--likec4-element-fill: #4e4e4e;--likec4-element-stroke: #383838}:where([data-likec4-color=gray][data-compound-depth="3"]){--likec4-element-fill: #525252;--likec4-element-stroke: #3a3a3a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="3"]){--likec4-element-fill: #484848;--likec4-element-stroke: #343434}:where([data-likec4-color=gray][data-compound-depth="4"]){--likec4-element-fill: #4e4e4e;--likec4-element-stroke: #383838}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="4"]){--likec4-element-fill: #434343;--likec4-element-stroke: #303030}:where([data-likec4-color=gray][data-compound-depth="5"]){--likec4-element-fill: #4b4b4b;--likec4-element-stroke: #353535}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="5"]){--likec4-element-fill: #3d3d3d;--likec4-element-stroke: #2b2b2b}:where([data-likec4-color=gray][data-compound-depth="6"]){--likec4-element-fill: #474747;--likec4-element-stroke: #333333}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray][data-compound-depth="6"]){--likec4-element-fill: #373737;--likec4-element-stroke: #272727}:where([data-likec4-color=red]){--likec4-element-fill: #AC4D39;--likec4-element-stroke: #853A2D;--likec4-element-hiContrast: #FBD3CB;--likec4-element-loContrast: #f5b2a3;--likec4-compound-title-color: #f5b2a3;--likec4-relation-lineColor: #AC4D39;--likec4-relation-labelBg: #b91c1c;--likec4-relation-labelColor: #f5b2a3}:where([data-likec4-color=red][data-compound-depth="1"]){--likec4-element-fill: #803e30;--likec4-element-stroke: #632f26}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="1"]){--likec4-element-fill: #773d30;--likec4-element-stroke: #5c2e26}:where([data-likec4-color=red][data-compound-depth="2"]){--likec4-element-fill: #793d31;--likec4-element-stroke: #5e2e26}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="2"]){--likec4-element-fill: #6c3a2f;--likec4-element-stroke: #542c25}:where([data-likec4-color=red][data-compound-depth="3"]){--likec4-element-fill: #723c31;--likec4-element-stroke: #582e27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="3"]){--likec4-element-fill: #62372e;--likec4-element-stroke: #4c2a24}:where([data-likec4-color=red][data-compound-depth="4"]){--likec4-element-fill: #6a3b31;--likec4-element-stroke: #522d27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="4"]){--likec4-element-fill: #58342c;--likec4-element-stroke: #442823}:where([data-likec4-color=red][data-compound-depth="5"]){--likec4-element-fill: #633a31;--likec4-element-stroke: #4d2c27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="5"]){--likec4-element-fill: #4f312a;--likec4-element-stroke: #3d2521}:where([data-likec4-color=red][data-compound-depth="6"]){--likec4-element-fill: #5d3931;--likec4-element-stroke: #482b27}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=red][data-compound-depth="6"]){--likec4-element-fill: #462d28;--likec4-element-stroke: #36231f}:where([data-likec4-color=green]){--likec4-element-fill: #428a4f;--likec4-element-stroke: #2d5d39;--likec4-element-hiContrast: #f8fafc;--likec4-element-loContrast: #c2f0c2;--likec4-compound-title-color: #c2f0c2;--likec4-relation-lineColor: #15803d;--likec4-relation-labelBg: #052e16;--likec4-relation-labelColor: #22c55e}:where([data-likec4-color=green][data-compound-depth="1"]){--likec4-element-fill: #35683e;--likec4-element-stroke: #24462d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="1"]){--likec4-element-fill: #34613c;--likec4-element-stroke: #24412b}:where([data-likec4-color=green][data-compound-depth="2"]){--likec4-element-fill: #35623d;--likec4-element-stroke: #24422c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="2"]){--likec4-element-fill: #325839;--likec4-element-stroke: #223c29}:where([data-likec4-color=green][data-compound-depth="3"]){--likec4-element-fill: #345d3c;--likec4-element-stroke: #243e2a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="3"]){--likec4-element-fill: #305136;--likec4-element-stroke: #213626}:where([data-likec4-color=green][data-compound-depth="4"]){--likec4-element-fill: #33573a;--likec4-element-stroke: #233b29}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="4"]){--likec4-element-fill: #2d4932;--likec4-element-stroke: #1f3123}:where([data-likec4-color=green][data-compound-depth="5"]){--likec4-element-fill: #335238;--likec4-element-stroke: #223728}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="5"]){--likec4-element-fill: #2b422f;--likec4-element-stroke: #1d2c21}:where([data-likec4-color=green][data-compound-depth="6"]){--likec4-element-fill: #324d37;--likec4-element-stroke: #223426}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=green][data-compound-depth="6"]){--likec4-element-fill: #283a2b;--likec4-element-stroke: #1b271e}:where([data-likec4-color=amber]){--likec4-element-fill: #A35829;--likec4-element-stroke: #7E451D;--likec4-element-hiContrast: #FFE0C2;--likec4-element-loContrast: #f9b27c;--likec4-compound-title-color: #f9b27c;--likec4-relation-lineColor: #b45309;--likec4-relation-labelBg: #78350f;--likec4-relation-labelColor: #FFE0C2}:where([data-likec4-color=amber][data-compound-depth="1"]){--likec4-element-fill: #794524;--likec4-element-stroke: #5e361a}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="1"]){--likec4-element-fill: #704225;--likec4-element-stroke: #56331b}:where([data-likec4-color=amber][data-compound-depth="2"]){--likec4-element-fill: #724325;--likec4-element-stroke: #58341b}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="2"]){--likec4-element-fill: #663e25;--likec4-element-stroke: #4e301b}:where([data-likec4-color=amber][data-compound-depth="3"]){--likec4-element-fill: #6b4126;--likec4-element-stroke: #52321c}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="3"]){--likec4-element-fill: #5c3a25;--likec4-element-stroke: #472d1b}:where([data-likec4-color=amber][data-compound-depth="4"]){--likec4-element-fill: #643e27;--likec4-element-stroke: #4d301d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="4"]){--likec4-element-fill: #533624;--likec4-element-stroke: #402a1a}:where([data-likec4-color=amber][data-compound-depth="5"]){--likec4-element-fill: #5d3c28;--likec4-element-stroke: #472f1d}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="5"]){--likec4-element-fill: #493223;--likec4-element-stroke: #38261a}:where([data-likec4-color=amber][data-compound-depth="6"]){--likec4-element-fill: #563a28;--likec4-element-stroke: #422d1e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=amber][data-compound-depth="6"]){--likec4-element-fill: #412d21;--likec4-element-stroke: #322319}:where([data-likec4-color=indigo]){--likec4-element-fill: #6366f1;--likec4-element-stroke: #4f46e5;--likec4-element-hiContrast: #eef2ff;--likec4-element-loContrast: #c7d2fe;--likec4-compound-title-color: #c7d2fe;--likec4-relation-lineColor: #6366f1;--likec4-relation-labelBg: #1e1b4b;--likec4-relation-labelColor: #818cf8}:where([data-likec4-color=indigo][data-compound-depth="1"]){--likec4-element-fill: #2529e1;--likec4-element-stroke: #2d24c2}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="1"]){--likec4-element-fill: #2529d3;--likec4-element-stroke: #3028b2}:where([data-likec4-color=indigo][data-compound-depth="2"]){--likec4-element-fill: #2428d7;--likec4-element-stroke: #3028b5}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="2"]){--likec4-element-fill: #282bbf;--likec4-element-stroke: #312aa1}:where([data-likec4-color=indigo][data-compound-depth="3"]){--likec4-element-fill: #292cc8;--likec4-element-stroke: #322ba9}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="3"]){--likec4-element-fill: #2b2dac;--likec4-element-stroke: #312b91}:where([data-likec4-color=indigo][data-compound-depth="4"]){--likec4-element-fill: #2d30ba;--likec4-element-stroke: #342e9e}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="4"]){--likec4-element-fill: #2c2f99;--likec4-element-stroke: #302c82}:where([data-likec4-color=indigo][data-compound-depth="5"]){--likec4-element-fill: #3133ac;--likec4-element-stroke: #363092}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="5"]){--likec4-element-fill: #2d2f87;--likec4-element-stroke: #2f2b73}:where([data-likec4-color=indigo][data-compound-depth="6"]){--likec4-element-fill: #34369f;--likec4-element-stroke: #373287}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=indigo][data-compound-depth="6"]){--likec4-element-fill: #2d2e76;--likec4-element-stroke: #2e2b65}._1acgss10{display:flex;overflow:hidden;align-items:center;gap:3px;justify-content:stretch;transition:all .13s cubic-bezier(.5,0,.2,1);border:1px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-sm);min-height:30px;padding:3px 16px 3px 3px;cursor:pointer;color:var(--mantine-color-gray-7)}._1acgss10:hover{border-style:solid;color:var(--mantine-color-default-color);background:var(--mantine-color-default-hover)}:where([data-mantine-color-scheme=dark]) ._1acgss10{color:var(--mantine-color-dark-1)}._1acgss10[data-size=sm]{min-height:22px;padding:2px 8px 2px 2px}._1acgss11{flex:0}._1acgss12{flex:1 1 100%;transition:transform .1s cubic-bezier(.5,0,.2,1)}._1acgss10:hover ._1acgss12{transition-timing-function:cubic-bezier(0,0,.4,1);transition-delay:50ms;transform:translate(1px)}._1g39cqs0{overflow-y:scroll;min-width:250px;max-width:min(90vw,500px)}._1g39cqs1{gap:4px}._1g39cqs2{display:block;font-size:10px;font-weight:500;white-space:nowrap;padding:2px 5px;border-radius:2px;background:color-mix(in srgb,var(--likec4-element-fill),transparent 45%);line-height:1.1}:where([data-mantine-color-scheme=dark]) ._1g39cqs2{color:var(--likec4-element-loContrast)}._1g39cqs3{white-space-collapse:preserve-breaks;font-size:var(--mantine-font-size-sm)}@keyframes nrg7w95{0%{stroke-dashoffset:46}to{stroke-dashoffset:10}}.nrg7w91{--nrg7w90: black;--xy-edge-stroke: var(--likec4-relation-lineColor);--xy-edge-stroke-selected: color-mix(in srgb, var(--likec4-relation-lineColor), var(--nrg7w90) 35%);--xy-edge-label-color: color-mix(in srgb, var(--likec4-relation-labelColor), rgba(255 255 255 / .85) 40%);--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 40%);--xy-edge-stroke-width: 3}:where([data-mantine-color-scheme=dark]) .nrg7w91{--nrg7w90: white;--xy-edge-label-color: var(--likec4-relation-labelColor);--xy-edge-label-background-color: color-mix(in srgb, var(--likec4-relation-labelBg), transparent 50%)}:where(.react-flow__edge.selected) .nrg7w91{--xy-edge-stroke: var(--xy-edge-stroke-selected);--xy-edge-stroke-width: 3}.nrg7w91:is([data-edge-hovered=true],[data-edge-active=true]){--xy-edge-stroke: var(--xy-edge-stroke-selected);--xy-edge-stroke-width: 3}:where(.react-flow__edge.selected) .nrg7w91[data-edge-hovered=true]{--xy-edge-stroke-width: 4}._2h8g8h0 .react-flow__edges>svg{mix-blend-mode:plus-lighter}:where([data-mantine-color-scheme=light]) ._2h8g8h0 .react-flow__edges>svg{mix-blend-mode:screen}._2h8g8h0 .react-flow__edges>svg:has(.nrg7w92){opacity:.6;transition:opacity .6s ease-in-out,filter .6s ease-in-out;transition-delay:.2s;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}.nrg7w93{stroke-opacity:.08;transition-property:stroke-width,stroke-opacity;transition-duration:155ms;transition-timing-function:ease-out}:where(.react-flow__edge.selected,[data-edge-active=true],[data-edge-hovered=true]) .nrg7w93{stroke-width:calc(var(--xy-edge-stroke-width) + 8);stroke-opacity:.15}.nrg7w94{fill:var(--xy-edge-stroke);stroke:var(--xy-edge-stroke)}.nrg7w96{animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear;animation-fill-mode:both;stroke-dashoffset:10}:where([data-edge-hovered=true]) .nrg7w96{animation-name:nrg7w95;animation-delay:.45s;transition:stroke .13s ease-out,stroke-width .13s ease-out}:where(.react-flow__edge.selected,[data-edge-active=true],[data-edge-animated=true]) .nrg7w96{animation-name:nrg7w95;animation-delay:0ms;transition:stroke .13s ease-out,stroke-width .13s ease-out}:where([data-edge-dir=back]) .nrg7w96{animation-direction:reverse}.nrg7w92 .nrg7w96{animation-play-state:paused}._1fqbh3j0{align-self:stretch;flex:0 0 auto;font-weight:600;font-size:calc(.875rem * var(--mantine-scale));line-height:1;padding:5px;text-align:center;min-width:22px;border-top-left-radius:4px;border-bottom-left-radius:4px;background-color:color-mix(in srgb,var(--likec4-relation-labelBg),var(--nrg7w90) 5%);font-variant-numeric:tabular-nums}:where([data-mantine-color-scheme=dark]) :where([data-likec4-color=gray]) ._1fqbh3j0{background-color:color-mix(in srgb,var(--likec4-relation-labelBg),var(--nrg7w90) 15%)}:where([data-edge-active=true],[data-edge-hovered=true]) ._1fqbh3j0{background-color:transparent}._1fqbh3j4{--_1fqbh3j3: translate(0,0);top:0;left:0;position:absolute;pointer-events:all;cursor:pointer;width:auto;height:auto;background-color:var(--xy-edge-label-background-color);border-radius:4px;border:0px solid transparent;mix-blend-mode:plus-lighter;transform:var(--_1fqbh3j3);transition:all .13s cubic-bezier(.5,0,.2,1)}._1fqbh3j4[data-edge-hovered=true]{mix-blend-mode:normal;transition:all .14s cubic-bezier(.5,0,.2,1);transform:var(--_1fqbh3j3) scale(1.12)}._1fqbh3j4:is([data-edge-dimmed=true]){opacity:.3;transition:opacity .6s ease-in-out,filter .6s ease-in-out;transition-delay:.2s;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}:where([data-mantine-color-scheme=light]) ._1fqbh3j4{mix-blend-mode:screen}._1fqbh3j5{font-family:var(--likec4-font-family);padding:3px 5px 5px;display:flex;flex-direction:column;align-items:center;width:max-content;max-width:100%;gap:calc(.25rem * var(--mantine-scale));color:var(--xy-edge-label-color)}._1fqbh3j5:has(._1fqbh3j0){flex-direction:row;padding:0;gap:0}._1fqbh3j6{display:contents}._1fqbh3j6:empty{display:none!important}._1fqbh3j5:has(._1fqbh3j0) ._1fqbh3j6{flex:1;display:flex;flex-direction:column;align-items:center;padding:1px 5px 5px}._1fqbh3j7{white-space-collapse:preserve-breaks;font-size:calc(.875rem * var(--mantine-scale));line-height:1.185;color:var(--xy-edge-label-color)}._1fqbh3j8{color:var(--xy-edge-label-color);text-align:center;white-space-collapse:preserve-breaks;font-size:calc(.6875rem * var(--mantine-scale));line-height:1;opacity:.75}._1fqbh3j5:has(._1fqbh3j0) ._1fqbh3j7{padding:2px 5px 4px 2px}._1fqbh3j9{position:absolute;top:4px;right:4px;z-index:9}._1fqbh3ja{--text-fz: var(--mantine-font-size-sm);-webkit-user-select:all;user-select:all;text-align:left;white-space-collapse:preserve-breaks;text-wrap:pretty;line-height:1.25}._1fqbh3jb{--ai-bg: var(--likec4-relation-labelBg);--ai-hover: color-mix(in srgb , var(--likec4-relation-labelBg), var(--nrg7w90) 10%);z-index:calc(var(--layer-overlays, 1) + 1);pointer-events:all;color:var(--xy-edge-label-color);cursor:pointer;opacity:.75;transition:all .13s cubic-bezier(.5,0,.2,1);background-color:var(--ai-bg)}._1fqbh3jb:hover{transform:translateY(1px) scale(1.15)}._1fqbh3jb:active{transform:translateY(-1px) scale(.9)}:where([data-edge-hovered=true]) ._1fqbh3jb{opacity:1}._1fqbh3jb .tabler-icon{width:80%;height:80%;stroke-width:2}@media (min-width: 62em){._1fqbh3ja{--text-fz: var(--mantine-font-size-md)}}.paikoy2{--backdrop-opacity: 0%;--backdrop-blur: 0px;box-sizing:border-box;margin:0;padding:0;position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;max-width:100vw;max-height:100vh;background:transparent;border:0 solid transparent}.paikoy2::backdrop{-webkit-backdrop-filter:blur(var(--backdrop-blur));backdrop-filter:blur(var(--backdrop-blur));background-color:rgb(36 36 36 / var(--backdrop-opacity))}.paikoy3{--paikoy0: var(--mantine-color-body);--paikoy1: linear-gradient(180deg, var(--likec4-element-fill), var(--likec4-element-fill) 4px, transparent 4px);position:absolute;pointer-events:all;gap:var(--mantine-spacing-lg);justify-content:stretch;background-color:var(--paikoy0);background-image:var(--paikoy1);border-top-color:var(--likec4-element-fill)}:where([data-mantine-color-scheme=dark]) .paikoy3{--paikoy0: var(--mantine-color-dark-6);--paikoy1: linear-gradient(180deg, color-mix(in srgb, var(--likec4-element-fill) 15%, transparent), transparent 80px), linear-gradient(180deg, var(--likec4-element-fill), var(--likec4-element-fill) 4px, transparent 4px) }.paikoy4{flex:0;cursor:move}:where(.paikoy3) .react-flow__attribution{display:none}.paikoy5{display:block;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;font-weight:600;font-size:24px;line-height:var(--mantine-line-height-xs)}.paikoy6{flex:0 0 40px;height:40px;width:40px;display:flex;align-items:center;justify-content:center;align-self:flex-start;cursor:move}:where([data-mantine-color-scheme=dark]) .paikoy6{mix-blend-mode:hard-light}.paikoy6 svg,.paikoy6 img{width:100%;height:auto;max-height:100%;pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 10%)) drop-shadow(0 1px 8px rgb(0 0 0 / 5%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 2%))}.paikoy6 img{object-fit:contain}.paikoy9{--paikoy7: var(--mantine-color-dark-1);width:100%;background:var(--mantine-color-body);border-radius:var(--mantine-radius-sm);padding:10px 8px;transition:all .13s cubic-bezier(.5,0,.2,1);border:1px solid var(--mantine-color-default-border)}.paikoy9:hover{--paikoy8: var(--mantine-color-dark-1);--paikoy7: var(--mantine-color-default-color);background:var(--mantine-color-default-hover)}:where([data-mantine-color-scheme=dark]) .paikoy9{background:var(--mantine-color-dark-6)}:where([data-mantine-color-scheme=light]) .paikoy9{--paikoy8: var(--mantine-color-gray-6);--paikoy7: var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=light]) .paikoy9:hover{--paikoy8: var(--mantine-color-gray-7)}.paikoy9 .mantine-ThemeIcon-root{--ti-size: 22px;transition:all .13s cubic-bezier(.5,0,.2,1);color:var(--paikoy8, var(--mantine-color-dark-2))}.paikoy9 .mantine-ThemeIcon-root:hover{color:var(--mantine-color-default-color)}.paikoy9>*{transition:all .13s cubic-bezier(.5,0,.2,1)}.paikoy9:hover>*{transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1.6px)}.paikoya{transition:all .13s cubic-bezier(.5,0,.2,1);color:var(--paikoy7, var(--mantine-color-gray-7));font-size:15px;font-weight:500;line-height:1.4}.paikoyb{flex:1;display:flex;flex-direction:column;justify-content:stretch;overflow:hidden;gap:var(--mantine-spacing-sm)}.paikoyc{background:var(--mantine-color-gray-1);border-radius:var(--mantine-radius-sm);flex-wrap:nowrap;gap:6px;padding:4px}:where([data-mantine-color-scheme=dark]) .paikoyc{background:var(--mantine-color-dark-7)}.paikoyd{font-size:var(--mantine-font-size-xs);font-weight:500;flex-grow:1;padding:6px 8px;transition:all .13s cubic-bezier(.5,0,.2,1);border-radius:var(--mantine-radius-sm);color:var(--mantine-color-gray-7)}.paikoyd:hover{transition-timing-function:cubic-bezier(0,0,.4,1);color:var(--mantine-color-default-color);background:var(--mantine-color-gray-3)}.paikoyd[data-active]{transition:none;background:var(--mantine-color-white);box-shadow:var(--mantine-shadow-xs);color:var(--mantine-color-default-color)}:where([data-mantine-color-scheme=dark]) .paikoyd{color:var(--mantine-color-dark-1)}:where([data-mantine-color-scheme=dark]) .paikoyd:hover{color:var(--mantine-color-white);background:var(--mantine-color-dark-6)}:where([data-mantine-color-scheme=dark]) .paikoyd:is([data-active]){color:var(--mantine-color-white);background:var(--mantine-color-dark-5)}.paikoye{flex:1;overflow:hidden;position:relative}.paikoye:not(:has(.mantine-ScrollArea-root)){padding-left:4px;padding-right:4px}.paikoye .mantine-ScrollArea-root{width:100%;height:100%}.paikoye .mantine-ScrollArea-viewport>div{padding-left:4px;padding-right:4px}.paikoyf{flex:1;display:grid;grid-template-columns:min-content 1fr;grid-auto-rows:min-content max-content;gap:calc(1.25rem * var(--mantine-scale)) calc(1rem * var(--mantine-scale));align-items:baseline;justify-items:stretch}.paikoyg{justify-self:end}.paikoyh{position:absolute;width:14px;height:14px;border:3.5px solid var(--mantine-color-dark-3);border-top:none;border-left:none;border-radius:2px;bottom:2px;right:2px;transition:all .13s cubic-bezier(.5,0,.2,1);cursor:se-resize}.paikoyh:hover{border-width:4px;border-color:var(--mantine-color-dark-1)}._6nb9wd0[data-level="1"]{margin-bottom:calc(1rem * var(--mantine-scale))}._6nb9wd1{cursor:default;margin-top:0;margin-bottom:0}._6nb9wd2{transition:all .13s cubic-bezier(.5,0,.2,1);color:var(--mantine-color-gray-7)}._6nb9wd2:hover{transition-timing-function:cubic-bezier(0,0,.4,1)}:where([data-mantine-color-scheme=dark]) ._6nb9wd2{color:var(--mantine-color-dark-1)}._6nb9wd2>*{transition:all .13s cubic-bezier(.5,0,.2,1)}._6nb9wd2:hover>:not([data-no-transform]){transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1px)}.mantine-Button-root:hover ._6nb9wd2>:not([data-no-transform]){transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1px)}._6nb9wd4{cursor:pointer;width:100%;justify-content:stretch;flex-wrap:nowrap;height:calc(2.25rem * var(--mantine-scale));padding-inline-start:calc(1rem * var(--mantine-scale));padding-inline-end:calc(.625rem * var(--mantine-scale));border-radius:var(--mantine-radius-sm);align-items:center;color:var(--mantine-color-gray-7)}._6nb9wd4:hover{background:var(--mantine-color-gray-light-hover)}:where([data-mantine-color-scheme=dark]) ._6nb9wd4{color:var(--mantine-color-gray-light-color)}._6nb9wd4 .tabler-icon{transition:all .13s cubic-bezier(.5,0,.2,1);width:90%;opacity:.65}._14fvrz60{position:absolute;top:calc(100% - 28px);left:0;width:100%;min-height:28px;display:flex;justify-content:center;align-items:center;z-index:10}._14fvrz61{display:flex;justify-content:center;align-items:center}._14fvrz62{--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg-container-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 50%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));color:var(--likec4-element-loContrast);opacity:.75;transition:all .13s cubic-bezier(.5,0,.2,1);background:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}:where([data-hovered=true]) ._14fvrz62{--ai-bg: var(--ai-bg-hover);opacity:1;box-shadow:1px 1px 3px #0003}._4fi0ne0{width:100%;height:100%;border:3px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);display:flex;justify-content:center;align-items:center}@keyframes _7cmew18{0%{opacity:.6}to{opacity:.3}}._7cmew15{--_7cmew11: 6px;--_7cmew14: 3px;position:relative;width:100%;height:100%;padding:0;margin:0;border:0px solid transparent}.react-flow__node:has(._7cmew15[data-likec4-dimmed=true]){opacity:.25;transition:opacity .6s ease-in-out,filter .6s ease-in-out;transition-delay:.2s;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}.react-flow__node:has(._7cmew15[data-likec4-dimmed=immediate]){opacity:.25;transition:opacity .1s ease-in-out,filter .1s ease-in-out;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(1px));will-change:opacity,filter}._7cmew16{border-radius:var(--_7cmew11);box-shadow:0 4px 10px .5px #0000001a,0 2px 2px -1px #0006;padding:0;margin:0;transition:all .25s cubic-bezier(.5,0,.2,1);cursor:default;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:0px solid transparent;background:var(--likec4-element-fill);background-clip:padding-box}:where(.react-flow__node.dragging) ._7cmew16{box-shadow:none}:where(.react-flow__node:focus-visible) ._7cmew16{transition-duration:0ms;outline:3px solid var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));outline-offset:calc(.09375rem * var(--mantine-scale))}:where([data-compound-transparent=true]) ._7cmew16{opacity:var(--_7cmew10);border-width:calc(var(--_7cmew14) - 1px)}:where([data-compound-transparent=true]:is([data-hovered=true])) ._7cmew16{transition-delay:.15s;transition-duration:.4s}:where([data-mantine-color-scheme=dark] [data-compound-transparent=true]){--_compound-border-color: color-mix(in srgb, var(--likec4-compound-title-color) 25%, var(--likec4-element-stroke))}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]){--_compound-title-color: var(--likec4-element-stroke)}._7cmew17{--_7cmew13: var(--_compound-border-color,var(--likec4-element-stroke));border-radius:var(--_7cmew11);padding:0;margin:0;transition:all .25s cubic-bezier(.5,0,.2,1);cursor:default;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background:transparent;border-style:dashed;border-width:var(--_7cmew14);border-color:color-mix(in srgb,var(--_7cmew13),transparent var(--_7cmew12, 5%))}._7cmew1b{--_7cmew19: var(--likec4-element-loContrast);--_7cmew1a: 6;position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;visibility:hidden}:where(.react-flow__node.selected:not(:focus-visible)) ._7cmew1b{visibility:visible}:where(.react-flow__node:focus-within:not(.selected)) ._7cmew1b{--_7cmew19: color-mix(in srgb, var(--likec4-element-stroke) 30%, var(--likec4-element-loContrast));--_7cmew1a: 8}:where([data-mantine-color-scheme=light]) ._7cmew1b{--_7cmew19: color-mix(in srgb, var(--likec4-element-stroke) 80%, #000)}._7cmew1b rect{stroke:var(--_7cmew19);transform-origin:center center;stroke-width:var(--_7cmew1a);animation-duration:.8s;animation-name:_7cmew18;animation-iteration-count:infinite;animation-direction:alternate;fill:none}._1dn4as0{display:flex;align-items:center;gap:6px;padding-left:14px;padding-top:6px;min-height:30px;padding-right:2px}:where(.react-flow__node.draggable) ._1dn4as0{cursor:grab}.likec4-compound-node:has(.compound-action) ._1dn4as0{padding-left:30px}._1dn4as1{flex:1;font-family:var(--likec4-compound-font-family);font-weight:600;font-size:calc(.9375rem * var(--mantine-scale));text-transform:uppercase;letter-spacing:.2px;color:var(--_compound-title-color,var(--likec4-compound-title-color));mix-blend-mode:screen}:where([data-mantine-color-scheme=light]) ._1dn4as1{mix-blend-mode:darken}._1dn4as2{flex:0 0 20px;height:20px;width:20px;display:flex;align-items:center;justify-content:center;mix-blend-mode:hard-light}._1dn4as2 svg,._1dn4as2 img{width:100%;height:auto;max-height:100%;pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 12%)) drop-shadow(0 1px 8px rgb(0 0 0 / 8%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))}._1dn4as2 img{object-fit:contain}._1smoows1{--_1smoows0: color-mix(in srgb, var(--likec4-element-stroke) 90%, var(--likec4-element-fill));position:relative;width:100%;height:100%;padding:0;margin:0;display:flex;align-items:center;justify-content:center}._1smoows1:after{content:" ";position:absolute;top:100%;left:0;right:0;height:24px;background:transparent;pointer-events:all}.react-flow__node:has(._1smoows1[data-likec4-dimmed=true]){opacity:.25;transition:opacity .4s cubic-bezier(.5,0,.2,1),filter .5s cubic-bezier(.5,0,.2,1);transition-delay:50ms;filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(2px));will-change:opacity,filter}.react-flow__node:has(._1smoows1[data-likec4-dimmed=immediate]){opacity:.25;transition:opacity .1s cubic-bezier(.5,0,.2,1),filter .1s cubic-bezier(.5,0,.2,1);filter:grayscale(.85) var(--likec4-safari-animation-hook, blur(2px));will-change:opacity,filter}@keyframes _4zok2q0{0%{stroke-opacity:.8}to{stroke-opacity:.5}}._4zok2q2{--_4zok2q1: var(--likec4-element-loContrast);stroke:var(--_4zok2q1);fill:none;transform-origin:center center;stroke-width:6;animation-duration:1s;animation-iteration-count:infinite;animation-direction:alternate;stroke-opacity:.8;visibility:hidden;pointer-events:none}:where(.react-flow__node.selected) ._4zok2q2{visibility:visible;animation-name:var(--likec4-safari-animation-hook, _4zok2q0)}:where(.react-flow__node:focus-visible,._1smoows1:focus-visible) ._4zok2q2{stroke-width:10;stroke:var(--mantine-primary-color-outline, var(--mantine-primary-color-filled, var(--likec4-element-stroke)));visibility:visible}:where([data-likec4-shape=queue],[data-likec4-shape=cylinder],[data-likec4-shape=storage]) ._4zok2q2{stroke-width:10}:where([data-mantine-color-scheme=light]) ._4zok2q2{--_4zok2q1: color-mix(in srgb, var(--likec4-element-fill) 50%, #3c3c3c)}._4zok2q3{fill:var(--likec4-element-fill)}._4zok2q4{fill:var(--likec4-element-stroke)}._4zok2q5{fill:var(--_1smoows0, color-mix(in srgb, var(--likec4-element-stroke) 90%, var(--likec4-element-fill)))}._4zok2q7{top:0;left:0;position:absolute;width:100%;height:100%;pointer-events:none;fill:var(--likec4-element-fill);stroke:var(--likec4-element-stroke);overflow:visible;z-index:-1}._4zok2q8{transform-origin:50% 25%;transform:translate(14px,14px) perspective(300px) translateZ(-8px);filter:brightness(.65) saturate(.8);stroke:none}:where([data-likec4-shape=cylinder],[data-likec4-shape=storage]) ._4zok2q8{transform-origin:50% 100%}:where([data-likec4-shape=queue]) ._4zok2q8{transform-origin:75% 25%}._4zok2q8 ._4zok2q5{fill:var(--likec4-element-fill)}._4zok2q9{--_4zok2q6: drop-shadow(0 2px 1px rgba(0, 0, 0, .21)) drop-shadow(0 1px 1px color-mix(in srgb, var(--likec4-element-stroke) 40%, transparent)) drop-shadow(0 5px 3px rgba(0, 0, 0, .1)) ;filter:var(--_4zok2q6);transition:fill .12s linear,filter .13s cubic-bezier(.5,0,.2,1);transition-delay:0ms}:where([data-hovered=true]) ._4zok2q9{--_4zok2q6: drop-shadow(0 2px 1px rgba(0, 0, 0, .25)) drop-shadow(0 8px 3px rgba(0, 0, 0, .1)) drop-shadow(0 10px 10px rgba(0, 0, 0, .05)) }:where(.react-flow__node.selected,.react-flow__node:focus-visible,._1smoows1:focus-visible) ._4zok2q9{--_4zok2q6: none}:where([data-likec4-zoom-small=true]) ._4zok2q9{--_4zok2q6: none}._1smoows1{--v7x5jk0: calc(1.1875rem * var(--mantine-scale));--v7x5jk1: calc(1rem * var(--mantine-scale));--likec4-icon-size: 60px}._1smoows1[data-likec4-shape-size=xs]{--likec4-icon-size: 24px}._1smoows1[data-likec4-shape-size=sm]{--likec4-icon-size: 36px}._1smoows1[data-likec4-shape-size=lg]{--likec4-icon-size: 82px}._1smoows1[data-likec4-shape-size=xl]{--likec4-icon-size: 90px}._1smoows1[data-likec4-text-size=xs]{--v7x5jk0: calc(.75rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=xs]{--v7x5jk1: calc(.5rem * var(--mantine-scale))}._1smoows1[data-likec4-text-size=sm]{--v7x5jk0: calc(.875rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=sm]{--v7x5jk1: calc(.625rem * var(--mantine-scale))}._1smoows1[data-likec4-text-size=lg]{--v7x5jk0: calc(1.5rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=lg]{--v7x5jk1: calc(1.5rem * var(--mantine-scale))}._1smoows1[data-likec4-text-size=xl]{--v7x5jk0: calc(2rem * var(--mantine-scale))}._1smoows1[data-likec4-padding=xl]{--v7x5jk1: calc(2rem * var(--mantine-scale))}.fo05292{flex:0 0 auto;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;text-align:var(--fo05291);font-weight:500;font-size:var(--v7x5jk0);line-height:1.15;text-wrap:balance;color:var(--likec4-element-hiContrast);white-space-collapse:preserve-breaks}.fo05293{flex:0 1 auto;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;font-weight:400;font-size:calc(var(--v7x5jk0) * .74);line-height:1.2;text-align:var(--fo05291);text-wrap:pretty;color:var(--likec4-element-loContrast);white-space-collapse:preserve-breaks;text-overflow:ellipsis;overflow:hidden}:where([data-likec4-shape-size=xs]) .fo05293{display:none}.fo05294{flex:0 0 auto;font-family:var(--likec4-element-font-family);font-optical-sizing:auto;font-style:normal;font-weight:400;font-size:calc(var(--v7x5jk0) * .635);line-height:1.125;text-align:var(--fo05291);text-wrap:balance;opacity:.92;color:var(--likec4-element-loContrast)}:where([data-hovered=true]) .fo05294{opacity:1}:where([data-likec4-shape-size=xs],[data-likec4-shape-size=sm]) .fo05294{display:none}.fo05295{flex:1;height:fit-content;width:fit-content;margin:0 auto;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-top:var(--v7x5jk1);padding-bottom:var(--v7x5jk1);padding-left:calc(var(--v7x5jk1) + 8px);padding-right:calc(var(--v7x5jk1) + 8px);overflow:hidden;gap:calc(.75rem * var(--mantine-scale))}:where([data-likec4-shape=queue],[data-likec4-shape=mobile]) .fo05295{padding-left:46px;padding-right:16px}:where([data-likec4-shape=cylinder],[data-likec4-shape=storage]) .fo05295{padding-top:30px}:where([data-likec4-shape=browser]) .fo05295{padding-top:32px;padding-bottom:28px}:where([data-likec4-shape-size=lg],[data-likec4-shape-size=xl]) .fo05295{gap:calc(1rem * var(--mantine-scale))}.fo05296{--fo05291: center;height:fit-content;width:fit-content;flex:0 1 auto;display:flex;flex-direction:column;align-items:stretch;justify-content:center;flex-wrap:nowrap;overflow:hidden;gap:calc(.5rem * var(--mantine-scale))}.fo05296:has(.fo05293):has(.fo05294){gap:calc(.375rem * var(--mantine-scale))}:where(.fo05290) .fo05296{--fo05291: left;min-width:calc(50% + var(--likec4-icon-size));align-items:flex-start}.fo05297{flex:0 0 var(--likec4-icon-size);height:var(--likec4-icon-size);width:var(--likec4-icon-size);display:flex;align-items:center;justify-content:center;mix-blend-mode:hard-light;align-self:flex-start}.fo05297 svg,.fo05297 img{width:100%;height:auto;max-height:100%;pointer-events:none;filter:drop-shadow(0 0 3px rgb(0 0 0 / 12%)) drop-shadow(0 1px 8px rgb(0 0 0 / 8%)) drop-shadow(1px 1px 16px rgb(0 0 0 / 3%))}.fo05297 img{object-fit:contain}._9mmte0{margin:0}._9mmte1:hover{background-color:var(--mantine-color-gray-0)}:where([data-mantine-color-scheme=dark]) ._9mmte1:hover{background-color:var(--mantine-color-default-hover);color:var(--mantine-color-white)}._9mmte2{max-height:70vh;max-height:calc(100cqh - 70px)}.k4m020{display:inline-block;font-size:var(--mantine-font-size-sm);font-weight:500;white-space:nowrap;padding:3px 6px;border-radius:3px;background:color-mix(in srgb,var(--likec4-element-fill),transparent 25%);line-height:1.2;color:var(--likec4-element-hiContrast)}:where([data-mantine-color-scheme=light]) .k4m021{background:var(--mantine-color-gray-1)}.k4m021[data-missing]{color:var(--mantine-color-orange-4);background:color-mix(in srgb,var(--mantine-color-orange-8) 15%,transparent);border-color:color-mix(in srgb,var(--mantine-color-orange-5) 20%,transparent)}:where([data-mantine-color-scheme=light]) .k4m021[data-missing]{color:var(--mantine-color-orange-8)}.k4m022{flex:1 1 100%;position:relative;width:100%;height:100%;background:var(--mantine-color-body);border:1px solid var(--mantine-color-default-border);border-radius:var(--mantine-radius-sm)}:where([data-mantine-color-scheme=light]) .k4m022{border-color:var(--mantine-color-gray-3);background:var(--mantine-color-gray-1)}.k4m023:before{content:"scope:";position:absolute;top:0;left:8px;font-size:9px;font-weight:500;line-height:1;color:var(--mantine-color-dimmed);opacity:.85;transform:translateY(-100%) translateY(-2px)}:where([data-mantine-color-scheme=light]) .k4m023 .mantine-SegmentedControl-root{background:var(--mantine-color-gray-3)}.k4m024{display:inline-block;font-size:var(--mantine-font-size-xl);font-weight:600;padding:1px 5px;min-width:24px;text-align:center;border-radius:var(--mantine-radius-sm);background:var(--mantine-color-dark-7);color:var(--mantine-color-default-color)}:where([data-mantine-color-scheme=light]) .k4m024{background:var(--mantine-color-gray-4);color:var(--mantine-color-dark-6)}.k4m024[data-zero]{color:var(--mantine-color-dimmed)}:where([data-mantine-color-scheme=light]) .k4m024[data-zero]{background:var(--mantine-color-gray-3)}.k4m024[data-missing]{color:var(--mantine-color-orange-4);background:color-mix(in srgb,var(--mantine-color-orange-8) 20%,transparent)}:where([data-mantine-color-scheme=light]) .k4m024[data-missing]{color:var(--mantine-color-orange-8)}._15ijd1w0{margin-top:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-sm)}._15ijd1w1{display:inline-flex;transition:all .13s cubic-bezier(.5,0,.2,1);border:1px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-sm);padding:var(--mantine-spacing-xs) var(--mantine-spacing-md);align-items:center;cursor:pointer;color:var(--mantine-color-gray-7)}._15ijd1w1:hover{transition-timing-function:cubic-bezier(0,0,.4,1);border-style:solid;color:var(--mantine-color-default-color);background:var(--mantine-color-default-hover)}:where([data-mantine-color-scheme=dark]) ._15ijd1w1{color:var(--mantine-color-dark-1)}._15ijd1w1>*{transition:all .13s cubic-bezier(.5,0,.2,1)}._15ijd1w1:hover>*{transition-timing-function:cubic-bezier(0,0,.4,1);transform:translate(1px)}._1njqisf1{--_1njqisf0: 8px;--backdrop-color: 34 34 34;--backdrop-opacity: 0%;--backdrop-blur: 0px;box-sizing:border-box;margin:0;position:fixed;top:5rem;right:4rem;bottom:4rem;left:4rem;width:auto;height:auto;max-width:100vw;max-height:100vh;background:color-mix(in srgb,var(--mantine-color-default-border),transparent 50%);box-shadow:var(--mantine-shadow-xl);border:0 solid transparent;outline:none;border-radius:var(--_1njqisf0);padding:6px}._1njqisf1::backdrop{cursor:zoom-out;-webkit-backdrop-filter:blur(var(--backdrop-blur));backdrop-filter:blur(var(--backdrop-blur));background-color:rgb(var(--backdrop-color) / var(--backdrop-opacity))}:where([data-mantine-color-scheme=light]) ._1njqisf1{--backdrop-color: 15 15 15}._1njqisf2{position:relative;container-name:overlay-dialog;container-type:size;border:0 solid transparent;border-radius:calc(var(--_1njqisf0) - 2px);background-color:var(--mantine-color-body);overflow:hidden;width:100%;height:100%}@media (max-width: 62em){._1njqisf1{border-radius:var(--mantine-radius-sm);top:2rem;right:2rem;bottom:2rem;left:2rem;width:calc(100vw - 4rem);max-width:calc(100vw - 4rem)}}@media (max-width: 48em){._1njqisf1{border:none;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh}}._1cwkcdb0{display:inline-flex;align-items:center;padding:6px 2px 0}._1cwkcdb0 .mantine-Text-root{font-size:var(--mantine-font-size-xs);font-weight:500;line-height:1}._1cwkcdb1{padding-left:4px;grid-column:1}._1cwkcdb2{grid-column:2}._1cwkcdb3{grid-column:3;padding-right:4px}._1cwkcdb4{display:grid;grid-column-start:1;grid-column-end:4;border-bottom:1px solid var(--mantine-color-default-border);margin-bottom:0;padding:0 4px 5px;width:100%}._1cwkcdb4 .mantine-Text-root{font-size:var(--mantine-font-size-sm);font-weight:400;color:var(--mantine-color-dimmed)}._1cwkcdb5{display:contents}._1cwkcdb5:last-child ._1cwkcdb4{border-bottom:none;margin-bottom:0}._1cwkcdb5>*{transition:all .15s ease-in}._1cwkcdb5:is(:hover,[data-selected=true])>*{transition:all .15s ease-out;cursor:pointer;background-color:var(--mantine-color-default-hover)}._1cwkcdb6{display:grid;grid-template-columns:1fr 30px 1fr;grid-auto-rows:min-content max-content;gap:0;align-items:stretch}._1cwkcdb7{display:grid;grid-template-columns:min-content 1fr;grid-auto-rows:min-content max-content;gap:10px 12px;align-items:baseline;justify-items:start}._1cwkcdb8{max-height:70vh;max-height:calc(100cqh - 70px)}.xmhqho2{--xmhqho0: 20%;--xmhqho1: var(--mantine-color-default);height:32px;padding-left:var(--mantine-spacing-sm);padding-right:4px;border-radius:var(--mantine-radius-sm);color:var(--mantine-color-placeholder);box-shadow:var(--mantine-shadow-xs);border:1px solid;cursor:pointer;transition:all .13s cubic-bezier(.5,0,.2,1);-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(8px));backdrop-filter:var(--likec4-safari-animation-hook, blur(8px));background-color:color-mix(in srgb,var(--xmhqho1),transparent var(--xmhqho0))}.xmhqho2:hover{--xmhqho0: 10%;--xmhqho1: var(--mantine-color-default-hover);border-color:var(--mantine-color-default-border);box-shadow:var(--mantine-shadow-sm)}:where([data-mantine-color-scheme=light]) .xmhqho2{--xmhqho1: var(--mantine-color-white);border-color:var(--mantine-color-gray-4)}:where([data-mantine-color-scheme=dark]) .xmhqho2{--xmhqho1: var(--mantine-color-dark-6);border-color:var(--mantine-color-dark-4)}.xmhqho2 .tabler-icon{color:var(--mantine-color-text)}.xmhqho3{font-size:11px;line-height:1;padding:4px 7px;border-radius:var(--mantine-radius-sm);border:1px solid;font-weight:700}:where([data-mantine-color-scheme=light]) .xmhqho3{color:var(--mantine-color-gray-7);border-color:var(--mantine-color-gray-2);background-color:color-mix(in srgb,var(--mantine-color-gray-2),transparent 20%)}:where([data-mantine-color-scheme=dark]) .xmhqho3{color:var(--mantine-color-dark-0);border-color:var(--mantine-color-dark-7);background-color:var(--mantine-color-dark-8)}._1cfw8gr3{--_1cfw8gr0: var(--mantine-color-dark-1);--_1cfw8gr2: var(--mantine-color-dimmed);--_1cfw8gr1: var(--mantine-color-dimmed);display:flex;width:100%;background:var(--mantine-color-body);border-radius:var(--mantine-radius-sm);padding:12px 8px 12px 14px;min-height:60px;gap:10px;border:1px solid var(--mantine-color-default-border)}._1cfw8gr3:hover{--_1cfw8gr2: var(--mantine-primary-color-2);--_1cfw8gr0: var(--mantine-primary-color-0);--_1cfw8gr1: var(--mantine-primary-color-1);outline:none;background-color:color-mix(in srgb,var(--mantine-primary-color-8),transparent 40%);border-color:var(--mantine-primary-color-9)}._1cfw8gr3:focus{--_1cfw8gr2: var(--mantine-primary-color-2);--_1cfw8gr0: var(--mantine-primary-color-0);--_1cfw8gr1: var(--mantine-primary-color-1);outline:none;background-color:var(--mantine-primary-color-8);border-color:var(--mantine-primary-color-9)}:where([data-mantine-color-scheme=dark]) ._1cfw8gr3{border-color:transparent;background-color:color-mix(in srgb,var(--mantine-color-dark-6),transparent 20%)}:where([data-mantine-color-scheme=light]) ._1cfw8gr3{--_1cfw8gr2: var(--mantine-color-gray-6);--_1cfw8gr0: var(--mantine-color-gray-7);background-color:color-mix(in srgb,var(--mantine-color-white),transparent 10%)}:where([data-mantine-color-scheme=light]) ._1cfw8gr3:hover{--_1cfw8gr2: var(--mantine-primary-color-3);--_1cfw8gr0: var(--mantine-primary-color-0);--_1cfw8gr1: var(--mantine-primary-color-1);border-color:var(--mantine-primary-color-6);background-color:var(--mantine-primary-color-5)}._1cfw8gr5{color:var(--_1cfw8gr0, var(--mantine-color-gray-7));font-size:16px;font-weight:500;line-height:1.1}:where([data-disabled]) ._1cfw8gr5{opacity:.4}._1cfw8gr6{margin-top:4px;color:var(--_1cfw8gr1, var(--mantine-color-dimmed));font-size:12px;line-height:1.4}:where([data-disabled]) ._1cfw8gr6{opacity:.85}._1cfw8gr7{width:100%;height:100%;border:2px dashed var(--mantine-color-default-border);border-radius:var(--mantine-radius-md);display:flex;justify-content:center;align-items:center;font-size:var(--mantine-font-size-md);color:var(--mantine-color-dimmed);padding:var(--mantine-spacing-md);padding-block:var(--mantine-spacing-xl)}.basone1{outline:none;margin-bottom:8px}.basone2{overflow:hidden;container-name:basone0;container-type:inline-size;height:100%}.basone3{display:flex;align-items:baseline;outline:none!important;gap:4px}.basone4{margin-top:8px}.basone5{color:var(--mantine-color-dimmed)}.basone6{--likec4-icon-size: 24px;flex-grow:1}.basone1:focus>.basone3 .basone6{--_1cfw8gr2: var(--mantine-primary-color-2);--_1cfw8gr0: var(--mantine-primary-color-0);--_1cfw8gr1: var(--mantine-primary-color-1);outline:none;background-color:var(--mantine-primary-color-8);border-color:var(--mantine-primary-color-9)}.basone9{color:var(--_1cfw8gr1, var(--mantine-color-dimmed));font-size:10px;line-height:1.3;display:block;font-weight:500;white-space:nowrap;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--mantine-color-dark-9),transparent 70%)}:where([data-mantine-color-scheme=light]) .basone9{background-color:color-mix(in srgb,var(--mantine-color-gray-3),transparent 80%)}.basoneb{flex:0 0 var(--likec4-icon-size);height:var(--likec4-icon-size);width:var(--likec4-icon-size);display:flex;align-items:center;justify-content:center;align-self:flex-start;margin-top:4px}.basoneb svg,.basoneb img{width:100%;height:auto;max-height:100%;pointer-events:none}.basoneb img{object-fit:contain}.basoneb.likec4-shape-icon svg{color:var(--_1cfw8gr2);width:90%;stroke-width:1.5}.basonec{flex:0;color:var(--_1cfw8gr1, var(--mantine-color-dimmed));font-size:10px;font-weight:500;white-space:nowrap;line-height:1.1}@container basone0 (width < 450px){.basone6{--likec4-icon-size: 18px}.basone7{flex-direction:column-reverse;align-items:flex-start;gap:2px}.basonec{display:none}}.ia79t50{flex-wrap:nowrap;display:flex}.ia79t50 .mantine-ThemeIcon-root{--ti-size: 24px;color:var(--_1cfw8gr2, var(--mantine-color-dark-2))}.ia79t50[data-disabled] .mantine-ThemeIcon-root{opacity:.45}.ia79t53{margin-top:4px;color:var(--_1cfw8gr1, var(--mantine-color-dimmed));font-size:13px;line-height:1.4}:where(.ia79t50[data-disabled]) .ia79t53{opacity:.85}.eien2d0{position:fixed;z-index:900;top:0;right:0;bottom:0;left:0;background-color:#222222f2;-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(6px));backdrop-filter:var(--likec4-safari-animation-hook, blur(6px))}:where([data-mantine-color-scheme=light]) .eien2d0{background-color:#ffffffeb}.eien2d1{container-name:likec4-search;container-type:size;position:fixed;z-index:901;top:0;left:0;width:100%;height:100%;max-height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:stretch;gap:var(--mantine-spacing-md);padding-top:calc(2rem * var(--mantine-scale));padding-left:calc(1rem * var(--mantine-scale));padding-right:calc(1rem * var(--mantine-scale));padding-bottom:0}.eien2d2{border-color:transparent;-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(6px));backdrop-filter:var(--likec4-safari-animation-hook, blur(6px));background-color:transparent}.eien2d2:focus-within{background-color:color-mix(in srgb,var(--mantine-color-gray-3),transparent 45%)}:where([data-mantine-color-scheme=dark]) .eien2d2:focus-within{background-color:color-mix(in srgb,var(--mantine-color-dark-4),transparent 45%)}.eien2d3{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#22222280;z-index:902;-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(6px));backdrop-filter:var(--likec4-safari-animation-hook, blur(6px))}:where([data-mantine-color-scheme=light]) .eien2d3{background-color:#fff9}.eien2d4{position:absolute;top:2rem;left:50%;width:100%;max-width:600px;min-width:200px;transform:translate(-50%);z-index:903}.eien2d5{margin-top:calc(.5rem * var(--mantine-scale))}.eien2d5+.eien2d5{margin-top:calc(2rem * var(--mantine-scale))}:where([data-mantine-color-scheme=dark]) .eien2d4 ._1cfw8gr3{border-color:var(--mantine-color-dark-5);background-color:var(--mantine-color-dark-6)}:where([data-mantine-color-scheme=dark]) .eien2d4 ._1cfw8gr3:hover{--_1cfw8gr2: var(--mantine-primary-color-2);--_1cfw8gr0: var(--mantine-primary-color-0);--_1cfw8gr1: var(--mantine-primary-color-1);outline:none;background-color:color-mix(in srgb,var(--mantine-primary-color-8),transparent 40%);border-color:var(--mantine-primary-color-9)}:where([data-mantine-color-scheme=dark]) .eien2d4 ._1cfw8gr3:focus{--_1cfw8gr2: var(--mantine-primary-color-2);--_1cfw8gr0: var(--mantine-primary-color-0);--_1cfw8gr1: var(--mantine-primary-color-1);outline:none;background-color:var(--mantine-primary-color-8);border-color:var(--mantine-primary-color-9)}.eien2d6{height:100%;height:100cqh}.eien2d6 .mantine-ScrollArea-viewport{min-height:100%}.eien2d6 .mantine-ScrollArea-viewport>div{min-height:100%;height:100%}.o1xx0f0{gap:calc(var(--mantine-spacing-xs) / 1.5)}.o1xx0f0:empty{display:none}.o1xx0f1{top:var(--likec4-navigation-webview-top, 1rem);left:var(--likec4-navigation-webview-left, 1rem);margin:0}.likec4-top-left-panel .action-icon{--ai-size: 2rem}.likec4-top-left-panel .action-icon .tabler-icon{width:65%;height:65%}.o1xx0f2{box-shadow:var(--mantine-shadow-md)}.o1xx0f3 .tabler-icon{width:65%;height:65%}.o1xx0f4{flex:1 1 40%;text-align:center;font-weight:500;padding:4px 6px;font-size:calc(.6875rem * var(--mantine-scale));z-index:1}.o1xx0f5{background:var(--mantine-color-gray-2);border-radius:var(--mantine-radius-sm);border:1px solid var(--mantine-color-gray-3)}:where([data-mantine-color-scheme=dark]) .o1xx0f5{background:var(--mantine-color-dark-5);border-color:var(--mantine-color-dark-4)}.o1xx0f6{position:relative;border-radius:var(--mantine-radius-sm);background:var(--mantine-color-gray-3);box-shadow:inset 1px 1px 3px #00000024}:where([data-mantine-color-scheme=dark]) .o1xx0f6{background:var(--mantine-color-dark-7)}.o1xx0f7{position:absolute;width:8px;height:8px;border:2px solid var(--mantine-color-gray-5);border-radius:3px;transform:translate(-50%,-50%)}._1wkb4qe0{bottom:0;left:0;padding:8px;margin:0}._1wkb4qe1{cursor:default;min-width:200px;max-width:calc(100vw - 16px);background-color:color-mix(in srgb,var(--mantine-color-body),transparent 20%);-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(8px));backdrop-filter:var(--likec4-safari-animation-hook, blur(8px))}:where([data-mantine-color-scheme=dark]) ._1wkb4qe1{background-color:color-mix(in srgb,var(--mantine-color-dark-6),transparent 20%)}._1wkb4qe3{white-space-collapse:preserve-breaks;color:var(--mantine-color-gray-7)}:where([data-mantine-color-scheme=dark]) ._1wkb4qe3{color:var(--mantine-color-gray-5)}@media (min-width: 48em){._1wkb4qe1{min-width:250px;max-width:90vw}}@media (min-width: 62em){._1wkb4qe1{min-width:350px;max-width:70vw}}.r9c4gg0{bottom:0;right:0;padding:8px;margin:0}.r9c4gg1{cursor:default;-webkit-user-select:none;user-select:none;min-width:200px;max-width:calc(100vw - 20px);background-color:color-mix(in srgb,var(--mantine-color-body),transparent 20%);-webkit-backdrop-filter:var(--likec4-safari-animation-hook, blur(8px));backdrop-filter:var(--likec4-safari-animation-hook, blur(8px))}:where([data-mantine-color-scheme=dark]) .r9c4gg1{background-color:color-mix(in srgb,var(--mantine-color-dark-6),transparent 20%)}.r9c4gg2{padding:calc(var(--mantine-spacing-xs) / 2)}.r9c4gg3{background-color:transparent;transition:all .1s ease-in}.r9c4gg3:hover{transition:all .12s ease-out;background-color:color-mix(in srgb,var(--mantine-primary-color-2),transparent 50%)}:where([data-mantine-color-scheme=dark]) .r9c4gg3:hover{background-color:color-mix(in srgb,var(--mantine-color-dark-3),transparent 60%)}.r9c4gg4{fill:var(--likec4-element-fill);stroke:var(--likec4-element-stroke);stroke-width:1;overflow:visible;width:100%;height:auto;filter:drop-shadow(0 2px 3px rgb(0 0 0 / 22%)) drop-shadow(0 1px 8px rgb(0 0 0 / 10%))}.r9c4gg5{--badge-radius: 2px;--badge-fz: 9.5px;--badge-padding-x: 3px;--badge-height: 13.5px;--badge-lh: 1;font-weight:500;letter-spacing:.2px;padding-top:0;padding-bottom:0;text-transform:lowercase;transition:all .15s ease-in-out;cursor:pointer}@media (min-width: 48em){.r9c4gg1{min-width:300px;max-width:65vw}}@media (min-width: 62em){.r9c4gg1{max-width:40vw}}.totqfb0{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;align-items:center}.totqfb1{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all 175ms ease-in}.totqfb1:hover{transition-timing-function:ease-out;transform:scale(1.1)}.totqfb1:active{transition-duration:.1s;transform:scale(.98) translateY(3px)}.totqfb3{--totqfb2: 35%;--button-bg: color-mix(in srgb, var(--mantine-primary-color-filled), transparent var(--totqfb2));--button-hover: color-mix(in srgb, var(--mantine-primary-color-filled-hover), transparent var(--totqfb2));transition:all 175ms ease-in;background-color:var(--button-bg)}[data-mantine-color-scheme=light] .totqfb3{--totqfb2: 15%}:where(.totqfb1,.totqfb3) .tabler-icon{width:.85em;height:.85em}.totqfb4{position:absolute;margin:0;padding:0;top:0;left:0;width:100%;height:100%;border:2px solid var(--mantine-color-orange-6);pointer-events:none}@media (min-width: 62em){.totqfb0{gap:.6rem}.totqfb4{border-width:4px}}.dbuyb70{position:absolute;top:4px;left:2px;z-index:10}.dbuyb71{width:min-content;height:min-content}.dbuyb72{--ai-color-hover: var(--likec4-element-hiContrast);--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));opacity:.45;color:var(--_compound-title-color,var(--likec4-element-loContrast));transition:all .13s cubic-bezier(.5,0,.2,1);background:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]) .dbuyb72{--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);--ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 10%);--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);opacity:.85}:where([data-hovered=true]) .dbuyb72{opacity:1}._1xwo2e70{font-size:calc(.625rem * var(--mantine-scale));font-weight:600;cursor:default;-webkit-user-select:all;user-select:all}.k9mic70{position:absolute;top:2px;right:2px;z-index:10}.k9mic70{--k9mic71: var(--likec4-element-loContrast)}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]) .k9mic70{--k9mic71: var(--likec4-element-stroke)}.k9mic72{--ai-color-hover: var(--likec4-element-hiContrast);--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));opacity:.4;pointer-events:all;cursor:pointer;color:var(--_compound-title-color,var(--k9mic71));background-color:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}.k9mic72:hover{opacity:1;box-shadow:1px 1px 3px #00000026}:where([data-mantine-color-scheme=light] [data-compound-transparent=true]) .k9mic72{--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 20%);--ai-hover: color-mix(in srgb , var(--likec4-element-fill), transparent 10%);--ai-bg: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);opacity:.6}.k9mic73{width:min-content;height:min-content}._1jvuy7m0{position:absolute;top:2px;right:2px;z-index:10}:where([data-likec4-shape=browser]) ._1jvuy7m0{right:5px}:where([data-likec4-shape=cylinder],[data-likec4-shape=storage]) ._1jvuy7m0{top:14px}:where([data-likec4-shape=queue]) ._1jvuy7m0{top:1px;right:12px}._1jvuy7m1{width:min-content;height:min-content}._1jvuy7m2{--ai-bg-idle: color-mix(in srgb , var(--likec4-element-fill), transparent 99%);--ai-bg: var(--ai-bg-idle);--ai-bg-hover: color-mix(in srgb , var(--likec4-element-fill) 65%, var(--likec4-element-stroke));--ai-hover: color-mix(in srgb , var(--likec4-element-fill) 50%, var(--likec4-element-stroke));pointer-events:all;color:var(--likec4-element-loContrast);cursor:pointer;background-color:var(--ai-bg);box-shadow:1px 1px 3px 0 transparent}._1jvuy7m2:hover{box-shadow:1px 1px 3px #00000026}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@likec4/diagram",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"bugs": "https://github.com/likec4/likec4/issues",
|
|
6
6
|
"homepage": "https://likec4.dev",
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@dagrejs/dagre": "1.1.4",
|
|
42
|
-
"@likec4/core": "1.
|
|
43
|
-
"@mantine/vanilla-extract": "7.16.
|
|
42
|
+
"@likec4/core": "1.22.1",
|
|
43
|
+
"@mantine/vanilla-extract": "7.16.3",
|
|
44
|
+
"@nanostores/react": "0.8.4",
|
|
44
45
|
"@react-hookz/web": "^25.0.1",
|
|
45
46
|
"@tabler/icons-react": "3.29.0",
|
|
46
47
|
"@vanilla-extract/dynamic": "^2.1.2",
|
|
47
48
|
"@xstate/react": "^5.0.2",
|
|
48
|
-
"@xstate/store": "^2.6.2",
|
|
49
49
|
"@xyflow/react": "12.4.2",
|
|
50
50
|
"@xyflow/system": "0.0.50",
|
|
51
51
|
"bezier-js": "^6.1.4",
|
|
@@ -53,25 +53,24 @@
|
|
|
53
53
|
"d3-shape": "^3.2.0",
|
|
54
54
|
"esm-env": "^1.2.2",
|
|
55
55
|
"fast-equals": "^5.2.2",
|
|
56
|
-
"framer-motion": "^
|
|
56
|
+
"framer-motion": "^12.4.2",
|
|
57
57
|
"khroma": "^2.1.0",
|
|
58
|
+
"nanostores": "0.11.3",
|
|
58
59
|
"react-error-boundary": "^5.0.0",
|
|
59
60
|
"remeda": "^2.20.1",
|
|
60
|
-
"type-fest": "4.
|
|
61
|
+
"type-fest": "4.34.1",
|
|
61
62
|
"xstate": "^5.19.2"
|
|
62
63
|
},
|
|
63
64
|
"peerDependencies": {
|
|
64
|
-
"@mantine/core": "^7.16.
|
|
65
|
-
"@mantine/hooks": "^7.16.
|
|
66
|
-
"@mantine/spotlight": "^7.16.2",
|
|
65
|
+
"@mantine/core": "^7.16.3",
|
|
66
|
+
"@mantine/hooks": "^7.16.3",
|
|
67
67
|
"react": "^18.0.0 || ^19.0.0",
|
|
68
68
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@likec4/tsconfig": "1.
|
|
72
|
-
"@mantine/core": "7.16.
|
|
73
|
-
"@mantine/hooks": "7.16.
|
|
74
|
-
"@mantine/spotlight": "7.16.2",
|
|
71
|
+
"@likec4/tsconfig": "1.22.1",
|
|
72
|
+
"@mantine/core": "7.16.3",
|
|
73
|
+
"@mantine/hooks": "7.16.3",
|
|
75
74
|
"@statelyai/inspect": "^0.4.0",
|
|
76
75
|
"@types/bezier-js": "^4.1.3",
|
|
77
76
|
"@types/d3-shape": "^3.1.7",
|
|
@@ -79,6 +78,7 @@
|
|
|
79
78
|
"@types/react-dom": "~19.0.3",
|
|
80
79
|
"@vanilla-extract/css": "^1.17.1",
|
|
81
80
|
"@vanilla-extract/css-utils": "^0.1.4",
|
|
81
|
+
"@vitejs/plugin-react": "4.3.4",
|
|
82
82
|
"react": "~19.0.0",
|
|
83
83
|
"react-dom": "~19.0.0",
|
|
84
84
|
"typescript": "^5.7.3",
|
package/src/LikeC4Diagram.tsx
CHANGED
package/src/base/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defaultTheme } from '@likec4/core'
|
|
2
2
|
import { rem } from '@mantine/core'
|
|
3
|
-
import { createVar, globalStyle } from '@vanilla-extract/css'
|
|
3
|
+
import { createGlobalVar, createVar, globalStyle } from '@vanilla-extract/css'
|
|
4
4
|
import { container } from './ElementNodeContainer.css'
|
|
5
5
|
|
|
6
6
|
export const textSize = createVar('text-size')
|
|
7
7
|
export const paddingSize = createVar('padding-size')
|
|
8
|
-
export const iconSize =
|
|
8
|
+
export const iconSize = createGlobalVar('likec4-icon-size')
|
|
9
9
|
|
|
10
10
|
globalStyle(`${container}`, {
|
|
11
11
|
vars: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { style } from '@vanilla-extract/css'
|
|
2
2
|
import { mantine } from '../theme-vars'
|
|
3
|
-
import { easings, whereDark } from '../theme-vars.css'
|
|
3
|
+
import { easings, transitions, whereDark } from '../theme-vars.css'
|
|
4
4
|
|
|
5
5
|
export const elementLink = style({
|
|
6
6
|
display: 'flex',
|
|
@@ -8,7 +8,7 @@ export const elementLink = style({
|
|
|
8
8
|
alignItems: 'center',
|
|
9
9
|
gap: 3,
|
|
10
10
|
justifyContent: 'stretch',
|
|
11
|
-
|
|
11
|
+
transition: transitions.fast,
|
|
12
12
|
border: `1px dashed ${mantine.colors.defaultBorder}`,
|
|
13
13
|
borderRadius: mantine.radius.sm,
|
|
14
14
|
minHeight: 30,
|
|
@@ -38,7 +38,7 @@ export const linkIcon = style({
|
|
|
38
38
|
|
|
39
39
|
export const linkTitleBox = style({
|
|
40
40
|
flex: '1 1 100%',
|
|
41
|
-
transition: `transform
|
|
41
|
+
transition: `transform 100ms ${easings.inOut}`,
|
|
42
42
|
selectors: {
|
|
43
43
|
[`${elementLink}:hover &`]: {
|
|
44
44
|
transitionTimingFunction: easings.out,
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createVar, fallbackVar, globalStyle, style } from '@vanilla-extract/css'
|
|
2
|
+
import { mantine, transitions, vars, whereDark, whereLight } from '../theme-vars'
|
|
3
|
+
|
|
4
|
+
const transparent = createVar('transparent')
|
|
5
|
+
const bgColor = createVar('bgcolor')
|
|
6
|
+
export const root = style({
|
|
7
|
+
height: '32px',
|
|
8
|
+
paddingLeft: mantine.spacing.sm,
|
|
9
|
+
paddingRight: '4px',
|
|
10
|
+
borderRadius: mantine.radius.sm,
|
|
11
|
+
color: mantine.colors.placeholder,
|
|
12
|
+
boxShadow: mantine.shadows.xs,
|
|
13
|
+
border: '1px solid',
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
transition: transitions.fast,
|
|
16
|
+
WebkitBackdropFilter: fallbackVar(vars.safariAnimationHook, 'blur(8px)'),
|
|
17
|
+
backdropFilter: fallbackVar(vars.safariAnimationHook, 'blur(8px)'),
|
|
18
|
+
backgroundColor: `color-mix(in srgb, ${bgColor}, transparent ${transparent})`,
|
|
19
|
+
vars: {
|
|
20
|
+
[transparent]: '20%',
|
|
21
|
+
[bgColor]: mantine.colors.default,
|
|
22
|
+
},
|
|
23
|
+
selectors: {
|
|
24
|
+
[`${whereLight} &`]: {
|
|
25
|
+
borderColor: mantine.colors.gray[4],
|
|
26
|
+
vars: {
|
|
27
|
+
[bgColor]: mantine.colors.white,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
[`${whereDark} &`]: {
|
|
31
|
+
borderColor: mantine.colors.dark[4],
|
|
32
|
+
vars: {
|
|
33
|
+
[bgColor]: mantine.colors.dark[6],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
':hover': {
|
|
38
|
+
borderColor: mantine.colors.defaultBorder,
|
|
39
|
+
boxShadow: mantine.shadows.sm,
|
|
40
|
+
vars: {
|
|
41
|
+
[transparent]: '10%',
|
|
42
|
+
[bgColor]: mantine.colors.defaultHover,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
globalStyle(`${root} .tabler-icon`, {
|
|
47
|
+
color: mantine.colors.text,
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
export const shortcut = style({
|
|
51
|
+
fontSize: '11px',
|
|
52
|
+
lineHeight: 1,
|
|
53
|
+
padding: '4px 7px',
|
|
54
|
+
borderRadius: mantine.radius.sm,
|
|
55
|
+
border: '1px solid',
|
|
56
|
+
fontWeight: 'bold',
|
|
57
|
+
selectors: {
|
|
58
|
+
[`${whereLight} &`]: {
|
|
59
|
+
color: mantine.colors.gray[7],
|
|
60
|
+
borderColor: mantine.colors.gray[2],
|
|
61
|
+
backgroundColor: `color-mix(in srgb, ${mantine.colors.gray[2]}, transparent 20%)`,
|
|
62
|
+
},
|
|
63
|
+
[`${whereDark} &`]: {
|
|
64
|
+
color: mantine.colors.dark[0],
|
|
65
|
+
borderColor: mantine.colors.dark[7],
|
|
66
|
+
backgroundColor: mantine.colors.dark[8],
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
})
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type BoxProps,
|
|
3
|
+
type ElementProps,
|
|
4
|
+
type UnstyledButtonProps,
|
|
5
|
+
Box,
|
|
6
|
+
Group,
|
|
7
|
+
rem,
|
|
8
|
+
Text,
|
|
9
|
+
UnstyledButton,
|
|
10
|
+
} from '@mantine/core'
|
|
11
|
+
import { IconSearch } from '@tabler/icons-react'
|
|
12
|
+
import { isMacOs } from '@xyflow/system'
|
|
13
|
+
import cx from 'clsx'
|
|
14
|
+
import * as classes from './SearchControl.css'
|
|
15
|
+
|
|
16
|
+
interface SearchControlProps extends UnstyledButtonProps, ElementProps<'button'> {}
|
|
17
|
+
|
|
18
|
+
export function SearchControl({ className, ...others }: SearchControlProps) {
|
|
19
|
+
const isMac = isMacOs()
|
|
20
|
+
return (
|
|
21
|
+
<UnstyledButton {...others} className={cx(classes.root, className)}>
|
|
22
|
+
<Group gap="xs">
|
|
23
|
+
<IconSearch style={{ width: rem(15), height: rem(15) }} stroke={2} />
|
|
24
|
+
<Text fz="sm" fw="500" pr={50}>
|
|
25
|
+
Search
|
|
26
|
+
</Text>
|
|
27
|
+
<Text fw={700} className={classes.shortcut}>
|
|
28
|
+
{isMac ? '⌘ + K' : 'Ctrl + K'}
|
|
29
|
+
</Text>
|
|
30
|
+
</Group>
|
|
31
|
+
</UnstyledButton>
|
|
32
|
+
)
|
|
33
|
+
}
|