/**
 * IT Project Utility Classes - V3
 * Bootstrap 4.5 확장 유틸리티
 */

/* ============================================
   배경색 유틸리티
   ============================================ */

/* Primary */
.edu-bg-primary-50 { background-color: var(--edu-primary-50) !important; }
.edu-bg-primary-100 { background-color: var(--edu-primary-100) !important; }
.edu-bg-primary-600 { background-color: var(--edu-primary-600) !important; }
.edu-bg-primary-700 { background-color: var(--edu-primary-700) !important; }

/* Secondary */
.edu-bg-secondary-50 { background-color: var(--edu-secondary-50) !important; }
.edu-bg-secondary-600 { background-color: var(--edu-secondary-600) !important; }
.edu-bg-secondary-700 { background-color: var(--edu-secondary-700) !important; }

/* Accent */
.edu-bg-accent-50 { background-color: var(--edu-accent-50) !important; }
.edu-bg-accent-600 { background-color: var(--edu-accent-600) !important; }
.edu-bg-accent-700 { background-color: var(--edu-accent-700) !important; }

/* Neutral */
.edu-bg-neutral-50 { background-color: var(--edu-neutral-50) !important; }
.edu-bg-neutral-100 { background-color: var(--edu-neutral-100) !important; }
.edu-bg-neutral-200 { background-color: var(--edu-neutral-200) !important; }
.edu-bg-neutral-600 { background-color: var(--edu-neutral-600) !important; }
.edu-bg-neutral-800 { background-color: var(--edu-neutral-800) !important; }
.edu-bg-neutral-900 { background-color: var(--edu-neutral-900) !important; }

/* Semantic */
.edu-bg-success { background-color: var(--edu-success-600) !important; }
.edu-bg-success-light { background-color: var(--edu-success-50) !important; }
.edu-bg-warning { background-color: var(--edu-warning-600) !important; }
.edu-bg-warning-light { background-color: var(--edu-warning-50) !important; }
.edu-bg-error { background-color: var(--edu-error-600) !important; }
.edu-bg-error-light { background-color: var(--edu-error-50) !important; }
.edu-bg-info { background-color: var(--edu-info-600) !important; }
.edu-bg-info-light { background-color: var(--edu-info-50) !important; }

/* ============================================
   텍스트 색상 유틸리티
   ============================================ */

/* Primary */
.edu-text-primary-600 { color: var(--edu-primary-600) !important; }
.edu-text-primary-700 { color: var(--edu-primary-700) !important; }

/* Secondary */
.edu-text-secondary-600 { color: var(--edu-secondary-600) !important; }
.edu-text-secondary-700 { color: var(--edu-secondary-700) !important; }

/* Accent */
.edu-text-accent-600 { color: var(--edu-accent-600) !important; }
.edu-text-accent-700 { color: var(--edu-accent-700) !important; }

/* Neutral */
.edu-text-neutral-400 { color: var(--edu-neutral-400) !important; }
.edu-text-neutral-500 { color: var(--edu-neutral-500) !important; }
.edu-text-neutral-600 { color: var(--edu-neutral-600) !important; }
.edu-text-neutral-700 { color: var(--edu-neutral-700) !important; }
.edu-text-neutral-800 { color: var(--edu-neutral-800) !important; }
.edu-text-neutral-900 { color: var(--edu-neutral-900) !important; }

/* Semantic */
.edu-text-success { color: var(--edu-success-600) !important; }
.edu-text-warning { color: var(--edu-warning-600) !important; }
.edu-text-error { color: var(--edu-error-600) !important; }
.edu-text-info { color: var(--edu-info-600) !important; }

/* ============================================
   타이포그래피 유틸리티
   ============================================ */

