* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
}

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

/* === ОСНОВНОЙ КОНТЕЙНЕР === */
.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: 0;
}

/* Режим 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-top: 0;
    padding-bottom: 3px; /* Отступ снизу */
    border-bottom: 1px solid #2a2a2a; /* Разделитель между песнями */
}

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

/* Внутренний контейнер элемента — название и кнопки в одну строку */
.song-item-inner {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 10px;
}

/* Иконка Яндекс Музыки в списке песен */
.ym-favorite-link {
    display: inline-flex;
    align-self: center;
    margin-left: 4px;
}

.ym-favorite-icon {
    height: 14px;
    width: auto;
}

.song-text {
    flex: 1;
    min-width: 0;
    overflow-wrap: normal;
    white-space: nowrap;
}

.song-actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ССЫЛКА на страницу песни */
.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;
}

.song-item.no-version {
    opacity: 0.5;
}

.song-item.no-version a {
    color: #888 !important;
}

.song-item.no-version a:hover {
    color: #ff9800 !important;
}

body.light-theme .song-item.no-version {
    opacity: 0.5;
}

body.light-theme .song-item.no-version a {
    color: #aaa !important;
}

body.light-theme .song-item.no-version a:hover {
    color: #cb4b16 !important;
}

/* КОНТЕЙНЕР МАЛЕНЬКИХ КНОПОК ВЕРСИЙ — в строке списка песен */
.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: 0px; /* Промежуток между элементами */
    flex: 1; /* Занимает всё доступное пространство */
    min-width: 200px; /* Минимальная ширина */
}

/* БЛОК С НАЗВАНИЕМ И ВЕРСИЯМИ — в одном ряду */
.song-title-and-versions {
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

/* СТРОКА С НАЗВАНИЕМ — название и инлайн-кнопки версий */
.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: 0; /* Без внутренних отступов */
    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; /* Размер шрифта */
    align-self: flex-start; /* Не растягивать по ширине */
}

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

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

/* ==================== COMPACT TOOLBAR ==================== */

.compact-toolbar {
    display: flex;
    align-items: center;
    background: transparent;
    border-radius: 6px;
    padding: 4px 6px;
    gap: 0;
    transition: box-shadow 0.2s;
}

.compact-toolbar:hover {
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}

body.light .compact-toolbar:hover {
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}

.compact-toolbar.toolbar-loading {
    visibility: hidden;
}

.compact-toolbar.collapsed {
    padding: 4px 6px;
}

.compact-toolbar.semi-collapsed:hover {
    box-shadow: none;
}

body.light-theme .compact-toolbar.semi-collapsed:hover {
    box-shadow: none;
}

.compact-toolbar .toolbar-buttons {
    display: flex;
    align-items: center;
    gap: 0;
    transition: all 0.3s ease;
}

.compact-toolbar.collapsed .toolbar-buttons {
    width: 0;
    overflow: hidden;
    opacity: 0;
}

.compact-toolbar .active-indicators {
    display: none;
}

.compact-toolbar.fully-collapsed .toolbar-buttons {
    width: 0;
    overflow: hidden;
    opacity: 0;
}

.compact-toolbar.fully-collapsed .active-indicators {
    visibility: hidden;
}

.compact-toolbar.fully-collapsed .active-indicators .indicator-separator {
    visibility: hidden;
}

.compact-toolbar.fully-collapsed .v13c-separator {
    visibility: hidden;
}

.glow-separator {
    display: none;
}

.compact-toolbar.fully-collapsed .glow-separator {
    display: block;
    margin: 0 0px;
}

.compact-toolbar.fully-collapsed .glow-separator.has-active-indicators {
    animation: separatorGlow 1.5s ease-in-out infinite;
}

.compact-toolbar.fully-collapsed .collapse-btn {
    margin-left: 0;
    background: transparent;
    border: none;
    color: #888;
    cursor: pointer;
    position: relative;
}

.compact-toolbar.fully-collapsed .collapse-btn.has-active-indicators {
    color: #ff9800;
    animation: arrowGlow 1.5s ease-in-out infinite;
}

body.light-theme .compact-toolbar.fully-collapsed .collapse-btn {
    color: #999;
}

body.light-theme .compact-toolbar.fully-collapsed .collapse-btn.has-active-indicators {
    color: #cb4b16;
    animation: arrowGlowLight 1.5s ease-in-out infinite;
}

.indicator-separator {
    width: 1px;
    height: 16px;
    background-color: #444;
    flex-shrink: 0;
    margin: 0 2px;
    transition: all 0.3s ease;
}

@keyframes separatorGlow {
    0%, 100% {
        box-shadow: 0 0 4px rgba(255, 152, 0, 0.3);
        background-color: rgba(255, 152, 0, 0.5);
    }
    50% {
        box-shadow: 0 0 12px rgba(255, 152, 0, 0.8);
        background-color: rgba(255, 152, 0, 1);
    }
}

body.light-theme .compact-toolbar.fully-collapsed .glow-separator.has-active-indicators {
    animation: separatorGlowLight 1.5s ease-in-out infinite;
}

@keyframes separatorGlowLight {
    0%, 100% {
        box-shadow: 0 0 4px rgba(203, 75, 22, 0.3);
        background-color: rgba(203, 75, 22, 0.5);
    }
    50% {
        box-shadow: 0 0 12px rgba(203, 75, 22, 0.8);
        background-color: rgba(203, 75, 22, 1);
    }
}

@keyframes arrowGlow {
    0%, 100% {
        text-shadow: 0 0 4px rgba(255, 152, 0, 0.5);
    }
    50% {
        text-shadow: 0 0 12px rgba(255, 152, 0, 1), 0 0 20px rgba(255, 152, 0, 0.8);
    }
}

@keyframes arrowGlowLight {
    0%, 100% {
        text-shadow: 0 0 4px rgba(203, 75, 22, 0.5);
    }
    50% {
        text-shadow: 0 0 12px rgba(203, 75, 22, 1), 0 0 20px rgba(203, 75, 22, 0.8);
    }
}

body.light .indicator-separator {
    background-color: #ddd;
}

/* Separator between buttons */
.v13c-separator {
    width: 1px;
    height: 16px;
    background-color: #444;
    flex-shrink: 0;
    margin: 0 0px;
}

body.light .v13c-separator {
    background-color: #ddd;
}

.compact-toolbar .indicator-btn {
    background: transparent;
    color: #888;
    padding: 5px 8px;
    border: none;
    border-radius: 4px;
    font-size: 12px;
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    transition: all 0.15s;
}

.compact-toolbar .indicator-btn:hover {
    color: #ff9800;
}

.compact-toolbar .indicator-btn.active {
    color: #ff9800;
}

.compact-toolbar .toolbar-chord-btn {
    padding: 4px 6px;
}

.compact-toolbar .toolbar-chord-btn svg {
    width: 18px;
    height: 18px;
    display: block;
}

.compact-toolbar .toolbar-chord-btn .chord-show {
    display: block;
}

.compact-toolbar .toolbar-chord-btn .chord-hide {
    display: none;
}

.compact-toolbar .toolbar-chord-btn.active .chord-show {
    display: block;
}

.compact-toolbar .toolbar-chord-btn.active .chord-hide {
    display: none;
}

.compact-toolbar .toolbar-chord-btn:not(.active) .chord-show {
    display: none;
}

.compact-toolbar .toolbar-chord-btn:not(.active) .chord-hide {
    display: block;
}

/* Make chord-show Am always gray (same as inactive state) */
.compact-toolbar .toolbar-chord-btn .chord-show text {
    fill: #888;
}

.compact-toolbar .indicator-btn.learning {
    color: #4da3ff;
}

.compact-toolbar .indicator-btn.in-playlist {
    background: transparent;
    border-color: #444;
    color: #888;
}

