/* {% kpis %} and {% kpi %}: a row of labelled figures in one card. */

.kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: var(--shadow-xs);
}

.kpi {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-5) var(--space-6);
  border-right: 1px solid var(--border-subtle);
  color: inherit;
  text-decoration: none;
}

.kpi:last-child {
  border-right: 0;
}

.kpi-link:hover {
  background: var(--surface-subtle);
}

.kpi-label {
  color: var(--text-muted);
  font-size: var(--text-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}

.kpi-value {
  color: var(--text);
  font-size: var(--text-2xl);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-tight);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kpi-success {
  color: var(--text-success);
}

.kpi-warning {
  color: var(--text-warning);
}

.kpi-danger {
  color: var(--text-danger);
}

.kpi-caption {
  color: var(--text-muted);
  font-size: var(--text-sm);
}

.kpi-link .kpi-caption {
  color: var(--text-accent);
}

/* KPIs nested in a panel sit flat inside it. */
.panel .kpis {
  border: 0;
  border-top: 1px solid var(--border-subtle);
  border-radius: 0;
  box-shadow: none;
}

@media (max-width: 820px) {
  .kpis {
    grid-template-columns: 1fr 1fr;
  }

  .kpi {
    padding: var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
  }

  .kpi-value {
    font-size: var(--text-xl);
  }
}
