почисть и отрефактори этот код, почини проблему с тем, что клик вне модального окна его не закрывает. можешь вносить изменения требующие изменения html файла, но в таком случае укажи, что мне надо поменять. 


// МОДАЛЬНЫЕ ОКНА

const loginModal = document.getElementById('login-modal');
const registerModal = document.getElementById('register-modal');
const verificationModal = document.getElementById('verification-modal');
const confirmModal = document.getElementById('confirm-modal');

const showModalBtn = document.getElementById('show-modal-btn');
const showRegisterModalBtn = document.getElementById('show-register-modal-btn');
const showVerificationModalBtn = document.getElementById('show-verification-modal-btn');
const showConfirmModalBtn = document.getElementById('show-confirm-modal-btn');

const closeVerificationBtn = document.querySelector('.close-modal-btn');

// Переменные для отслеживания состояния окон
let isModalOpen = false;
let isRegisterModalOpen = false;
let isVerificationModalOpen = false;
let isConfirmModalOpen = false;

// Открытие окна авторизации
showModalBtn.addEventListener('click', (e) => {
    loginModal.showModal();
    isModalOpen = true;
    e.stopPropagation();  // Остановка всплытия события клика
});

// Открытие окна регистрации
showRegisterModalBtn.addEventListener('click', (e) => {
    registerModal.showModal();
    isRegisterModalOpen = true;
    e.stopPropagation();
});

// Открытие окна подтверждения кода
showVerificationModalBtn.addEventListener('click', () => {
    verificationModal.showModal();
    isVerificationModalOpen = true;
});

// Открытие окна подтверждения да/нет
showConfirmModalBtn.addEventListener('click', () => {
    confirmModal.showModal();
    isConfirmModalOpen = true;
});

// Закрытие окна подтверждения кода через кнопку закрытия
closeVerificationBtn.addEventListener('click', () => {
    verificationModal.close();
    isVerificationModalOpen = false;
});

// Закрытие окон при клике вне их
document.addEventListener('click', (e) => {
    if (isModalOpen && !loginModal.contains(e.target)) {
        loginModal.close();
        isModalOpen = false;
    }

    if (isRegisterModalOpen && !registerModal.contains(e.target)) {
        registerModal.close();
        isRegisterModalOpen = false;
    }

    // Важное замечание: окна подтверждения кода и да/нет НЕ закрываются при клике вне их,
    // поэтому здесь мы не добавляем для них соответствующую логику
});

// Остановка всплытия события клика для модальных окон, чтобы не закрывать их при клике внутри
loginModal.addEventListener('click', (e) => e.stopPropagation());
registerModal.addEventListener('click', (e) => e.stopPropagation());
verificationModal.addEventListener('click', (e) => e.stopPropagation());
confirmModal.addEventListener('click', (e) => e.stopPropagation());

// Логика обработки кнопок "Да" и "Нет" в диалоговом окне подтверждения
document.getElementById('confirm-yes').addEventListener('click', () => {
    confirmModal.close();
    isConfirmModalOpen = false;
    // Здесь можно добавить действия при выборе "Да"
});

document.getElementById('confirm-no').addEventListener('click', () => {
    confirmModal.close();
    isConfirmModalOpen = false;
    // Здесь можно добавить действия при выборе "Нет"
});