/* ===== UTILITIES: TEXT COLORS ===== */
/* Utility classes for text colors - NOT BEM (utilities are exempt) */

/* === PRIMARY COLORS === */
.text-primary { color: var(--cb-primary, #1976d2); }
.text-primary-light { color: #42a5f5; }
.text-primary-dark { color: #0d47a1; }

/* === SUCCESS COLORS === */
.text-success { color: var(--cb-success, #28a745); }
.text-success-light { color: #52c41a; }
.text-success-dark { color: #1c6e1c; }

/* === DANGER/ERROR COLORS === */
.text-danger { color: var(--cb-danger, #dc3545); }
.text-error { color: #f44336; }
.text-danger-light { color: #ef5350; }

/* === WARNING COLORS === */
.text-warning { color: var(--cb-warning, #ffc107); }
.text-warning-light { color: #ffa726; }
.text-warning-dark { color: #f57c00; }

/* === INFO COLORS === */
.text-info { color: var(--cb-info, #17a2b8); }
.text-info-light { color: #00bcd4; }

/* === NEUTRAL/SECONDARY COLORS === */
.text-secondary { color: var(--cb-text-secondary, #666); }
.text-muted { color: #6c757d; }
.text-dark { color: #2c3e50; }
.text-light { color: #e9ecef; }
.text-white { color: white; }
.text-black { color: black; }

/* === TEXT DECORATION === */
.text-decoration-none { text-decoration: none; }
.text-decoration-underline { text-decoration: underline; }
.text-decoration-line-through { text-decoration: line-through; }

/* === TEXT ALIGNMENT === */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* === TEXT TRANSFORM === */
.text-uppercase { text-transform: uppercase; }
.text-lowercase { text-transform: lowercase; }
.text-capitalize { text-transform: capitalize; }

/* === FONT WEIGHT === */
.font-weight-light { font-weight: 300; }
.font-weight-normal { font-weight: 400; }
.font-weight-semibold { font-weight: 600; }
.font-weight-bold { font-weight: 700; }
.font-weight-black { font-weight: 900; }

/* === FONT SIZE === */
.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-base { font-size: 1rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }

/* === LINE HEIGHT === */
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.625; }
.leading-loose { line-height: 2; }

/* === WHITESPACE & WORD WRAP === */
.whitespace-nowrap { white-space: nowrap; }
.whitespace-pre { white-space: pre; }
.whitespace-normal { white-space: normal; }
.whitespace-pre-wrap { white-space: pre-wrap; }
.overflow-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* === BACKGROUND COLORS === */
.bg-primary { background-color: var(--cb-primary, #1976d2); }
.bg-success { background-color: var(--cb-success, #28a745); }
.bg-danger { background-color: var(--cb-danger, #dc3545); }
.bg-warning { background-color: var(--cb-warning, #ffc107); }
.bg-info { background-color: var(--cb-info, #17a2b8); }
.bg-light { background-color: #f8f9fa; }
.bg-dark { background-color: #343a40; }
.bg-white { background-color: white; }

/* Background color variants (light) */
.bg-primary-light { background-color: rgba(25, 118, 210, 0.1); }
.bg-success-light { background-color: rgba(40, 167, 69, 0.1); }
.bg-danger-light { background-color: rgba(220, 53, 69, 0.1); }
.bg-warning-light { background-color: rgba(255, 193, 7, 0.1); }
.bg-info-light { background-color: rgba(23, 162, 184, 0.1); }

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

/* === HOVER STATES === */
.hover\:text-primary:hover { color: var(--cb-primary, #1976d2); }
.hover\:text-danger:hover { color: var(--cb-danger, #dc3545); }
.hover\:text-success:hover { color: var(--cb-success, #28a745); }
.hover\:opacity-75:hover { opacity: 0.75; }

/* === RESPONSIVE === */
@media (max-width: 768px) {
  .text-sm-left { text-align: left; }
  .text-sm-center { text-align: center; }
  .text-sm-right { text-align: right; }
}
