.u-hidden {
    display: none !important;
}

.u-invisible {
    visibility: hidden !important;
}

.u-block {
    display: block !important;
}

.u-inline-block {
    display: inline-block !important;
}

.u-flex {
    display: flex !important;
}

.u-inline-flex {
    display: inline-flex !important;
}

.u-grid {
    display: grid !important;
}

.u-flex-column {
    flex-direction: column !important;
}

.u-flex-wrap {
    flex-wrap: wrap !important;
}

.u-items-start {
    align-items: flex-start !important;
}

.u-items-center {
    align-items: center !important;
}

.u-items-end {
    align-items: flex-end !important;
}

.u-justify-start {
    justify-content: flex-start !important;
}

.u-justify-center {
    justify-content: center !important;
}

.u-justify-between {
    justify-content: space-between !important;
}

.u-justify-end {
    justify-content: flex-end !important;
}

.u-self-start {
    align-self: flex-start !important;
}

.u-self-center {
    align-self: center !important;
}

.u-self-end {
    align-self: flex-end !important;
}

.u-grow {
    flex-grow: 1 !important;
}

.u-shrink-0 {
    flex-shrink: 0 !important;
}

.u-gap-0 {
    gap: 0 !important;
}

.u-gap-1 {
    gap: 0.25rem !important;
}

.u-gap-2 {
    gap: 0.5rem !important;
}

.u-gap-3 {
    gap: 0.75rem !important;
}

.u-gap-4 {
    gap: 1rem !important;
}

.u-gap-6 {
    gap: 1.5rem !important;
}

.u-gap-8 {
    gap: 2rem !important;
}

.u-grid-1 {
    grid-template-columns: 1fr !important;
}

.u-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.u-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.u-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.u-col-span-full {
    grid-column: 1 / -1 !important;
}

.u-w-full {
    width: 100% !important;
}

.u-w-auto {
    width: auto !important;
}

.u-h-full {
    height: 100% !important;
}

.u-max-w-none {
    max-width: none !important;
}

.u-max-w-sm {
    max-width: 32rem !important;
}

.u-max-w-md {
    max-width: 48rem !important;
}

.u-max-w-lg {
    max-width: 64rem !important;
}

.u-m-0 {
    margin: 0 !important;
}

.u-mx-auto {
    margin-inline: auto !important;
}

.u-mt-0 {
    margin-block-start: 0 !important;
}

.u-mt-1 {
    margin-block-start: 0.25rem !important;
}

.u-mt-2 {
    margin-block-start: 0.5rem !important;
}

.u-mt-3 {
    margin-block-start: 0.75rem !important;
}

.u-mt-4 {
    margin-block-start: 1rem !important;
}

.u-mt-6 {
    margin-block-start: 1.5rem !important;
}

.u-mt-8 {
    margin-block-start: 2rem !important;
}

.u-mb-0 {
    margin-block-end: 0 !important;
}

.u-mb-1 {
    margin-block-end: 0.25rem !important;
}

.u-mb-2 {
    margin-block-end: 0.5rem !important;
}

.u-mb-3 {
    margin-block-end: 0.75rem !important;
}

.u-mb-4 {
    margin-block-end: 1rem !important;
}

.u-mb-6 {
    margin-block-end: 1.5rem !important;
}

.u-mb-8 {
    margin-block-end: 2rem !important;
}

.u-p-0 {
    padding: 0 !important;
}

.u-p-1 {
    padding: 0.25rem !important;
}

.u-p-2 {
    padding: 0.5rem !important;
}

.u-p-3 {
    padding: 0.75rem !important;
}

.u-p-4 {
    padding: 1rem !important;
}

.u-p-6 {
    padding: 1.5rem !important;
}

.u-p-8 {
    padding: 2rem !important;
}

.u-px-2 {
    padding-inline: 0.5rem !important;
}

.u-px-3 {
    padding-inline: 0.75rem !important;
}

.u-px-4 {
    padding-inline: 1rem !important;
}

.u-py-2 {
    padding-block: 0.5rem !important;
}

.u-py-3 {
    padding-block: 0.75rem !important;
}

.u-py-4 {
    padding-block: 1rem !important;
}

.u-text-left {
    text-align: left !important;
}

.u-text-center {
    text-align: center !important;
}

.u-text-right {
    text-align: right !important;
}

