/* ========================================
   AURORA - UTILITÁRIOS ESPECÍFICOS
   Classes utilitárias para o projeto
   ======================================== */

/* ========================================
   1. UTILITÁRIOS DE CORES
   ======================================== */

/* Background Colors */
.aurora-bg-primary { background-color: var(--primary); }
.aurora-bg-secondary { background-color: var(--secondary); }
.aurora-bg-accent { background-color: var(--accent); }
.aurora-bg-muted { background-color: var(--muted); }
.aurora-bg-card { background-color: var(--card); }
.aurora-bg-destructive { background-color: var(--destructive); }

/* Text Colors */
.aurora-text-primary { color: var(--primary); }
.aurora-text-secondary { color: var(--secondary-foreground); }
.aurora-text-muted { color: var(--muted-foreground); }
.aurora-text-destructive { color: var(--destructive); }
.aurora-text-success { color: var(--chart-1); }
.aurora-text-warning { color: var(--chart-2); }

/* Border Colors */
.aurora-border-primary { border-color: var(--primary); }
.aurora-border-secondary { border-color: var(--border); }
.aurora-border-muted { border-color: var(--muted); }

/* ========================================
   2. UTILITÁRIOS DE TAMANHO
   ======================================== */

/* Width */
.aurora-w-full { width: 100%; }
.aurora-w-auto { width: auto; }
.aurora-w-fit { width: fit-content; }
.aurora-w-1\/2 { width: 50%; }
.aurora-w-1\/3 { width: 33.333333%; }
.aurora-w-2\/3 { width: 66.666667%; }
.aurora-w-1\/4 { width: 25%; }
.aurora-w-3\/4 { width: 75%; }

/* Height */
.aurora-h-full { height: 100%; }
.aurora-h-auto { height: auto; }
.aurora-h-fit { height: fit-content; }
.aurora-h-screen { height: 100vh; }
.aurora-min-h-screen { min-height: 100vh; }

/* Max Width */
.aurora-max-w-xs { max-width: 20rem; }
.aurora-max-w-sm { max-width: 24rem; }
.aurora-max-w-md { max-width: 28rem; }
.aurora-max-w-lg { max-width: 32rem; }
.aurora-max-w-xl { max-width: 36rem; }
.aurora-max-w-2xl { max-width: 42rem; }
.aurora-max-w-3xl { max-width: 48rem; }
.aurora-max-w-4xl { max-width: 56rem; }
.aurora-max-w-5xl { max-width: 64rem; }
.aurora-max-w-6xl { max-width: 72rem; }
.aurora-max-w-7xl { max-width: 80rem; }
.aurora-max-w-full { max-width: 100%; }

/* ========================================
   3. UTILITÁRIOS DE ESPAÇAMENTO
   ======================================== */

/* Margin */
.aurora-m-0 { margin: 0; }
.aurora-m-1 { margin: 0.25rem; }
.aurora-m-2 { margin: 0.5rem; }
.aurora-m-3 { margin: 0.75rem; }
.aurora-m-4 { margin: 1rem; }
.aurora-m-5 { margin: 1.25rem; }
.aurora-m-6 { margin: 1.5rem; }
.aurora-m-8 { margin: 2rem; }
.aurora-m-10 { margin: 2.5rem; }
.aurora-m-12 { margin: 3rem; }
.aurora-m-16 { margin: 4rem; }
.aurora-m-20 { margin: 5rem; }
.aurora-m-auto { margin: auto; }

/* Margin Top */
.aurora-mt-0 { margin-top: 0; }
.aurora-mt-1 { margin-top: 0.25rem; }
.aurora-mt-2 { margin-top: 0.5rem; }
.aurora-mt-3 { margin-top: 0.75rem; }
.aurora-mt-4 { margin-top: 1rem; }
.aurora-mt-5 { margin-top: 1.25rem; }
.aurora-mt-6 { margin-top: 1.5rem; }
.aurora-mt-8 { margin-top: 2rem; }
.aurora-mt-10 { margin-top: 2.5rem; }
.aurora-mt-12 { margin-top: 3rem; }
.aurora-mt-16 { margin-top: 4rem; }
.aurora-mt-20 { margin-top: 5rem; }
.aurora-mt-auto { margin-top: auto; }

