/* ==========================================
   1. ГЛОБАЛЬНЫЕ СТИЛИ (База из твоего HTML)
   ========================================== */
* { 
    box-sizing: border-box; 
    font-family: Verdana, -apple-system, BlinkMacSystemFont, sans-serif; 
}

body { 
    background: #f0f2f5; 
    margin: 0; 
    padding: 16px; 
    display: flex; 
    flex-direction: column; 
    min-height: 100vh; 
}

.container { 
    max-width: 1000px; 
    width: 100%; 
    margin: 0 auto; 
    display: flex; 
    flex-direction: column; 
    gap: 16px; 
    flex-grow: 1; 
}

h2 { 
    margin: 4px 0; 
    color: #1a73e8; 
    text-align: center; 
    font-size: 1.6rem; 
}

h3 { 
    margin: 4px 0; 
    color: #1a73e8; 
    text-align: center; 
    font-size: 1rem; 
}


/* Выбор языков */
.lang-selector { 
    display: flex !important; /* Переключили на flex для аккуратного ряда внутри карточки */
    gap: 6px; 
    width: 100%; 
    padding: 10px 16px 5px 16px; /* Внутренние отступы внутри карточки */
    border-bottom: 1px solid #f1f3f4; /* Мягкая разделяющая черта снизу кнопок */
}

.lang-btn {
    background: #f1f3f4; 
    color: #3c4043;      
    border: none;         
    padding: 8px 16px;   
    border-radius: 8px;  
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease; 
    user-select: none;
}

.lang-btn:hover {
    background: #e8eaed; 
}

.lang-btn.active {
    background: #1a73e8 !important; 
    color: white !important;
}

/* Кнопка действия (Перевести) */
button.action-btn { 
    background: #1a73e8; 
    color: white; 
    border: none; 
    padding: 16px; 
    border-radius: 12px; 
    font-size: 16px; 
    font-weight: bold; 
    cursor: pointer; 
    width: 100%; 
    max-width: 200px; 
    margin: 0 auto; 
    align-self: center; 
    box-shadow: 0 4px 6px rgba(26, 115, 232, 0.2); 
}

