:root {
    --dfBackgroundColor: #ffffff;
    --dfBackgroundSize: 0px;
    --dfBackgroundImage: none;
    --dfNodeType: flex;
    --dfNodeTypeFloat: none;
    --dfNodeBackgroundColor: #ffffff;
    --dfNodeTextColor: rgba(0, 0, 0, 1);
    --dfNodeBorderSize: 5px;
    --dfNodeBorderColor: rgba(0, 0, 0, 1);
    --dfNodeBorderRadius: 7px;
    --dfNodeMinHeight: 40px;
    --dfNodeMinWidth: 160px;
    --dfNodePaddingTop: 15px;
    --dfNodePaddingBottom: 15px;
    --dfNodeBoxShadowHL: 0px;
    --dfNodeBoxShadowVL: 0px;
    --dfNodeBoxShadowBR: 0px;
    --dfNodeBoxShadowS: 0px;
    --dfNodeBoxShadowColor: #000000;
    --dfNodeHoverBackgroundColor: #ffffff;
    --dfNodeHoverTextColor: rgba(0, 0, 0, 1);
    --dfNodeHoverBorderSize: 7px;
    --dfNodeHoverBorderColor: #000000;
    --dfNodeHoverBorderRadius: 7px;
    --dfNodeHoverBoxShadowHL: 0px;
    --dfNodeHoverBoxShadowVL: 0px;
    --dfNodeHoverBoxShadowBR: 0px;
    --dfNodeHoverBoxShadowS: 0px;
    --dfNodeHoverBoxShadowColor: #4ea9ff;
    --dfNodeSelectedBackgroundColor: rgba(255, 255, 255, 1);
    --dfNodeSelectedTextColor: rgba(0, 0, 0, 1);
    --dfNodeSelectedBorderSize: 7px;
    --dfNodeSelectedBorderColor: rgba(187, 12, 29, 1);
    --dfNodeSelectedBorderRadius: 7px;
    --dfNodeSelectedBoxShadowHL: 0px;
    --dfNodeSelectedBoxShadowVL: 0px;
    --dfNodeSelectedBoxShadowBR: 0px;
    --dfNodeSelectedBoxShadowS: 0px;
    --dfNodeSelectedBoxShadowColor: #4ea9ff;
    --dfInputBackgroundColor: #ffffff;
    --dfInputBorderSize: 2px;
    --dfInputBorderColor: #000000;
    --dfInputBorderRadius: 50px;
    --dfInputLeft: -27px;
    --dfInputHeight: 20px;
    --dfInputWidth: 20px;
    --dfInputHoverBackgroundColor: #ffffff;
    --dfInputHoverBorderSize: 2px;
    --dfInputHoverBorderColor: #000000;
    --dfInputHoverBorderRadius: 50px;
    --dfOutputBackgroundColor: #ffffff;
    --dfOutputBorderSize: 2px;
    --dfOutputBorderColor: #000000;
    --dfOutputBorderRadius: 50px;
    --dfOutputRight: 0px;
    --dfOutputHeight: 20px;
    --dfOutputWidth: 20px;
    --dfOutputHoverBackgroundColor: #ffffff;
    --dfOutputHoverBorderSize: 2px;
    --dfOutputHoverBorderColor: #000000;
    --dfOutputHoverBorderRadius: 50px;
    --dfLineWidth: 8px;
    --dfLineColor: rgba(0, 0, 0, 1);
    --dfLineHoverColor: rgba(187, 12, 29, 1);
    --dfLineSelectedColor: rgba(187, 12, 29, 1);
    --dfRerouteBorderWidth: 2px;
    --dfRerouteBorderColor: #000000;
    --dfRerouteBackgroundColor: #ffffff;
    --dfRerouteHoverBorderWidth: 2px;
    --dfRerouteHoverBorderColor: #000000;
    --dfRerouteHoverBackgroundColor: #ffffff;
    --dfDeleteDisplay: block;
    --dfDeleteColor: rgba(187, 12, 29, 1);
    --dfDeleteBackgroundColor: rgba(255, 255, 255, 1);
    --dfDeleteBorderSize: 2px;
    --dfDeleteBorderColor: rgba(0, 0, 0, 1);
    --dfDeleteBorderRadius: 50px;
    --dfDeleteTop: -15px;
    --dfDeleteHoverColor: rgba(255, 255, 255, 1);
    --dfDeleteHoverBackgroundColor: rgba(187, 12, 29, 1);
    --dfDeleteHoverBorderSize: 2px;
    --dfDeleteHoverBorderColor: rgba(0, 0, 0, 1);
    --dfDeleteHoverBorderRadius: 50px;
}
#drawflow {
    background: var(--dfBackgroundColor);
    background-size: var(--dfBackgroundSize) var(--dfBackgroundSize);
    background-image: var(--dfBackgroundImage);
}
.drawflow .drawflow-node {
    display: var(--dfNodeType);
    background: var(--dfNodeBackgroundColor);
    color: var(--dfNodeTextColor);
    border: var(--dfNodeBorderSize)  solid var(--dfNodeBorderColor);
    border-radius: var(--dfNodeBorderRadius);
    min-height: var(--dfNodeMinHeight);
    width: auto;
    min-width: var(--dfNodeMinWidth);
    padding-top: var(--dfNodePaddingTop);
    padding-bottom: var(--dfNodePaddingBottom);
    -webkit-box-shadow: var(--dfNodeBoxShadowHL) var(--dfNodeBoxShadowVL) var(--dfNodeBoxShadowBR) var(--dfNodeBoxShadowS) var(--dfNodeBoxShadowColor);
    box-shadow:  var(--dfNodeBoxShadowHL) var(--dfNodeBoxShadowVL) var(--dfNodeBoxShadowBR) var(--dfNodeBoxShadowS) var(--dfNodeBoxShadowColor);
}
.drawflow .drawflow-node:hover {
    background: var(--dfNodeHoverBackgroundColor);
    color: var(--dfNodeHoverTextColor);
    border: var(--dfNodeHoverBorderSize)  solid var(--dfNodeHoverBorderColor);
    border-radius: var(--dfNodeHoverBorderRadius);
    -webkit-box-shadow: var(--dfNodeHoverBoxShadowHL) var(--dfNodeHoverBoxShadowVL) var(--dfNodeHoverBoxShadowBR) var(--dfNodeHoverBoxShadowS) var(--dfNodeHoverBoxShadowColor);
    box-shadow:  var(--dfNodeHoverBoxShadowHL) var(--dfNodeHoverBoxShadowVL) var(--dfNodeHoverBoxShadowBR) var(--dfNodeHoverBoxShadowS) var(--dfNodeHoverBoxShadowColor);
}
.drawflow .drawflow-node.selected {
    background: var(--dfNodeSelectedBackgroundColor);
    color: var(--dfNodeSelectedTextColor);
    border: var(--dfNodeSelectedBorderSize)  solid var(--dfNodeSelectedBorderColor);
    border-radius: var(--dfNodeSelectedBorderRadius);
    -webkit-box-shadow: var(--dfNodeSelectedBoxShadowHL) var(--dfNodeSelectedBoxShadowVL) var(--dfNodeSelectedBoxShadowBR) var(--dfNodeSelectedBoxShadowS) var(--dfNodeSelectedBoxShadowColor);
    box-shadow:  var(--dfNodeSelectedBoxShadowHL) var(--dfNodeSelectedBoxShadowVL) var(--dfNodeSelectedBoxShadowBR) var(--dfNodeSelectedBoxShadowS) var(--dfNodeSelectedBoxShadowColor);
}
.drawflow .drawflow-node .input {
    left: var(--dfInputLeft);
    background: var(--dfInputBackgroundColor);
    border: var(--dfInputBorderSize)  solid var(--dfInputBorderColor);
    border-radius: var(--dfInputBorderRadius);
    height: var(--dfInputHeight);
    width: var(--dfInputWidth);
}
.drawflow .drawflow-node .input:hover {
    background: var(--dfInputHoverBackgroundColor);
    border: var(--dfInputHoverBorderSize)  solid var(--dfInputHoverBorderColor);
    border-radius: var(--dfInputHoverBorderRadius);
}
.drawflow .drawflow-node .outputs {
    float: var(--dfNodeTypeFloat);
}
.drawflow .drawflow-node .output {
    right: var(--dfOutputRight);
    background: var(--dfOutputBackgroundColor);
    border: var(--dfOutputBorderSize)  solid var(--dfOutputBorderColor);
    border-radius: var(--dfOutputBorderRadius);
    height: var(--dfOutputHeight);
    width: var(--dfOutputWidth);
}
.drawflow .drawflow-node .output:hover {
    background: var(--dfOutputHoverBackgroundColor);
    border: var(--dfOutputHoverBorderSize)  solid var(--dfOutputHoverBorderColor);
    border-radius: var(--dfOutputHoverBorderRadius);
}
.drawflow .connection .main-path {
    stroke-width: var(--dfLineWidth);
    stroke: var(--dfLineColor);
}
.drawflow .connection .main-path:hover {
    stroke: var(--dfLineHoverColor);
}
.drawflow .connection .main-path.selected {
    stroke: var(--dfLineSelectedColor);
}
.drawflow .connection .point {
    stroke: var(--dfRerouteBorderColor);
    stroke-width: var(--dfRerouteBorderWidth);
    fill: var(--dfRerouteBackgroundColor);
}
.drawflow .connection .point:hover {
    stroke: var(--dfRerouteHoverBorderColor);
    stroke-width: var(--dfRerouteHoverBorderWidth);
    fill: var(--dfRerouteHoverBackgroundColor);
}
.drawflow-delete {
    display: var(--dfDeleteDisplay);
    color: var(--dfDeleteColor);
    background: var(--dfDeleteBackgroundColor);
    border: var(--dfDeleteBorderSize) solid var(--dfDeleteBorderColor);
    border-radius: var(--dfDeleteBorderRadius);
}
.parent-node .drawflow-delete {
    top: var(--dfDeleteTop);
}
.drawflow-delete:hover {
    color: var(--dfDeleteHoverColor);
    background: var(--dfDeleteHoverBackgroundColor);
    border: var(--dfDeleteHoverBorderSize) solid var(--dfDeleteHoverBorderColor);
    border-radius: var(--dfDeleteHoverBorderRadius);
}
