/* @xyflow/react 12.12.0 base CSS; official npm package.
MIT License

Copyright (c) 2019-2025 webkid GmbH

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
/* this will be exported as base.css and can be used for a basic styling */
/* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */
.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, 0.5);

  --xy-minimap-background-color-default: #fff;
  --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.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-border-default: 1px solid #bbb;
  --xy-node-border-selected-default: 1px solid #555;

  --xy-handle-background-color-default: #333;

  --xy-selection-background-color-default: rgba(150, 150, 180, 0.1);
  --xy-selection-border-default: 1px dotted rgba(155, 155, 155, 0.8);
  --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, 0.25);

  --xy-minimap-background-color-default: #141414;
  --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.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: #555;
  --xy-background-pattern-lines-color-default: #333;
  --xy-background-pattern-cross-color-default: #333;
  --xy-node-color-default: #f8f8f8;
}
.react-flow__background {
  background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));
  pointer-events: none;
  z-index: -1;
}
.react-flow__container {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
.react-flow__pane {
  z-index: 1;
  touch-action: none;
}
.react-flow__pane.draggable {
    cursor: grab;
  }
.react-flow__pane.dragging {
    cursor: grabbing;
  }
.react-flow__pane.selection {
    cursor: pointer;
  }
.react-flow__viewport {
  transform-origin: 0 0;
  z-index: 2;
  pointer-events: none;
}
.react-flow__renderer {
  z-index: 4;
}
.react-flow__selection {
  z-index: 6;
}
.react-flow__nodesselection-rect:focus,
.react-flow__nodesselection-rect:focus-visible {
  outline: none;
}
.react-flow__edge-path {
  stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
  stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
  fill: none;
}
.react-flow__connection-path {
  stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
  stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));
  fill: none;
}
.react-flow .react-flow__edges {
  position: absolute;
}
.react-flow .react-flow__edges svg {
    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 0.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;
  }
/* Arrowhead marker styles - use CSS custom properties as default */
.react-flow__arrowhead polyline {
  stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
}
.react-flow__arrowhead polyline.arrowclosed {
  fill: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
}
.react-flow__connection {
  pointer-events: none;
}
.react-flow__connection .animated {
    stroke-dasharray: 5;
    animation: dashdraw 0.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;
  background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
}
.react-flow__handle.connectingfrom {
    pointer-events: all;
  }
.react-flow__handle.connectionindicator {
    pointer-events: all;
    cursor: crosshair;
  }
.react-flow__handle-bottom {
    top: auto;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 50%);
  }
.react-flow__handle-top {
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
  }
.react-flow__handle-left {
    top: 50%;
    left: 0;
    transform: translate(-50%, -50%);
  }
.react-flow__handle-right {
    top: 50%;
    right: 0;
    transform: translate(50%, -50%);
  }
.react-flow__edgeupdater {
  cursor: move;
  pointer-events: all;
}
.react-flow__pane.selection .react-flow__panel {
  pointer-events: none;
}
.react-flow__panel {
  position: absolute;
  z-index: 5;
  margin: 15px;
}
.react-flow__panel.top {
    top: 0;
  }
.react-flow__panel.bottom {
    bottom: 0;
  }
.react-flow__panel.top.center, .react-flow__panel.bottom.center {
      left: 50%;
      transform: translateX(-15px) translateX(-50%);
    }
.react-flow__panel.left {
    left: 0;
  }
.react-flow__panel.right {
    right: 0;
  }
.react-flow__panel.left.center, .react-flow__panel.right.center {
      top: 50%;
      transform: translateY(-15px) translateY(-50%);
    }
.react-flow__attribution {
  font-size: 10px;
  background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));
  padding: 2px 3px;
  margin: 0;
}
.react-flow__attribution a {
    text-decoration: none;
    color: #999;
  }
@keyframes dashdraw {
  from {
    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;
}
.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;
  }
.react-flow__controls-button svg {
      width: 100%;
      max-width: 12px;
      max-height: 12px;
      fill: currentColor;
    }
