/* =========================================================
   Bootstrap 5 Utilities Backport for Bootstrap 3
   Include AFTER bootstrap.css
   ========================================================= */

/* =========================================================
   SPACING (Bootstrap 5 compatible)
   ========================================================= */

/* Margin */
.m-0  { margin: 0 !important; }
.m-1  { margin: .25rem !important; }
.m-2  { margin: .5rem !important; }
.m-3  { margin: 1rem !important; }
.m-4  { margin: 1.5rem !important; }
.m-5  { margin: 3rem !important; }

.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: .25rem !important; }
.mt-2 { margin-top: .5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mt-5 { margin-top: 3rem !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: .25rem !important; }
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }

.ms-0 { margin-left: 0 !important; }
.ms-1 { margin-left: .25rem !important; }
.ms-2 { margin-left: .5rem !important; }
.ms-3 { margin-left: 1rem !important; }
.ms-4 { margin-left: 1.5rem !important; }
.ms-5 { margin-left: 3rem !important; }

.me-0 { margin-right: 0 !important; }
.me-1 { margin-right: .25rem !important; }
.me-2 { margin-right: .5rem !important; }
.me-3 { margin-right: 1rem !important; }
.me-4 { margin-right: 1.5rem !important; }
.me-5 { margin-right: 3rem !important; }

.mx-0 { margin-left: 0 !important; margin-right: 0 !important; }
.mx-1 { margin-left: .25rem !important; margin-right: .25rem !important; }
.mx-2 { margin-left: .5rem !important; margin-right: .5rem !important; }
.mx-3 { margin-left: 1rem !important; margin-right: 1rem !important; }
.mx-4 { margin-left: 1.5rem !important; margin-right: 1.5rem !important; }
.mx-5 { margin-left: 3rem !important; margin-right: 3rem !important; }

.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
.my-1 { margin-top: .25rem !important; margin-bottom: .25rem !important; }
.my-2 { margin-top: .5rem !important; margin-bottom: .5rem !important; }
.my-3 { margin-top: 1rem !important; margin-bottom: 1rem !important; }
.my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; }
.my-5 { margin-top: 3rem !important; margin-bottom: 3rem !important; }

.m-auto  { margin: auto !important; }
.mx-auto { margin-left: auto !important; margin-right: auto !important; }

/* Padding */
.p-0  { padding: 0 !important; }
.p-1  { padding: .25rem !important; }
.p-2  { padding: .5rem !important; }
.p-3  { padding: 1rem !important; }
.p-4  { padding: 1.5rem !important; }
.p-5  { padding: 3rem !important; }

.pt-0 { padding-top: 0 !important; }
.pt-1 { padding-top: .25rem !important; }
.pt-2 { padding-top: .5rem !important; }
.pt-3 { padding-top: 1rem !important; }
.pt-4 { padding-top: 1.5rem !important; }
.pt-5 { padding-top: 3rem !important; }

.pb-0 { padding-bottom: 0 !important; }
.pb-1 { padding-bottom: .25rem !important; }
.pb-2 { padding-bottom: .5rem !important; }
.pb-3 { padding-bottom: 1rem !important; }
.pb-4 { padding-bottom: 1.5rem !important; }
.pb-5 { padding-bottom: 3rem !important; }

.ps-0 { padding-left: 0 !important; }
.ps-1 { padding-left: .25rem !important; }
.ps-2 { padding-left: .5rem !important; }
.ps-3 { padding-left: 1rem !important; }
.ps-4 { padding-left: 1.5rem !important; }
.ps-5 { padding-left: 3rem !important; }

.pe-0 { padding-right: 0 !important; }
.pe-1 { padding-right: .25rem !important; }
.pe-2 { padding-right: .5rem !important; }
.pe-3 { padding-right: 1rem !important; }
.pe-4 { padding-right: 1.5rem !important; }
.pe-5 { padding-right: 3rem !important; }

.px-0 { padding-left: 0 !important; padding-right: 0 !important; }
.px-1 { padding-left: .25rem !important; padding-right: .25rem !important; }
.px-2 { padding-left: .5rem !important; padding-right: .5rem !important; }
.px-3 { padding-left: 1rem !important; padding-right: 1rem !important; }
.px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.px-5 { padding-left: 3rem !important; padding-right: 3rem !important; }

.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
.py-1 { padding-top: .25rem !important; padding-bottom: .25rem !important; }
.py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }

/* =========================================================
   OVERFLOW
   ========================================================= */

.overflow-auto    { overflow: auto !important; }
.overflow-hidden  { overflow: hidden !important; }
.overflow-visible { overflow: visible !important; }
.overflow-scroll  { overflow: scroll !important; }

.overflow-x-auto    { overflow-x: auto !important; }
.overflow-x-hidden  { overflow-x: hidden !important; }
.overflow-x-visible { overflow-x: visible !important; }
.overflow-x-scroll  { overflow-x: scroll !important; }

.overflow-y-auto    { overflow-y: auto !important; }
.overflow-y-hidden  { overflow-y: hidden !important; }
.overflow-y-visible { overflow-y: visible !important; }
.overflow-y-scroll  { overflow-y: scroll !important; }

/* =========================================================
   DISPLAY
   ========================================================= */

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

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

/* =========================================================
   POSITION
   ========================================================= */

.position-relative { position: relative !important; }
.position-absolute { position: absolute !important; }
.position-fixed    { position: fixed !important; }
.position-sticky   { position: sticky !important; }

