/* ── HR Dashboard — page-specific layout ──────────────────────────
   Reuses the shared design system tokens (variables.css) and core
   components (metric-card, badge, card, core-table) — no new colors
   or type scale invented here, just layout glue. */

.hrd-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.hrd-kpi-row .metric-card {
  cursor: default;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.hrd-kpi-row .metric-card--link {
  cursor: pointer;
}
.hrd-kpi-row .metric-card--link:hover {
  border-color: var(--border-strong);
  box-shadow: var(--shadow);
}

.hrd-section {
  margin-bottom: var(--space-5);
}

.hrd-section-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
@media (max-width: 900px) {
  .hrd-section-grid { grid-template-columns: 1fr; }
}

/* Attendance stat strip inside the presence card header */
.hrd-stat-strip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
  padding: var(--space-4) var(--space-6);
  border-bottom: 1px solid var(--border-subtle);
}
.hrd-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.hrd-stat__value {
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -0.02em;
}
.hrd-stat__label {
  font-size: var(--text-xs);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.hrd-stat--ok      .hrd-stat__value { color: var(--status-success); }
.hrd-stat--danger  .hrd-stat__value { color: var(--status-danger); }
.hrd-stat--warn    .hrd-stat__value { color: var(--status-warning); }
.hrd-stat--info    .hrd-stat__value { color: var(--status-info); }

/* Roster filter toolbar */
.hrd-toolbar {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
  align-items: flex-end;
  padding: var(--space-4) var(--space-6) 0;
}
.hrd-toolbar .filter-group { min-width: 160px; }
.hrd-toolbar .filter-group--search { flex: 1; min-width: 200px; }

/* Simple list rows (departments, recent hires/exits) */
.hrd-list {
  display: flex;
  flex-direction: column;
}
.hrd-list-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) 0;
  border-top: 1px solid var(--border-subtle);
  font-size: var(--text-sm);
}
.hrd-list-row:first-child { border-top: none; }
.hrd-list-row--clickable { cursor: pointer; }
.hrd-list-row--clickable:hover .hrd-list-row__name { color: var(--accent-primary); }
.hrd-list-row__name { color: var(--text-primary); transition: color var(--transition-fast); }
.hrd-list-row__value {
  font-weight: var(--font-semibold);
  font-variant-numeric: tabular-nums;
  font-size: var(--text-sm);
  color: var(--text-primary);
}
.hrd-empty {
  padding: var(--space-5) 0;
  color: var(--text-muted);
  font-size: var(--text-sm);
  text-align: center;
}

/* Roster table cells */
.hrd-emp-name { font-weight: var(--font-semibold); color: var(--text-primary); }
.hrd-time { font-variant-numeric: tabular-nums; color: var(--text-secondary); font-size: var(--text-sm); }
.hrd-dash { color: var(--text-disabled); }
