@keyframes spin { to { transform: rotate(360deg); } }
.disc-anim { animation: spin 8s linear infinite; }
.disc-paused { animation-play-state: paused; }

#mf { position: fixed; z-index: 9999; cursor: grab; user-select: none; }
#mf:active { cursor: grabbing; }
#mf-mini {
    width: 56px; height: 56px; border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #3a3a4a, #1a1a2a 70%, #0a0a12);
    box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 1px 2px rgba(255,255,255,.15);
    display: flex; align-items: center; justify-content: center;
    transition: transform .15s;
    position: relative;
}
#mf-mini::before {
    content: ''; position: absolute; inset: 6px; border-radius: 50%;
    background: linear-gradient(135deg, #e8e8f0, #b0b0c0);
    box-shadow: inset 0 1px 4px rgba(0,0,0,.3);
}
#mf-mini::after {
    content: '♫'; position: absolute; font-size: 18px; color: #333;
    top: 50%; left: 50%; transform: translate(-50%,-50%);
}
#mf-mini.disc-paused { animation-play-state: paused; }
#mf-mini:not(.disc-paused) { animation: spin 8s linear infinite; }
#mf-mini:hover { transform: scale(1.08); }

#mf-panel {
    position: absolute;
    width: 280px;
    background: rgba(20,20,35,.92);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 12px 48px rgba(0,0,0,.6);
    transition: opacity .25s, transform .25s;
    transform-origin: bottom center;
}
#mf-panel.mf-hide {
    opacity: 0; transform: scale(.85); pointer-events: none;
}

#mf-cover {
    width: 120px; height: 120px; border-radius: 50%; margin: 0 auto 14px;
    background: radial-gradient(circle at 30% 30%, #4a4a5a, #1a1a2a 65%, #0a0a12);
    position: relative; flex-shrink: 0;
}
#mf-cover::before {
    content: ''; position: absolute; inset: 12px; border-radius: 50%;
    background: linear-gradient(135deg, #eeeef8, #b8b8c8);
    box-shadow: inset 0 2px 8px rgba(0,0,0,.3);
    display: flex; align-items: center; justify-content: center;
}
#mf-cover::after {
    content: '♫'; position: absolute; font-size: 36px; color: #333;
    top: 50%; left: 50%; transform: translate(-50%,-50%);
    z-index: 1;
}
#mf-cover.disc-paused { animation-play-state: paused; }
#mf-cover:not(.disc-paused) { animation: spin 8s linear infinite; }

#mf-info { text-align: center; margin-bottom: 12px; min-height: 44px; }
#mf-title { font-size: 15px; font-weight: 600; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#mf-artist { font-size: 12px; color: rgba(255,255,255,.5); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

#mf-bar {
    height: 3px; background: rgba(255,255,255,.1); border-radius: 4px; overflow: hidden; margin-bottom: 14px; cursor: pointer;
}
#mf-progress { height: 100%; background: #fff; border-radius: 4px; width: 0%; transition: width .3s; }

#mf-ctrl { display: flex; align-items: center; justify-content: center; gap: 16px; }
#mf-ctrl button {
    width: 40px; height: 40px; border-radius: 50%; border: none;
    background: rgba(255,255,255,.08); color: #fff; font-size: 18px;
    cursor: pointer; transition: background .15s; display: flex; align-items: center; justify-content: center;
}
#mf-ctrl button:hover { background: rgba(255,255,255,.18); }
#mf-ctrl button:active { transform: scale(.92); }
#mf-play { width: 48px; height: 48px; font-size: 20px; background: rgba(255,255,255,.14); }
#mf-play:hover { background: rgba(255,255,255,.24); }
