.music-panel{background:linear-gradient(180deg,#fff,#f6f7f9 55%,#eef0f3);color:#333;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;height:100vh;user-select:none;-webkit-user-select:none;width:100%}.mp-stage,.music-panel{overflow:hidden;position:relative}.mp-stage{flex:1;min-height:0}.mp-cover-view{box-sizing:border-box;flex-direction:column;height:100%;justify-content:center;left:0;padding-bottom:8px;position:absolute;top:0}.mp-cover-view,.np-track-wrap{align-items:center;display:flex;width:100%}.np-track-wrap{flex:1;min-height:0;overflow:hidden;position:relative}.np-platter{background:repeating-radial-gradient(circle at center,rgba(0,0,0,.045) 0,rgba(0,0,0,.045) 1px,transparent 0,transparent 5px),radial-gradient(circle at 50% 50%,hsla(0,0%,100%,.22) 0,hsla(0,0%,100%,.14) 52%,hsla(0,0%,100%,.06) 70%,rgba(0,0,0,.05) 88%,rgba(0,0,0,.14) 100%);border-radius:50%;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.28),inset 0 0 36px rgba(0,0,0,.12),0 16px 48px rgba(0,0,0,.16);height:min(300px,78vw);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:min(300px,78vw);z-index:1}.np-track{align-items:center;display:flex;position:relative;transition:transform .32s cubic-bezier(.25,.8,.3,1);will-change:transform;z-index:2}.np-track.dragging{transition:none}.np-slide{align-items:center;display:flex;flex:0 0 auto;justify-content:center;width:100%}.np-cover-wrap{height:min(300px,78vw);position:relative;transition:opacity .18s,transform .18s;width:min(300px,78vw);will-change:transform}.np-cover-wrap.fade-out{opacity:.25;transform:scale(.92)}.mp-bg-blur{background-position:50%;background-size:cover;filter:blur(60px) saturate(1.15);height:124%;left:-12%;opacity:.4;pointer-events:none;position:absolute;top:-12%;transform:scale(1.2);transition:opacity .4s ease;width:124%;will-change:transform,opacity}.np-cover{align-items:center;animation:vinyl-spin 18s linear infinite;animation-play-state:paused;background:repeating-radial-gradient(circle at center,hsla(0,0%,100%,.02) 0,hsla(0,0%,100%,.02) 1px,transparent 0,transparent 4px),radial-gradient(circle at 35% 30%,#3a3d45 0,#23252b 40%,#141519 78%,#0b0c0f 100%);border-radius:50%;box-shadow:inset 0 0 30px rgba(0,0,0,.85),inset 0 0 8px hsla(0,0%,100%,.08);display:flex;height:min(300px,78vw);justify-content:center;left:0;position:absolute;top:0;width:min(300px,78vw)}.np-cover.playing{animation-play-state:running}@keyframes vinyl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.np-cover:after{background:radial-gradient(circle at 32% 26%,hsla(0,0%,100%,.16) 0,hsla(0,0%,100%,.03) 18%,transparent 40%);border-radius:50%;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.np-cover img{background:#1c1d22;border-radius:50%;box-shadow:0 0 0 2px hsla(0,0%,100%,.08),0 4px 14px rgba(0,0,0,.6);height:46%;object-fit:cover;position:relative;width:46%}.np-cover img.hidden,.np-cover-blank{display:none}.np-cover-hole{background:radial-gradient(circle at 40% 35%,#4a4d55 0,#0a0b0d 70%);border-radius:50%;box-shadow:inset 0 1px 3px rgba(0,0,0,.9);height:12px;left:50%;margin:-6px 0 0 -6px;position:absolute;top:50%;width:12px;z-index:3}.np-tonearm{height:130px;left:calc(50% + min(150px, 39vw) - 46px);pointer-events:none;position:absolute;top:calc(50% - min(150px, 39vw) + 26px);transform:rotate(-12deg);transform-origin:17px 34px;transition:transform .45s cubic-bezier(.2,.9,.3,1.2);width:34px;z-index:4}.np-tonearm:before{background:radial-gradient(circle at 35% 30%,#5a5d66 0,#2c2e34 60%,#17181c 100%);border-radius:50%;box-shadow:0 3px 8px rgba(0,0,0,.6),inset 0 1px 2px hsla(0,0%,100%,.2);content:"";height:22px;left:6px;position:absolute;top:0;width:22px}.np-tonearm:after{background:linear-gradient(180deg,#b9bdc7,#6d707a 55%,#3c3e45);border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.4);content:"";height:96px;left:14px;position:absolute;top:20px;width:6px}.np-tonearm-head{background:linear-gradient(180deg,#2b2d33,#17181c);border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.5);height:12px;left:7px;position:absolute;top:108px;transform:rotate(-8deg);width:20px}.music-panel.paused .np-tonearm,.np-tonearm.up{transform:rotate(28deg)}.lyrics-song-info{box-sizing:border-box;left:0;min-width:0;padding:14px 24px 0;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:5}.song-info-main{min-width:0;pointer-events:auto;text-align:center}.np-title{color:#222;font-size:16px;font-weight:700;margin:0}.np-artist,.np-title{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.np-artist{color:#888;font-size:12px;margin:4px 0 0}.song-info-side{align-items:center;display:flex;flex-direction:row;gap:8px;pointer-events:auto;position:absolute;right:24px;top:14px}.np-playcount{color:#999;font-size:10px;font-variant-numeric:tabular-nums}.np-album{color:#aaa;font-size:10px;margin:6px 0 0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.mp-lyric-view{background:linear-gradient(180deg,#fff,#f8f9fb 55%,#f1f3f6);height:100%;left:0;opacity:0;position:absolute;top:0;transform:translateY(0);transition:opacity .24s ease,visibility .24s ease;visibility:hidden;width:100%;will-change:opacity;z-index:7}.mp-lyric-view.open{opacity:1;visibility:visible}.mp-lyric-view.view-swipe{transition:transform .22s cubic-bezier(.25,.8,.3,1),opacity .24s ease,visibility .24s ease}.mp-lyric-view.dragging,.mp-lyric-view.view-no-transition{transition:none}.lyric-close-btn{align-items:center;background:rgba(0,0,0,.05);border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:15px;height:36px;justify-content:center;position:absolute;right:14px;top:10px;transition:background .2s;width:36px;z-index:8}.lyric-close-btn:hover{background:rgba(0,0,0,.1);color:#333}.lyrics-scroll{box-sizing:border-box;height:100%;overflow-x:hidden;overflow-y:auto;padding:30vh 28px 34vh;position:relative;scroll-behavior:auto;text-align:center;width:100%;-webkit-overflow-scrolling:touch;transition:opacity .18s ease;z-index:2}.lyrics-scroll.lyric-rebuilding{opacity:0}.lyrics-scroll::-webkit-scrollbar{display:none}.lyrics-scroll p{color:#a6a6a6;cursor:pointer;font-size:15px;line-height:1.7;margin:0;padding:9px 0;transition:color .3s,font-size .3s;word-break:break-word}.lyrics-scroll p.lyric-active{color:#ec4141;font-size:18px;font-weight:600}.lyrics-scroll p.lyric-hover{color:#666}.global-playlist-controls-wrap{background:linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,0));flex:0 0 auto;padding:8px 14px 16px;z-index:8}.progress-container{align-items:center;display:flex;height:16px;margin-bottom:6px;position:relative}.progress-container .time{background:hsla(0,0%,100%,.85);color:#999;font-size:10px;font-variant-numeric:tabular-nums;padding:0 2px;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:auto;z-index:1}.progress-container .time:first-child{left:0}.progress-container .time:last-child{right:0}.progress-bar{align-items:center;cursor:pointer;display:flex;height:18px;left:26px;position:absolute;right:26px}.progress-bar:before{background:rgba(0,0,0,.12);content:"";right:0}.progress-bar:before,.progress-fill{border-radius:2px;height:3px;left:0;position:absolute}.progress-fill{background:linear-gradient(90deg,#e84a4a,#ec4141);margin-top:-1.5px;pointer-events:none;top:50%;width:0}.progress-dot{background:#fff;border-radius:50%;box-shadow:0 0 0 2px rgba(236,65,65,.85),0 1px 4px rgba(0,0,0,.18);height:12px;left:0;margin:-6px 0 0 -6px;opacity:0;pointer-events:none;position:absolute;top:50%;transform:scale(.6);transition:opacity .2s,transform .2s;width:12px}.progress-bar.dragging .progress-dot,.progress-bar:hover .progress-dot{opacity:1;transform:scale(1)}.playlist-controls{justify-content:space-between;margin:0 auto;max-width:200px;padding:2px 0 0;width:100%}.ctrl-btn,.playlist-controls{align-items:center;display:flex}.ctrl-btn{background:transparent;border:none;border-radius:50%;color:#555;cursor:pointer;font-size:16px;height:34px;justify-content:center;transition:color .2s,transform .15s;width:34px}.ctrl-btn:hover{color:#222}.ctrl-btn:active{transform:scale(.92)}.ctrl-btn.play-pause{background:linear-gradient(145deg,#f05252,#d63535);border-radius:50%;box-shadow:0 6px 18px rgba(236,65,65,.42),0 2px 6px rgba(0,0,0,.3);color:#fff;font-size:20px;height:46px;width:46px}.ctrl-btn.play-pause:hover{box-shadow:0 8px 22px rgba(236,65,65,.55)}.ctrl-btn.play-pause:active{transform:scale(.94)}.ctrl-btn.play-pause.paused-state{background:linear-gradient(145deg,#3d4048,#2a2c32);box-shadow:0 6px 16px rgba(0,0,0,.45)}.playlist-overlay{background:#fff;border-radius:0;border-top:1px solid rgba(0,0,0,.08);bottom:96px;box-shadow:0 -8px 32px rgba(0,0,0,.14);display:flex;flex-direction:column;left:0;overflow:hidden;position:absolute;right:0;top:0;transform:translateY(calc(100% + 150px));transition:transform .32s cubic-bezier(.32,.72,0,1);width:100%;z-index:30}.playlist-overlay.open{transform:translateY(0)}.playlist-container{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.search-filter{border-bottom:1px solid rgba(0,0,0,.08);flex:0 0 auto;padding:10px 12px}.search-combo{align-items:center;background:rgba(0,0,0,.05);border-radius:0;display:flex;position:relative}.filter-wrap{flex:0 0 auto}.filter-toggle{align-items:center;background:transparent;border:none;border-radius:0;border-right:1px solid rgba(0,0,0,.1);color:#555;cursor:pointer;display:flex;font-size:12px;gap:4px;max-width:130px;padding:8px 12px}.filter-toggle .filter-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-options{background:#fff;border-radius:0;box-shadow:0 10px 30px rgba(0,0,0,.18);left:0;max-height:calc(100vh - 320px);overflow-y:auto;padding:6px 0;position:absolute;right:0;top:40px;z-index:20}.filter-option{align-items:center;color:#555;cursor:pointer;display:flex;font-size:13px;gap:8px;justify-content:space-between;overflow:hidden;padding:9px 12px;text-overflow:ellipsis;white-space:nowrap}.filter-option:nth-child(2n){background:rgba(0,0,0,.03)}.artist-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artist-count{color:#aaa;flex:0 0 auto;font-size:11px}.filter-option:hover{background:rgba(0,0,0,.08);color:#222}.search-wrap{align-items:center;border-radius:0;color:#999;display:flex;gap:8px;height:36px;padding:0 12px}.search-wrap,.search-wrap input{background:transparent;flex:1;font-size:12px}.search-wrap input{border:none;color:#333;min-width:0;outline:none}.search-wrap input::placeholder{color:#bbb}.song-list-container{flex:1;min-height:0;overflow-y:auto;padding:0;scrollbar-width:thin}.song-list{list-style:none;margin:0;padding:0}.song-pool{display:none}.song-item{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;gap:12px;height:52px;padding:0 16px;transition:background .2s}.song-item.stripe{background:rgba(0,0,0,.03)}.song-item:hover{background:rgba(0,0,0,.06)}.song-item.playing{background:rgba(236,65,65,.1)}.song-item.playing .song-meta h4{color:#ec4141}.song-index{display:inline-block;line-height:1;margin-left:6px;vertical-align:middle}.song-item:not(.playing) .song-index{display:none}.eq-bars{align-items:flex-end;display:inline-flex;gap:2px;height:12px;vertical-align:middle}.eq-bars span{animation:eq-bounce 1s ease-in-out infinite;background:#ec4141;border-radius:1px;transform-origin:bottom;width:3px}.eq-bars span:first-child{animation-delay:0s;height:6px}.eq-bars span:nth-child(2){animation-delay:.18s;height:12px}.eq-bars span:nth-child(3){animation-delay:.36s;height:9px}@keyframes eq-bounce{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.song-cover{align-items:center;background:#e9ebef;border-radius:6px;color:#aaa;display:flex;flex:0 0 42px;font-size:16px;height:42px;justify-content:center;overflow:hidden;width:42px}.song-cover img{display:block;height:100%;object-fit:cover;width:100%}.song-meta{flex:1;min-width:0;text-align:left}.song-meta h4{color:#333;font-size:14px;font-weight:500;margin:0}.song-meta h4,.song-meta p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-meta p{color:#999;font-size:11px;margin:3px 0 0}.song-duration{color:#999;flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums}.list-state{color:#999;font-size:13px;padding:40px 0;text-align:center}.list-state i{display:block;font-size:22px;margin-bottom:8px}.list-state p{margin:0}.mp-toast{background:rgba(20,21,25,.92);border-radius:22px;bottom:120px;box-shadow:0 6px 24px rgba(0,0,0,.5);color:#fff;font-size:13px;left:50%;max-width:80vw;opacity:1;padding:10px 22px;pointer-events:none;position:fixed;text-align:center;transform:translateX(-50%);transition:opacity .3s;z-index:100}.mp-toast-top{bottom:auto;top:80px}.mp-toast-hide{opacity:0}@media (max-width:480px){.np-cover,.np-cover-wrap{height:260px;width:260px}.np-title{font-size:18px}.playlist-controls{gap:0}.lyrics-scroll{padding-left:18px;padding-right:18px}}@media (min-width:768px) and (min-height:640px){.np-cover,.np-cover-wrap{height:340px;width:340px}}.panel-tab-content[data-panel-tab=music]{overflow:hidden;padding:0}.panel-tab-content[data-panel-tab=music].active{display:flex;flex-direction:column}.music-in-panel .music-panel,.panel-tab-content[data-panel-tab=music] .music-panel{flex:1;height:100%;min-height:0;width:100%}.panel-tab-content[data-panel-tab=music] .np-cover{height:min(220px,66vw);width:min(220px,66vw)}.panel-tab-content[data-panel-tab=music] .playlist-overlay{position:absolute}.music-in-panel .np-cover,.music-in-panel .np-cover-wrap,.music-in-panel .np-platter{height:min(220px,66%);width:min(220px,66%)}.music-in-panel .np-tonearm{left:calc(50% + min(110px, 33%) - 40px);top:calc(50% - min(110px, 33%) + 22px)}.music-in-panel .np-track-wrap{margin-top:-18px}.music-in-panel .np-cover-wrap{transform:translateY(calc(min(110px, 33vw)*-1))}.music-in-panel .np-cover-wrap.fade-out{transform:translateY(calc(min(110px, 33vw)*-1)) scale(.92)}.music-in-panel .mp-bg-blur{display:none}@media (max-width:768px){.global-playlist-controls-wrap{padding:4px 12px 8px}.progress-container{margin-bottom:2px}.playlist-controls{padding:0}.ctrl-btn{font-size:16px;height:34px;width:34px}.ctrl-btn.play-pause{font-size:20px;height:46px;width:46px}.playlist-overlay{bottom:78px;transform:translateY(calc(100% + 116px))}}