/* Font Sizes */
.edu-text-micro { font-size: var(--edu-text-micro) !important; }
.edu-text-2xs { font-size: var(--edu-text-2xs) !important; }
.edu-text-mini { font-size: var(--edu-text-mini) !important; }
.edu-text-xs { font-size: var(--edu-text-xs) !important; }
.edu-text-sm { font-size: var(--edu-text-sm) !important; }
.edu-text-base { font-size: var(--edu-text-base) !important; }
.edu-text-lg { font-size: var(--edu-text-lg) !important; }
.edu-text-xl { font-size: var(--edu-text-xl) !important; }
.edu-text-2xl { font-size: var(--edu-text-2xl) !important; }
.edu-text-3xl { font-size: var(--edu-text-3xl) !important; }
.edu-text-4xl { font-size: var(--edu-text-4xl) !important; }
.edu-text-5xl { font-size: var(--edu-text-5xl) !important; }
.edu-text-6xl { font-size: var(--edu-text-6xl) !important; }
.edu-text-stat { font-size: var(--edu-text-stat) !important; }

/* Font Weights */
.edu-font-normal { font-weight: var(--edu-font-normal) !important; }
.edu-font-medium { font-weight: var(--edu-font-medium) !important; }
.edu-font-semibold { font-weight: var(--edu-font-semibold) !important; }
.edu-font-bold { font-weight: var(--edu-font-bold) !important; }
.edu-font-extrabold { font-weight: var(--edu-font-extrabold) !important; }

/* Line Heights */
.edu-leading-none { line-height: var(--edu-leading-none) !important; }
.edu-leading-tight { line-height: var(--edu-leading-tight) !important; }
.edu-leading-snug { line-height: var(--edu-leading-snug) !important; }
.edu-leading-normal { line-height: var(--edu-leading-normal) !important; }
.edu-leading-relaxed { line-height: var(--edu-leading-relaxed) !important; }
.edu-leading-loose { line-height: var(--edu-leading-loose) !important; }

/* ============================================
   간격 유틸리티 (Bootstrap 확장)
   ============================================ */

/* Margin Top */
.edu-mt-6 { margin-top: var(--edu-spacing-6) !important; }
.edu-mt-7 { margin-top: var(--edu-spacing-7) !important; }
.edu-mt-8 { margin-top: var(--edu-spacing-8) !important; }
.edu-mt-10 { margin-top: var(--edu-spacing-10) !important; }
.edu-mt-12 { margin-top: var(--edu-spacing-12) !important; }
.edu-mt-16 { margin-top: var(--edu-spacing-16) !important; }

/* Margin Bottom */
.edu-mb-6 { margin-bottom: var(--edu-spacing-6) !important; }
.edu-mb-7 { margin-bottom: var(--edu-spacing-7) !important; }
.edu-mb-8 { margin-bottom: var(--edu-spacing-8) !important; }
.edu-mb-10 { margin-bottom: var(--edu-spacing-10) !important; }
.edu-mb-12 { margin-bottom: var(--edu-spacing-12) !important; }
.edu-mb-16 { margin-bottom: var(--edu-spacing-16) !important; }

/* Margin Left/Right */
.edu-ml-6 { margin-left: var(--edu-spacing-6) !important; }
.edu-mr-6 { margin-right: var(--edu-spacing-6) !important; }
.edu-mx-6 { margin-left: var(--edu-spacing-6) !important; margin-right: var(--edu-spacing-6) !important; }

/* Margin All */
.edu-m-6 { margin: var(--edu-spacing-6) !important; }
.edu-m-8 { margin: var(--edu-spacing-8) !important; }
.edu-m-10 { margin: var(--edu-spacing-10) !important; }

/* Padding Top */
.edu-pt-6 { padding-top: var(--edu-spacing-6) !important; }
.edu-pt-7 { padding-top: var(--edu-spacing-7) !important; }
.edu-pt-8 { padding-top: var(--edu-spacing-8) !important; }
.edu-pt-10 { padding-top: var(--edu-spacing-10) !important; }
.edu-pt-12 { padding-top: var(--edu-spacing-12) !important; }
.edu-pt-16 { padding-top: var(--edu-spacing-16) !important; }

