@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@400;600;700;800;900&display=swap');

.sf-more-radios{
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    min-width:0!important;
    font-family:'Roboto Condensed','Arial Narrow',Arial,sans-serif!important;
}

.sf-more-radios *{
    box-sizing:border-box;
    font-family:'Roboto Condensed','Arial Narrow',Arial,sans-serif;
}

.sf-more-radios > h2{
    flex:0 0 auto!important;
    margin:0 0 8px!important;
    padding:0!important;
    font-size:1rem!important;
    line-height:1.1!important;
}

/* motor antigo do player: existe, funciona, mas não participa do layout */
.sf-more-radios .sf-radio-engine{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
    white-space:nowrap!important;
    padding:0!important;
    margin:0!important;
}

.sf-radio-slider{
    position:relative;
    flex:1 1 auto;
    min-height:0;
    display:flex;
    align-items:center;
    padding:0 34px;
}

.sf-radio-viewport{
    width:100%;
    height:100%;
    min-height:0;
    overflow:hidden;
    border-radius:20px;
}

.sf-radio-track{
    width:100%;
    height:100%;
    min-height:0;
    display:flex;
    align-items:stretch;
    gap:0;
    transition:transform .48s cubic-bezier(.2,.78,.18,1);
    will-change:transform;
}

.sf-radio-card{
    --sf-radio-accent:#53caff;
    --sf-radio-bg:none;

    flex:0 0 100%;
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;

    position:relative;
    overflow:hidden;

    border-radius:21px;
    border:1px solid color-mix(in srgb,var(--sf-radio-accent) 62%,rgba(255,255,255,.16));

    background:#081321;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.035),
        0 0 18px color-mix(in srgb,var(--sf-radio-accent) 8%,transparent);

    color:#fff;
}

.sf-radio-card.is-selected{
    border-color:var(--sf-radio-accent);
}

.sf-radio-bg{
    position:absolute;
    inset:-14px;
    z-index:0;

    background-image:
        linear-gradient(180deg,rgba(4,11,20,.72),rgba(4,10,18,.90)),
        var(--sf-radio-bg);

    background-size:cover;
    background-position:center;

    filter:blur(9px) saturate(1.12);
    transform:scale(1.10);
    opacity:.95;

    pointer-events:none;
}

.sf-radio-card:not(.sf-has-logo) .sf-radio-bg{
    background:
        radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--sf-radio-accent) 22%,transparent),transparent 36%),
        linear-gradient(180deg,#0b1727,#07101b);
    filter:none;
    transform:none;
}

.sf-radio-content{
    position:relative;
    z-index:1;

    width:100%;
    height:100%;
    min-height:0;

    display:flex;
    flex-direction:column;
    align-items:center;

    padding:12px 20px 13px;
}

.sf-radio-logo{
    flex:0 0 132px;
    width:132px;
    height:132px;

    margin:0 auto 8px;
    padding:4px;

    border-radius:18px;

    display:grid;
    place-items:center;

    background:rgba(4,11,20,.58);
    border:2px solid var(--sf-radio-accent);

    box-shadow:
        0 0 17px color-mix(in srgb,var(--sf-radio-accent) 22%,transparent),
        inset 0 1px 0 rgba(255,255,255,.05);
}

.sf-radio-logo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
    border-radius:13px;
}

.sf-radio-logo-fallback{
    width:100%;
    height:100%;

    display:grid;
    place-items:center;

    border-radius:13px;

    font-size:2.9rem;

    background:
        radial-gradient(circle at center,color-mix(in srgb,var(--sf-radio-accent) 18%,transparent),transparent 58%),
        rgba(7,15,26,.90);
}

.sf-radio-card h3{
    width:100%;
    margin:0 0 5px!important;
    padding:0!important;

    color:#fff!important;

    font-size:1.12rem!important;
    line-height:1.05!important;
    font-weight:900!important;

    text-align:center!important;
    text-shadow:0 2px 5px rgba(0,0,0,.50);
}

.sf-radio-card p{
    width:100%;
    min-height:43px;

    margin:0!important;
    padding:0 3px!important;

    color:#edf4fc!important;

    font-size:.76rem!important;
    line-height:1.24!important;
    font-weight:600!important;

    text-align:center!important;
    text-shadow:0 2px 5px rgba(0,0,0,.56);

    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    line-clamp:3;
    overflow:hidden;
}

.sf-radio-favorite,
.sf-radio-access{
    appearance:none;
    -webkit-appearance:none;

    outline:0;
    cursor:pointer;

    font:inherit!important;
}

.sf-radio-favorite{
    flex:0 0 32px;

    min-width:154px;
    height:32px;

    margin:auto auto 0!important;
    padding:0 11px!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;

    border-radius:999px!important;
    border:1px solid color-mix(in srgb,var(--sf-radio-accent) 62%,rgba(255,255,255,.18))!important;

    background:rgba(4,11,20,.68)!important;
    color:#dce9f7!important;

    font-size:.68rem!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.02em!important;

    box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}

.sf-radio-favorite span,
.sf-radio-favorite b{
    display:inline!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    background:none!important;
    border:0!important;
    border-radius:0!important;
    line-height:1!important;
}