button.action-btn:active { background: #155cb4; }
button.action-btn:disabled { background: #999; box-shadow: none; }

.placeholder { color: #888; font-style: italic; }

/* ==========================================
   2. СТРУКТУРА ОКОН И КНОПОК КОПИРОВАНИЯ
   ========================================== */
.workspace { 
    display: flex; 
    gap: 16px; 
    flex-grow: 1; 
}

/* Рамка, фон, тень и скругления теперь живут ЗДЕСЬ */
.box-wrapper { 
    position: relative; 
    display: flex; 
    flex-direction: column; 
    background: white;
    border: 1px solid #dadce0; 
    border-radius: 12px; 
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    overflow: hidden; /* Чтобы углы внутренних элементов не вылезали за рамку */
}

/* Общие стили для полей — теперь они чистые внутри карточки */
#sourceText, .result-box { 
    width: 100% !important;
    box-sizing: border-box !important; 
    border: none !important;            /* Убрали рамку */
    border-radius: 0 !important;        /* Убрали радиус */
    box-shadow: none !important;        /* Убрали личную тень */
    font-size: 16px; 
    padding: 16px 16px 60px 16px !important; /* Оставили нижний отступ под кнопки управления */
    flex-grow: 1;                       /* Заставляет поле занять всё доступное место */
    background: transparent !important;
}

#sourceText { 
    resize: none !important; 
    outline: none; 
}

/* ИСПРАВЛЕНО: убрали white-space: pre-wrap — теперь resultText содержит
   HTML (после marked.parse()), а не голый текст. pre-wrap заставлял
   браузер сохранять переносы строк ИЗ РАЗМЕТКИ HTML между тегами,
   отсюда были огромные промежутки между пунктами списка и заголовками. */
.result-box { 
    white-space: normal; 
}

/* Общие стили для круглых кнопок в углах */
.copy-btn, .speak-btn, .mic-btn {
    position: absolute !important;
    bottom: 12px !important;
    z-index: 10 !important;
    
    background: #ffffff !important;
    border: 1px solid #ced4da !important;
    border-radius: 50% !important; 
    width: 36px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
    transition: all 0.2s ease !important;
}

/* Кнопка копирования (справа) */
.copy-btn {
    right: 56px !important;
}

/* Кнопка микрофона (первая слева) */
.mic-btn {
    left: 12px !important;
}

/* Кнопка озвучки (вторая слева в левом окне, или первая слева в правом окне) */
.speak-btn {
    left: 12px !important;
}

/* В левом окне, где есть микрофон, кнопку озвучки двигаем правее */
.box-wrapper:first-child .speak-btn {
    left: 54px !important;
}

.copy-btn:hover, .speak-btn:hover, .mic-btn:hover {
    background: #f8f9fa !important;
    border-color: #b1bbc4 !important;
}

.copy-btn svg, .speak-btn svg, .mic-btn svg {
    fill: #5f6368 !important;
    transition: fill 0.2s ease !important;
}

.speak-btn:hover svg, .mic-btn:hover svg { fill: #1a73e8 !important; }
.copy-btn:hover svg { fill: #202124 !important; }

/* Состояние активной записи микрофона */
.mic-btn.recording {
    background-color: #fce8e6 !important;
    border-color: #ea4335 !important;
    animation: pulse-mic 1.5s infinite;
}

.mic-btn.recording svg {
    fill: #ea4335 !important;
}

@keyframes pulse-mic {
    0% {
        box-shadow: 0 0 0 0 rgba(234, 67, 53, 0.4);
    }
    70% {
        box-shadow: 0 0 0 8px rgba(234, 67, 53, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(234, 67, 53, 0);
    }
}

.copy-btn.copied {
    background: #e6f4ea !important;
    border-color: #137333 !important;
    color: #137333 !important;
    font-weight: bold !important;
    font-size: 14px !important;
}

.copy-btn.copied svg {
    display: none !important;
}

/* Общие стили для кнопок истории */
.history-btn {
    position: absolute !important;
    bottom: 12px !important;
    right: 12px !important; 
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background-color: #ffffff !important;
    border: 1px solid #dadce0 !important;
    fill: #5f6368 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: background-color 0.2s, fill 0.2s, border-color 0.2s !important;
    z-index: 10 !important;
}

.history-btn:hover {
    background-color: #f8f9fa !important;
    fill: #1a73e8 !important;
    border-color: #c3e7ff !important;
}

.history-btn.saved {
    background-color: #e6f4ea !important;
    fill: #137333 !important;
    border-color: #ceead6 !important;
}

/* Модифицированный комбобокс голосов */
.voice-selector {
    position: absolute !important;
    bottom: 15px !important;
    left: 56px !important; /* Для правого окна */
    z-index: 10 !important;
    max-width: 140px !important;
    font-size: 12px !important;
    padding: 4px 8px !important;
    border: 1px solid #dadce0 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    color: #3c4043 !important;
    cursor: pointer !important;
}

/* Для левого окна сдвигаем выбор голоса еще правее, чтобы не перекрывать микрофон и динамик */
.box-wrapper:first-child .voice-selector {
    left: 96px !important;
}

.voice-selector:focus {
    border-color: #1a73e8 !important;
    outline: none !important;
}

/* ==========================================
   3. АДАПТИВНОСТЬ ПОД РАЗНЫЕ ЭКРАНЫ
   ========================================== */

/* НАСТРОЙКИ ДЛЯ КОМПЬЮТЕРОВ (От 769px и шире) */
@media (min-width: 769px) {
    .workspace { 
        flex-direction: row !important; 
    }
    
    .workspace .box-wrapper { 
        flex: 1 !important; 
        height: 350px !important; /* Увеличили базовую высоту, учитывая появление шапки кнопок */
    }
    
    #sourceText, .result-box { 
        height: auto !important; /* Передаем управление высотой флекс-боксу */
        overflow-y: auto !important; 
    }
}

/* НАСТРОЙКИ ДЛЯ МОБИЛЬНЫХ (До 768px) */
@media (max-width: 768px) {
    body { padding: 10px; }
    .container { gap: 10px; flex-grow: 0; }
    h2 { font-size: 1.4rem; margin: 0; }
    
    .workspace { 
        flex-direction: column !important; 
        gap: 10px; 
        min-height: auto; 
    }
    
    .workspace .box-wrapper { 
        height: auto !important; 
        flex: none !important; 
    }
    
    /* Для мобилок раздаем высоту самим оберткам, а поля растянутся внутри */
    .workspace .box-wrapper:first-child {
        height: 230px !important;
    }
    .workspace .box-wrapper:last-child {
        height: 230px !important;
    }
    
    #sourceText, .result-box { 
        height: auto !important;
        font-size: 15px !important; 
    }
    
    .result-box { 
        overflow-y: auto !important; 
    }
    
    button.action-btn { padding: 12px; margin-top: 5px; }
    .lang-btn { padding: 6px 10px; font-size: 13px; }
}

/* ==========================================
   4. СТИЛИ ДЛЯ УМНЫХ НАСТРОЕК (НЕМЕЦКИЙ И ЧЕКБОКС)
   ========================================== */

/* Верхняя панель опций */
.top-options-bar {
    display: flex;
    justify-content: center;
    margin-bottom: 8px;
}

.custom-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
    padding: 6px 12px;
    background: #ffffff;
    border: 1px solid #dadce0;
    border-radius: 20px;
    transition: background 0.2s, border-color 0.2s;
}

.custom-checkbox-label:hover {
    background: #f8f9fa;
    border-color: #b1bbc4;
}

.custom-checkbox-label input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: #1a73e8;
}

