.pipeline-page {
  min-height: 100vh;
  background: #f5f5f5;
  padding-bottom: 120px;

  &.loading-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 300px;

    .loading-text {
      margin-top: 16px;
      font-size: 28px;
      color: #999;
    }
  }
}

.pipeline-content {
  height: calc(100vh - 120px);
  padding: 24px;
}

.config-section {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 24px;

  .section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
  }

  .section-title {
    display: block;
    font-size: 32px;
    font-weight: 600;
    color: #333;
    margin-bottom: 24px;
  }
}

.config-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid #f0f0f0;

  &:last-child {
    border-bottom: none;
  }

  .item-info {
    flex: 1;

    .item-label {
      display: block;
      font-size: 28px;
      color: #333;
      margin-bottom: 4px;
    }

    .item-desc {
      font-size: 24px;
      color: #999;
    }
  }
}

// 分支规则
.rule-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px;
  background: #f5f5f5;
  border-radius: 8px;
  margin-bottom: 12px;

  .rule-info {
    flex: 1;

    .rule-branch {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 8px;
      font-size: 28px;
      color: #333;

      .iconfont {
        color: #4CAF50;
      }
    }

    .rule-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
  }

  .rule-env {
    font-size: 24px;
    color: #666;
  }
}

// 环境变量
.env-list {
  .env-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
    background: #f5f5f5;
    border-radius: 8px;
    margin-bottom: 12px;

    .env-info {
      flex: 1;

      .env-key {
        display: flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 8px;

        .key {
          font-size: 28px;
          font-weight: 500;
          color: #333;
          font-family: monospace;
        }
      }

      .env-value {
        font-size: 24px;
        color: #666;
        font-family: monospace;
      }
    }

    .env-delete {
      font-size: 32px;
      color: #F44336;
      padding: 8px;
    }
  }
}

// Webhook
.webhook-list {
  .webhook-item {
    padding: 16px;
    background: #f5f5f5;
    border-radius: 8px;
    margin-bottom: 12px;

    .webhook-info {
      .webhook-url {
        display: block;
        font-size: 26px;
        color: #2196F3;
        margin-bottom: 8px;
        word-break: break-all;
      }

      .webhook-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
      }
    }
  }
}

.empty-rules,
.empty-envs,
.empty-webhooks {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 48px 0;
  color: #999;

  .iconfont {
    font-size: 64px;
    margin-bottom: 16px;
  }

  text {
    font-size: 26px;
  }
}

// 保存按钮
.save-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 24px;
  background: #fff;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.05);

  .at-button {
    width: 100%;
  }
}

// 环境变量弹窗
.env-modal-content {
  .modal-item {
    margin-bottom: 24px;

    &:last-child {
      margin-bottom: 0;
    }

    .modal-label {
      display: block;
      font-size: 26px;
      color: #666;
      margin-bottom: 8px;
    }

    .modal-input {
      width: 100%;
      padding: 16px;
      background: #f5f5f5;
      border-radius: 8px;
      font-size: 28px;
    }

    .modal-switch {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .modal-hint {
      font-size: 22px;
      color: #999;
      margin-top: 8px;
    }
  }
}
