/*
    ========================================
    TOLFIN - Полная тема для Jellyfin
    ========================================
    Модернизированная тема с кастомными шрифтами,
    плавными анимациями и адаптивным дизайном.
    Включает все модули в одном файле.
*/

/* ========================================
   ПЕРЕМЕННЫЕ ТЕМЫ
   ======================================== */
/* Определяем корневые CSS-переменные для цветовой палитры */
:root {
    /* Цветовая палитра */
    --theme-background-colour: #101010;
    --theme-sidebar-background-colour: #222222;
    --theme-menu-background-colour: #3a3a3a80;
    --theme-menu-shadow-colour: #fff3;
    --theme-base-colour: #696969;
    --theme-text-colour: #dbdbdb;
    --theme-restart-colour: #da87287e;
    --theme-shutdown-colour: #c21c1c9d;
    --theme-progress-bar-colour: #cfcfcf;
    --theme-progress-bar-background-colour: #2c2c2c;
    --theme-progress-bar-transcoding-colour: #eb7e25;
    --theme-chapter-marker-colour: #dbdbdb;
    --theme-chapter-marker-watched-colour: #4a4a4a;

    /* Общие параметры внешнего вида */
    --theme-roundness: .75rem;
    --theme-blur: 16px;
}

/* ========================================
   МОДУЛЬ: CUSTOM BANNER & LOGO
   ======================================== */
/* Определяем URL для кастомного баннера и логотипа */
:root {
    --banner-url: url('https://git.tolchin.pro/Oleg/Tolfin/raw/branch/union/assets/banner.png');
    --logo-url: url('https://git.tolchin.pro/Oleg/Tolfin/raw/branch/union/assets/logo.png');
}

/* Применяем кастомный баннер к заголовку страницы */
.pageTitleWithDefaultLogo {
    background-image: var(--banner-url) !important;
}

/* Применяем кастомный логотип к экрану загрузки */
.splashLogo {
    background-image: var(--logo-url) !important;
}

/* ========================================
   МОДУЛЬ: COUNT INDICATORS
   ======================================== */
/* Определяем переменные для индикаторов счётчиков */
:root {
    --show-count-indicators: flex; /* none для скрытия */
    --count-indicator-colour: rgba(200, 200, 200, 0.75);
    --played-indicator-colour: rgba(32, 139, 36, 0.75);
}

/* Управляем отображением индикаторов счётчиков */
.countIndicator {
    display: var(--show-count-indicators);
}

/* Применяем цвет ко всем индикаторам счётчиков */
.countIndicator,
.fullSyncIndicator,
.mediaSourceIndicator,
.playedIndicator {
    background: var(--count-indicator-colour);
}

/* Применяем отдельный цвет к индикатору просмотренного */
.playedIndicator {
    background: var(--played-indicator-colour);
}

/* ========================================
   БАЗОВЫЕ СТИЛИ
   ======================================== */

/* Убираем стандартный контур фокуса */
*:focus-visible {
    outline: none;
}

/* Изменяем цвета фона для основных контейнеров */
.backgroundContainer,
.mainDrawer,
.drawer-open,
.nowPlayingPlaylist,
.nowPlayingContextMenu,
html {
    background-color: var(--theme-background-colour);
}

/* ========================================
   ПЕРЕОФОРМЛЕНИЕ ЗАГОЛОВКА
   ======================================== */

/* Настраиваем отступ для заголовка страницы на десктопе */
.layout-desktop [dir="ltr"] .pageTitle {
    margin-left: 1.2em;
}

/* Настраиваем отступ и жирность шрифта для заголовка боковой панели */
[dir="ltr"] .sidebarHeader {
    padding-left: 2em;
    font-weight: bold;
}

/* Настраиваем отступы для пунктов меню */
[dir="ltr"] .navMenuOption {
    padding: .9em 1.2em !important;
}

/* Устанавливаем высоту заголовка с логотипом */
.pageTitleWithLogo {
    height: 50px;
}

/* Делаем заголовок прозрачным */
.skinHeader {
    background-color: transparent;
}

/* Настраиваем отступы для левой и правой части заголовка на десктопе */
.layout-desktop .headerLeft,
.layout-desktop .headerRight {
    margin-top: 1rem;
}

