/*
This file styles jellyfin and can be imported by adding:
@import url("https://bocken.org/other/jellyfin.css");
under Server -> General -> Custom CSS Code

Also requires jellyfin.js loaded via the Custom CSS/JS Injector plugin:
https://bocken.org/other/jellyfin.js
*/
:root{
--nord0: #2E3440;
--blue: #5E81AC;
--lightblue: #81A1C1;
--swiper-theme-color: var(--blue);
}

.selectionCommandsPanel,
.countIndicator, .fullSyncIndicator, .mediaSourceIndicator, .playedIndicator,
.itemProgressBarForeground,
.mdl-slider-background-lower,
.iconOsdProgressInner{
  background-color: var(--blue);
}
.mdl-slider,
.emby-tab-button:hover{
    color: var(--blue);
}
@media (hover: hover) and (pointer: fine){
.paper-icon-button-light:hover:not(:disabled) {
   color: var(--lightblue);
   background-color: rgba(var(--blue), 0.2);
}
}

/* Loading spinner */
.mdl-spinner__layer{
 border-color: var(--blue);
}

/* volume and timeline button color */
/* Need to be separate to apply*/
input[type="range"]::-moz-range-thumb{
   background-color: var(--blue);
}
input[type="range"]::-webkit-slider-thumb{
   background-color: var(--blue);
}

.listItemIcon:not(.listItemIcon-transparent),
.navMenuOption-selected,
.button-submit,
.defaultCardBackground1,
.defaultCardBackground2,
.defaultCardBackground3,
.defaultCardBackground4,
.defaultCardBackground5,
.emby-checkbox:checked + span + .checkboxOutline, .itemProgressBarForeground
{
    background-color: var(--blue) !important;
}
.button-link,
.button-flat:hover{
   color: var(--blue);
}
.emby-checkbox:checked + span + .checkboxOutline{
border-color: var(--blue);
}
.btnUserRating:hover,
.cardOverlayButton:has(.favorite):hover{
    color: #BF616A !important;
}

.emby-input:focus, .emby-textarea:focus{
 border-color: var(--blue);
}
.emby-select-withcolor:focus{
    border-color: var(--blue) !important;
}
.listItemIcon:not(.listItemIcon-transparent),
.navMenuOption-selected,
.button-submit,
.defaultCardBackground1,
.defaultCardBackground2,
.defaultCardBackground3,
.defaultCardBackground4,
.defaultCardBackground5,
.emby-checkbox:checked + span + .checkboxOutline,
.itemProgressBarForeground,
.taskProgressInner,
.sliderMarker.watched
{
    background-color: var(--blue) !important;
}

#divRunningTasks > p > progress + span,
div.taskProgressOuter + span{
    color: var(--blue) !important;
}
progress[value] {
    background-color: var(--blue);
}
progress[value]::-webkit-progress-value {
   background-color: var(--blue);
}

/* For Mozilla-based browsers (Firefox) */
progress[value]::-moz-progress-bar {
   background-color: var(--blue);
}

/* ═══════════════════════════════════════════
   FLOATING GLASS PILL HEADER
   Matches bocken.org homepage header style
   ═══════════════════════════════════════════ */

/* Base glass effect for all header states */
.skinHeader {
  background: rgba(20, 20, 20, 0.78) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25) !important;
}

/* Float as a pill (non-OSD) */
.skinHeader:not(.osdHeader) {
  position: fixed !important;
  top: 12px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: fit-content !important;
  min-width: min(600px, calc(100% - 1.5rem));
  max-width: calc(100% - 1.5rem);
  border-radius: 100px !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  z-index: 999;
  padding: 0 0.4rem !important;
  overflow: visible !important;
}

/* Push page content below the floating header */
.skinBody {
  padding-top: 5rem !important;
}

/* Compact the top bar row */
.skinHeader:not(.osdHeader) .headerTop {
  padding: 0 0.2rem !important;
  min-height: 3rem !important;
}

/* ── Header buttons ─────────────────────── */
.skinHeader:not(.osdHeader) .headerButton {
  color: #999 !important;
  transition: all 150ms;
  border-radius: 100px;
}
.skinHeader:not(.osdHeader) .headerButton:hover {
  color: white !important;
  background: rgba(255, 255, 255, 0.1);
}

/* ── Hide the tab bar — replaced by icon buttons via JS ── */
.skinHeader:not(.osdHeader) .headerTabs {
  display: none !important;
}

/* ── Active state for injected nav buttons (home/favorites) ── */
.bocken-nav-active {
  color: white !important;
  background: rgba(136, 192, 208, 0.25) !important;
}

/* Hide the original home button — replaced by our injected one */
.headerHomeButton {
  display: none !important;
}

/* ═══════════════════════════════════════════
   SIDEBAR DRAWER
   ═══════════════════════════════════════════ */
.mainDrawer {
  background: rgba(20, 20, 20, 0.95) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* ═══════════════════════════════════════════
   CARDS & LIST ITEMS
   ═══════════════════════════════════════════ */
.card {
  transition: 200ms;
}
.card:hover {
  scale: 1.05;
}

/* Play overlay on card thumbnails */
.bocken-play-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition: opacity 200ms;
  pointer-events: none;
  border-radius: inherit;
}
.bocken-play-overlay .material-icons {
  font-size: 3rem;
  color: white;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}
.cardImageContainer:hover .bocken-play-overlay {
  opacity: 1;
}

.listItem {
   transition: 200ms;
}
.listItem:hover {
    scale: 1.02;
}
@media (max-width: 64em){
.listItemImageButton, .listItemIndicators {
    font-size: initial !important;
}
}
.backgroundContainer {
    background-color: #000;
}
.pageTitleWithDefaultLogo {
    background-image: url(https://bocken.org/static/css/logos/logo_full_light.png);
}

/* Bocken logo link */
.bocken-logo-link {
  display: flex;
  text-decoration: none;
  transition: filter 150ms;
}
.bocken-logo-link:hover .pageTitleWithDefaultLogo {
  /* Tint white logo to Nord lightblue (#81A1C1) */
  filter: brightness(0) saturate(100%) invert(61%) sepia(52%) saturate(212%) hue-rotate(169deg) brightness(92%) contrast(94%);
}

/* Toast notification */
.bocken-toast {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(20, 20, 20, 0.9);
  color: white;
  padding: 0.6rem 1.2rem;
  border-radius: 100px;
  font-size: 0.85rem;
  z-index: 9999;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
  opacity: 1;
  transition: opacity 400ms;
}
.bocken-toast-hide {
  opacity: 0;
}

/* ═══════════════════════════════════════════
   VIDEO DETAIL PAGE
   ═══════════════════════════════════════════ */
.detailPagePrimaryContainer,
.detailPageSecondaryContainer,
.detailRibbon {
  background-color: #000 !important;
}

/* Always show the detail logo, not just on large screens */
.detailLogo {
  display: block !important;
}

/* ═══════════════════════════════════════════
   MOBILE ADJUSTMENTS
   ═══════════════════════════════════════════ */
@media (max-width: 800px) {
  .skinHeader:not(.osdHeader) {
    min-width: unset;
    width: calc(100% - 1rem);
    top: 8px !important;
    border-radius: 20px !important;
    padding: 0 0.2rem !important;
  }
}
