* {
    margin: 0; /* Убрать внешние отступы у всех элементов */
    padding: 0; /* Убрать внутренние отступы у всех элементов */
    box-sizing: border-box; /* Ширина/высота включает padding и border */
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; /* Системный шрифт */
    background-color: #1a1a1a; /* Тёмный фон страницы */
    color: #e0e0e0; /* Основной цвет текста */
    line-height: 1.6; /* Высота строки */
}

/* === ОСНОВНОЙ КОНТЕЙНЕР === */
.container {
    max-width: 900px; /* Максимальная ширина контента */
    margin: 0 auto; /* Центрирование блока */
    padding: 20px; /* Внутренние отступы */
}

/* ==================== ПОИСК ==================== */

/* ПАНЕЛЬ ПОИСКА — верхняя секция страницы */
.top-search {
    padding: 20px 0; /* Внутренние отступы сверху и снизу */
    border-bottom: 1px solid #2a2a2a; /* Разделительная линия под поиском */
}

/* ==================== ПОЛЕ И КНОПКИ ПОИСКА ==================== */

/* ПОЛЕ ВВОДА ПОИСКА */
#search-input {
    width: 100%; /* Полная ширина контейнера */
    box-sizing: border-box; /* Padding включён в ширину */
    padding: 15px 45px 15px 20px; /* Внутренние отступы (сверху, справа, снизу, слева) */
    font-size: 1.1rem; /* Размер шрифта */
    background-color: #2a2a2a; /* Фон поля ввода */
    border: 2px solid #3a3a3a; /* Граница поля */
    border-radius: 8px; /* Скруглённые углы */
    color: #e0e0e0; /* Цвет текста */
    outline: none; /* Убрать стандартную обводку при фокусе */
    transition: border-color 0.3s; /* Плавное изменение цвета границы */
}

/* Поле поиска при фокусе */
#search-input:focus {
    border-color: #ff9800; /* Оранжевая граница при фокусе */
    color: #e0e0e0; /* Цвет текста при фокусе */
}

/* Поле поиска когда не в фокусе */
#search-input:not(:focus) {
    color: #888; /* Серый цвет текста когда не в фокусе */
}

/* Плейсхолдер поля поиска */
#search-input::placeholder {
    color: #888; /* Цвет плейсхолдера */
}

/* КНОПКА ОЧИСТКИ — крестик × справа от поля */
#clear-search {
    position: absolute; /* Абсолютное позиционирование внутри контейнера */
    right: 15px; /* Отступ от правого края */
    top: 50%; /* Центр по вертикали */
    transform: translateY(-50%); /* Сдвиг на половину своей высоты для точного центрирования */
    background: none; /* Без фона */
    border: none; /* Без границы */
    color: #888; /* Цвет крестика */
    font-size: 1.5rem; /* Размер крестика */
    cursor: pointer; /* Курсор-указатель */
    display: none; /* Скрыт по умолчанию */
    line-height: 1; /* Высота строки для выравнивания */
}

/* Кнопка очистки при наведении */
#clear-search:hover {
    color: #ff9800; /* Оранжевый цвет при наведении */
}

/* БЛОК РЕЗУЛЬТАТОВ ПОИСКА — выпадающий список под полем */
#results {
    display: none; /* Скрыт по умолчанию */
    position: absolute; /* Абсолютное позиционирование под полем ввода */
    top: 100%; /* Начинается сразу под полем */
    left: 0; /* Прижат к левому краю */
    right: 0; /* Растянут до правого края */
    background-color: #2a2a2a; /* Фон блока результатов */
    border: 1px solid #3a3a3a; /* Граница блока */
    border-radius: 8px; /* Скруглённые углы */
    margin-top: 10px; /* Отступ от поля ввода */
    max-height: 500px; /* Максимальная высота блока */
    overflow-y: auto; /* Вертикальная прокрутка при переполнении */
    z-index: 1000; /* Поверх других элементов */
    box-shadow: 0 10px 30px rgba(0,0,0,0.5); /* Тень блока */
}

/* Блок результатов в видимом состоянии */
#results.visible {
    display: block; /* Показан когда добавлен класс visible */
}

/* ==================== РЕЗУЛЬТАТЫ ПОИСКА ==================== */

/* Режим 1: скроллится за пределы страницы — поиск уходит вверх при скролле */
.search-mode-1 .top-search {
    position: relative; /* Обычное позиционирование, скроллится */
}

/* Режим 2: фиксированный сверху — поиск прилипает к верху при скролле */
.search-mode-2 .top-search {
    position: fixed; /* Фиксированное позиционирование у верхнего края */
    top: 0; /* Прижат к верху страницы */
    left: 0; /* Прижат к левому краю */
    right: 0; /* Растянут до правого края */
    z-index: 1000; /* Поверх других элементов */
    transform: translateY(0); /* Начальная позиция */
    transition: transform 0.3s ease; /* Плавная анимация скрытия/показа */
    padding: 15px 20px; /* Внутренние отступы */
    background-color: #1a1a1a; /* Тёмный фон */
    border-bottom: 1px solid #2a2a2a; /* Разделительная линия */
}

/* Состояние "скрыто" — поиск уезжает вверх за экран */
.search-mode-2 .top-search.hidden {
    transform: translateY(-100%); /* Скрытие вверх за пределы экрана */
}

/* Отступ контента — резервирует место под прилипший поиск */
.search-mode-2 .page-content {
    padding-top: 70px; /* Место под фиксированный поиск */
}

/* Режим 3: липкий сверху — поиск остаётся в потоке, но прилипает к верху */
.search-mode-3 .top-search {
    position: sticky; /* Липкое позиционирование */
    top: 0; /* Прилипает к верху при скролле */
    z-index: 1000; /* Поверх других элементов */
    padding: 15px 20px; /* Внутренние отступы */
    background-color: #1a1a1a; /* Тёмный фон */
    border-bottom: 1px solid #2a2a2a; /* Разделительная линия */
}

/* Поиск растягивается на всю ширину в режиме sticky */
.search-mode-3 .search-container {
    max-width: 100%; /* Растянуть на всю ширину */
}

/* Контейнер поиска — базовые стили */
.search-container {
    position: relative; /* Для позиционирования кнопки очистки */
}

#search-input {
    width: 100%; /* Полная ширина контейнера */
    padding: 15px 45px 15px 20px; /* Внутренние отступы (сверху, справа, снизу, слева) */
    font-size: 1.1rem; /* Размер шрифта */
    background-color: #2a2a2a; /* Фон поля ввода */
    border: 2px solid #3a3a3a; /* Граница поля */
    border-radius: 8px; /* Скруглённые углы */
    color: #e0e0e0; /* Цвет текста */
    outline: none; /* Убрать стандартную обводку при фокусе */
    transition: border-color 0.3s; /* Плавное изменение цвета границы */
}

#search-input:focus {
    border-color: #ff9800; /* Оранжевая граница при фокусе */
    color: #e0e0e0; /* Цвет текста при фокусе */
}

#search-input:not(:focus) {
    color: #888; /* Серый цвет текста когда не в фокусе */
}

#search-input::placeholder {
    color: #888; /* Цвет плейсхолдера */
}

#clear-search {
    position: absolute; /* Абсолютное позиционирование внутри контейнера */
    right: 15px; /* Отступ от правого края */
    top: 50%; /* Центр по вертикали */
    transform: translateY(-50%); /* Сдвиг на половину своей высоты для точного центрирования */
    background: none; /* Без фона */
    border: none; /* Без границы */
    color: #888; /* Цвет крестика */
    font-size: 1.5rem; /* Размер крестика */
    cursor: pointer; /* Курсор-указатель */
    display: none; /* Скрыт по умолчанию */
    line-height: 1; /* Высота строки для выравнивания */
}

#clear-search:hover {
    color: #ff9800; /* Оранжевый цвет при наведении */
}

#results {
    display: none; /* Скрыт по умолчанию */
    position: absolute; /* Абсолютное позиционирование под полем ввода */
    top: 100%; /* Начинается сразу под полем */
    left: 0; /* Прижат к левому краю */
    right: 0; /* Растянут до правого края */
    background-color: #2a2a2a; /* Фон блока результатов */
    border: 1px solid #3a3a3a; /* Граница блока */
    border-radius: 8px; /* Скруглённые углы */
    margin-top: 10px; /* Отступ от поля ввода */
    max-height: 500px; /* Максимальная высота блока */
    overflow-y: auto; /* Вертикальная прокрутка при переполнении */
    z-index: 1000; /* Поверх других элементов */
    box-shadow: 0 10px 30px rgba(0,0,0,0.5); /* Тень блока */
}

#results.visible {
    display: block; /* Показан когда добавлен класс visible */
}

/* ==================== РЕЗУЛЬТАТЫ ПОИСКА ==================== */

/* СЕКЦИЯ РЕЗУЛЬТАТОВ — каждая группа результатов (по типу: песни, исполнители) */
.result-section {
    padding: 15px 20px; /* Внутренние отступы секции */
    border-bottom: 1px solid #3a3a3a; /* Разделитель между секциями */
}

/* Последняя секция — убираем разделитель */
.result-section:last-child {
    border-bottom: none; /* Убрать разделитель у последней секции */
}

/* ЗАГОЛОВОК СЕКЦИИ — "Песни", "Исполнители" и т.д. */
.result-section-title {
    font-size: 0.85rem; /* Размер шрифта заголовка секции */
    text-transform: uppercase; /* Заглавные буквы */
    color: #888; /* Серый цвет */
    margin-bottom: 10px; /* Отступ снизу */
    font-weight: 600; /* Полужирный шрифт */
    letter-spacing: 1px; /* Межбуквенный интервал */
}

/* ЭЛЕМЕНТ РЕЗУЛЬТАТА — строка с песней или исполнителем */
.result-item {
    padding: 8px 10px; /* Внутренние отступы элемента */
    border-radius: 4px; /* Скруглённые углы */
    cursor: pointer; /* Курсор-указатель */
    transition: background-color 0.2s; /* Плавное изменение фона */
}

/* Элемент при наведении — подсветка фона */
.result-item:hover {
    background-color: #3a3a3a; /* Фон при наведении */
}

/* ССЫЛКА внутри элемента результата */
.result-item a {
    color: #e0e0e0; /* Цвет ссылки */
    text-decoration: none; /* Без подчёркивания */
    display: block; /* Блочный элемент для клика по всей области */
}

/* Основной текст элемента — название песни или исполнителя */
.result-item .item-title {
    color: #fff; /* Белый цвет основного текста */
    font-weight: 500; /* Средняя жирность */
}

/* Дополнительный текст — исполнитель для песни */
.result-item .item-subtitle {
    color: #aaa; /* Серый цвет дополнительного текста */
    font-size: 0.9rem; /* Уменьшенный размер шрифта */
}

/* Счётчик — количество версий или песен */
.result-item .item-count {
    color: #666; /* Тёмно-серый цвет */
    font-size: 0.85rem; /* Уменьшенный размер шрифта */
}