/* Настраиваем отступы для правой части заголовка на мобильных устройствах */
.layout-mobile .headerRight {
    margin: 0 .29em;
}

/* Настраиваем отступ сверху для страниц библиотеки на мобильных устройствах */
.layout-mobile .libraryPage:not(.noSecondaryNavPage) {
    padding-top: 8.5em !important;
}

/* Настраиваем размер и трансформацию иконок в кнопках */
.paper-icon-button-light > div {
    width: 25px;
    height: 25px;
    transform: unset;
}

/* Убираем цвет фона для полупрозрачного заголовка */
.skinHeader.semiTransparent {
    background-color: unset;
}

/* Применяем стили к различным элементам интерфейса с эффектом размытия */
.headerTabs,
.headerRight,
.dialog,
.raised,
.fab,
.paper-icon-button-light:not(
    .headerRight,
    .headerRight .paper-icon-button-light
),
.osdHeader .headerLeft .paper-icon-button-light,
.detailButton,
.sliderBubble,
.MuiDataGrid-root,
.MuiMenu-list,
.MuiButton-root,
.toast.toastVisible,
.guide-date-tab-button.emby-tab-button-active,
.guide-date-tab-button:focus,
.MuiTabs-centered .MuiTab-root,
#skipIntro .emby-button,
.chapterThumbContainer,
.chapterThumbTextContainer {
    color: var(--theme-text-colour);
    border-radius: var(--theme-roundness);
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    background-color: var(--theme-menu-background-colour);
    backdrop-filter: blur(var(--theme-blur)) !important;
    -webkit-backdrop-filter: blur(var(--theme-blur)) !important;
    -moz-backdrop-filter: blur(var(--theme-blur)) !important;
    -o-backdrop-filter: blur(var(--theme-blur)) !important;
    -ms-backdrop-filter: blur(var(--theme-blur)) !important;
}

/* Устанавливаем цвет фона для диалогового фона */
.dialogBackdrop {
    background-color: #111;
}

/* Выравниваем элементы слайдера по центру */
.headerTabs .emby-tabs-slider {
    display: flex;
    align-items: center;
}

/* Настраиваем отступы и закругление для кнопок и вкладок */
.headerTabs .emby-tab-button,
.headerRight .paper-icon-button-light,
.detailButton,
.sessionCardButton,
.guideOptions,
.MuiTabs-centered .MuiTab-root {
    padding: 0.556em !important;
    margin: 0 .29em !important;
    border-radius: var(--theme-roundness);
}

/* Устанавливаем высоту для элементов заголовка на десктопе */
.layout-desktop .headerTabs,
.layout-desktop .headerLeft,
.layout-desktop .headerRight,
.layout-desktop .emby-tabs-slider,
.layout-desktop .raised {
    height: 50px;
}

/* Устанавливаем высоту для элементов заголовка на мобильных устройствах */
.layout-mobile .headerTabs,
.layout-mobile .headerRight,
.layout-mobile .emby-tabs-slider,
.layout-mobile .raised {
    height: 40px;
}

/* Настраиваем отступ слева для вкладок на десктопе */
.layout-desktop .headerTabs {
    margin-left: 250px;
}

/* Медиа-запрос для экранов шириной до 1599px */
@media (max-width: 1599px) {
    /* Настраиваем ширину и отступ для секции вкладок */
    .layout-desktop .sectionTabs {
        width: auto;
        align-self: center;
        margin-top: -58px;
    }

    /* Настраиваем отступ справа для правой части заголовка */
    .layout-desktop .headerRight {
        margin-right: .8em;
    }

    /* Настраиваем отступы для вкладок на мобильных устройствах */
    .layout-mobile .headerTabs {
        margin: 20px auto;
        width: auto;
    }

    /* Настраиваем высоту заголовка с логотипом на мобильных устройствах */
    .layout-mobile .pageTitleWithLogo {
        height: 40px;
    }
}

/* Настраиваем ширину для секции вкладок на TV */
.layout-tv .sectionTabs {
    width: unset;
}

/* Медиа-запрос для экранов шириной от 100em */
@media (min-width: 100em) {
    /* Сбрасываем отступ сверху для вкладок на TV */
    .layout-tv .headerTabs {
        margin-top: unset;
    }

    /* Настраиваем отступ сверху для вкладок на мобильных устройствах */
    .layout-mobile .headerTabs {
        margin-top: -1.3em;
    }
}

