﻿/*
 * Bootstrap 4 → Bootstrap 5 compatibility shim
 *
 * Bootstrap 5 removed several utility classes that existed in Bootstrap 4.
 * This file re-adds them so existing templates continue to render correctly
 * without requiring mass HTML changes across 100+ view files.
 *
 * Directional spacing (ml/mr/pl/pr) — Bootstrap 5 uses logical ms/me/ps/pe
 */

/* margin-left → margin-start */
.ml-0 {
    margin-left: 0 !important;
}

.ml-1 {
    margin-left: 0.25rem !important;
}

.ml-2 {
    margin-left: 0.5rem !important;
}

.ml-3 {
    margin-left: 1rem !important;
}

.ml-4 {
    margin-left: 1.5rem !important;
}

.ml-5 {
    margin-left: 3rem !important;
}

.ml-auto {
    margin-left: auto !important;
}

/* margin-right → margin-end */
.mr-0 {
    margin-right: 0 !important;
}

.mr-1 {
    margin-right: 0.25rem !important;
}

.mr-2 {
    margin-right: 0.5rem !important;
}

.mr-3 {
    margin-right: 1rem !important;
}

.mr-4 {
    margin-right: 1.5rem !important;
}

.mr-5 {
    margin-right: 3rem !important;
}

.mr-auto {
    margin-right: auto !important;
}

/* padding-left → padding-start */
.pl-0 {
    padding-left: 0 !important;
}

.pl-1 {
    padding-left: 0.25rem !important;
}

.pl-2 {
    padding-left: 0.5rem !important;
}

.pl-3 {
    padding-left: 1rem !important;
}

.pl-4 {
    padding-left: 1.5rem !important;
}

.pl-5 {
    padding-left: 3rem !important;
}

/* padding-right → padding-end */
.pr-0 {
    padding-right: 0 !important;
}

.pr-1 {
    padding-right: 0.25rem !important;
}

.pr-2 {
    padding-right: 0.5rem !important;
}

.pr-3 {
    padding-right: 1rem !important;
}

.pr-4 {
    padding-right: 1.5rem !important;
}

.pr-5 {
    padding-right: 3rem !important;
}

/* Float utilities — float-left/float-right removed in Bootstrap 5 */
.float-left {
    float: left !important;
}

.float-right {
    float: right !important;
}

/* Text alignment — text-left/text-right removed in Bootstrap 5 */
.text-left {
    text-align: left !important;
}

.text-right {
    text-align: right !important;
}

/* form-group — removed in Bootstrap 5, was just a bottom margin wrapper */
.form-group {
    margin-bottom: 1rem;
}

/* form-row — removed in Bootstrap 5, replaced by standard .row */
.form-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}

    .form-row > .col,
    .form-row > [class*="col-"] {
        padding-right: 5px;
        padding-left: 5px;
    }

/* has-feedback — removed in Bootstrap 5 (validation feedback is now built-in) */
.has-feedback {
    position: relative;
}

/* sr-only → visually-hidden in Bootstrap 5 */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* media / media-body — removed in Bootstrap 5, use flexbox utilities instead */
.media {
    display: flex;
    align-items: flex-start;
}

.media-body {
    flex: 1;
}

/* form-inline — removed in Bootstrap 5, use d-flex align-items-center instead */
.form-inline {
    display: inline-flex;
    flex-flow: row wrap;
    align-items: center;
}

/* btn-block — removed in Bootstrap 5, use d-grid wrapper instead */
.btn-block {
    display: block;
    width: 100%;
}

    .btn-block + .btn-block {
        margin-top: 0.5rem;
    }

/* close button — Bootstrap 5 uses .btn-close; keep .close for existing markup */
.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    opacity: 0.5;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}

    .close:hover {
        opacity: 0.75;
    }

/* dropdown-menu-right/left → dropdown-menu-end/start in Bootstrap 5 */
.dropdown-menu-right {
    --bs-position: end;
    right: 0;
    left: auto;
}

.dropdown-menu-left {
    --bs-position: start;
    left: 0;
    right: auto;
}

/* no-gutters — removed in Bootstrap 5, replaced by g-0 */
.no-gutters {
    margin-right: 0;
    margin-left: 0;
}

    .no-gutters > .col,
    .no-gutters > [class*="col-"] {
        padding-right: 0;
        padding-left: 0;
    }

/* Responsive text alignment — text-{sm|md|lg|xl}-right/left removed in Bootstrap 5 */
@media (min-width: 576px) {
    .text-sm-left {
        text-align: left !important;
    }

    .text-sm-right {
        text-align: right !important;
    }

    .text-sm-center {
        text-align: center !important;
    }
}

@media (min-width: 768px) {
    .text-md-left {
        text-align: left !important;
    }

    .text-md-right {
        text-align: right !important;
    }

    .text-md-center {
        text-align: center !important;
    }
}

@media (min-width: 992px) {
    .text-lg-left {
        text-align: left !important;
    }

    .text-lg-right {
        text-align: right !important;
    }

    .text-lg-center {
        text-align: center !important;
    }
}

@media (min-width: 1200px) {
    .text-xl-left {
        text-align: left !important;
    }

    .text-xl-right {
        text-align: right !important;
    }

    .text-xl-center {
        text-align: center !important;
    }
}

/* input-group-prepend / input-group-append — removed in Bootstrap 5 */
.input-group-prepend,
.input-group-append {
    display: flex;
}

    .input-group-prepend .btn,
    .input-group-append .btn {
        position: relative;
        z-index: 2;
    }

        .input-group-prepend .btn + .btn,
        .input-group-prepend .btn + .input-group-text,
        .input-group-prepend .input-group-text + .input-group-text,
        .input-group-prepend .input-group-text + .btn,
        .input-group-append .btn + .btn,
        .input-group-append .btn + .input-group-text,
        .input-group-append .input-group-text + .input-group-text,
        .input-group-append .input-group-text + .btn {
            margin-left: -1px;
        }

.input-group-prepend {
    margin-right: -1px;
}

.input-group-append {
    margin-left: -1px;
}

.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
