.simple-flow-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: auto;
  background-color: #fafafa;
  user-select: none;

  .simple-flow-container {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    .top-area-container {
      position: sticky;
      inset: 0;
      display: flex;
      width: 100%;
      height: 42px;
      z-index: 1;
      // padding: 4px 0;
      background-color: #fff;
      justify-content: flex-end;
      align-items: center;

      .top-actions {
        display: flex;
        margin: 4px;
        margin-right: 8px;
        align-items: center;

        .canvas-control {
          font-size: 16px;

          .control-scale-group {
            display: inline-flex;
            align-items: center;
            margin-right: 8px;

            .control-scale-button {
              display: inline-flex;
              width: 28px;
              height: 28px;
              padding: 2px;
              text-align: center;
              cursor: pointer;
              justify-content: center;
              align-items: center;
            }

            .control-scale-label {
              margin: 0 4px;
              font-size: 14px;
            }
          }
        }
      }
    }

    .scale-container {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      margin-top: 16px;
      background-color: #fafafa;
      transform-origin: 50% 0 0;
      transform: scale(1);
      transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);

      // 节点容器 定义节点宽度
      .node-container {
        width: 200px;
      }
      // 节点
      .node-box {
        position: relative;
        display: flex;
        min-height: 70px;
        padding: 5px 10px 8px;
        cursor: pointer;
        background-color: #fff;
        flex-direction: column;
        border: 2px solid transparent;
        // border-color: #0089ff;
        border-radius: 8px;
        // border-color: #0089ff;
        box-shadow: 0 1px 4px 0 rgba(10, 30, 65, 0.16);
        transition: all 0.1s cubic-bezier(0.645, 0.045, 0.355, 1);

        &:hover {
          border-color: #0089ff;
          .node-toolbar {
            opacity: 1;
          }

          .branch-node-move {
            display: flex;
          }
        }

        // 普通节点标题
        .node-title-container {
          display: flex;
          padding: 4px;
          cursor: pointer;
          border-radius: 4px 4px 0 0;
          align-items: center;

          .node-title-icon {
            display: flex;
            align-items: center;

            &.user-task {
              color: #ff943e;
            }
            &.copy-task {
              color: #3296fa;
            }
            &.start-user {
              color: #676565;
            }
          }

          .node-title {
            margin-left: 4px;
            font-size: 14px;
            font-weight: 600;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            color: #1f1f1f;
            line-height: 18px;
            &:hover {
              border-bottom: 1px dashed #f60;
            }
          }
        }

        // 条件节点标题
        .branch-node-title-container {
          display: flex;
          padding: 4px 0;
          cursor: pointer;
          border-radius: 4px 4px 0 0;
          align-items: center;
          justify-content: space-between;

          .input-max-width {
            max-width: 115px !important;
          }

          .branch-title {
            font-size: 13px;
            font-weight: 600;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            color: #f60;
            &:hover {
              border-bottom: 1px dashed #000;
            }
          }

          .branch-priority {
            min-width: 50px;
            font-size: 12px;
          }
        }

        .node-content {
          display: flex;
          min-height: 32px;
          padding: 4px 8px;
          margin-top: 4px;
          line-height: 32px;
          justify-content: space-between;
          align-items: center;
          color: #111f2c;
          background: rgba(0, 0, 0, 0.03);
          border-radius: 4px;

          .node-text {
            display: -webkit-box;
            overflow: hidden;
            font-size: 14px;
            line-height: 24px;
            text-overflow: ellipsis;
            word-break: break-all;
            -webkit-line-clamp: 2; /* 这将限制文本显示为两行 */
            -webkit-box-orient: vertical;
          }
        }

        //条件节点内容
        .branch-node-content {
          display: flex;
          min-height: 32px;
          padding: 4px 0;
          margin-top: 4px;
          line-height: 32px;
          align-items: center;
          color: #111f2c;
          border-radius: 4px;

          .branch-node-text {
            overflow: hidden;
            font-size: 12px;
            line-height: 24px;
            text-overflow: ellipsis;
            word-break: break-all;
            -webkit-line-clamp: 2; /* 这将限制文本显示为两行 */
            -webkit-box-orient: vertical;
          }
        }

        // 节点操作 ：删除
        .node-toolbar {
          opacity: 0;
          position: absolute;
          top: -20px;
          right: 0px;
          display: flex;

          .toolbar-icon {
            text-align: center;
            vertical-align: middle;
          }
        }

        // 条件节点左右移动
        .branch-node-move {
          position: absolute;
          width: 10px;
          cursor: pointer;
          display: none;
          align-items: center;
          height: 100%;
          justify-content: center;
        }

        .move-node-left {
          left: -2px;
          top: 0px;
          background: rgba(126, 134, 142, 0.08);
          border-top-left-radius: 8px;
          border-bottom-left-radius: 8px;
        }

        .move-node-right {
          right: -2px;
          top: 0px;
          background: rgba(126, 134, 142, 0.08);
          border-top-right-radius: 6px;
          border-bottom-right-radius: 6px;
        }
      }

      .node-config-error {
        border-color: #ff5219 !important;
      }
      // 普通节点包装
      .node-wrapper {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
      }
      // 节点连线处理
      .node-handler-wrapper {
        position: relative;
        display: flex;
        height: 70px;
        align-items: center;
        user-select: none;
        justify-content: center;
        flex-direction: column;

        &::before {
          position: absolute;
          top: 0;
          right: 0;
          left: 0;
          // bottom: 5px;
          bottom: 0px;
          z-index: 0;
          width: 2px;
          height: 100%;
          // height: calc(100% - 5px);
          margin: auto;
          background-color: #dedede;
          content: '';
        }

        .node-handler {
          .add-icon {
            position: relative;
            top: -5px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            width: 25px;
            height: 25px;
            color: #fff;
            background-color: #0089ff;
            border-radius: 50%;

            &:hover {
              transform: scale(1.1);
            }
          }
        }

        .node-handler-arrow {
          position: absolute;
          bottom: 0;
          left: 50%;
          display: flex;
          transform: translateX(-50%);
        }
      }

      // 条件节点包装
      .branch-node-wrapper {
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        margin-top: 16px;

        .branch-node-container {
          position: relative;
          display: flex;

          &::before {
            position: absolute;
            height: 100%;
            width: 4px;
            background-color: #fafafa;
            content: '';
            left: 50%;
            transform: translate(-50%);
          }

          .branch-node-add {
            position: absolute;
            top: -18px;
            left: 50%;
            z-index: 1;
            height: 36px;
            padding: 0 10px;
            font-size: 12px;
            line-height: 36px;
            border: 2px solid #dedede;
            border-radius: 18px;
            transform: translateX(-50%);
            transform-origin: center center;
          }

          .branch-node-item {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            min-width: 280px;
            padding: 40px 40px 0;
            background: transparent;
            border-top: 2px solid #dedede;
            border-bottom: 2px solid #dedede;

            &::before {
              position: absolute;
              width: 2px;
              height: 100%;
              margin: auto;
              inset: 0;
              background-color: #dedede;
              content: '';
            }
          }
          // 覆盖条件节点第一个节点左上角的线
          .branch-line-first-top {
            position: absolute;
            top: -5px;
            left: -1px;
            width: 50%;
            height: 7px;
            background-color: #fafafa;
            content: '';
          }
          // 覆盖条件节点第一个节点左下角的线
          .branch-line-first-bottom {
            position: absolute;
            bottom: -5px;
            left: -1px;
            width: 50%;
            height: 7px;
            background-color: #fafafa;
            content: '';
          }
          // 覆盖条件节点最后一个节点右上角的线
          .branch-line-last-top {
            position: absolute;
            top: -5px;
            right: -1px;
            width: 50%;
            height: 7px;
            background-color: #fafafa;
            content: '';
          }
          // 覆盖条件节点最后一个节点右下角的线
          .branch-line-last-bottom {
            position: absolute;
            right: -1px;
            bottom: -5px;
            width: 50%;
            height: 7px;
            background-color: #fafafa;
            content: '';
          }
        }
      }

      .node-fixed-name {
        display: inline-block;
        width: auto;
        padding: 0 4px;
        overflow: hidden;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      // 开始节点包装
      .start-node-wrapper {
        position: relative;
        margin-top: 16px;

        .start-node-container {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;

          .start-node-box {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 90px;
            height: 36px;
            padding: 3px 4px;
            color: #212121;
            cursor: pointer;
            // background: #2c2c2c;
            background: #fafafa;
            border-radius: 30px;
            box-shadow: 0 1px 5px 0 rgba(10, 30, 65, 0.08);
            box-sizing: border-box;
          }
        }
      }

      // 结束节点包装
      .end-node-wrapper {
        margin-bottom: 16px;

        .end-node-box {
          display: flex;
          justify-content: center;
          align-items: center;
          width: 80px;
          height: 36px;
          color: #212121;
          // background: #6e6e6e;
          background: #fafafa;
          border-radius: 30px;
          box-shadow: 0 1px 5px 0 rgba(10, 30, 65, 0.08);
          box-sizing: border-box;
        }
      }

      // 可编辑的 title 输入框
      .editable-title-input {
        height: 20px;
        max-width: 145px;
        line-height: 20px;
        font-size: 12px;
        margin-left: 4px;
        border: 1px solid #d9d9d9;
        border-radius: 4px;
        transition: all 0.3s;

        &:focus {
          border-color: #40a9ff;
          outline: 0;
          box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
        }
      }
    }
  }
}

