/* 모달 홱성화 / UI toggle */
function openHtmlModal() {
    document.getElementById('htmlModal').style.display = 'flex';
}

function closeHtmlModal() {
    document.getElementById('htmlModal').style.display = 'none';
}

function submitHtml() {
    const html = document.getElementById('htmlContent').value;
    if (html) {
        updatePreview(html);
    }
    closeHtmlModal();
}

function setStatus(msg, isIdle) {
    const dot = document.getElementById('statusDot');
    const text = document.getElementById('statusMessage');
    text.textContent = msg;
    if (isIdle) {
        dot.classList.remove('busy');
    } else {
        dot.classList.add('busy');
    }
}