.sf-radio-favorite.voted{
    color:var(--sf-radio-accent)!important;
    border-color:var(--sf-radio-accent)!important;
}

.sf-radio-heart{
    color:#ff557d!important;
    font-size:1rem!important;
}

.sf-radio-access{
    flex:0 0 40px;

    width:min(226px,90%)!important;
    height:40px!important;

    margin:7px auto 0!important;
    padding:0 14px!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;

    border-radius:14px!important;
    border:1px solid color-mix(in srgb,var(--sf-radio-accent) 76%,white 24%)!important;

    background:var(--sf-radio-accent)!important;
    color:#07111d!important;

    box-shadow:0 6px 16px rgba(0,0,0,.20)!important;
}

.sf-radio-access i{
    flex:0 0 24px!important;
    width:24px!important;
    height:24px!important;

    margin:0!important;
    padding:0!important;

    display:grid!important;
    place-items:center!important;

    border:0!important;
    border-radius:50%!important;

    background:#08111d!important;
    color:var(--sf-radio-accent)!important;

    font-style:normal!important;
    font-size:.62rem!important;
    line-height:1!important;
}

.sf-radio-access strong{
    margin:0!important;
    padding:0!important;

    color:#07111d!important;

    font-size:.83rem!important;
    line-height:1!important;
    font-weight:900!important;
}

.sf-radio-nav{
    position:absolute!important;
    z-index:20!important;
    top:50%!important;
    transform:translateY(-50%)!important;

    width:40px!important;
    height:40px!important;

    padding:0!important;
    margin:0!important;

    display:grid!important;
    place-items:center!important;

    border-radius:50%!important;
    border:1px solid rgba(51,183,255,.58)!important;

    background:linear-gradient(180deg,#0d1a2a,#081321)!important;
    color:#e5f8ff!important;

    font-size:1.18rem!important;
    line-height:1!important;

    box-shadow:0 0 16px rgba(39,137,255,.13)!important;
}

.sf-radio-prev{left:4px!important}
.sf-radio-next{right:4px!important}

.sf-radio-dots{
    flex:0 0 12px;
    min-height:12px;

    max-width:100%;
    overflow:hidden;

    margin-top:6px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
}

.sf-radio-dot{
    appearance:none;
    -webkit-appearance:none;

    flex:0 0 7px;

    width:7px;
    height:7px;

    padding:0!important;
    margin:0!important;

    border:0!important;
    border-radius:50%!important;

    background:#4b76a8!important;

    cursor:pointer;
}

.sf-radio-dot.active{
    width:9px;
    height:9px;
    flex-basis:9px;

    background:#f0ca77!important;
    box-shadow:0 0 10px rgba(240,202,119,.24)!important;
}

@media(min-width:901px){
    .sf-more-radios{
        height:clamp(420px,55vh,470px)!important;
        min-height:420px!important;
        padding:14px!important;
    }
}

@media(max-width:900px){
    /* No mobile, a navegação é feita por swipe + pontinhos. */
    .sf-radio-nav{
        display:none!important;
    }

    .sf-more-radios{
        min-height:0!important;
        height:auto!important;
    }

    /* O bloco antigo de lista não deve reservar espaço no mobile. */
    .sf-more-radios > .radioList,
    .sf-more-radios > .radio-list,
    .sf-more-radios > .radios-list,
    .sf-more-radios > .mobile-radios,
    .sf-more-radios > .mobile-radio-list{
        display:none!important;
        height:0!important;
        min-height:0!important;
        margin:0!important;
        padding:0!important;
        overflow:hidden!important;
    }

    .sf-radio-slider{
        height:340px;
        flex:none;
    }

    .sf-radio-logo{
        flex-basis:124px;
        width:124px;
        height:124px;
    }

    .sf-radio-content{
        padding:11px 18px 12px;
    }

    /* Swipe lateral no mobile, preservando a rolagem vertical da página. */
    .sf-radio-viewport{
        touch-action:pan-y;
        overscroll-behavior-x:contain;
        -webkit-user-select:none;
        user-select:none;
    }

    .sf-radio-card.sf-touch-dragging{
        transition:none!important;
        animation:none!important;
        will-change:transform,opacity;
    }

    .sf-radio-card.sf-touch-settling{
        transition:transform .18s cubic-bezier(.2,.78,.18,1),opacity .18s ease!important;
        animation:none!important;
        will-change:transform,opacity;
    }
}

/* ===== MODO MANUAL / ECONOMIA DE RECURSOS ===== */
.sf-more-radios .sf-radio-track{
    transform:none!important;
    will-change:auto!important;
    transition:none!important;
}

.sf-more-radios .sf-radio-card[hidden]{
    display:none!important;
}

.sf-more-radios .sf-radio-card:not(.is-viewing) .sf-radio-bg{
    display:none!important;
}

.sf-more-radios .sf-radio-card.is-viewing{
    animation:sfRadioManualFade .22s ease-out;
}

@keyframes sfRadioManualFade{
    from{opacity:.45;transform:scale(.992)}
    to{opacity:1;transform:scale(1)}
}

@media (prefers-reduced-motion:reduce){
    .sf-more-radios .sf-radio-card.is-viewing{animation:none!important}
}