/* Контекст — фрагмент текста песни с искомым запросом */
.result-item .context {
    color: #888; /* Серый цвет контекста */
    font-size: 0.85rem; /* Уменьшенный размер шрифта */
    font-style: italic; /* Курсив */
    margin-top: 4px; /* Отступ сверху */
}

/* Подсветка искомого текста в результатах */
.result-item mark {
    background-color: #ff9800; /* Оранжевый фон подсветки */
    color: #1a1a1a; /* Тёмный цвет текста подсветки */
    padding: 0 2px; /* Внутренние отступы подсветки */
    border-radius: 2px; /* Скруглённые углы */
}

/* Состояние загрузки — текст "Загрузка..." */
.loading {
    padding: 20px; /* Внутренние отступы */
    text-align: center; /* Центрирование текста */
    color: #888; /* Серый цвет */
}

/* Нет результатов — текст "Ничего не найдено" */
.no-results {
    padding: 20px; /* Внутренние отступы */
    text-align: center; /* Центрирование текста */
    color: #888; /* Серый цвет */
}

/* ==================== СТРАНИЦА ИСПОЛНИТЕЛЯ ==================== */

/* ШАПКА ИСПОЛНИТЕЛЯ — блок с именем артиста */
.artist-header {
    padding: 15px 0; /* Внутренние отступы сверху и снизу */
    border-bottom: 1px solid #3a3a3a; /* Разделительная линия под шапкой */
    margin-bottom: 0px; /* Без отступа снизу */
}

/* Внутренний контейнер шапки артиста — два блока: слева (имя), справа (кнопки) */
.artist-header-inner {
    display: flex; /* Флекс-контейнер: два блока в одну линию */
    justify-content: space-between; /* Пространство между блоками */
    align-items: flex-start; /* Выравнивание блоков по верху */
    flex-wrap: wrap; /* Перенос блоков на новую строку при необходимости */
    gap: 20px; /* Промежуток между левым и правым блоком */
}

.artist-header-left {
    display: flex; /* Вертикальная колонка: имя и псевдонимы */
    flex-direction: column; /* Вертикальная компоновка */
    gap: 10px; /* Промежуток между именем и псевдонимами */
    flex: 1; /* Занимает всё доступное пространство */
    min-width: 200px; /* Минимальная ширина блока */
}

/* Строка с именем артиста — контейнер для h1 и input */
.artist-name-row {
    display: flex; /* Флекс-контейнер для h1 и input в одну линию */
    align-items: center; /* Вертикальное выравнивание по центру */
    gap: 10px; /* Промежуток между элементами строки */
    flex-wrap: wrap; /* Перенос элементов на новую строку при необходимости */
    padding: 4px 8px; /* Внутренние отступы для box-shadow */
    border-radius: 6px; /* Скруглённые углы */
    transition: box-shadow 0.15s ease; /* Плавное появление окантовки */
}

/* Режим редактирования артиста — box-shadow окантовка */
.artist-header.edit-mode .artist-name-row {
    box-shadow: 0 0 0 2px #ff9800; /* Оранжевая окантовка в режиме редактирования */
}

/* Светлая тема — окантовка в режиме редактирования */
body.light-theme .artist-header.edit-mode .artist-name-row {
    box-shadow: 0 0 0 2px #cb4b16; /* Рыже-красная окантовка для светлой темы */
}

.artist-header-right {
    display: flex; /* Правый блок шапки с кнопками */
    align-items: flex-start; /* Выравнивание кнопок по верху */
    flex-shrink: 1; /* Разрешить сжатие блока с кнопками */
}

.artist-name-container {
    display: flex; /* Контейнер для имени и инпута */
    align-items: center; /* Центрирование по вертикали */
}

/* Заголовок с именем артиста */
.artist-header h1 {
    color: #ff9800; /* Оранжевый цвет имени */
    font-weight: 700; /* Жирный шрифт */
    margin-bottom: 0; /* Без отступа снизу */
    font-size: 2rem; /* Крупный размер шрифта */
}

/* Псевдонимы исполнителя — под именем меньшим шрифтом */
.artist-aliases {
    color: #888; /* Серый цвет текста псевдонимов */
    font-size: 1rem; /* Меньший размер шрифта для псевдонимов */
    margin-top: 5px; /* Отступ сверху для отделения от имени */
}

/* === РЕДАКТИРОВАНИЕ ИМЕНИ АРТИСТА === */

/* Input для редактирования имени артиста — скрытое поле в normal-mode */
#artist-name-input {
    font-size: 2rem; /* Крупный размер шрифта как у h1 */
    font-family: inherit; /* Наследование шрифта от родителя */
    font-weight: inherit; /* Наследование жирности от h1 */
    color: #ff9800; /* Оранжевый цвет как у h1 артиста */
    background: transparent; /* Прозрачный фон — наследует фон строки */
    border: none; /* Border не нужен — окантовка добавляется через box-shadow на родителе */
    border-radius: 6px; /* Скруглённые углы */
    padding: 4px 8px; /* Внутренние отступы как у h1 */
    text-align: center; /* Центрирование текста как у h1 */
    outline: none; /* Убрать стандартную обводку браузера */
    cursor: text; /* Курсор в виде текстового курсора */
}

/* Светлая тема — Input имени артиста */
body.light-theme #artist-name-input {
    color: #cb4b16; /* Рыже-красный цвет для светлой темы */
}

/* === РЕДАКТИРОВАНИЕ ПСЕВДОНИМОВ АРТИСТА === */

/* Input для редактирования псевдонимов артиста */
body.light-theme #artist-aliases-input {
    background: transparent; /* Прозрачный фон */
    border-color: #cb4b16; /* Рыже-красная окантовка для светлой темы */
    color: #002b36; /* Тёмный цвет текста */
}

/* Базовые стили для textarea псевдонимов */
#artist-aliases-input {
    width: 100%; /* Полная ширина блока */
    max-width: 400px; /* Максимальная ширина textarea */
    min-height: 80px; /* Минимальная высота для удобного ввода */
    margin-top: 8px; /* Отступ сверху от имени артиста */
    font-size: 1rem; /* Размер шрифта для псевдонимов */
    font-family: inherit; /* Наследование шрифта */
    color: #ccc; /* Серый цвет текста псевдонимов */
    background: transparent; /* Прозрачный фон */
    border: 2px solid #ff9800; /* Оранжевая окантовка — видна только в edit-mode через box-shadow родителя */
    border-radius: 6px; /* Скруглённые углы */
    padding: 8px; /* Внутренние отступы */
    resize: vertical; /* Только вертикальное изменение размера */
    outline: none; /* Убрать стандартную обводку браузера */
}

/* === СПИСОК ПЕСЕН ИСПОЛНИТЕЛЯ === */
.songs-list {
    margin-top: 0px; /* Отступ сверху */
}

/* ЭЛЕМЕНТ СПИСКА ПЕСЕН — строка с названием и кнопками версий */
.song-item {
    padding: 3px 0; /* Отступ сверху и снизу */
    border-bottom: 1px solid #2a2a2a; /* Разделитель между песнями */
}

/* Последний элемент — убираем разделитель */
.song-item:last-child {
    border-bottom: none; /* Убрать разделитель у последней */
}

/* Внутренний контейнер элемента — название и кнопки в одну строку */
.song-item-inner {
    display: flex; /* Название и кнопки в одну строку */
    align-items: center; /* Вертикальное выравнивание по центру */
    gap: 10px; /* Промежуток между названием и кнопками */
    flex-wrap: wrap; /* Разрешить перенос кнопок */
}

/* ССЫЛКА на страницу песни */
.song-item a.song-link {
    color: #fff; /* Белый цвет ссылки */
    text-decoration: none; /* Без подчёркивания */
    font-size: 1.1rem; /* Размер шрифта */
}

.song-item a.song-link:hover {
    color: #ff9800; /* Оранжевый цвет при наведении */
}

.song-item .artist-link {
    color: #fff;
    text-decoration: none;
    font-size: 1.1rem;
}

.song-item .artist-link:hover {
    color: #ff9800;
}

/* КОНТЕЙНЕР МАЛЕНЬКИХ КНОПОК ВЕРСИЙ — в строке списка песен */
.versions-tabs-small {
    display: flex; /* Кнопки в одну строку */
    gap: 4px; /* Промежуток между кнопками */
    flex-wrap: wrap; /* Разрешить перенос */
}

/* МАЛЕНЬКАЯ КНОПКА ВЕРСИИ — номер версии в списке песен */
.version-tab-small {
    background-color: #2a2a2a; /* Фон кнопки */
    padding: 0px 4px; /* Внутренние отступы кнопки */
    border-radius: 3px; /* Скруглённые углы */
    border: 1px solid #3a3a3a; /* Граница кнопки */
    color: #888; /* Серый цвет текста */
    font-size: 0.5rem; /* Уменьшенный размер шрифта */
    text-decoration: none; /* Без подчёркивания */
    transition: all 0.2s; /* Плавный переход */
}

/* Маленькая кнопка при наведении */
.version-tab-small:hover {
    border-color: #ff9800; /* Оранжевая граница при наведении */
    color: #e0e0e0; /* Светлый цвет текста */
}

/* Активная маленькая кнопка версии */
.version-tab-small.active {
    background-color: #2a2a2a; /* Фон кнопки */
    border-color: #3a3a3a; /* Серая граница */
    color: #888; /* Серый цвет текста */
}

/* Активная маленькая кнопка при наведении */
.version-tab-small.active:hover {
    border-color: #ff9800; /* Оранжевая граница при наведении */
    color: #e0e0e0; /* Светлый цвет текста */
}

/* Маленькая вкладка версии в избранном */
.version-tab-small.is-favorite {
    border-color: transparent;
    box-shadow: 0 0 6px 2px rgba(233, 30, 99, 0.5);
}

body.light-theme .version-tab-small.is-favorite {
    border-color: transparent;
    box-shadow: 0 0 6px 2px rgba(233, 30, 99, 0.4);
}

/* ТЕКСТ "...ещё N" — признак скрытых версий */
.versions-more {
    color: #666; /* Серый цвет */
    font-size: 0.7rem; /* Уменьшенный размер */
}

/* БЛОК С ИНФО-ВЕРСИЯМИ — тональность, голоса под заголовком песни */
.versions-info {
    margin-top: 5px; /* Отступ сверху */
    display: flex; /* Flex-контейнер в строку */
    gap: 15px; /* Промежуток между элементами */
    flex-wrap: wrap; /* Разрешить перенос */
}

/* Текстовые элементы инфо-блока */
.versions-info span {
    color: #888; /* Серый цвет */
    font-size: 0.85rem; /* Уменьшенный размер */
}

/* Тональность — оранжевый акцент */
.versions-info .key {
    color: #ff9800; /* Оранжевый цвет тональности */
}

/* Количество голосов — синий */
.versions-info .votes {
    color: #2196f3; /* Синий цвет голосов */
}

/* ==================== СТРАНИЦА ПЕСНИ ==================== */

/* ==================== ШАПКА СТРАНИЦЫ ПЕСНИ ==================== */

