.kpi-grid {
  display: grid;
  flex: 0 0 auto;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.kpi-card {
  position: relative;
  min-width: 0;
  min-height: 110px;
  overflow: hidden;
  padding: 17px 18px 15px;
  border: 1px solid var(--border-color);
  border-left: 4px solid var(--metric-color, var(--bpjs-primary));
  border-radius: var(--radius);
  background: var(--card-bg);
  box-shadow: var(--shadow-soft);
  animation: card-enter 300ms ease-out both;
}

.kpi-card:nth-child(2) { animation-delay: 35ms; }
.kpi-card:nth-child(3) { animation-delay: 70ms; }
.kpi-card:nth-child(4) { animation-delay: 105ms; }
.kpi-card:nth-child(5) { animation-delay: 140ms; }

.kpi-card-label {
  display: block;
  margin-bottom: 12px;
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 700;
}

.kpi-card-value {
  display: block;
  overflow: hidden;
  color: var(--text-primary);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kpi-card-value.is-currency {
  font-size: 18px;
}

.kpi-card-note {
  display: block;
  margin-top: 5px;
  color: var(--text-secondary);
  font-size: 10px;
}

.kpi-skeleton {
  height: 110px;
  border: 1px solid var(--border-color);
  border-left: 4px solid var(--border-color);
  border-radius: var(--radius);
  background: var(--card-bg);
  animation: skeleton-pulse 1.2s ease-in-out infinite alternate;
}

@keyframes skeleton-pulse {
  to { opacity: 0.58; }
}

@keyframes card-enter {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1100px) {
  .kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .kpi-card, .kpi-skeleton { min-height: 92px; height: 92px; padding: 12px; }
  .kpi-card-label { margin-bottom: 8px; font-size: 10px; }
  .kpi-card-value { font-size: 20px; }
  .kpi-card-value.is-currency { font-size: 15px; }
  .kpi-card-note { font-size: 9px; }
}