/* ============================================
   JUKEBOX LAYOUT
   Layout and positioning rules for jukebox components
   ============================================ */

/* ============================================
   MAIN CONTAINER
   ============================================ */

.jukebox {
    width: 100%;
    max-width: 990px;
    padding: 10px;
    box-sizing: border-box;
    border-left: 1px dashed #000;
    border-right: 1px dashed #000;
    flex-grow: 0;
    flex-shrink: 1;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

/* ============================================
   PLAYER CONTROLS LAYOUT
   ============================================ */

.player-controls {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  border: 2px solid #fff;
  padding: 0;
}

.audio-container {
  flex: 1;
  min-width: 0; /* CRITICAL: allows flexbox shrinking */
}

.player-buttons {
  flex-shrink: 0;
  background-color: #353434 !important;
  padding: 0 10px;
}

.audio-container audio,
.audio-container .plyr {
  width: 100%; /* Full width of container */
}

/* ============================================
   SEARCH AND SORT LAYOUT
   ============================================ */

.search-and-sort-layout {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 5vw;
  margin-top: 20px;
}

.search-component {
  flex-grow: 1;
  flex-shrink: 0;
  min-width: 0;
  padding-bottom: 5px;
}

.list-order {
  flex-grow: 0;
  flex-shrink: 0;
  min-width: 0;
  margin-left: auto;
}

/* ============================================
   BLOCK STYLES
   ============================================ */

.solid-block {
  background-color: #353434;
  padding: 16px;
  border-radius: 5px;
  color: var(--_colours---white)
}

.jukebox-collapsed-view .solid-block {
  border-radius: 0px;
}

.solid-row {
  padding: 8px 12px;
  margin: 4px 0;
  background-color: #e0e0e0;
  border-radius: 4px;
  color: var(--_colours---black);
}

/* ============================================
   RESPONSIVE BREAKPOINTS
   ============================================ */

/* Mobile (540px and below) */
@media only screen and (max-width: 540px) {
  .jukebox {
    width: 95vw;
    max-width: 95vw;
    padding: 0;
    border-left: none;
    border-right: none;
    box-sizing: border-box;
  }

  .list-order {
    margin-left: 0;
  }

  .solid-block {
    padding: 4px;
  }
}
