/* ===== KPI Cards – layout stabil & presisi ===== */
.kpi-card { --kpi-gap: 12px; --kpi-ico: 44px; }
.kpi-body {
  display: grid;
  grid-template-columns: var(--kpi-ico) 1fr;
  align-items: center;
  gap: var(--kpi-gap);
  min-height: 108px; /* konsisten */
}
.kpi-icon {
  font-size: 2rem;            /* ≈32px */
  line-height: 1;
  color: #1b8a56;             /* hijau konsisten */
  display: grid;
  place-items: center;
  width: var(--kpi-ico);
  height: var(--kpi-ico);
}
.kpi-content { display: grid; gap: 2px; }
.kpi-label {
  text-transform: uppercase;
  letter-spacing: .02em;
  font-size: .78rem;
  color: #6c757d;
  line-height: 1.2;
}
.kpi-value {
  font-weight: 600;
  font-size: 1.375rem;        /* fs-4 setara */
  line-height: 1.15;
  /* Angka tidak “loncat”: */
  font-variant-numeric: tabular-nums lining-nums;
}
.kpi-sub {
  font-size: .875rem;
  color: #6c757d;
  line-height: 1.2;
  font-variant-numeric: tabular-nums lining-nums;
}

/* Responsive kecil: rapatkan sedikit */
@media (max-width: 575.98px) {
  .kpi-body { min-height: 96px; --kpi-ico: 40px; }
  .kpi-value { font-size: 1.25rem; }
}