/* ШАПКА СТРАНИЦЫ ПЕСНИ — верхний блок с названием и кнопками */
.song-page-header {
    padding: 15px 0; /* Внутренние отступы сверху и снизу */
    border-bottom: 1px solid #3a3a3a; /* Разделительная линия */
    margin-bottom: 0px; /* Без отступа снизу */
}

/* Внутренняя обёртка шапки — два блока: слева (исполнитель+название), справа (кнопки) */
.song-page-header-inner {
    display: flex; /* Два блока в одну строку */
    justify-content: space-between; /* Пространство между блоками */
    align-items: flex-start; /* Выравнивание по верху */
    flex-wrap: wrap; /* Разрешить перенос на мобильных */
    gap: 20px; /* Промежуток между блоками */
}

/* ЛЕВЫЙ БЛОК ШАПКИ — ссылка на исполнителя, название песни, кнопки версий */
.song-header-left {
    display: flex; /* Колонка с названием и исполнителем */
    flex-direction: column; /* Вертикальная компоновка */
    gap: 10px; /* Промежуток между элементами */
    flex: 1; /* Занимает всё доступное пространство */
    min-width: 200px; /* Минимальная ширина */
}

/* СТРОКА С НАЗВАНИЕМ — название и инлайн-кнопки версий */
.song-title-row {
    display: flex; /* Флекс-контейнер: название и кнопки версий в одну линию */
    align-items: center; /* Вертикальное выравнивание по центру */
    gap: 10px; /* Промежуток между названием и кнопками версий */
    flex-wrap: wrap; /* Перенос кнопок версий на новую строку при необходимости */
}

/* Заголовок с названием песни — h1, всегда виден в normal-mode */
.song-title-row h1 {
    color: #fff; /* Белый цвет заголовка */
    font-size: 1.4rem; /* Размер шрифта названия песни */
    font-weight: inherit; /* Наследование жирности от родителя */
    margin: 0; /* Без внешних отступов */
    padding: 4px 8px; /* Внутренние отступы для box-shadow */
    border-radius: 6px; /* Скруглённые углы */
    transition: box-shadow 0.15s ease; /* Плавное появление окантовки */
}

/* Input для редактирования названия песни — скрыт в normal-mode, показан в edit-mode */
#song-title-input {
    display: none; /* Скрыт по умолчанию */
    font-size: 1.4rem; /* Такой же размер шрифта как у h1 */
    font-family: inherit; /* Наследование шрифта от родителя */
    font-weight: inherit; /* Наследование жирности от h1 */
    color: #fff; /* Белый цвет текста */
    background: transparent; /* Прозрачный фон */
    border: none; /* Border не нужен — окантовка через box-shadow */
    border-radius: 6px; /* Скруглённые углы */
    padding: 4px 8px; /* Внутренние отступы как у h1 */
    min-width: 200px; /* Минимальная ширина поля ввода */
    outline: none; /* Убрать стандартную обводку браузера */
}

/* Светлая тема — заголовок песни */
body.light-theme .song-title-row h1 {
    color: #002b36; /* Тёмный цвет заголовка для светлой темы */
}

/* Светлая тема — input названия песни */
body.light-theme #song-title-input {
    color: #002b36; /* Тёмный цвет текста input */
    border: none; /* Border не нужен */
}

/* Светлая тема — box-shadow input в режиме редактирования */
body.light-theme .song-title-row.edit-mode #song-title-input {
    box-shadow: 0 0 0 2px #cb4b16; /* Рыже-красная окантовка */
}

/* Режим редактирования — скрываем h1, показываем input */
.song-title-row.edit-mode h1 {
    display: none; /* Скрываем h1 когда показываем input */
}

.song-title-row.edit-mode #song-title-input {
    display: block; /* Показываем input в режиме редактирования */
    box-shadow: 0 0 0 2px #ff9800; /* Оранжевая окантовка в режиме редактирования */
}

/* КНОПКИ ВЕРСИЙ ИНЛАЙН — в одной строке с названием */
.versions-tabs-inline {
    display: flex; /* Кнопки версий в одну линию */
    gap: 6px; /* Промежуток между кнопками */
    flex-wrap: wrap; /* Разрешить перенос кнопок на новую строку */
}

/* ССЫЛКА на страницу исполнителя — под названием песни */
.song-header-left .artist-link {
    color: #ff9800; /* Оранжевый цвет ссылки на исполнителя */
    text-decoration: none; /* Без подчёркивания */
    font-size: 1rem; /* Размер шрифта */
}

/* Ссылка на исполнителя при наведении */
.song-header-left .artist-link:hover {
    text-decoration: underline; /* Подчёркивание при наведении */
}

/* ПРАВЫЙ БЛОК ШАПКИ — кнопки укулеле, капо, редактирования */
.song-header-right {
    display: flex; /* Блок с кнопками-индикаторами */
    align-items: flex-start; /* Выравнивание по верху */
    flex-shrink: 1; /* Разрешить сжатие при нехватке места */
}

/* ==================== КНОПКИ-ИНДИКАТОРЫ (Укулеле, Капо) ==================== */

/* КОНТЕЙНЕР КНОПОК-ИНДИКАТОРОВ — группа кнопок укулеле, капо, редактирования */
.indicator-buttons {
    display: flex; /* Кнопки в один ряд */
    gap: 8px; /* Промежуток между кнопками */
    flex-wrap: wrap; /* Разрешить перенос на мобильных */
}

/* Левый блок с кнопками Укулеле и Капо */
.indicator-left {
    display: flex; /* Кнопки в один ряд */
    gap: 8px; /* Промежуток между кнопками */
}

/* Правый блок с кнопками Отмена и Редактировать */
.indicator-right {
    display: flex; /* Кнопки в один ряд */
    gap: 8px; /* Промежуток между кнопками */
}

/* КНОПКА-ИНДИКАТОР — кнопка укулеле, капо или редактирования */
.indicator-btn {
    display: flex; /* Flex-контейнер для иконки и текста */
    align-items: center; /* Вертикальное выравнивание по центру */
    gap: 6px; /* Промежуток между иконкой и значением */
    background-color: #2a2a2a; /* Тёмно-серый фон кнопки */
    border: 1px solid #3a3a3a; /* Серая граница */
    border-radius: 6px; /* Скруглённые углы */
    padding: 6px 10px; /* Внутренние отступы */
    cursor: pointer; /* Курсор-указатель */
    color: #888; /* Серый цвет иконки/текста */
    font-size: 0.85rem; /* Размер шрифта */
    transition: all 0.2s; /* Плавный переход всех состояний */
    position: relative; /* Для позиционирования badge */
}

/* Кнопка-индикатор при наведении */
.indicator-btn:hover {
    border-color: #ff9800; /* Оранжевая граница при наведении */
    color: #e0e0e0; /* Светлый цвет при наведении */
}

/* ИКОНКА внутри кнопки-индикатора */
.indicator-icon {
    width: 16px; /* Ширина иконки */
    height: 16px; /* Высота иконки */
}

/* БОКС С НОМЕРОМ ЛАДА — маленький бейдж с цифрой (1, 2, ... 12) справа от иконки капо */
.capo-value-box {
    display: inline-flex; /* Строчно-блочный элемент */
    align-items: center; /* Центрирование по вертикали */
    justify-content: center; /* Центрирование по горизонтали */
    min-width: 18px; /* Минимальная ширина бокса с номером */
    height: 18px; /* Высота бокса */
    font-size: 0.7rem; /* Уменьшенный размер шрифта */
    background-color: #1a1a1a; /* Тёмный фон бокса */
    border-radius: 3px; /* Скруглённые углы */
    margin-left: 4px; /* Отступ слева от иконки */
    color: inherit; /* Наследует цвет кнопки */
}

/* Активная кнопка-индикатор (например, укулеле отмечен или капо установлен) */
.indicator-btn.active {
    background-color: #4caf50; /* Зелёный фон активной кнопки */
    border-color: #4caf50; /* Зелёная граница активной кнопки */
}

/* Кнопка плейлиста - версия в плейлистах */
.indicator-btn.in-playlist {
    background-color: #4caf50;
    border-color: #4caf50;
}

/* Badge на кнопке (счётчик) */
.btn-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    background-color: #ff9800;
    color: #1a1a1a;
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

body.light-theme .btn-badge {
    background-color: #cb4b16;
    color: #fff;
}

/* ==================== ВЫПАДАЮЩЕЕ МЕНЮ КАПОДАСТРА ==================== */

/* ОБЁРТКА-РАЗВЕРТЫВАТЕЛЬ — контейнер для кнопки капо и выпадающего меню */
.capo-dropdown {
    position: relative; /* Относительное позиционирование для абсолютного меню */
}

/* ВЫПАДАЮЩЕЕ МЕНЮ — появляется под кнопкой при клике */
.capo-menu {
    display: none; /* Скрыто по умолчанию */
    position: absolute; /* Абсолютное позиционирование */
    top: 100%; /* Начинается сразу под кнопкой */
    right: 0; /* Прижато к правому краю кнопки */
    background-color: #2a2a2a; /* Тёмно-серый фон меню */
    border: 1px solid #3a3a3a; /* Серая граница */
    border-radius: 6px; /* Скруглённые углы */
    padding: 5px 0; /* Внутренние отступы (по вертикали) */
    min-width: 120px; /* Минимальная ширина меню */
    z-index: 100; /* Поверх других элементов */
    box-shadow: 0 4px 12px rgba(0,0,0,0.3); /* Тень меню */
}

/* Меню в открытом состоянии */
.capo-menu.show {
    display: block; /* Показывается при добавлении класса show */
}

/* СЕТКА МЕНЮ — вертикальный столбец: кнопка "Без" + ряд с ладами 1-12 */
.capo-grid {
    display: flex; /* Вертикальная компоновка */
    flex-direction: column; /* Столбиком */
    gap: 4px; /* Промежуток между элементами */
    padding: 8px; /* Внутренние отступы */
}

/* ПУНКТ МЕНЮ — кнопка "Без" или номер лада (1-12) */
.capo-item {
    display: flex; /* Flex-контейнер */
    align-items: center; /* Центрирование по вертикали */
    justify-content: center; /* Центрирование по горизонтали */
    padding: 8px; /* Внутренние отступы кнопки */
    background: none; /* Без фона */
    border: 1px solid #3a3a3a; /* Серая граница */
    border-radius: 4px; /* Скруглённые углы */
    color: #888; /* Серый цвет текста */
    cursor: pointer; /* Курсор-указатель */
    font-size: 0.85rem; /* Размер шрифта */
}

/* Пункт меню при наведении */
.capo-item:hover {
    border-color: #ff9800; /* Оранжевая граница при наведении */
    color: #e0e0e0; /* Светлый цвет при наведении */
}

/* Выбранный пункт меню (текущий лад) */
.capo-item.selected {
    border-color: #ff9800; /* Оранжевая граница выбранной */
    color: #ff9800; /* Оранжевый текст выбранной */
    background-color: transparent; /* Прозрачный фон */
}

/* Широкая кнопка — кнопка "Без" (первый ряд) */
.capo-item-wide {
    width: 100%; /* Полная ширина (кнопка "Без") */
}