.react-flow__node-input,
.react-flow__node-default,
.react-flow__node-output,
.react-flow__node-group {
  border: var(--xy-node-border, var(--xy-node-border-default));
  color: var(--xy-node-color, var(--xy-node-color-default));
}
.react-flow__node-input.selected,
  .react-flow__node-input:focus,
  .react-flow__node-input:focus-visible,
  .react-flow__node-default.selected,
  .react-flow__node-default:focus,
  .react-flow__node-default:focus-visible,
  .react-flow__node-output.selected,
  .react-flow__node-output:focus,
  .react-flow__node-output:focus-visible,
  .react-flow__node-group.selected,
  .react-flow__node-group:focus,
  .react-flow__node-group:focus-visible {
    outline: none;
    border: var(--xy-node-border-selected, var(--xy-node-border-selected-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__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;
}
/* handle styles */
.react-flow__resize-control.handle {
  width: 5px;
  height: 5px;
  border: 1px solid #fff;
  border-radius: 1px;
  background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
  translate: -50% -50%;
}
.react-flow__resize-control.handle.left {
  left: 0;
  top: 50%;
}
.react-flow__resize-control.handle.right {
  left: 100%;
  top: 50%;
}
.react-flow__resize-control.handle.top {
  left: 50%;
  top: 0;
}
.react-flow__resize-control.handle.bottom {
  left: 50%;
  top: 100%;
}
.react-flow__resize-control.handle.top.left {
  left: 0;
}
.react-flow__resize-control.handle.bottom.left {
  left: 0;
}
.react-flow__resize-control.handle.top.right {
  left: 100%;
}
.react-flow__resize-control.handle.bottom.right {
  left: 100%;
}
/* line styles */
.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%, 0);
  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: translate(0, -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%;
}

.uc-unified-workspace{height:100%;min-height:0;display:flex;flex-direction:column;position:relative}.uc-workspace-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;border-bottom:1px solid #e4e7f0;background:#fff}.uc-workspace-intro>div{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.uc-workspace-intro strong{font-size:16px;color:#252443}.uc-workspace-intro span{font-size:13px;color:#696b82}.uc-workspace-intro button,.uc-drawer-header button{border:1px solid #d8d8ef;border-radius:9px;background:#f5f3ff;color:#5343bb;padding:9px 14px;cursor:pointer;white-space:nowrap}.uc-unified-workspace>div{min-height:0;flex:1}.uc-project-drawer{position:fixed;inset:12px 12px 12px auto;width:min(1020px,calc(100vw - 24px));max-height:calc(100dvh - 24px);display:flex;flex-direction:column;z-index:1100;border:1px solid #d9d8eb;border-radius:14px;background:#f6f7fb;box-shadow:-15px 0 65px #23214038;overflow:hidden}.uc-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:white;border-bottom:1px solid #e3e5ee}.uc-drawer-header>div{display:grid;gap:4px}.uc-drawer-header small{font-size:12px;color:#6d7088}.uc-drawer-body{overflow:auto;min-height:0;flex:1}.uc-drawer-error{margin:12px 18px;color:#9b283d;font-size:13px}.uc-project-drawer .dw-shell{min-height:0}.uc-project-drawer .dw-sidebar{width:185px}.uc-project-drawer .dw-legacy-navigation{display:none}@media(max-width:760px){.uc-workspace-intro{padding:8px 10px;gap:8px}.uc-workspace-intro span{display:none}.uc-project-drawer{inset:0;width:100%;height:100dvh;max-height:100dvh;border-radius:0}.uc-drawer-header{padding:10px}.uc-drawer-header small{max-width:230px}.uc-project-drawer .dw-sidebar{width:auto}}
/* Fit the published component to its host instead of forcing a 660px page. */
.uc-canvas-host > [class*="_workspace_"]{height:100%;min-height:0}
.uc-canvas-host .react-flow__controls,.uc-canvas-host .react-flow__minimap{z-index:5}
.uc-canvas-host [class*="_topbar_"]{flex-wrap:wrap;min-height:0}
.uc-canvas-host [class*="_brandBlock_"]{min-width:160px}
/* Keep the overview from covering node actions in short browser panels. */
@media(max-height:800px){.uc-canvas-host .react-flow__minimap{transform:scale(.55);transform-origin:bottom right}}
@media(max-width:760px){.uc-canvas-host [class*="_brandBlock_"]{display:none}.uc-canvas-host [class*="_projectControls_"]{flex:1 1 100%;overflow:auto}.uc-canvas-host [class*="_newProjectControls_"]{flex:1}.uc-canvas-host [class*="_newProjectControls_"] select{max-width:none;flex:1}}
/* Keep the workspace chrome compact; the selected project already names the canvas. */
.uc-workspace-intro{min-height:40px;box-sizing:border-box;padding:6px 16px;gap:10px}
.uc-workspace-intro strong{font-size:14px}
.uc-workspace-intro span{font-size:12px;color:#8a8793}
.uc-workspace-intro button{padding:6px 10px;font-size:12px;background:#fff;border-color:#e8e4ee;color:#736b80}
.uc-canvas-host [class*="_brandBlock_"]{display:none}
.uc-canvas-host [class*="_topbar_"]{padding:10px 14px;gap:10px;align-items:center}
.uc-canvas-host [class*="_projectControls_"]{min-width:0;flex:1 1 auto;gap:5px}
.uc-canvas-host [class*="_projectControls_"]>select{min-width:120px;width:clamp(140px,20vw,240px)}
.uc-canvas-host [class*="_newProjectControls_"]{gap:6px}
.uc-canvas-host [class*="_canvasActions_"]{max-width:calc(100% - 340px);overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin}
.uc-canvas-host .react-flow__minimap{width:140px!important;height:100px!important;transform:none;border-radius:12px;overflow:hidden;box-shadow:0 4px 18px #3020460a}
.uc-canvas-host [class*="_taskTray_"]{right:168px;max-width:calc(100% - 224px);overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin}
.uc-canvas-host .react-flow__controls{border:1px solid #eae7f0;border-radius:10px;overflow:hidden;box-shadow:0 3px 14px #3020460a}
.uc-canvas-host .react-flow__controls-button{width:32px;height:32px;border-bottom-color:#efecf4;color:#61576e}
.uc-canvas-host .react-flow__controls-button:focus-visible{outline:2px solid #b8a6ff;outline-offset:-3px}
@media(max-width:1200px){.uc-canvas-host [class*="_canvasActions_"]{max-width:calc(100% - 24px)}.uc-canvas-host [class*="_flowHost_"]>[class*="_message_"]{top:108px;max-width:calc(100% - 24px)}}
@media(max-width:760px){.uc-workspace-intro{min-height:36px;padding:5px 10px}.uc-canvas-host [class*="_topbar_"]{padding:8px;gap:8px}.uc-canvas-host [class*="_projectControls_"]{flex-basis:100%}.uc-canvas-host [class*="_projectControls_"]>select{min-width:100px;flex:1}.uc-canvas-host .react-flow__minimap{display:none}.uc-canvas-host [class*="_taskTray_"]{left:54px;right:12px;max-width:calc(100% - 66px)}}
.uc-mobile-canvas-blocked{box-sizing:border-box;display:grid;place-items:center;min-height:100%;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 0%,#f0edff 0,transparent 58%),#f7f8fc;color:#29283a}
.uc-mobile-canvas-card{box-sizing:border-box;width:min(100%,440px);padding:clamp(24px,7vw,36px);border:1px solid #e7e5f0;border-radius:24px;background:#fff;box-shadow:0 18px 54px #322e5012;text-align:center}
.uc-mobile-canvas-eyebrow{display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border:1px solid #e8e3fb;border-radius:999px;background:#f6f3ff;color:#6f5ac0;font-size:12px;font-weight:650;letter-spacing:.04em}
.uc-mobile-canvas-card h1{margin:18px 0 10px;color:#29283a;font-size:22px;line-height:1.4;letter-spacing:-.02em}
.uc-mobile-canvas-card p{margin:0;color:#737488;font-size:15px;line-height:1.8}
.uc-mobile-canvas-return{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin-top:24px;padding:10px 18px;border:1px solid #6152bd;border-radius:14px;background:#6152bd;color:#fff;font:inherit;font-size:15px;font-weight:600;line-height:1.4;cursor:pointer;touch-action:manipulation}
.uc-mobile-canvas-return:hover{background:#5142ad}
.uc-mobile-canvas-return:focus-visible{outline:3px solid #b8adf3;outline-offset:3px}
