:root {
    --player-button-size: 3rem;
    --player-fade-duration: 250ms;
}

.audio-player {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fade-in var(--player-fade-duration);
}
.audio-player:not(.show) {
    display: none;
    opacity: 0;
    animation: fade-out var(--player-fade-duration);
}
@keyframes fade-in {
    from {opacity: 0; transform: translateY(100%); height: 0;}
    to {opacity: 1; transform: translateY(0); height: var(--audio-player-height);}
}
@keyframes fade-out {
    from {opacity: 1; transform: translateY(0); height: var(--audio-player-height);}
    to {opacity: 0; transform: translateY(100%); height: 0;}
}

.audio-player .player-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding: 0 1rem;
    column-gap: 1.25rem;
}

.audio-player .vertical-layout {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.audio-player .row-top {
    height: 1.5rem;
    overflow: hidden;
}
.audio-player .row-bottom {
    height: var(--player-button-size);
}

.audio-player .title-text {
    font-weight: bold;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    margin-left: 1rem;
    color: var(--th-title-color);
}

.audio-player .time {
    min-width: 5ch;
    text-align: center;
}

.audio-player .player-controls {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    column-gap: 0.25rem;
    /* flex-grow: 1; */
    flex-shrink: 1;
    min-width: 0;
}

.audio-player button.btn {
    color: black;
    width: var(--player-button-size);
    height: var(--player-button-size);
    border-radius: 0.5rem;
    border: none;
    background-color: transparent;
    font-size: 1.5rem;
    padding: 0;
    outline: 0;
    flex-shrink: 0;
}
.audio-player button.btn:hover {
    color: black;
    background-color: rgba(0, 0, 0, 0.1);
}
.audio-player button.btn:active,
.audio-player button.btn.active {
    color: black;
    background-color: rgba(0, 0, 0, 0.2);
}
.audio-player button.btn:focus-visible {
    color: black;
    background-color: rgba(0, 0, 0, 0.1);
}

.audio-player .player-controls .seek-bar {
    flex-grow: 1;
    /* width: unset; */
}

.audio-player.playing .player-controls .play-button,
.audio-player:not(.playing) .player-controls .pause-button {
    display: none;
}

.audio-player .volume-controls {
    height: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    column-gap: 0.0rem;
}

.audio-player .volume-controls .volume-bar {
    height: 100%;
    min-height: 0;
    /*margin-right: 0.75rem;*/
}
.audio-player .volume-controls.muted .volume-bar {
    opacity: 0.5;
}

.audio-player .volume-button {
    padding-left: 0.5rem !important;
    text-align: left;
}

.audio-player .volume-controls.muted .volume-button {
    background-color: rgba(0, 0, 0, 0.2);
}

.audio-player .volume-controls .volume-muted,
.audio-player .volume-controls .volume-low,
.audio-player .volume-controls .volume-mid,
.audio-player .volume-controls .volume-high {
    display: none;
}

.audio-player .volume-controls.muted .volume-muted,
.audio-player .volume-controls.low .volume-low,
.audio-player .volume-controls.mid .volume-mid,
.audio-player .volume-controls.high .volume-high {
    display: inline-block;
}

.audio-player .close-hide-large {
    display: none;
}
.audio-player .close-hide-small {
    display: block;
}

@media screen and (width < 800px) {
    .audio-player .loop-button,
    .audio-player .volume-controls {
        display: none;
    }

    .audio-player .close-hide-large {
        display: block;
    }
    .audio-player .close-hide-small {
        display: none;
    }

    .audio-player .title-text {
        margin-right: 1rem;
    }

    .audio-player .player-controls {
        margin-right: 0.5rem;
    }

    .audio-player .player-container {
        padding: 0 0.5rem;
        column-gap: 1rem;
    }
}

@media screen and (width < 600px) {
    .audio-player .backward-button,
    .audio-player .forward-button {
        display: none;
    }

    .audio-player .player-container {
        column-gap: 0.25rem;
    }
}