/* Margin Bottom */
.aurora-mb-0 { margin-bottom: 0; }
.aurora-mb-1 { margin-bottom: 0.25rem; }
.aurora-mb-2 { margin-bottom: 0.5rem; }
.aurora-mb-3 { margin-bottom: 0.75rem; }
.aurora-mb-4 { margin-bottom: 1rem; }
.aurora-mb-5 { margin-bottom: 1.25rem; }
.aurora-mb-6 { margin-bottom: 1.5rem; }
.aurora-mb-8 { margin-bottom: 2rem; }
.aurora-mb-10 { margin-bottom: 2.5rem; }
.aurora-mb-12 { margin-bottom: 3rem; }
.aurora-mb-16 { margin-bottom: 4rem; }
.aurora-mb-20 { margin-bottom: 5rem; }
.aurora-mb-auto { margin-bottom: auto; }

/* Margin Left */
.aurora-ml-0 { margin-left: 0; }
.aurora-ml-1 { margin-left: 0.25rem; }
.aurora-ml-2 { margin-left: 0.5rem; }
.aurora-ml-3 { margin-left: 0.75rem; }
.aurora-ml-4 { margin-left: 1rem; }
.aurora-ml-5 { margin-left: 1.25rem; }
.aurora-ml-6 { margin-left: 1.5rem; }
.aurora-ml-8 { margin-left: 2rem; }
.aurora-ml-10 { margin-left: 2.5rem; }
.aurora-ml-12 { margin-left: 3rem; }
.aurora-ml-16 { margin-left: 4rem; }
.aurora-ml-20 { margin-left: 5rem; }
.aurora-ml-auto { margin-left: auto; }

/* Margin Right */
.aurora-mr-0 { margin-right: 0; }
.aurora-mr-1 { margin-right: 0.25rem; }
.aurora-mr-2 { margin-right: 0.5rem; }
.aurora-mr-3 { margin-right: 0.75rem; }
.aurora-mr-4 { margin-right: 1rem; }
.aurora-mr-5 { margin-right: 1.25rem; }
.aurora-mr-6 { margin-right: 1.5rem; }
.aurora-mr-8 { margin-right: 2rem; }
.aurora-mr-10 { margin-right: 2.5rem; }
.aurora-mr-12 { margin-right: 3rem; }
.aurora-mr-16 { margin-right: 4rem; }
.aurora-mr-20 { margin-right: 5rem; }
.aurora-mr-auto { margin-right: auto; }

/* Padding */
.aurora-p-0 { padding: 0; }
.aurora-p-1 { padding: 0.25rem; }
.aurora-p-2 { padding: 0.5rem; }
.aurora-p-3 { padding: 0.75rem; }
.aurora-p-4 { padding: 1rem; }
.aurora-p-5 { padding: 1.25rem; }
.aurora-p-6 { padding: 1.5rem; }
.aurora-p-8 { padding: 2rem; }
.aurora-p-10 { padding: 2.5rem; }
.aurora-p-12 { padding: 3rem; }
.aurora-p-16 { padding: 4rem; }
.aurora-p-20 { padding: 5rem; }

/* Padding Top */
.aurora-pt-0 { padding-top: 0; }
.aurora-pt-1 { padding-top: 0.25rem; }
.aurora-pt-2 { padding-top: 0.5rem; }
.aurora-pt-3 { padding-top: 0.75rem; }
.aurora-pt-4 { padding-top: 1rem; }
.aurora-pt-5 { padding-top: 1.25rem; }
.aurora-pt-6 { padding-top: 1.5rem; }
.aurora-pt-8 { padding-top: 2rem; }
.aurora-pt-10 { padding-top: 2.5rem; }
.aurora-pt-12 { padding-top: 3rem; }
.aurora-pt-16 { padding-top: 4rem; }
.aurora-pt-20 { padding-top: 5rem; }