/* Медиа-запрос для экранов шириной до 100em */
@media (max-width: 100em) {
    /* Настраиваем ширину и размер шрифта для секции вкладок на TV */
    .layout-tv .sectionTabs {
        width: fit-content;
        align-self: center;
        font-size: 125%;
    }
}

/* Медиа-запрос для экранов шириной до 50em */
@media (max-width: 50em) {
    /* Делаем кнопку домашней библиотеки на всю ширину */
    .homeLibraryButton {
    width: 100% !important;
    }
}

/* ========================================
   МОДУЛЬ: STATIC SIDEBAR
   ======================================== */

/* Делаем боковую панель статичной на десктопе */
.layout-desktop .mainDrawer,
.MuiDrawer-paperAnchorLeft {
    left: 0 !important;
    top: 0;
    width: 250px !important;
    background-color: var(--theme-sidebar-background-colour) !important;
    z-index: 100;
}

/* Скрываем кнопку меню и кнопку домой на десктопе */
.layout-desktop .mainDrawerButton,
.layout-desktop .headerHomeButton {
    display: none;
}

/* Настраиваем отступы для страниц библиотеки на десктопе */
.layout-desktop .libraryPage:not(#editItemMetadataPage) {
    margin-left: 250px;
    width: calc(100% - 250px);
}

/* Настраиваем отступы для контейнера слайдов на десктопе */
.layout-desktop #slides-container {
    margin-left: 320px;
    width: calc(100% - 385px);
}

