.tool-title {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-lg);
  margin-bottom: var(--space-2)
}

.tool-desc {
  color: var(--color-muted, #666);
  font-size: var(--text-sm);
  margin-bottom: var(--space-3)
}

.hr {
  height: 1px;
  background: var(--color-border, #eee);
  margin: var(--space-4) 0
}

/* KPI */
.kpis {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap
}

.kpi {
  flex: 1 1 220px;
  background: var(--color-surface);
  border: 1px dashed var(--color-border, #e6e6e6);
  border-radius: var(--radius-md);
  padding: var(--space-3);
  text-align: center
}

.kpi .label {
  color: var(--color-muted, #777);
  font-size: var(--text-xs)
}

.kpi .value {
  font-size: calc(var(--text-xl, 18px) + 2px);
  font-weight: 700
}

/* 表单行与控件 */
.form-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-3)
}

.form-row label {
  width: 90px;
  min-width: 90px;
  color: var(--color-text);
  font-weight: 600
}

.flex-row {
  display: flex;
  align-items: center;
  gap: var(--space-2)
}

.addon {
  font-size: var(--text-xs);
  color: var(--color-muted, #777)
}

input[type="number"],
input[type="text"],
select {
  height: 31px;
  line-height: 31px;
  padding: 0 var(--space-2);
  border: 1px solid var(--color-border, #e6e6e6);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-text);
  outline: none
}

input::placeholder {
  color: var(--color-muted, #888)
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px
}

/* 使用全站 tab 体系（tab-group / tab-btn）来做运动类型与单位切换 */
.tab-group.compact {
  gap: 6px
}

.tab-btn {
  height: 31px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  border: 1px solid var(--color-border, #e6e6e6);
  border-radius: var(--radius-sm);
  cursor: pointer
}

.tab-btn.active {
  color: #fff;
  background: var(--color-primary);
  border-color: var(--color-primary)
}

/* 两列与单列：不写内联宽度 */
.row.two {
  gap: var(--space-4)
}

.row.two>.panel {
  width: calc(50% - var(--space-2))
}

.row.one>.panel {
  width: 100%
}

.title {
  padding-bottom: 12px;
}

/* 结果块 */
.result {
  background: #fff;
  color: #555;
  border-radius: var(--radius-md);
  padding: var(--space-4);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  border: 1px solid #eee;
}

#distance-unit-tag {
  display: inline-flex;
  align-items: center;
  height: 31px;
  padding: 0 6px;
  color: var(--color-muted, #777)
}

/* 更细的响应式：KPI、两列折行、触摸友好 */
@media (max-width:1200px) {
  .kpi {
    flex: 1 1 180px
  }
}

@media (max-width:960px) {
  .form-row {
    flex-direction: column;
    align-items: flex-start
  }

  .form-row label {
    width: auto;
    min-width: 0
  }

  .row.two {
    flex-direction: column
  }

  .row.two>.panel {
    width: 100%
  }
}

@media (max-width:560px) {
  .tab-btn {
    flex: 1 1 auto
  }

  .tab-group.compact {
    display: flex;
    flex-wrap: wrap
  }

  .kpi {
    flex: 1 1 150px
  }

  input[type="number"],
  input[type="text"],
  select {
    width: 100%
  }
}