/* Utility Classes */

.block {
    display: block !important;
}

.flex {
    display: flex !important;
}

.grid {
    display: grid !important;
}

.inline-flex {
    display: inline-flex !important;
}

.flex-col {
    flex-direction: column !important;
}

.flex-row {
    flex-direction: row !important;
}

.items-center {
    align-items: center !important;
}

.items-start {
    align-items: flex-start !important;
}

.items-end {
    align-items: flex-end !important;
}

.justify-center {
    justify-content: center !important;
}

.justify-between {
    justify-content: space-between !important;
}

.justify-end {
    justify-content: flex-end !important;
}

.flex-1 {
    flex: 1 !important;
}

.flex-wrap {
    flex-wrap: wrap !important;
}

.gap-1 {
    gap: 0.25rem !important;
}

.gap-2 {
    gap: 0.5rem !important;
}

.gap-3 {
    gap: 0.75rem !important;
}

.gap-4 {
    gap: 1rem !important;
}

.gap-6 {
    gap: 1.5rem !important;
}

.gap-8 {
    gap: 2rem !important;
}

.gap-12 {
    gap: 3rem !important;
}

.m-0 {
    margin: 0 !important;
}

.mt-2 {
    margin-top: 0.5rem !important;
}

.mt-4 {
    margin-top: 1rem !important;
}

.mt-6 {
    margin-top: 1.5rem !important;
}

.mb-2 {
    margin-bottom: 0.5rem !important;
}

.mb-4 {
    margin-bottom: 1rem !important;
}

.mb-6 {
    margin-bottom: 1.5rem !important;
}

.mb-8 {
    margin-bottom: 2rem !important;
}