/* Padding Bottom */
.aurora-pb-0 { padding-bottom: 0; }
.aurora-pb-1 { padding-bottom: 0.25rem; }
.aurora-pb-2 { padding-bottom: 0.5rem; }
.aurora-pb-3 { padding-bottom: 0.75rem; }
.aurora-pb-4 { padding-bottom: 1rem; }
.aurora-pb-5 { padding-bottom: 1.25rem; }
.aurora-pb-6 { padding-bottom: 1.5rem; }
.aurora-pb-8 { padding-bottom: 2rem; }
.aurora-pb-10 { padding-bottom: 2.5rem; }
.aurora-pb-12 { padding-bottom: 3rem; }
.aurora-pb-16 { padding-bottom: 4rem; }
.aurora-pb-20 { padding-bottom: 5rem; }

/* Padding Left */
.aurora-pl-0 { padding-left: 0; }
.aurora-pl-1 { padding-left: 0.25rem; }
.aurora-pl-2 { padding-left: 0.5rem; }
.aurora-pl-3 { padding-left: 0.75rem; }
.aurora-pl-4 { padding-left: 1rem; }
.aurora-pl-5 { padding-left: 1.25rem; }
.aurora-pl-6 { padding-left: 1.5rem; }
.aurora-pl-8 { padding-left: 2rem; }
.aurora-pl-10 { padding-left: 2.5rem; }
.aurora-pl-12 { padding-left: 3rem; }
.aurora-pl-16 { padding-left: 4rem; }
.aurora-pl-20 { padding-left: 5rem; }

/* Padding Right */
.aurora-pr-0 { padding-right: 0; }
.aurora-pr-1 { padding-right: 0.25rem; }
.aurora-pr-2 { padding-right: 0.5rem; }
.aurora-pr-3 { padding-right: 0.75rem; }
.aurora-pr-4 { padding-right: 1rem; }
.aurora-pr-5 { padding-right: 1.25rem; }
.aurora-pr-6 { padding-right: 1.5rem; }
.aurora-pr-8 { padding-right: 2rem; }
.aurora-pr-10 { padding-right: 2.5rem; }
.aurora-pr-12 { padding-right: 3rem; }
.aurora-pr-16 { padding-right: 4rem; }
.aurora-pr-20 { padding-right: 5rem; }

/* ========================================
   4. UTILITÁRIOS DE DISPLAY
   ======================================== */

.aurora-block { display: block; }
.aurora-inline-block { display: inline-block; }
.aurora-inline { display: inline; }
.aurora-flex { display: flex; }
.aurora-inline-flex { display: inline-flex; }
.aurora-grid { display: grid; }
.aurora-hidden { display: none; }
.aurora-table { display: table; }
.aurora-table-cell { display: table-cell; }
.aurora-table-row { display: table-row; }

/* ========================================
   5. UTILITÁRIOS DE FLEXBOX
   ======================================== */

.aurora-flex-row { flex-direction: row; }
.aurora-flex-col { flex-direction: column; }
.aurora-flex-row-reverse { flex-direction: row-reverse; }
.aurora-flex-col-reverse { flex-direction: column-reverse; }

.aurora-flex-wrap { flex-wrap: wrap; }
.aurora-flex-nowrap { flex-wrap: nowrap; }
.aurora-flex-wrap-reverse { flex-wrap: wrap-reverse; }

.aurora-justify-start { justify-content: flex-start; }
.aurora-justify-end { justify-content: flex-end; }
.aurora-justify-center { justify-content: center; }
.aurora-justify-between { justify-content: space-between; }
.aurora-justify-around { justify-content: space-around; }
.aurora-justify-evenly { justify-content: space-evenly; }

