/* HYPERPART: profile-card */
/* Promoted from Dazzle regions.css (Tier A1), then refined so the
 * stats strip reads as KPI chips — not a fixed-width 3-col table
 * that crams long uppercase labels. */

/* ─────────────────────────── profile_card region ────────────────
 * Identity panel: avatar/initials + primary/secondary text,
 * optional stats strip, optional bulleted facts list. */

.dz-profile-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  min-width: 0;
}

.dz-profile-identity {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  min-width: 0;
}

.dz-profile-avatar,
.dz-profile-initials {
  width: 3rem;
  height: 3rem;
  border-radius: var(--radius-full);
  background: var(--colour-bg);
  flex-shrink: 0;
}

.dz-profile-avatar {
  object-fit: cover;
}

.dz-profile-initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--colour-text-muted);
}

.dz-profile-text {
  flex: 1 1 0;
  min-width: 0;
}

.dz-profile-primary {
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  color: var(--colour-text);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dz-profile-secondary {
  font-size: var(--text-xs);
  color: var(--colour-text-muted);
  margin-block-start: 0.125rem;
}

/* Stats — flexible KPI strip. Columns size to available space
 * (auto-fit) rather than forcing three equal table cells. Value sits
 * above the label so long labels wrap under a shared numeric baseline
 * instead of shoving values out of horizontal alignment. */
.dz-profile-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(4.5rem, 1fr));
  gap: var(--space-md) var(--space-lg);
  border-block-start: 1px solid var(--colour-border);
  padding-block-start: var(--space-md);
  margin: 0;
  min-width: 0;
}

.dz-profile-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  min-width: 0;
  margin: 0;
}

.dz-profile-stat-value {
  order: -1; /* number first — shared baseline across the strip */
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
  color: var(--colour-text);
  margin: 0;
}

.dz-profile-stat-label {
  font-size: var(--text-xs);
  font-weight: var(--weight-medium);
  /* Sentence case + normal tracking: uppercase + letter-spacing made
   * multi-word labels (OPEN WORK / ORDERS) look like a broken table. */
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.3;
  color: var(--colour-text-muted);
  margin: 0;
  text-wrap: balance;
  overflow-wrap: break-word;
  max-width: 100%;
}

.dz-profile-facts {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
  border-block-start: 1px solid var(--colour-border);
  padding-block-start: var(--space-md);
  font-size: var(--text-xs);
  color: var(--colour-text);
  list-style: none;
  margin: 0;
  padding-inline-start: 0;
}

.dz-profile-fact {
  display: flex;
  gap: var(--space-sm);
  line-height: var(--leading-tight);
}

.dz-profile-fact-bullet {
  color: var(--colour-text-muted);
  flex-shrink: 0;
}

.dz-profile-fact-text {
  min-width: 0;
}
