.loading-spinner-overlay[data-v-4c1e5aac]{z-index:1000;pointer-events:none;position:absolute;right:.9rem;top:.9rem}.loading-spinner[data-v-4c1e5aac]{width:1.5rem;height:1.5rem}.progress-slider[data-v-4c1e5aac]{position:relative;width:100%;height:2.75rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;outline:none;cursor:pointer;z-index:2}.progress-slider[data-v-4c1e5aac]::-webkit-slider-runnable-track{width:100%;height:.25rem;background:transparent;border-radius:.125rem}.progress-slider[data-v-4c1e5aac]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:.8rem;height:.8rem;background:#42a5f5;border-radius:50%;cursor:pointer;box-shadow:0 .125rem .5rem #42a5f566;transition:all .2s ease;margin-top:-.275rem}.progress-slider[data-v-4c1e5aac]::-webkit-slider-thumb:active{transform:scale(1.3)}.progress-slider[data-v-4c1e5aac]::-moz-range-track{background:transparent;border:none}.progress-slider[data-v-4c1e5aac]::-moz-range-thumb{width:.8rem;height:.8rem;background:#42a5f5;border-radius:50%;cursor:pointer;border:none;box-shadow:0 .125rem .5rem #42a5f566;transition:all .2s ease}.progress-slider[data-v-4c1e5aac]::-moz-range-thumb:active{transform:scale(1.3)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--vh: 1vh}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:linear-gradient(180deg,#e3f2fd,#f5f9ff,#d1e9ff);min-height:100vh;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;overflow-x:hidden;color:#1e3a5f;position:fixed;width:100%;height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh}.app{min-height:100vh;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;display:flex;flex-direction:column;position:relative;padding-bottom:calc(4.375rem + env(safe-area-inset-bottom));overflow:hidden}.pages-container{flex:1;position:relative;overflow:hidden}.page{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;visibility:hidden;transform:translate(100%);transition:all .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;padding-top:calc(1rem + max(env(safe-area-inset-top),.5rem));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.page.active{opacity:1;visibility:visible;transform:translate(0)}.page.prev{transform:translate(-100%)}.status-bar{position:fixed;top:0;left:0;right:0;height:2.75rem;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:100;font-size:.875rem;font-weight:500;color:#5a7fa6;border-bottom:1px solid rgba(90,127,166,.2);padding-top:max(env(safe-area-inset-top),.1rem);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);min-height:calc(2.75rem + env(safe-area-inset-top))}.media-session-indicator{position:absolute;right:1rem;font-size:1rem;opacity:.6}.media-session-indicator.supported{opacity:1}.wake-lock-indicator{position:absolute;right:1rem;font-size:1rem;opacity:.6;transition:all .3s ease}.wake-lock-indicator.supported{opacity:.8}.wake-lock-indicator.active{opacity:1;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.player-main{flex:1;padding:1rem 1.25rem;display:flex;flex-direction:column;justify-content:space-evenly;max-width:31.25rem;margin:0 auto;width:100%;overflow:hidden;min-height:0;gap:1rem}.page-player{overflow-y:hidden!important;display:flex!important;flex-direction:column!important;min-height:0}.page-albums,.page-playlist{padding-bottom:calc(70px + env(safe-area-inset-bottom))!important}.page-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;max-width:31.25rem;margin:0 auto;width:100%}.page-header h2{font-size:1.75rem;font-weight:700;color:#1e3a5f}.album-container{display:flex;justify-content:center;align-items:center;padding:0;flex:0 1 auto;min-height:0;margin:.5rem 0 1rem}.album-disc{position:relative;width:min(16rem,40vmin,70vw);height:min(16rem,40vmin,70vw);border-radius:50%;background:linear-gradient(135deg,#42a5f5,#90caf9,#2196f3);box-shadow:0 1.25rem 3.75rem #2196f34d,0 0 0 .5rem #fffc,0 0 0 .75rem #42a5f533;padding:.5rem;animation:float 6s ease-in-out infinite;animation-play-state:paused;flex-shrink:0}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.album-disc.playing{animation:rotate 20s linear infinite,float 6s ease-in-out infinite;animation-play-state:running}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.album-image{width:100%;height:100%;border-radius:50%;object-fit:cover}.album-cover-fallback{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:5rem;font-weight:700;color:#fff;text-shadow:0 .25rem .5rem rgba(0,0,0,.2)}.song-info{text-align:center;padding:.75rem 0;flex:0 0 auto;min-height:0}.song-title{font-size:1.375rem;font-weight:600;margin-bottom:.375rem;color:#1e3a5f;text-shadow:0 .125rem .25rem rgba(66,165,245,.1);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 1rem}.artist-name{font-size:1rem;color:#5a7fa6}.progress-section{padding:.75rem 0;flex:0 0 auto;min-height:0}.progress-wrapper{position:relative;margin-bottom:.5rem}.progress-track{position:absolute;top:50%;left:0;right:0;height:.25rem;background:#42a5f533;border-radius:.125rem;transform:translateY(-50%);pointer-events:none}.progress-buffered{position:absolute;left:0;top:0;height:100%;background:#42a5f54d;border-radius:.125rem;width:0%;transition:width .3s ease}.progress-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#42a5f5,#90caf9);border-radius:.125rem;width:0%;transition:width .1s linear}.progress-slider{position:relative;width:100%;height:2.75rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;outline:none;cursor:pointer;z-index:2;display:flex;align-items:center}.progress-slider::-webkit-slider-runnable-track{width:100%;height:.25rem;background:transparent;border-radius:.125rem}.progress-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:.8rem;height:.8rem;background:#42a5f5;border-radius:50%;cursor:pointer;box-shadow:0 .125rem .5rem #42a5f566;transition:all .2s ease;margin-top:-.275rem}.progress-slider::-webkit-slider-thumb:active{transform:scale(1.3)}.progress-slider::-moz-range-track{background:transparent;border:none}.progress-slider::-moz-range-thumb{width:.8rem;height:.8rem;background:#42a5f5;border-radius:50%;cursor:pointer;border:none;box-shadow:0 .125rem .5rem #42a5f566;transition:all .2s ease}.progress-slider::-moz-range-thumb:active{transform:scale(1.3)}.time-display{display:flex;justify-content:space-between;font-size:.75rem;color:#5a7fa6}.controls{display:flex;justify-content:center;align-items:center;gap:1.5rem;padding:.75rem 0;flex:0 0 auto;min-height:0}.control-btn{background:none;border:none;cursor:pointer;color:#5a7fa6;transition:all .3s ease;padding:.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.control-btn:active{transform:scale(.9)}.btn-prev,.btn-next{opacity:.8}.btn-prev:active,.btn-next:active{opacity:1}.btn-play{width:6rem;height:6rem;background:linear-gradient(135deg,#42a5f5,#90caf9);box-shadow:0 .5rem 1.5rem #42a5f566;color:#fff}.btn-play:active{box-shadow:0 .25rem .75rem #42a5f566}.playlist-item{display:flex;align-items:center;gap:.9375rem;padding:.75rem;cursor:pointer;transition:all .3s ease;border-left:.1875rem solid transparent;border-radius:.5rem;margin-bottom:.25rem}.playlist-item:active{background:#42a5f51a}.playlist-item.active{background:#90caf94d;border-left-color:#42a5f5}.playlist-item-number{flex-shrink:0;font-size:.875rem;color:#90a4ae;min-width:1.5rem;font-weight:500;cursor:pointer;transition:color .2s ease}.playlist-item-number:hover,.playlist-item.active .playlist-item-number{color:#42a5f5}.playlist-item-info{flex:1;min-width:0;cursor:pointer}.playlist-item-title{font-size:.9375rem;color:#1e3a5f;font-weight:500;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-item-artist{font-size:.75rem;color:#5a7fa6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-item-duration{flex-shrink:0;font-size:.8125rem;color:#90a4ae;margin-right:.5rem}.playlist-item-download{flex-shrink:0;background:none;border:none;padding:.5rem;cursor:pointer;color:#5a7fa6;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.playlist-item-download:hover{background:#42a5f51a;color:#42a5f5}.playlist-item-download:active{transform:scale(.9);background:#42a5f533}.playlist-item-download:disabled{cursor:not-allowed;opacity:.6}.playlist-item-download:disabled:hover{background:none;transform:none}.download-progress{font-size:.625rem;font-weight:600;color:#42a5f5;min-width:2rem;text-align:center}.playlist-header-actions{display:flex;align-items:center;gap:.75rem}.sort-button,.random-button,.download-toggle-button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:#42a5f51a;border-radius:.5rem;cursor:pointer;transition:all .2s ease;color:#42a5f5}.random-button.active,.download-toggle-button.active{background:#42a5f54d;color:#1e88e5}.sort-button:hover,.random-button:hover{background:#42a5f533;transform:scale(1.05)}.sort-button:active,.random-button:active{transform:scale(.95)}.playlist-count{font-size:.875rem;color:#5a7fa6}.page::-webkit-scrollbar{width:.25rem}.page::-webkit-scrollbar-track{background:transparent}.page::-webkit-scrollbar-thumb{background:#42a5f54d;border-radius:.125rem}@media (min-width: 768px){.app{max-width:500px;margin:0 auto;box-shadow:0 0 50px #00000080}.status-bar{max-width:500px;margin:0 auto}.playlist-drawer{max-width:500px;margin:0 auto;left:50%;transform:translate(-50%)}.player-main{gap:1.5rem;padding:1.5rem}.song-info,.progress-section{padding:1rem 0}.controls{padding:1rem 0;gap:2rem}.album-container{margin:1rem 0 1.5rem}}@media (max-width: 375px){.album-disc{width:240px;height:240px}.song-title{font-size:20px}.btn-play{width:80px;height:80px}.controls{gap:20px}.player-main{gap:.75rem}.song-info,.progress-section,.controls{padding:.5rem 0}}.albums-container{padding:0 20px 20px;max-width:500px;margin:0 auto}.category-section{margin-bottom:30px}.category-title{font-size:18px;font-weight:600;color:#5a4a3a;margin-bottom:15px;border-left:4px solid #42a5f5;padding-left:12px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;transition:all .2s ease}.category-title:hover{color:#42a5f5}.category-title:active{transform:scale(.98)}.category-arrow{display:inline-block;margin-right:8px;font-size:14px;transition:transform .3s ease}.category-arrow.collapsed{transform:rotate(-90deg)}.category-count{margin-left:auto;font-size:14px;color:#90a4ae;font-weight:400}.albums-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:15px;transition:all .3s ease}.album-card{cursor:pointer;transition:all .3s ease}.album-card:active .album-card-cover{transform:scale(.95)}.album-card.active .album-card-cover{box-shadow:0 .25rem .75rem #42a5f566;border-color:#42a5f5}.album-card-cover{position:relative;width:100%;padding-top:100%;overflow:hidden;border-radius:.75rem;background:#fff9;border:1px solid rgba(66,165,245,.2);transition:all .3s ease}.album-card-cover img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.album-cover-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.album-cover-placeholder span{font-size:3rem;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2);-webkit-user-select:none;user-select:none}.album-card-info{padding:8px 4px 0;text-align:center}.album-card-info h3{font-size:13px;font-weight:500;color:#5a4a3a;margin-bottom:4px;line-height:1.3}.album-card-info p{font-size:12px;color:#8b7355;margin:4px 0;display:block}.playlist-full{list-style:none;padding:0 20px 20px;max-width:500px;margin:0 auto}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:4.375rem;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(66,165,245,.2);display:flex;justify-content:space-around;align-items:center;z-index:100;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;background:none;border:none;color:#90a4ae;cursor:pointer;padding:.5rem;transition:all .3s ease;-webkit-tap-highlight-color:transparent}.nav-item svg{transition:all .3s ease}.nav-item span{font-size:.6875rem;font-weight:500}.nav-item:active{transform:scale(.9)}.nav-item.active{color:#42a5f5}.nav-item.active svg{transform:scale(1.1)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#90a4ae}.loading-spinner{width:40px;height:40px;border:3px solid rgba(66,165,245,.2);border-top-color:#42a5f5;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{font-size:14px}.album-card-info .track-count{font-size:11px;color:#90a4ae;margin-top:4px;display:block}
