/**
 * Единый вид переключателей (как на панели PJAX «Автообновление»):
 * Bootstrap primary в светлой теме, оттенок карточек AdminLTE в тёмной.
 */
.custom-control.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
    background-color: #007bff;
    border-color: #007bff;
}

.custom-control.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.custom-control.custom-switch .custom-control-label {
    cursor: pointer;
    min-height: 1.5rem;
}

body.dark-mode .custom-control.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
    background-color: #3f6791;
    border-color: #3f6791;
}

body.dark-mode .custom-control.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem rgba(63, 103, 145, 0.35);
}

/**
 * Bootstrap/AdminLTE красит «успешные» custom-control в зелёный (.was-validated :valid / .is-valid).
 * Для переключателей оставляем тот же вид, что и без валидации (синий / тёмная тема).
 */
.was-validated .custom-control.custom-switch .custom-control-input:valid ~ .custom-control-label,
.custom-control.custom-switch .custom-control-input.is-valid ~ .custom-control-label {
    color: inherit;
}

.was-validated .custom-control.custom-switch .custom-control-input:valid ~ .custom-control-label::before,
.custom-control.custom-switch .custom-control-input.is-valid ~ .custom-control-label::before {
    border-color: #adb5bd;
}

.was-validated .custom-control.custom-switch .custom-control-input:valid:checked ~ .custom-control-label::before,
.custom-control.custom-switch .custom-control-input.is-valid:checked ~ .custom-control-label::before {
    background-color: #007bff;
    border-color: #007bff;
}

.was-validated .custom-control.custom-switch .custom-control-input:valid:focus ~ .custom-control-label::before,
.custom-control.custom-switch .custom-control-input.is-valid:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.was-validated .custom-control.custom-switch .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,
.custom-control.custom-switch .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #80bdff;
}

body.dark-mode .was-validated .custom-control.custom-switch .custom-control-input:valid:checked ~ .custom-control-label::before,
body.dark-mode .custom-control.custom-switch .custom-control-input.is-valid:checked ~ .custom-control-label::before {
    background-color: #3f6791;
    border-color: #3f6791;
}

body.dark-mode .was-validated .custom-control.custom-switch .custom-control-input:valid:focus ~ .custom-control-label::before,
body.dark-mode .custom-control.custom-switch .custom-control-input.is-valid:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 0.2rem rgba(63, 103, 145, 0.35);
}

body.dark-mode .was-validated .custom-control.custom-switch .custom-control-input:valid ~ .custom-control-label::before,
body.dark-mode .custom-control.custom-switch .custom-control-input.is-valid ~ .custom-control-label::before {
    border-color: #4b545c;
}

body.dark-mode .was-validated .custom-control.custom-switch .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before,
body.dark-mode .custom-control.custom-switch .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #5a6570;
}

/**
 * Все модалки: линия на всю ширину .modal-content (как border-bottom у .modal-header),
 * вылезаем на padding .modal-body (1rem в BS4/AdminLTE). В разметке: `partials/_modal_top_rule.php`.
 */
.modal-body .app-modal-top-rule {
    display: block;
    box-sizing: border-box;
    width: calc(100% + 2rem);
    max-width: none;
    height: 0;
    margin: 0.5rem -1rem 0.75rem;
    border: 0;
    border-top: 1px solid #e9ecef;
}

body.dark-mode .modal-body .app-modal-top-rule {
    border-top-color: #6c757d;
}

/* Блок с кнопками в .modal-body сразу после .app-modal-top-rule — без своей границы */
.modal-form-actions {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}