.aurora-items-start { align-items: flex-start; }
.aurora-items-end { align-items: flex-end; }
.aurora-items-center { align-items: center; }
.aurora-items-baseline { align-items: baseline; }
.aurora-items-stretch { align-items: stretch; }

.aurora-flex-1 { flex: 1 1 0%; }
.aurora-flex-auto { flex: 1 1 auto; }
.aurora-flex-initial { flex: 0 1 auto; }
.aurora-flex-none { flex: none; }

/* ========================================
   6. UTILITÁRIOS DE POSICIONAMENTO
   ======================================== */

.aurora-static { position: static; }
.aurora-fixed { position: fixed; }
.aurora-absolute { position: absolute; }
.aurora-relative { position: relative; }
.aurora-sticky { position: sticky; }

.aurora-top-0 { top: 0; }
.aurora-right-0 { right: 0; }
.aurora-bottom-0 { bottom: 0; }
.aurora-left-0 { left: 0; }

.aurora-top-auto { top: auto; }
.aurora-right-auto { right: auto; }
.aurora-bottom-auto { bottom: auto; }
.aurora-left-auto { left: auto; }

.aurora-z-0 { z-index: 0; }
.aurora-z-10 { z-index: 10; }
.aurora-z-20 { z-index: 20; }
.aurora-z-30 { z-index: 30; }
.aurora-z-40 { z-index: 40; }
.aurora-z-50 { z-index: 50; }

/* ========================================
   7. UTILITÁRIOS DE BORDA
   ======================================== */

.aurora-border { border-width: 1px; }
.aurora-border-0 { border-width: 0; }
.aurora-border-2 { border-width: 2px; }
.aurora-border-4 { border-width: 4px; }
.aurora-border-8 { border-width: 8px; }

.aurora-border-t { border-top-width: 1px; }
.aurora-border-r { border-right-width: 1px; }
.aurora-border-b { border-bottom-width: 1px; }
.aurora-border-l { border-left-width: 1px; }

.aurora-border-solid { border-style: solid; }
.aurora-border-dashed { border-style: dashed; }
.aurora-border-dotted { border-style: dotted; }
.aurora-border-none { border-style: none; }

.aurora-rounded-none { border-radius: 0; }
.aurora-rounded-sm { border-radius: 0.125rem; }
.aurora-rounded { border-radius: 0.25rem; }
.aurora-rounded-md { border-radius: 0.375rem; }
.aurora-rounded-lg { border-radius: 0.5rem; }
.aurora-rounded-xl { border-radius: 0.75rem; }
.aurora-rounded-2xl { border-radius: 1rem; }
.aurora-rounded-3xl { border-radius: 1.5rem; }
.aurora-rounded-full { border-radius: 9999px; }

/* ========================================
   8. UTILITÁRIOS DE SOMBRA
   ======================================== */

.aurora-shadow-none { box-shadow: none; }
.aurora-shadow-sm { box-shadow: var(--shadow-sm); }
.aurora-shadow { box-shadow: var(--shadow); }
.aurora-shadow-md { box-shadow: var(--shadow-md); }
.aurora-shadow-lg { box-shadow: var(--shadow-lg); }
.aurora-shadow-xl { box-shadow: var(--shadow-xl); }
.aurora-shadow-2xl { box-shadow: var(--shadow-2xl); }

/* ========================================
   9. UTILITÁRIOS DE TEXTO
   ======================================== */

.aurora-text-xs { font-size: 0.75rem; }
.aurora-text-sm { font-size: 0.875rem; }
.aurora-text-base { font-size: 1rem; }
.aurora-text-lg { font-size: 1.125rem; }
.aurora-text-xl { font-size: 1.25rem; }
.aurora-text-2xl { font-size: 1.5rem; }
.aurora-text-3xl { font-size: 1.875rem; }
.aurora-text-4xl { font-size: 2.25rem; }
.aurora-text-5xl { font-size: 3rem; }
.aurora-text-6xl { font-size: 3.75rem; }

