(function() {
    'use strict';

    let currentFontStyle = null;
    let currentNameColorStyle = null;

    function updateNameColor(color) {
        if (currentNameColorStyle) currentNameColorStyle.remove();
        const style = document.createElement('style');
        style.id = 'ishak-name-color-style';
        style.textContent = `
            .header__user-name_chamomile:first-letter {
                color: ${color} !important;
            }
        `;
        document.head.appendChild(style);
        currentNameColorStyle = style;
        localStorage.setItem('nameFirstLetterColor', color);
    }

    function loadNameColor() {
        return localStorage.getItem('nameFirstLetterColor') || '#00FF00';
    }

    function applyFontSettings(fontFamily, fontSize, lineHeight) {
        if (currentFontStyle) currentFontStyle.remove();
        const style = document.createElement('style');
        style.id = 'ishak-editor-font-styles';
        let css = '';
        if (fontFamily) {
            css += `font-family: ${fontFamily} !important; `;
        }
        if (fontSize) {
            css += `font-size: ${fontSize}px !important; `;
        }
        if (lineHeight) {
            css += `line-height: ${lineHeight} !important; `;
        }
        style.textContent = `
            .cm-content {
                ${css}
            }
        `;
        document.head.appendChild(style);
        currentFontStyle = style;

        if (fontFamily) localStorage.setItem('editorFontFamily', fontFamily);
        if (fontSize) localStorage.setItem('editorFontSize', fontSize);
        if (lineHeight) localStorage.setItem('editorLineHeight', lineHeight);

        if (window.updateOverlayStyles) {
            window.updateOverlayStyles();
        }
    }

    function loadFontSettings() {
        return {
            fontFamily: localStorage.getItem('editorFontFamily') || 'Fira Code, monospace',
            fontSize: parseInt(localStorage.getItem('editorFontSize')) || 16,
            lineHeight: parseFloat(localStorage.getItem('editorLineHeight')) || 1.4
        };
    }

    // ========== ДОБАВЛЕНО: управление цветом текста ==========
    let currentTextColor = '#000000';

    function updateTextColor(color) {
        currentTextColor = color;
        localStorage.setItem('editorTextColor', color);
        // Если подсветка включена – обновляем цвет оверлея
        if (window.highlightEnabled && window.updateOverlayTextColor) {
            window.updateOverlayTextColor(color);
        }
    }

    function loadTextColor() {
        return localStorage.getItem('editorTextColor') || '#000000';
    }
    // ========== КОНЕЦ ДОБАВЛЕННОГО ==========

    function initTheme() {
        const savedColor = loadNameColor();
        updateNameColor(savedColor);
        const savedFont = loadFontSettings();
        applyFontSettings(savedFont.fontFamily, savedFont.fontSize, savedFont.lineHeight);
        // Загружаем цвет текста (применится, если подсветка уже активна)
        const savedTextColor = loadTextColor();
        if (window.highlightEnabled && window.updateOverlayTextColor) {
            window.updateOverlayTextColor(savedTextColor);
        }
    }

    window.updateNameColor = updateNameColor;
    window.loadNameColor = loadNameColor;
    window.applyFontSettings = applyFontSettings;
    window.loadFontSettings = loadFontSettings;
    window.initTheme = initTheme;
    window.updateTextColor = updateTextColor;
    window.loadTextColor = loadTextColor;
})();