/* РЯД С ЛАДАМИ — горизонтальный ряд с кнопками 1-12 (по 3 в ряд) */
.capo-row {
    display: flex; /* Горизонтальный ряд кнопок */
    flex-wrap: wrap; /* Разрешить перенос */
    gap: 4px; /* Промежуток между кнопками */
}

/* Кнопка лада внутри ряда — каждая занимает 1/3 ширины */
.capo-row .capo-item {
    flex: 1 0 calc(33.33% - 4px); /* 3 кнопки в ряд */
    min-width: 0; /* Минимальная ширина 0 */
}

/* ==================== ВЫПАДАЮЩЕЕ МЕНЮ ТРАНСПОЗИЦИИ ==================== */

.transpose-dropdown {
    position: relative;
}

.transpose-menu {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    background-color: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    padding: 5px 0;
    min-width: 120px;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.transpose-menu.show {
    display: block;
}

.transpose-grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
}

.transpose-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    background: none;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    color: #888;
    cursor: pointer;
    font-size: 0.85rem;
}

.transpose-item:hover {
    border-color: #ff9800;
    color: #e0e0e0;
}

.transpose-item.selected {
    border-color: #ff9800;
    color: #ff9800;
    background-color: transparent;
}

body.light-theme .transpose-menu {
    background-color: #fdf6e3;
    border-color: #d4c4a8;
}

body.light-theme .transpose-item {
    border-color: #d4c4a8;
    color: #586e75;
}

body.light-theme .transpose-item:hover {
    border-color: #cb4b16;
    color: #cb4b16;
}

body.light-theme .transpose-item.selected {
    border-color: #cb4b16;
    color: #cb4b16;
    background-color: rgba(203, 75, 22, 0.1);
}

.ukulele-verified-btn.readonly {
    cursor: default;
    pointer-events: none;
}

/* ==================== ПРАВЫЙ БЛОК ШАПКИ ==================== */

