.jr-spp-wrap {
    --jr-spp-track-color: var(--jr-spp-inherited-text, #d7d7d7);
    --jr-spp-active-color: var(--jr-spp-inherited-active, #e7c77b);
    color: var(--jr-spp-track-color);
}

.jr-spp-tracklist {
    display: grid;
    gap: 12px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.jr-spp-track {
    display: grid;
    grid-template-columns: 2ch 18px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 5px 0;
    border: 0;
    color: inherit;
    background: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
    opacity: .82;
    transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

/* Keep theme-wide button decoration from spilling into the added playlist controls. */
.jr-spp-wrap .jr-spp-track {
    padding: 8px 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--jr-spp-track-color);
    font: inherit;
    font-weight: 400;
    letter-spacing: inherit;
    line-height: 1.45;
    text-transform: none;
    text-decoration: none;
}

.jr-spp-wrap .jr-spp-track:hover,
.jr-spp-wrap .jr-spp-track:focus-visible,
.jr-spp-wrap .jr-spp-track.is-active {
    color: var(--jr-spp-active-color);
    background: transparent;
}

.jr-spp-wrap .jr-spp-skip {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--jr-play-color, #d5d5d5);
}

.jr-spp-wrap .jr-spp-skip:hover {
    background: transparent;
    color: var(--jr-play-color-hover, #fff);
}

.jr-spp-track:hover,
.jr-spp-track:focus-visible,
.jr-spp-track.is-active {
    color: var(--jr-spp-active-color);
    opacity: 1;
}

.jr-spp-track:disabled,
.jr-spp-skip:disabled {
    cursor: progress;
    opacity: .55;
}

.jr-spp-track:focus-visible,
.jr-spp-skip:focus-visible {
    outline: 2px solid var(--jr-spp-active-color);
    outline-offset: 3px;
}

.jr-spp-track-play {
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 13px solid currentColor;
}

.jr-spp-track-copy {
    min-width: 0;
}

.jr-spp-track-title,
.jr-spp-track-subtitle {
    display: block;
}

.jr-spp-track-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.jr-spp-track-subtitle {
    margin-top: 2px;
    font-size: .78em;
    opacity: .68;
}

.jr-spp-track-subtitle:empty {
    display: none;
}

.jr-spp-duration,
.jr-spp-number {
    font-variant-numeric: tabular-nums;
}

.jr-spp-wrap[data-show-durations="no"] .jr-spp-duration {
    display: none;
}

.jr-spp-transport-controls {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: clamp(10px, 2vw, 22px);
    justify-self: center;
}

.jr-spp-skip {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    color: var(--jr-play-color, #d5d5d5);
    background: none;
    cursor: pointer;
    opacity: .82;
    transition: color 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.jr-spp-skip:hover {
    color: var(--jr-play-color-hover, #fff);
    opacity: 1;
    transform: scale(1.08);
}

.jr-spp-skip svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}

.jr-spp-preset-manager input,
.jr-spp-preset-manager select {
    width: 100%;
    margin-bottom: 8px;
}

.jr-spp-preset-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.jr-spp-preset-status {
    min-height: 1.4em;
    margin-top: 8px;
    font-size: 11px;
}

@media (max-width: 600px) {
    .jr-spp-track {
        grid-template-columns: 2ch 14px minmax(0, 1fr) auto;
        gap: 8px;
    }

    .jr-spp-track-play {
        border-top-width: 6px;
        border-bottom-width: 6px;
        border-left-width: 10px;
    }
}