.mb-12 {
    margin-bottom: 3rem !important;

    .p-2 {
        padding: 0.5rem !important;
    }

    .p-4 {
        padding: 1rem !important;
    }

    .p-6 {
        padding: 1.5rem !important;
    }

    .p-8 {
        padding: 2rem !important;
    }

    .pr-4 {
        padding-right: 1rem !important;
    }

    .pl-5 {
        padding-left: 1.25rem !important;
    }

    .py-2 {
        padding-top: 0.5rem !important;
        padding-bottom: 0.5rem !important;
    }

    .px-4 {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .text-center {
        text-align: center !important;
    }

    .text-right {
        text-align: right !important;
    }

    .text-left {
        text-align: left !important;
    }

    .text-sm {
        font-size: 0.875rem !important;
    }

    .text-xs {
        font-size: 0.75rem !important;
    }

    .text-lg {
        font-size: 1.125rem !important;
    }

    .text-xl {
        font-size: 1.25rem !important;
    }

    .text-2xl {
        font-size: 1.5rem !important;
    }

    .font-bold {
        font-weight: 700 !important;
    }

    .font-semibold {
        font-weight: 600 !important;
    }

    .font-medium {
        font-weight: 500 !important;
    }

    .text-success {
        color: var(--success) !important;
    }

    .text-error {
        color: var(--error) !important;
    }

    .text-warning {
        color: var(--warning) !important;
    }

    .text-muted {
        color: var(--text-tertiary) !important;
    }

    .text-primary {
        color: var(--primary) !important;
    }

    .bg-white {
        background-color: var(--bg-primary) !important;
    }

    .bg-gray {
        background-color: var(--bg-secondary) !important;
    }

    /* Background Colors */
    .bg-bg-primary {
        background-color: var(--bg-primary) !important;
    }

    .bg-bg-secondary {
        background-color: var(--bg-secondary) !important;
    }

    .bg-bg-tertiary {
        background-color: var(--bg-tertiary) !important;
    }

    .bg-success {
        background-color: var(--success) !important;
    }

    .bg-warning {
        background-color: var(--warning) !important;
    }

    .bg-error {
        background-color: var(--error) !important;
    }

    /* Sizing */
    .w-full {
        width: 100% !important;
    }

    .h-full {
        height: 100% !important;
    }

    .max-w-2xl {
        max-width: 42rem !important;
    }

    .max-w-4xl {
        max-width: 56rem !important;
    }

    .w-12 {
        width: 3rem !important;
    }

    .h-12 {
        height: 3rem !important;
    }

    .w-16 {
        width: 4rem !important;
    }

    .h-16 {
        height: 4rem !important;
    }

    .rounded-md {
        border-radius: var(--radius-sm) !important;
    }

    .rounded-lg {
        border-radius: var(--radius-md) !important;
    }

    .rounded-full {
        border-radius: 9999px !important;
    }

    .border {
        border-width: 1px !important;
    }

    .border-l {
        border-left-width: 1px !important;
    }

    .border-light {
        border-color: var(--border-light) !important;
    }

    .overflow-hidden {
        overflow: hidden !important;
    }

    .relative {
        position: relative !important;
    }

    .absolute {
        position: absolute !important;
    }

    .top-0 {
        top: 0 !important;
    }

    .bottom-0 {
        bottom: 0 !important;
    }

    .left-0 {
        left: 0 !important;
    }

    .right-0 {
        right: 0 !important;
    }

    .inset-0 {
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
    }

    .top-1\/2 {
        top: 50% !important;
    }

    .left-3 {
        left: 0.75rem !important;
    }

    .-translate-y-1\/2 {
        transform: translateY(-50%) !important;
    }

    .object-cover {
        object-fit: cover !important;
    }

    .z-10 {
        z-index: 10 !important;
    }

    /* Grid System */
    .grid-cols-1 {
        grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    }

    .grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    @media (min-width: 768px) {
        .md\:grid-cols-2 {
            grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        }

        .md\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        }

        .md\:grid-cols-4 {
            grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        }

        .md\:flex-row {
            flex-direction: row !important;
        }

        .md\:items-center {
            align-items: center !important;
        }
    }

    @media (min-width: 1024px) {
        .lg\:grid-cols-2 {
            grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        }

        .lg\:grid-cols-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        }

        .lg\:grid-cols-4 {
            grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        }
    }

    /* Badges */
    .badge {
        display: inline-block;
        padding: 0.25rem 0.75rem;
        border-radius: 9999px;
        font-size: 0.75rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
    }

    .badge-primary {
        background-color: var(--primary);
        color: white;
    }

    .badge-success {
        background-color: var(--success);
        color: white;
    }

    .badge-warning {
        background-color: var(--warning);
        color: white;
    }

    .badge-error {
        background-color: var(--error);
        color: white;
    }

    .badge-info {
        background-color: var(--info);
        color: white;
    }

    .badge-gray {
        background-color: var(--text-tertiary);
        color: white;
    }

    .leading-relaxed {
        line-height: 1.625 !important;
    }

    .tracking-wide {
        letter-spacing: 0.025em !important;
    }

    .shadow-lg {
        box-shadow: var(--shadow-lg) !important;
    }

    .shadow-xl {
        box-shadow: var(--shadow-xl) !important;
    }

    .transition-all {
        .h-12 {
            height: 3rem !important;
        }

        .w-16 {
            width: 4rem !important;
        }

        .h-16 {
            height: 4rem !important;
        }

        .rounded-md {
            border-radius: var(--radius-sm) !important;
        }

        .rounded-lg {
            border-radius: var(--radius-md) !important;
        }

        .rounded-full {
            border-radius: 9999px !important;
        }

        .border {
            border-width: 1px !important;
        }

        .border-l {
            border-left-width: 1px !important;
        }

        .border-light {
            border-color: var(--border-light) !important;
        }

        .overflow-hidden {
            overflow: hidden !important;
        }

        .relative {
            position: relative !important;
        }

        .absolute {
            position: absolute !important;
        }

        .top-0 {
            top: 0 !important;
        }

        .bottom-0 {
            bottom: 0 !important;
        }

        .left-0 {
            left: 0 !important;
        }

        .right-0 {
            right: 0 !important;
        }

        .inset-0 {
            top: 0 !important;
            right: 0 !important;
            bottom: 0 !important;
            left: 0 !important;
        }

        .top-1\/2 {
            top: 50% !important;
        }

        .left-3 {
            left: 0.75rem !important;
        }

        .-translate-y-1\/2 {
            transform: translateY(-50%) !important;
        }

        .object-cover {
            object-fit: cover !important;
        }

        .z-10 {
            z-index: 10 !important;
        }

        /* Grid System */
        .grid-cols-1 {
            grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
        }

        .grid-cols-2 {
            grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        }

        @media (min-width: 768px) {
            .md\:grid-cols-2 {
                grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
            }

            .md\:grid-cols-3 {
                grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
            }

            .md\:grid-cols-4 {
                grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
            }

            .md\:flex-row {
                flex-direction: row !important;
            }

            .md\:items-center {
                align-items: center !important;
            }
        }

        @media (min-width: 1024px) {
            .lg\:grid-cols-2 {
                grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
            }

            .lg\:grid-cols-3 {
                grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
            }

            .lg\:grid-cols-4 {
                grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
            }
        }

        /* Badges */
        .badge {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .badge-primary {
            background-color: var(--primary);
            color: white;
        }

        .badge-success {
            background-color: var(--success);
            color: white;
        }

        .badge-warning {
            background-color: var(--warning);
            color: white;
        }

        .badge-error {
            background-color: var(--error);
            color: white;
        }

        .badge-info {
            background-color: var(--info);
            color: white;
        }

        .badge-gray {
            background-color: var(--text-tertiary);
            color: white;
        }

        .leading-relaxed {
            line-height: 1.625 !important;
        }

        .tracking-wide {
            letter-spacing: 0.025em !important;
        }

        .shadow-lg {
            box-shadow: var(--shadow-lg) !important;
        }

        .shadow-xl {
            box-shadow: var(--shadow-xl) !important;
        }

        .transition-all {
            transition-property: all !important;
            transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
            transition-duration: 150ms !important;
        }

        .duration-300 {
            transition-duration: 300ms !important;
        }

        /* Cursor Utilities */
        .cursor-pointer {
            cursor: pointer !important;
        }

        .hover\:text-primary:hover {
            color: var(--primary) !important;
        }

        /* Hidden Utility - Placed last to override others */
        .hidden {
            display: none !important;
        }

        /* Positioning Utilities */
        .relative {
            position: relative !important;
        }

        .absolute {
            position: absolute !important;
        }

        .text-xs {
            font-size: 0.75rem !important;
        }

        .font-bold {
            font-weight: 700 !important;
        }

        .h-5 {
            height: 1.25rem !important;
        }

        .w-5 {
            width: 1.25rem !important;
        }

        .bg-primary {
            background-color: var(--primary) !important;
        }

        .text-white {
            color: white !important;
        }