.checkbox-text {
    font-size: 14px;
    font-weight: 500;
    color: #3c4043;
}

/* Встроенная панель грамматики внутри карточки перевода */
.grammar-inline-panel {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    background: #f8f9fa;
    border-bottom: 1px solid #f1f3f4;
    animation: slideDown 0.2s ease-out;
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-5px); }
    to { opacity: 1; transform: translateY(0); }
}

.grammar-label {
    font-size: 12px;
    font-weight: bold;
    color: #5f6368;
    text-transform: none;
    letter-spacing: 0.5px;
}

.grammar-pills {
    display: flex;
    gap: 4px;
    background: #e8eaed;
    padding: 3px;
    border-radius: 8px;
}

.pill {
    font-size: 13px;
    font-weight: 500;
    color: #5f6368;
    padding: 4px 12px;
    border-radius: 6px;
    cursor: pointer;
    user-select: none;
    transition: all 0.15s ease;
}

.pill:hover {
    color: #202124;
}

.pill.active {
    background: #ffffff;
    color: #1a73e8;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

/* Контекстный чекбокс внутри селектора языков */
/* Настройки контейнера чекбокса (использует общий с немецкой панелью вид) */
#source-check-container {
    display: none; /* Управляется через JS */
}

.compact-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}

.compact-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: #1a73e8;
}

.compact-checkbox .checkbox-text {
    font-size: 13px;
    font-weight: 500;
    color: #3c4043;
    white-space: nowrap;
}


/* Общие стили для селекторов скорости */
.rate-selector {
    position: absolute !important;
    bottom: 15px !important;
    z-index: 10 !important;
    font-size: 12px !important;
    padding: 4px 6px !important;
    border: 1px solid #dadce0 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    color: #3c4043 !important;
    cursor: pointer !important;
}

.rate-selector:focus {
    border-color: #1a73e8 !important;
    outline: none !important;
}

/* Для левой карточки (где у нас 3 кнопки + голос) */
.box-wrapper:first-child .rate-selector {
    left: 245px !important;
}

/* Для правой карточки (где у нас 2 кнопки + голос) */
.box-wrapper:last-child .rate-selector {
    left: 205px !important;
}


/* ==========================================
   5. ФОРМАТИРОВАНИЕ MARKDOWN-ОТВЕТА (#resultText)
   ========================================== */

#resultText h1,
#resultText h2,
#resultText h3 {
    font-size: 1.1em;
    font-weight: 600;
    color: inherit;
    text-align: left;
    margin: 0.6em 0 0.3em 0;
    line-height: 1.3;
}

#resultText h1:first-child,
#resultText h2:first-child,
#resultText h3:first-child {
    margin-top: 0;
}

#resultText p {
    margin: 0 0 0.5em 0;
}

#resultText ul,
#resultText ol {
    margin: 0 0 0.5em 0;
    padding-left: 1.4em;
}

#resultText li {
    margin: 0;
    padding: 0.1em 0;
}

#resultText li p {
    margin: 0;
    display: inline;
}

#resultText strong {
    font-weight: 700;
}