.compact-toolbar .indicator-btn.in-playlist:hover {
    color: #ff9800;
}

body.light-theme .compact-toolbar .indicator-btn.in-playlist {
    background: transparent;
    border-color: #ddd;
    color: #666;
}

body.light-theme .compact-toolbar .indicator-btn.in-playlist:hover {
    color: #cb4b16;
}

body.light .compact-toolbar .indicator-btn {
    color: #666;
}

body.light .compact-toolbar .indicator-btn:hover {
    color: #cb4b16;
}

body.light .compact-toolbar .indicator-btn.active {
    color: #cb4b16;
}

body.light .compact-toolbar .indicator-btn.learning {
    color: #268bd2;
}

.compact-toolbar .collapse-btn {
    background: transparent;
    border: none;
    border-radius: 4px;
    padding: 5px 8px;
    cursor: pointer;
    color: #888;
    font-size: 14px;
    transition: all 0.15s;
    flex-shrink: 0;
    margin-left: auto;
}

.compact-toolbar .collapse-btn:hover {
    color: #ff9800;
}

body.light .compact-toolbar .collapse-btn {
    color: #999;
}

body.light .compact-toolbar .collapse-btn:hover {
    color: #cb4b16;
}

body.light-theme .compact-toolbar {
    background: transparent;
    border: none;
    border-radius: 6px;
}

body.light-theme .compact-toolbar:hover {
    box-shadow: none;
}

body.light-theme .compact-toolbar.collapsed:hover {
    box-shadow: none;
}

body.light-theme .compact-toolbar .toolbar-buttons {
    background: transparent;
    border-radius: 6px;
    padding: 2px 4px;
}

body.light-theme .compact-toolbar .indicator-btn {
    color: #666;
}

body.light-theme .compact-toolbar .indicator-btn:hover {
    border-color: #aaa;
    color: #1a1a1a;
}

body.light-theme .compact-toolbar .indicator-btn.in-playlist {
    background: transparent;
    border-color: #ddd;
    color: #666;
}

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

/* КОНТЕЙНЕР КНОПОК-ИНДИКАТОРОВ — группа кнопок укулеле, капо, редактирования */
.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 */
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

.indicator-btn:focus,
.indicator-btn:focus-visible {
    outline: none;
    box-shadow: none;
}

.indicator-btn::-moz-focus-inner {
    border: 0;
}

/* Кнопка-индикатор при наведении */
.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: 11px;
    font-weight: 500;
    background-color: #1a1a1a;
    border-radius: 3px;
    margin-left: 4px;
    color: inherit;
}

body.light-theme .capo-value-box {
    background-color: #ddd;
}

/* Активная кнопка-индикатор */
.indicator-btn.active .capo-value-box {
    background-color: #ff9800;
    color: #1a1a1a;
}

body.light-theme .indicator-btn.active .capo-value-box {
    background-color: #cb4b16;
    color: #fff;
}

/* Избранное — только граница; Самое любимое — с заливкой */
.fav-btn svg {
    stroke: #888 !important;
}

.fav-btn.active svg {
    fill: none;
    stroke: #e91e63 !important;
}

.fav-btn.top-favorite svg {
    fill: #e91e63 !important;
    stroke: #e91e63 !important;
}

body.light-theme .fav-btn svg {
    stroke: #888 !important;
}

body.light-theme .fav-btn.active svg {
    fill: none;
    stroke: #c7254e !important;
}

body.light-theme .fav-btn.top-favorite svg {
    fill: #c7254e !important;
    stroke: #c7254e !important;
}

/* Кнопка плейлиста - версия в плейлистах */
.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;
    z-index: 100;
}

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 CONTROLS ==================== */

.transpose-controls {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    margin-left: -3px;
    margin-right: -3px;
}

.transpose-minus-btn,
.transpose-plus-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #888;
    font-size: 14px;
    padding: 2px 4px;
    transition: color 0.15s;
}

.transpose-minus-btn:hover,
.transpose-plus-btn:hover {
    color: #ff9800;
}

body.light-theme .transpose-minus-btn,
body.light-theme .transpose-plus-btn {
    color: #999;
}

body.light-theme .transpose-minus-btn:hover,
body.light-theme .transpose-plus-btn:hover {
    color: #cb4b16;
}

.transpose-value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 18px;
    background-color: #1a1a1a;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 500;
    color: #888;
    padding: 0 4px;
}

body.light-theme .transpose-value {
    background-color: transparent;
    color: #586e75;
}

.indicator-btn.active .transpose-value {
    background-color: #ff9800;
    color: #1a1a1a;
}

body.light-theme .indicator-btn.active .transpose-value {
    background-color: #cb4b16;
    color: #fff;
}

.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: transparent;
    border-radius: 8px; /* Скруглённые углы */
    padding: 2px; /* Внутренние отступы */
    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: var(--song-text-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-comment-display {
    background-color: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    padding: 10px 12px;
    margin-bottom: 10px;
}

.source-badge a {
    color: inherit;
    text-decoration: none;
}

.source-badge a:hover {
    color: #ff9800;
}

.song-comment-before {
    margin-bottom: 10px;
}

.song-comment-after {
    margin-top: 10px;
    margin-bottom: 0;
}

.song-comment-text {
    color: #ccc;
    font-size: 0.9rem;
    line-height: 1.4;
    white-space: pre-wrap;
    word-break: break-word;
}

.song-comment-edit-btn {
    background: none;
    border: none;
    color: #ff9800;
    font-size: 0.8rem;
    cursor: pointer;
    padding: 4px 0;
    margin-top: 6px;
}

.song-comment-edit-btn:hover {
    text-decoration: underline;
}

body.light-theme .song-comment-display {
    background-color: #f0ebe0;
    border-color: #ddd;
}

body.light-theme .song-comment-text {
    color: #333;
}

body.light-theme .song-comment-edit-btn {
    color: #cb4b16;
}

.comment-link {
    color: #ff9800;
    text-decoration: none;
    word-break: break-all;
    transition: color 0.2s, opacity 0.2s;
}

.comment-link:hover {
    color: #ffb74d;
    opacity: 0.9;
}

body.light-theme .comment-link {
    color: #cb4b16;
}

body.light-theme .comment-link:hover {
    color: #e55a1c;
    opacity: 0.9;
}

.comment-song-link {
    color: #4fc3f7;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s;
}

.comment-song-link:hover {
    color: #81d4fa;
    text-decoration: underline;
}

.comment-artist-link {
    color: #81c784;
    text-decoration: none;
    transition: color 0.2s;
}

.comment-artist-link:hover {
    color: #a5d6a7;
    text-decoration: underline;
}

body.light-theme .comment-song-link {
    color: #0277bd;
}

body.light-theme .comment-song-link:hover {
    color: #0288d1;
}

body.light-theme .comment-artist-link {
    color: #2e7d32;
}

body.light-theme .comment-artist-link:hover {
    color: #388e3c;
}

/* ПОДСВЕТКА АККОРДОВ */
.chord-highlight {
    color: var(--chord-color-dark, #f1c40f);
    font-weight: bold;
    text-shadow: 0 0 0px rgba(241, 196, 15, 0.5);
    position: relative;
}

body.light-theme .chord-highlight {
    color: var(--chord-color-light, #e74c3c);
    text-shadow: 0 0 0px rgba(231, 76, 60, 0.3);
}

/* БЛОК ВЕРСИИ — обёртка для 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; /* Цвет основного текста */
    --song-text-color-light: var(--user-song-text-color-light, #000);
    --chord-color-light: var(--user-chord-color-light, #e74c3c);
}

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

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

body.light-theme .header-nav-item:hover {
    background-color: rgba(0, 0, 0, 0.08);
}

/* Поле поиска в светлой теме */
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: var(--song-text-color-light, #000); /* Цвет текста песни */
}

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

body.light-theme .source-badge a:hover {
    color: #cb4b16;
}

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: transparent;
    border-color: transparent;
    color: #cb4b16;
}

body.light-theme .indicator-btn.learning {
    background-color: transparent;
    border-color: transparent;
    color: #268bd2;
}

body.light-theme .indicator-btn.active .capo-value-box {
    background-color: #cb4b16;
    color: #fff;
}

body.light-theme .indicator-btn.in-playlist {
    background-color: transparent;
    border-color: #ccc;
    color: #657b83;
}

body.light-theme .compact-toolbar {
    background: transparent;
    border: none;
    border-radius: 6px;
}

body.light-theme .compact-toolbar:hover {
    box-shadow: none;
}

body.light-theme .compact-toolbar.collapsed:hover {
    box-shadow: none;
}

body.light-theme .compact-toolbar .toolbar-buttons {
    background: transparent;
    border-radius: 6px;
    padding: 2px 4px;
}

body.light-theme .compact-toolbar .indicator-btn:hover {
    border-color: #aaa;
    color: #1a1a1a;
    background-color: transparent;
}

body.light-theme .compact-toolbar .indicator-btn.active {
    background-color: transparent;
    color: #cb4b16;
}

body.light-theme .compact-toolbar .indicator-btn.learning {
    background-color: transparent;
    color: #268bd2;
}

body.light-theme .compact-toolbar .indicator-btn.in-playlist {
    background-color: transparent;
}

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; /* Поверх других элементов */
    will-change: transform;
    transition: transform 0.3s ease;
}

/* Мобильная версия: скрытие хедера при скролле вниз */
@media (max-width: 768px) {
    .header-bar.hidden {
        transform: translateY(-100%);
    }
}

/* HEADER NAV */
.header-nav {
    display: flex;
    align-items: center;
    gap: 4px;
}

.header-nav-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
    transition: background-color 0.2s;
}

.header-nav-item:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.header-playlists-dropdown {
    position: relative;
}

.header-playlists-btn {
    background: none;
    border: none;
    cursor: pointer;
}

.favorites-btn,
.canplay-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border-radius: 8px;
    transition: background-color 0.2s;
}

