#songPanel {
	height: 100%;
	position: relative;
}

#songList {
	position: relative;
	width: 100%;
}

#songList .song {
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding: 10px 12px;
    border-radius: 8px;

    background: #1e1e1e;
    transition: background 0.2s ease;
}

.song {
	width: 100%;
	height: 100%;
}

#songList .song:hover {
    background: #2a2a2a;
}

/* Search */

#songSearch {
    width: calc(100% - 20px);
    margin: 10px;
    padding: 10px 12px;

    border-radius: 8px;
    border: none;
    outline: none;

    background: #1e1e1e;
    color: white;

    font-size: 1rem;

    transition: background 0.2s ease, box-shadow 0.2s ease;
}

#songSearch::placeholder {
    opacity: 0.5;
}

#songSearch:focus {
    background: #2a2a2a;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.1);
}

/* Filter btns */

#songFilterOptions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 10px 10px 10px;
}

#songFilterOptions > .filterTab {
    background: #1e1e1e;
    color: white;

    border: none;
    border-radius: 999px;

    padding: 6px 12px;
    font-size: 1.25em;

    cursor: pointer;

    opacity: 0.8;
    transition: all 0.2s ease;
}

#songFilterOptions > .filterTab:hover {
    opacity: 1;
    background: #2a2a2a;
}

#filterPanels > .filterPanel {
    display: none;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 10px 10px 10px;
}


#songFilterOptions > .filterTab.active {
    opacity: 1;
    background: #2a2a2a;
}

.filterPanel.active {
    display: grid !important;
}

@media (max-width: 450px) {
    .filterPanel.active {
        display: flex !important;
    }

    #genresPanel,
    #statusPanel {
        display: flex;
        flex-wrap: wrap;
    }
}

/* Genres/status Panel */
#genresPanel,
#statusPanel {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 8px;
    padding: 0 10px 10px 10px;
}

#genresPanel button,
#statusPanel button {
    background: #1e1e1e;
    color: white;

    border: none;
    border-radius: 8px;

    padding: 6px 12px;
    font-size: 1.25em;

    cursor: pointer;

    opacity: 0.8;
    transition: all 0.2s ease;
}

#genresPanel button:hover,
#statusPanel button:hover {
    opacity: 1;
    background: #2a2a2a;
}

#statusPanel button.active {
    opacity: 1;
    background: #2a2a2a;
}

/* info */
.songInfo {
    display: flex;
    flex-direction: column;
    margin-bottom: 6px;
}

.songTitleContainer {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.songTitle {
    font-weight: 600;
    font-size: 1.25rem;
}

.songIndex,
.songSource {
    font-size: 1em;
    opacity: 0.7;
}

/* meta */
.songMeta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;

    font-size: 1em;
    opacity: 0.8;

    margin-bottom: 8px;
}

.songGenre,
.songDuration,
.songNotes,
.songNew {
    background: rgba(255, 255, 255, 0.05);
    padding: 2px 6px;
    border-radius: 4px;
}

.songNew {
    color: #a2ff88;
}

/* Controls */
.songControls {
    display: flex;
    align-items: center;
}

.songControls button {
    background: none;
    border: none;
    cursor: pointer;

    font-size: calc(1.25rem * 1.5);
    opacity: 0.8;
    transition: opacity 0.2s ease, transform 0.1s ease;
    padding-right: 10px;
}

.songControls button:hover {
    opacity: 1;
    transform: scale(1.1);
}

/* playback */
.songPlaybackSvg {
    width: calc(12px * 1.25);
    height: calc(24px * 1.25);
    fill: white;
    display: none;
}

.playbackBtn:not(.playing) .play {
    display: block;
}

.playbackBtn.playing .pause {
    display: block;
}

.playedSong > svg {
    fill: gray;
}