/* ===========================================
   EMPTY STATE COMPONENT
   =========================================== */

.empty-state {
  /* === Configuration === */
  --empty-state-padding: 3rem 1rem;
  --empty-state-icon-size: 3rem;
  --empty-state-icon-color: var(--text-tertiary);
  --empty-state-icon-opacity: 0.5;
  --empty-state-title-size: 0.9375rem;
  --empty-state-title-weight: 600;
  --empty-state-title-color: var(--text-primary);
  --empty-state-description-size: 0.8125rem;
  --empty-state-description-color: var(--text-tertiary);
  --empty-state-description-max-width: 240px;

  /* === Base Styles === */
  text-align: center;
  padding: var(--empty-state-padding);
  color: var(--text-tertiary);
}

/* === Exception: Enhanced layout when icon present === */
.empty-state:has(.empty-state__icon) {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
}

/* Icon */
.empty-state__icon {
  width: var(--empty-state-icon-size);
  height: var(--empty-state-icon-size);
  margin-bottom: 1rem;
  color: var(--empty-state-icon-color);
  opacity: var(--empty-state-icon-opacity);
}

/* Title */
.empty-state__title {
  font-weight: var(--empty-state-title-weight);
  font-size: var(--empty-state-title-size);
  color: var(--empty-state-title-color);
  margin-bottom: 0.25rem;
}

/* Description */
.empty-state__description {
  font-size: var(--empty-state-description-size);
  color: var(--empty-state-description-color);
  margin-bottom: 1rem;
  max-width: var(--empty-state-description-max-width);
}

/* === Exception: Dashed border variant === */
.empty-state[data-variant="dashed"] {
  background: var(--bg-tertiary);
  border-radius: var(--radius-md);
  border: 1px dashed var(--border-default);
}

/* === Exception: Auto-hide when sibling container has children === */
[data-hides-empty]:has(> *) ~ .empty-state {
  display: none;
}
