@layer components {
    @keyframes avPickerFade {
        from { opacity: 0; }
        to { opacity: 1; }
    }

    @keyframes avPickerIn {
        from { opacity: 0; transform: translateY(8px) scale(0.98); }
        to { opacity: 1; transform: none; }
    }

    .av-song-picker {
        align-items: center;
        animation: avPickerFade 120ms ease;
        background: rgba(28, 34, 48, 0.55);
        display: flex;
        inset: 0;
        justify-content: center;
        padding: clamp(0px, 2.5vw, 28px);
        position: fixed;
        z-index: 1080;
    }

    .av-song-picker[hidden] {
        display: none;
    }

    .av-song-picker__dialog {
        animation: avPickerIn 140ms ease;
        background: #fff;
        border: 2px solid rgba(15, 23, 42, 0.32);
        border-radius: clamp(0px, 2.5vw, 20px);
        box-shadow: 6px 6px 0 rgba(15, 23, 42, 0.32);
        display: flex;
        flex-direction: column;
        height: min(94vh, 900px);
        max-width: 960px;
        overflow: hidden;
        width: 100%;
    }

    .av-song-picker__header {
        align-items: flex-start;
        background: #1c2230;
        color: #fff;
        display: flex;
        gap: 16px;
        padding: 18px 22px;
    }

    .av-song-picker__heading {
        flex: 1 1 auto;
        min-width: 0;
    }

    .av-song-picker__title {
        font-size: clamp(1.15rem, 3.2vw, 1.5rem);
        font-weight: 700;
        line-height: 1.2;
    }

    .av-song-picker__context {
        font-size: 0.85rem;
        margin-top: 5px;
        opacity: 0.68;
    }

    .av-song-picker__close {
        background: transparent;
        border: 2px solid rgba(255, 255, 255, 0.35);
        border-radius: 4px;
        color: #fff;
        cursor: pointer;
        flex: 0 0 auto;
        height: 44px;
        line-height: 1;
        width: 44px;
    }

    .av-song-picker__close:hover,
    .av-song-picker__close:focus {
        background: rgba(255, 255, 255, 0.14);
    }

    .av-song-picker__tabbar {
        background: #f6f9fa;
        border-bottom: 1px solid rgba(15, 23, 42, 0.12);
        padding: 12px 20px 0;
    }

    .av-song-picker__tabbar .nav-tabs {
        border-bottom: none;
    }

    .av-song-picker__tabbar .nav-item > a {
        cursor: pointer;
    }

    .av-song-picker__controls {
        align-items: center;
        border-bottom: 1px solid rgba(15, 23, 42, 0.12);
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        padding: 14px 20px;
    }

    .av-song-picker__searchwrap {
        flex: 1 1 260px;
        min-width: 0;
    }

    .av-song-picker__sort {
        align-items: center;
        display: flex;
        flex: 0 0 auto;
        gap: 8px;
    }

    .av-song-picker__sort .dropdown-toggle {
        cursor: pointer;
    }

    .av-song-picker__body {
        background: #fff;
        flex: 1 1 auto;
        overflow-y: auto;
    }

    .av-song-picker__item {
        border-left: none;
        border-right: none;
        cursor: pointer;
        gap: 12px;
        min-height: 56px;
        padding: 12px 20px;
    }

    .av-song-picker__item:hover,
    .av-song-picker__item:focus {
        background: #eef7f7;
    }

    .av-song-picker__logo {
        flex-shrink: 0;
        height: 38px;
        width: 38px;
    }

    .av-song-picker__logo img {
        width: 26px;
    }

    /* Cover art fills the square the category mark only sits inside. */
    .av-song-picker__logo img.av-song-picker__art {
        border-radius: 6px;
        height: 38px;
        object-fit: cover;
        width: 38px;
    }

    .av-song-picker__name {
        font-size: 1.05em;
    }

    .av-song-picker__artist {
        font-size: 0.9em;
    }

    .av-song-picker__meta {
        flex-shrink: 0;
        min-width: 9.5em;
    }

    .av-song-picker__message {
        color: var(--av-muted);
        padding: 34px 20px;
        text-align: center;
    }

    .av-song-picker__footer {
        align-items: center;
        background: #f6f9fa;
        border-top: 1px solid rgba(15, 23, 42, 0.12);
        display: flex;
        gap: 12px;
        justify-content: space-between;
        padding: 12px 20px;
    }

    .av-song-picker__footer-actions {
        align-items: center;
        display: flex;
        gap: 10px;
    }

    /* Offering to create what the musician just typed, right where they looked for it. */
    .av-song-picker__createwrap {
        padding: 14px 20px 20px;
    }

    .av-song-picker__create {
        align-items: center;
        background: #fff;
        border: 2px dashed rgba(15, 23, 42, 0.32);
        border-radius: 8px;
        cursor: pointer;
        display: flex;
        gap: 12px;
        padding: 14px 16px;
        transition: background 120ms ease, box-shadow 120ms ease;
    }

    .av-song-picker__create:hover,
    .av-song-picker__create:focus {
        background: #eef7f7;
        box-shadow: 3px 3px 0 rgba(15, 23, 42, 0.18);
        outline: none;
    }

    .av-song-picker__create-icon {
        font-size: 1.1rem;
        text-align: center;
        width: 26px;
    }

    .av-song-picker__create-copy {
        min-width: 0;
    }

    .av-song-picker__create-title {
        font-size: 1.05em;
    }

    .av-song-picker__create-sub {
        font-size: 0.85em;
        margin-top: 2px;
    }

    .av-song-picker__draft {
        max-width: 620px;
        padding: 26px 22px;
    }

    .av-song-picker__draft-title {
        font-size: 1.2rem;
        font-weight: 700;
    }

    .av-song-picker__draft-sub {
        font-size: 0.88rem;
        margin-top: 4px;
    }

    .av-song-picker__draft-fields {
        display: flex;
        flex-direction: column;
        gap: 16px;
        margin-top: 20px;
    }

    .av-song-picker__draft-label {
        color: #222434;
        display: block;
        font-size: 0.85rem;
        font-weight: 700;
        margin-bottom: 6px;
    }

    .av-song-picker__kinds {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

    .av-song-picker__kind {
        background: #fff;
        border: 2px solid rgba(15, 23, 42, 0.32);
        border-radius: 4px;
        box-shadow: 3px 3px 0 rgba(15, 23, 42, 0.16);
        color: #222434;
        cursor: pointer;
        padding: 9px 16px;
        transition: transform 120ms ease, box-shadow 120ms ease;
    }

    .av-song-picker__kind.is-selected {
        background: #e6f4f4;
        border-color: var(--teal, #35abb2);
        box-shadow: 3px 3px 0 rgba(15, 23, 42, 0.32);
        font-weight: 700;
    }

    .av-song-picker__draft-actions {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 24px;
    }
}
