/*
 * Совместимость вёрстки с Bootstrap 5.
 * Возвращает поведение Bootstrap 4 и локальные правки старого bootstrap.css,
 * на которые опирается кастомный CSS проекта.
 */

/* Ссылки и кнопки в палитре BS4 */
:root {
	--bs-link-color: #007bff;
	--bs-link-color-rgb: 0, 123, 255;
	--bs-link-hover-color: #0056b3;
	--bs-link-hover-color-rgb: 0, 86, 179;
}
a {
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}
.btn {
	white-space: nowrap;
}
.btn-primary {
	--bs-btn-bg: #007bff;
	--bs-btn-border-color: #007bff;
	--bs-btn-hover-bg: #0069d9;
	--bs-btn-hover-border-color: #0062cc;
	--bs-btn-active-bg: #0062cc;
	--bs-btn-active-border-color: #005cbf;
	--bs-btn-disabled-bg: #007bff;
	--bs-btn-disabled-border-color: #007bff;
}
.btn-secondary {
	--bs-btn-hover-bg: #5a6268;
	--bs-btn-hover-border-color: #545b62;
	--bs-btn-active-bg: #545b62;
	--bs-btn-active-border-color: #4e555b;
}
.btn-success {
	--bs-btn-bg: #28a745;
	--bs-btn-border-color: #28a745;
	--bs-btn-hover-bg: #218838;
	--bs-btn-hover-border-color: #1e7e34;
	--bs-btn-active-bg: #1e7e34;
	--bs-btn-active-border-color: #1c7430;
	--bs-btn-disabled-bg: #28a745;
	--bs-btn-disabled-border-color: #28a745;
}
.btn-info {
	--bs-btn-color: #fff;
	--bs-btn-bg: #2196f3;
	--bs-btn-border-color: #2196f3;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #007bff;
	--bs-btn-hover-border-color: #007bff;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #117a8b;
	--bs-btn-active-border-color: #10707f;
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #2196f3;
	--bs-btn-disabled-border-color: #2196f3;
}

/* В старом bootstrap.css reboot для body, заголовков и полей ввода был отключён */
html {
	line-height: 1.15;
}
body {
	font-family: revert;
	font-size: revert;
	font-weight: revert;
	line-height: revert;
	color: revert;
	text-align: revert;
	background-color: revert;
}
h1, h2, h3, h4, h5, h6 {
	margin-top: revert;
	margin-bottom: revert;
	font-weight: revert;
	line-height: revert;
	color: revert;
}
h1, h2 {
	font-size: revert;
}
h3 {
	font-size: 1.75rem;
}
h4 {
	font-size: 1.5rem;
}
input, button, select, optgroup, textarea {
	margin: revert;
	font-family: revert;
	font-size: revert;
	line-height: revert;
}
hr {
	color: revert;
	border-top-color: rgba(0, 0, 0, .1);
	opacity: 1;
}
fieldset {
	margin: 20px 0;
}
.modal-content {
	color: inherit;
}
.modal-title {
	margin-top: 0;
	font-weight: 400;
}

/* .btn-secondary используется без .btn (кнопка «Выход») */
.btn-secondary:not(.btn) {
	color: #fff;
	background-color: #6c757d;
	border-color: #6c757d;
}
.btn-secondary:not(.btn):hover {
	background-color: #5a6268;
	border-color: #545b62;
}

/* .btn-default (кастомный) — системный цвет текста кнопки, как было в BS4 */
.btn-default {
	--bs-btn-color: ButtonText;
	--bs-btn-hover-color: ButtonText;
	--bs-btn-active-color: ButtonText;
}

/* Поля форм */
.form-control,
.form-select {
	font-weight: inherit;
	color: #495057;
	border-color: #ced4da;
}
.form-control[readonly] {
	background-color: #e9ecef;
	opacity: 1;
}
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
	box-shadow: 0 0 3px 2px rgba(0, 123, 255, .25);
}
.form-control::placeholder {
	color: #b1b8be;
}
.form-control option:disabled {
	color: #b1b8be;
}
.form-check {
	padding-left: 1.25rem;
}
.form-check .form-check-input {
	margin-left: -1.25rem;
}
.form-check-label {
	margin-bottom: 0;
}
.form-check-inline {
	margin-right: .9rem;
}

/* Гаттеры сетки 30px вместо 24px */
.row,
.container,
.container-fluid {
	--bs-gutter-x: 30px;
}

/* Без брейкпоинта xxl: контейнер не шире 1140px */
@media (min-width: 1400px) {
	.container {
		max-width: 1140px;
	}
}

/* В BS4 любая .col-* по умолчанию на всю ширину (в т.ч. кнопки с col-md-*); брейкпоинтные ширины BS5 перекрывают это */
:where(.col, [class^="col-"], [class*=" col-"]) {
	width: 100%;
}

/* Колонки вне .row тоже с гаттерами, как в BS4 */
:is(.col, [class^="col-"], [class*=" col-"]):where(:not(.btn)) {
	padding-right: 15px;
	padding-left: 15px;
}

/* Колонки — точка отсчёта для абсолютно позиционированных элементов (кнопка поиска, «или», стрелки select) */
.row > :where([class*="col"]) {
	position: relative;
}

/* Дочерние элементы .row без col-* — без гаттеров и по ширине содержимого, как в BS4.
   :where() держит специфичность на уровне .row > *, чтобы кастомный CSS по-прежнему перекрывал */
.row > :where(:not([class*="col"])) {
	flex-shrink: 1;
	width: auto;
	max-width: none;
	padding-right: 0;
	padding-left: 0;
	margin-top: 0;
}

/* .form-group удалён в BS5 */
.form-group {
	margin-bottom: 1rem;
}

/* Отступ label из reboot BS4 */
label {
	display: inline-block;
	margin-bottom: .5rem;
}