.song-header-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.edit-controls {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.save-edit-btn {
    background-color: #4caf50 !important;
    border-color: #4caf50 !important;
    color: white !important;
}

.save-edit-btn:hover {
    background-color: #45a049 !important;
}

/* ==================== КНОПКИ ВЕРСИЙ ==================== */

/* КНОПКА ВЕРСИИ — переключатель между версиями песни в шапке */
.version-tab {
    background-color: #2a2a2a; /* Фон кнопки */
    padding: 0px 4px; /* Внутренние отступы кнопки */
    border-radius: 4px; /* Скруглённые углы */
    cursor: pointer; /* Курсор-указатель */
    border: 1px solid #3a3a3a; /* Граница кнопки */
    color: #888; /* Серый цвет текста кнопки */
    transition: all 0.2s; /* Плавный переход всех состояний */
    font-size: 0.75rem; /* Уменьшенный размер шрифта */
    align-items: baseline; /* Выравнивание по низу строки */
}

/* Кнопка версии при наведении */
.version-tab:hover {
    border-color: #ff9800; /* Оранжевая граница при наведении */
    color: #e0e0e0; /* Светлый цвет текста при наведении */
}

/* Активная кнопка версии — текущая выбранная версия */
.version-tab.active {
    background-color: transparent; /* Прозрачный фон активной кнопки */
    border-color: #ff9800; /* Оранжевая граница активной кнопки */
    color: #ff9800; /* Оранжевый текст активной кнопки */
}

/* Вкладка версии в избранном */
.version-tab.is-favorite {
    border-color: transparent;
    box-shadow: 0 0 6px 2px rgba(233, 30, 99, 0.5);
}

body.light-theme .version-tab.is-favorite {
    border-color: transparent;
    box-shadow: 0 0 6px 2px rgba(233, 30, 99, 0.4);
}

/* ==================== КОНТЕНТ ПЕСНИ ==================== */

/* БЛОК С ТЕКСТОМ ПЕСНИ */
.song-content {
    background-color: #2a2a2a; /* Фон блока с текстом */
    border-radius: 8px; /* Скруглённые углы */
    padding: 30px; /* Внутренние отступы */
    overflow-x: auto; /* Горизонтальная прокрутка при переполнении */
}

/* ТЕКСТ ПЕСНИ — pre с аккордами и словами */
.song-content pre {
    font-family: 'Courier New', monospace; /* Моноширинный шрифт для аккордов */
    font-size: 1rem; /* Размер шрифта */
    line-height: 1.8; /* Высота строки */
    white-space: pre-wrap; /* Перенос строк как в исходном тексте */
    word-wrap: break-word; /* Перенос длинных слов */
    color: #e0e0e0; /* Цвет текста */
}

/* Блок текста в режиме редактирования (contentEditable) */
.song-content.edit-mode {
    border: 2px solid #ff9800; /* Оранжевая рамка в режиме редактирования */
    padding: 28px; /* Чуть меньшие отступы, чтобы компенсировать толщину рамки */
}

/* Светлая тема - текст песни в режиме редактирования */
body.light-theme .song-content.edit-mode {
    border-color: #cb4b16; /* Рыже-красная рамка */
}

/* Текст песни в режиме редактирования */
.song-content.edit-mode pre {
    outline: none; /* Убираем контур браузера вокруг редактируемой области */
    cursor: text; /* Курсор ввода текста */
}

/* БЕЙДЖ ИСТОЧНИКА — "Источник: ..." под текстом песни */
.source-badge {
    display: inline-block; /* Блочно-строчный элемент */
    background-color: #333; /* Фон badge */
    padding: 5px 10px; /* Внутренние отступы */
    border-radius: 4px; /* Скруглённые углы */
    font-size: 0.85rem; /* Уменьшенный размер шрифта */
    color: #888; /* Серый цвет текста */
    margin-top: 15px; /* Отступ сверху */
}

/* БЛОК ВЕРСИИ — обёртка для song-content и source-badge */
.version-content {
    margin-top: 20px; /* Отступ сверху блока версии */
}

/* ==================== СТРАНИЦА ОШИБКИ ==================== */

/* БЛОК ОШИБКИ — страница 404 или другая ошибка */
.error-page {
    text-align: center; /* Центрирование текста */
    padding: 80px 20px; /* Внутренние отступы */
}

/* Заголовок ошибки — "404" */
.error-page h1 {
    color: #ff9800; /* Оранжевый цвет 404 */
    font-size: 3rem; /* Крупный размер */
    margin-bottom: 20px; /* Отступ снизу */
}

/* Описательный текст ошибки */
.error-page p {
    color: #888; /* Серый цвет текста */
    margin-bottom: 30px; /* Отступ снизу */
}

/* ==================== СТРАНИЦА ИСПОЛНИТЕЛЕЙ ==================== */

/* СТРАНИЦА ВСЕХ ИСПОЛНИТЕЛЕЙ — контейнер верхнего уровня */
.artists-page {
    position: relative; /* Для позиционирования алфавитной навигации */
}

/* ШАПКА СТРАНИЦЫ ИСПОЛНИТЕЛЕЙ — "Все исполнители" */
.artists-header {
    text-align: center; /* Центрирование текста */
    padding: 10px 0; /* Отступ сверху и снизу */
    border-bottom: 1px solid #3a3a3a; /* Разделительная линия */
    margin-bottom: 0px; /* Отступ от списка */
}

/* Заголовок "Все исполнители" */
.artists-header h1 {
    color: #ff9800; /* Оранжевый цвет заголовка */
    margin-bottom: 0; /* Без отступа снизу */
    font-size: 2rem; /* Крупный размер шрифта */
}

/* КОНТЕНТ СТРАНИЦЫ ИСПОЛНИТЕЛЕЙ */
.artists-content {
    position: relative; /* Для позиционирования навигации */
}

/* КОНТЕЙНЕР СПИСКА ИСПОЛНИТЕЛЕЙ — с отступом справа под боковую навигацию */
.artists-list-container {
    padding-right: 50px; /* Место для алфавитной навигации (десктоп) */
}

/* СЕКЦИЯ ПО БУКВЕ — группа исполнителей на одну букву (А, Б, В...) */
.artist-letter-section {
    margin-bottom: 10px; /* Отступ между секциями */
}

/* ЗАГОЛОВОК БУКВЫ — большая буква (А, Б, В...) с липким позиционированием */
.letter-title {
    color: #ff9800; /* Оранжевый цвет буквы */
    font-size: 1.2rem; /* Размер шрифта */
    margin-bottom: 5px; /* Отступ снизу */
    padding: 5px 0; /* Отступ сверху и снизу */
    border-bottom: 1px solid #2a2a2a; /* Разделитель */
    position: sticky; /* Прилипание при скролле */
    top: 0; /* Прилипание к верху */
    background-color: #1a1a1a; /* Фон под прилипающим элементом */
    z-index: 10; /* Поверх других элементов */
}

/* СПИСОК ИСПОЛНИТЕЛЕЙ одной буквы */
.artist-letter-list {
    display: flex; /* Flex-контейнер в строку */
    flex-wrap: wrap; /* Разрешить перенос */
    gap: 10px; /* Промежуток между элементами */
}

/* ЭЛЕМЕНТ ИСПОЛНИТЕЛЯ — имя + счётчик песен */
.artist-item {
    display: inline-flex; /* Блочно-строчный элемент */
    gap: 5px; /* Промежуток между именем и счётчиком */
}

/* ССЫЛКА на страницу исполнителя */
.artist-item .artist-link {
    color: #fff; /* Белый цвет ссылки */
    text-decoration: none; /* Без подчёркивания */
    font-size: 1rem; /* Размер шрифта */
    transition: color 0.2s; /* Плавный переход цвета */
}

/* Ссылка при наведении */
.artist-item .artist-link:hover {
    color: #ff9800; /* Оранжевый цвет при наведении */
}

/* СЧЁТЧИК ПЕСЕН — "(12)" серым цветом рядом с именем */
.artist-item .artist-song-count {
    color: #666; /* Серый цвет счётчика */
    font-size: 0.85rem; /* Уменьшенный размер */
}

/* ==================== АЛФАВИТНАЯ НАВИГАЦИЯ ==================== */

/* БОКОВАЯ АЛФАВИТНАЯ НАВИГАЦИЯ — буквы A-Z справа от списка (десктоп) */
.alphabet-nav {
    position: fixed; /* Фиксированное позиционирование */
    right: 20px; /* Отступ от правого края */
    top: 50%; /* Центр по вертикали */
    transform: translateY(-50%); /* Точное центрирование */
    display: flex; /* Flex-контейнер в столбик */
    flex-direction: column; /* Столбиком */
    gap: 2px; /* Промежуток между буквами */
    z-index: 100; /* Поверх других элементов */
    background-color: rgba(26, 26, 26, 0.9); /* Полупрозрачный фон */
    padding: 10px 5px; /* Внутренние отступы */
    border-radius: 8px; /* Скруглённые углы */
}

/* БУКВА в боковой навигации */
.alphabet-letter {
    color: #888; /* Серый цвет ссылки */
    text-decoration: none; /* Без подчёркивания */
    font-size: 0.8rem; /* Уменьшенный размер шрифта */
    padding: 2px 4px; /* Внутренние отступы */
    border-radius: 3px; /* Скруглённые углы */
    transition: all 0.2s; /* Плавный переход */
}

/* Буква при наведении */
.alphabet-letter:hover {
    color: #ff9800; /* Оранжевый цвет при наведении */
    background-color: #3a3a3a; /* Фон при наведении */
}

/* ==================== MOBILE AZ PICKER ==================== */

/* МОБИЛЬНАЯ КНОПКА AZ — круглая кнопка "A-z" справа на мобильных */
.mobile-az-button {
    position: fixed; /* Фиксированное позиционирование */
    right: 10px; /* Отступ от правого края */
    top: 50%; /* Центр по вертикали */
    transform: translateY(-50%); /* Точное центрирование */
    width: 40px; /* Ширина кнопки */
    height: 40px; /* Высота кнопки */
    background-color: rgba(26, 26, 26, 0.9); /* Полупрозрачный тёмный фон */
    border-radius: 20px; /* Круглая кнопка */
    z-index: 100; /* Поверх других элементов */
    display: none; /* Скрыта на десктопе */
    justify-content: center; /* Центрирование иконки по горизонтали */
    align-items: center; /* Центрирование иконки по вертикали */
    opacity: 0.7; /* Полупрозрачность */
    cursor: pointer; /* Курсор-указатель */
    user-select: none; /* Запретить выделение текста */
    touch-action: none; /* Запретить жесты браузера */
}

/* Текст внутри мобильной кнопки AZ */
.mobile-az-button span {
    color: #ff9800; /* Оранжевый цвет буквы */
    font-size: 0.9rem; /* Размер шрифта */
    font-weight: bold; /* Жирный шрифт */
    pointer-events: none; /* Игнорировать клики */
}

/* Мобильная кнопка AZ при нажатии */
.mobile-az-button:active {
    opacity: 1; /* Полная непрозрачность при нажатии */
}

/* ОВЕРЛЕЙ — полупрозрачный тёмный фон, появляется при открытии пикера */
.az-picker-overlay {
    display: none; /* Скрыт по умолчанию */
    position: fixed; /* Фиксированное позиционирование на весь экран */
    top: 0; /* Прижат к верху */
    left: 0; /* Прижат к левому краю */
    right: 0; /* Растянут до правого края */
    bottom: 0; /* Растянут до низа */
    background-color: rgba(26, 26, 26, 0.5); /* Полупрозрачный тёмный оверлей */
    backdrop-filter: blur(10px); /* Размытие фона за оверлеем */
    -webkit-backdrop-filter: blur(10px); /* То же для Safari */
    z-index: 250; /* Поверх других элементов */
    justify-content: center; /* Центрирование контейнера по горизонтали */
    align-items: center; /* Центрирование контейнера по вертикали */
}

/* КОНТЕЙНЕР ПИКЕРА — всплывающее окно с буквами/цифрами */
.az-picker-container {
    position: relative; /* Относительное для внутренних абсолютных элементов */
    width: 100%; /* Полная ширина */
    height: 100%; /* Полная высота */
    background-color: rgba(30, 30, 30, 0.95); /* Почти непрозрачный тёмный фон */
    overflow: visible; /* Видимое переполнение */
    opacity: 0; /* Начальная прозрачность для анимации */
    transform: scale(0.95); /* Начальный масштаб для анимации */
    transition: opacity 0.3s ease, transform 0.3s ease; /* Плавные переходы */
}

@media (min-width: 501px) {
    .az-picker-container {
        max-width: 500px; /* Ограничение ширины на десктопе */
        border-radius: 20px; /* Скруглённые углы */
    }
}

/* Контейнер пикера в открытом состоянии */
.az-picker-container.visible {
    opacity: 1; /* Полная непрозрачность */
    transform: scale(1); /* Нормальный масштаб */
}

/* ТРЕК ПРОКРУТКИ — горизонтальный контейнер для 3 страниц (А-Ж, З-О, П-Я + цифры) */
.az-picker-track {
    display: flex; /* Горизонтальная прокрутка страниц */
    width: 300%; /* 3 страницы */
    height: calc(100% - 60px); /* Высота за вычетом табов */
    transition: transform 0.3s ease; /* Плавная прокрутка */
    touch-action: none; /* Запретить жесты браузера */
    user-select: none; /* Запретить выделение */
}

/* СТРАНИЦА ПИКЕРА — одна треть трека (А-Ж, З-О, П-Я или цифры) */
.az-page {
    width: 33.333%; /* Каждая страница — треть */
    height: 100%; /* Полная высота */
    flex-shrink: 0; /* Запретить сжатие */
    display: flex; /* Flex-контейнер */
    justify-content: center; /* Центрирование сетки */
    align-items: center; /* Центрирование сетки */
    padding: 20px; /* Внутренние отступы */
    box-sizing: border-box; /* Ширина включает padding */
    touch-action: none; /* Запретить жесты браузера */
}

/* СЕТКА БУКВ — 5 колонок внутри страницы */
.az-grid {
    display: grid; /* Сетка букв 5 колонок */
    grid-template-columns: repeat(5, 1fr); /* 5 равных колонок */
    gap: 12px; /* Промежуток между кнопками */
    width: 100%; /* Полная ширина */
    max-width: 350px; /* Максимальная ширина */
}

/* КНОПКА БУКВЫ — квадратная кнопка с одной буквой */
.az-letter {
    display: flex; /* Flex-контейнер */
    justify-content: center; /* Центрирование текста */
    align-items: center; /* Центрирование текста */
    width: 100%; /* Полная ширина ячейки */
    aspect-ratio: 1; /* Квадратная ячейка */
    background-color: #3a3a3a; /* Тёмно-серый фон */
    border-radius: 12px; /* Скруглённые углы */
    color: #fff; /* Белый цвет текста */
    font-size: 1.3rem; /* Размер буквы */
    font-weight: 500; /* Средняя жирность */
    text-decoration: none; /* Без подчёркивания */
    transition: background-color 0.2s ease, transform 0.1s ease; /* Плавные переходы */
}

/* Кнопка буквы при нажатии */
.az-letter:active {
    background-color: #ff9800; /* Оранжевый фон при нажатии */
    color: #1a1a1a; /* Тёмный текст */
    transform: scale(0.95); /* Уменьшение при нажатии */
}

/* Неактивная кнопка буквы (нет исполнителей на эту букву) */
.az-letter.disabled {
    opacity: 0.3; /* Прозрачность для пустых букв */
    pointer-events: none; /* Клики игнорируются */
}

/* Подсвеченная кнопка буквы (текущая буква) */
.az-letter.highlighted {
    border: 2px solid #ff9800; /* Оранжевая рамка */
    background-color: #3a3a3a; /* Тёмно-серый фон */
    color: #fff; /* Белый текст */
}

/* СЕТКА ЦИФР — 3 колонки (0-9) */
.az-numbers-grid {
    display: grid; /* Сетка цифр 3 колонки */
    grid-template-columns: repeat(3, 1fr); /* 3 равных колонки */
    grid-template-rows: repeat(4, 1fr); /* 4 ряда */
    gap: 12px; /* Промежуток между кнопками */
    width: 100%; /* Полная ширина */
    max-width: 280px; /* Максимальная ширина */
}

/* Пустая ячейка для "0" — визуально скрыта ( grid placeholder) */
.az-zero-cell {
    visibility: hidden; /* Скрытая ячейка для "0" */
}

/* ТАБЫ ПИКЕРА — кнопки-переключатели страниц внизу (А-Ж | З-О | П-Я + цифры) */
.az-tabs {
    position: absolute; /* Абсолютное позиционирование */
    bottom: 0; /* Прижат к низу */
    left: 0; /* Прижат к левому краю */
    right: 0; /* Растянут до правого края */
    height: 60px; /* Высота табов */
    display: flex; /* Flex-контейнер */
    justify-content: center; /* Центрирование кнопок */
    align-items: center; /* Центрирование по вертикали */
    gap: 30px; /* Промежуток между табами */
    background-color: rgba(20, 20, 20, 0.9); /* Полупрозрачный тёмный фон */
}

/* ОДИН ТАБ — неактивный таб */
.az-tab {
    color: #888; /* Серый цвет неактивного таба */
    font-size: 0.95rem; /* Размер шрифта */
    cursor: pointer; /* Курсор-указатель */
    padding: 5px 10px; /* Внутренние отступы */
    transition: color 0.2s ease; /* Плавный переход цвета */
}

/* Активный таб — текущая страница */
.az-tab.active {
    color: #ff9800; /* Оранжевый цвет активного таба */
    font-weight: 600; /* Жирный шрифт */
}

/* КНОПКА ЗАКРЫТИЯ — крестик × в правом верхнем углу пикера */
.az-close {
    position: absolute; /* Абсолютное позиционирование */
    top: 15px; /* Отступ от верха */
    right: 15px; /* Отступ от правого края */
    width: 36px; /* Ширина кнопки */
    height: 36px; /* Высота кнопки */
    background-color: #3a3a3a; /* Тёмно-серый фон */
    border-radius: 50%; /* Круглая кнопка */
    color: #fff; /* Белый цвет иконки */
    font-size: 1.5rem; /* Размер иконки × */
    line-height: 1; /* Высота строки */
    display: flex; /* Flex-контейнер */
    justify-content: center; /* Центрирование иконки */
    align-items: center; /* Центрирование иконки */
    cursor: pointer; /* Курсор-указатель */
    z-index: 10; /* Поверх других элементов */
}

/* Кнопка закрытия при нажатии */
.az-close:active {
    background-color: #ff9800; /* Оранжевый фон при нажатии */
    color: #1a1a1a; /* Тёмный цвет иконки */
}

/* ==================== АДАПТИВНОСТЬ ==================== */

/* АДАПТИВНОСТЬ: ПЛАНШЕТ И ДЕСКТОП (от 769px и шире) */
@media (min-width: 769px) {
    /* Два столбца для списков песен и исполнителей — только на экранах шире 768px */
    .songs-list.two-columns {
        columns: 2; /* Два столбца на десктопе */
        column-gap: 30px; /* Промежуток между столбцами */
    }

    .songs-list.two-columns .song-item {
        break-inside: avoid; /* Не разрывать элемент между столбцами */
    }

    .artists-list-container.two-columns {
        columns: 2; /* Два столбца на десктопе */
        column-gap: 30px; /* Промежуток между столбцами */
    }

    .artists-list-container.two-columns .artist-letter-section {
        break-inside: avoid; /* Не разрывать секцию между столбцами */
    }

    /* Боковая алфавитная навигация — видна только на десктопе (от 769px) */
    .alphabet-nav {
        display: flex; /* Показываем навигацию на десктопе */
    }

    /* Мобильная кнопка AZ — скрыта на десктопе */
    .mobile-az-button {
        display: none !important; /* Скрываем, показываем только на мобильных через @media */
    }
}

/* АДАПТИВНОСТЬ: МОБИЛЬНЫЕ (до var(--mobile-breakpoint)) */
@media (max-width: 768px) {
    /* На мобильных убираем правый отступ, т.к. нет боковой навигации */
    .artists-list-container {
        padding-right: 0;
    }

    /* Боковая алфавитная навигация скрыта на мобильных */
    .alphabet-nav {
        display: none;
    }

    /* Мобильная кнопка AZ — показана на мобильных */
    .mobile-az-button {
        display: flex;
    }
}

/* АДАПТИВНОСТЬ: МОБИЛЬНЫЕ УСТРОЙСТВА */
@media (max-width: 768px) {
    /* Поле поиска: уменьшенные размеры для мобильных */
    #search-input {
        font-size: 1rem;
        padding: 12px 45px 12px 15px;
    }

    /* Контейнер: уменьшенные боковые отступы на мобильных (15px вместо 20px) */
    .container {
        padding: 15px; /* Уменьшенные отступы: 15px вместо 20px */
    }

    /* Поисковая панель: уменьшенные отступы сверху/снизу (15px вместо 20px) */
    .top-search {
        padding: 15px 0; /* Уменьшенные отступы: 15px вместо 20px */
    }

    /* Шапка исполнителя: увеличенный верхний отступ для визуального разделения на мобильных */
    .artist-header {
        padding: 25px 0; /* Увеличен отступ сверху для лучшего разделения на мобильных */
    }

    /* Заголовок исполнителя: уменьшенный шрифт на мобильных (1.5rem вместо 2rem) */
    .artist-header h1 {
        font-size: 1.5rem; /* Уменьшенный размер: 1.5rem вместо 2rem */
    }

    /* Заголовок песни: уменьшенный шрифт на мобильных (1.2rem вместо 1.4rem) */
    .song-page-header h1 {
        font-size: 1.2rem; /* Уменьшенный размер: 1.2rem вместо 1.4rem */
    }

    /* Заголовок 404: уменьшенный размер на мобильных (2rem вместо 3rem) */
    .error-page h1 {
        font-size: 2rem; /* Уменьшенный размер: 2rem вместо 3rem */
    }
}

