/**
 * Text Utilities
 * Typography, text alignment, and text styling utilities
 * 
 * @author MrGreen Development Team
 * @version 1.0.0
 * @since 2025-01-08
 */

/* ===== TEXT ALIGNMENT ===== */
.text-left { text-align: left !important; }
.text-center { text-align: center !important; }
.text-right { text-align: right !important; }
.text-justify { text-align: justify !important; }

/* ===== TEXT TRANSFORM ===== */
.text-uppercase { text-transform: uppercase !important; }
.text-lowercase { text-transform: lowercase !important; }
.text-capitalize { text-transform: capitalize !important; }
.text-normal-case { text-transform: none !important; }

/* ===== TEXT DECORATION ===== */
.text-underline { text-decoration: underline !important; }
.text-overline { text-decoration: overline !important; }
.text-line-through { text-decoration: line-through !important; }
.text-no-underline { text-decoration: none !important; }

/* ===== FONT WEIGHT ===== */
.font-thin { font-weight: 100 !important; }
.font-extralight { font-weight: 200 !important; }
.font-light { font-weight: 300 !important; }
.font-normal { font-weight: 400 !important; }
.font-medium { font-weight: 500 !important; }
.font-semibold { font-weight: 600 !important; }
.font-bold { font-weight: 700 !important; }
.font-extrabold { font-weight: 800 !important; }
.font-black { font-weight: 900 !important; }

/* ===== FONT SIZE ===== */
.text-xs { font-size: var(--font-size-xs) !important; }
.text-sm { font-size: var(--font-size-sm) !important; }
.text-base { font-size: var(--font-size-base) !important; }
.text-lg { font-size: var(--font-size-lg) !important; }
.text-xl { font-size: var(--font-size-xl) !important; }
.text-2xl { font-size: var(--font-size-2xl) !important; }
.text-3xl { font-size: var(--font-size-3xl) !important; }
.text-4xl { font-size: var(--font-size-4xl) !important; }

/* ===== LINE HEIGHT ===== */
.leading-none { line-height: 1 !important; }
.leading-tight { line-height: var(--line-height-tight) !important; }
.leading-normal { line-height: var(--line-height-normal) !important; }
.leading-relaxed { line-height: var(--line-height-relaxed) !important; }
.leading-loose { line-height: 2 !important; }

/* ===== LETTER SPACING ===== */
.tracking-tighter { letter-spacing: -0.05em !important; }
.tracking-tight { letter-spacing: -0.025em !important; }
.tracking-normal { letter-spacing: 0em !important; }
.tracking-wide { letter-spacing: 0.025em !important; }
.tracking-wider { letter-spacing: 0.05em !important; }
.tracking-widest { letter-spacing: 0.1em !important; }

/* ===== TEXT COLOR ===== */
.text-primary { color: var(--text-primary) !important; }
.text-secondary { color: var(--text-secondary) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-white { color: var(--white) !important; }
.text-black { color: var(--black) !important; }

.text-gray-50 { color: var(--gray-50) !important; }
.text-gray-100 { color: var(--gray-100) !important; }
.text-gray-200 { color: var(--gray-200) !important; }
.text-gray-300 { color: var(--gray-300) !important; }
.text-gray-400 { color: var(--gray-400) !important; }
.text-gray-500 { color: var(--gray-500) !important; }
.text-gray-600 { color: var(--gray-600) !important; }
.text-gray-700 { color: var(--gray-700) !important; }
.text-gray-800 { color: var(--gray-800) !important; }
.text-gray-900 { color: var(--gray-900) !important; }

.text-primary-color { color: var(--primary-color) !important; }
.text-secondary-color { color: var(--secondary-color) !important; }
.text-accent-color { color: var(--accent-color) !important; }

/* ===== TEXT OVERFLOW ===== */
.text-ellipsis { 
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.text-clip { 
  overflow: hidden !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

/* ===== WHITE SPACE ===== */
.whitespace-normal { white-space: normal !important; }
.whitespace-nowrap { white-space: nowrap !important; }
.whitespace-pre { white-space: pre !important; }
.whitespace-pre-line { white-space: pre-line !important; }
.whitespace-pre-wrap { white-space: pre-wrap !important; }

/* ===== WORD BREAK ===== */
.break-normal { overflow-wrap: normal !important; word-break: normal !important; }
.break-words { overflow-wrap: break-word !important; }
.break-all { word-break: break-all !important; }

/* ===== TEXT INDENT ===== */
.indent-0 { text-indent: 0 !important; }
.indent-1 { text-indent: 0.25rem !important; }
.indent-2 { text-indent: 0.5rem !important; }
.indent-3 { text-indent: 0.75rem !important; }
.indent-4 { text-indent: 1rem !important; }

/* ===== VERTICAL ALIGN ===== */
.align-baseline { vertical-align: baseline !important; }
.align-top { vertical-align: top !important; }
.align-middle { vertical-align: middle !important; }
.align-bottom { vertical-align: bottom !important; }
.align-text-top { vertical-align: text-top !important; }
.align-text-bottom { vertical-align: text-bottom !important; }

/* ===== LIST STYLE ===== */
.list-none { list-style-type: none !important; }
.list-disc { list-style-type: disc !important; }
.list-decimal { list-style-type: decimal !important; }

/* ===== RESPONSIVE TEXT ===== */
@media (max-width: 640px) {
  .sm\:text-left { text-align: left !important; }
  .sm\:text-center { text-align: center !important; }
  .sm\:text-right { text-align: right !important; }
  
  .sm\:text-xs { font-size: var(--font-size-xs) !important; }
  .sm\:text-sm { font-size: var(--font-size-sm) !important; }
  .sm\:text-base { font-size: var(--font-size-base) !important; }
  .sm\:text-lg { font-size: var(--font-size-lg) !important; }
  
  .sm\:font-normal { font-weight: 400 !important; }
  .sm\:font-medium { font-weight: 500 !important; }
  .sm\:font-semibold { font-weight: 600 !important; }
  .sm\:font-bold { font-weight: 700 !important; }
}

@media (max-width: 768px) {
  .md\:text-left { text-align: left !important; }
  .md\:text-center { text-align: center !important; }
  .md\:text-right { text-align: right !important; }
  
  .md\:text-xs { font-size: var(--font-size-xs) !important; }
  .md\:text-sm { font-size: var(--font-size-sm) !important; }
  .md\:text-base { font-size: var(--font-size-base) !important; }
  .md\:text-lg { font-size: var(--font-size-lg) !important; }
  
  .md\:font-normal { font-weight: 400 !important; }
  .md\:font-medium { font-weight: 500 !important; }
  .md\:font-semibold { font-weight: 600 !important; }
  .md\:font-bold { font-weight: 700 !important; }
}

@media (max-width: 1024px) {
  .lg\:text-left { text-align: left !important; }
  .lg\:text-center { text-align: center !important; }
  .lg\:text-right { text-align: right !important; }
  
  .lg\:text-xs { font-size: var(--font-size-xs) !important; }
  .lg\:text-sm { font-size: var(--font-size-sm) !important; }
  .lg\:text-base { font-size: var(--font-size-base) !important; }
  .lg\:text-lg { font-size: var(--font-size-lg) !important; }
  
  .lg\:font-normal { font-weight: 400 !important; }
  .lg\:font-medium { font-weight: 500 !important; }
  .lg\:font-semibold { font-weight: 600 !important; }
  .lg\:font-bold { font-weight: 700 !important; }
}