.favorites-btn:hover,
.canplay-btn:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

body.light-theme .favorites-btn:hover,
body.light-theme .canplay-btn:hover {
    background-color: rgba(0, 0, 0, 0.08);
}

.header-playlists-menu {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    min-width: 200px;
    max-width: 300px;
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    z-index: 1002;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    margin-top: 4px;
}

.header-playlists-menu-item {
    display: block;
    padding: 10px 14px;
    color: #e0e0e0;
    text-decoration: none;
    border-bottom: 1px solid #3a3a3a;
    transition: background-color 0.2s;
}

.header-playlists-menu-item:last-child {
    border-bottom: none;
}

.header-playlists-menu-item:hover {
    background-color: rgba(255, 152, 0, 0.2);
    color: #ff9800;
}

.header-playlists-menu-empty {
    padding: 12px 14px;
    color: #888;
    font-size: 0.9rem;
}

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

body.light-theme .header-playlists-menu-item {
    color: #333;
    border-bottom-color: #d4c4a8;
}

body.light-theme .header-playlists-menu-item:hover {
    background-color: rgba(203, 75, 22, 0.1);
    color: #cb4b16;
}

body.light-theme .header-playlists-menu-empty {
    color: #666;
}

@media (max-width: 768px) {
    .header-nav {
        display: none;
    }
}

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

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

/* Невидимые сепараторы вокруг строки поиска */
.header-search::before,
.header-search::after {
    content: '';
    flex: 1;
    min-width: 20px;
}

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

/* ==================== 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;
    margin: 0;
    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: #fdf6e3;
    border-color: #d4c4a8;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}

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

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

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

body.light-theme .user-menu-item:hover {
    background: #efe0c4;
    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: #eee8d5;
    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 p {
    color: #ccc;
    line-height: 1.5;
}

.modal-body input[type="text"],
.modal-body input[type="number"],
.modal-body input {
    background: #1a1a1a;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    color: #e0e0e0;
    padding: 8px 12px;
    width: 100%;
    font-size: 14px;
}

.modal-body input:focus {
    outline: none;
    border-color: #ff9800;
}

.modal-body input::placeholder {
    color: #666;
}

body.light-theme .modal-body input[type="text"],
body.light-theme .modal-body input[type="number"],
body.light-theme .modal-body input {
    background: #eee8d5;
    border-color: #d4c9b8;
    color: #333;
}

body.light-theme .modal-body input:focus {
    border-color: #cb4b16;
}

body.light-theme .modal-body input::placeholder {
    color: #999;
}

body.light-theme .modal-body p {
    color: #333;
}

.modal-body strong {
    color: #ff9800;
}

body.light-theme .modal-body strong {
    color: #cb4b16;
}

.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: #e0d8c5;
    border-color: #ccc;
    color: #222;
}

.modal-actions {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    padding-bottom: 4px;
    justify-content: flex-end;
}

/* ==================== 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: 5000;
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    overflow: hidden;
    flex-direction: column;
    max-height: calc(100vh - 16px);
}

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;
    padding: 10px 12px;
    border-bottom: 1px solid #333;
    gap: 8px;
}

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;
    margin-left: auto;
}

.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-sort {
    background: none;
    border: 1px solid #3a3a3a;
    color: #888;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    transition: all 0.15s;
    font-family: inherit;
}

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

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

.playlist-panel-sort-count {
    background: none;
    border: 1px solid #3a3a3a;
    color: #888;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    transition: all 0.15s;
    font-family: inherit;
}

.playlist-panel-sort-count:hover {
    border-color: #ff9800;
    color: #ff9800;
}

.playlist-panel-sort-count.active {
    background-color: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
}

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

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

body.light-theme .playlist-panel-sort.active {
    background-color: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
}

body.light-theme .playlist-panel-sort-count {
    border-color: #d4c4a8;
    color: #888;
}

body.light-theme .playlist-panel-sort-count:hover {
    border-color: #ff9800;
    color: #ff9800;
}

body.light-theme .playlist-panel-sort-count.active {
    background-color: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
}

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

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

.playlist-panel .playlist-item:hover {
    background: transparent;
    border-color: #444;
}

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

body.light-theme .playlist-panel .playlist-item:hover {
    background: transparent;
    border-color: #d4c4a8;
}

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

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

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

.playlist-panel .playlist-item.active:hover {
    background: rgba(255, 152, 0, 0.15);
    border-color: transparent;
}

body.light-theme .playlist-panel .playlist-item.active {
    background: rgba(255, 152, 0, 0.15);
    color: #cb4b16;
}

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

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

.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: 0px 15px;
    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: #e0e0e0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

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

.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;
}

.ukulele-verified-btn.readonly {
    cursor: default;
    pointer-events: none;
}
/* КНОПКА ПЕРЕКЛЮЧЕНИЯ ТЕМЫ — луна/солнце в хедере */
.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; /* Показывается по умолчанию */
}

