/* assets/css/player.css */

:root {
  --bmp-player-icon: #34e38a;
  --bmp-player-icon-hover: #e961a6; /* Example: a bright green for hover (or choose your favorite) */
  /* Common background for frosted glass sections */
  --bmp-frost-bg: rgba(24, 26, 32, 0.75);
}

/* Player Icon Styles (unchanged) */
#bmp-music-icon {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 99999;
  width: 56px;
  height: 56px;
  background: none;
  cursor: pointer;
  border-radius: 50%;
  box-shadow: 0 2px 14px rgba(20,24,36,0.13);
  display: flex;
  align-items: center;
  justify-content: center;
  outline: none;
  transition: box-shadow 0.18s;
}
#bmp-music-icon:focus {
  box-shadow: 0 0 0 3px #34e38a88, 0 2px 14px rgba(20,24,36,0.13);
}
#bmp-music-icon .bmp-icon-svg {
  display: block;
  width: 36px;
  height: 36px;
}
#bmp-music-icon .bmp-pulse {
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(52,227,138,0.18);
  z-index: -1;
  left: 4px; top: 4px;
  animation: bmp-pulse 1.6s infinite;
}
@keyframes bmp-pulse {
  0% { transform: scale(1); opacity: 0.88; }
  70% { transform: scale(1.33); opacity: 0.35; }
  100% { transform: scale(1.7); opacity: 0; }
}

/* Player Panel Styles (modern horizontal layout) */
.bmp-player-panel {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bmp-frost-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  color: #fff;
  z-index: 100001; /* Higher than slideup panel */
  width: 100%;
  box-shadow: 0 -2px 14px rgba(20,24,36,0.13);
  height: 76px;
  padding: 0 16px;
  font-family: inherit;
}
.bmp-player-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%; /* Fill the parent */
  gap: 16px;
}