// 配置节点头部
.config-header {
  display: flex;
  flex-direction: column;

  .node-name {
    display: flex;
    height: 24px;
    line-height: 24px;
    font-size: 16px;
    cursor: pointer;
    align-items: center;
  }

  .divide-line {
    width: 100%;
    height: 1px;
    margin-top: 16px;
    background: #eee;
  }

  .config-editable-input {
    height: 24px;
    max-width: 510px;
    font-size: 16px;
    line-height: 24px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    transition: all 0.3s;

    &:focus {
      border-color: #40a9ff;
      outline: 0;
      box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
    }
  }
}

// 表单字段权限
.field-setting-pane {
  display: flex;
  flex-direction: column;
  font-size: 14px;

  .field-setting-desc {
    padding-right: 8px;
    margin-bottom: 16px;
    font-size: 16px;
    font-weight: 700;
  }

  .field-permit-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 45px;
    padding-left: 12px;
    line-height: 45px;
    background-color: #f8fafc0a;
    border: 1px solid #1f38581a;

    .first-title {
      text-align: left !important;
    }

    .other-titles {
      display: flex;
      justify-content: space-between;
    }

    .setting-title-label {
      display: inline-block;
      width: 110px;
      padding: 5px 0;
      font-size: 13px;
      font-weight: 700;
      color: #000;
      text-align: center;
    }
  }

  .field-setting-item {
    align-items: center;
    display: flex;
    justify-content: space-between;
    height: 38px;
    padding-left: 12px;
    border: 1px solid #1f38581a;
    border-top: 0;

    .field-setting-item-label {
      display: inline-block;
      width: 110px;
      min-height: 16px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      cursor: text;
    }

    .field-setting-item-group {
      display: flex;
      justify-content: space-between;

      .item-radio-wrap {
        display: inline-block;
        width: 110px;
        text-align: center;
      }
    }
  }
}