/* ==================== СВЕТЛАЯ ТЕМА ==================== */

/* ОСНОВНЫЕ ПАРАМЕТРЫ СВЕТЛОЙ ТЕМЫ */
body.light-theme {
    background-color: #fdf6e3; /* Светло-бежевый фон страницы */
    color: #657b83; /* Цвет основного текста */
}

/* Основной контейнер в светлой теме */
body.light-theme .container {
    background-color: #eee8d5; /* Светлый фон контейнера */
}

/* Хедер в светлой теме */
body.light-theme .header-bar {
    background-color: #fdf6e3; /* Светлый фон хедера */
    border-bottom: 1px solid #ddd; /* Светлая разделительная линия */
}

/* Поле поиска в светлой теме */
body.light-theme .header-search .search-container #search-input {
    background-color: #eee8d5; /* Светлый фон поля ввода */
    border-color: #ddd; /* Светлая граница */
    color: #657b83; /* Цвет текста */
}

/* Поле поиска в фокусе (светлая тема) */
body.light-theme .header-search .search-container #search-input:focus {
    border-color: #cb4b16; /* Рыже-красная граница при фокусе */
    color: #002b36; /* Тёмный цвет текста при фокусе */
}

/* Поле поиска не в фокусе (светлая тема) */
body.light-theme .header-search .search-container #search-input:not(:focus) {
    color: #93a1a1; /* Серый цвет текста не в фокусе */
}

/* Плейсхолдер поля поиска (светлая тема) */
body.light-theme .header-search .search-container #search-input::placeholder {
    color: #93a1a1; /* Серый цвет плейсхолдера */
}

/* Кнопка очистки в светлой теме */
body.light-theme .header-search .search-container #clear-search {
    color: #93a1a1; /* Серый цвет крестика */
}

/* Кнопка очистки при наведении (светлая тема) */
body.light-theme .header-search .search-container #clear-search:hover {
    color: #cb4b16; /* Рыже-красный при наведении */
}

/* Кнопка темы в светлой теме */
body.light-theme .settings-btn {
    color: #657b83; /* Цвет кнопки темы */
}

/* Кнопка темы при наведении в светлой теме */
body.light-theme .settings-btn:hover {
    background-color: transparent; /* Без фона при наведении */
    color: #657b83; /* Цвет при наведении */
}

/* Заголовок страницы исполнителя в светлой теме */
body.light-theme .artist-header h1 {
    color: #cb4b16; /* Рыже-красный цвет заголовка */
}

body.light-theme .song-item a.song-link {
    color: #002b36; /* Тёмный цвет ссылки */
}

body.light-theme .song-item a.song-link:hover {
    color: #cb4b16; /* Рыже-красный при наведении */
}

body.light-theme .song-item .artist-link {
    color: #002b36;
}

body.light-theme .song-item .artist-link:hover {
    color: #cb4b16;
}

body.light-theme .song-item {
    border-bottom-color: #ddd; /* Светлый разделитель */
}

body.light-theme .song-content {
    background-color: #eee8d5; /* Светлый фон блока текста */
}

body.light-theme .song-content pre {
    color: #657b83; /* Цвет текста песни */
}

body.light-theme .source-badge {
    background-color: #ddd; /* Светло-серый фон badge */
    color: #586e75; /* Серый цвет текста */
}

body.light-theme .version-tab-small {
    background-color: #eee8d5; /* Светлый фон кнопки версии */
    border-color: #ddd; /* Светлая граница */
    color: #657b83; /* Серый цвет текста */
}

body.light-theme .version-tab-small:hover {
    border-color: #cb4b16; /* Рыже-красная граница при наведении */
    color: #002b36; /* Тёмный цвет текста */
}

body.light-theme .version-tab {
    background-color: #eee8d5; /* Светлый фон кнопки версии */
    border-color: #ddd; /* Светлая граница */
    color: #657b83; /* Серый цвет текста */
}

body.light-theme .version-tab:hover {
    border-color: #cb4b16; /* Рыже-красная граница при наведении */
    color: #002b36; /* Тёмный цвет текста */
}

body.light-theme .version-tab.active {
    background-color: transparent; /* Прозрачный фон активной */
    border-color: #cb4b16; /* Рыже-красная граница */
    color: #cb4b16; /* Рыже-красный текст */
}

body.light-theme .artist-link {
    color: #cb4b16; /* Рыже-красный цвет ссылки */
}

body.light-theme .song-page-header {
    border-bottom-color: #ddd; /* Светлый разделитель */
}

body.light-theme .song-page-header h1 {
    color: #002b36; /* Тёмный цвет заголовка */
}

body.light-theme .indicator-btn {
    background-color: #eee8d5; /* Светлый фон кнопки-индикатора */
    border-color: #ddd; /* Светлая граница */
    color: #657b83; /* Серый цвет иконки */
}

body.light-theme .indicator-btn:hover {
    border-color: #cb4b16; /* Рыже-красная граница при наведении */
    color: #002b36; /* Тёмный цвет при наведении */
}

body.light-theme .indicator-btn.active {
    background-color: #859900; /* Зелёный фон активной кнопки */
    border-color: #859900; /* Зелёная граница */
}

body.light-theme .indicator-btn.in-playlist {
    background-color: #859900;
    border-color: #859900;
}

body.light-theme .capo-value-box {
    background-color: #ddd; /* Светлый фон бокса с номером */
}

body.light-theme .capo-menu {
    background-color: #eee8d5; /* Светлый фон меню */
    border-color: #ddd; /* Светлая граница */
}

body.light-theme .capo-item {
    border-color: #ddd; /* Светлая граница */
    color: #657b83; /* Серый цвет текста */
}

body.light-theme .capo-item:hover {
    border-color: #cb4b16; /* Рыже-красная граница при наведении */
    color: #002b36; /* Тёмный цвет текста */
}

body.light-theme .capo-item.selected {
    background-color: #cb4b16; /* Рыже-красный фон выбранной */
    border-color: #cb4b16; /* Рыже-красная граница */
    color: #fdf6e3; /* Светлый текст */
}

body.light-theme .artists-header {
    border-bottom-color: #ddd; /* Светлый разделитель */
}

body.light-theme .artists-header h1 {
    color: #cb4b16; /* Рыже-красный заголовок */
}

body.light-theme .artist-letter-section .letter-title {
    color: #cb4b16; /* Рыже-красный цвет буквы */
    border-bottom-color: #ddd; /* Светлый разделитель */
    background-color: #eee8d5; /* Светлый фон прилипающего заголовка */
}

body.light-theme .artist-item .artist-link {
    color: #002b36; /* Тёмный цвет ссылки */
}

body.light-theme .artist-item .artist-link:hover {
    color: #cb4b16; /* Рыже-красный при наведении */
}

body.light-theme .artist-item .artist-song-count {
    color: #586e75; /* Серый цвет счётчика */
}

body.light-theme .result-item:hover {
    background-color: #e0dbcd; /* Светлый фон при наведении */
}

body.light-theme .result-item a {
    color: #002b36; /* Тёмный цвет ссылки */
}

body.light-theme .result-item .item-title {
    color: #002b36; /* Тёмный цвет основного текста */
}

body.light-theme .result-item .item-subtitle {
    color: #657b83; /* Серый цвет подзаголовка */
}

body.light-theme .result-item .context {
    color: #586e75; /* Серый цвет контекста */
}

body.light-theme .result-section {
    border-bottom-color: #ddd; /* Светлый разделитель секций */
}

body.light-theme .result-section-title {
    color: #586e75; /* Серый цвет заголовка секции */
}

body.light-theme #results {
    background-color: #eee8d5; /* Светлый фон блока результатов */
    border-color: #ddd; /* Светлая граница */
    box-shadow: 0 10px 30px rgba(0,0,0,0.15); /* Мягкая тень */
}

body.light-theme .alphabet-nav {
    background-color: rgba(253, 246, 227, 0.9); /* Полупрозрачный светлый фон */
}

body.light-theme .alphabet-letter {
    color: #586e75; /* Серый цвет буквы */
}

body.light-theme .alphabet-letter:hover {
    color: #cb4b16; /* Рыже-красный при наведении */
    background-color: #ddd; /* Светлый фон при наведении */
}

body.light-theme .az-picker-overlay {
    background-color: rgba(200, 200, 200, 0.5); /* Полупрозрачный серый оверлей */
}

body.light-theme .az-picker-container {
    background-color: rgba(253, 246, 227, 0.95); /* Почти непрозрачный светлый фон */
}

body.light-theme .mobile-az-button {
    background-color: rgba(253, 246, 227, 0.9); /* Полупрозрачный светлый фон */
}

body.light-theme .az-letter {
    background-color: #ddd; /* Светлый фон кнопки буквы */
    color: #657b83; /* Серый цвет текста */
}

body.light-theme .az-letter:hover {
    background-color: #cb4b16; /* Рыже-красный фон при наведении */
    color: #fdf6e3; /* Светлый текст */
}

body.light-theme .az-letter:active {
    background-color: #cb4b16; /* Рыже-красный фон при нажатии */
    color: #fdf6e3; /* Светлый текст */
}

body.light-theme .error-page h1 {
    color: #cb4b16; /* Рыже-красный цвет 404 */
}

body.light-theme .error-page p {
    color: #586e75; /* Серый цвет текста */
}