/* =========================================================
   TEXT
   ========================================================= */

.text-truncate {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* =========================================================
   GAP (Bootstrap 5 compatible)
   Works for flex and grid layouts
   ========================================================= */

.gap-0 { gap: 0 !important; }
.gap-1 { gap: .25rem !important; }
.gap-2 { gap: .5rem !important; }
.gap-3 { gap: 1rem !important; }
.gap-4 { gap: 1.5rem !important; }
.gap-5 { gap: 3rem !important; }

/* Optional axis-specific variants (BS5) */
.row-gap-0 { row-gap: 0 !important; }
.row-gap-1 { row-gap: .25rem !important; }
.row-gap-2 { row-gap: .5rem !important; }
.row-gap-3 { row-gap: 1rem !important; }
.row-gap-4 { row-gap: 1.5rem !important; }
.row-gap-5 { row-gap: 3rem !important; }

.column-gap-0 { column-gap: 0 !important; }
.column-gap-1 { column-gap: .25rem !important; }
.column-gap-2 { column-gap: .5rem !important; }
.column-gap-3 { column-gap: 1rem !important; }
.column-gap-4 { column-gap: 1.5rem !important; }
.column-gap-5 { column-gap: 3rem !important; }

/* =========================================================
   RESPONSIVE DISPLAY (Bootstrap 5 compatible)
   ========================================================= */

/* sm (≥576px) */
@media (min-width: 576px) {
    .d-sm-none         { display: none !important; }
    .d-sm-inline       { display: inline !important; }
    .d-sm-inline-block { display: inline-block !important; }
    .d-sm-block        { display: block !important; }
    .d-sm-flex         { display: flex !important; }
    .d-sm-inline-flex  { display: inline-flex !important; }
}

/* md (≥768px) */
@media (min-width: 768px) {
    .d-md-none         { display: none !important; }
    .d-md-inline       { display: inline !important; }
    .d-md-inline-block { display: inline-block !important; }
    .d-md-block        { display: block !important; }
    .d-md-flex         { display: flex !important; }
    .d-md-inline-flex  { display: inline-flex !important; }
}

/* lg (≥992px) */
@media (min-width: 992px) {
    .d-lg-none         { display: none !important; }
    .d-lg-inline       { display: inline !important; }
    .d-lg-inline-block { display: inline-block !important; }
    .d-lg-block        { display: block !important; }
    .d-lg-flex         { display: flex !important; }
    .d-lg-inline-flex  { display: inline-flex !important; }
}

/* xl (≥1200px) */
@media (min-width: 1200px) {
    .d-xl-none         { display: none !important; }
    .d-xl-inline       { display: inline !important; }
    .d-xl-inline-block { display: inline-block !important; }
    .d-xl-block        { display: block !important; }
    .d-xl-flex         { display: flex !important; }
    .d-xl-inline-flex  { display: inline-flex !important; }
}

/* xxl (≥1400px) */
@media (min-width: 1400px) {
    .d-xxl-none         { display: none !important; }
    .d-xxl-inline       { display: inline !important; }
    .d-xxl-inline-block { display: inline-block !important; }
    .d-xxl-block        { display: block !important; }
    .d-xxl-flex         { display: flex !important; }
    .d-xxl-inline-flex  { display: inline-flex !important; }
}

/* =========================================================
   RESPONSIVE SPACING (Bootstrap 5 compatible)
   (m|p)-(breakpoint)-(0..5) + margin auto variants
   ========================================================= */

/* Helper note:
   - ms = margin-left, me = margin-right (BS5 logical)
   - ps = padding-left, pe = padding-right
*/

/* ========= sm (≥576px) ========= */
@media (min-width: 576px) {
    /* margin all */
    .m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}
    .m-sm-auto{margin:auto!important}

    /* margin top/bottom/left/right */
    .mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}
    .mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}
    .ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}
    .me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}

    /* margin x/y */
    .mx-sm-0{margin-left:0!important;margin-right:0!important}
    .mx-sm-1{margin-left:.25rem!important;margin-right:.25rem!important}
    .mx-sm-2{margin-left:.5rem!important;margin-right:.5rem!important}
    .mx-sm-3{margin-left:1rem!important;margin-right:1rem!important}
    .mx-sm-4{margin-left:1.5rem!important;margin-right:1.5rem!important}
    .mx-sm-5{margin-left:3rem!important;margin-right:3rem!important}
    .mx-sm-auto{margin-left:auto!important;margin-right:auto!important}

    .my-sm-0{margin-top:0!important;margin-bottom:0!important}
    .my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}
    .my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
    .my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}
    .my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
    .my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}

    /* padding all */
    .p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}

    /* padding top/bottom/left/right */
    .pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}
    .pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}
    .ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}
    .pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}

    /* padding x/y */
    .px-sm-0{padding-left:0!important;padding-right:0!important}
    .px-sm-1{padding-left:.25rem!important;padding-right:.25rem!important}
    .px-sm-2{padding-left:.5rem!important;padding-right:.5rem!important}
    .px-sm-3{padding-left:1rem!important;padding-right:1rem!important}
    .px-sm-4{padding-left:1.5rem!important;padding-right:1.5rem!important}
    .px-sm-5{padding-left:3rem!important;padding-right:3rem!important}

    .py-sm-0{padding-top:0!important;padding-bottom:0!important}
    .py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}
    .py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
    .py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}
    .py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
    .py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}
}