// 节点连线气泡卡片样式
.handler-item-wrapper {
  display: flex;
  cursor: pointer;

  .handler-item {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .handler-item-icon {
    width: 60px;
    height: 60px;
    background: #fff;
    border: 1px solid #e2e2e2;
    border-radius: 50%;
    user-select: none;
    text-align: center;

    &:hover {
      background: #e2e2e2;
      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
    }

    .icon-size {
      font-size: 25px;
      line-height: 60px;
    }
  }

  .approve {
    color: #ff943e;
  }
  .copy {
    color: #3296fa;
  }

  .condition {
    color: #67c23a;
  }

  .parallel {
    color: #626aef;
  }

  .inclusive {
    color: #345da2;
  }

  .handler-item-text {
    margin-top: 4px;
    width: 80px;
    text-align: center;
    font-size: 13px;
  }
}

// iconfont 样式
@font-face {
  font-family: 'iconfont'; /* Project id 4495938 */
  src:
    url('iconfont.woff2?t=1724339470412') format('woff2'),
    url('iconfont.woff?t=1724339470412') format('woff'),
    url('iconfont.ttf?t=1724339470412') format('truetype');
}

.iconfont {
  font-family: 'iconfont' !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-start-user:before {
  content: '\e679';
}

.icon-inclusive:before {
  content: '\e602';
}

.icon-copy:before {
  content: '\e7eb';
}

.icon-handle:before {
  content: '\e61c';
}

.icon-exclusive:before {
  content: '\e717';
}

.icon-approve:before {
  content: '\e715';
}

.icon-parallel:before {
  content: '\e688';
}