body.light-theme .versions-info span {
    color: #586e75; /* Серый цвет информации о версиях */
}

body.light-theme .versions-info .key {
    color: #cb4b16; /* Рыже-красный цвет тональности */
}

body.light-theme .versions-info .votes {
    color: #268bd2; /* Синий цвет голосов */
}

body.light-theme .top-search {
    border-bottom-color: #ddd; /* Светлый разделитель */
    background-color: #fdf6e3; /* Светлый фон поиска */
}

/* === ХЕДЕР САЙТА — верхняя полоса с поиском и кнопкой темы === */
.header-bar {
    display: flex; /* Хедер в одну строку */
    align-items: center; /* Вертикальное выравнивание по центру */
    justify-content: space-between; /* Пространство между элементами */
    padding: 15px 20px; /* Внутренние отступы */
    background-color: #1a1a1a; /* Тёмный фон хедера */
    border-bottom: 1px solid #2a2a2a; /* Разделительная линия */
    position: sticky; /* Липкое позиционирование */
    top: 0; /* Прилипает к верху */
    z-index: 1001; /* Поверх других элементов */
}

/* БЛОК ПОИСКА в хедере */
.header-search {
    flex: 1; /* Занимает всё доступное пространство */
    display: flex; /* Flex-контейнер */
    justify-content: center; /* Центрирование поиска */
}

/* Контейнер поиска внутри хедера */
.header-search .search-container {
    position: relative; /* Для позиционирования кнопки очистки */
    width: 100%; /* Полная ширина */
    max-width: 600px; /* Максимальная ширина */
    margin: 0; /* Без внешних отступов */
}

/* ==================== HEADER ACTIONS (user + theme) ==================== */
.header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* ==================== USER SECTION ==================== */
.user-section {
    position: relative;
}

.user-btn {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    padding: 6px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
    position: relative;
}

.user-btn:hover {
    color: #ff9800;
}

.user-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}

.build-number {
    position: absolute;
    top: -4px;
    right: -4px;
    background: #ff9800;
    color: #1a1a1a;
    font-size: 9px;
    font-weight: 700;
    padding: 1px 4px;
    border-radius: 8px;
    line-height: 1.2;
}

.login-btn {
    background: #ff9800;
    color: #1a1a1a;
    border: none;
    border-radius: 16px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.2s;
    white-space: nowrap;
}

.login-btn:hover {
    background: #ffa726;
}

/* ==================== USER MENU DROPDOWN ==================== */
.user-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #252525;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    min-width: 180px;
    padding: 6px 0;
    display: none;
    z-index: 2000;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}

.user-menu.open {
    display: block;
}

.user-menu-header {
    padding: 8px 14px 10px;
    border-bottom: 1px solid #3a3a3a;
    margin-bottom: 4px;
}

.user-menu-name {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.user-menu-item {
    display: block;
    width: 100%;
    padding: 8px 14px;
    color: #ccc;
    text-decoration: none;
    font-size: 13px;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.user-menu-item:hover {
    background: #333;
    color: #fff;
}

.user-menu-logout-form {
    margin: 0;
    padding: 0;
}

.user-menu-logout {
    color: #e57373;
}

.user-menu-logout:hover {
    background: rgba(229,115,115,0.1);
    color: #ef5350;
}

body.light-theme .login-btn {
    background: #e65100;
    color: #fff;
}

body.light-theme .login-btn:hover {
    background: #fb8c00;
}

body.light-theme .user-menu {
    background: #fff;
    border-color: #ddd;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

body.light-theme .user-menu-header {
    border-color: #eee;
}

body.light-theme .user-menu-name {
    color: #222;
}

body.light-theme .user-menu-item {
    color: #555;
}

body.light-theme .user-menu-item:hover {
    background: #f5f5f5;
    color: #000;
}

body.light-theme .user-menu-logout {
    color: #c62828;
}

body.light-theme .user-menu-logout:hover {
    background: rgba(198,40,40,0.08);
    color: #b71c1c;
}

/* Светлая тема — кнопка переключения темы */
body.light-theme .settings-btn {
    color: #657b83; /* Серый цвет кнопки темы */
}

body.light-theme .settings-btn:hover {
    color: #cb4b16; /* Рыже-красный при наведении */
}

body.light-theme .settings-btn .sun-icon {
    display: block; /* Показывать иконку солнца */
}

body.light-theme .settings-btn .moon-icon {
    display: none; /* Скрыть иконку луны */
}

/* ==================== USER FEATURES BLOCK ==================== */
.user-features-block {
    background: #1e1e1e;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
}

body.light-theme .user-features-block {
    background: #f5f5f5;
    border-color: #ddd;
}

.user-feature-row {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.user-feature-block {
    flex: 1;
    min-width: 200px;
}

.user-feature-block h4 {
    font-size: 12px;
    font-weight: 600;
    color: #888;
    margin: 0 0 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

body.light-theme .user-feature-block h4 {
    color: #666;
}

.user-feature-block textarea {
    width: 100%;
    background: #252525;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #ccc;
    padding: 8px 10px;
    font-size: 13px;
    resize: vertical;
    box-sizing: border-box;
    font-family: inherit;
}

body.light-theme .user-feature-block textarea {
    background: #fff;
    border-color: #ccc;
    color: #333;
}

.user-capo-row,
.user-transpose-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: #aaa;
    font-size: 13px;
}

.user-feature-block input[type="number"] {
    background: #252525;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #fff;
    padding: 6px 10px;
    font-size: 14px;
    width: 70px;
    text-align: center;
}

body.light-theme .user-feature-block input[type="number"] {
    background: #fff;
    border-color: #ccc;
    color: #333;
}

.uf-save-btn {
    background: #ff9800;
    color: #1a1a1a;
    border: none;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 8px;
    transition: background 0.2s;
}

.uf-save-btn:hover {
    background: #ffa726;
}

.uf-reset-btn {
    background: transparent;
    color: #888;
    border: 1px solid #444;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 13px;
    cursor: pointer;
    margin-top: 8px;
    margin-left: 8px;
    transition: all 0.2s;
}

.uf-reset-btn:hover {
    color: #ccc;
    border-color: #666;
}

/* ==================== MODAL ==================== */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.7);
    z-index: 5000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-content {
    background: #252525;
    border: 1px solid #3a3a3a;
    border-radius: 10px;
    width: 90%;
    max-width: 400px;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}

body.light-theme .modal-content {
    background: #fff;
    border-color: #ddd;
}

.modal-content-wide {
    max-width: 700px;
}

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #3a3a3a;
}

body.light-theme .modal-header {
    border-color: #eee;
}

.modal-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}

body.light-theme .modal-header h3 {
    color: #111;
}

.modal-close {
    background: none;
    border: none;
    color: #888;
    font-size: 22px;
    cursor: pointer;
    padding: 0;
    line-height: 1;
    transition: color 0.2s;
}

.modal-close:hover {
    color: #fff;
}

.modal-body {
    padding: 14px 18px;
}

.modal-body textarea {
    width: 100%;
    background: #1a1a1a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #ddd;
    padding: 10px 12px;
    font-size: 13px;
    resize: vertical;
    box-sizing: border-box;
    font-family: monospace;
}

body.light-theme .modal-body textarea {
    background: #fafafa;
    border-color: #ccc;
    color: #222;
}

.modal-actions {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

/* ==================== PLAYLIST PANEL (dropdown) ==================== */

.playlist-panel {
    display: none;
    position: fixed;
    background-color: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    padding: 0;
    min-width: 250px;
    max-width: 320px;
    z-index: 1000;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
}

body.light-theme .playlist-panel {
    background-color: #fdf6e3;
    border-color: #d4c4a8;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

.playlist-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-bottom: 1px solid #3a3a3a;
}

body.light-theme .playlist-panel-header {
    border-color: #d4c4a8;
}

.playlist-panel-title {
    font-size: 13px;
    font-weight: 600;
    color: #ccc;
}

body.light-theme .playlist-panel-title {
    color: #586e75;
}

.playlist-panel-close {
    background: none;
    border: none;
    color: #888;
    font-size: 20px;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.playlist-panel-close:hover {
    color: #ff9800;
}

body.light-theme .playlist-panel-close {
    color: #666;
}

body.light-theme .playlist-panel-close:hover {
    color: #ff9800;
}

.playlist-panel-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 8px;
    max-height: 250px;
    overflow-y: auto;
}

.playlist-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
    gap: 8px;
}

.playlist-item:hover {
    background: #333;
}

body.light-theme .playlist-item {
    color: #586e75;
}

body.light-theme .playlist-item.active {
    background: rgba(233, 30, 99, 0.12);
}

body.light-theme .playlist-item-name {
    color: #586e75;
}

body.light-theme .playlist-item-check {
    color: #cb4b16;
}

body.light-theme .playlist-item:hover {
    background: rgba(0,0,0,0.06);
}

.playlist-item.active {
    background: rgba(255, 152, 0, 0.15);
}

body.light-theme .playlist-item.active {
    background: rgba(255, 152, 0, 0.1);
}

.playlist-item-name {
    flex: 1;
    font-size: 14px;
    color: #ccc;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.light-theme .playlist-item-name {
    color: #444;
}

.playlist-item-check {
    font-size: 14px;
    color: #ff9800;
    min-width: 20px;
    text-align: center;
}

.playlist-loading,
.playlist-empty,
.playlist-error {
    padding: 16px;
    text-align: center;
    color: #888;
    font-size: 13px;
}

.playlist-panel-create {
    display: flex;
    gap: 6px;
    padding: 10px 12px;
    border-top: 1px solid #3a3a3a;
}

body.light-theme .playlist-panel-create {
    border-color: #d4c4a8;
}

.playlist-panel-create input {
    flex: 1;
    background: #1a1a1a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #ccc;
    padding: 7px 10px;
    font-size: 13px;
}

body.light-theme .playlist-panel-create input {
    background: #eee8d5;
    border-color: #d4c4a8;
    color: #586e75;
}

.playlist-panel-create button {
    background: #ff9800;
    border: none;
    border-radius: 6px;
    color: #1a1a1a;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 12px;
    transition: background 0.15s;
}

.playlist-panel-create button:hover {
    background: #f57c00;
}

/* ==================== PLAYLIST MODAL (legacy) ==================== */
.playlist-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
    max-height: 300px;
    overflow-y: auto;
}

.playlist-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s;
    gap: 8px;
}

.playlist-item:hover {
    background: #333;
}

body.light-theme .playlist-item:hover {
    background: #f0f0f0;
}

.playlist-item-name {
    flex: 1;
    font-size: 14px;
    color: #ccc;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.light-theme .playlist-item-name {
    color: #444;
}

.playlist-item-check {
    font-size: 14px;
    color: #ff9800;
    min-width: 20px;
}

.playlist-create {
    display: flex;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #3a3a3a;
}

body.light-theme .playlist-create {
    border-color: #eee;
}

.playlist-create input {
    flex: 1;
    background: #1a1a1a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #ccc;
    padding: 7px 10px;
    font-size: 13px;
}

body.light-theme .playlist-create input {
    background: #fff;
    border-color: #ccc;
    color: #333;
}