.aurora-font-thin { font-weight: 100; }
.aurora-font-extralight { font-weight: 200; }
.aurora-font-light { font-weight: 300; }
.aurora-font-normal { font-weight: 400; }
.aurora-font-medium { font-weight: 500; }
.aurora-font-semibold { font-weight: 600; }
.aurora-font-bold { font-weight: 700; }
.aurora-font-extrabold { font-weight: 800; }
.aurora-font-black { font-weight: 900; }

.aurora-text-left { text-align: left; }
.aurora-text-center { text-align: center; }
.aurora-text-right { text-align: right; }
.aurora-text-justify { text-align: justify; }

.aurora-uppercase { text-transform: uppercase; }
.aurora-lowercase { text-transform: lowercase; }
.aurora-capitalize { text-transform: capitalize; }
.aurora-normal-case { text-transform: none; }

.aurora-underline { text-decoration: underline; }
.aurora-overline { text-decoration: overline; }
.aurora-line-through { text-decoration: line-through; }
.aurora-no-underline { text-decoration: none; }

.aurora-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ========================================
   10. UTILITÁRIOS DE OPACIDADE
   ======================================== */

.aurora-opacity-0 { opacity: 0; }
.aurora-opacity-25 { opacity: 0.25; }
.aurora-opacity-50 { opacity: 0.5; }
.aurora-opacity-75 { opacity: 0.75; }
.aurora-opacity-100 { opacity: 1; }

/* ========================================
   11. UTILITÁRIOS DE CURSOR
   ======================================== */

.aurora-cursor-auto { cursor: auto; }
.aurora-cursor-default { cursor: default; }
.aurora-cursor-pointer { cursor: pointer; }
.aurora-cursor-wait { cursor: wait; }
.aurora-cursor-text { cursor: text; }
.aurora-cursor-move { cursor: move; }
.aurora-cursor-help { cursor: help; }
.aurora-cursor-not-allowed { cursor: not-allowed; }

/* ========================================
   12. UTILITÁRIOS DE OVERFLOW
   ======================================== */

.aurora-overflow-auto { overflow: auto; }
.aurora-overflow-hidden { overflow: hidden; }
.aurora-overflow-visible { overflow: visible; }
.aurora-overflow-scroll { overflow: scroll; }

.aurora-overflow-x-auto { overflow-x: auto; }
.aurora-overflow-x-hidden { overflow-x: hidden; }
.aurora-overflow-x-visible { overflow-x: visible; }
.aurora-overflow-x-scroll { overflow-x: scroll; }

.aurora-overflow-y-auto { overflow-y: auto; }
.aurora-overflow-y-hidden { overflow-y: hidden; }
.aurora-overflow-y-visible { overflow-y: visible; }
.aurora-overflow-y-scroll { overflow-y: scroll; }

/* ========================================
   13. UTILITÁRIOS DE TRANSFORMAÇÃO
   ======================================== */

.aurora-transform { transform: translateZ(0); }
.aurora-transform-gpu { transform: translate3d(0, 0, 0); }
.aurora-transform-none { transform: none; }

.aurora-scale-0 { transform: scale(0); }
.aurora-scale-50 { transform: scale(0.5); }
.aurora-scale-75 { transform: scale(0.75); }
.aurora-scale-90 { transform: scale(0.9); }
.aurora-scale-95 { transform: scale(0.95); }
.aurora-scale-100 { transform: scale(1); }
.aurora-scale-105 { transform: scale(1.05); }
.aurora-scale-110 { transform: scale(1.1); }
.aurora-scale-125 { transform: scale(1.25); }
.aurora-scale-150 { transform: scale(1.5); }