/* ========= md (≥768px) ========= */
@media (min-width: 768px) {
    .m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}
    .m-md-auto{margin:auto!important}

    .mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}
    .mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}
    .ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}
    .me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}

    .mx-md-0{margin-left:0!important;margin-right:0!important}
    .mx-md-1{margin-left:.25rem!important;margin-right:.25rem!important}
    .mx-md-2{margin-left:.5rem!important;margin-right:.5rem!important}
    .mx-md-3{margin-left:1rem!important;margin-right:1rem!important}
    .mx-md-4{margin-left:1.5rem!important;margin-right:1.5rem!important}
    .mx-md-5{margin-left:3rem!important;margin-right:3rem!important}
    .mx-md-auto{margin-left:auto!important;margin-right:auto!important}

    .my-md-0{margin-top:0!important;margin-bottom:0!important}
    .my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}
    .my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
    .my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}
    .my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
    .my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}

    .p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}

    .pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}
    .pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}
    .ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}
    .pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}

    .px-md-0{padding-left:0!important;padding-right:0!important}
    .px-md-1{padding-left:.25rem!important;padding-right:.25rem!important}
    .px-md-2{padding-left:.5rem!important;padding-right:.5rem!important}
    .px-md-3{padding-left:1rem!important;padding-right:1rem!important}
    .px-md-4{padding-left:1.5rem!important;padding-right:1.5rem!important}
    .px-md-5{padding-left:3rem!important;padding-right:3rem!important}

    .py-md-0{padding-top:0!important;padding-bottom:0!important}
    .py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}
    .py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
    .py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}
    .py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
    .py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}
}

/* ========= lg (≥992px) ========= */
@media (min-width: 992px) {
    .m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}
    .m-lg-auto{margin:auto!important}

    .mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}
    .mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}
    .ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}
    .me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}

    .mx-lg-0{margin-left:0!important;margin-right:0!important}
    .mx-lg-1{margin-left:.25rem!important;margin-right:.25rem!important}
    .mx-lg-2{margin-left:.5rem!important;margin-right:.5rem!important}
    .mx-lg-3{margin-left:1rem!important;margin-right:1rem!important}
    .mx-lg-4{margin-left:1.5rem!important;margin-right:1.5rem!important}
    .mx-lg-5{margin-left:3rem!important;margin-right:3rem!important}
    .mx-lg-auto{margin-left:auto!important;margin-right:auto!important}

    .my-lg-0{margin-top:0!important;margin-bottom:0!important}
    .my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}
    .my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
    .my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}
    .my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
    .my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}

    .p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}

    .pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}
    .pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}
    .ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}
    .pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}

    .px-lg-0{padding-left:0!important;padding-right:0!important}
    .px-lg-1{padding-left:.25rem!important;padding-right:.25rem!important}
    .px-lg-2{padding-left:.5rem!important;padding-right:.5rem!important}
    .px-lg-3{padding-left:1rem!important;padding-right:1rem!important}
    .px-lg-4{padding-left:1.5rem!important;padding-right:1.5rem!important}
    .px-lg-5{padding-left:3rem!important;padding-right:3rem!important}

    .py-lg-0{padding-top:0!important;padding-bottom:0!important}
    .py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}
    .py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
    .py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}
    .py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
    .py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}
}

/* ========= xl (≥1200px) ========= */
@media (min-width: 1200px) {
    /* Same pattern as lg — included for completeness */
    .m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}
    .m-xl-auto{margin:auto!important}
    .mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}
    .mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}
    .ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}
    .me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}
    .mx-xl-0{margin-left:0!important;margin-right:0!important}
    .mx-xl-1{margin-left:.25rem!important;margin-right:.25rem!important}
    .mx-xl-2{margin-left:.5rem!important;margin-right:.5rem!important}
    .mx-xl-3{margin-left:1rem!important;margin-right:1rem!important}
    .mx-xl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}
    .mx-xl-5{margin-left:3rem!important;margin-right:3rem!important}
    .mx-xl-auto{margin-left:auto!important;margin-right:auto!important}
    .my-xl-0{margin-top:0!important;margin-bottom:0!important}
    .my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}
    .my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
    .my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}
    .my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
    .my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}

    .p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}
    .pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}
    .pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}
    .ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}
    .pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}
    .px-xl-0{padding-left:0!important;padding-right:0!important}
    .px-xl-1{padding-left:.25rem!important;padding-right:.25rem!important}
    .px-xl-2{padding-left:.5rem!important;padding-right:.5rem!important}
    .px-xl-3{padding-left:1rem!important;padding-right:1rem!important}
    .px-xl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}
    .px-xl-5{padding-left:3rem!important;padding-right:3rem!important}
    .py-xl-0{padding-top:0!important;padding-bottom:0!important}
    .py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}
    .py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
    .py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}
    .py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
    .py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}
}

