/*
 * Utility Classes
 * Quick styling utilities for rapid development
 */

/* ===================================
   TEXT UTILITIES
   ================================= */

.text-uppercase { text-transform: uppercase; }
.text-lowercase { text-transform: lowercase; }
.text-capitalize { text-transform: capitalize; }
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ===================================
   BORDER UTILITIES
   ================================= */

.border { border: 1px solid var(--color-gray-300); }
.border-0 { border: none; }
.border-t { border-top: 1px solid var(--color-gray-300); }
.border-b { border-bottom: 1px solid var(--color-gray-300); }
.border-l { border-left: 1px solid var(--color-gray-300); }
.border-r { border-right: 1px solid var(--color-gray-300); }

.border-teal { border-color: var(--color-teal-500); }
.border-gold { border-color: var(--color-gold-500); }

/* Rounded corners */
.rounded-none { border-radius: 0; }
.rounded-sm { border-radius: var(--radius-sm); }
.rounded { border-radius: var(--radius-base); }
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }
.rounded-xl { border-radius: var(--radius-xl); }
.rounded-full { border-radius: var(--radius-full); }

/* ===================================
   SHADOW UTILITIES
   ================================= */

.shadow-none { box-shadow: none; }
.shadow-sm { box-shadow: var(--shadow-sm); }
.shadow { box-shadow: var(--shadow-base); }
.shadow-md { box-shadow: var(--shadow-md); }
.shadow-lg { box-shadow: var(--shadow-lg); }
.shadow-xl { box-shadow: var(--shadow-xl); }
.shadow-teal { box-shadow: var(--shadow-teal); }
.shadow-gold { box-shadow: var(--shadow-gold); }

/* ===================================
   OPACITY UTILITIES
   ================================= */

.opacity-0 { opacity: 0; }
.opacity-25 { opacity: 0.25; }
.opacity-50 { opacity: 0.5; }
.opacity-75 { opacity: 0.75; }
.opacity-100 { opacity: 1; }

/* ===================================
   CURSOR UTILITIES
   ================================= */

.cursor-pointer { cursor: pointer; }
.cursor-not-allowed { cursor: not-allowed; }
.cursor-default { cursor: default; }

/* ===================================
   POINTER EVENTS
   ================================= */

.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }

/* ===================================
   USER SELECT
   ================================= */

.select-none { user-select: none; }
.select-text { user-select: text; }
.select-all { user-select: all; }

/* ===================================
   OBJECT FIT
   ================================= */

.object-contain { object-fit: contain; }
.object-cover { object-fit: cover; }
.object-fill { object-fit: fill; }

/* ===================================
   Z-INDEX UTILITIES
   ================================= */

.z-0 { z-index: var(--z-0); }
.z-10 { z-index: var(--z-10); }
.z-20 { z-index: var(--z-20); }
.z-30 { z-index: var(--z-30); }
.z-40 { z-index: var(--z-40); }
.z-50 { z-index: var(--z-50); }

/* ===================================
   ACCESSIBILITY
   ================================= */

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