/* Скрываем боковую панель в определённых режимах */
.layout-desktop .hide-scroll .mainDrawer,
.layout-desktop .hideMainDrawer .mainDrawer {
    display: none;
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: БОКОВАЯ ПАНЕЛЬ
   ======================================== */

/* Убираем анимацию перехода на десктопе */
.layout-desktop,
.touch-menu-la.transition {
    transition: none;
}

/* Настраиваем отступ сверху для боковой панели на мобильных устройствах */
.layout-mobile .mainDrawer {
    padding-top: 1.2em;
}

/* Настраиваем отступ сверху для контейнера прокрутки на десктопе */
.layout-desktop .mainDrawer-scrollContainer {
    margin-top: 100px;
}

/* Настраиваем стиль для пунктов меню боковой панели */
.navMenuOption,
.navMenuOption-selected,
.navMenuOption:hover,
.MuiListItem-root,
.MuiDrawer-paperAnchorLeft .MuiButtonBase-root {
    border-radius: var(--theme-roundness) !important;
    width: 80%;
    margin: auto !important;
}

/* Настраиваем эффект наведения для пунктов меню */
.navMenuOption:hover,
.listItem:hover,
.MuiButton-root:hover {
    background-color: var(--theme-menu-shadow-colour);
}

/* Настраиваем стиль для выбранного пункта меню */
.navMenuOption-selected,
.Mui-selected {
    background: var(--theme-menu-shadow-colour) !important;
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: КАРТОЧКИ
   ======================================== */

/* Настраиваем отступ для заголовка первой секции */
.section0 .sectionTitle {
    padding-top: 1em !important;
}

/* Сбрасываем отступ сверху для кнопок прокрутки */
.layout-desktop .section0 .emby-scrollbuttons,
.layout-desktop .section1 .emby-scrollbuttons {
    padding-top: unset;
}

/* Настраиваем скругление и тень для карточек и диалогов */
.cardContent:not(.dashboardSection .cardContent),
.cardPadder:not(.dashboardSection .cardPadder),
.blurhash-canvas,
.dialog,
.itemSelectionPanel {
    border-radius: var(--theme-roundness) !important;
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour) !important;
    transition: 0.2s;
}

/* Настраиваем скругление и тень для контейнера оверлея карточек */
.cardOverlayContainer {
    border-radius: var(--theme-roundness) !important;
    box-shadow: inset 0 2px var(--theme-menu-shadow-colour) !important;
    transition: unset;
}

/* Настраиваем отступы для кнопок оверлея на мобильных устройствах */
.layout-mobile .cardOverlayButton {
    padding: unset;
    margin: 5px;
}

/* Убираем фон для иконок кнопок оверлея на мобильных устройствах */
.layout-mobile .cardOverlayButtonIcon {
    background: unset !important;
}

/* Настраиваем отступы для кнопок оверлея на десктопе */
.layout-desktop .cardOverlayContainer > .cardOverlayButton-br .cardOverlayButton {
    padding: unset;
    margin: 5px;
}

/* Настраиваем фон для стандартных фонов карточек */
.defaultCardBackground1,
.defaultCardBackground2,
.defaultCardBackground3,
.defaultCardBackground4,
.defaultCardBackground5,
.cardOverlayContainer > .cardOverlayFab-primary {
    background-color: var(--theme-menu-background-colour);
    font-size: 110%;
}

/* Настраиваем эффект фокуса и наведения для кнопок */
.button-submit:focus,
.paper-icon-button-light:hover:not(:disabled, .btnDelete),
.raised:hover,
.emby-tab-button:hover,
.detailButton:hover,
.emby-tab-button.show-focus:focus,
.paper-icon-button-light.show-focus:focus,
.emby-button.show-focus:focus,
.alphaPickerButton-tv:focus,
#skipIntro .emby-button:hover,
.multiSelectCheckboxOutline {
    border-radius: var(--theme-roundness) !important;
    transform: unset !important;
    -webkit-transform: unset !important;
    -moz-transform: unset !important;
    -o-transform: unset !important;
    -ms-transform: unset !important;
    color: var(--theme-text-colour);
    background-color: var(--theme-menu-shadow-colour) !important;
}

/* Настраиваем отступы для кнопок в деталях на TV */
.layout-tv .itemDetailsGroup .emby-button.show-focus:focus {
    padding: 5px 10px;
}

/* ========================================
   МОДУЛЬ: MOVING CARDS
   ======================================== */

/* Добавляем эффект подъёма карточек при наведении */
.cardBox:hover {
    transform: translateY(-2.5px);
    -webkit-transform: translateY(-2.5px);
    -moz-transform: translateY(-2.5px);
    -ms-transform: translateY(-2.5px);
    -o-transform: translateY(-2.5px);
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: НАСТРОЙКИ ПОЛЬЗОВАТЕЛЯ
   ======================================== */

/* Делаем заголовки жирными */
.readOnlyContent h2,
.sectionTitle,
.dashboardSection h3,
.MuiListSubheader-root {
    font-weight: bold;
}

/* Убираем границы для элементов списка */
.listItem-border,
.itemSelectionPanel {
    border: unset;
}

/* Настраиваем отступ слева для элементов списка */
.listItem {
    padding-left: 1.2em !important;
}

/* Настраиваем скругление для элементов списка и кнопок */
.listItem:hover,
.MuiButtonBase-root,
.MuiButtonBase-root:hover,
.emby-tab-button,
progress {
    border-radius: var(--theme-roundness);
}

/* Настраиваем фон и стиль для контейнеров и полей ввода */
.collapseContent,
.formDialogFooter:not(.formDialogFooter-clear),
.formDialogHeader:not(.formDialogHeader-clear),
.paperList,
.visualCardBox,
.emby-select-withcolor,
.emby-input,
.emby-textarea {
    background-color: var(--theme-menu-background-colour);
    border-radius: var(--theme-roundness);
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    border: unset;
    padding: 10px;
}

/* Убираем тень для отключённого select */
.emby-select[disabled] {
    box-shadow: unset;
}

/* Настраиваем отступы для select выбора треков */
.trackSelections .selectContainer .detailTrackSelect {
    padding: 0 10px;
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: ДЕТАЛИ КОНТЕНТА
   ======================================== */

/* Настраиваем размер и позицию изображения карточки на десктопе */
.layout-desktop .detailImageContainer .card {
    width: 250px;
    max-width: unset;
    top: 1.5em;
    left: 0;
}

/* Обратная совместимость для версий до 10.11.0 */
.layout-desktop .infoWrapper .detailImageContainer .card {
    padding-top: 8.5em;
}

/* Настраиваем отступы для основного контента деталей на десктопе */
.layout-desktop .detailPagePrimaryContent {
    padding-top: 135px;
    padding-left: 300px;
    min-height: 325px;
}

/* Настраиваем позицию основных кнопок деталей на десктопе */
.layout-desktop .mainDetailButtons {
    margin-top: 350px;
    margin-left: 292px;
    position: absolute;
}

/* Настраиваем отображение основных кнопок деталей на мобильных устройствах */
.layout-mobile .mainDetailButtons {
    display: flex;
    flex-flow: wrap;
    gap: 10px;
}

/* Настраиваем стиль кнопок деталей */
.mainDetailButtons .detailButton {
    display: inline-flex;
    align-items: center;
    padding-left: 50px;
    position: relative;
}

/* Добавляем текстовые метки для кнопок */
.btnPlay .detailButton-content:before {
    content: "Play";
}

.btnReplay .detailButton-content:before {
    content: "Replay";
}

.btnDownload .detailButton-content:before {
    content: "Download";
}

.btnPlayTrailer .detailButton-content:before {
    content: "Trailer";
}

.btnInstantMix .detailButton-content:before {
    content: "Instant Mix";
}

.btnShuffle .detailButton-content:before {
    content: "Shuffle";
}

.btnCancelSeriesTimer .detailButton-content:before {
    content: "Cancel Programme";
}

.btnCancelTimer .detailButton-content:before {
    content: "Stop Recording";
}

.btnPlaystate .detailButton-content:before {
    content: "Watched";
}

.btnUserRating .detailButton-content:before {
    content: "Favourite";
}

.btnSplitVersions .detailButton-content:before {
    content: "Split Versions";
}

.btnMoreCommands .detailButton-content:before {
    content: "Options";
}

/* Настраиваем позицию текстовых меток */
.detailButton-content:before {
    position: relative;
    margin-left: 30px;
}

/* Настраиваем позицию иконок */
.detailButton-icon:before {
    position: absolute;
    top: 7px;
    left: 7px;
}

/* Сбрасываем высоту для material-icons */
.mainDetailButtons .material-icons {
    height: unset;
}

/* Настраиваем отступы для контейнеров деталей на десктопе */
.layout-desktop .detailPagePrimaryContainer,
.layout-desktop .detailPageContent {
    padding-left: 3.3% !important;
}

/* Убираем фон для ленты деталей */
.detailRibbon {
    background: unset;
    padding-left: 0 !important;
}

/* Настраиваем отступы для info-обёртки на десктопе */
.layout-desktop .infoWrapper {
    padding-top: 226px;
    padding-left: 300px;
}

/* Добавляем градиент к заднему фону */
.itemBackdrop::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(180deg, transparent 5%, var(--theme-background-colour));
    pointer-events: none;
    z-index: 1;
}

/* Настраиваем анимацию и отступы для заднего фона на мобильных устройствах */
.layout-mobile .itemBackdrop {
    margin-top: unset;
    -webkit-animation: backdrop-fadein .8s ease-in normal both;
    animation: backdrop-fadein .8s ease-in normal both;
}

/* Убираем фильтры для изображения карточки на мобильных устройствах */
.layout-mobile .detailImageContainer .card {
    filter: unset;
    -webkit-filter: unset;
    -moz-filter: unset;
    -o-filter: unset;
    -ms-filter: unset;
    padding-left: 2em;
}

/* Настраиваем позицию логотипа на десктопе */
.layout-desktop .detailLogo {
    left: 3%;
    right: unset;
    z-index: 1;
}

/* Убираем фон и тень для элементов Material UI */
.layout-desktop .backgroundContainer.withBackdrop,
.MuiPaper-root,
.MuiTabs-indicator {
    background-color: unset;
    background-image: unset;
    box-shadow: unset;
}

/* Применяем размытие к заднему фону на десктопе */
.layout-desktop .backdropImage {
    filter: blur(5px);
    -webkit-filter: blur(5px);
    -moz-filter: blur(5px);
    -o-filter: blur(5px);
    -ms-filter: blur(5px);
}

/* Настраиваем эффект затемнения контента */
.darkenContent {
    backdrop-filter: blur(5px) brightness(0.75);
    -webkit-backdrop-filter: blur(5px) brightness(0.75);
    -moz-backdrop-filter: blur(5px) brightness(0.75);
    -o-backdrop-filter: blur(5px) brightness(0.75);
    -ms-backdrop-filter: blur(5px) brightness(0.75);
    background: -webkit-linear-gradient(180deg, transparent, var(--theme-background-colour));
    background: -moz-linear-gradient(180deg, transparent, var(--theme-background-colour));
    background: -o-linear-gradient(180deg, transparent, var(--theme-background-colour));
    background: -ms-linear-gradient(180deg, transparent, var(--theme-background-colour));
    background: linear-gradient(180deg, transparent, var(--theme-background-colour));
}

/* Настраиваем отступ для контейнера TV */
.itemsContainer-tv {
    margin-left: 10px;
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: АДМИН-НАСТРОЙКИ
   ======================================== */

/* Настраиваем цвет кнопки перезапуска сервера */
#btnRestartServer {
    box-shadow: inset 0 1px var(--theme-restart-colour) !important;
}

/* Настраиваем эффект наведения для кнопки перезапуска и уведомлений */
#btnRestartServer:hover,
.notifications,
.MuiChip-filledInfo {
    color: var(--theme-text-colour) !important;
    background-color: var(--theme-restart-colour) !important;
}

/* Настраиваем цвет кнопки выключения и удаления */
#btnShutdown,
.btnDelete {
    box-shadow: inset 0 1px var(--theme-shutdown-colour) !important;
}

/* Настраиваем эффект наведения для кнопки выключения и важных уведомлений */
#btnShutdown:hover,
.btnDelete:hover,
.notification_important,
.MuiChip-filledError {
    color: var(--theme-text-colour) !important;
    background-color: var(--theme-shutdown-colour) !important;
}

/* Настраиваем скругление для иконок элементов списка */
.listItemIcon:not(.listItemIcon-transparent) {
    border-radius: var(--theme-roundness);
}

/* Настраиваем отступы для кнопок карточки сессии */
.sessionCardButtons {
    margin: .29em 0;
}

/* Настраиваем скругление для контента карточек в дашборде */
.dashboardSection .cardContent {
    border-top-left-radius: var(--theme-roundness);
    border-top-right-radius: var(--theme-roundness);
}

/* Настраиваем скругление для первой кнопки в группе */
div[data-role="controlgroup"] a[data-role="button"]:first-child {
    border-bottom-left-radius: var(--theme-roundness);
    border-top-left-radius: var(--theme-roundness);
}

/* Настраиваем скругление для последней кнопки в группе */
div[data-role="controlgroup"] a[data-role="button"]:last-child {
    border-bottom-right-radius: var(--theme-roundness);
    border-top-right-radius: var(--theme-roundness);
}

/* Настраиваем поведение колонок дашборда */
.dashboardColumn {
    flex-shrink: inherit;
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: БАЗОВЫЕ ЦВЕТА
   ======================================== */

/* Настраиваем цвет для фокусированных элементов */
.selectLabelFocused,
.textareaLabelFocused,
.inputLabelFocused,
.mdl-slider,
.metadataSidebarIcon,
.button-link,
.guide-date-tab-button.emby-tab-button-active,
.guide-date-tab-button:focus,
#divRunningTasks span,
.MuiAlert-icon,
.listItemBodyText span {
    color: var(--theme-text-colour) !important;
}

/* Настраиваем фон для отмеченных чекбоксов и других элементов */
.emby-checkbox:checked + span + .checkboxOutline,
.listItemIcon:not(
    .listItemIcon-transparent,
    .notification_important,
    .notifications
),
.guide-channelHeaderCell:focus,
.programCell:focus,
.emby-button.show-focus:focus,
::selection,
div[data-role="controlgroup"] a.ui-btn-active,
.MuiAvatar-root,
.selectionCommandsPanel {
    background-color: var(--theme-base-colour) !important;
}

/* Настраиваем цвет границ для чекбоксов */
.emby-checkbox + span + .checkboxOutline,
.emby-checkbox:checked + span + .checkboxOutline,
.emby-checkbox:focus:not(:checked) + span + .checkboxOutline,
.mdl-spinner__layer-1,
.mdl-spinner__layer-2,
.mdl-spinner__layer-3,
.mdl-spinner__layer-4 {
    border-color: var(--theme-base-colour) !important;
}

/* Настраиваем внешний вид слайдера */
.mdl-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    background: transparent;
}

/* Убираем стандартный ползунок для WebKit */
.mdl-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 0;
    height: 0;
    background: transparent;
    cursor: pointer;
}

/* Убираем стандартный ползунок для Firefox */
.mdl-slider::-moz-range-thumb {
    width: 0;
    height: 0;
    background: transparent;
    cursor: pointer;
}

/* Убираем стандартный ползунок для IE/Edge */
.mdl-slider::-ms-thumb {
    width: 0;
    height: 0;
    background: transparent;
    cursor: pointer;
}

/* Настраиваем фон слайдера */
.mdl-slider-background-flex,
.mdl-slider-background-lower,
.mdl-slider-background-upper {
    border-radius: var(--theme-roundness);
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    height: 10px;
}

/* ========================================
   МАРКЕРЫ ГЛАВ
   ======================================== */

/* Настраиваем контейнер для маркеров глав */
.sliderMarkerContainer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 10px;
    pointer-events: none;
    z-index: 1;
}