/* ========= xxl (≥1400px) ========= */
@media (min-width: 1400px) {
    /* Same pattern as xl — included for completeness */
    .m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}
    .m-xxl-auto{margin:auto!important}
    .mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}
    .mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}
    .ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}
    .me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}
    .mx-xxl-0{margin-left:0!important;margin-right:0!important}
    .mx-xxl-1{margin-left:.25rem!important;margin-right:.25rem!important}
    .mx-xxl-2{margin-left:.5rem!important;margin-right:.5rem!important}
    .mx-xxl-3{margin-left:1rem!important;margin-right:1rem!important}
    .mx-xxl-4{margin-left:1.5rem!important;margin-right:1.5rem!important}
    .mx-xxl-5{margin-left:3rem!important;margin-right:3rem!important}
    .mx-xxl-auto{margin-left:auto!important;margin-right:auto!important}
    .my-xxl-0{margin-top:0!important;margin-bottom:0!important}
    .my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}
    .my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}
    .my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}
    .my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
    .my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}

    .p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}
    .pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}
    .pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}
    .ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}
    .pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}
    .px-xxl-0{padding-left:0!important;padding-right:0!important}
    .px-xxl-1{padding-left:.25rem!important;padding-right:.25rem!important}
    .px-xxl-2{padding-left:.5rem!important;padding-right:.5rem!important}
    .px-xxl-3{padding-left:1rem!important;padding-right:1rem!important}
    .px-xxl-4{padding-left:1.5rem!important;padding-right:1.5rem!important}
    .px-xxl-5{padding-left:3rem!important;padding-right:3rem!important}
    .py-xxl-0{padding-top:0!important;padding-bottom:0!important}
    .py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}
    .py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}
    .py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}
    .py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
    .py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}
}

/* =========================================================
   RESPONSIVE GAP (Bootstrap 5 compatible)
   ========================================================= */

@media (min-width: 576px) {
    .gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}
}
@media (min-width: 768px) {
    .gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}
}
@media (min-width: 992px) {
    .gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}
}
@media (min-width: 1200px) {
    .gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}
}
@media (min-width: 1400px) {
    .gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}
}

/* =========================================================
   RESPONSIVE OVERFLOW (Bootstrap 5 style)
   ========================================================= */

/* sm (≥576px) */
@media (min-width: 576px) {
    .overflow-sm-auto    { overflow: auto !important; }
    .overflow-sm-hidden  { overflow: hidden !important; }
    .overflow-sm-visible { overflow: visible !important; }
    .overflow-sm-scroll  { overflow: scroll !important; }

    .overflow-x-sm-auto    { overflow-x: auto !important; }
    .overflow-x-sm-hidden  { overflow-x: hidden !important; }
    .overflow-x-sm-visible { overflow-x: visible !important; }
    .overflow-x-sm-scroll  { overflow-x: scroll !important; }

    .overflow-y-sm-auto    { overflow-y: auto !important; }
    .overflow-y-sm-hidden  { overflow-y: hidden !important; }
    .overflow-y-sm-visible { overflow-y: visible !important; }
    .overflow-y-sm-scroll  { overflow-y: scroll !important; }
}

/* md (≥768px) */
@media (min-width: 768px) {
    .overflow-md-auto    { overflow: auto !important; }
    .overflow-md-hidden  { overflow: hidden !important; }
    .overflow-md-visible { overflow: visible !important; }
    .overflow-md-scroll  { overflow: scroll !important; }

    .overflow-x-md-auto    { overflow-x: auto !important; }
    .overflow-x-md-hidden  { overflow-x: hidden !important; }
    .overflow-x-md-visible { overflow-x: visible !important; }
    .overflow-x-md-scroll  { overflow-x: scroll !important; }

    .overflow-y-md-auto    { overflow-y: auto !important; }
    .overflow-y-md-hidden  { overflow-y: hidden !important; }
    .overflow-y-md-visible { overflow-y: visible !important; }
    .overflow-y-md-scroll  { overflow-y: scroll !important; }
}

/* lg (≥992px) */
@media (min-width: 992px) {
    .overflow-lg-auto    { overflow: auto !important; }
    .overflow-lg-hidden  { overflow: hidden !important; }
    .overflow-lg-visible { overflow: visible !important; }
    .overflow-lg-scroll  { overflow: scroll !important; }

    .overflow-x-lg-auto    { overflow-x: auto !important; }
    .overflow-x-lg-hidden  { overflow-x: hidden !important; }
    .overflow-x-lg-visible { overflow-x: visible !important; }
    .overflow-x-lg-scroll  { overflow-x: scroll !important; }

    .overflow-y-lg-auto    { overflow-y: auto !important; }
    .overflow-y-lg-hidden  { overflow-y: hidden !important; }
    .overflow-y-lg-visible { overflow-y: visible !important; }
    .overflow-y-lg-scroll  { overflow-y: scroll !important; }
}

/* xl (≥1200px) */
@media (min-width: 1200px) {
    .overflow-xl-auto    { overflow: auto !important; }
    .overflow-xl-hidden  { overflow: hidden !important; }
    .overflow-xl-visible { overflow: visible !important; }
    .overflow-xl-scroll  { overflow: scroll !important; }

    .overflow-x-xl-auto    { overflow-x: auto !important; }
    .overflow-x-xl-hidden  { overflow-x: hidden !important; }
    .overflow-x-xl-visible { overflow-x: visible !important; }
    .overflow-x-xl-scroll  { overflow-x: scroll !important; }

    .overflow-y-xl-auto    { overflow-y: auto !important; }
    .overflow-y-xl-hidden  { overflow-y: hidden !important; }
    .overflow-y-xl-visible { overflow-y: visible !important; }
    .overflow-y-xl-scroll  { overflow-y: scroll !important; }
}