/* КНОПКА ПОКАЗА ПУСТЫХ — круг с точкой в хедере */
.show-empty-btn {
    background: none;
    border: 1px solid #3a3a3a;
    color: #ff9800;
    cursor: pointer;
    padding: 6px 10px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.show-empty-btn:hover {
    border-color: #ff9800;
}

.show-empty-btn.active {
    background-color: #f44336;
    border-color: #f44336;
    color: #fff;
}

.show-empty-btn.active:hover {
    background-color: #d32f2f;
    border-color: #d32f2f;
}

.show-empty-btn.active path,
.show-empty-btn.active circle {
    stroke: #ffeb3b;
}

body.light-theme .show-empty-btn {
    border-color: #ddd;
    color: #cb4b16;
}

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

body.light-theme .show-empty-btn.active {
    background-color: #d32f2f;
    border-color: #d32f2f;
    color: #fff;
}

body.light-theme .show-empty-btn.active:hover {
    background-color: #b71c1c;
    border-color: #b71c1c;
}

body.light-theme .show-empty-btn.active path {
    stroke: #ffeb3b;
}

body.light-theme .show-empty-btn.active circle {
    stroke: #ffeb3b;
}

/* АДАПТИВНОСТЬ: ХЕДЕР — уменьшенные отступы на мобильных */
@media (max-width: 768px) {
    .header-bar {
        padding: 10px 15px;
    }
    .header-search::before,
    .header-search::after {
        display: none;
    }
    .header-search {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        padding: 10px 15px;
        background-color: #1a1a1a;
        border-bottom: 1px solid #2a2a2a;
        z-index: 1000;
        pointer-events: none;
    }
    
    .header-search.mobile-search-open {
        display: flex;
        pointer-events: auto;
    }
    
    body.light-theme .header-search {
        background-color: #fdf6e3;
        border-bottom-color: #ddd;
    }
    
    .header-search .search-container {
        max-width: 100%;
    }
}

/* ==================== CHORD POPUP ==================== */
.chord-popup {
    position: fixed;
    z-index: 10000;
    background: #1e1e1e;
    border: 1px solid #3a3a3a;
    border-radius: 10px;
    padding: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
    display: none;
    font-family: inherit;
    --chord-dark: #fff;
    --chord-line: #888;
    --chord-barre: #e74c3c;
    --chord-barre-text: #fff;
    flex-direction: column;
    align-items: center;
}

.chord-popup.visible {
    display: flex;
}

.chord-popup-diagram {
    display: block;
}

.chord-popup-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.chord-popup-btn {
    background: transparent;
    border: none;
    color: var(--chord-dark, #fff);
    font-size: 1rem;
    cursor: pointer;
    padding: 2px 8px;
    opacity: 0.7;
}

.chord-popup-btn:hover {
    opacity: 1;
}

.chord-popup-counter {
    font-size: 0.7rem;
    color: var(--chord-line, #888);
    min-width: 30px;
    text-align: center;
}

.chord-popup-select {
    margin-left: 5px;
    background: #4CAF50;
    color: white;
    border: none;
    border-radius: 3px;
    padding: 2px 6px;
    font-size: 0.8rem;
    cursor: pointer;
}

.chord-popup-select:hover {
    background: #45a049;
}

.chord-popup-badge {
    font-size: 0.65rem;
    background: #2196F3;
    color: white;
    border-radius: 8px;
    padding: 1px 5px;
    position: absolute;
    top: -5px;
    right: -5px;
}

.chord-version-badge {
    font-size: 0.3rem;
    background: #2196F3;
    color: white;
    border-radius: 50%;
    padding: 0 2px;
    min-width: 7px;
    height: 7px;
    line-height: 7px;
    text-align: center;
    position: absolute;
    top: -3px;
    right: -4px;
    z-index: 10;
    font-weight: bold;
}

body.light-theme .chord-popup {
    background: #fdf6e3;
    border-color: #ddd;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
    --chord-dark: #333;
    --chord-line: #666;
    --chord-barre: #c0392b;
    --chord-barre-text: #fff;
}

.chord-popup svg {
    background: inherit;
}

body.light-theme .chord-popup svg line {
    stroke: var(--chord-line);
}

body.light-theme .chord-popup svg rect {
    fill: var(--chord-dark);
}

body.light-theme .chord-popup svg text {
    fill: var(--chord-dark);
}

body.light-theme .chord-popup svg circle {
    stroke: var(--chord-dark);
}

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

.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-controls .fav-filter-toggle {
    width: 26px;
    height: 26px;
    padding: 4px;
}

.sort-controls .fav-filter-toggle svg {
    fill: none;
    stroke: #e91e63 !important;
}

.sort-controls .fav-filter-toggle.top-favorite svg {
    fill: #e91e63;
    stroke: #e91e63 !important;
}

body.light-theme .sort-controls .fav-filter-toggle svg {
    stroke: #c7254e !important;
}

body.light-theme .sort-controls .fav-filter-toggle.top-favorite svg {
    fill: #c7254e;
}

.canplay-status-btn {
    background: none;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #ff9800;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    transition: all 0.2s;
}

.canplay-status-btn:hover {
    border-color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
}

.canplay-status-btn.can {
    color: #ff9800;
}

.canplay-status-btn.learning {
    color: #4da3ff;
}

body.light-theme .canplay-status-btn {
    border-color: #ccc;
}

body.light-theme .canplay-status-btn.can {
    color: #cb4b16;
}

body.light-theme .canplay-status-btn.learning {
    color: #268bd2;
}

body.light-theme .canplay-status-btn:hover {
    border-color: #cb4b16;
    background: rgba(203, 75, 22, 0.1);
}

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

.sort-btn {
    background: none;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #888;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    font-size: 0.8rem;
    font-weight: bold;
    transition: all 0.2s;
}

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

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

.sort-btn svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.order-toggle {
    background: none;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #888;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    transition: all 0.2s;
}

.order-toggle.visible {
    display: flex;
}

.order-toggle.active {
    background-color: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
}

.order-toggle:hover {
    border-color: #ff9800;
    color: #ff9800;
}

body.light-theme .order-toggle {
    border-color: #ccc;
}

body.light-theme .order-toggle:hover {
    border-color: #cb4b16;
    color: #cb4b16;
}

.artist-link.grey-artist {
    color: #666;
}

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

.title-sep {
    color: #666;
}

body.light-theme .title-sep {
    color: #999;
}

body.light-theme .artist-link.grey-artist {
    color: #999;
}

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

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

.song-order-artist-first,
.song-order-title-first {
    display: inline;
}

.page-header-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.page-header-left h1 {
    white-space: nowrap;
}

.inline-search-inline {
    display: flex;
    align-items: center;
    gap: 4px;
}

.inline-search-btn {
    background: var(--search-btn-bg, #2a2a2a);
    border: 1px solid var(--search-btn-border, #3a3a3a);
    border-radius: 4px;
    color: var(--search-btn-color, #888);
    padding: 6px 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: all 0.2s;
}

.inline-search-btn:hover {
    border-color: var(--accent-color, #ff9800);
    color: var(--accent-color, #ff9800);
}

.inline-search-field {
    display: inline-flex;
    align-items: center;
    position: relative;
}

.inline-search-input {
    background: var(--search-input-bg, #2a2a2a);
    border: 1px solid var(--search-input-border, #3a3a3a);
    border-radius: 4px;
    color: var(--search-input-color, #e0e0e0);
    padding: 6px 30px 6px 10px;
    font-size: 0.9rem;
    width: 180px;
    transition: border-color 0.2s;
}

.inline-search-input:focus {
    outline: none;
    border-color: var(--accent-color, #ff9800);
}

.inline-search-input::placeholder {
    color: var(--search-input-placeholder, #666);
}

.inline-search-clear {
    position: absolute;
    right: 6px;
    background: none;
    border: none;
    color: var(--search-clear-color, #666);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 2px 6px;
    line-height: 1;
}

.inline-search-clear:hover {
    color: var(--accent-color, #ff9800);
}

body.light-theme .inline-search-btn {
    background: #eee8d5;
    border-color: #d4c4a8;
    color: #cb4b16;
}

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

body.light-theme .inline-search-input {
    background: #eee8d5;
    border-color: #d4c4a8;
    color: #002b36;
}

body.light-theme .inline-search-input:focus {
    border-color: #cb4b16;
}

body.light-theme .inline-search-input::placeholder {
    color: #857b72;
}

body.light-theme .inline-search-clear {
    color: #857b72;
}

body.light-theme .inline-search-clear:hover {
    color: #cb4b16;
}

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

body.light-theme .sort-controls .fav-filter-toggle {
    border-color: #ccc;
}

.pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin: 30px 0;
    padding: 20px;
}

.pagination-info {
    color: #888;
    font-size: 0.9rem;
}

.pagination-controls {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: center;
}

.pagination-btn {
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    color: #888;
    padding: 8px 14px;
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.2s;
}

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

.pagination-btn.active {
    background: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
    font-weight: bold;
}

.pagination-ellipsis {
    color: #666;
    padding: 0 4px;
}

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

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

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

body.light-theme .pagination-info {
    color: #666;
}

body.light-theme .pagination-ellipsis {
    color: #999;
}

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

.favorites-page .song-item {
    padding-top: 0;
    padding-bottom: 3px;
}

@media (max-width: 600px) {
    .song-text {
        white-space: normal;
        overflow-wrap: break-word;
        word-wrap: break-word;
    }
}

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

.action-btn {
    background: none;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #888;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    position: relative;
    transition: all 0.2s;
    -webkit-tap-highlight-color: transparent;
    outline: none;
}

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

.action-btn:focus,
.action-btn:focus-visible {
    outline: none;
    box-shadow: none;
}

.action-btn::-moz-focus-inner {
    border: 0;
}

.action-btn.sort-btn {
    font-size: 11px;
    font-weight: 600;
}

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

body.light-theme .action-btn.sort-btn.active {
    background-color: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a !important;
}

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

.action-btn.fav-btn svg {
    stroke: #888 !important;
}

.action-btn.fav-btn.active svg {
    fill: none;
    stroke: #e91e63 !important;
}

.action-btn.fav-btn.top-favorite svg {
    fill: #e91e63 !important;
    stroke: #e91e63 !important;
}

body.light-theme .action-btn.fav-btn svg {
    stroke: #888 !important;
}

body.light-theme .action-btn.fav-btn.active svg {
    fill: none;
    stroke: #c7254e !important;
}

body.light-theme .action-btn.fav-btn.top-favorite svg {
    fill: #c7254e !important;
    stroke: #c7254e !important;
}

.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: none;
    border-color: #ccc;
    color: #888;
}

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 .action-btn {
    border-color: #ccc;
    color: #666;
}

body.light-theme .action-btn:hover {
    border-color: #cb4b16;
    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;
}

/* ==================== PLAYLISTS PAGE ==================== */

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

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

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

.page-actions {
    display: flex;
    gap: 8px;
}

.playlists-page .action-btn,
.playlist-page .action-btn {
    padding: 6px 10px;
}

.edit-mode-bar {
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    padding: 10px 15px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.edit-mode-bar span {
    color: #ff9800;
}

@media (pointer: coarse) {
    .action-btn {
        border-color: #3a3a3a !important;
    }
    .action-btn:hover,
    .action-btn:active {
        color: unset !important;
    }
}

@media (pointer: coarse) {
    body.light-theme .action-btn {
        border-color: #ccc !important;
    }
    body.light-theme .action-btn:hover,
    body.light-theme .action-btn:active {
        color: unset !important;
    }
}

.btn-cancel {
    background: none;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    color: #888;
    padding: 4px 12px;
    cursor: pointer;
}

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

.playlists-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.playlist-item {
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    padding: 0px 15px;
    transition: all 0.2s;
    cursor: pointer;
}

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

.playlist-item.drag-over-top {
    border-top: 3px solid #ff9800;
    padding-top: 11px;
    margin-top: -2px;
}

.playlist-item.drag-over-bottom {
    border-bottom: 3px solid #ff9800;
    padding-bottom: 11px;
    margin-bottom: -2px;
}

body.light-theme .playlist-item.drag-over-top {
    border-top-color: #cb4b16;
}

body.light-theme .playlist-item.drag-over-bottom {
    border-bottom-color: #cb4b16;
}

.playlist-item-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.playlist-link {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-grow: 1;
    width: 100%;
    padding: 4px 0;
    color: #e0e0e0;
    text-decoration: none;
    cursor: pointer;
}

.playlist-link:hover {
    color: #ff9800;
}

.playlist-icon {
    color: #888;
}

.playlist-name {
    font-weight: 500;
}

.playlist-count {
    color: #888;
    font-size: 0.85rem;
}

.playlist-edit-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    padding-left: 12px;
}

.edit-icon-btn {
    background: none;
    border: none;
    color: #888;
    cursor: pointer;
    padding: 4px;
    border-radius: 3px;
    transition: all 0.2s;
}

.edit-icon-btn:hover {
    color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
}

.drag-handle {
    color: #888;
    cursor: grab;
    padding: 4px;
    font-size: 1rem;
}

.drag-handle:active {
    cursor: grabbing;
}

body.light-theme .drag-handle {
    color: #999;
}

body.light-theme .drag-handle:hover {
    color: #cb4b16;
}

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

body.light-theme .playlists-page h1,
body.light-theme .playlist-page h1 {
    color: #cb4b16;
}

body.light-theme .edit-mode-bar {
    background: #eee8d5;
    border-color: #d4c9b8;
}

body.light-theme .edit-mode-bar span {
    color: #cb4b16;
}

body.light-theme .btn-cancel {
    border-color: #ddd;
    color: #666;
}

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

body.light-theme .playlist-item {
    background: #eee8d5;
    border-color: #d4c9b8;
}

body.light-theme .playlist-item:hover {
    background-color: #e0dbcd;
    border-color: #cb4b16;
}

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

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

body.light-theme .playlist-link:hover {
    color: #cb4b16;
}

body.light-theme .playlist-count,
body.light-theme .playlist-icon {
    color: #888;
}

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

body.light-theme .edit-icon-btn:hover {
    color: #cb4b16;
    background: rgba(203, 75, 22, 0.1);
}

body.light-theme .playlist-edit-actions {
    background: #eee8d5;
}

/* ==================== PLAYLIST PAGE ==================== */

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

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

body.light-theme .playlist-page .song-item {
    background: #f5f5f5;
    border-color: #ddd;
}

/* ==================== 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: 10px 16px;
    margin: 0;
    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;
        gap: 0px;
    }

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

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

    .mobile-menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        background-color: #1a1a1a;
        border: 1px solid #333;
        border-radius: 0 0 8px 0;
        min-width: 200px;
        max-width: calc(100vw - 20px);
        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: 10px 16px;
        margin: 0;
        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;
    }
}

/* ==================== MOBILE NAV ICONS (logged-in users) ==================== */
.mobile-nav-icons {
    display: none;
    align-items: center;
    gap: 1px;
    width: 100%;
    position: relative;
    padding-left: 2px;
}

@media (min-width: 769px) {
    .mobile-nav-icons {
        display: none !important;
    }
}

.mobile-nav-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    color: inherit;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: 8px;
    transition: background-color 0.2s;
    flex-shrink: 1;
    min-width: 0;
}

.mobile-nav-icon:first-child {
    padding-left: 0;
}

.mobile-nav-icon:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.mobile-nav-icon:active {
    background-color: rgba(255, 255, 255, 0.15);
}

.mobile-nav-spacer {
    flex: 1;
}

@media (max-width: 768px) {
    .mobile-nav-icons {
        display: flex;
    }
    
    .mobile-nav-icon:hover {
        background-color: rgba(0, 0, 0, 0.08);
    }
    
    .mobile-nav-icon:active {
        background-color: rgba(0, 0, 0, 0.12);
    }
    
    .header-actions > .hamburger-btn {
        display: none !important;
    }
    
    .header-actions > .mobile-random-btn {
        display: none !important;
    }
}

/* ==================== DESKTOP ADMIN BUTTON ==================== */
@media (min-width: 769px) {
    .desktop-admin-btn {
        display: flex;
    }
}

@media (max-width: 768px) {
    .desktop-admin-btn {
        display: none !important;
    }
    
    .mobile-nav-login-btn {
        display: flex;
        align-items: center;
        padding: 6px 12px;
        margin-left: 8px;
        background-color: #cb4b16;
        color: #fff !important;
        border-radius: 8px;
        text-decoration: none;
        font-size: 14px;
        font-weight: 500;
        flex-shrink: 0;
    }
    
    body.light-theme .mobile-nav-login-btn {
        background-color: #cb4b16;
    }
    
    .mobile-nav-login-btn:hover {
        background-color: #b54314;
    }
    
    .mobile-nav-login-btn:active {
        background-color: #a33d12;
    }
}

/* ==================== ADMIN MODE IN MOBILE ==================== */
.hamburger-btn.admin-active {
    color: #f44336;
}

.mobile-menu-item.admin-mode-toggle.admin-active {
    background-color: rgba(244, 67, 54, 0.15);
    color: #f44336;
}

.mobile-menu-item.admin-mode-toggle.admin-active .mobile-menu-icon {
    color: #f44336;
}

body.light-theme .hamburger-btn.admin-active {
    color: #d32f2f;
}

body.light-theme .mobile-menu-item.admin-mode-toggle.admin-active {
    background-color: rgba(211, 47, 47, 0.1);
    color: #d32f2f;
}

body.light-theme .mobile-menu-item.admin-mode-toggle.admin-active .mobile-menu-icon {
    color: #d32f2f;
}

/* ==================== DISPLAY POPUP ==================== */
.display-popup {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #1e1e1e;
    border: 1px solid #3a3a3a;
    border-radius: 12px;
    min-width: 280px;
    max-width: 90vw;
    max-height: 85vh;
    overflow-y: auto;
    z-index: 5000;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.display-popup::-webkit-scrollbar {
    display: none;
}

@media (max-height: 600px) {
    .display-popup {
        max-height: 92vh;
        top: 4vh;
        transform: translateX(-50%);
    }
}

@media (max-width: 360px) {
    .display-popup {
        min-width: 260px;
        max-width: 95vw;
        border-radius: 8px;
    }
    .popup-section {
        padding: 10px 12px;
    }
    .popup-theme-btns {
        flex-direction: column;
    }
    .popup-theme-btn {
        flex-direction: row;
        justify-content: flex-start;
        padding: 8px 12px;
    }
    .popup-comment-btns {
        flex-direction: column;
    }
    .popup-chord-row {
        flex-direction: column;
    }
    .popup-chord-btn {
        flex-direction: row;
        justify-content: flex-start;
        min-width: 100%;
    }
    .popup-chord-label {
        margin-top: 8px;
    }
}

.display-popup.open {
    display: block;
}

body.light-theme .display-popup {
    background-color: #fdf6e3;
    border-color: #d4c4a8;
}

/* ==================== SHARE MODAL ==================== */
.share-modal {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 320px;
    max-width: 90vw;
    background-color: #1e1e1e;
    border: 1px solid #3a3a3a;
    border-radius: 12px;
    max-height: 85vh;
    overflow-y: auto;
    z-index: 5000;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.share-modal::-webkit-scrollbar {
    display: none;
}

.share-modal.open {
    display: block;
}

@media (max-height: 600px) {
    .share-modal {
        max-height: 92vh;
        top: 4vh;
        transform: translateX(-50%);
    }
}

body.light-theme .share-modal {
    background-color: #fdf6e3;
    border-color: #d4c4a8;
}

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

.share-modal .popup-title {
    font-size: 1rem;
    font-weight: 600;
}

.share-modal .popup-close {
    background: none;
    border: none;
    color: #888;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}

.share-modal .popup-close:hover {
    color: #ff9800;
}

.share-modal .popup-section {
    padding: 16px;
}

.share-qr-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 16px;
}

.share-qr-container img {
    width: 200px;
    height: 200px;
    border-radius: 8px;
    background: white;
    padding: 8px;
}

.share-period-selector {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-bottom: 12px;
}

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

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

.share-period-btn.active {
    background: transparent;
    border-color: #ff9800;
    color: #ff9800;
}

.share-expires-text {
    text-align: center;
    color: #888;
    font-size: 0.85rem;
    margin-top: 8px;
}

.share-modal .share-info {
    font-size: 0.85rem;
    color: #888;
    text-align: center;
    line-height: 1.4;
}

.share-copy-btn {
    display: block;
    margin: 0 auto 12px auto;
    padding: 8px 12px;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    background: #2a2a2a;
    color: #888;
    cursor: pointer;
    font-size: 0.85rem;
    transition: all 0.2s;
    white-space: nowrap;
}

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

.share-copy-btn.copied {
    border-color: #4caf50;
    color: #4caf50;
}

body.light-theme .share-copy-btn {
    background: #fdf6e3;
    border-color: #d4c4a8;
    color: #666;
}

body.light-theme .share-copy-btn:hover {
    border-color: #ff9800;
    color: #333;
}

body.light-theme .share-modal {
    background-color: #fdf6e3;
    border-color: #d4c4a8;
}

body.light-theme .share-modal .popup-header {
    border-color: #d4c4a8;
}

body.light-theme .share-period-btn {
    background: #fdf6e3;
    border-color: #d4c4a8;
    color: #666;
}

body.light-theme .share-period-btn:hover {
    border-color: #ff9800;
    color: #333;
}

body.light-theme .share-period-btn.active {
    background: transparent;
    border-color: #ff9800;
    color: #ff9800;
}

.share-options {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #3a3a3a;
    display: flex;
    flex-direction: row;
    gap: 8px;
    justify-content: center;
}

body.light-theme .share-options {
    border-top-color: #d4c4a8;
}

.share-option-btn {
    width: 48px;
    height: 48px;
    padding: 8px;
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    color: #888;
}

.share-option-btn:hover {
    border-color: #ff9800;
}

.share-option-btn.active {
    background: transparent;
    border-color: #ff9800;
}

.share-option-btn svg {
    width: 32px;
    height: 32px;
    display: none;
}

.share-option-btn .option-show {
    display: block;
}

.share-option-btn.active .option-show {
    display: none;
}

.share-option-btn.active .option-hide {
    display: block;
}

.share-option-btn:not(.active) .option-hide {
    display: none;
}

body.light-theme .share-option-btn {
    background: #fdf6e3;
    border-color: #d4c4a8;
    color: #666;
}

body.light-theme .share-option-btn.active {
    background: transparent;
    border-color: #ff9800;
}

/* ==================== RANDOM SETTINGS POPUP ==================== */
.popup-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 4999;
}

.popup-overlay.open {
    display: block;
}

.random-settings-popup {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 320px;
    max-width: 90vw;
    background-color: #1e1e1e;
    border: 1px solid #3a3a3a;
    border-radius: 12px;
    max-height: 85vh;
    overflow-y: auto;
    z-index: 5000;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.random-settings-popup::-webkit-scrollbar {
    display: none;
}

.random-settings-popup.open {
    display: block;
}

.random-settings-popup.playlists-mode {
    top: 8px;
    bottom: 8px;
    transform: translateX(-50%);
    max-height: none;
}

.random-settings-popup.playlists-mode.open {
    display: flex;
    flex-direction: column;
}

.random-settings-popup.playlists-mode .popup-section {
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.random-settings-popup.playlists-mode .popup-section-scroll {
    flex: 1;
    overflow-y: auto;
    min-height: 0;
}

.random-settings-popup.playlists-mode .random-playlists-list {
    max-height: none;
    overflow-y: visible;
}

.random-settings-popup.playlists-mode .popup-footer {
    flex-shrink: 0;
}

body.light-theme .random-settings-popup.playlists-mode .popup-footer {
    background: #fdf6e3;
}

@media (max-height: 600px) {
    .random-settings-popup {
        max-height: 92vh;
        top: 4vh;
        transform: translateX(-50%);
    }
}

body.light-theme .random-settings-popup {
    background-color: #fdf6e3;
    border-color: #d4c4a8;
}

.random-source-options {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.random-source-option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: #2a2a2a;
    border: 2px solid #3a3a3a;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
}

.random-source-option:hover {
    border-color: #ff9800;
}

.random-source-option.selected {
    border-color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
}

.random-source-option.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.random-source-option.disabled:hover {
    border-color: #3a3a3a;
}

body.light-theme .random-source-option.disabled:hover {
    border-color: #d4c4a8;
}

body.light-theme .random-source-option {
    background: #f0ebe0;
    border-color: #d4c4a8;
}

body.light-theme .random-source-option:hover {
    border-color: #ff9800;
    background: #e8e0d0;
}

body.light-theme .random-source-option.selected {
    border-color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
}

.random-source-option input[type="radio"] {
    accent-color: #ff9800;
    width: 18px;
    height: 18px;
}

.random-source-label {
    font-size: 14px;
    color: #e0e0e0;
}

body.light-theme .random-source-label {
    color: #333;
}

.random-playlists-list {
    margin-top: 12px;
}

.random-playlist-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    margin-bottom: 4px;
    background: #252525;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s;
}

.random-playlist-item:hover {
    background: #2a2a2a;
}

body.light-theme .random-playlist-item {
    background: #f0ebe0;
}

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

.random-playlist-item input[type="checkbox"] {
    accent-color: #ff9800;
}

.random-playlists-loading {
    color: #888;
    font-size: 13px;
    padding: 8px 0;
}

.popup-footer {
    padding: 14px 16px;
    border-top: 1px solid #333;
}

body.light-theme .popup-footer {
    border-color: #d4c4a8;
}

.random-apply-btn {
    width: 100%;
    padding: 12px;
    background: #ff9800;
    border: none;
    border-radius: 8px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.random-apply-btn:hover {
    background: #f57c00;
}

.random-song-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
    color: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
}

.random-song-btn:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.mobile-random-btn {
    display: none;
}

@media (max-width: 768px) {
    .mobile-random-btn {
        display: flex;
    }
}

body.light-theme .random-song-btn:hover {
    background-color: rgba(0, 0, 0, 0.1);
}

.popup-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #333;
}

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

.popup-title {
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}

body.light-theme .popup-title {
    color: #002b36;
}

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

.popup-close:hover {
    color: #ff9800;
}

.popup-section {
    padding: 14px 16px;
    border-bottom: 1px solid #333;
}

.popup-section:last-child {
    border-bottom: none;
}

body.light-theme .popup-section {
    border-color: #d4c4a8;
}

.popup-section-title {
    font-size: 12px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

body.light-theme .popup-section-title {
    color: #666;
}

.popup-theme-btns {
    display: flex;
    gap: 10px;
}

.popup-theme-btn {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 10px 12px;
    background: #2a2a2a;
    border: 2px solid #3a3a3a;
    border-radius: 8px;
    color: #888;
    cursor: pointer;
    transition: all 0.2s;
}

.popup-theme-btn svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

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

.popup-theme-btn.active {
    border-color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
    color: #ff9800;
}

body.light-theme .popup-theme-btn {
    background: #eee8d5;
    border-color: #d4c4a8;
    color: #666;
}

body.light-theme .popup-theme-btn:hover {
    border-color: #cb4b16;
    color: #002b36;
}

body.light-theme .popup-theme-btn.active {
    border-color: #cb4b16;
    background: rgba(203, 75, 22, 0.1);
    color: #cb4b16;
}

.popup-theme-btn span {
    font-size: 13px;
    font-weight: 500;
    text-align: left;
}

.popup-theme-btn svg,
.popup-comment-btn svg,
.popup-chord-btn svg {
    flex-shrink: 0;
}

.popup-comment-btn svg {
    width: 28px;
    height: 28px;
}

.popup-chord-btn svg {
    width: 28px;
    height: auto;
}

.popup-comment-btns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.popup-comment-btn {
    flex: none;
    width: calc(50% - 4px);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
    background: #2a2a2a;
    border: 2px solid #3a3a3a;
    border-radius: 8px;
    color: #888;
    cursor: pointer;
    transition: all 0.2s;
}

.popup-comment-btn:hover {
    border-color: #ff9800;
}

.popup-comment-btn.active {
    border-color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
}

.popup-comment-btn.active svg {
    stroke: #ff9800;
}

body.light-theme .popup-comment-btn {
    background: #eee8d5;
    border-color: #d4c4a8;
    color: #666;
}

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

body.light-theme .popup-comment-btn.active {
    border-color: #cb4b16;
    background: rgba(203, 75, 22, 0.1);
}

body.light-theme .popup-comment-btn.active svg {
    stroke: #cb4b16;
}

body.light-theme .popup-comment-btn svg {
    stroke: #666;
}

.popup-comment-btn span {
    font-size: 11px;
    font-weight: 500;
    text-align: left;
}

.popup-chord-btns {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.popup-chord-row {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}

.popup-chord-scheme-row {
    flex-wrap: wrap;
}

.popup-chord-label {
    width: 100%;
    font-size: 11px;
    color: #666;
    margin-bottom: 6px;
    margin-top: 4px;
}

body.light-theme .popup-chord-label {
    color: #888;
}

.popup-chord-btn {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
    background: #2a2a2a;
    border: 2px solid #3a3a3a;
    border-radius: 8px;
    color: #888;
    cursor: pointer;
    transition: all 0.2s;
    min-width: 80px;
    outline: none;
}

.popup-chord-btn:hover {
    border-color: #ff9800;
}

.popup-chord-btn.active {
    border-color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
    color: #ff9800;
}

.popup-chord-btn:not(.active) {
    border-color: #3a3a3a;
    background: #2a2a2a;
    color: #888;
}

.popup-chord-btn.active svg {
    stroke: #ff9800;
}

.popup-chord-btn .chord-show {
    display: block;
}

.popup-chord-btn .chord-hide {
    display: none;
}

.popup-chord-btn.active .chord-show {
    display: block;
}

.popup-chord-btn.active .chord-hide {
    display: none;
}

.popup-chord-btn:not(.active) .chord-show {
    display: none;
}

.popup-chord-btn:not(.active) .chord-hide {
    display: block;
}

body.light-theme .popup-chord-btn {
    background: #eee8d5;
    border-color: #d4c4a8;
    color: #666;
}

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

body.light-theme .popup-chord-btn.active {
    border-color: #cb4b16;
    background: rgba(203, 75, 22, 0.1);
    color: #cb4b16;
}

body.light-theme .popup-chord-btn:not(.active) {
    border-color: #d4c4a8;
    background: #eee8d5;
    color: #666;
}

body.light-theme .popup-chord-btn.active svg {
    stroke: #cb4b16;
}

body.light-theme .popup-chord-btn svg {
    stroke: #666;
}

body.light-theme .popup-chord-btn .chord-hide line {
    stroke: #cc0000;
}

.popup-chord-btn span {
    font-size: 12px;
    font-weight: 500;
    text-align: left;
}

.popup-subsection-title {
    font-size: 11px;
    font-weight: 600;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
    margin-top: 16px;
}

body.light-theme .popup-subsection-title {
    color: #888;
}

.scroll-multiplier-control {
    padding: 8px 0;
}

.scroll-multiplier-labels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: 11px;
    color: #888;
}

#scroll-multiplier-value {
    font-size: 14px;
    font-weight: 600;
    color: #ff9800;
}

body.light-theme #scroll-multiplier-value {
    color: #cb4b16;
}

#scroll-multiplier-slider {
    width: 100%;
    height: 6px;
    -webkit-appearance: none;
    appearance: none;
    background: #3a3a3a;
    border-radius: 3px;
    outline: none;
    cursor: pointer;
}

body.light-theme #scroll-multiplier-slider {
    background: #d4c4a8;
}

#scroll-multiplier-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    background: #ff9800;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.1s;
}

#scroll-multiplier-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

body.light-theme #scroll-multiplier-slider::-webkit-slider-thumb {
    background: #cb4b16;
}

#scroll-multiplier-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    background: #ff9800;
    border: none;
    border-radius: 50%;
    cursor: pointer;
}

body.light-theme #scroll-multiplier-slider::-moz-range-thumb {
    background: #cb4b16;
}

.scroll-multiplier-hint {
    font-size: 10px;
    color: #666;
    margin-top: 6px;
}

body.light-theme .scroll-multiplier-hint {
    color: #888;
}

/* ==================== ТЕКСТ ПЕСНИ ==================== */
.song-text-settings {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.song-text-row {
    display: flex;
    align-items: center;
    gap: 10px;
}

.song-text-inline-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.song-text-inline-row .song-text-label {
    min-width: auto;
}

.song-text-inline-row .song-text-select {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    max-width: 100%;
}

.song-text-label {
    font-size: 12px;
    color: #888;
    min-width: 60px;
}

.song-text-select {
    flex: 0 0 auto;
    padding: 6px 10px;
    background: #2a2a2a;
    border: 1px solid #3a3a3a;
    border-radius: 6px;
    color: #ccc;
    font-size: 12px;
    cursor: pointer;
    outline: none;
    width: auto;
    max-width: 100%;
}

.song-text-select-small {
    flex: 0 0 auto !important;
    min-width: 0;
}

.song-text-select:hover {
    border-color: #555;
}

.song-text-select:focus {
    border-color: #ff9800;
}

body.light-theme .song-text-select {
    background: #fffef0;
    border-color: #d4c4a8;
    color: #333;
}

body.light-theme .song-text-select:hover {
    border-color: #bbb;
}

body.light-theme .song-text-select:focus {
    border-color: #cb4b16;
}

.song-text-color-row {
    flex-wrap: wrap;
}

.chord-color-controls {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

.chord-color-group {
    display: flex;
    align-items: center;
    gap: 6px;
}

.chord-color-icon {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #777;
    flex: 0 0 24px;
}

.chord-color-icon svg {
    width: 16px;
    height: 16px;
}

.chord-color-input {
    width: 32px;
    height: 24px;
    padding: 0;
    border: 1px solid #3a3a3a;
    border-radius: 4px;
    cursor: pointer;
    background: transparent;
}

.chord-color-input::-webkit-color-swatch-wrapper {
    padding: 2px;
}

.chord-color-input::-webkit-color-swatch {
    border: none;
    border-radius: 2px;
}

.chord-color-reset {
    background: transparent;
    border: none;
    color: #666;
    cursor: pointer;
    padding: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: all 0.2s;
}

.chord-color-reset:hover {
    color: #ff9800;
    background: rgba(255, 152, 0, 0.1);
}

body.light-theme .chord-color-input {
    border-color: #ddd;
}

body.light-theme .chord-color-reset:hover {
    color: #cb4b16;
    background: rgba(203, 75, 22, 0.1);
}

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

.home-content {
    padding: 20px 0;
}

.home-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

@media (max-width: 768px) {
    .home-grid {
        grid-template-columns: 1fr;
    }
}

.home-column {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.home-block {
    background: #2a2a2a;
    border-radius: 8px;
    padding: 16px;
}

body.light-theme .home-block {
    background: #e8e0d0;
    border: 1px solid #cdc4b4;
}

.home-block-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.home-block-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 12px;
    color: #e0e0e0;
}

body.light-theme .home-block-title {
    color: #333;
}

.home-block-title a {
    color: inherit;
    text-decoration: none;
}

.home-block-title a:hover {
    color: #ff9800;
}

.home-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 12px;
}

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

.home-tab:hover {
    border-color: #ff9800;
    color: #e0e0e0;
}

.home-tab.active {
    background: #ff9800;
    border-color: #ff9800;
    color: #1a1a1a;
}

body.light-theme .home-tab {
    background: #ddd8c4;
    border-color: #ddd;
    color: #666;
}

body.light-theme .home-tab:hover {
    border-color: #cb4b16;
    color: #cb4b16;
}

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

.home-tab-content.hidden {
    display: none;
}

.home-artist-list,
.home-song-list,
.home-playlist-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.home-artist-item,
.home-song-item,
.home-playlist-item {
    border-bottom: 1px solid #3a3a3a;
}

.home-song-item {
    padding: 0;
}

body.light-theme .home-artist-item,
body.light-theme .home-song-item,
body.light-theme .home-playlist-item {
    border-bottom-color: #999;
}

.home-artist-item:last-child,
.home-song-item:last-child,
.home-playlist-item:last-child {
    border-bottom: none;
}

.home-song-item.with-meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}

.home-song-text {
    min-width: 0;
}

.home-link-artist {
    color: #666;
    text-decoration: none;
}

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

body.light-theme .home-link-artist {
    color: #999;
}

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

.home-link-title {
    color: #e0e0e0;
    text-decoration: none;
}

.home-link-title:hover {
    color: #ff9800;
}

body.light-theme .home-link-title {
    color: #002b36;
}

body.light-theme .home-link-title:hover {
    color: #cb4b16;
}

.home-link-sep {
    color: #666;
}

body.light-theme .home-link-sep {
    color: #999;
}

.home-song-meta {
    font-size: 0.85rem;
    color: #888;
    white-space: nowrap;
    flex-shrink: 0;
}

body.light-theme .home-song-meta {
    color: #999;
}

.home-artist-link,
.home-playlist-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex: 1;
    color: #e0e0e0;
    text-decoration: none;
}

.home-artist-link:hover,
.home-playlist-link:hover {
    color: #ff9800;
}

body.light-theme .home-artist-link,
body.light-theme .home-playlist-link {
    color: #002b36;
}

body.light-theme .home-artist-link:hover,
body.light-theme .home-playlist-link:hover {
    color: #cb4b16;
}

.home-playlist-name {
    color: #e0e0e0;
    text-decoration: none;
}

.home-playlist-name:hover {
    color: #ff9800;
}

body.light-theme .home-playlist-name {
    color: #002b36;
}

body.light-theme .home-playlist-name:hover {
    color: #cb4b16;
}

.home-artist-views,
.home-playlist-count {
    font-size: 0.85rem;
    color: #888;
    white-space: nowrap;
}

body.light-theme .home-artist-views,
body.light-theme .home-playlist-count {
    color: #999;
}

/* ==================== SHARE MODE BANNER ==================== */
.share-mode-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 16px;
    background-color: #2a3a4a;
    border-bottom: 1px solid #3a4a5a;
    font-size: 0.9rem;
}

.share-mode-banner-content {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #8ab4f8;
}

.share-mode-banner-content svg {
    flex-shrink: 0;
}

.share-mode-exit {
    margin: 0;
}

.share-mode-exit-btn {
    padding: 4px 12px;
    border: 1px solid #4a5a6a;
    border-radius: 4px;
    background: transparent;
    color: #aaa;
    cursor: pointer;
    font-size: 0.85rem;
    transition: all 0.2s;
}

.share-mode-exit-btn:hover {
    background: #4a5a6a;
    color: #fff;
}

body.light-theme .share-mode-banner {
    background-color: #e3f2fd;
    border-color: #bbdefb;
}

body.light-theme .share-mode-banner-content {
    color: #1976d2;
}

body.light-theme .share-mode-exit-btn {
    border-color: #90caf9;
    color: #1976d2;
}

body.light-theme .share-mode-exit-btn:hover {
    background: #bbdefb;
}

.share-disabled {
    opacity: 0.7;
    cursor: not-allowed !important;
}

.share-disabled svg {
    opacity: 0.8;
}

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