/* Настраиваем стиль маркеров глав */
.sliderMarker {
    position: absolute;
    top: 0;
    width: 2px;
    height: 10px;
    background-color: var(--theme-chapter-marker-colour);
    opacity: 0.6;
    border-radius: 1px;
    pointer-events: auto;
    cursor: pointer;
    transition: opacity 0.2s ease, width 0.2s ease, background-color 0.2s ease;
}

/* Настраиваем цвет для непросмотренных маркеров */
.sliderMarker.unwatched {
    background-color: var(--theme-chapter-marker-colour);
}

/* Настраиваем цвет для просмотренных маркеров */
.sliderMarker.watched {
    background-color: var(--theme-chapter-marker-watched-colour);
}

/* Настраиваем отступ для верхней части слайдера */
.mdl-slider-background-upper {
    margin-left:  -3px;
}

/* Настраиваем позицию контейнера фона слайдера */
.mdl-slider-background-flex-container {
    top: 5px;
}

/* ========================================
   ПРОГРЕСС-БАРЫ
   ======================================== */

/* Настраиваем цвет для переднего плана прогресс-бара */
.innerCardFooter .itemProgressBarForeground,
.playbackProgress > div,
.mdl-slider-background-lower,
.iconOsdProgressInner,
.taskProgressInner,
progress {
    background-color: var(--theme-progress-bar-colour) !important;
}