.u-text-xs {
    font-size: 0.75rem !important;
}

.u-text-sm {
    font-size: 0.875rem !important;
}

.u-text-base {
    font-size: 1rem !important;
}

.u-text-lg {
    font-size: 1.125rem !important;
}

.u-text-xl {
    font-size: 1.25rem !important;
}

.u-font-normal {
    font-weight: 400 !important;
}

.u-font-medium {
    font-weight: 500 !important;
}

.u-font-semibold {
    font-weight: 650 !important;
}

.u-font-bold {
    font-weight: 750 !important;
}

.u-text-primary {
    color: var(--color-primary-dark) !important;
}

.u-text-muted {
    color: var(--color-text-muted) !important;
}

.u-text-success {
    color: var(--color-success) !important;
}

.u-text-warning {
    color: var(--color-warning) !important;
}

.u-text-danger {
    color: var(--color-danger) !important;
}

.u-bg-surface {
    background: var(--color-surface) !important;
}

.u-bg-muted {
    background: var(--color-surface-muted) !important;
}

.u-bg-success {
    background: var(--color-success-light) !important;
}

.u-bg-warning {
    background: var(--color-warning-light) !important;
}

.u-bg-danger {
    background: var(--color-danger-light) !important;
}

.u-border {
    border: 1px solid var(--color-border-light) !important;
}

.u-border-0 {
    border: 0 !important;
}

.u-border-top {
    border-block-start: 1px solid var(--color-border-light) !important;
}

.u-border-bottom {
    border-block-end: 1px solid var(--color-border-light) !important;
}

.u-rounded-sm {
    border-radius: var(--radius-small) !important;
}

.u-rounded-md {
    border-radius: var(--radius-medium) !important;
}

.u-rounded-lg {
    border-radius: var(--radius-large) !important;
}

.u-rounded-full {
    border-radius: var(--radius-pill) !important;
}

.u-shadow-none {
    box-shadow: none !important;
}

.u-shadow-sm {
    box-shadow: var(--shadow-small) !important;
}

.u-shadow-md {
    box-shadow: var(--shadow-medium) !important;
}

.u-overflow-hidden {
    overflow: hidden !important;
}

.u-overflow-auto {
    overflow: auto !important;
}

.u-overflow-x-auto {
    overflow-x: auto !important;
}

.u-relative {
    position: relative !important;
}

.u-sticky {
    position: sticky !important;
}

.u-top-header {
    top: calc(var(--header-height) + 1rem) !important;
}

.u-truncate {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.u-break-word {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}

.u-whitespace-nowrap {
    white-space: nowrap !important;
}

.u-list-none {
    padding: 0 !important;
    list-style: none !important;
}

.u-pointer-events-none {
    pointer-events: none !important;
}

.u-cursor-pointer {
    cursor: pointer !important;
}

.u-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.u-focus-ring:focus-visible {
    outline: 3px solid rgb(15 118 110 / 0.3) !important;
    outline-offset: 2px !important;
}

.u-safe-top {
    padding-block-start: env(safe-area-inset-top) !important;
}

.u-safe-right {
    padding-inline-end: env(safe-area-inset-right) !important;
}

.u-safe-bottom {
    padding-block-end: env(safe-area-inset-bottom) !important;
}

.u-safe-left {
    padding-inline-start: env(safe-area-inset-left) !important;
}

@media (max-width: 760px) {
    .u-md-hidden {
        display: none !important;
    }

    .u-md-block {
        display: block !important;
    }

    .u-md-grid-1 {
        grid-template-columns: 1fr !important;
    }

    .u-md-flex-column {
        flex-direction: column !important;
    }

    .u-md-w-full {
        width: 100% !important;
    }

    .u-md-text-left {
        text-align: left !important;
    }
}

@media (max-width: 480px) {
    .u-sm-hidden {
        display: none !important;
    }

    .u-sm-block {
        display: block !important;
    }

    .u-sm-grid-1 {
        grid-template-columns: 1fr !important;
    }

    .u-sm-flex-column {
        flex-direction: column !important;
    }

    .u-sm-w-full {
        width: 100% !important;
    }

    .u-sm-p-2 {
        padding: 0.5rem !important;
    }
}

@media print {
    .u-print-hidden {
        display: none !important;
    }

    .u-print-block {
        display: block !important;
    }
}