/* Padding Bottom */
.edu-pb-6 { padding-bottom: var(--edu-spacing-6) !important; }
.edu-pb-7 { padding-bottom: var(--edu-spacing-7) !important; }
.edu-pb-8 { padding-bottom: var(--edu-spacing-8) !important; }
.edu-pb-10 { padding-bottom: var(--edu-spacing-10) !important; }
.edu-pb-12 { padding-bottom: var(--edu-spacing-12) !important; }
.edu-pb-16 { padding-bottom: var(--edu-spacing-16) !important; }

/* Padding Left/Right */
.edu-pl-6 { padding-left: var(--edu-spacing-6) !important; }
.edu-pr-6 { padding-right: var(--edu-spacing-6) !important; }
.edu-px-6 { padding-left: var(--edu-spacing-6) !important; padding-right: var(--edu-spacing-6) !important; }
.edu-px-8 { padding-left: var(--edu-spacing-8) !important; padding-right: var(--edu-spacing-8) !important; }

/* Padding All */
.edu-p-6 { padding: var(--edu-spacing-6) !important; }
.edu-p-8 { padding: var(--edu-spacing-8) !important; }
.edu-p-10 { padding: var(--edu-spacing-10) !important; }
.edu-p-12 { padding: var(--edu-spacing-12) !important; }

/* ============================================
   Border Radius 유틸리티
   ============================================ */

.edu-rounded-none { border-radius: var(--edu-radius-none) !important; }
.edu-rounded-sm { border-radius: var(--edu-radius-sm) !important; }
.edu-rounded-md { border-radius: var(--edu-radius-md) !important; }
.edu-rounded-lg { border-radius: var(--edu-radius-lg) !important; }
.edu-rounded-xl { border-radius: var(--edu-radius-xl) !important; }
.edu-rounded-2xl { border-radius: var(--edu-radius-2xl) !important; }
.edu-rounded-full { border-radius: var(--edu-radius-full) !important; }

/* ============================================
   Shadow 유틸리티
   ============================================ */

.edu-shadow-none { box-shadow: none !important; }
.edu-shadow-sm { box-shadow: var(--edu-shadow-sm) !important; }
.edu-shadow-md { box-shadow: var(--edu-shadow-md) !important; }
.edu-shadow-lg { box-shadow: var(--edu-shadow-lg) !important; }
.edu-shadow-xl { box-shadow: var(--edu-shadow-xl) !important; }
.edu-shadow-2xl { box-shadow: var(--edu-shadow-2xl) !important; }
.edu-shadow-inner { box-shadow: var(--edu-shadow-inner) !important; }

/* ============================================
   Border 유틸리티
   ============================================ */

.edu-border { border: 1px solid var(--edu-neutral-200) !important; }
.edu-border-2 { border: 2px solid var(--edu-neutral-200) !important; }
.edu-border-primary { border-color: var(--edu-primary-600) !important; }
.edu-border-secondary { border-color: var(--edu-secondary-600) !important; }
.edu-border-neutral { border-color: var(--edu-neutral-300) !important; }

/* ============================================
   Display & Flexbox (Bootstrap 보완)
   ============================================ */

.edu-gap-2 { gap: var(--edu-spacing-2) !important; }
.edu-gap-3 { gap: var(--edu-spacing-3) !important; }
.edu-gap-4 { gap: var(--edu-spacing-4) !important; }
.edu-gap-6 { gap: var(--edu-spacing-6) !important; }
.edu-gap-8 { gap: var(--edu-spacing-8) !important; }

/* ============================================
   Transition 유틸리티
   ============================================ */

.edu-transition { transition: all 0.2s ease-in-out !important; }
.edu-transition-colors { transition: color 0.2s ease-in-out,
                                     background-color 0.2s ease-in-out,
                                     border-color 0.2s ease-in-out !important; }