/* Совместимость с браузерами для прогресс-бара */
progress::-moz-progress-bar {
    background-color: var(--theme-progress-bar-colour);
}
progress::-webkit-progress-bar {
    background-color: var(--theme-progress-bar-colour);
}
progress::-ms-thumb {
    background-color: var(--theme-progress-bar-colour);
}

/* Настраиваем цвет для прогресса транскодирования */
.transcodingProgress > div {
    background-color: var(--theme-progress-bar-transcoding-colour) !important;
}

/* Настраиваем цвет фона для прогресс-бара */
.innerCardFooter .itemProgressBar,
.backgroundProgress > div,
.mdl-slider-background-flex,
.taskProgressOuter,
progress {
    background-color: var(--theme-progress-bar-background-colour) !important;
}

/* ========================================
   МОДУЛЬ: FLOATING PROGRESS
   ======================================== */

/* Определяем переменные для плавающего прогресса */
:root {
    --floating-progress-roundness: .75rem;
    --floating-progress-height: 10px;
}

/* Настраиваем отступ снизу для деталей текущего воспроизведения */
.sessionNowPlayingDetails {
    padding-bottom: 10px;
}

/* Делаем прогресс-бары плавающими с закруглёнными углами */
.fullInnerCardFooter,
.activeSession .backgroundProgress,
.activeSession .playbackProgress,
.activeSession .transcodingProgress {
    width: 95%;
    bottom: 10px;
    margin: 0 auto;
    height: var(--floating-progress-height);
    border-radius: var(--floating-progress-roundness) !important;
    -webkit-border-radius: var(--floating-progress-roundness) !important;
    -moz-border-radius: var(--floating-progress-roundness) !important;
}

