/* webapp/static/css/style.css */

/* --- Общие стили --- */
body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    margin: 0;
    padding: 15px;
    color: var(--tg-theme-text-color, #000000);
    background-color: var(--tg-theme-bg-color, #ffffff);
    overscroll-behavior-y: none;
}

h1, h2 {
    color: var(--tg-theme-text-color, #000000);
    margin-top: 0;
    margin-bottom: 15px; /* Уменьшил немного отступ */
}
h1 {
    text-align: center;
    margin-bottom: 10px;
}
h2 {
     font-size: 1.3em;
}


p {
    line-height: 1.5;
    margin-bottom: 15px;
}
.main-header p { /* Текст под главным заголовком */
     text-align: center;
     font-size: 0.95em;
     color: var(--tg-theme-hint-color, #555);
     margin-bottom: 20px;
}


button {
    font-family: inherit;
    font-size: 16px;
    padding: 10px 15px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
    background-color: var(--tg-theme-button-color, #007aff);
    color: var(--tg-theme-button-text-color, #ffffff);
}

button:hover:not(:disabled) {
    filter: brightness(110%);
}

button:active:not(:disabled) {
    transform: scale(0.98);
}

button:disabled {
    background-color: var(--tg-theme-hint-color, #cccccc);
    color: var(--tg-theme-bg-color, #ffffff); /* Текст на неактивной кнопке светлее */
    cursor: not-allowed;
    opacity: 0.7; /* Полупрозрачность */
    filter: brightness(100%);
    transform: none;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

li {
    margin-bottom: 10px;
}

/* --- Структура --- */
.container {
    max-width: 600px;
    margin: 0 auto;
}

#user-info {
    text-align: center;
    font-size: 14px;
    color: var(--tg-theme-hint-color, #777777);
    margin-bottom: 20px;
}

/* --- Overlay загрузки --- */
#loading-overlay {
    position: fixed;
    inset: 0;
    background-color: var(--tg-theme-secondary-bg-color, rgba(240, 240, 240, 0.8));
    color: var(--tg-theme-text-color, #000);
    display: flex; /* Изначально скрыт через JS */
    justify-content: center;
    align-items: center;
    z-index: 1000;
}
#loading-overlay p {
    font-size: 18px;
}


/* --- Стили для выбора режима --- */
.mode-selection {
    text-align: center;
    margin-bottom: 25px;
    border-bottom: 1px solid var(--tg-theme-hint-color, #cccccc);
    padding-bottom: 20px;
}

.mode-button {
    padding: 12px 25px;
    font-size: 16px;
    min-width: 150px;
    background-color: var(--tg-theme-button-color, #007aff);
    color: var(--tg-theme-button-text-color, #ffffff);
}

/* --- Секция тем --- */
.topics-section h2 {
    margin-bottom: 15px;
    text-align: left;
}

#topics-list ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
#topics-list p {
    text-align: center;
    color: var(--tg-theme-hint-color, #777777);
}


.topic-button {
    width: 100%;
    text-align: left;
    background-color: var(--tg-theme-secondary-bg-color, #efeff4);
    color: var(--tg-theme-text-color, #000000);
    border: 1px solid var(--tg-theme-hint-color, #cccccc);
}

.topic-button:hover:not(:disabled) {
     filter: brightness(95%);
}


/* --- Секция квиза/экзамена --- */
.quiz-section {
    padding: 15px;
    background-color: var(--tg-theme-secondary-bg-color, #f8f8f8); /* Слегка другой фон */
    border-radius: 10px;
    margin-top: 20px;
    border: 1px solid var(--tg-theme-hint-color, #cccccc);
}

/* Заголовок квиза и кнопка Назад */
.quiz-header {
    display: flex;
    align-items: center; /* Выравниваем кнопку и заголовок по вертикали */
    margin-bottom: 15px;
    position: relative; /* Для позиционирования кнопки */
}

.back-button {
    background: none; /* Убираем фон */
    border: none;
    color: var(--tg-theme-link-color, #007aff); /* Цвет как у ссылки */
    font-size: 16px;
    padding: 5px 10px 5px 0; /* Отступы, справа больше не нужно */
    cursor: pointer;
    margin-right: 10px; /* Отступ от заголовка */
}
.back-button:hover {
    text-decoration: underline;
    filter: none; /* Убираем стандартный hover */
    transform: none; /* Убираем стандартный active */
}


#current-topic {
    font-size: 1.2em; /* Немного уменьшим заголовок темы */
    font-weight: bold;
    text-align: center;
    margin: 0 auto; /* Центрируем заголовок между кнопкой и краем */
    flex-grow: 1; /* Занимает оставшееся место */
    padding-right: 40px; /* Добавляем отступ справа, чтобы текст не залезал под кнопку, если она будет справа */
}


#question-area {
    margin-bottom: 20px;
    min-height: 100px;
}
.question-number {
    font-size: 12px;
    color: var(--tg-theme-hint-color, #888);
    text-align: right;
    margin-bottom: 5px;
}
.card-progress {
    font-size: 12px;
    color: var(--tg-theme-hint-color, #888);
    text-align: right;
    margin-bottom: 5px;
    margin-top: -10px;
}

#question-area p strong {
     color: var(--tg-theme-link-color, #007aff);
}
/* Стили для блока кода */
pre {
    background-color: var(--tg-theme-bg-color, #ffffff); /* Фон как основной */
    padding: 10px;
    border-radius: 5px;
    overflow-x: auto;
    border: 1px solid var(--tg-theme-hint-color, #dddddd); /* Светлее рамка */
    margin: 10px 0;
}
code.code-block {
    font-family: 'Courier New', Courier, monospace;
    font-size: 14px;
    color: var(--tg-theme-text-color, #333);
}


/* Стили для контейнера вариантов ответа */
.options-container {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 15px;
}

.option-button {
    width: 100%;
    text-align: left;
    background-color: var(--tg-theme-bg-color, #ffffff);
    color: var(--tg-theme-text-color, #000000);
    border: 1px solid var(--tg-theme-hint-color, #cccccc);
    padding: 12px 15px;
}

.option-button:hover:not(:disabled) {
     background-color: var(--tg-theme-secondary-bg-color, #efeff4);
     filter: none;
}

/* --- Стили для результатов ответа --- */
.result-message {
    margin-top: 15px;
    padding: 10px;
    border-radius: 5px;
    font-weight: bold;
    text-align: center;
}
/* ... (классы .correct и .incorrect как раньше) ... */
.result-message.correct { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.result-message.incorrect { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }


/* Подсветка кнопок после ответа */
.option-button.correct-answer { background-color: #28a745 !important; color: white !important; border-color: #28a745 !important; }
.option-button.correct-answer:disabled { opacity: 0.9; }
.option-button.incorrect-answer { background-color: #dc3545 !important; color: white !important; border-color: #dc3545 !important; opacity: 0.7; }
.option-button.incorrect-answer:disabled { opacity: 0.7; }
.option-button.correct-answer-reveal { border: 2px solid #28a745 !important; background-color: var(--tg-theme-bg-color, #ffffff) !important; color: #28a745 !important; }
.option-button.correct-answer-reveal:disabled { opacity: 1; }


/* --- Навигация и подсказки --- */
#navigation-buttons {
    margin-top: 20px;
    text-align: center;
}

#next-q-btn {
    display: none; /* По умолчанию скрыта */
    background-color: var(--tg-theme-button-color, #007aff);
    color: var(--tg-theme-button-text-color, #ffffff);
    padding: 12px 25px;
}

#hint-area {
    margin-top: 20px;
    padding: 10px;
    border: 1px dashed var(--tg-theme-hint-color, #cccccc);
    border-radius: 5px;
    text-align: center;
    background-color: var(--tg-theme-secondary-bg-color, #efeff4);
}
/* ... (стили для #hint-area p и #hint-gif как раньше) ... */
#hint-area p { margin-bottom: 10px; font-style: italic; color: var(--tg-theme-hint-color, #555555); }
#hint-gif { max-width: 100%; height: auto; border-radius: 5px; margin-top: 5px; }


/* Стили для финальных результатов экзамена */
.results-navigation {
    margin-top: 25px;
    display: flex;
    justify-content: space-around;
    gap: 15px; /* Расстояние между кнопками */
}
.results-navigation button {
    flex-grow: 1; /* Кнопки занимают равное место */
    background-color: var(--tg-theme-secondary-bg-color, #efeff4); /* Другой фон для кнопок навигации */
    color: var(--tg-theme-link-color, #007aff);
    border: 1px solid var(--tg-theme-hint-color, #cccccc);
}


/* Стили для отображения ошибок в результатах экзамена */
#question-area ul {
    padding-left: 0; /* Убираем отступ списка */
    list-style: none;
}
#question-area ul li {
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--tg-theme-hint-color, #eeeeee); /* Разделитель */
}
#question-area ul li:last-child {
    border-bottom: none;
}
#question-area ul li strong { /* Текст вопроса в ошибках */
    display: block;
    margin-bottom: 5px;
    font-weight: normal;
    color: var(--tg-theme-text-color, #333);
}

.incorrect-text { color: #dc3545; font-weight: bold; } /* Неправильный ответ пользователя */
.correct-text { color: #28a745; font-weight: bold; }   /* Правильный ответ */


/* Стили для вопросов с множественным выбором */
.mc-option {
    padding: 8px 12px;
    margin-bottom: 8px;
    border: 1px solid var(--tg-theme-hint-color, #ccc);
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s;
    background-color: var(--tg-theme-bg-color, #fff); /* Фон по умолчанию */
}

.mc-option label {
    margin-left: 8px;
    cursor: pointer; /* Чтобы клик по тексту тоже работал */
    color: var(--tg-theme-text-color, #000); /* Цвет текста */
    width: calc(100% - 25px); /* Чтобы текст не вылезал за пределы */
    display: inline-block; /* Для правильного выравнивания */
    vertical-align: middle;
}

.mc-option input[type="checkbox"] {
    cursor: pointer;
    vertical-align: middle;
    /* Увеличим немного размер чекбокса */
    transform: scale(1.2);
    margin-right: 5px;
}

/* Стили для подсветки в режиме Теста */
.mc-correct-selected {
    border-color: #28a745; /* Зеленый */
    background-color: #e9f7ec;
}
.mc-incorrect-selected {
    border-color: #dc3545; /* Красный */
    background-color: #fdecea;
}
.mc-correct-missed {
    border: 1px dashed #28a745; /* Зеленая пунктирная рамка для пропущенных */
    /* background-color: #f8f9fa; */ /* Можно добавить легкий фон */
}
.mc-correct-missed label::before {
    content: "✓ "; /* Добавить галочку перед пропущенным правильным */
    color: #28a745;
    font-weight: bold;
}


/* Легкая подсветка выбранного в экзамене */
.mc-selected-exam {
   background-color: #e7f3ff; /* Светло-голубой фон */
   border-color: #a0cfff;
}

/* Сообщения о результате */
.result-message.correct {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
    padding: 5px 10px;
    border-radius: 5px;
    margin-top: 10px; /* Отступ сверху */
}
.result-message.incorrect {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
    padding: 5px 10px;
    border-radius: 5px;
    margin-top: 10px; /* Отступ сверху */

}
 .result-message.incorrect ul {
      font-size: 0.9em;
      margin-top: 5px;
      margin-bottom: 0;
      padding-left: 20px;
 }
 .result-message.incorrect li {
      color: #5a161d; /* Чуть темнее для списка */
 }

/* Кнопка Ответить */
#mc-submit-button {
    display: block; /* Чтобы кнопка была на всю ширину */
    width: 100%;
    margin-top: 15px; /* Отступ сверху от опций */
}