/* ─────────────────────────────────────────────────────────────────────────────
 * BS4 → BS5.3 compat-шим. Re-имплементирует УТИЛИТЫ/КЛАССЫ, удалённые в Bootstrap 5,
 * чтобы не править ~170 мест в разметке при апгрейде. Подключается ПОСЛЕ bootstrap.min.css
 * и ДО theme.css (тёмная тема должна перебивать). Только ДОБАВЛЯЕТ отсутствующие в BS5
 * классы — конфликтов с BS5 нет (эти имена в BS5 не заняты).
 * (JS-драйверы компонентов — data-toggle→data-bs-toggle и т.п. — правятся в разметке,
 *  их шимом не покроешь: BS5-JS ищет именно data-bs-*.)
 * ───────────────────────────────────────────────────────────────────────────── */

/* Отступы ml-*/mr-* → в BS5 переименованы в ms-*/me-* */
.ml-0{margin-left:0!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.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}
.mr-0{margin-right:0!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.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}

/* float / выравнивание текста (переименованы во float-start/end, text-start/end) */
.pull-left{float:left!important}.pull-right{float:right!important}
.text-left{text-align:left!important}.text-right{text-align:right!important}

/* насыщенность шрифта (→ fw-*) */
.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}
.font-weight-normal{font-weight:400!important}.font-weight-light{font-weight:300!important}

/* прочие удалённые утилиты/классы */
.btn-block{display:block;width:100%}
.form-group{margin-bottom:1rem}
.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}
.form-row>[class*="col-"]{padding-right:5px;padding-left:5px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* form-inline (в BS5 удалён) */
.form-inline{display:flex;flex-flow:row wrap;align-items:center}
.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}
.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}

/* badge-* (в BS5 цветовые классы бейджей убраны; база .badge есть) */
.badge-primary{background-color:var(--bs-primary)!important;color:#fff}
.badge-secondary{background-color:var(--bs-secondary)!important;color:#fff}
.badge-success{background-color:var(--bs-success)!important;color:#fff}
.badge-danger{background-color:var(--bs-danger)!important;color:#fff}
.badge-warning{background-color:var(--bs-warning)!important;color:#000}
.badge-info{background-color:var(--bs-info)!important;color:#000}
.badge-light{background-color:var(--bs-light)!important;color:#000}
.badge-dark{background-color:var(--bs-dark)!important;color:#fff}
.badge-pill{border-radius:10rem}

/* .close (в BS5 → .btn-close с SVG; сохраняем старую разметку с ×) */
.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;
  opacity:.5;background:transparent;border:0;padding:0;cursor:pointer}
.close:hover{opacity:.75}

/* custom-select (→ form-select) */
.custom-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;
  line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;
  border:1px solid var(--bs-border-color);border-radius:.375rem;appearance:none}

/* input-group-append / -prepend (в BS5 обёртки убраны — кладут детей прямо) */
.input-group-append,.input-group-prepend{display:flex}
.input-group-append{margin-left:-1px}.input-group-prepend{margin-right:-1px}

/* navbar-light (в BS5.3 убран — заменён на data-bs-theme). Восстанавливаем цвета/иконку-гамбургер. */
.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}
.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.65)}
.navbar-light .navbar-nav .nav-link:hover,.navbar-light .navbar-nav .nav-link:focus{color:rgba(0,0,0,.85)}
.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .active>.nav-link,
.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}
.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}
.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}

/* ── Пост-BS5 фиксы вёрстки ──────────────────────────────────────────────────
 * BS5 у .navbar убрал собственный гор. паддинг (ждёт .container внутри), а наш
 * навбар без контейнера → текст жался к краям. Возвращаем. */
.navbar{padding-left:1rem;padding-right:1rem}
/* Немного воздуха по краям страницы (BS5 .container-fluid чуть уже BS4). ТОЛЬКО верхний
 * контейнер — вложенные .container-fluid внутри страниц не трогаем (иначе двойной отступ). */
body>.container-fluid{padding-left:1rem;padding-right:1rem}