.aurora-rotate-0 { transform: rotate(0deg); }
.aurora-rotate-1 { transform: rotate(1deg); }
.aurora-rotate-2 { transform: rotate(2deg); }
.aurora-rotate-3 { transform: rotate(3deg); }
.aurora-rotate-6 { transform: rotate(6deg); }
.aurora-rotate-12 { transform: rotate(12deg); }
.aurora-rotate-45 { transform: rotate(45deg); }
.aurora-rotate-90 { transform: rotate(90deg); }
.aurora-rotate-180 { transform: rotate(180deg); }

.aurora-translate-x-0 { transform: translateX(0); }
.aurora-translate-x-1 { transform: translateX(0.25rem); }
.aurora-translate-x-2 { transform: translateX(0.5rem); }
.aurora-translate-x-3 { transform: translateX(0.75rem); }
.aurora-translate-x-4 { transform: translateX(1rem); }
.aurora-translate-x-5 { transform: translateX(1.25rem); }
.aurora-translate-x-6 { transform: translateX(1.5rem); }
.aurora-translate-x-8 { transform: translateX(2rem); }
.aurora-translate-x-10 { transform: translateX(2.5rem); }
.aurora-translate-x-12 { transform: translateX(3rem); }
.aurora-translate-x-16 { transform: translateX(4rem); }
.aurora-translate-x-20 { transform: translateX(5rem); }

.aurora-translate-y-0 { transform: translateY(0); }
.aurora-translate-y-1 { transform: translateY(0.25rem); }
.aurora-translate-y-2 { transform: translateY(0.5rem); }
.aurora-translate-y-3 { transform: translateY(0.75rem); }
.aurora-translate-y-4 { transform: translateY(1rem); }
.aurora-translate-y-5 { transform: translateY(1.25rem); }
.aurora-translate-y-6 { transform: translateY(1.5rem); }
.aurora-translate-y-8 { transform: translateY(2rem); }
.aurora-translate-y-10 { transform: translateY(2.5rem); }
.aurora-translate-y-12 { transform: translateY(3rem); }
.aurora-translate-y-16 { transform: translateY(4rem); }
.aurora-translate-y-20 { transform: translateY(5rem); }

/* ========================================
   14. UTILITÁRIOS DE TRANSIÇÃO
   ======================================== */

.aurora-transition-none { transition-property: none; }
.aurora-transition-all { transition-property: all; }
.aurora-transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; }
.aurora-transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; }
.aurora-transition-opacity { transition-property: opacity; }
.aurora-transition-shadow { transition-property: box-shadow; }
.aurora-transition-transform { transition-property: transform; }

.aurora-duration-75 { transition-duration: 75ms; }
.aurora-duration-100 { transition-duration: 100ms; }
.aurora-duration-150 { transition-duration: 150ms; }
.aurora-duration-200 { transition-duration: 200ms; }
.aurora-duration-300 { transition-duration: 300ms; }
.aurora-duration-500 { transition-duration: 500ms; }
.aurora-duration-700 { transition-duration: 700ms; }
.aurora-duration-1000 { transition-duration: 1000ms; }

.aurora-ease-linear { transition-timing-function: linear; }
.aurora-ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }
.aurora-ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }
.aurora-ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

/* ========================================
   15. UTILITÁRIOS DE ANIMAÇÃO
   ======================================== */

.aurora-animate-none { animation: none; }
.aurora-animate-spin { animation: aurora-spin 1s linear infinite; }
.aurora-animate-ping { animation: aurora-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; }
.aurora-animate-pulse { animation: aurora-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
.aurora-animate-bounce { animation: aurora-bounce 1s infinite; }

@keyframes aurora-spin {
    to { transform: rotate(360deg); }
}

@keyframes aurora-ping {
    75%, 100% {
        transform: scale(2);
        opacity: 0;
    }
}

@keyframes aurora-pulse {
    50% {
        opacity: 0.5;
    }
}

@keyframes aurora-bounce {
    0%, 100% {
        transform: translateY(-25%);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: none;
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}
