/* ========================================
   UTILITIES CSS
   Classi utility per spacing, layout, tipografia
   ======================================== */

/* Spacing Utilities */
.mb-half {
    margin-bottom: 0.5rem !important;
}

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

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

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

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

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

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

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

.mr-half {
    margin-right: 0.5rem !important;
}

.mr-1 {
    margin-right: 1rem !important;
}

.ml-half {
    margin-left: 0.5rem !important;
}

.ml-1 {
    margin-left: 1rem !important;
}

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

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

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

.pb-4 {
    padding-bottom: 1.5rem !important;
}

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

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

.px-half {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
}

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

/* Display Utilities */
.d-flex-center {
    display: flex;
    align-items: center;
}

.d-flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.d-flex-col {
    display: flex;
    flex-direction: column;
}

.d-inline-flex {
    display: inline-flex;
}

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

/* Text Utilities */
.text-weight-500 {
    font-weight: 500 !important;
}

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

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

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

.text-size-md {
    font-size: 0.9rem !important;
}

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

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

.text-size-xxl {
    font-size: 1.3rem !important;
}

.text-no-decoration {
    text-decoration: none !important;
}

/* Color Utilities */
.text-primary-dark {
    color: var(--primary-dark) !important;
}

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

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

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

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

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

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

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

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

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

/* Background Utilities */
.bg-white {
    background-color: white !important;
}

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

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

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

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

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

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

/* Border Utilities */
.border-none {
    border: none !important;
}

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

.border-light {
    border: 1px solid var(--primary-lightest) !important;
}

.border-radius-sm {
    border-radius: 0.375rem !important;
}

.border-radius-md {
    border-radius: 0.5rem !important;
}

.border-radius-lg {
    border-radius: 0.75rem !important;
}

.border-radius-xl {
    border-radius: 1rem !important;
}

/* Width Utilities */
.w-20 {
    width: 20% !important;
}

.w-25 {
    width: 25% !important;
}

.w-33 {
    width: 33.333% !important;
}

.w-50 {
    width: 50% !important;
}

.w-75 {
    width: 75% !important;
}

.w-100 {
    width: 100% !important;
}

.w-auto {
    width: auto !important;
}

.max-w-250 {
    max-width: 250px !important;
}

.max-w-400 {
    max-width: 400px !important;
}

.min-w-215 {
    min-width: 215px !important;
}

.min-w-300 {
    min-width: 300px !important;
}

/* Shadow Utilities */
.shadow-sm {
    box-shadow: 0 1px 3px rgba(0, 40, 85, 0.1) !important;
}

.shadow-md {
    box-shadow: 0 2px 8px rgba(0, 40, 85, 0.1) !important;
}

.shadow-lg {
    box-shadow: 0 4px 12px rgba(0, 40, 85, 0.15) !important;
}

.shadow-hover {
    transition: box-shadow 0.2s;
}

.shadow-hover:hover {
    box-shadow: 0 4px 12px rgba(0, 40, 85, 0.2) !important;
}

/* Position Utilities */
.pos-relative {
    position: relative !important;
}

.pos-absolute {
    position: absolute !important;
}

.pos-fixed {
    position: fixed !important;
}

/* Z-Index Utilities */
.z-index-1 {
    z-index: 1 !important;
}

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

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

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

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

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

.cursor-move {
    cursor: move !important;
}

/* Overflow Utilities */
.overflow-hidden {
    overflow: hidden !important;
}

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

/* Border Utilities */
.border-left-none {
    border-left: none !important;
}

.border-right-none {
    border-right: none !important;
}

.border-top-none {
    border-top: none !important;
}

.border-bottom-none {
    border-bottom: none !important;
}

/* Transition Utilities */
.transition-all {
    transition: all 0.2s ease !important;
}

.transition-bg {
    transition: background-color 0.2s ease !important;
}

.transition-shadow {
    transition: box-shadow 0.2s ease !important;
}

/* Opacity Utilities */
.opacity-80 {
    opacity: 0.8 !important;
}

.opacity-90 {
    opacity: 0.9 !important;
}

/* Visibility Utilities */
.visibility-hidden {
    visibility: hidden !important;
}

.display-none {
    display: none !important;
}

.display-block {
    display: block !important;
}

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