@media print {
    @page {
        margin: 0;
    }

    html,
    body {
        margin: 0 !important;
        padding: 0 !important;
    }

    .page-break {
        page-break-before: always;
    }

    /* Force all colors (text, backgrounds, borders) to print exactly */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* Bootstrap 5 uses CSS variables for color utilities which can be lost
       in print iframes — declare actual values explicitly */
    .text-white {
        color: #ffffff !important;
    }

    .text-dark {
        color: #181c32 !important;
    }

    .text-muted {
        color: #a1a5b7 !important;
    }

    .text-primary {
        color: #009ef7 !important;
    }

    .text-success {
        color: #50cd89 !important;
    }

    .text-info {
        color: #7239ea !important;
    }

    .text-warning {
        color: #ffc700 !important;
    }

    .text-danger {
        color: #f1416c !important;
    }

    /* Table header / footer backgrounds with inline styles print fine,
       but badge background colors need forcing too */
    .badge.badge-light-success {
        background-color: #e8fff3 !important;
        color: #50cd89 !important;
    }

    .badge.badge-light-warning {
        background-color: #fff8dd !important;
        color: #ffc700 !important;
    }

    .badge.badge-light-danger {
        background-color: #fff5f8 !important;
        color: #f1416c !important;
    }

    .badge.badge-light-primary {
        background-color: #f1faff !important;
        color: #009ef7 !important;
    }

    .badge.badge-light-dark {
        background-color: #f1f1f4 !important;
        color: #181c32 !important;
    }

    .badge.badge-light {
        background-color: #f9f9f9 !important;
        color: #181c32 !important;
    }
}

body {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
}

.air-datepicker-global-container {
    z-index: 1111;
}

.vertical-align-middle {
    vertical-align: middle !important;
}

/* =========================
    ratio styles
========================= */

.ratio-1-1 {
    width: 100%;
    padding-top: 100%;
    position: relative;
}

.ratio-21-9 {
    width: 100%;
    padding-top: 42.8571%;
    position: relative;
}

.ratio-16-9 {
    width: 100%;
    padding-top: 56.25%;
    position: relative;
}

.ratio-4-3 {
    width: 100%;
    padding-top: 75%;
    position: relative;
}

.ratio-2-3 {
    width: 100%;
    padding-top: calc(3/2*100%);
    position: relative;
}

.ratio-3-2 {
    width: 100%;
    padding-top: 66.66%;
    position: relative;
}

.ratio-3-1 {
    width: 100%;
    padding-top: 33.33%;
    position: relative;
}

.ratio-8-5 {
    width: 100%;
    padding-top: 62.5%;
    position: relative;
}

.ratio-container {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}

.img-cover {
    object-fit: cover;
}

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

.img-contain {
    object-fit: contain !important;
}

/* =========================
    datatable styles
========================= */

.dt-column-header {
    display: inline !important;
}

.separator h4 {
    min-width: fit-content;
}


/* ===== */

.card .card-header {
    min-height: 35px;
}