/* ============================================================
   home-page.css - RPOOL.ID home page styles
   Extracted from inline <style> blocks in home.php (FASE 3.9)
   ============================================================ */

    /* ---- Version Picker (SweetAlert2) ---- */
    .swal-version-popup { border:1px solid rgba(255,255,255,.06)!important;border-radius:18px!important;padding:0!important; }
    .swal-version-popup .swal2-title { padding:20px 48px 14px 24px!important;text-align:left!important;font-size:1rem!important; }
    .swal-version-popup .swal2-html-container { padding:0 24px 24px!important;margin:0!important;text-align:left!important; }
    .swal-version-popup .swal2-close { color:#6b6b80!important;font-size:1.6rem!important;top:12px!important;right:16px!important;transition:color .2s!important; }
    .swal-version-popup .swal2-close:hover { color:var(--text-primary,#fff)!important; }

    .ver-list { max-height:420px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px; }
    .ver-list::-webkit-scrollbar { width:5px; }
    .ver-list::-webkit-scrollbar-track { background:transparent; }
    .ver-list::-webkit-scrollbar-thumb { background:rgba(108,92,231,.3);border-radius:10px; }

    .ver-item { display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px 18px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);transition:all .2s;text-align:left; }
    .ver-item:hover { background:rgba(108,92,231,.08);border-color:rgba(108,92,231,.2); }
    .ver-item-info { min-width:0; }
    .ver-item-title { font-weight:600;font-size:.92rem;color:var(--text-primary,#fff);white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35; }
    .ver-item-meta { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:5px;font-size:.78rem;color:#6b6b80; }
    .ver-item-meta .badge { font-size:.7rem;font-weight:600;padding:3px 8px;border-radius:6px;white-space:normal;max-width:none;overflow:visible;line-height:1.3; }
    .ver-item-actions { display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0; }

    .ver-btn-play { width:38px;height:38px;min-width:38px;border-radius:50%;border:2px solid rgba(108,92,231,.4);background:transparent;color:var(--accent,#6c5ce7);display:inline-flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;transition:all .2s; }
    .ver-btn-play:hover { background:var(--accent,#6c5ce7);color:#fff;border-color:var(--accent,#6c5ce7);transform:scale(1.1); }
    .ver-btn-play.played { border-color:rgba(34,197,94,.4);color:#22c55e; }
    .ver-btn-play.played:hover { background:#22c55e;border-color:#22c55e;color:#fff; }

    .ver-btn-dl { display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--accent,#6c5ce7),#7c6cf7);color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;height:38px; }
    .ver-btn-dl:hover { transform:translateY(-1px);box-shadow:0 4px 16px rgba(108,92,231,.4); }
    .ver-btn-dl i { font-size:.9rem; }
    .ver-dl-limit { font-size:.7rem;font-weight:500;opacity:.75;margin-left:2px; }

    .ver-btn-lock { width:38px;height:38px;min-width:38px;border-radius:10px;border:2px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);color:#6b6b80;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;cursor:not-allowed; }

    @media (max-width:768px) {
        .swal-version-popup { width:95vw!important;max-width:95vw!important; }
        .swal-version-popup .swal2-title { padding:16px 44px 12px 18px!important;font-size:.92rem!important; }
        .swal-version-popup .swal2-html-container { padding:0 18px 20px!important; }
        .ver-item { grid-template-columns:1fr!important;gap:8px!important;padding:12px 14px!important; }
        .ver-item-actions { justify-content:flex-start!important;width:100%; }
        .ver-btn-play { width:36px!important;height:36px!important;min-width:36px!important; }
        .ver-btn-dl { flex:1!important; }
    }
    @media (max-width:560px) {
        .swal-version-popup .swal2-title { padding:16px 40px 10px 16px!important;font-size:.88rem!important; }
        .swal-version-popup .swal2-html-container { padding:0 14px 16px!important; }
        .ver-list { max-height:55vh; }
        .ver-item { padding:10px 12px!important; }
        .ver-item-title { font-size:.85rem; }
        .ver-item-meta { gap:6px;font-size:.72rem; }
        .ver-btn-play { width:34px!important;height:34px!important;min-width:34px!important;font-size:.9rem; }
        .ver-btn-dl { padding:8px 14px!important;font-size:.78rem!important;height:34px; }
        .ver-btn-dl span { font-size:.75rem; }
        .ver-btn-dl .ver-dl-limit { font-size:.65rem; }
    }
    @keyframes verSlideIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

    /* ---- Track Date Separator ---- */
    .track-date-separator { display:flex;align-items:center;gap:14px;padding:14px 16px 6px;margin-top:4px; }
    .track-date-line { flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(108,92,231,.25),transparent); }
    .track-date-label { display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--accent,#6c5ce7);white-space:nowrap;letter-spacing:.3px;text-transform:uppercase; }
    .track-date-label i { font-size:.72rem; }

    /* ---- Ad Banner ---- */
    @keyframes rpool-ad-gradient  { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
    @keyframes rpool-ad-glow       { 0%,100%{text-shadow:0 0 10px rgba(255,255,255,.3),0 0 20px rgba(255,255,255,.1)} 50%{text-shadow:0 0 20px rgba(255,255,255,.6),0 0 40px rgba(255,255,255,.3),0 0 60px rgba(255,255,255,.1)} }
    @keyframes rpool-ad-slide      { 0%{transform:translateX(-60px);opacity:0} 10%{transform:translateX(0);opacity:1} 90%{transform:translateX(0);opacity:1} 100%{transform:translateX(60px);opacity:0} }
    @keyframes rpool-ad-bounce     { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
    @keyframes rpool-ad-typewriter { from{width:0} to{width:100%} }
    @keyframes rpool-ad-wave       { 0%,100%{transform:rotate(-1deg) scale(1)} 25%{transform:rotate(1deg) scale(1.01)} 50%{transform:rotate(-.5deg) scale(1.02)} 75%{transform:rotate(.5deg) scale(1.01)} }
    @keyframes rpool-ad-pulse      { 0%,100%{transform:scale(1)} 50%{transform:scale(1.03)} }
    @keyframes rpool-ad-particles  { 0%{transform:translateY(0) rotate(0);opacity:1} 100%{transform:translateY(-60px) rotate(720deg);opacity:0} }
    @keyframes rpool-ad-shimmer    { 0%{transform:translateX(-100%)} 100%{transform:translateX(100%)} }
    @keyframes rpool-blink-caret   { from,to{border-color:transparent} 50%{border-color:currentColor} }
    @keyframes rpool-ad-neon       { 0%,100%{text-shadow:0 0 7px rgba(255,255,255,.8),0 0 10px rgba(255,255,255,.8),0 0 21px rgba(255,255,255,.8),0 0 42px currentColor,0 0 82px currentColor;opacity:1} 20%,24%{text-shadow:none;opacity:.6} 22%{text-shadow:0 0 7px rgba(255,255,255,.8),0 0 42px currentColor;opacity:1} 50%{text-shadow:0 0 7px rgba(255,255,255,.8),0 0 10px rgba(255,255,255,.6),0 0 60px currentColor,0 0 100px currentColor;opacity:1} }
    @keyframes rpool-ad-glitch     { 0%,100%{transform:translate(0);filter:none} 10%{transform:translate(-2px,1px);filter:hue-rotate(90deg)} 20%{transform:translate(2px,-1px);filter:hue-rotate(-90deg)} 30%{transform:translate(-1px,-2px);filter:hue-rotate(45deg)} 40%{transform:translate(0);filter:none} }
    @keyframes rpool-ad-rainbow    { 0%{color:#ff0000} 16%{color:#ff8800} 33%{color:#ffff00} 50%{color:#00ff00} 66%{color:#0088ff} 83%{color:#8800ff} 100%{color:#ff0000} }
    @keyframes rpool-ad-spotlight  { 0%{background-position:-200% center} 100%{background-position:200% center} }
    @keyframes rpool-ad-float      { 0%,100%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-8px) rotate(1deg)} 75%{transform:translateY(4px) rotate(-1deg)} }
    @keyframes rpool-ad-shake      { 0%,100%{transform:translateX(0)} 10%,30%,50%,70%,90%{transform:translateX(-4px)} 20%,40%,60%,80%{transform:translateX(4px)} }
    @keyframes rpool-ad-zoom       { 0%{transform:scale(.3);opacity:0} 60%{transform:scale(1.05);opacity:1} 80%{transform:scale(.97)} 100%{transform:scale(1);opacity:1} }
    @keyframes rpool-ad-flip3d     { 0%{transform:perspective(600px) rotateY(-90deg);opacity:0} 40%{transform:perspective(600px) rotateY(10deg)} 70%{transform:perspective(600px) rotateY(-5deg)} 100%{transform:perspective(600px) rotateY(0);opacity:1} }

    /* Carousel wrapper */
    .rpool-ad-carousel {
        position:relative; margin-bottom:20px; border-radius:14px; overflow:hidden;
    }
    .rpool-ad-track {
        display:flex; transition:transform .5s cubic-bezier(.4,0,.2,1);
    }
    .rpool-ad-slide {
        min-width:100%; flex-shrink:0;
    }
    .rpool-ad-banner {
        display:block; position:relative; border-radius:14px; overflow:hidden;
        text-decoration:none!important; cursor:pointer;
        transition:box-shadow .2s;
        min-height:108px;
    }
    .rpool-ad-banner:hover {
        box-shadow:0 8px 30px rgba(0,0,0,.4);
    }
    .rpool-ad-inner {
        position:relative; z-index:2; text-align:center; padding:16px 28px;
        display:flex; flex-direction:column; align-items:center; justify-content:center;
        min-height:inherit;
    }
    .rpool-ad-title {
        font-size:1.3rem; font-weight:800; letter-spacing:.5px; line-height:1.3;
    }
    .rpool-ad-subtitle {
        font-size:.95rem; font-weight:500; opacity:.85; margin-top:6px;
    }
    /* Badge */
    .rpool-ad-badge {
        position:absolute;top:14px;right:14px;z-index:5;
        background:rgba(255,255,255,0.15);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
        padding:5px 14px;border-radius:20px;font-size:.7rem;font-weight:700;
        letter-spacing:1.2px;text-transform:uppercase;
        border:1px solid rgba(255,255,255,0.15);
        animation:rpool-ad-pulse 2s ease-in-out infinite;
    }
    /* Icon */
    .rpool-ad-icon {
        font-size:1.8rem;margin-bottom:6px;opacity:.9;
    }
    /* CTA Button */
    .rpool-ad-cta {
        display:inline-block;margin-top:8px;padding:7px 20px;
        background:rgba(255,255,255,0.15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
        border-radius:25px;font-size:.85rem;font-weight:700;letter-spacing:.5px;
        border:1px solid rgba(255,255,255,0.2);
        transition:all .25s ease;
    }
    .rpool-ad-banner:hover .rpool-ad-cta {
        background:rgba(255,255,255,0.28);transform:translateY(-1px);
        box-shadow:0 4px 15px rgba(0,0,0,.3);
    }
    /* Split layout */
    .rpool-ad-inner.split {
        flex-direction:row; text-align:left; gap:20px;
    }
    .rpool-ad-inner.split .rpool-ad-text { flex:1; min-width:0; }
    .rpool-ad-inner.split .rpool-ad-visual {
        flex:0 0 100px; display:flex; align-items:center; justify-content:center;
        font-size:3.5rem; opacity:.25;
    }
    /* Bg image overlay */
    .rpool-ad-banner.has-bg-image {
        background-size:cover!important; background-position:center!important;
    }
    .rpool-ad-shimmer {
        position:absolute;top:0;left:0;right:0;bottom:0;
        background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);
        animation:rpool-ad-shimmer 3s infinite;
    }
    .rpool-ad-particle {
        position:absolute; border-radius:50%; background:rgba(255,255,255,.12);
        bottom:-10px; animation-timing-function:ease-in-out; animation-iteration-count:infinite;
    }
    /* Arrows */
    .rpool-ad-arrow {
        position:absolute; top:50%; transform:translateY(-50%); z-index:10;
        width:36px; height:36px; border-radius:50%; border:none;
        background:rgba(0,0,0,.45); color:#fff; font-size:1rem;
        display:flex; align-items:center; justify-content:center;
        cursor:pointer; opacity:0; transition:opacity .25s,background .2s;
        backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
    }
    .rpool-ad-carousel:hover .rpool-ad-arrow { opacity:1; }
    .rpool-ad-arrow:hover { background:rgba(0,0,0,.7); }
    .rpool-ad-arrow.left  { left:10px; }
    .rpool-ad-arrow.right { right:10px; }
    /* Dots */
    .rpool-ad-dots {
        position:absolute; bottom:8px; left:50%; transform:translateX(-50%); z-index:10;
        display:flex; gap:6px;
    }
    .rpool-ad-dot {
        width:8px; height:8px; border-radius:50%; border:none; padding:0;
        background:rgba(255,255,255,.35); cursor:pointer; transition:all .25s;
    }
    .rpool-ad-dot.active {
        background:#fff; width:20px; border-radius:4px;
    }
    @media (max-width:768px) {
        .rpool-ad-carousel { border-radius:12px; margin-bottom:14px; overflow:hidden!important; max-width:100vw; }
        .rpool-ad-slide { min-width:100%; max-width:100%; overflow:hidden; }
        .rpool-ad-banner { border-radius:12px; overflow:hidden!important; min-height:96px; }
        .rpool-ad-inner { padding:16px 18px; overflow:hidden; min-height:96px; }
        .rpool-ad-inner.split { flex-direction:column; text-align:center; gap:8px; }
        .rpool-ad-inner.split .rpool-ad-visual { display:none; }
        .rpool-ad-title { font-size:1.15rem!important; line-height:1.3; letter-spacing:.3px; white-space:normal; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
        .rpool-ad-subtitle { font-size:.82rem!important; margin-top:4px; line-height:1.3; opacity:.85; white-space:normal; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
        .rpool-ad-badge { top:8px; right:8px; padding:3px 10px; font-size:.6rem; }
        .rpool-ad-icon { font-size:1.3rem; margin-bottom:4px; }
        .rpool-ad-cta { padding:7px 18px; font-size:.75rem; margin-top:10px; }
        .rpool-ad-particle { display:none!important; }
        .rpool-ad-shimmer { display:none!important; }
        .rpool-ad-arrow { width:28px; height:28px; font-size:.75rem; opacity:1; }
        .rpool-ad-arrow.left { left:6px; }
        .rpool-ad-arrow.right { right:6px; }
        .rpool-ad-dots { bottom:6px; gap:4px; }
        .rpool-ad-dot { width:6px; height:6px; }
        .rpool-ad-dot.active { width:16px; }
    }

/* ===== Top 50 Global Chart (Spotify) ===== */
            .top50-section { position: relative; }
            .top50-subtitle {
                font-size: .78rem; color: var(--text-muted, rgba(255,255,255,.45));
                background: rgba(255,255,255,.05); padding: 4px 14px; border-radius: 20px;
                display: flex; align-items: center;
            }
            .top50-scroll-wrapper { position: relative; }
            .top50-scroll {
                display: flex; gap: 14px; overflow-x: auto; scroll-behavior: smooth;
                padding: 8px 4px 14px; scrollbar-width: none; -ms-overflow-style: none;
                /* right-edge fade = "there's more" scroll affordance */
                -webkit-mask-image: linear-gradient(90deg, #000 93%, transparent);
                mask-image: linear-gradient(90deg, #000 93%, transparent);
            }
            .top50-scroll::-webkit-scrollbar { display: none; }
            .top50-scroll-btn {
                position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
                width: 38px; height: 38px; border-radius: 50%;
                background: var(--bg-card, #1a1a28); border: 1px solid var(--border, rgba(255,255,255,.06));
                color: var(--text-primary, #fff); cursor: pointer;
                display: flex; align-items: center; justify-content: center;
                box-shadow: 0 4px 20px rgba(0,0,0,.5); transition: all .2s;
                opacity: .75; pointer-events: auto;
            }
            .top50-scroll-wrapper:hover .top50-scroll-btn { opacity: 1; }
            .top50-scroll-btn:hover { background: var(--accent, #6c5ce7); border-color: var(--accent, #6c5ce7); }
            .top50-scroll-left { left: -14px; }
            .top50-scroll-right { right: -14px; }

            .top50-card {
                flex: 0 0 160px; min-width: 160px;
                background: var(--bg-card, #1a1a28);
                border: 1px solid var(--border, rgba(255,255,255,.06));
                border-radius: 14px; padding: 14px 14px 16px;
                display: flex; flex-direction: column; gap: 10px;
                transition: all .25s ease; cursor: pointer;
                position: relative; overflow: hidden;
                text-decoration: none !important; color: inherit !important;
            }
            .top50-card::before {
                content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
                background: linear-gradient(90deg, var(--accent, #6c5ce7), var(--accent-light, #a29bfe));
                opacity: 0; transition: opacity .25s;
            }
            .top50-card:hover { border-color: rgba(108,92,231,.3); transform: translateY(-3px);
                box-shadow: 0 12px 32px rgba(0,0,0,.35); color: inherit !important; }
            .top50-card:hover::before { opacity: 1; }

            .top50-card-rank {
                font-size: .72rem; font-weight: 700; letter-spacing: .3px;
                color: rgba(255,255,255,.3); text-transform: uppercase;
            }
            .top50-rank-gold .top50-card-rank { color: #ffd700; }
            .top50-rank-gold { border-color: rgba(255,215,0,.2); background: linear-gradient(160deg, #1a1a28 50%, rgba(255,215,0,.08)); }
            .top50-rank-gold::before { background: linear-gradient(90deg, #ffd700, #ffed4a) !important; opacity: 1 !important; }
            .top50-rank-silver .top50-card-rank { color: #c0c0c0; }
            .top50-rank-silver { border-color: rgba(192,192,192,.15); background: linear-gradient(160deg, #1a1a28 50%, rgba(192,192,192,.06)); }
            .top50-rank-silver::before { background: linear-gradient(90deg, #c0c0c0, #e8e8e8) !important; opacity: 1 !important; }
            .top50-rank-bronze .top50-card-rank { color: #cd7f32; }
            .top50-rank-bronze { border-color: rgba(205,127,50,.15); background: linear-gradient(160deg, #1a1a28 50%, rgba(205,127,50,.06)); }
            .top50-rank-bronze::before { background: linear-gradient(90deg, #cd7f32, #e8a84c) !important; opacity: 1 !important; }
            .top50-rank-top10 .top50-card-rank { color: var(--accent-light, #a29bfe); }

            .top50-card-art {
                position: relative; width: 100%; aspect-ratio: 1; border-radius: 10px;
                overflow: hidden; background: rgba(255,255,255,.05);
            }
            .top50-card-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
            .top50-play-overlay {
                position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
                background: rgba(0,0,0,.45); opacity: 0; transition: opacity .2s;
                font-size: 2rem; color: #1DB954;
            }
            .top50-card:hover .top50-play-overlay { opacity: 1; }

            .top50-card-body { min-width: 0; }
            .top50-card-title {
                font-size: .82rem; font-weight: 600; color: var(--text-primary, #fff);
                white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px;
                line-height: 1.3;
            }
            .top50-card-artist {
                font-size: .74rem; color: var(--text-secondary, rgba(255,255,255,.55));
                white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
                line-height: 1.3;
            }

            @media (max-width: 768px) {
                .top50-card { flex: 0 0 140px; min-width: 140px; padding: 10px 10px 12px; }
                .top50-scroll-btn { display: none; }
                .top50-card-title { font-size: .78rem; }
                .top50-card-artist { font-size: .7rem; }
            }

/* ===== Social Live Toast Notifications ===== */
.social-toasts{position:fixed;top:20px;right:20px;z-index:1150;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:360px;width:100%}
.social-toast{pointer-events:auto;background:rgba(26,26,40,0.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;cursor:pointer;animation:toastIn .4s cubic-bezier(.22,1,.36,1);transition:all .3s;box-shadow:0 8px 32px rgba(0,0,0,0.5),0 0 0 1px rgba(108,92,231,0.1)}
.social-toast:hover{border-color:rgba(108,92,231,0.3);transform:translateX(-4px);box-shadow:0 8px 32px rgba(0,0,0,0.6),0 0 20px rgba(108,92,231,0.1)}
.social-toast.toast-out{animation:toastOut .35s ease forwards}
.social-toast-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}
.social-toast-icon.rec{background:linear-gradient(135deg,rgba(255,107,107,0.25),rgba(255,107,107,0.08));color:#ff6b6b;border:1px solid rgba(255,107,107,0.2)}
.social-toast-icon.chat{background:linear-gradient(135deg,rgba(46,213,115,0.25),rgba(46,213,115,0.08));color:#2ed573;border:1px solid rgba(46,213,115,0.2)}
.social-toast-body{flex:1;min-width:0}
.social-toast-title{font-size:.78rem;font-weight:700;color:var(--text-primary,#fff);margin-bottom:2px;display:flex;align-items:center;gap:6px}
.social-toast-title .badge{font-size:.6rem;padding:2px 6px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.social-toast-title .badge.rec{background:rgba(255,107,107,0.15);color:#ff8787}
.social-toast-title .badge.chat{background:rgba(46,213,115,0.15);color:#2ed573}
.social-toast-text{font-size:.72rem;color:rgba(255,255,255,0.55);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.social-toast-close{background:none;border:none;color:rgba(255,255,255,0.25);font-size:.85rem;cursor:pointer;padding:0;line-height:1;flex-shrink:0;transition:color .2s}
.social-toast-close:hover{color:var(--text-primary,#fff)}
.social-toast-progress{position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 14px 14px;animation:toastProgress 6s linear forwards}
.social-toast-progress.rec{background:linear-gradient(90deg,#ff6b6b,#ff8787)}
.social-toast-progress.chat{background:linear-gradient(90deg,#2ed573,#7bed9f)}
.social-toast-icon.dl{background:linear-gradient(135deg,rgba(108,92,231,0.25),rgba(108,92,231,0.08));color:#a29bfe;border:1px solid rgba(108,92,231,0.2)}
.social-toast-title .badge.dl{background:rgba(108,92,231,0.15);color:#a29bfe}
.social-toast-progress.dl{background:linear-gradient(90deg,#6c5ce7,#a29bfe)}
@keyframes toastIn{from{opacity:0;transform:translateX(80px) scale(.95)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes toastOut{to{opacity:0;transform:translateX(80px) scale(.95)}}
@keyframes toastProgress{from{width:100%}to{width:0%}}
@media(max-width:480px){.social-toasts{right:10px;left:10px;max-width:none}.social-toast{padding:12px 14px}}

/* ── Download-version dropdown (grouped tracks) ── */
/* ── Download-version dropdown (grouped tracks) ── */
.dlv-popup {
    min-width: 300px; max-width: 340px;
    border-radius: 14px; padding: 6px;
    background: #16162a;
}
/* Mobile bottom-sheet variant: the ⋯-menu dialog owns width/position, not .dlv-popup */
dialog.dlv-popup {
    min-width: 0; max-width: none;
}
.dlv-head {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 10px 10px;
    font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em;
    color: var(--accent-light, #a29bfe);
    border-bottom: 1px solid rgba(108,92,231,0.15);
    margin-bottom: 4px;
}
.dlv-head i { font-size: .9rem; flex: 0 0 auto; }
.dlv-head .dlv-head-title { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-primary, #fff); text-transform: none; letter-spacing: .01em; font-size: .78rem; }
.dlv-head .dlv-count {
    flex: 0 0 auto; background: rgba(108,92,231,0.2); color: var(--accent-light, #a29bfe);
    font-size: .65rem; font-weight: 700; padding: 2px 8px; border-radius: 999px;
}
.dlv-list { max-height: 280px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.dlv-list::-webkit-scrollbar { width: 5px; }
.dlv-list::-webkit-scrollbar-thumb { background: rgba(108,92,231,0.35); border-radius: 3px; }
.dlv-item {
    display: block; width: 100%;
    padding: 9px 12px;
    background: transparent; border: none; border-radius: 10px;
    transition: background .15s;
}
.dlv-item:hover { background: rgba(108,92,231,0.1); }
.dlv-title-row {
    font-size: .83rem; font-weight: 600; color: var(--text-primary, #fff);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    margin-bottom: 6px;
}
.dlv-meta-row { display: flex; align-items: center; gap: 9px; }
.dlv-meta-row .dlv-badge { font-size: .62rem; padding: 3px 8px; border-radius: 999px; font-weight: 700; white-space: nowrap; }
.dlv-meta-row .dlv-bpm { font-size: .7rem; color: var(--text-secondary, #b8bcc6); font-family: 'JetBrains Mono', monospace; white-space: nowrap; }
.dlv-meta-row .dlv-bpm small { color: var(--text-muted, #8a8f9b); font-size: .58rem; }
.dlv-meta-row .dlv-key { font-size: .7rem; color: #4ade80; font-family: 'JetBrains Mono', monospace; font-weight: 700; white-space: nowrap; }
.dlv-meta-row .dlv-play {
    margin-left: auto;
    width: 28px; height: 28px; border-radius: 50%;
    border: 1px solid rgba(108,92,231,0.4); background: transparent;
    color: var(--accent-light, #a29bfe); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; font-size: .8rem;
    transition: all .15s;
}
.dlv-meta-row .dlv-play:hover { background: rgba(108,92,231,0.2); color: #fff; }
.dlv-meta-row .dlv-play.played { border-color: rgba(34,197,94,.4); color: #22c55e; }
.dlv-meta-row .dlv-play.played:hover { background: #22c55e; border-color: #22c55e; color: #fff; }
.dlv-meta-row .dlv-dl {
    display: inline-flex; align-items: center; gap: 4px;
    background: linear-gradient(135deg, #6c5ce7, #a29bfe); border: none; color: #fff;
    font-weight: 700; font-size: .7rem; padding: 5px 10px; border-radius: 8px; cursor: pointer;
    box-shadow: 0 3px 10px rgba(108,92,231,0.3); transition: all .15s; white-space: nowrap;
}
.dlv-meta-row .dlv-dl:hover { transform: translateY(-1px); box-shadow: 0 5px 14px rgba(108,92,231,0.4); }
.dlv-meta-row .dlv-dl .ver-dl-limit { font-size: .64rem; opacity: .85; font-family: 'JetBrains Mono', monospace; }
.dlv-meta-row .dlv-dl:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(.6); transform: none; }

/* ── Inline versions list (grouped track detail panel) ── */
.ver-inline-list { display: flex; flex-direction: column; gap: 8px; padding: 4px 0; }
.ver-inline-item {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    align-items: center; gap: 14px;
    background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06);
    border-radius: 12px; padding: 10px 14px;
}
.ver-inline-badge { font-size: .62rem; padding: 3px 8px; border-radius: 999px; font-weight: 700; white-space: nowrap; }
.ver-inline-title { font-weight: 700; font-size: .88rem; color: var(--text-primary, #fff); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ver-bpm { font-size: .74rem; color: var(--text-secondary, #b8bcc6); font-family: 'JetBrains Mono', monospace; text-align: right; white-space: nowrap; }
.ver-bpm small { color: var(--text-muted, #8a8f9b); font-size: .6rem; }
.ver-key { font-size: .74rem; color: #4ade80; font-family: 'JetBrains Mono', monospace; font-weight: 700; text-align: center; min-width: 2.2em; white-space: nowrap; }
.ver-inline-actions { display: flex; align-items: center; gap: 8px; justify-self: end; }
.ver-inline-actions .ver-btn-play {
    width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(108,92,231,0.4);
    background: transparent; color: var(--accent-light, #a29bfe); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; font-size: .95rem; transition: all .2s;
}
.ver-inline-actions .ver-btn-play:hover { background: rgba(108,92,231,0.18); color: #fff; transform: scale(1.06); }
.ver-inline-actions .ver-btn-dl {
    display: inline-flex; align-items: center; gap: 5px;
    background: linear-gradient(135deg, #6c5ce7, #a29bfe); border: none; color: #fff;
    font-weight: 700; font-size: .74rem; padding: 8px 12px; border-radius: 9px; cursor: pointer;
    box-shadow: 0 4px 12px rgba(108,92,231,0.3); transition: all .2s; white-space: nowrap;
}
.ver-inline-actions .ver-btn-dl:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(108,92,231,0.4); }
.ver-inline-actions .ver-btn-dl .ver-dl-limit { font-size: .68rem; opacity: .85; font-family: 'JetBrains Mono', monospace; }
.ver-inline-actions .ver-btn-lock {
    width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.04); color: var(--text-muted, #8a8f9b);
    display: inline-flex; align-items: center; justify-content: center; cursor: not-allowed;
}
.ver-inline-actions .ver-btn-dl.dl-limit-reached,
.dlv-item.dl-limit-reached { opacity: .45; cursor: not-allowed; filter: grayscale(.6); }
.dl-limit-icon { color: #f87171 !important; }
@media (max-width: 640px) {
    .ver-inline-item { grid-template-columns: auto minmax(0, 1fr) auto; }
    .ver-bpm, .ver-key { display: none; }
    .ver-inline-actions { grid-column: 1 / -1; justify-self: end; }
}

/* ---- BPM quick chips ---- */
.tl-bpm-quick { display:inline-flex; gap:4px; margin-left:8px; }
.tl-bpm-chip { padding:4px 9px; border-radius:8px; border:1px solid var(--border,rgba(255,255,255,.08)); background:rgba(255,255,255,.03); color:var(--text-muted,#6b6b80); font-size:.68rem; font-weight:600; cursor:pointer; transition:all .15s; white-space:nowrap; }
.tl-bpm-chip:hover { border-color:var(--accent,#6c5ce7); color:var(--accent-light,#a29bfe); }
.tl-bpm-chip.active { background:rgba(108,92,231,.18); border-color:var(--accent,#6c5ce7); color:var(--accent-light,#a29bfe); }
@media (max-width: 900px) { .tl-bpm-quick { display:none; } }

/* ---- Bigger touch targets on mobile ---- */
@media (max-width: 768px) {
    .track-row .btn-action { width:38px; height:38px; font-size:1rem; }
}

/* ---- Sidebar date contrast ---- */
.sidebar-date { color:var(--text-secondary,#b8b8cc) !important; }

/* ---- Recently Played rail ---- */
.recent-played-wrapper { position: relative; }
.recent-played-rail {
    display: flex; gap: 10px; overflow-x: auto; padding: 6px 2px 12px;
    scrollbar-width: none; -ms-overflow-style: none;
    -webkit-mask-image: linear-gradient(90deg, #000 93%, transparent);
    mask-image: linear-gradient(90deg, #000 93%, transparent);
}
.recent-played-rail::-webkit-scrollbar { display: none; }

.rp-item {
    display: flex; align-items: center; gap: 10px;
    flex: 0 0 auto; width: 240px; padding: 8px 12px 8px 8px;
    border-radius: 14px; border: 1px solid var(--border, rgba(255,255,255,.06));
    background: var(--bg-card, #1a1a28); cursor: pointer;
    font: inherit; color: inherit; text-align: left;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.rp-item:hover {
    transform: translateY(-2px);
    border-color: rgba(108,92,231,.45);
    box-shadow: 0 8px 22px rgba(0,0,0,.35);
    background: rgba(108,92,231,.07);
}
.rp-item:active { transform: translateY(0) scale(.98); }

.rp-art {
    position: relative; width: 46px; height: 46px; flex-shrink: 0;
    border-radius: 11px; overflow: hidden;
    background: linear-gradient(135deg, rgba(108,92,231,.35), rgba(162,155,254,.18));
    border: 1px solid rgba(108,92,231,.3);
    display: flex; align-items: center; justify-content: center;
    color: var(--accent-light, #a29bfe); font-size: 1.05rem;
}
.rp-art-play {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    background: rgba(10,10,15,.55); color: #fff; font-size: 1.05rem;
    opacity: 0; transition: opacity .15s;
}
.rp-item:hover .rp-art-play { opacity: 1; }

.rp-text { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.rp-title { font-size: .8rem; font-weight: 600; color: var(--text-primary, #fff); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rp-artist { font-size: .68rem; color: var(--text-muted, #6b6b80); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.rp-scroll-btn {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 10;
    width: 34px; height: 34px; border-radius: 50%;
    background: var(--bg-card, #1a1a28); border: 1px solid var(--border, rgba(255,255,255,.06));
    color: var(--text-primary, #fff); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 16px rgba(0,0,0,.5); transition: all .2s;
    opacity: .75;
}
.recent-played-wrapper:hover .rp-scroll-btn { opacity: 1; }
.rp-scroll-btn:hover { background: var(--accent, #6c5ce7); border-color: var(--accent, #6c5ce7); }
.rp-scroll-left { left: -12px; }
.rp-scroll-right { right: -12px; }
@media (max-width: 768px) {
    .rp-scroll-btn { display: none; }
    .rp-item { width: 210px; }
}

/* ---- L1: sticky library bar (desktop) ---- */
@media (min-width: 769px) {
    .tl-sticky-bar {
        position: sticky;
        top: var(--nav-h, 108px);
        z-index: 900;
        background: var(--bg-primary, #0a0a0f);
        padding-top: 6px;
        margin-left: -14px; margin-right: -14px;
        padding-left: 14px; padding-right: 14px;
        box-shadow: 0 12px 24px -14px rgba(0,0,0,.7);
    }
}

/* ---- L2: density switcher (segmented, labeled) ---- */
.density-switch {
    display: inline-flex; margin-right: 8px; flex-shrink: 0;
    background: var(--bg-card, #1a1a28); border: 1px solid var(--border, rgba(255,255,255,.08));
    border-radius: 10px; padding: 3px; gap: 2px;
}
.density-seg {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 11px; border: none; border-radius: 8px;
    background: transparent; color: var(--text-muted, #6b6b80);
    cursor: pointer; font-size: .72rem; font-weight: 600; transition: all .15s;
    white-space: nowrap;
}
.density-seg i { font-size: .78rem; }
.density-seg:hover { color: var(--accent-light, #a29bfe); }
.density-seg.active {
    background: rgba(108,92,231,.2); color: var(--accent-light, #a29bfe);
    box-shadow: inset 0 0 0 1px rgba(108,92,231,.35);
}
@media (max-width: 768px) {
    .density-seg span { display: none; }
    .density-seg { padding: 5px 8px; }
}

body.density-compact .track-row { padding-top: 2px; padding-bottom: 2px; padding-left: 10px; padding-right: 10px; gap: 6px; }
body.density-compact .track-row-thumb { display: none; }
body.density-compact .track-row .btn-action { width: 24px; height: 24px; font-size: .72rem; }
body.density-compact .track-row-main { padding: 0 4px; }
body.density-compact .track-row-title { font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.density-compact .track-row-subtitle { display: none; }
body.density-compact .track-row-artist { font-size: .7rem; }
body.density-compact .track-genre-pill { font-size: .58rem; }
body.density-compact .track-bpm, body.density-compact .track-key { font-size: .66rem; }
body.density-compact .track-ver-badge { font-size: .58rem; padding: 0 5px; }
body.density-compact .track-ver-icon { font-size: .68rem; }
body.density-compact .exc-tag { font-size: .56rem; padding: 0 5px; }
body.density-compact .track-detail-panel .detail-inner { padding: 10px 12px; }


/* ---- New-since-last-visit banner ---- */
.new-since-banner {
    display: flex; align-items: center; gap: 10px;
    background: linear-gradient(135deg, rgba(108,92,231,.16), rgba(162,155,254,.08));
    border: 1px solid rgba(108,92,231,.3);
    border-radius: 12px; padding: 10px 16px; margin-bottom: 16px;
    font-size: .82rem; color: var(--text-primary, #fff);
}
.new-since-banner > i { color: var(--accent-light, #a29bfe); font-size: 1rem; }
.new-since-banner strong { color: var(--accent-light, #a29bfe); }
.new-since-close {
    margin-left: auto; width: 24px; height: 24px; border-radius: 50%; border: none;
    background: transparent; color: var(--text-muted, #6b6b80); cursor: pointer;
    display: flex; align-items: center; justify-content: center; font-size: .62rem;
}
.new-since-close:hover { color: #fff; background: rgba(255,255,255,.08); }
