/* Spotify playlist dock (see wwwroot/js/sound.js): a small pill bottom-left that opens the embedded player. */
.sound-dock {
    position: fixed;
    left: 0.75rem;
    bottom: calc(0.75rem + env(safe-area-inset-bottom));
    z-index: 45;
    width: min(420px, calc(100vw - 1.5rem - 56px));
}

/* The sliders show a caption bottom-left; lift the dock above it. */
body:has(.slider) .sound-dock {
    bottom: calc(3.25rem + env(safe-area-inset-bottom));
}

.sound-bar {
    display: flex;
    gap: 0.5rem;
}

.sound-dock.on .sound-bar {
    margin-bottom: 0.5rem;
}

.sound-toggle,
.sound-size {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 44px;
    padding: 0.55rem 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(6px);
    color: var(--ink);
    font: inherit;
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
}

    .sound-toggle:hover,
    .sound-size:hover {
        border-color: var(--accent);
    }

.sound-size[hidden] {
    display: none;
}

.sound-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: var(--ink-muted);
}

.sound-toggle[aria-pressed="true"] .sound-dot {
    background: var(--accent);
}

.sound-note {
    margin: 0;
    padding: 0.8rem 1rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.75);
    color: var(--ink-soft);
    font-size: 0.8rem;
}

.sound-body iframe {
    display: block;
    border: 0;
}

/* Phones: no playlist on any page (it takes up too much room); desktop keeps it. */
@media (max-width: 899.98px) {
    .sound-dock {
        display: none;
    }
}

/* Phone music player (see wwwroot/js/mp3.js): shown only where the Spotify dock is hidden. */
.mobile-audio-bar {
    display: none;
}

@media (max-width: 899.98px) {
    .mobile-audio-bar {
        position: fixed;
        left: 50%;
        bottom: calc(12px + env(safe-area-inset-bottom));
        z-index: 60;
        display: flex;
        align-items: center;
        gap: 8px;
        transform: translateX(-50%);
    }

    .mobile-audio-nav,
    .mobile-audio-toggle {
        height: 36px;
        border: 0;
        color: #fff;
        font: inherit;
        font-weight: 700;
        letter-spacing: 0.02em;
        cursor: pointer;
    }

    .mobile-audio-nav {
        width: 36px;
        padding: 0;
        border-radius: 50%;
        background: rgba(40, 40, 40, 0.82);
        font-size: 1rem;
    }

    .mobile-audio-toggle {
        min-width: 96px;
        padding: 0 12px;
        border-radius: 20px;
        background: rgba(200, 16, 46, 0.88);
        font-size: 0.72rem;
        text-transform: uppercase;
    }

    .mobile-audio-toggle.off {
        background: rgba(80, 80, 80, 0.82);
    }

    /* The bar sits bottom-centre, so keep slider captions clear of it. */
    .slider .caption {
        bottom: calc(3.5rem + env(safe-area-inset-bottom));
    }
}
