.home-page{padding:0}.home-greeting{padding:16px 16px 8px;font-size:22px;font-weight:700}.wave-banner{margin:12px 16px;background:linear-gradient(135deg,#1a3a6e,#2787f5);border-radius:var(--radius);padding:16px;display:flex;align-items:center;gap:14px;cursor:pointer;active:opacity(.85)}.wave-banner:active{opacity:.85}.wave-banner-icon{width:48px;height:48px;background:#ffffff26;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.wave-banner-text h3{font-size:16px;font-weight:600}.wave-banner-text p{font-size:13px;color:#ffffffb3;margin-top:2px}.home-section{margin:16px 0 4px}.horizontal-scroll{display:flex;gap:12px;padding:4px 16px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.horizontal-scroll::-webkit-scrollbar{display:none}.card-album{flex-shrink:0;width:140px;cursor:pointer}.card-album:active{opacity:.7}.card-album-cover{width:140px;height:140px;border-radius:var(--radius-sm);overflow:hidden;background:var(--card-bg);margin-bottom:8px}.card-album-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-album-artist{font-size:12px;color:var(--hint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-page{padding:12px 0 0}.search-bar{display:flex;align-items:center;margin:0 16px 16px;background:var(--card-bg);border-radius:10px;padding:10px 12px;gap:10px}.search-bar input{flex:1;font-size:16px;background:none;border:none;outline:none;color:var(--text)}.search-bar input::placeholder{color:var(--hint)}.search-results-section{margin-bottom:8px}.search-results-section h3{font-size:17px;font-weight:600;padding:8px 16px 4px}.search-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;color:var(--hint);text-align:center;gap:12px}.library-page{padding:0}.library-tabs{display:flex;gap:8px;padding:12px 16px 0;overflow-x:auto;scrollbar-width:none}.library-tabs::-webkit-scrollbar{display:none}.library-tab-btn{flex-shrink:0;padding:6px 14px;border-radius:20px;font-size:14px;font-weight:500;background:var(--card-bg);color:var(--hint);border:none;cursor:pointer;transition:background .15s,color .15s}.library-tab-btn.active{background:var(--accent);color:#fff}.playlist-card{display:flex;align-items:center;gap:14px;padding:10px 16px;cursor:pointer}.playlist-card:active{background:var(--card-bg)}.playlist-cover{width:52px;height:52px;border-radius:var(--radius-sm);overflow:hidden;background:var(--card-2);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--hint)}.playlist-info{flex:1;min-width:0}.playlist-title{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-count{font-size:13px;color:var(--hint);margin-top:2px}.profile-page{padding:0}.profile-header{display:flex;flex-direction:column;align-items:center;padding:32px 16px 24px;gap:12px}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--card-2);overflow:hidden;display:flex;align-items:center;justify-content:center}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-name{font-size:20px;font-weight:700}.profile-username{font-size:14px;color:var(--hint)}.settings-section{margin:8px 0}.settings-section-title{font-size:13px;color:var(--hint);padding:8px 16px 4px;text-transform:uppercase;letter-spacing:.5px}.settings-item{display:flex;align-items:center;padding:14px 16px;gap:14px;cursor:pointer;border-bottom:1px solid var(--separator)}.settings-item:active{background:var(--card-bg)}.settings-item-icon{color:var(--accent);width:24px;display:flex;align-items:center;justify-content:center}.settings-item-text{flex:1;font-size:15px}.settings-item-value{color:var(--hint);font-size:14px}.settings-item-arrow{color:var(--hint)}.artist-page{padding:0}.artist-hero{position:relative;height:260px;overflow:hidden}.artist-hero-bg{width:100%;height:100%;object-fit:cover}.artist-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0003,#0a0a0a);display:flex;flex-direction:column;justify-content:flex-end;padding:16px}.artist-name{font-size:28px;font-weight:800}.artist-listeners{font-size:13px;color:var(--hint);margin-top:4px}.artist-actions{display:flex;gap:10px;padding:16px;align-items:center}.btn-play-artist{background:var(--accent);color:#fff;border-radius:24px;padding:10px 28px;font-size:15px;font-weight:600;cursor:pointer;border:none}.btn-follow{border:1.5px solid var(--separator);color:var(--text);border-radius:24px;padding:10px 20px;font-size:15px;font-weight:500;cursor:pointer;background:none}.album-page{padding:0}.album-hero{display:flex;flex-direction:column;align-items:center;padding:24px 16px 16px;gap:16px}.album-cover{width:200px;height:200px;border-radius:var(--radius);overflow:hidden;box-shadow:0 16px 40px #00000080}.album-meta{text-align:center}.album-title{font-size:20px;font-weight:700}.album-artist{font-size:15px;color:var(--hint);margin-top:4px}.album-year{font-size:13px;color:var(--hint);margin-top:2px}.album-actions{display:flex;gap:12px;padding:8px 16px 16px;align-items:center}.btn-play-album{flex:1;background:var(--accent);color:#fff;border-radius:24px;padding:12px;font-size:16px;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.btn-shuffle-album{flex:1;background:var(--card-bg);color:var(--text);border-radius:24px;padding:12px;font-size:16px;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.playlist-page{padding:0}.playlist-hero{display:flex;flex-direction:column;align-items:center;padding:24px 16px 16px;gap:14px}.playlist-cover-large{width:180px;height:180px;border-radius:var(--radius);overflow:hidden;background:var(--card-2);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 40px #0006}.playlist-meta{text-align:center}.playlist-name{font-size:20px;font-weight:700}.playlist-tracks-count{font-size:14px;color:var(--hint);margin-top:4px}.playlist-actions{display:flex;gap:12px;padding:8px 16px 16px}.btn-play-playlist{flex:1;background:var(--accent);color:#fff;border-radius:24px;padding:12px;font-size:16px;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;justify-content:center;gap:8px}:root{--bg: #0a0a0a;--card-bg: #1a1a1a;--card-2: #2c2c2e;--accent: #2787f5;--accent-hover: #1a6fd4;--text: #ffffff;--hint: #8e8e93;--separator: rgba(255,255,255,.1);--tabbar-bg: rgba(28,28,30,.92);--tabbar-height: 56px;--mini-player-height: 64px;--bottom-safe: env(safe-area-inset-bottom, 0px);--top-safe: env(safe-area-inset-top, 0px);--content-bottom: calc(var(--tabbar-height) + var(--mini-player-height) + 8px + var(--bottom-safe));--radius: 12px;--radius-sm: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.4;overflow:hidden}#root{height:100%;display:flex;flex-direction:column}button{background:none;border:none;cursor:pointer;color:inherit;font:inherit;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}input{font:inherit;color:inherit;background:none;border:none;outline:none}.page-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:var(--content-bottom);-webkit-overflow-scrolling:touch}.page-content::-webkit-scrollbar{display:none}.cover-img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.section-title{font-size:20px;font-weight:700;padding:16px 16px 8px}.hint{color:var(--hint)}.accent{color:var(--accent)}.skeleton{background:linear-gradient(90deg,var(--card-bg) 25%,var(--card-2) 50%,var(--card-bg) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:6px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
