/**
 * Utilities - Common utility classes
 *
 * Reusable utility classes for common patterns.
 * Use sparingly - prefer semantic component styles.
 */

/* ===========================================
   FLEXBOX UTILITIES
   =========================================== */
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.flex-start {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.flex-end {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.flex-column {
  display: flex;
  flex-direction: column;
}

.flex-1 {
  flex: 1;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

/* ===========================================
   TEXT UTILITIES
   =========================================== */
.text-truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-secondary {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.text-muted {
  color: var(--color-text-muted);
}

.text-mono {
  font-family: var(--font-mono);
}

/* ===========================================
   SPACING UTILITIES
   =========================================== */
.gap-2 { gap: var(--spacing-2); }
.gap-3 { gap: var(--spacing-3); }
.gap-4 { gap: var(--spacing-4); }
.gap-6 { gap: var(--spacing-6); }
.gap-8 { gap: var(--spacing-8); }

.mt-auto { margin-top: auto; }
.mb-0 { margin-bottom: 0; }

/* ===========================================
   VISIBILITY UTILITIES
   =========================================== */
.hidden {
  display: none !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ===========================================
   WIDTH UTILITIES
   =========================================== */
.w-full {
  width: 100%;
}

.min-w-0 {
  min-width: 0;
}