/* xxl (≥1400px) */
@media (min-width: 1400px) {
    .overflow-xxl-auto    { overflow: auto !important; }
    .overflow-xxl-hidden  { overflow: hidden !important; }
    .overflow-xxl-visible { overflow: visible !important; }
    .overflow-xxl-scroll  { overflow: scroll !important; }

    .overflow-x-xxl-auto    { overflow-x: auto !important; }
    .overflow-x-xxl-hidden  { overflow-x: hidden !important; }
    .overflow-x-xxl-visible { overflow-x: visible !important; }
    .overflow-x-xxl-scroll  { overflow-x: scroll !important; }

    .overflow-y-xxl-auto    { overflow-y: auto !important; }
    .overflow-y-xxl-hidden  { overflow-y: hidden !important; }
    .overflow-y-xxl-visible { overflow-y: visible !important; }
    .overflow-y-xxl-scroll  { overflow-y: scroll !important; }
}

/* =========================================================
   RESPONSIVE POSITION (Bootstrap 5 style)
   ========================================================= */

/* sm (≥576px) */
@media (min-width: 576px) {
    .position-sm-static   { position: static !important; }
    .position-sm-relative { position: relative !important; }
    .position-sm-absolute { position: absolute !important; }
    .position-sm-fixed    { position: fixed !important; }
    .position-sm-sticky   { position: sticky !important; }
}

/* md (≥768px) */
@media (min-width: 768px) {
    .position-md-static   { position: static !important; }
    .position-md-relative { position: relative !important; }
    .position-md-absolute { position: absolute !important; }
    .position-md-fixed    { position: fixed !important; }
    .position-md-sticky   { position: sticky !important; }
}

/* lg (≥992px) */
@media (min-width: 992px) {
    .position-lg-static   { position: static !important; }
    .position-lg-relative { position: relative !important; }
    .position-lg-absolute { position: absolute !important; }
    .position-lg-fixed    { position: fixed !important; }
    .position-lg-sticky   { position: sticky !important; }
}

/* xl (≥1200px) */
@media (min-width: 1200px) {
    .position-xl-static   { position: static !important; }
    .position-xl-relative { position: relative !important; }
    .position-xl-absolute { position: absolute !important; }
    .position-xl-fixed    { position: fixed !important; }
    .position-xl-sticky   { position: sticky !important; }
}

/* xxl (≥1400px) */
@media (min-width: 1400px) {
    .position-xxl-static   { position: static !important; }
    .position-xxl-relative { position: relative !important; }
    .position-xxl-absolute { position: absolute !important; }
    .position-xxl-fixed    { position: fixed !important; }
    .position-xxl-sticky   { position: sticky !important; }
}

/* =========================================================
   POSITION OFFSETS (Bootstrap 5 compatible)
   ========================================================= */

.top-0    { top: 0 !important; }
.top-50   { top: 50% !important; }
.top-100  { top: 100% !important; }

.bottom-0   { bottom: 0 !important; }
.bottom-50  { bottom: 50% !important; }
.bottom-100 { bottom: 100% !important; }

.start-0   { left: 0 !important; }
.start-50  { left: 50% !important; }
.start-100 { left: 100% !important; }

.end-0   { right: 0 !important; }
.end-50  { right: 50% !important; }
.end-100 { right: 100% !important; }

/* Center helpers (very common) */
.translate-middle {
    transform: translate(-50%, -50%) !important;
}
.translate-middle-x {
    transform: translateX(-50%) !important;
}
.translate-middle-y {
    transform: translateY(-50%) !important;
}

@media (min-width: 576px) {
    .top-sm-0{top:0!important}.top-sm-50{top:50%!important}.top-sm-100{top:100%!important}
    .bottom-sm-0{bottom:0!important}.bottom-sm-50{bottom:50%!important}.bottom-sm-100{bottom:100%!important}
    .start-sm-0{left:0!important}.start-sm-50{left:50%!important}.start-sm-100{left:100%!important}
    .end-sm-0{right:0!important}.end-sm-50{right:50%!important}.end-sm-100{right:100%!important}
}

@media (min-width: 768px) {
    .top-md-0{top:0!important}.top-md-50{top:50%!important}.top-md-100{top:100%!important}
    .bottom-md-0{bottom:0!important}.bottom-md-50{bottom:50%!important}.bottom-md-100{bottom:100%!important}
    .start-md-0{left:0!important}.start-md-50{left:50%!important}.start-md-100{left:100%!important}
    .end-md-0{right:0!important}.end-md-50{right:50%!important}.end-md-100{right:100%!important}
}

@media (min-width: 992px) {
    .top-lg-0{top:0!important}.top-lg-50{top:50%!important}.top-lg-100{top:100%!important}
    .bottom-lg-0{bottom:0!important}.bottom-lg-50{bottom:50%!important}.bottom-lg-100{bottom:100%!important}
    .start-lg-0{left:0!important}.start-lg-50{left:50%!important}.start-lg-100{left:100%!important}
    .end-lg-0{right:0!important}.end-lg-50{right:50%!important}.end-lg-100{right:100%!important}
}

@media (min-width: 1200px) {
    .top-xl-0{top:0!important}.top-xl-50{top:50%!important}.top-xl-100{top:100%!important}
    .bottom-xl-0{bottom:0!important}.bottom-xl-50{bottom:50%!important}.bottom-xl-100{bottom:100%!important}
    .start-xl-0{left:0!important}.start-xl-50{left:50%!important}.start-xl-100{left:100%!important}
    .end-xl-0{right:0!important}.end-xl-50{right:50%!important}.end-xl-100{right:100%!important}
}

@media (min-width: 1400px) {
    .top-xxl-0{top:0!important}.top-xxl-50{top:50%!important}.top-xxl-100{top:100%!important}
    .bottom-xxl-0{bottom:0!important}.bottom-xxl-50{bottom:50%!important}.bottom-xxl-100{bottom:100%!important}
    .start-xxl-0{left:0!important}.start-xxl-50{left:50%!important}.start-xxl-100{left:100%!important}
    .end-xxl-0{right:0!important}.end-xxl-50{right:50%!important}.end-xxl-100{right:100%!important}
}