/* Left: Close, Title, Artist */
.bmp-player-left {
  min-width: 220px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.bmp-player-title-artist {
  display: flex;
  flex-direction: column;
  font-size: 1.1rem;
}
.bmp-player-title { font-weight: bold; }
.bmp-player-artist { font-size: 0.95em; color: #bbb; }

/* Waveform: now horizontal, between left and controls */
.bmp-player-waveform {
  flex: 1 1 auto;
  min-width: 120px;
  max-width: 600px;
  /* Now fill the height! */
  height: 64px;
  margin: 0 12px;
  background: transparent;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 1.1rem;
  text-align: center;
  line-height: 64px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10);
}

/* Center: Controls */
.bmp-player-center {
  display: flex;
  align-items: center;
  justify-content: center;
}
.bmp-player-controls {
  display: flex;
  gap: 8px;
  align-items: center;
}
.bmp-player-volume {
  width: 80px;
  margin-left: 8px;
}
.bmp-player-btn svg {
        cursor: pointer !important;
  background: none;
  border: none;
  width: 28px;
  height: 28px;
  display: block;
  color: var(--bmp-player-icon); /* default color */
  filter: drop-shadow(0 0 4px rgba(255,255,255,0.25));
  transition: color 0.18s;
}
.bmp-player-btn,
.bmp-player-btn svg {
	cursor: pointer !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.bmp-player-btn {
	cursor: pointer !important;
  appearance: none;
  -webkit-appearance: none;
  padding: 4px;
  margin: 0;
}
.bmp-player-btn:hover svg,
.bmp-player-btn:focus svg {
  color: var(--bmp-player-icon-hover);
  outline: none;
}
/* Right: Toggles, Settings, Fullscreen */
.bmp-player-right {
  min-width: 160px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
/* Force range input to fill exactly 100% of its width */
.bmp-player-volume {
  width: 80px;
  min-width: 60px;
  margin-left: 8px;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  height: 18px; /* Match the thumb */
	border: none;
  vertical-align: middle;
  padding: 0;
  accent-color: var(--bmp-player-icon);
}

/* Chrome, Safari, Edge */
.bmp-player-volume::-webkit-slider-thumb {
  background: var(--bmp-player-icon);
  border: 2px solid #fff;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  cursor: pointer;
  transition: background 0.18s, border 0.18s;
}
/* Remove Safari's weird extra margin */
.bmp-player-volume::-webkit-slider-thumb {
  margin-top: -6px; /* Pull thumb down onto track: tweak until centered */
}
.bmp-player-volume:focus {
  outline: none !important;
  box-shadow: none !important;
}
/* Chrome, Safari, Edge */
.bmp-player-volume:focus::-webkit-slider-thumb {
  outline: none !important;
  box-shadow: none !important;
  border: 2px solid #fff; /* Keep your custom border if you want */
}
.bmp-player-volume::-webkit-slider-thumb:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* Firefox */
.bmp-player-volume:focus::-moz-range-thumb {
  outline: none !important;
  box-shadow: none !important;
  border: 2px solid #fff;
}

/* Edge/IE (just in case) */
.bmp-player-volume:focus::-ms-thumb {
  outline: none !important;
  box-shadow: none !important;
  border: 2px solid #fff;
}
/* Chrome, Safari, Edge (WebKit): add this for hover effect! */
.bmp-player-volume:hover::-webkit-slider-thumb,
.bmp-player-volume:focus::-webkit-slider-thumb {
  background: var(--bmp-player-icon-hover);
}
.bmp-player-volume::-webkit-slider-runnable-track {
  background: #39364a;
  height: 5px;
  border-radius: 5px;
}

/* Firefox */
.bmp-player-volume::-moz-range-thumb {
  background: var(--bmp-player-icon);
  border: 2px solid #fff;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  cursor: pointer;
  transition: background 0.18s, border 0.18s;
}
.bmp-player-volume::-moz-range-thumb:hover {
  background: var(--bmp-player-icon-hover);
}
/* Remove extra spacing for Firefox */
.bmp-player-volume::-moz-range-track {
  background: #39364a;
  height: 5px;
  border-radius: 5px;
}

/* IE/Edge */
.bmp-player-volume::-ms-thumb {
  background: var(--bmp-player-icon);
  border: 2px solid #fff;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  cursor: pointer;
  transition: background 0.18s, border 0.18s;
}
.bmp-player-volume::-ms-thumb:hover {
  background: var(--bmp-player-icon-hover);
}
.bmp-player-volume::-ms-fill-lower,
.bmp-player-volume::-ms-fill-upper {
  background: #39364a;
  border-radius: 5px;
}
.bmp-player-volume::-ms-tooltip {
  display: none; /* Hide value tooltip on Edge */
}
/* Remove outline and default background */
.bmp-player-volume:focus {
  outline: none;
}

/* Remove border/outline in Firefox */
.bmp-player-volume::-moz-focus-outer {
  border: 0;
}
/* Full width for all browsers */
.bmp-player-volume,
.bmp-player-volume::-webkit-slider-runnable-track,
.bmp-player-volume::-moz-range-track,
.bmp-player-volume::-ms-fill-lower,
.bmp-player-volume::-ms-fill-upper {
  box-sizing: border-box;
}
.bmp-player-volume {
  background: transparent;
}
/* Remove ugly focus/active shadow/outline on volume bar/thumb */
.bmp-player-volume:focus {
  outline: none !important;
  box-shadow: none !important;
}
.bmp-player-volume:focus::-webkit-slider-thumb,
.bmp-player-volume::-webkit-slider-thumb:focus {
  outline: none !important;
  box-shadow: none !important;
  border: 2px solid #fff;
}
.bmp-player-volume:focus::-moz-range-thumb {
  outline: none !important;
  box-shadow: none !important;
  border: 2px solid #fff;
}
.bmp-player-volume:focus::-ms-thumb {
  outline: none !important;
  box-shadow: none !important;
  border: 2px solid #fff;
}
/* Remove Chrome/Safari's white focus glow on slider thumb */
.bmp-player-volume:focus {
  outline: none !important;
  box-shadow: none !important;
}

.bmp-player-volume:focus::-webkit-slider-thumb {
  outline: none !important;
  box-shadow: none !important;
}

.bmp-player-volume::-webkit-slider-thumb:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* Target active (click-drag) state too */
.bmp-player-volume:active::-webkit-slider-thumb {
  outline: none !important;
  box-shadow: none !important;
}
input[type="range"]:focus,
input[type="range"]:active {
  outline: none !important;
  box-shadow: none !important;
}
input[type="range"]:focus::-webkit-slider-thumb,
input[type="range"]:active::-webkit-slider-thumb {
  outline: none !important;
  box-shadow: none !important;
}
input[type="range"]:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
input[type="range"]:focus-visible::-webkit-slider-thumb {
  outline: none !important;
  box-shadow: none !important;
}
.bmp-player-volume:focus,
.bmp-player-volume:active {
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}
/* Slide-up Panel Styles */
/* Slide-up panel styles */
.bmp-slideup-panel {
  position: fixed;
  left: 0; right: 0;
  bottom: 76px; /* just above the main player! */
  width: 100%;
  max-height: 50vh;
  background: var(--bmp-frost-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  color: #fff;
  z-index: 99998;
  box-shadow: 0 -6px 24px rgba(0,0,0,0.18);
  border-radius: 20px 20px 0 0;
  overflow-y: auto;
  transition: transform 0.33s cubic-bezier(.55,.04,.12,.97);
  transform: translateY(100%);
  display: block;
  will-change: transform;
}
.bmp-slideup-panel.active {
  transform: translateY(0%);
}
.bmp-slideup-panel[aria-hidden="true"] {
  pointer-events: none;
  opacity: 0.02;
}

.bmp-slideup-panel:not(.bmp-hidden) {
  transform: translateY(0%);
  opacity: 1;
  pointer-events: auto;
}
.bmp-slideup-header {
  display: flex;
  align-items: center;
  padding: 16px 20px 10px 12px;
  border-bottom: 1px solid #292c35;
  background: transparent;
}
.bmp-panel-toggle-btn {
  background: none;
  border: none;
  color: var(--bmp-player-icon);
  font-size: 2.2rem;
  margin-right: 18px;
  cursor: pointer;
  transition: color 0.15s;
}
.bmp-panel-toggle-btn svg,
.bmp-settings-btn svg,
.bmp-fullscreen-btn svg {
  filter: drop-shadow(0 0 4px rgba(255,255,255,0.25));
}
.bmp-panel-toggle-btn:hover { color: var(--bmp-player-icon-hover); }
.bmp-slideup-actions {
  margin-left: auto;
  display: flex;
  gap: 12px;
}
.bmp-settings-btn, .bmp-fullscreen-btn {
  background: none;
  border: none;
  color: #bbb;
  font-size: 1.7rem;
  cursor: pointer;
  transition: color 0.18s;
}
.bmp-settings-btn:hover, .bmp-fullscreen-btn:hover { color: #fff; }

.bmp-slideup-content-rows {
  flex: 1;
  display: flex;
  height: 100%;
  min-width: 0;
  overflow-x: auto;
}
.bmp-slideup-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 220px;
  max-width: none;
  border-right: 1px solid #262830;
  height: 100%;
}
.bmp-slideup-col:last-child { border-right: none; }
.bmp-slideup-col-title {
  font-weight: bold;
  font-size: 1.2rem;
  padding: 10px 10px 8px 18px;
  background: var(--bmp-frost-bg);
  border-bottom: 1px solid #262830;
  position: sticky;
  top: 0;
  z-index: 1;
}
.bmp-slideup-scroll-area {
  flex: 1;
  overflow-y: auto;
  padding: 8px 16px;
  scrollbar-width: thin;
  scrollbar-color: var(--bmp-player-icon) #23253a;
}
.bmp-slideup-scroll-area::-webkit-scrollbar {
  width: 8px;
}
.bmp-slideup-scroll-area::-webkit-scrollbar-track {
  background: #23253a;
}
.bmp-slideup-scroll-area::-webkit-scrollbar-thumb {
  background: var(--bmp-player-icon);
  border-radius: 4px;
}
.bmp-slideup-scroll-area::-webkit-scrollbar-thumb:hover {
  background: var(--bmp-player-icon-hover);
}
@media (max-width: 1100px) {
  .bmp-slideup-col { min-width: 170px; }
}
@media (max-width: 800px) {
  .bmp-slideup-panel { height: 85vh; }
  .bmp-slideup-col { min-width: 120px; max-width: none; }
  .bmp-slideup-content-rows { flex-direction: column; }
  .bmp-slideup-col { border-right: none; border-bottom: 1px solid #262830; }
  .bmp-slideup-col:last-child { border-bottom: none; }
}
/* Slide-Up Panel Fullscreen Styles */
.bmp-slideup-panel.bmp-fullscreen {
  position: fixed !important;
  left: 0; right: 0; top: 0; bottom: 0;
  bottom: 76px;   /* Or whatever the height of your player panel is */
  width: 100vw !important;
  height: auto !important;
  max-height: none;
  z-index: 100000; /* Above player */
  border-radius: 0 !important;
  box-shadow: none !important;
  margin: 0;
  background: var(--bmp-frost-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transition: all 0.2s cubic-bezier(.4,0,.2,1);
  display: flex;
  overflow-y: auto;
  flex-direction: column;
}
.bmp-slideup-panel.bmp-slideup-fullscreen {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 100vh !important;
  max-height: 100vh !important;
  width: 100vw !important;
  z-index: 100000;
  border-radius: 0;
  box-shadow: none;
  transition: none;
  background: var(--bmp-frost-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.bmp-track-row {
  padding: 8px 12px;
  border-bottom: 1px solid #282c34;
  cursor: pointer;
  font-size: 1rem;
}
.bmp-track-row:hover {
  background: #23253a;
  color: var(--bmp-player-icon-hover);
}
.bmp-queue-row.dragover {
  background: #334 !important;
}
.bmp-queue-row.dragging {
  opacity: 0.6;
}
/* Make queue rows flex for space-between */
.bmp-queue-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 10px;
  border-bottom: 1px solid #24242a;
  font-size: 1rem;
}
.bmp-queue-row:hover {
        background: #23253a;
        color: #e961a6 !important;
        cursor: pointer;
}
.bmp-queue-row.bmp-queue-upcoming {
  background: #23253a;
  color: #e961a6 !important;
  cursor: pointer;
}
/* Remove button floats right, minimal, clickable, visible */
.bmp-queue-remove {
  margin-left: auto;
  background: none;
  border: none;
  color: #e34a4a;
  font-size: 1.6em;
  cursor: pointer;
  padding: 0 10px;
  opacity: 0.6;
  transition: opacity 0.12s;
}
.bmp-queue-remove:hover { 
	opacity: 1; 
	}
.bmp-slideup-queue .bmp-slideup-scroll-area.bmp-dragover {
  background: #23282f !important;
  outline: 2px dashed #34e38a;
  transition: background 0.2s, outline 0.2s;
}
.bmp-player-btn.bmp-mute.muted svg {
  color: #ff2222 !important; /* Or any strong red */
}
.bmp-player-btn.bmp-mute.muted svg {
  filter: drop-shadow(0 0 4px #ff2222);
}
.bmp-player-volume.muted {
  filter: grayscale(80%);
  opacity: 0.5;
  pointer-events: none;
  cursor: not-allowed;
}
.bmp-player-btn.bmp-pause {
	filter: drop-shadow(0 0 4px #34e38a);
}
.bmp-player-btn.bmp-pause:hover svg {
        color: #34e38a) !important;
}
.bmp-player-btn.bmp-like.liked svg {
  color: var(--bmp-player-icon-hover) !important;
  fill: var(--bmp-player-icon-hover) !important;
}
.bmp-player-btn.bmp-repeat.bmp-repeat-1-active svg {
  color: #e961a6 !important;
  fill: #e961a6 !important;
}
.bmp-player-btn.bmp-repeat .bmp-repeat-1-overlay {
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 0.7em;
  color: #34e38a;
  background: transparent;
  font-weight: bold;
  pointer-events: none;
  text-shadow: 0 1px 2px #0006;
  z-index: 2;
}
.bmp-player-btn.bmp-repeat {
  position: relative;
}
/* Waveform canvas area */
#bmp-waveform {
  display: block;
  width: 100%;
  height: 52px;
  background: transparent;
  margin: 0 auto;
  pointer-events: auto;
  /* Add any more fancy effects here */
}

/* Bookends or overlays can be further customized as needed */

/* Progress bar coloring handled in JS for fine control */

.bmp-slideup-panel.bmp-theatre-mode .bmp-slideup-queue,
.bmp-slideup-panel.bmp-theatre-mode .bmp-slideup-playlists {
  display: none !important;
}
.bmp-slideup-panel.bmp-theatre-mode .bmp-slideup-details {
  flex: 1 1 100%;
}
.bmp-slideup-details #bmp-youtube-iframe {
  aspect-ratio: 16/9;
  width: 100%;
  height: auto;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  background: #000;
  display: block;
  z-index: 99998;
}
.bmp-slideup-panel.bmp-theatre-mode #bmp-youtube-iframe {
  max-height: 70vh;
  min-height: 40vw;
  z-index: 99998;
}
.bmp-player-btn.bmp-video-theatre-btn {
        float: right
}
.bmp-player-btn.bmp-queue-clear-btn {
  float: right;
}
.bmp-player-btn.bmp-add-playlist-btn {
  float: right;
}
.bmp-player-btn.bmp-details-like-btn {
  float: right;
}
.bmp-builtin-section summary {
  padding: 8px 12px;
  font-weight: bold;
  cursor: pointer;
  color: #fff;
}
.bmp-builtin-section ul,
.bmp-custom-section ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bmp-custom-section {
  margin-top: 1em;
  border-top: 1px solid #282c34;
}
.bmp-custom-section > div {
  padding: 8px 12px;
  font-weight: bold;
  color: #fff;
}
.bmp-playlist-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  border-bottom: 1px solid #282c34;
  cursor: pointer;
  font-size: 1rem;
  color: #fff;
}
.bmp-tree-icon {
  display:inline-flex;
  margin-right:6px;
}
.bmp-tree-icon .bmp-tree-open { display:none; }
details[open] > summary .bmp-tree-icon .bmp-tree-open { display:inline; }
details[open] > summary .bmp-tree-icon .bmp-tree-closed { display:none; }
.bmp-tree-item summary::-webkit-details-marker { display:none; }
.bmp-playlist-row a {
  color: inherit;
  text-decoration: none;
  flex: 1;
}
.bmp-playlist-row:hover {
  background: #23253a;
  color: var(--bmp-player-icon-hover);
}
.bmp-playlist-remove {
  background: none;
  border: none;
  color: #e34a4a;
  font-size: 1.2em;
  cursor: pointer;
  opacity: 0.7;
  padding: 0 6px;
}
.bmp-playlist-remove:hover {
  opacity: 1;
}
.bmp-custom-playlist {
  border-bottom: 1px solid #282c34;
}
.bmp-builtin-playlist {
  border-bottom: 1px solid #282c34;
}
.bmp-builtin-playlist[open] ul {
  min-height:40px;
}
.bmp-custom-playlist[open] ul {
  min-height: 40px;
}
.bmp-custom-playlist summary.bmp-dragover,
.bmp-custom-playlist ul.bmp-dragover {
  background:#23282f !important;
  outline:2px dashed #34e38a;
}
.bmp-playlist-track-row {
  padding: 4px 14px;
  font-size: 0.9rem;
  color:#ddd;
  border-top:1px solid #23253a;
  cursor:pointer;
  display:flex;
  align-items:center;
}
.bmp-playlist-track-list {
  list-style:none;
  margin:0;
  padding:0;
}
.bmp-playlist-track-row.dragover { background:#334 !important; }
.bmp-playlist-track-row.dragging { opacity:0.6; }
.bmp-playlist-track-row:hover { background:#23253a; color:#fff; }
.bmp-slideup-col:last-child {
  padding-right: 20px;
}

.bmp-slideup-details img.bmp-track-featured-image {
  max-width: 100%;
  height: auto;
  margin-bottom: 0.5em;
}
.bmp-slideup-details .bmp-track-paragraph {
  margin-bottom: 0.75em;
  color: #ddd;
  line-height: 1.4;
}
.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted black;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: #111111;
  color: #34e38a;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;
  position: absolute;
  z-index: 1;
  bottom: 100%;
  left: 50%;
  margin-left: -60px;
  margin-bottom: 10px;
  
  /* Fade in tooltip - takes 1 second to go from 0% to 100% opac: */
  opacity: 0;
  transition: opacity 0.6s;
}
.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #111111 transparent transparent transparent;
}
.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}
