/* Чекбоксы / переключатели Bootstrap 5: явная background-image при :checked.
   Иначе после переопределения только background-color галочка появляется после второго клика (reflow). */

body.zen-body .form-check:not(.form-switch) .form-check-input[type="checkbox"],
body.zen-body .form-check-input[type="radio"] {
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

body.zen-body .form-check:not(.form-switch) .form-check-input[type="checkbox"]:checked,
body.zen-body .form-check-input[type="radio"]:checked {
    background-color: var(--vd-accent, #0d6efd);
    border-color: var(--vd-accent, #0d6efd);
}

body.zen-body .form-check:not(.form-switch) .form-check-input[type="checkbox"]:checked {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}

body.zen-body .form-check-input[type="radio"]:checked {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
}

body.zen-body .form-check:not(.form-switch) .form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--vd-accent, #0d6efd);
    border-color: var(--vd-accent, #0d6efd);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
}

/* form-switch: не заливать сплошным color — только knob + position */
body.zen-body .form-switch .form-check-input {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: left center;
    background-size: contain;
    transition: background-position 0.15s ease-in-out, border-color 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

body.zen-body .form-switch .form-check-input:checked {
    background-color: var(--vd-accent, #198754);
    border-color: var(--vd-accent, #198754);
    background-position: right center;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

body.zen-body .form-check-input:focus {
    border-color: color-mix(in srgb, var(--vd-accent, #0d6efd) 55%, var(--bs-border-color, #dee2e6));
}

body.zen-body .form-check-label {
    cursor: pointer;
}