/* =========================================================
   FLEX UTILITIES (Bootstrap 5 style) for Bootstrap 3
   Requires display:flex (use .d-flex / .d-inline-flex from earlier)
   ========================================================= */

/* Flex direction */
.flex-row            { flex-direction: row !important; }
.flex-row-reverse    { flex-direction: row-reverse !important; }
.flex-column         { flex-direction: column !important; }
.flex-column-reverse { flex-direction: column-reverse !important; }

/* Flex wrap */
.flex-wrap         { flex-wrap: wrap !important; }
.flex-nowrap       { flex-wrap: nowrap !important; }
.flex-wrap-reverse { flex-wrap: wrap-reverse !important; }

/* Flex grow/shrink */
.flex-grow-0   { flex-grow: 0 !important; }
.flex-grow-1   { flex-grow: 1 !important; }
.flex-shrink-0 { flex-shrink: 0 !important; }
.flex-shrink-1 { flex-shrink: 1 !important; }

/* Flex fill (BS5) */
.flex-fill { flex: 1 1 auto !important; }

/* Justify content */
.justify-content-start   { justify-content: flex-start !important; }
.justify-content-end     { justify-content: flex-end !important; }
.justify-content-center  { justify-content: center !important; }
.justify-content-between { justify-content: space-between !important; }
.justify-content-around  { justify-content: space-around !important; }
.justify-content-evenly  { justify-content: space-evenly !important; } /* not supported in very old flex impls */

/* Align items */
.align-items-start    { align-items: flex-start !important; }
.align-items-end      { align-items: flex-end !important; }
.align-items-center   { align-items: center !important; }
.align-items-baseline { align-items: baseline !important; }
.align-items-stretch  { align-items: stretch !important; }

/* Align content (multi-line / wrapped) */
.align-content-start   { align-content: flex-start !important; }
.align-content-end     { align-content: flex-end !important; }
.align-content-center  { align-content: center !important; }
.align-content-between { align-content: space-between !important; }
.align-content-around  { align-content: space-around !important; }
.align-content-stretch { align-content: stretch !important; }

/* Align self (for flex items) */
.align-self-auto     { align-self: auto !important; }
.align-self-start    { align-self: flex-start !important; }
.align-self-end      { align-self: flex-end !important; }
.align-self-center   { align-self: center !important; }
.align-self-baseline { align-self: baseline !important; }
.align-self-stretch  { align-self: stretch !important; }

/* =========================================================
   ORDER UTILITIES (Bootstrap 5 style) for Bootstrap 3
   ========================================================= */

.order-first { order: -1 !important; }
.order-0     { order: 0 !important; }
.order-1     { order: 1 !important; }
.order-2     { order: 2 !important; }
.order-3     { order: 3 !important; }
.order-4     { order: 4 !important; }
.order-5     { order: 5 !important; }
.order-last  { order: 6 !important; }

@media (min-width: 576px) {
    .flex-sm-row{flex-direction:row!important}
    .flex-sm-row-reverse{flex-direction:row-reverse!important}
    .flex-sm-column{flex-direction:column!important}
    .flex-sm-column-reverse{flex-direction:column-reverse!important}

    .flex-sm-wrap{flex-wrap:wrap!important}
    .flex-sm-nowrap{flex-wrap:nowrap!important}
    .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}

    .flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}
    .flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}
    .flex-sm-fill{flex:1 1 auto!important}

    .justify-content-sm-start{justify-content:flex-start!important}
    .justify-content-sm-end{justify-content:flex-end!important}
    .justify-content-sm-center{justify-content:center!important}
    .justify-content-sm-between{justify-content:space-between!important}
    .justify-content-sm-around{justify-content:space-around!important}
    .justify-content-sm-evenly{justify-content:space-evenly!important}

    .align-items-sm-start{align-items:flex-start!important}
    .align-items-sm-end{align-items:flex-end!important}
    .align-items-sm-center{align-items:center!important}
    .align-items-sm-baseline{align-items:baseline!important}
    .align-items-sm-stretch{align-items:stretch!important}

    .align-content-sm-start{align-content:flex-start!important}
    .align-content-sm-end{align-content:flex-end!important}
    .align-content-sm-center{align-content:center!important}
    .align-content-sm-between{align-content:space-between!important}
    .align-content-sm-around{align-content:space-around!important}
    .align-content-sm-stretch{align-content:stretch!important}

    .align-self-sm-auto{align-self:auto!important}
    .align-self-sm-start{align-self:flex-start!important}
    .align-self-sm-end{align-self:flex-end!important}
    .align-self-sm-center{align-self:center!important}
    .align-self-sm-baseline{align-self:baseline!important}
    .align-self-sm-stretch{align-self:stretch!important}

    .order-sm-first{order:-1!important}
    .order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}
    .order-sm-last{order:6!important}
}

