/*
 * Copyright (c) 2024. Amazon.com, Inc. or its affiliates. All rights reserved.
 */

body {
    background-color: black;
    /* must account for header and footer */
    padding: 80px 10px 140px 10px;
}

#searchLi {
    flex-grow: 1;
}

.searchBar {
}

#settingsMenu {
    font-family: 'Ember W Lt', sans-serif;
    color: white;
    width: 300px;
    background-color: #000000cc;
    border-radius: 8px;
    border: 1px solid #555;
    z-index: 6;
    position: fixed;
    padding: 0;
    right: 20px;
    top: 60px;
}

#settingsMenu > ul {
    text-decoration: none;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

#settingsMenu > ul > li:first-child {
    border-radius: 8px 8px 0 0;
}

#settingsMenu > ul > li:last-child {
    border-radius: 0 0 8px 8px;
}

#settingsMenu > ul > li {
    padding: 8px;
    cursor: pointer;
    transition:
        background-color 0.1s,
        color 0.1s;
}

#settingsMenu > ul > li:hover {
    background-color: #333339;
}

.headerControls {
}

#codeLinkCallout {
    position: relative;
    z-index: 2;
}

#stage {
    position: relative;
    z-index: 2;
}

/* layout containers */

.flow {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    padding: 10px;
    box-sizing: border-box;
    justify-content: center;
}

.musicItem {
    display: flex;
    flex-direction: column;
    cursor: pointer;
    gap: 10px;
}

.musicItem > label {
    color: white;
    font-size: 24px;
}

.musicItem > img {
    background-color: #020f23;
    width: 256px;
    height: 256px;
    border-radius: 8px;
    box-shadow: 6px 8px 12px #000000;
}

/* streaming quality settings */

#streamingQuality {
    padding: 15px;
    max-width: 700px;
    font-family: 'Ember W Lt', sans-serif;
    margin: 0 auto;
    color: white;
}

/* Url Input */

#urlInput {
    width: 70%;
    padding: 2em auto 2em auto;
    border: 2px solid #ccc;
    border-radius: 4px;
    font-family: monospace;
    font-size: 16px;
}

/* Play Url Button */

#playUrlBtn {
    padding: 2em auto 2em auto;
    background-color: #4caf50;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
}

/* Track Type DropDown */

.selectContainer {
    text-align: left;
    min-width: 250px;
    width: 40%;
    margin: 0;
}

.customSelect {
    width: 30%;
    padding: 2em auto 2em auto;
    border: 2px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
}

/* catalog */

.catalog {
    margin-top: 2em;
}

/* playlist */

.playlist {
    margin: 2em auto 2em auto;
    max-width: 700px;
    font-family: 'Ember W Lt', sans-serif;
}

.tracksContainer > ul {
    text-decoration: none;
    list-style-type: none;
    padding: 0;
    margin: 0;
}

.tracksContainer > ul > li {
    cursor: pointer;
    padding: 15px;
    border-bottom: thin solid #888;
    transition: background-color 0s;
    display: flex;
    gap: 10px;
}

.tracksContainer > ul > li > .title {
    width: 100%;
}

.tracksContainer > ul > li:hover {
    background-color: #ffffff33;
}

.tracksContainer > ul > li:not(:hover) {
    /* Smooth transition when hover is removed */
    transition: background-color 0.2s ease;
}

.playerControls {
    display: flex;
    max-width: 1600px;
    width: 100%;
    padding: 15px;
    gap: 15px;
    box-sizing: border-box;
    align-items: center;
}

.playerControls .trackDetails {
    flex-grow: 1;
    overflow: hidden;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: flex-start;
    padding: 2px;
}

.trackDetails > .qualityBadge {
    margin-top: 4px;
    cursor: pointer;
}

.qualityBadge {
    border-radius: 2px;
    padding: 0 4px;
    height: 1.3em;
    box-sizing: border-box;
}

.silverBadge {
    color: rgb(209, 209, 209);
    background-color: rgba(209, 209, 209, 0.15);
    border: rgb(209, 209, 209) solid 1px;
}

.goldBadge {
    color: rgb(255, 223, 4);
    background-color: rgba(255, 223, 4, 0.15);
    border: rgb(255, 223, 4) solid 1px;
}

.tracksContainer .selected {
    background-color: #2f387aaa;
}

.tracksContainer .selected:hover {
    background-color: #2f387aff;
}

/* nerd stats */

#nerdStats {
    position: fixed;
    bottom: 120px;
    left: 10px;
    background-color: #111;
    border: thin solid #333;
    border-radius: 0 4px 0 0;
    padding: 0 10px 10px 10px;
    z-index: 6;
}

#nerdStats .labelColumn {
    width: 150px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#nerdStats .dataColumn {
    min-width: 80px;
}

#nerdStats #selectionReason {
    text-transform: uppercase;
}

/* player */

.player {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;

    z-index: 5;
    background: linear-gradient(to bottom, #090909, #151515);
    box-shadow: 0 -16px 16px rgba(0, 0, 0, 0.8);
    display: flex;
    flex-direction: column;
    align-items: center;
    /* padding should account for progress bar */
    padding-top: 10px;
}

.progressBarContainer {
    position: absolute;
    top: -9px;
    width: 100%;
    height: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    justify-items: start;
    align-items: center;
}

.progressBarHit {
    cursor: pointer;
    width: 100%;
    height: 100%;
    max-width: 1600px;
    display: flex;
    align-items: center;
}

.progressBarFills {
    position: relative;
    height: 2px;
    width: 100%;
    transition: height 0.2s ease;
    pointer-events: none;
}

.progressBarFill,
.progressBarPrefetched,
.progressBarTrack {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.progressBarTrack {
    background-color: #222;
}

.progressBarFill {
    background-color: #fff;
}

.progressBarPrefetched {
    background-color: #555;
    transition: height 0.2s ease;
}

.progressHandle {
    position: relative;
    top: 50%;
    width: 8px;
    height: 8px;
    margin: -4px;
    background-color: white;
    border-radius: 50%;
}

.progressBarContainer:hover .progressBarFills {
    height: 8px;
}

.hSpacer {
    width: 100%;
}

.sideControlsContainer {
    width: 100%;
    display: flex;
}

.volumeContainer {
    position: relative;
}

.volumeRangeContainer {
    position: absolute;
    bottom: 40px;
    margin-left: -10px;
    padding: 5px 15px 3px;
    background-color: #00000088;
    border-radius: 8px;
    border: thin solid #333;
}

.volumeContainer input {
}

input[type='range'][orient='vertical'] {
    writing-mode: vertical-lr;
    direction: rtl;
    height: 150px;
    width: 16px;
    vertical-align: bottom;
}

/* Small screen mode */

@media (max-width: 400px) {
    .previousBtn {
        display: none;
    }
}