/* Настраиваем высоту и тень для прогресс-бара */
.itemProgressBar {
    height: var(--floating-progress-height);
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    -webkit-box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    -moz-box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
}

/* Настраиваем тень для элементов прогресса */
.playbackProgress > div,
.backgroundProgress > div,
.transcodingProgress > div {
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    -webkit-box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    -moz-box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    border-radius: var(--floating-progress-roundness);
    -webkit-border-radius: var(--floating-progress-roundness);
    -moz-border-radius: var(--floating-progress-roundness);
}

/* ========================================
   БАЗОВЫЕ СТИЛИ: ДОПОЛНИТЕЛЬНО
   ======================================== */

/* Настраиваем отступы для контента документа дашборда */
.layout-desktop .dashboardDocument .content-primary:not(.layout-desktop #dashboardPage .content-primary) {
    padding-left: 2.5em;
    padding-right: 2.5em;
}

/* Сбрасываем отступ для заголовка диалога */
[dir="ltr"] .formDialogHeaderTitle:first-child {
    margin-left: unset;
}

/* ========================================
   ФОРМА ВХОДА
   ======================================== */

/* Настраиваем стиль страницы входа */
#loginPage {
    background-color: var(--theme-menu-background-colour);
    border-radius: var(--theme-roundness);
    box-shadow: inset 0 1px var(--theme-menu-shadow-colour);
    padding: unset !important;
    max-width: 750px;
    max-height: 500px;
    margin: 150px auto 0;
}