@media (min-width: 768px) {
    .flex-md-row{flex-direction:row!important}
    .flex-md-row-reverse{flex-direction:row-reverse!important}
    .flex-md-column{flex-direction:column!important}
    .flex-md-column-reverse{flex-direction:column-reverse!important}

    .flex-md-wrap{flex-wrap:wrap!important}
    .flex-md-nowrap{flex-wrap:nowrap!important}
    .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}

    .flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}
    .flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}
    .flex-md-fill{flex:1 1 auto!important}

    .justify-content-md-start{justify-content:flex-start!important}
    .justify-content-md-end{justify-content:flex-end!important}
    .justify-content-md-center{justify-content:center!important}
    .justify-content-md-between{justify-content:space-between!important}
    .justify-content-md-around{justify-content:space-around!important}
    .justify-content-md-evenly{justify-content:space-evenly!important}

    .align-items-md-start{align-items:flex-start!important}
    .align-items-md-end{align-items:flex-end!important}
    .align-items-md-center{align-items:center!important}
    .align-items-md-baseline{align-items:baseline!important}
    .align-items-md-stretch{align-items:stretch!important}

    .align-content-md-start{align-content:flex-start!important}
    .align-content-md-end{align-content:flex-end!important}
    .align-content-md-center{align-content:center!important}
    .align-content-md-between{align-content:space-between!important}
    .align-content-md-around{align-content:space-around!important}
    .align-content-md-stretch{align-content:stretch!important}

    .align-self-md-auto{align-self:auto!important}
    .align-self-md-start{align-self:flex-start!important}
    .align-self-md-end{align-self:flex-end!important}
    .align-self-md-center{align-self:center!important}
    .align-self-md-baseline{align-self:baseline!important}
    .align-self-md-stretch{align-self:stretch!important}

    .order-md-first{order:-1!important}
    .order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}
    .order-md-last{order:6!important}
}

@media (min-width: 992px) {
    .flex-lg-row{flex-direction:row!important}
    .flex-lg-row-reverse{flex-direction:row-reverse!important}
    .flex-lg-column{flex-direction:column!important}
    .flex-lg-column-reverse{flex-direction:column-reverse!important}

    .flex-lg-wrap{flex-wrap:wrap!important}
    .flex-lg-nowrap{flex-wrap:nowrap!important}
    .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}

    .flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}
    .flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}
    .flex-lg-fill{flex:1 1 auto!important}

    .justify-content-lg-start{justify-content:flex-start!important}
    .justify-content-lg-end{justify-content:flex-end!important}
    .justify-content-lg-center{justify-content:center!important}
    .justify-content-lg-between{justify-content:space-between!important}
    .justify-content-lg-around{justify-content:space-around!important}
    .justify-content-lg-evenly{justify-content:space-evenly!important}

    .align-items-lg-start{align-items:flex-start!important}
    .align-items-lg-end{align-items:flex-end!important}
    .align-items-lg-center{align-items:center!important}
    .align-items-lg-baseline{align-items:baseline!important}
    .align-items-lg-stretch{align-items:stretch!important}

    .align-content-lg-start{align-content:flex-start!important}
    .align-content-lg-end{align-content:flex-end!important}
    .align-content-lg-center{align-content:center!important}
    .align-content-lg-between{align-content:space-between!important}
    .align-content-lg-around{align-content:space-around!important}
    .align-content-lg-stretch{align-content:stretch!important}

    .align-self-lg-auto{align-self:auto!important}
    .align-self-lg-start{align-self:flex-start!important}
    .align-self-lg-end{align-self:flex-end!important}
    .align-self-lg-center{align-self:center!important}
    .align-self-lg-baseline{align-self:baseline!important}
    .align-self-lg-stretch{align-self:stretch!important}

    .order-lg-first{order:-1!important}
    .order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}
    .order-lg-last{order:6!important}
}

@media (min-width: 1200px) {
    .flex-xl-row{flex-direction:row!important}
    .flex-xl-row-reverse{flex-direction:row-reverse!important}
    .flex-xl-column{flex-direction:column!important}
    .flex-xl-column-reverse{flex-direction:column-reverse!important}

    .flex-xl-wrap{flex-wrap:wrap!important}
    .flex-xl-nowrap{flex-wrap:nowrap!important}
    .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}

    .flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}
    .flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}
    .flex-xl-fill{flex:1 1 auto!important}

    .justify-content-xl-start{justify-content:flex-start!important}
    .justify-content-xl-end{justify-content:flex-end!important}
    .justify-content-xl-center{justify-content:center!important}
    .justify-content-xl-between{justify-content:space-between!important}
    .justify-content-xl-around{justify-content:space-around!important}
    .justify-content-xl-evenly{justify-content:space-evenly!important}

    .align-items-xl-start{align-items:flex-start!important}
    .align-items-xl-end{align-items:flex-end!important}
    .align-items-xl-center{align-items:center!important}
    .align-items-xl-baseline{align-items:baseline!important}
    .align-items-xl-stretch{align-items:stretch!important}

    .align-content-xl-start{align-content:flex-start!important}
    .align-content-xl-end{align-content:flex-end!important}
    .align-content-xl-center{align-content:center!important}
    .align-content-xl-between{align-content:space-between!important}
    .align-content-xl-around{align-content:space-around!important}
    .align-content-xl-stretch{align-content:stretch!important}

    .align-self-xl-auto{align-self:auto!important}
    .align-self-xl-start{align-self:flex-start!important}
    .align-self-xl-end{align-self:flex-end!important}
    .align-self-xl-center{align-self:center!important}
    .align-self-xl-baseline{align-self:baseline!important}
    .align-self-xl-stretch{align-self:stretch!important}

    .order-xl-first{order:-1!important}
    .order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}
    .order-xl-last{order:6!important}
}