.playlist-create button {
    background: #ff9800;
    color: #1a1a1a;
    border: none;
    border-radius: 6px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.playlist-create button:hover {
    background: #ffa726;
}

/* ==================== INDICATOR BUTTONS (FAVORITE, PLAYLIST, PERSONAL EDIT) ==================== */
#favorite-btn.active svg path {
    fill: #e53935;
    stroke: #e53935;
}

/* ==================== PUBLIC PLAYLIST PAGE ==================== */
.playlist-public-page {
    max-width: 700px;
    margin: 0 auto;
    padding: 20px;
}

.playlist-public-title {
    font-size: 28px;
    color: #ff9800;
    margin: 0 0 10px;
}

.playlist-public-desc {
    color: #888;
    font-size: 14px;
    margin: 0 0 8px;
}

.playlist-public-owner {
    color: #666;
    font-size: 12px;
    margin: 0 0 20px;
}

.songs-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.light-theme .playlist-public-title {
    color: #e65100;
}

body.light-theme .playlist-public-desc {
    color: #666;
}

.song-row {
    display: flex;
    align-items: center;
}

.song-row-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
    border-radius: 6px;
    text-decoration: none;
    color: #ccc;
    transition: background 0.15s;
    flex: 1;
}

.song-row-link:hover {
    background: #222;
}

body.light-theme .song-row-link {
    color: #333;
}

body.light-theme .song-row-link:hover {
    background: #f0f0f0;
}

.song-row-num {
    color: #555;
    font-size: 12px;
    min-width: 20px;
    text-align: right;
}

.song-row-title {
    color: #fff;
    font-weight: 500;
}

body.light-theme .song-row-title {
    color: #111;
}

.song-row-artist {
    color: #888;
    font-size: 13px;
    margin-left: auto;
}

body.light-theme .song-row-artist {
    color: #666;
}

.empty-playlist {
    color: #666;
    text-align: center;
    padding: 40px;
}

/* ==================== TRANSPOSE GRID ==================== */
.transpose-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 4px;
    padding: 4px;
}

.transpose-item {
    background: #333;
    border: 1px solid #444;
    border-radius: 5px;
    color: #aaa;
    font-size: 12px;
    padding: 5px 2px;
    cursor: pointer;
    text-align: center;
    transition: all 0.15s;
}

.transpose-item:hover {
    background: #444;
    color: #fff;
}

.transpose-item.selected {
    background: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
    font-weight: 700;
}

/* КНОПКА ПЕРЕКЛЮЧЕНИЯ ТЕМЫ — луна/солнце в хедере */
.settings-btn {
    background: none; /* Без фона */
    border: none; /* Без границы */
    color: #888; /* Серый цвет иконки */
    cursor: pointer; /* Курсор-указатель */
    padding: 8px; /* Внутренние отступы */
    border-radius: 50%; /* Круглая кнопка */
    display: flex; /* Flex-контейнер */
    align-items: center; /* Центрирование по вертикали */
    justify-content: center; /* Центрирование по горизонтали */
    transition: color 0.2s; /* Плавный переход цвета */
}

/* Кнопка темы при наведении */
.settings-btn:hover {
    color: #ff9800; /* Оранжевый при наведении */
}

/* Иконка солнца — показывается в светлой теме */
.settings-btn .sun-icon {
    display: none; /* Скрыта по умолчанию */
}

/* Иконка луны — показывается в тёмной теме (по умолчанию) */
.settings-btn .moon-icon {
    display: block; /* Показывается по умолчанию */
}

/* АДАПТИВНОСТЬ: ХЕДЕР — уменьшенные отступы на мобильных */
@media (max-width: 768px) {
    .header-bar {
        padding: 10px 15px; /* Уменьшенные отступы: 10px сверху/снизу вместо 15px, 15px слева/справа вместо 20px */
    }
}

/* ==================== ОТЛАДКА: ВСЕ БЛОКИ САЙТА ==================== */
/* Для включения отладки удалите /* перед нужным блоком и */ после него */
/*

.container { border: 2px dashed red; }
.song-page-header { border: 2px dashed orange; }
.song-page-header-inner { border: 2px dashed yellow; }
.song-header-left { border: 2px dashed lime; }
.song-title-row { border: 2px dashed green; }
.song-header-right { border: 2px dashed cyan; }
.indicator-buttons { border: 2px dashed blue; }
.indicator-left { border: 2px dashed violet; }
.indicator-right { border: 2px dashed magenta; }
.version-content { border: 2px dashed pink; }
.song-content { border: 2px dashed rose; }
.search-container { border: 2px dashed coral; }
#results { border: 2px dashed tomato; }
.header-bar { border: 2px dashed chocolate; }
.header-search { border: 2px dashed goldenrod; }
.page-content { border: 2px dashed khaki; }
.top-search { border: 2px dashed lemonchiffon; }

*/
/* ==================== ИЗБРАННОЕ ==================== */

.favorites-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 20px;
}

.favorites-page .page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 15px;
}

.favorites-page h1 {
    font-size: 1.5rem;
    color: #ff9800;
}

.sort-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.sort-label {
    color: #888;
    font-size: 0.9rem;
}

.sort-btn {
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    color: #888;
    padding: 6px 12px;
    cursor: pointer;
    font-size: 0.85rem;
    transition: all 0.2s;
}

.sort-btn:hover {
    border-color: #ff9800;
    color: #e0e0e0;
}

.sort-btn.active {
    background: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
}

.sort-dir-btn {
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    color: #888;
    padding: 6px 10px;
    cursor: pointer;
    font-size: 1rem;
    transition: all 0.2s;
}

.sort-dir-btn:hover {
    border-color: #ff9800;
    color: #ff9800;
}

.favorites-page .songs-list {
    margin-top: 0;
}

.favorites-page .song-item {
    padding: 10px 0;
}

.song-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.action-btn {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    position: relative;
    transition: color 0.2s;
}

.action-btn:hover {
    color: #ff9800;
}

.action-btn.active {
    color: #e91e63;
}

.action-btn.playlist-btn.active {
    color: #4caf50;
}

.btn-badge-small {
    position: absolute;
    top: -4px;
    right: -4px;
    background-color: #ff9800;
    color: #1a1a1a;
    font-size: 8px;
    font-weight: 700;
    min-width: 12px;
    height: 12px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 2px;
}

body.light-theme .btn-badge-small {
    background-color: #cb4b16;
    color: #fff;
}

.empty-state {
    text-align: center;
    padding: 40px 20px;
    color: #888;
}

.empty-state p {
    margin-bottom: 10px;
}

/* Light theme */
body.light-theme .sort-btn {
    background: #f5f5f5;
    border-color: #ddd;
    color: #666;
}

body.light-theme .sort-btn:hover {
    border-color: #cb4b16;
    color: #cb4b16;
}

body.light-theme .sort-btn.active {
    background: #cb4b16;
    border-color: #cb4b16;
    color: #fff;
}

body.light-theme .sort-dir-btn {
    background: #f5f5f5;
    border-color: #ddd;
    color: #666;
}

body.light-theme .sort-dir-btn:hover {
    border-color: #cb4b16;
    color: #cb4b16;
}

body.light-theme .action-btn {
    color: #666;
}

body.light-theme .action-btn:hover {
    color: #cb4b16;
}

body.light-theme .action-btn.active {
    color: #c7254e;
}

body.light-theme .action-btn.playlist-btn.active {
    color: #859900;
}

body.light-theme .favorites-page h1 {
    color: #cb4b16;
}

body.light-theme .empty-state {
    color: #666;
}

/* ==================== MOBILE MENU ==================== */

.hamburger-btn {
    display: none;
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: 8px;
}

.mobile-menu {
    display: none;
}

.mobile-menu-item {
    display: block;
    width: 100%;
    padding: 12px 16px;
    color: #e0e0e0;
    text-decoration: none;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-size: 1rem;
    transition: background-color 0.2s;
}

.mobile-menu-item:hover {
    background-color: #333;
}

.mobile-menu-form {
    margin: 0;
    padding: 0;
}

.mobile-menu-form .mobile-menu-item {
    width: 100%;
    background: none;
    border: none;
    text-align: left;
    font-family: inherit;
}

.user-mobile-name {
    font-weight: bold;
    color: #ff9800 !important;
}

.mobile-user-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    background-color: #252525;
    border-bottom: 1px solid #333;
}

.mobile-user-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.mobile-logout-form {
    margin: 0;
}

.mobile-logout-btn {
    background: none;
    border: 1px solid #555;
    color: #e0e0e0;
    padding: 6px 12px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.85rem;
    transition: all 0.2s;
}

.mobile-logout-btn:hover {
    background-color: #444;
    border-color: #777;
}

body.light-theme .mobile-user-row {
    background-color: #f0f0f0;
    border-bottom-color: #ddd;
}

body.light-theme .mobile-logout-btn {
    color: #002b36;
    border-color: #ccc;
}

body.light-theme .mobile-logout-btn:hover {
    background-color: #e0e0e0;
}

@media (max-width: 768px) {
    .hamburger-btn {
        display: block;
    }

    .header-actions {
        position: relative;
    }

    .user-section {
        display: none !important;
    }

    .settings-btn {
        display: none !important;
    }

    .mobile-menu {
        display: none;
        position: absolute;
        top: 100%;
        right: 0;
        background-color: #1a1a1a;
        border: 1px solid #333;
        border-radius: 8px;
        min-width: 200px;
        box-shadow: 0 4px 12px rgba(0,0,0,0.4);
        z-index: 1000;
        overflow: hidden;
    }

    .mobile-menu.open {
        display: block;
    }

    .mobile-menu-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 14px 16px;
        color: #e0e0e0;
        text-decoration: none;
        background: none;
        border: none;
        text-align: left;
        cursor: pointer;
        font-size: 1rem;
        font-family: inherit;
        transition: background-color 0.2s;
    }

    .mobile-menu-item:hover {
        background-color: #333;
    }

    .mobile-menu-icon {
        color: #666;
        font-size: 1.2rem;
    }

    .mobile-menu-form {
        margin: 0;
        padding: 0;
    }

    .mobile-logout-btn {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 14px 16px;
        color: #e0e0e0;
        background: none;
        border: none;
        text-align: left;
        cursor: pointer;
        font-size: 1rem;
        font-family: inherit;
        transition: background-color 0.2s;
    }

    .mobile-logout-btn:hover {
        background-color: #333;
    }

    .mobile-logout-btn svg {
        color: #666;
    }

    body.light-theme .mobile-menu {
        background-color: #fdf6e3;
        border-color: #93a1a1;
    }

    body.light-theme .mobile-menu-item {
        color: #002b36;
    }

    body.light-theme .mobile-menu-item:hover {
        background-color: #eee8d5;
    }

    body.light-theme .mobile-menu-icon {
        color: #93a1a1;
    }

    body.light-theme .mobile-logout-btn {
        color: #002b36;
    }

    body.light-theme .mobile-logout-btn:hover {
        background-color: #eee8d5;
    }

    body.light-theme .mobile-logout-btn svg {
        color: #93a1a1;
    }
}

/* ==================== ОТЛАДКА ==================== */
