.node-container {
  color: white;
  min-width: 150px;
  font-size: 14px;
  border: 2px solid transparent;

  &.selected {
    border-color: #1890ff;
    box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  }

  .node-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    color: #000000;
    text-align: center;
    position: relative;
  }

  .node-api-box,
  .node-data-box {
    //box-shadow: 3px 3px 5px #cccccc;
  }

  .node-data-box {
    margin-top: -1px;
  }

  .node-split-line {
    z-index: 230;
    position: relative;
    width: 90%;
    background-color: #ffffff;
    margin: -1px auto; // -1是为了遮住上面盒子的部分边框
    color: #000000;
    text-align: center;
    height: 20px;
    line-height: 20px;
    font-size: 12px;
    border: 1px solid #cccccc;
    border-bottom-color: #ffffff;
    border-top-color: #ffffff;
  }

  .node-content,
  .node-content-api {
    display: flex;
    background-color: #ffffff;
    color: #000000;
    padding: 0 5px;
    border: 1px solid #cccccc;
    border-radius: 3px;
    justify-content: space-between;

    .node-inputs {
      padding-right: 10px;
    }

    .node-outputs {
      padding-left: 10px;
    }

    .node-inputs-api,
    .node-outputs-api {
      flex: 1;
    }


    .node-inputs {
      margin-bottom: 5px;

      .node-input-label {
        font-size: 12px;
        padding: 1px 0;
        height: 20px;
        line-height: 20px;

        .node-data-type {
          color: #adadad;
        }
      }
    }

    .node-outputs,
    .node-outputs-api {
      text-align: right;
    }

    .node-output-label {
      font-size: 12px;
      padding: 1px 0;
      height: 20px;
      line-height: 20px;

      .node-data-type {
        color: #adadad;
      }
    }
  }

  .node-content-api {
    min-height: 30px;
  }

  .node-content {
    min-height: 10px;
  }

  .node-footer {
    background-color: #ffffff;
    color: #000000;
    padding: 5px 20px;
    border: 1px solid #cccccc;
    border-top: none;
    min-height: 20px;
    text-align: center;
  }
}

// 节点状态指示器样式
.node-status-indicator {
  position: absolute;
  top: -10px;
  right: -10px;
  width: 20px;
  height: 20px;
  z-index: 10;
}

.status-waiting {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #cccccc;
  border: 2px solid #ffffff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}

.status-running {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #1890ff;
  border: 2px solid #ffffff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
  animation: pulse 1.5s infinite;
}

.status-success {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #52c41a;
  border: 2px solid #ffffff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}

.status-failed {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: #ff4d4f;
  border: 2px solid #ffffff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}

@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(24, 144, 255, 0.7);
  }
  70% {
    box-shadow: 0 0 0 6px rgba(24, 144, 255, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(24, 144, 255, 0);
  }
}