/* Настраиваем отступ для кнопки отправки формы */
.manualLoginForm .raised.button-submit.block.emby-button {
    margin-bottom: -3px;
}

/* ========================================
   МОДУЛЬ: FORGOT PASSWORD
   ======================================== */

/* Скрываем кнопку сброса пароля и "Забыли пароль" */
#btnResetPassword,
.btnForgotPassword {
    display: none !important;
}

/* Настраиваем максимальную высоту страницы входа */
#loginPage {
    max-height: 450px;
}

/* ========================================
   МОДУЛЬ: HIDE MY MEDIA
   ======================================== */

/* Скрываем заголовок секции "Мои медиа" */
#indexPage .section0 .sectionTitle {
    display: none;
}

/* Настраиваем отступ сверху для первой секции */
#indexPage .section0 {
    padding-top: 1em;
}

/* Настраиваем отступ сверху для вертикальной секции */
#indexPage .verticalSection.section0 {
    padding-top: 3em;
}

/* ========================================
   МОДУЛЬ: CENTRAL LIBRARIES SMALL
   ======================================== */

/* Центрируем секцию "Мои медиа (small)" на главной странице */
#indexPage .section0 .itemsContainer.padded-left.padded-right {
    justify-content: center !important;
    padding-top: 15px !important;
}

/* ========================================
   МОДУЛЬ: SMALLER CAST
   ======================================== */

/* Делаем карточки актёров меньше */
#castContent .card.overflowPortraitCard.personCard.card-hoverable.card-withuserdata {
    width: 4.2cm;
    font-size: 90%;
}

/* Настраиваем размер фона для карточек актёров */
#castContent .cardContent-button.cardImageContainer.coveredImage.cardContent.cardContent-shadow.itemAction.lazy {
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground1.cardContent.cardContent-shadow.itemAction {
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground2.cardContent.cardContent-shadow.itemAction {
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground3.cardContent.cardContent-shadow.itemAction {
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground4.cardContent.cardContent-shadow.itemAction {
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

#castContent .cardContent-button.cardImageContainer.coveredImage.defaultCardBackground.defaultCardBackground5.cardContent.cardContent-shadow.itemAction {
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
}

/* Настраиваем размер масштабируемой части карточки актёра */
#castContent .cardScalable {
    width: 3.8cm;
    height: 3.8cm;
}

/* Настраиваем позицию кнопок оверлея */
#castContent .cardOverlayButton-br {
    bottom: 4%;
    right: 15%;
    width: 70%;
}

/* Настраиваем отступ для кнопок оверлея */
#castContent .cardOverlayButton.cardOverlayButton-hover.itemAction.paper-icon-button-light {
    margin: auto;
}

/* Убираем фон для padders карточек актёров */
#castContent .cardBox:not(.visualCardBox) .cardPadder {
    background-color: unset;
}

/* Убираем тень для padders и контента карточек актёров */
#castContent .cardBox:not(.visualCardBox) .cardPadder,
#castContent .cardContent-shadow {
    box-shadow: unset;
}

/* ========================================
   ГЛАВЫ
   ======================================== */

/* Настраиваем ширину контейнера текста главы */
.chapterThumbTextContainer {
    width: fit-content;
    margin: auto;
}

/* Настраиваем ширину текста главы */
.chapterThumbText {
    width: fit-content;
}