@media (min-width: 1400px) {
    .flex-xxl-row{flex-direction:row!important}
    .flex-xxl-row-reverse{flex-direction:row-reverse!important}
    .flex-xxl-column{flex-direction:column!important}
    .flex-xxl-column-reverse{flex-direction:column-reverse!important}

    .flex-xxl-wrap{flex-wrap:wrap!important}
    .flex-xxl-nowrap{flex-wrap:nowrap!important}
    .flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}

    .flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}
    .flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}
    .flex-xxl-fill{flex:1 1 auto!important}

    .justify-content-xxl-start{justify-content:flex-start!important}
    .justify-content-xxl-end{justify-content:flex-end!important}
    .justify-content-xxl-center{justify-content:center!important}
    .justify-content-xxl-between{justify-content:space-between!important}
    .justify-content-xxl-around{justify-content:space-around!important}
    .justify-content-xxl-evenly{justify-content:space-evenly!important}

    .align-items-xxl-start{align-items:flex-start!important}
    .align-items-xxl-end{align-items:flex-end!important}
    .align-items-xxl-center{align-items:center!important}
    .align-items-xxl-baseline{align-items:baseline!important}
    .align-items-xxl-stretch{align-items:stretch!important}

    .align-content-xxl-start{align-content:flex-start!important}
    .align-content-xxl-end{align-content:flex-end!important}
    .align-content-xxl-center{align-content:center!important}
    .align-content-xxl-between{align-content:space-between!important}
    .align-content-xxl-around{align-content:space-around!important}
    .align-content-xxl-stretch{align-content:stretch!important}

    .align-self-xxl-auto{align-self:auto!important}
    .align-self-xxl-start{align-self:flex-start!important}
    .align-self-xxl-end{align-self:flex-end!important}
    .align-self-xxl-center{align-self:center!important}
    .align-self-xxl-baseline{align-self:baseline!important}
    .align-self-xxl-stretch{align-self:stretch!important}

    .order-xxl-first{order:-1!important}
    .order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}
    .order-xxl-last{order:6!important}
}

/* =========================================================
   Bootstrap 5 Border Utilities — Backport for Bootstrap 3
   Scope: border only
   Safe to include alongside Bootstrap 3
   ========================================================= */

/* -------------------------------
   Base border utilities
-------------------------------- */
.border {
    border: 1px solid #dee2e6 !important;
}

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

.border-top {
    border-top: 1px solid #dee2e6 !important;
}
.border-end {
    border-right: 1px solid #dee2e6 !important;
}
.border-bottom {
    border-bottom: 1px solid #dee2e6 !important;
}
.border-start {
    border-left: 1px solid #dee2e6 !important;
}

/* Remove specific borders */
.border-top-0 {
    border-top: 0 !important;
}
.border-end-0 {
    border-right: 0 !important;
}
.border-bottom-0 {
    border-bottom: 0 !important;
}
.border-start-0 {
    border-left: 0 !important;
}

/* -------------------------------
   Border colors (BS5 names)
-------------------------------- */
.border-primary   { border-color: #0d6efd !important; }
.border-secondary { border-color: #6c757d !important; }
.border-success   { border-color: #198754 !important; }
.border-danger    { border-color: #dc3545 !important; }
.border-warning   { border-color: #ffc107 !important; }
.border-info      { border-color: #0dcaf0 !important; }
.border-light     { border-color: #f8f9fa !important; }
.border-dark      { border-color: #212529 !important; }
.border-white     { border-color: #ffffff !important; }

/* -------------------------------
   Border width utilities
-------------------------------- */
.border-1 { border-width: 1px !important; }
.border-2 { border-width: 2px !important; }
.border-3 { border-width: 3px !important; }
.border-4 { border-width: 4px !important; }
.border-5 { border-width: 5px !important; }

/* Directional width control */
.border-top.border-2    { border-top-width: 2px !important; }
.border-bottom.border-2 { border-bottom-width: 2px !important; }
.border-top.border-3    { border-top-width: 3px !important; }
.border-bottom.border-3 { border-bottom-width: 3px !important; }
.border-top.border-4    { border-top-width: 4px !important; }
.border-bottom.border-4 { border-bottom-width: 4px !important; }
.border-top.border-5    { border-top-width: 5px !important; }
.border-bottom.border-5 { border-bottom-width: 5px !important; }

/* -------------------------------
   Border radius utilities
-------------------------------- */
.rounded {
    border-radius: 0.25rem !important;
}

.rounded-top {
    border-top-left-radius: 0.25rem !important;
    border-top-right-radius: 0.25rem !important;
}

.rounded-end {
    border-top-right-radius: 0.25rem !important;
    border-bottom-right-radius: 0.25rem !important;
}

.rounded-bottom {
    border-bottom-right-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.rounded-start {
    border-top-left-radius: 0.25rem !important;
    border-bottom-left-radius: 0.25rem !important;
}

.rounded-circle {
    border-radius: 50% !important;
}

.rounded-0 {
    border-radius: 0 !important;
}

.border-primary-subtle   { border-color: #cfe2ff !important; }
.border-secondary-subtle { border-color: #e2e3e5 !important; }
.border-success-subtle   { border-color: #d1e7dd !important; }
.border-danger-subtle    { border-color: #f8d7da !important; }
.border-warning-subtle   { border-color: #fff3cd !important; }
.border-info-subtle      { border-color: #cff4fc !important; }
.border-light-subtle     { border-color: #fcfcfd !important; }
.border-dark-subtle      { border-color: #ced4da !important; }

