/* 测试用例 */
.tc-step-card {
  border: 1px solid #e4e7ed;
  border-radius: 8px;
  margin-bottom: 12px;
  background: #fff;
}

.tc-step-card-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: #f5f7fa;
  border-bottom: 1px solid #e4e7ed;
  border-radius: 8px 8px 0 0;
}

.tc-step-index {
  font-weight: 600;
  color: #409eff;
  min-width: 20px;
}

.tc-step-actions {
  margin-left: auto;
  display: flex;
  gap: 4px;
}

.tc-step-body {
  padding: 12px;
}

.tc-action-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.tc-dataset-card {
  border: 1px dashed #dcdfe6;
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 12px;
}

.tc-dataset-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.tc-step-result {
  padding: 12px;
  border-left: 3px solid #409eff;
  background: #fff;
}

.tc-step-header {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tc-step-name {
  font-weight: 500;
}

.tc-response-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.tc-response-summary-tag {
  max-width: 100%;
}

.ml-8 {
  margin-left: 8px;
}

.result-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.test-case-dialog .kv-row {
  display: grid;
  grid-template-columns: 96px 160px 1fr 32px;
  gap: 8px;
  align-items: start;
  margin-bottom: 8px;
}

.test-case-dialog .kv-row .kv-type {
  width: 100%;
}

.test-case-dialog .kv-row .tc-var-value,
.test-case-dialog .kv-row .kv-value,
.test-case-dialog .kv-row .pre-var-random,
.test-case-dialog .kv-row .pre-var-sql-in {
  width: 100%;
  min-width: 0;
}

.test-case-dialog .kv-row .pre-var-sql-in {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.test-case-dialog .kv-row.kv-header {
  font-size: 12px;
  color: #909399;
  font-weight: 600;
  margin-bottom: 4px;
}

.test-case-dialog .kv-row .body-raw-editor textarea {
  font-family: Menlo, Monaco, Consolas, monospace;
  font-size: 12px;
}

