:root{--bg: #f8fafd;--bg-gradient: linear-gradient(135deg, #e4def4 0%, #f5f2fd 60%, #f8fafd 100%);--surface: #ffffff;--surface-v: #eaedf2;--surface-hover: #f0f2f7;--card-bg: rgba(255, 255, 255, .85);--text: #1d1b20;--text-2: #625b71;--outline: #79747e;--primary: #65558f;--on-primary: #ffffff;--primary-c: #dbd0f7;--on-primary-c: #21005d;--star-bg: #e8ddff;--search-bg: rgba(255, 255, 255, .55);--search-home-bg: #e2e6ee;--shadow-sm: 0 2px 8px rgba(0,0,0,.06);--shadow: 0 4px 16px rgba(0,0,0,.06);--player-shadow: 0 8px 40px rgba(101,85,143,.18);--player-bg: rgba(219, 208, 247, .76);--card-surface-bg: rgba(255, 255, 255, .5);--wavy-col: #21005d;--wavy-inactive: rgba(101,85,143,.3);--md-sys-color-primary: #65558f;--md-sys-color-on-primary: #ffffff;--md-sys-color-primary-container: #dbd0f7;--md-sys-color-on-primary-container:#21005d;--md-sys-color-surface: #ffffff;--md-sys-color-on-surface: #1d1b20;--md-sys-color-surface-variant: #eaedf2;--md-sys-color-on-surface-variant: #49454f;--md-sys-color-outline: #79747e;--md-sys-color-background: #f8fafd;--md-sys-color-on-background: #1d1b20;--md-sys-color-error: #b3261e}html.dark{--bg: #1b1b1b;--bg-gradient: linear-gradient(135deg, #191424 0%, #161619 60%, #1b1b1b 100%);--surface: #131314;--surface-v: #242426;--surface-hover: #2a2a2d;--card-bg: rgba(255, 255, 255, .12);--text: #e6e1e5;--text-2: #a09aaa;--outline: #5a5560;--primary: #d0bcff;--on-primary: #381e72;--primary-c: #2a2630;--on-primary-c: #eaddff;--star-bg: #2d2a38;--search-bg: rgba(255, 255, 255, .12);--search-home-bg: #1e1e1f;--shadow-sm: 0 2px 8px rgba(0,0,0,.4);--shadow: 0 4px 16px rgba(0,0,0,.45);--player-shadow: 0 8px 40px rgba(0,0,0,.65);--player-bg: rgba(42, 38, 48, .76);--card-surface-bg: rgba(19, 19, 20, .72);--wavy-col: #eaddff;--wavy-inactive: rgba(208,188,255,.22);--md-sys-color-primary: #d0bcff;--md-sys-color-on-primary: #381e72;--md-sys-color-primary-container: #2a2630;--md-sys-color-on-primary-container:#eaddff;--md-sys-color-surface: #131314;--md-sys-color-on-surface: #e6e1e5;--md-sys-color-surface-variant: #242426;--md-sys-color-on-surface-variant: #a09aaa;--md-sys-color-outline: #5a5560;--md-sys-color-background: #1b1b1b;--md-sys-color-on-background: #e6e1e5}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Outfit,sans-serif;background:var(--bg-gradient);color:var(--text);width:100vw;height:100vh;overflow:hidden;display:flex;flex-direction:column;transition:background .3s,color .3s;user-select:none;-webkit-user-select:none}.song-name,.song-artist,.song-card .song-text,.pl-detail-title,.pl-detail-count,.section-title,.card-artist,.card-title,.lyrics-line,p,h1,h2,h3,input,textarea,[contenteditable=true],md-outlined-text-field,.kbd,kbd{user-select:text;-webkit-user-select:text}.ctrl-icon-btn,.win-btn,.header-menu-btn,.profile-avatar,.hdr-btn,.sidebar,.player-bar,md-filled-button,md-outlined-button,md-text-button,md-icon,.card-cover,.sidebar-circle,.recent-circle,.recent-circle-label,.card-star-btn,.song-more-btn{user-select:none!important;-webkit-user-select:none!important}.top-header{flex-shrink:0;height:64px;display:flex;align-items:center;padding:0 20px 0 16px;gap:12px}body.is-tauri .top-header{padding-right:0}.window-controls{display:none;align-items:center;margin-left:12px;height:100%;align-self:stretch}body.is-tauri .window-controls{display:flex}.win-btn{background:transparent;border:none;outline:none;width:46px;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text);cursor:pointer;transition:background .2s,color .2s;border-radius:0}.win-btn:hover{background:#00000014}html.dark .win-btn:hover{background:#ffffff14}#win-close:hover{background:#e81123!important;color:#fff!important}.header-menu-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:var(--text-2);transition:background .18s}.header-menu-btn:hover{background:var(--surface-hover)}.header-menu-btn .material-symbols-outlined{font-size:24px}.search-pill-wrap{flex:1;display:flex;align-items:center;justify-content:center;gap:12px}.search-pill{display:flex;align-items:center;background:var(--search-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);height:48px;border-radius:28px;padding:0 16px;gap:0;width:100%;max-width:540px;border:1px solid rgba(101,85,143,.18);box-shadow:inset 0 1px 1px #fff6,0 4px 12px #0000000d;transition:background .24s,border-color .24s,box-shadow .24s,transform .24s}html.dark .search-pill{border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 4px 12px #0003}.search-pill:focus-within{background:#fffffff2;border-color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 3px #65558f40,0 4px 16px #65558f1a;transform:scale(1.015)}html.dark .search-pill:focus-within{background:#1b1b1dd9;border-color:var(--primary);box-shadow:inset 0 1px 1px #ffffff1a,0 0 0 3px #d0bcff40,0 4px 16px #0000004d;transform:scale(1.015)}.search-home-circle{width:48px;height:48px;border-radius:50%;background:var(--search-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;color:var(--text-2);border:1px solid rgba(101,85,143,.18);box-shadow:inset 0 1px 1px #fff6,0 4px 12px #0000000d;transition:background .24s,border-color .24s,box-shadow .24s,transform .24s,color .24s}html.dark .search-home-circle{border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 4px 12px #0003}.search-home-circle:hover:not(.active){background:#ffffffe6;border-color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 3px #65558f33,0 4px 12px #65558f14;transform:scale(1.05)}html.dark .search-home-circle:hover:not(.active){background:#ffffff26;border-color:var(--primary);box-shadow:inset 0 1px 1px #ffffff1a,0 0 0 3px #d0bcff33,0 4px 12px #00000040;transform:scale(1.05)}.search-home-circle .material-symbols-outlined{font-size:22px;transition:font-variation-settings .2s}.search-home-circle.active{background:var(--primary-c);color:var(--on-primary-c);border-color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 3px #65558f40,0 4px 16px #65558f1f}.search-home-circle.active .material-symbols-outlined{font-variation-settings:"FILL" 1}.search-home-circle.active:hover{transform:scale(1.05)}.search-icon-wrap{display:flex;align-items:center;margin-right:8px;color:var(--text-2)}.search-icon-wrap .material-symbols-outlined{font-size:22px}.search-pill input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:inherit;font-size:15px;font-weight:400;min-width:0}.search-pill input::placeholder{color:var(--text-2);opacity:.85}.search-clear-btn{display:none;align-items:center;color:var(--text-2);cursor:pointer;padding:4px}.search-clear-btn .material-symbols-outlined{font-size:20px}.search-clear-btn:hover{color:var(--text)}.search-pill-pipe{width:1px;height:22px;background:var(--outline);opacity:.3;flex-shrink:0;margin:0 10px}.search-filter-btn{display:flex;align-items:center;color:var(--text-2);cursor:pointer;flex-shrink:0}.search-filter-btn .material-symbols-outlined{font-size:22px}.header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.hdr-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);transition:background .18s;border:1.5px solid transparent}.hdr-btn:hover{background:var(--surface-hover);color:var(--text)}.hdr-btn .material-symbols-outlined{font-size:22px}.profile-avatar{width:38px;height:38px;border-radius:50%;overflow:hidden;cursor:pointer;background:var(--surface-v);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.profile-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-avatar .material-symbols-outlined{font-size:26px;color:var(--text-2)}.body-row{flex:1;display:flex;min-height:0;padding:0 16px 20px 12px;gap:18px}.sidebar{width:80px;min-width:80px;max-width:280px;flex-shrink:0;position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 0 12px;overflow:hidden;transition:width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275)}.sidebar.resizing{transition:none!important}.sidebar-resize-handle{position:absolute;top:0;right:-3px;width:8px;height:100%;cursor:col-resize;z-index:10;border-radius:4px;transition:background .2s}.sidebar-resize-handle:hover,.sidebar-resize-handle.dragging{background:#65558f59}.sidebar-label{font-size:12px;font-weight:600;color:var(--text-2);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0;width:0;opacity:0;transform:scale(.6) translate(-20px);pointer-events:none;cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;transition:max-width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),opacity var(--drag-transition-dur, .3s) ease-in-out,transform var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275)}.sidebar-pl-item{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;width:100%;padding:0;gap:0;transition:padding var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),gap var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275)}.sidebar-pl-item:hover .sidebar-circle{transform:scale(1.08);border-color:var(--primary)}.sidebar.expanded .sidebar-label{max-width:180px;width:auto;opacity:1;transform:scale(1) translate(0);pointer-events:auto}.sidebar.expanded .sidebar-pl-item{padding:0;gap:10px;width:calc(100% - 10px)}.sidebar.expanded .sidebar-circle{margin-left:6px!important}.sidebar.expanded .sidebar-sep{width:calc(100% - 10px);margin-left:6px!important}.sidebar-fab{width:56px;height:56px;border-radius:20px;background:var(--search-bg);color:var(--text-2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;border:1px solid rgba(101,85,143,.18);box-shadow:inset 0 1px 1px #fff6,var(--shadow-sm);margin-left:6px;transition:width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),height var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),border-radius var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),margin-left var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),transform .24s,border-color .24s,box-shadow .24s,color .24s,background-color .24s}html.dark .sidebar-fab{border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,var(--shadow-sm)}.sidebar.expanded .sidebar-fab{width:calc(100% - 12px);max-width:220px;height:56px;border-radius:20px;padding:0 14px;justify-content:flex-start;margin-left:6px}.sidebar-fab:hover{transform:scale(1.08);background:var(--primary-c);color:var(--on-primary-c);border-color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 3px #65558f40,var(--shadow-sm)}.sidebar-fab .material-symbols-outlined{font-size:26px;flex-shrink:0}.sidebar.expanded .sidebar-fab .material-symbols-outlined{font-size:20px}.sidebar-fab-text{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;max-width:0;opacity:0;transform:scale(.6) translate(-20px);transition:max-width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),opacity var(--drag-transition-dur, .3s) ease-in-out,transform var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275)}.sidebar.expanded .sidebar-fab-text{max-width:140px;opacity:1;transform:scale(1) translate(0);margin-left:8px}.sidebar-fab-sm{width:40px;height:40px;border-radius:14px}.sidebar-fab-sm .material-symbols-outlined{font-size:20px}.song-drag-handle{cursor:grab;color:var(--text-2);opacity:.45;display:flex;align-items:center;flex-shrink:0;padding:0 4px;transition:opacity .15s;touch-action:none}.song-drag-handle:active{cursor:grabbing}.song-card:hover .song-drag-handle{opacity:.85}.song-card.dragging{opacity:.4;background:var(--primary-c);border:1.5px dashed var(--primary)}.song-card.drag-over{border-top:2.5px solid var(--primary);margin-top:-2px}.sidebar-sep{width:56px;height:1px;background:var(--surface-v);border-radius:1px;flex-shrink:0;margin-left:6px;transition:width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),margin-left var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275)}.sidebar-circles{flex:1;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:10px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:transparent transparent;scrollbar-gutter:stable;padding:2px 4px 120px 6px;transition:scrollbar-color .3s}.sidebar-circles::-webkit-scrollbar{width:4px}.sidebar-circles::-webkit-scrollbar-track{background:transparent}.sidebar-circles::-webkit-scrollbar-thumb{background:transparent;border-radius:10px;transition:background .3s}.sidebar-circles:hover{scrollbar-width:thin;scrollbar-color:rgba(101,85,143,.35) transparent}.sidebar-circles:hover::-webkit-scrollbar-thumb{background:#65558f52}.sidebar-circles.scrolling::-webkit-scrollbar-thumb{background:#65558f8c}.sidebar-circle{width:56px;height:56px;min-width:56px;min-height:56px;border-radius:21px;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--surface-v);box-shadow:var(--shadow-sm);flex-shrink:0;margin-left:6px;transition:width var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),height var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),border-radius var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),margin var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275),transform .18s,border-color .18s,background-color .18s;font-weight:700;font-size:14px;color:var(--text-2);overflow:hidden}.sidebar.expanded .sidebar-circle{margin:0}.sidebar-circle:hover{transform:scale(1.08);border-color:var(--primary);box-shadow:0 0 0 2px var(--primary),var(--shadow-sm)}.sidebar-circle.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary),inset 0 0 0 2px #65558f26,var(--shadow-sm);background:var(--primary-c);color:var(--on-primary-c)}.sidebar-circle img,.sidebar-circle-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;transition:border-radius var(--drag-transition-dur, .3s) cubic-bezier(.175,.885,.32,1.275)}.sidebar.expanded .sidebar-pl-item{padding:0 6px;gap:10px;width:calc(100% - 12px)}.sidebar.expanded .sidebar-label{max-width:180px;opacity:1;transform:scale(1) translate(0);pointer-events:auto}.sidebar-heart{width:56px;height:56px;border-radius:21px;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;background:#f0ecfe;flex-shrink:0;transition:transform .18s,border-color .18s,background-color .18s;border:1.5px solid var(--surface-v);box-shadow:var(--shadow-sm)}html.dark .sidebar-heart{background:#2a2640}.sidebar-heart:hover{transform:scale(1.08);border-color:var(--primary)}.sidebar-heart.active{border:2.5px solid var(--primary);background:var(--primary-c);color:var(--on-primary-c)}.sidebar-heart svg{width:26px;height:26px;display:block}.main-card{flex:1;background:var(--card-surface-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-radius:28px;box-shadow:var(--shadow);overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:0;scrollbar-width:thin;scrollbar-color:rgba(101,85,143,.45) transparent;transition:background .3s}.main-card::-webkit-scrollbar{width:5px}.main-card::-webkit-scrollbar-track{background:transparent;margin:8px}.main-card::-webkit-scrollbar-thumb{background:#65558f61;border-radius:10px;transition:background .2s}.main-card::-webkit-scrollbar-thumb:hover{background:#65558fb3}#view-library,#view-playlists{background:#ffffff8c;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border:1px solid rgba(101,85,143,.15);border-radius:24px;padding:24px;box-shadow:inset 0 1px 1px #fff6,0 8px 32px #0000000d}html.dark #view-library,html.dark #view-playlists{background:#1e1e208c;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 8px 32px #00000040}.lib-header{display:flex;flex-direction:column;gap:2px;margin-bottom:20px}.lib-header .material-symbols-outlined{font-size:22px;color:var(--text)}.lib-header h1{font-size:30px;font-weight:700;letter-spacing:-.5px;color:var(--text)}.section-row{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px}.section-row:first-of-type{margin-top:0}.section-title{display:flex;align-items:center;gap:6px;font-size:17px;font-weight:700;cursor:pointer;color:var(--text);text-decoration:none;transition:color .18s}.section-title:hover{color:var(--primary)}.section-title .material-symbols-outlined{font-size:20px}.recent-row,.card-grid-row{position:relative}.recent-row{display:flex;gap:14px;overflow-x:auto;padding:6px 0 10px;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.recent-row::-webkit-scrollbar{display:none}.recent-row.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.recent-special{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;width:72px;cursor:pointer}.recent-special-circle{width:68px;height:68px;border-radius:50%;background:#f0ecfe;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:transform .18s;overflow:hidden}html.dark .recent-special-circle{background:#2a2640}.recent-special:hover .recent-special-circle{transform:scale(1.06)}.recent-special-circle svg{width:40px;height:40px;display:block}.recent-special-label{font-size:11px;font-weight:500;text-align:center;color:var(--text);width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-circle-item{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;width:72px;cursor:pointer}.recent-circle{width:68px;height:68px;border-radius:50%;overflow:hidden;background:var(--card-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);flex-shrink:0;transition:transform .18s}.recent-circle:hover{transform:scale(1.06)}.recent-circle img{width:100%;height:100%;object-fit:cover}.recent-circle .material-symbols-outlined{font-size:28px;color:var(--text-2)}.recent-circle-label{font-size:11px;font-weight:500;text-align:center;color:var(--text);width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.card-grid-row{display:flex;gap:16px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none;cursor:grab;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.card-grid-row::-webkit-scrollbar{display:none}.card-grid-row.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.scroll-row-wrap{position:relative;overflow:hidden}.scroll-row-wrap:after{content:"";position:absolute;top:0;right:0;width:64px;height:100%;background:linear-gradient(to right,transparent,var(--bg, #f8fafd));pointer-events:none;opacity:0;transition:opacity .25s;z-index:2}.scroll-row-wrap.has-more:after{opacity:1}html.dark .scroll-row-wrap:after{background:linear-gradient(to right,transparent,var(--bg, #1b1b1b))}.card-item{flex-shrink:0;width:360px;cursor:pointer;display:flex;flex-direction:column;gap:0}.card-item-sm{width:160px}.card-cover{width:100%;height:180px;border-radius:28px;background:var(--card-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s;position:relative}.card-item-sm .card-cover{height:96px;border-radius:18px}.card-item-sm .card-cover img{border-radius:18px}.card-item:hover .card-cover{transform:scale(1.015)}.card-cover img{width:100%;height:100%;object-fit:cover;border-radius:28px}.card-placeholder-svg{display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:none}.card-meta{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 0}.card-meta-text{overflow:hidden;flex:1}.card-meta-text .card-artist{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-meta-text .card-title{font-size:11px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-star-btn{width:30px;height:30px;border-radius:50%;background:var(--star-bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;margin-left:8px;transition:background .18s,transform .18s}.card-star-btn:hover{transform:scale(1.1)}.card-star-btn .material-symbols-outlined{font-size:16px;color:var(--primary)}.card-star-btn.active .material-symbols-outlined{font-variation-settings:"FILL" 1}.song-list{display:flex;flex-direction:column;gap:4px}.song-card{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:14px;cursor:pointer;transition:background .16s;gap:12px}.song-card:hover{background:var(--surface-hover)}.song-card.playing{background:var(--primary-c)!important;color:var(--on-primary-c)}.song-card.playing .song-artist{color:var(--on-primary-c);opacity:.7}.song-card.playing .song-actions-inner span{color:var(--on-primary-c)}.song-card.selected{background:#65558f1f!important;box-shadow:inset 0 0 0 1.5px #65558f40}html.dark .song-card.selected{background:#d0bcff1a!important;box-shadow:inset 0 0 0 1.5px #d0bcff33}.card-item.selected .card-cover{box-shadow:0 0 0 3px var(--primary)!important;transform:scale(1.015)}.song-left{display:flex;align-items:center;gap:14px;min-width:0;flex:1}.song-thumb{width:44px;height:44px;border-radius:10px;background:var(--surface-v);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--text-2)}.song-thumb img{width:100%;height:100%;object-fit:cover;border-radius:10px}.song-thumb .material-symbols-outlined{font-size:22px}.song-text{min-width:0}.song-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}.song-artist{font-size:12px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-actions-inner{display:flex;align-items:center;gap:10px;flex-shrink:0}.song-actions-inner .material-symbols-outlined{font-size:20px;color:var(--text-2);cursor:pointer;transition:color .16s;-webkit-user-select:none;user-select:none}.song-actions-inner .material-symbols-outlined:hover{color:var(--text)}.song-actions-inner .star-icon.active{color:var(--primary);font-variation-settings:"FILL" 1}#pl-play-btn{background:#65558f38!important;color:var(--primary)!important;border:1.5px solid rgba(101,85,143,.35)!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;box-shadow:inset 0 1px 1px #ffffff4d,var(--shadow-sm)!important;transition:background .24s,border-color .24s,transform .24s,box-shadow .24s!important}#pl-play-btn:hover{background:#65558f59!important;border-color:var(--primary)!important;transform:scale(1.04)!important;box-shadow:inset 0 1px 1px #ffffff4d,0 0 0 3px #65558f26,var(--shadow-sm)!important}html.dark #pl-play-btn{background:#d0bcff29!important;color:var(--primary)!important;border-color:#d0bcff4d!important}html.dark #pl-play-btn:hover{background:#d0bcff47!important;border-color:var(--primary)!important}#view-playlist-detail{margin:-28px -28px -24px;padding:28px 28px 24px;border-radius:28px;background:var(--pl-gradient, rgba(255, 255, 255, .55));backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border:1px solid rgba(101,85,143,.15);box-shadow:inset 0 1px 1px #fff6,0 8px 32px #0000000d;transition:background .6s ease;min-height:calc(100% + 52px);position:relative}html.dark #view-playlist-detail{background:var(--pl-gradient, rgba(30, 30, 32, .55));border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 8px 32px #00000040}#view-playlist-detail.favorites-rainbow:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:28px;pointer-events:none;z-index:0;background:linear-gradient(var(--gradient-angle, 180deg),var(--cover-color-1, hsla(280, 85%, 65%, .42)) 0%,var(--cover-color-2, hsla(280, 85%, 65%, .14)) 50%,transparent 80%);opacity:0;transition:opacity .6s ease}#view-playlist-detail.favorites-rainbow.playing:before{opacity:1}#view-playlist-detail.favorites-rainbow>*{position:relative;z-index:1}.pl-detail-header{display:flex;align-items:center;gap:18px;margin-bottom:20px}.pl-detail-cover{width:76px;height:76px;border-radius:16px;background:linear-gradient(135deg,var(--primary-c),var(--primary));display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:var(--on-primary-c);box-shadow:var(--shadow-sm);overflow:hidden;flex-shrink:0;cursor:pointer;position:relative}.pl-detail-cover:after{content:"edit";font-family:Material Symbols Outlined;position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;opacity:0;transition:opacity .2s;border-radius:inherit}.pl-detail-cover:hover:after{opacity:1}.pl-detail-cover img{width:100%;height:100%;object-fit:cover}.pl-detail-info{flex:1}.pl-detail-info h2{font-size:20px;font-weight:700;margin-bottom:2px}.pl-detail-info p{font-size:13px;color:var(--text-2)}.pl-settings-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--search-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(101,85,143,.2);border-radius:14px;box-shadow:0 8px 32px #0000002e,inset 0 1px 1px #ffffff40;padding:6px;min-width:180px;z-index:200;animation:menuFadeIn .15s ease-out}html.dark .pl-settings-menu{background:#1c1c20e0;border-color:#ffffff1a;box-shadow:0 8px 32px #00000073,inset 0 1px 1px #ffffff14}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pl-settings-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;transition:background .15s}.pl-settings-item .material-symbols-outlined{font-size:18px;color:var(--text-2)}.pl-settings-item:hover{background:#65558f24}.pl-settings-item.pl-settings-danger,.pl-settings-item.pl-settings-danger .material-symbols-outlined{color:#e8294c}.pl-settings-item.pl-settings-danger:hover{background:#e8294c1a}.settings-section-title{font-size:14px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;margin:20px 0 10px}.settings-card{background:var(--surface-v);border-radius:18px;padding:4px 0;margin-bottom:4px;overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;gap:12px;border-bottom:1px solid rgba(0,0,0,.05);transition:background .16s}html.dark .settings-row{border-bottom-color:#ffffff0d}.settings-row:last-child{border-bottom:none}.settings-row-info h4{font-size:14px;font-weight:600;margin-bottom:2px}.settings-row-info p{font-size:12px;color:var(--text-2)}.settings-profile-card{display:flex;align-items:center;gap:16px;background:var(--surface-v);border-radius:18px;padding:16px 18px;margin-bottom:8px}.settings-profile-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;background:var(--surface-v);display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-profile-avatar img{width:100%;height:100%;object-fit:cover}.settings-profile-avatar .material-symbols-outlined{font-size:32px;color:var(--text-2)}.player-bar{position:fixed;bottom:0;left:0;right:0;height:80px;background:var(--player-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--on-primary-c);border-radius:44px 44px 0 0;display:flex;align-items:center;padding:0 24px;gap:0;z-index:200;box-shadow:var(--player-shadow);transition:background .3s,bottom .3s,left .3s,right .3s,border-radius .3s,padding .3s;overflow:hidden}.player-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(var(--gradient-angle, 130deg),var(--cover-color-1, hsla(280, 85%, 65%, .52)) 0%,var(--cover-color-2, hsla(340, 85%, 65%, .44)) 50%,var(--cover-color-3, hsla(40, 85%, 65%, .52)) 100%);opacity:0;transition:opacity .6s ease}.player-bar.playing:before{opacity:1}.player-bar.floating{bottom:16px;left:16px;right:16px;height:76px;border-radius:38px;padding:0 20px}.player-bar.floating:before{border-radius:38px}.player-track{display:flex;align-items:center;gap:12px;width:26%;min-width:0;overflow:hidden;flex-shrink:0}.eq-indicator{display:flex;align-items:flex-end;gap:2.2px;width:14px;height:14px;flex-shrink:0}.eq-bar{width:2px;height:3px;background-color:var(--primary);border-radius:1px;transform-origin:bottom}.song-card .eq-indicator{opacity:0;width:0;margin-right:0;transition:opacity .25s,width .25s,margin-right .25s;overflow:hidden}.song-card.playing .eq-indicator{opacity:1;width:14px;margin-right:12px}.player-thumb{width:48px;height:48px;border-radius:50%;background:#ffffff38;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;cursor:pointer;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s;color:var(--on-primary-c)}.player-thumb:hover{transform:scale(1.08);box-shadow:0 4px 12px #00000026}.player-thumb .material-symbols-outlined{font-size:24px;font-variation-settings:"FILL" 1}.player-thumb img{width:100%;height:100%;object-fit:cover;border-radius:50%}.player-track-text{min-width:0;overflow:hidden}.player-title{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--on-primary-c);line-height:1.3}.player-artist{font-size:11px;color:var(--on-primary-c);opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.player-add-btn{width:28px;height:28px;border-radius:50%;background:var(--search-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-left:4px;border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 1px 1px #ffffff4d,0 2px 6px #00000008;transition:background .24s,border-color .24s,box-shadow .24s,transform .24s,color .24s;color:var(--text-2)}html.dark .player-add-btn{border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 2px 6px #0000001a}.player-add-btn:hover{background:#ffffffe6;border-color:var(--primary);color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 2px #65558f33,0 2px 6px #65558f14;transform:scale(1.08)}html.dark .player-add-btn:hover{background:#ffffff26;border-color:var(--primary);color:var(--primary);box-shadow:inset 0 1px 1px #ffffff1a,0 0 0 2px #d0bcff33,0 2px 6px #0003;transform:scale(1.08)}.player-add-btn .material-symbols-outlined{font-size:18px}.player-connecting{display:flex;align-items:center;gap:10px;overflow:hidden}.player-connecting .material-symbols-outlined{font-size:22px;color:var(--on-primary-c);flex-shrink:0}.player-connecting-text{font-size:13px;font-weight:600;color:var(--on-primary-c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:0 8px}.ctrl-row{display:flex;align-items:center;gap:4px}.ctrl-icon-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--on-primary-c);transition:background .16s;flex-shrink:0}.ctrl-icon-btn:hover{background:#ffffff26}.ctrl-icon-btn .material-symbols-outlined{font-size:22px}.ctrl-icon-btn.active .material-symbols-outlined{color:#ffffff80}.ctrl-icon-btn.accent{color:#ffffffe6}.ctrl-play-btn{width:38px;height:38px;border-radius:50%;background:#65558f29!important;color:var(--primary)!important;border:1px solid rgba(101,85,143,.28)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;box-shadow:inset 0 1px 1px #fff3,0 2px 8px #0000001f!important;transition:transform .18s,background-color .18s,border-color .18s,box-shadow .18s}html.dark .ctrl-play-btn{background:#d0bcff1f!important;color:var(--primary)!important;border-color:#d0bcff38!important}.ctrl-play-btn:hover{transform:scale(1.08)!important;background:#65558f47!important;border-color:var(--primary)!important}html.dark .ctrl-play-btn:hover{background:#d0bcff38!important;border-color:var(--primary)!important}.ctrl-play-btn .material-symbols-outlined{font-size:26px}.timeline-row{display:flex;align-items:center;gap:8px;width:100%;max-width:500px}.timeline-time{font-size:11px;font-weight:500;color:var(--on-primary-c);opacity:.75;flex-shrink:0;min-width:28px;text-align:center}.wavy-bar{flex:1;height:20px;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center}.wavy-inactive{position:absolute;left:0;right:0;height:2px;background:#ffffff38;border-radius:1px;pointer-events:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:height .12s ease,background-color .12s ease}.wavy-active-clip{position:absolute;left:0;height:12px;width:0%;overflow:hidden;pointer-events:none;display:flex;align-items:center}@keyframes waveScroll{0%{background-position-x:0px}to{background-position-x:-48px}}.wavy-active-svg-el{position:absolute;left:0;width:2000px;height:12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'><path d='M0,6 C3,3.8 9,3.8 12,6 C15,8.2 21,8.2 24,6' fill='none' stroke='%237c4dff' stroke-width='2' stroke-linecap='round'/></svg>");background-repeat:repeat-x;background-size:24px 12px;animation:waveScroll 6.5s linear infinite;animation-play-state:paused;filter:drop-shadow(0 0 2px rgba(124,77,255,.4));transition:filter .15s}html.dark .wavy-active-svg-el{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='12' viewBox='0 0 24 12'><path d='M0,6 C3,3.8 9,3.8 12,6 C15,8.2 21,8.2 24,6' fill='none' stroke='%23d0bcff' stroke-width='2' stroke-linecap='round'/></svg>");filter:drop-shadow(0 0 3px rgba(208,188,255,.5))}.player-bar.playing .wavy-active-svg-el{animation-play-state:running}.wavy-thumb{position:absolute;top:50%;left:0%;width:11px;height:11px;background:#fff;border:2px solid var(--primary);border-radius:50%;transform:translate(-50%,-50%) scale(.6);opacity:1;pointer-events:none;box-shadow:var(--shadow-sm),0 0 4px #65558f4d;transition:transform .15s cubic-bezier(.34,1.56,.64,1),opacity .15s;z-index:2}.wavy-bar:hover .wavy-inactive{height:4px;background:#ffffff4d}.wavy-bar:hover .wavy-active-svg-el{animation-duration:4.5s;filter:drop-shadow(0 0 4px var(--primary))}.wavy-bar:hover .wavy-thumb{transform:translate(-50%,-50%) scale(1.1)}.wavy-bar:active .wavy-thumb{transform:translate(-50%,-50%) scale(1.4);box-shadow:var(--shadow-md),0 0 8px var(--primary)}.player-right{display:flex;align-items:center;gap:4px;width:26%;justify-content:flex-end;flex-shrink:0}.player-right .ctrl-icon-btn .material-symbols-outlined{font-size:20px}.vol-wrap{display:flex;align-items:center;gap:2px}.vol-slider-el{width:72px;--md-slider-active-track-color: var(--primary);--md-slider-inactive-track-color: rgba(255,255,255,.28);--md-slider-handle-color: var(--on-primary-c);--md-slider-handle-width: 12px;--md-slider-handle-height: 12px;--md-slider-track-height: 3px}#dialog-portal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120000;display:flex;align-items:center;justify-content:center;pointer-events:none}#dialog-portal.active{pointer-events:all;background:#00000073;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.dialog-box{background:var(--surface);border-radius:24px;padding:28px;min-width:320px;max-width:480px;width:90vw;box-shadow:0 8px 48px #00000038;display:flex;flex-direction:column;gap:16px;font-family:Outfit,sans-serif;color:var(--text);animation:dialogIn .22s cubic-bezier(.34,1.56,.64,1);pointer-events:all}@keyframes dialogIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.dialog-headline{font-size:20px;font-weight:700;color:var(--text)}.dialog-content{font-size:14px;color:var(--text);line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dialog-btn{padding:10px 22px;border-radius:50px;border:1px solid rgba(101,85,143,.18);font-family:Outfit,sans-serif;font-size:14px;font-weight:600;cursor:pointer;outline:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 1px #fff6,0 2px 6px #0000000d;transition:background .24s,border-color .24s,box-shadow .24s,transform .24s,color .24s}html.dark .dialog-btn{border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 2px 6px #0000001a}.dialog-btn:hover{transform:scale(1.03);border-color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 3px #65558f33,0 4px 12px #65558f14}html.dark .dialog-btn:hover{border-color:var(--primary);box-shadow:inset 0 1px 1px #ffffff1a,0 0 0 3px #d0bcff33,0 4px 12px #0003}.dialog-btn-primary{background:var(--primary-c);color:var(--on-primary-c);border-color:var(--primary)}.dialog-btn-primary:hover{background:var(--primary-c);color:var(--on-primary-c)}.dialog-btn-secondary{background:var(--search-bg);color:var(--text)}.dialog-btn-secondary:hover{background:#fffffff2}html.dark .dialog-btn-secondary:hover{background:#ffffff26}.app-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 18px;border-radius:50px;border:1px solid rgba(101,85,143,.18);background:var(--search-bg);color:var(--text-2);font-family:Outfit,sans-serif;font-size:13px;font-weight:700;cursor:pointer;outline:none;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 1px #fff6,0 2px 6px #0000000d;transition:background .24s,border-color .24s,box-shadow .24s,transform .24s,color .24s}html.dark .app-btn{border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 1px #ffffff26,0 2px 6px #00000026}.app-btn:hover{background:#fffffff2;color:var(--primary);border-color:var(--primary);box-shadow:inset 0 1px 1px #fff6,0 0 0 3px #65558f33,0 4px 12px #65558f14;transform:scale(1.03)}html.dark .app-btn:hover{background:#ffffff26;color:var(--primary);border-color:var(--primary);box-shadow:inset 0 1px 1px #ffffff1a,0 0 0 3px #d0bcff33,0 4px 12px #00000040;transform:scale(1.03)}.app-btn .material-symbols-outlined{font-size:18px}.app-btn.btn-primary{background:var(--primary-c);color:var(--on-primary-c);border-color:var(--primary)}.app-btn.btn-primary:hover{background:var(--primary-c);color:var(--on-primary-c)}.app-btn.btn-text{background:transparent;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}.app-btn.btn-text:hover{background:var(--search-bg);border-color:var(--surface-v);box-shadow:none;transform:scale(1.03)}.dialog-input{width:100%;box-sizing:border-box;padding:12px 16px;border-radius:14px;border:1.5px solid var(--surface-v);background:var(--bg);font-family:Outfit,sans-serif;font-size:15px;color:var(--text);outline:none;transition:border-color .18s}.dialog-input:focus{border-color:var(--primary)}md-dialog{--md-dialog-container-color: var(--surface);--md-dialog-headline-color: var(--text);--md-dialog-supporting-text-color: var(--text);color:var(--text);font-family:Outfit,sans-serif}md-dialog [slot=headline]{font-family:Outfit,sans-serif;font-weight:700;font-size:20px;color:var(--text)}md-dialog [slot=content]{font-family:Outfit,sans-serif;color:var(--text);font-size:14px}kbd{display:inline-block;padding:2px 8px;background:var(--surface-v);border-radius:6px;font-size:12px;font-family:monospace;color:var(--text);border:1px solid var(--outline);margin-right:4px}.ctx-menu{position:fixed;z-index:4000;background:var(--surface);border-radius:16px;box-shadow:0 4px 24px #00000038;padding:6px 0;min-width:200px;opacity:0;transform:scale(.95);pointer-events:none;transition:opacity .15s,transform .15s;border:1px solid var(--surface-v)}.ctx-menu.open{opacity:1;transform:scale(1);pointer-events:all}.ctx-item{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;color:var(--text);font-size:14px;font-weight:500;transition:background .14s}.ctx-item:hover{background:var(--surface-v)}.ctx-item.destructive,.ctx-item.destructive .material-symbols-outlined{color:#e8294c}.ctx-item.destructive:hover{background:#e8294c1f}.ctx-item .material-symbols-outlined{font-size:20px;color:var(--text-2)}.ctx-sep{height:1px;background:var(--surface-v);margin:4px 0}.theme-toggle-group{display:flex;gap:6px;background:var(--card-bg);padding:4px;border-radius:16px}.theme-toggle-btn{padding:8px 16px;border-radius:12px;border:none;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;cursor:pointer;background:transparent;color:var(--text-2);transition:background .18s,color .18s;display:flex;align-items:center;gap:6px}.theme-toggle-btn .material-symbols-outlined{font-size:16px}.theme-toggle-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0000001f}.theme-toggle-btn:hover:not(.active){background:var(--surface-hover);color:var(--text)}.profile-popup{position:fixed;z-index:2000;background:var(--surface);border-radius:18px;box-shadow:0 4px 24px #00000038;border:1px solid var(--surface-v);min-width:220px;overflow:hidden;opacity:0;transform:scale(.95) translateY(-6px);pointer-events:none;transition:opacity .15s,transform .15s}.profile-popup.open{opacity:1;transform:scale(1) translateY(0);pointer-events:all}.profile-popup-row{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;font-size:14px;font-weight:500;color:var(--text);transition:background .14s}.profile-popup-row:hover{background:var(--surface-v)}.profile-popup-row .material-symbols-outlined{font-size:20px;color:var(--text-2)}.profile-popup-sep{height:1px;background:var(--surface-v)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1.4s linear infinite;display:inline-block}.hidden{display:none!important}.flex-center{display:flex;align-items:center;justify-content:center}.empty-state{color:var(--text-2);font-size:13px;padding:16px 0}.trash-can-overlay{position:fixed;bottom:-100px;left:50%;transform:translate(-50%);width:320px;height:80px;background:#e8294c2e;border:1.5px solid rgba(232,41,76,.4);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:40px;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;transition:bottom .3s cubic-bezier(.175,.885,.32,1.275),opacity .3s;pointer-events:none;box-shadow:0 10px 30px #e8294c26,var(--shadow-md)}.trash-can-overlay.visible{bottom:110px;opacity:1;pointer-events:auto}.trash-can-content{display:flex;align-items:center;gap:12px;color:#e8294c;font-weight:700;font-size:14px;font-family:Outfit,sans-serif}.trash-icon{font-size:32px;transition:transform .2s}.trash-can-overlay.hovered{background:#e8294c59;border-color:#e8294c;transform:translate(-50%) scale(1.08);box-shadow:0 12px 35px #e8294c4d,var(--shadow-lg)}.trash-can-overlay.hovered .trash-icon{transform:rotate(-15deg) scale(1.2)}.card-item.dragging-playlist{position:fixed!important;pointer-events:none!important;z-index:9999!important;width:160px!important;height:auto!important;opacity:.88!important;transform:scale(.9)!important;box-shadow:var(--shadow-lg),0 15px 45px #0000004d!important;transition:none!important}.card-item.dragging-playlist .card-cover{height:96px!important;border-radius:18px!important;transition:none!important}.card-item.dragging-playlist .card-meta{padding:4px 0 0!important}.card-item.dragging-playlist .card-title,.card-item.dragging-playlist span.material-symbols-outlined{display:none!important}.app-view{will-change:transform,opacity}.app-view:not(.hidden){animation:viewEnter .3s cubic-bezier(.22,1,.36,1) forwards}@keyframes viewEnter{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.song-card.dragging-song{position:fixed!important;pointer-events:none!important;z-index:9999!important;width:320px!important;opacity:.88!important;transform:scale(.95)!important;box-shadow:var(--shadow-lg),0 12px 36px #0000004d!important;background:var(--surface)!important;border:1px solid var(--surface-v)!important;transition:none!important}.playback-sidebar{width:var(--playback-sidebar-w, 320px);max-width:var(--playback-sidebar-w, 320px);min-width:0;flex-shrink:0;position:relative;background:#e6dcff;border-left:1.5px solid rgba(124,77,255,.15);border-radius:24px;display:flex;flex-direction:column;height:100%;overflow:hidden;box-shadow:var(--shadow-md);transition:max-width var(--playback-drag-dur, .38s) cubic-bezier(.175,.885,.32,1.275),opacity .3s ease,margin-left .38s cubic-bezier(.175,.885,.32,1.275);opacity:1;font-family:Outfit,sans-serif;color:#21005d}.playback-sidebar.collapsed{max-width:0!important;opacity:0!important;pointer-events:none!important;margin-left:-18px!important}.playback-sidebar.resizing{transition:none!important}html.dark .playback-sidebar{background:#181324;border-color:#d0bcff1a;color:#eaddff}.playback-sidebar-resize-handle{position:absolute;top:0;left:-3px;width:8px;height:100%;cursor:col-resize;z-index:10;border-radius:4px;transition:background .2s}.playback-sidebar-resize-handle:hover,.playback-sidebar-resize-handle.dragging{background:#65558f59}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1.5px solid rgba(124,77,255,.1);flex-shrink:0}html.dark .sidebar-header{border-color:#d0bcff14}.sidebar-tabs{display:flex;gap:16px}.sidebar-tab{font-size:14px;font-weight:700;cursor:pointer;opacity:.65;position:relative;padding-bottom:4px;transition:opacity .2s}.sidebar-tab.active{opacity:1}.sidebar-tab:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2.5px;background:#21005d;border-radius:2px;transform:scaleX(0);transition:transform .25s cubic-bezier(.16,1,.3,1)}html.dark .sidebar-tab:after{background:#eaddff}.sidebar-tab.active:after{transform:scaleX(1)}.sidebar-close-btn{cursor:pointer;opacity:.65;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;transition:background .2s,opacity .2s}.sidebar-close-btn:hover{background:#7c4dff14;opacity:1}.sidebar-close-btn span{font-size:20px}.sidebar-content-wrapper{flex:1;overflow:hidden;position:relative}.sidebar-tab-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;padding:20px;display:flex;flex-direction:column;gap:18px;scrollbar-width:thin;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.4,0,.2,1),visibility 0s linear .32s}.sidebar-tab-content>*{flex-shrink:0}.sidebar-tab-content[data-enter=right]{transform:translate(28px)}.sidebar-tab-content[data-enter=left]{transform:translate(-28px)}.sidebar-tab-content.active{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0) translateY(0);transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .34s cubic-bezier(.34,1.56,.64,1)}.sidebar-tab-content.tab-leave-left{opacity:0;transform:translate(-28px);pointer-events:none;transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .26s cubic-bezier(.4,0,.2,1)}.sidebar-tab-content.tab-leave-right{opacity:0;transform:translate(28px);pointer-events:none;transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .26s cubic-bezier(.4,0,.2,1)}.info-album-source{font-size:15px;font-weight:700;opacity:.8}.info-cover-wrap{position:relative;width:100%;aspect-ratio:1;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-md)}.info-cover-wrap img{width:100%;height:100%;object-fit:cover}.video-switch-btn{position:absolute;bottom:12px;left:12px;background:#0009;border:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;padding:6px 14px;border-radius:20px;font-size:11px;font-weight:700;display:flex;align-items:center;gap:6px;cursor:pointer;font-family:Outfit,sans-serif;box-shadow:0 4px 10px #00000026;transition:transform .15s,background .15s}.video-switch-btn:hover{transform:scale(1.03);background:#000000bf}.video-switch-btn span{font-size:16px}.info-track-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.info-text{min-width:0;flex:1}.info-title{font-size:18px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-artist{font-size:14px;opacity:.7;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-actions{display:flex;gap:12px;flex-shrink:0}.info-icon-btn{font-size:22px;cursor:pointer;opacity:.75;transition:opacity .15s,transform .15s}.info-icon-btn:hover{opacity:1;transform:scale(1.1)}.info-icon-btn.active{color:var(--primary);font-variation-settings:"FILL" 1;opacity:1}.artist-card-box{width:100%;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);position:relative}.artist-card-bg-wrap{position:relative;width:100%;height:180px;background:#181324}.artist-card-bg-wrap img{width:100%;height:100%;object-fit:cover;opacity:.65;transition:transform .3s}.artist-card-box:hover img{transform:scale(1.05)}.artist-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000001a,#000c);padding:16px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff}.artist-card-title{font-size:11px;font-weight:700;text-transform:uppercase;opacity:.8;letter-spacing:.5px}.artist-card-name{font-size:20px;font-weight:700;margin-top:4px}.artist-follow-btn{position:absolute;bottom:16px;right:16px;background:#fff3;border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:4px 14px;border-radius:14px;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s;font-family:Outfit,sans-serif}.artist-follow-btn:hover{background:#ffffff59}.credits-card-box{background:#ffffff59;border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px}html.dark .credits-card-box{background:#ffffff0d}.credits-card-header{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:14px}.credits-all-btn{background:none;border:none;color:#7c4dff;font-size:12px;font-weight:700;cursor:pointer;font-family:Outfit,sans-serif;opacity:.85}html.dark .credits-all-btn{color:#d0bcff}.credits-list{display:flex;flex-direction:column;gap:10px}.credit-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.credit-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.credit-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:var(--on-primary-c);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.credit-text{min-width:0;flex:1}.credit-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.credit-role{font-size:11px;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.credit-follow-btn{background:#7c4dff1f;border:none;color:#7c4dff;padding:4px 12px;border-radius:12px;font-size:10px;font-weight:700;cursor:pointer;font-family:Outfit,sans-serif;transition:background .15s,transform .15s;flex-shrink:0}html.dark .credit-follow-btn{background:#d0bcff1f;color:#d0bcff}.credit-follow-btn:hover{background:#7c4dff38;transform:scale(1.03)}.info-footer-card{background:#ffffff59;border-radius:20px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;margin-top:4px}html.dark .info-footer-card{background:#ffffff0d}.footer-card-header{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:12px;opacity:.75}.footer-queue-btn{background:none;border:none;color:#7c4dff;font-size:11px;font-weight:700;cursor:pointer;font-family:Outfit,sans-serif}html.dark .footer-queue-btn{color:#d0bcff}.footer-next-song-row{display:flex;align-items:center;gap:10px}.footer-next-cover{width:42px;height:42px;border-radius:10px;object-fit:cover;flex-shrink:0}.footer-next-text{min-width:0;flex:1}.footer-next-title{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer-next-artist{font-size:11px;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-section-header{font-size:12px;font-weight:700;text-transform:uppercase;opacity:.75;letter-spacing:.5px;margin-bottom:4px}.queue-song-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:16px;cursor:pointer;transition:background .15s;min-width:0}.queue-song-row:hover{background:#ffffff40}html.dark .queue-song-row:hover{background:#ffffff0a}.queue-song-row.current{background:#ffffff73;cursor:default}html.dark .queue-song-row.current{background:#ffffff14}.queue-song-cover{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.queue-song-cover.current{border:2px solid var(--primary)}.queue-song-text{min-width:0;flex:1}.queue-song-title{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-song-row.current .queue-song-title{color:var(--primary)}html.dark .queue-song-row.current .queue-song-title{color:#d0bcff}.queue-song-artist{font-size:12px;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.queue-next-header{display:flex!important;align-items:center;justify-content:space-between;gap:8px}.queue-clear-btn{background:none;border:none;font-family:Outfit,sans-serif;font-size:11px;font-weight:600;color:var(--primary);cursor:pointer;padding:2px 8px;border-radius:20px;opacity:.75;transition:opacity .15s,background .15s;white-space:nowrap;flex-shrink:0}.queue-clear-btn:hover{opacity:1;background:#65558f1f}html.dark .queue-clear-btn{color:#d0bcff}html.dark .queue-clear-btn:hover{background:#d0bcff1a}.fs-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:stretch;background:linear-gradient(135deg,#12102a,#1a1530,#231d42);font-family:Outfit,sans-serif;color:#fff;transform:translateY(100%);opacity:0;pointer-events:none;transition:transform .48s cubic-bezier(.175,.885,.32,1.275),opacity .38s ease}.fs-overlay.open{transform:translateY(0);opacity:1;pointer-events:auto}html.dark .fs-overlay{background:linear-gradient(135deg,#0d0b1a,#130f22,#1a1531)}.fs-close-btn{position:absolute;top:20px;left:50%;transform:translate(-50%);z-index:10;background:#ffffff1a;border:none;color:#ffffffb3;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fs-close-btn:hover{background:#fff3;color:#fff}.fs-close-btn .material-symbols-outlined{font-size:28px}.fs-left{flex:0 0 420px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:80px 40px 40px}.fs-cover-wrap{width:300px;height:300px;border-radius:24px;overflow:hidden;box-shadow:0 24px 80px #65558f8c,0 8px 32px #0009;flex-shrink:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.fs-cover-wrap:hover{transform:scale(1.025)}.fs-cover-img{width:100%;height:100%;object-fit:cover;display:block}.fs-track-info{display:flex;align-items:center;gap:12px;width:100%}.fs-track-info>div:first-child{flex:1;min-width:0}.fs-track-title{font-size:22px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-track-artist{font-size:15px;opacity:.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.fs-track-actions{display:flex;gap:8px;flex-shrink:0}.fs-action-icon{font-size:24px;cursor:pointer;opacity:.65;transition:opacity .2s,transform .2s;color:#fff}.fs-action-icon:hover,.fs-action-icon.active{opacity:1;transform:scale(1.15)}.fs-action-icon.active{color:var(--primary, #d0bcff)}.fs-progress-wrap{display:flex;align-items:center;gap:10px;width:100%}.fs-time{font-size:12px;opacity:.55;white-space:nowrap;min-width:34px}.fs-time:last-child{text-align:right}.fs-progress-bar{flex:1;height:4px;background:#ffffff2e;border-radius:4px;position:relative;cursor:pointer;transition:height .15s}.fs-progress-bar:hover{height:6px}.fs-progress-filled{height:100%;background:#fff;border-radius:4px;pointer-events:none;width:0%;transition:width .25s linear}.fs-progress-thumb{position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:14px;height:14px;border-radius:50%;background:#fff;pointer-events:none;transition:transform .15s;left:0%}.fs-progress-bar:hover .fs-progress-thumb{transform:translate(-50%,-50%) scale(1)}.fs-controls{display:flex;align-items:center;gap:20px}.fs-ctrl-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.65;transition:opacity .2s,transform .2s,background .2s;color:#fff}.fs-ctrl-btn:hover{opacity:1;transform:scale(1.12)}.fs-ctrl-btn.active{opacity:1;color:var(--primary, #d0bcff)}.fs-ctrl-btn .material-symbols-outlined{font-size:26px}.fs-play-btn{width:64px;height:64px;border-radius:50%;background:#fff;color:#1a1535;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px #65558f80;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s}.fs-play-btn:hover{transform:scale(1.08);box-shadow:0 8px 36px #65558fa6}.fs-play-btn:active{transform:scale(.95)}.fs-play-btn .material-symbols-outlined{font-size:32px}.fs-right{flex:1;display:flex;flex-direction:column;background:#ffffff0d;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-left:1px solid rgba(255,255,255,.08);overflow:hidden;padding-top:80px}.fs-right-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px 16px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0}.fs-right-tabs{display:flex;gap:20px}.fs-tab{background:none;border:none;color:#ffffff80;font-family:Outfit,sans-serif;font-size:15px;font-weight:700;cursor:pointer;padding:0 0 8px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.fs-tab.active{color:#fff;border-bottom-color:#fff}.fs-clear-queue-btn{background:none;border:1px solid rgba(255,255,255,.25);color:#fff9;font-family:Outfit,sans-serif;font-size:12px;font-weight:600;cursor:pointer;padding:4px 12px;border-radius:20px;transition:background .2s,color .2s,border-color .2s}.fs-clear-queue-btn:hover{background:#ffffff1a;color:#fff;border-color:#ffffff80}.fs-tab-content{display:none;flex-direction:column;gap:14px;overflow-y:auto;flex:1;padding:20px 28px 28px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.fs-tab-content.active{display:flex}.fs-info-album{font-size:13px;font-weight:600;opacity:.55;text-transform:uppercase;letter-spacing:.5px}.fs-artist-card{position:relative;border-radius:20px;overflow:hidden;height:180px;flex-shrink:0}.fs-artist-img{width:100%;height:100%;object-fit:cover;display:block}.fs-artist-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:16px 18px}.fs-artist-follow-btn{position:absolute;bottom:16px;right:16px;background:#fff3;border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;padding:4px 14px;border-radius:14px;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s;font-family:Outfit,sans-serif}.fs-artist-follow-btn:hover{background:#ffffff59}.fs-artist-follow-btn.active{background:var(--primary)!important;border-color:#fff6!important}.fs-artist-label{font-size:11px;font-weight:600;opacity:.6;text-transform:uppercase;letter-spacing:.5px}.fs-artist-name{font-size:20px;font-weight:700;margin-top:2px}.fs-credits{display:flex;flex-direction:column;gap:12px}.fs-queue-current{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:16px;background:#ffffff1a;flex-shrink:0}.fs-queue-current-cover{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,255,255,.3)}.fs-queue-current-text{flex:1;min-width:0}.fs-queue-current-title{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-queue-current-artist{font-size:12px;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-queue-section-label{font-size:12px;font-weight:700;text-transform:uppercase;opacity:.5;letter-spacing:.5px;flex-shrink:0}.fs-queue-list{display:flex;flex-direction:column;gap:2px}.fs-queue-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;cursor:pointer;transition:background .15s}.fs-queue-row:hover{background:#ffffff14}.fs-queue-cover{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0}.fs-queue-text{flex:1;min-width:0}.fs-queue-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-queue-artist{font-size:12px;opacity:.55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-volume-row{display:flex;align-items:center;gap:10px;width:100%;padding:0 2px}.fs-vol-icon{font-size:20px;opacity:.6;color:#fff;cursor:pointer;transition:opacity .2s;flex-shrink:0;-webkit-user-select:none;user-select:none}.fs-vol-icon:hover{opacity:1}.fs-vol-pct{font-size:12px;opacity:.5;color:#fff;min-width:32px;text-align:right;flex-shrink:0;font-family:Outfit,sans-serif}.fs-vol-track-wrap{flex:1;position:relative;height:20px;display:flex;align-items:center}.fs-vol-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:#fff3;outline:none;cursor:pointer;transition:height .15s;background:linear-gradient(to right,rgba(255,255,255,.85) 0%,rgba(255,255,255,.85) var(--vol-pct, 70%),rgba(255,255,255,.18) var(--vol-pct, 70%),rgba(255,255,255,.18) 100%)}.fs-vol-slider:hover{height:6px}.fs-vol-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 1px 6px #0006;transition:transform .15s}.fs-vol-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.fs-vol-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;cursor:pointer;border:none;box-shadow:0 1px 6px #0006}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:rgba(101,85,143,.3) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent;border-radius:10px}::-webkit-scrollbar-thumb{background:transparent;border-radius:10px;transition:background .25s}*:hover::-webkit-scrollbar-thumb{background:#65558f47}*:hover::-webkit-scrollbar-thumb:hover{background:#65558f94}*:active::-webkit-scrollbar-thumb{background:#65558f80}html.dark *:hover::-webkit-scrollbar-thumb{background:#d0bcff38}html.dark *:hover::-webkit-scrollbar-thumb:hover{background:#d0bcff73}html.dark *{scrollbar-color:transparent transparent}html.dark *:hover{scrollbar-color:rgba(208,188,255,.22) transparent}.fs-tab-content::-webkit-scrollbar-thumb{background:#ffffff26!important}.fs-tab-content:hover::-webkit-scrollbar-thumb{background:#ffffff4d!important}.fs-tab-content{scrollbar-color:rgba(255,255,255,.15) transparent!important}.sidebar-tab-content::-webkit-scrollbar{width:4px}.sidebar-tab-content::-webkit-scrollbar-track{background:transparent}.sidebar-tab-content::-webkit-scrollbar-thumb{background:transparent;border-radius:10px}.sidebar-tab-content:hover::-webkit-scrollbar-thumb{background:#65558f4d}html.dark .sidebar-tab-content:hover::-webkit-scrollbar-thumb{background:#d0bcff38}.recent-row::-webkit-scrollbar,.card-grid-row::-webkit-scrollbar{display:none!important;height:0!important}.dock-preview{position:fixed;z-index:10000;background:#65558f14;border:2px dashed rgba(101,85,143,.45);border-radius:20px;pointer-events:none;opacity:0;transform:scale(.78);box-shadow:0 8px 32px #65558f26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .26s ease,transform .36s cubic-bezier(.34,1.56,.64,1),top .28s cubic-bezier(.19,1,.22,1),left .28s cubic-bezier(.19,1,.22,1),width .28s cubic-bezier(.19,1,.22,1),height .28s cubic-bezier(.19,1,.22,1)}.dock-preview.visible{opacity:1;transform:scale(1);background:#65558f26;border-color:var(--primary);border-style:solid;box-shadow:0 8px 32px #65558f38}html.dark .dock-preview{background:#d0bcff0a;border-color:#d0bcff4d;box-shadow:0 8px 32px #0000004d}html.dark .dock-preview.visible{background:#d0bcff1f;border-color:#d0bcff;box-shadow:0 8px 32px #0006}.sidebar-drag-handle,.playback-drag-handle,.player-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--text-2);opacity:.3;cursor:grab;transition:opacity .2s,color .2s,background-color .2s,transform .2s;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sidebar-drag-handle:hover,.playback-drag-handle:hover,.player-drag-handle:hover{opacity:.85;color:var(--primary)}.sidebar-drag-handle:active,.playback-drag-handle:active,.player-drag-handle:active{cursor:grabbing;transform:scale(1.1)}.sidebar-drag-handle{width:40px;height:18px;border-radius:10px;margin-top:6px;margin-bottom:2px;flex-shrink:0}.sidebar-drag-handle span{font-size:20px;transform:rotate(90deg)}.playback-drag-handle{width:28px;height:28px;border-radius:50%;flex-shrink:0}.playback-drag-handle:hover{background:#65558f1f}.playback-drag-handle span{font-size:18px}.player-drag-handle{width:24px;height:48px;border-radius:8px;margin-right:8px;flex-shrink:0}.player-drag-handle:hover{background:#65558f1f}.player-drag-handle span{font-size:20px}html.dark .playback-drag-handle:hover,html.dark .player-drag-handle:hover{background:#ffffff14}.sidebar{order:var(--sidebar-order, 1)}.main-card{order:3}.playback-sidebar{order:var(--playback-sidebar-order, 5)}body.sidebar-dock-right .sidebar{border-left:1.5px solid rgba(124,77,255,.15)!important;border-right:none!important}body.sidebar-dock-right .sidebar-resize-handle{left:-3px;right:auto}html.dark body.sidebar-dock-right .sidebar{border-left-color:#d0bcff1a!important}body.playback-dock-left .playback-sidebar{border-right:1.5px solid rgba(124,77,255,.15)!important;border-left:none!important}body.playback-dock-left .playback-sidebar-resize-handle{right:-3px;left:auto}html.dark body.playback-dock-left .playback-sidebar{border-right-color:#d0bcff1a!important}body{transition:padding .3s cubic-bezier(.19,1,.22,1)}body.player-dock-bottom{padding:0 0 80px}body.player-dock-top{padding:0}body.player-dock-left{padding:0 0 0 80px}body.player-dock-right{padding:0 80px 0 0}body.player-dock-top .body-row{margin-top:80px;transition:margin-top .3s cubic-bezier(.19,1,.22,1)}.player-bar{border-top:1.5px solid rgba(124,77,255,.15)!important;border-bottom:none!important;border-left:none!important;border-right:none!important}html.dark .player-bar{border-top-color:#d0bcff1a!important}.player-bar.dock-top{top:64px!important;bottom:auto!important;left:0!important;right:0!important;margin:0!important;width:100vw!important;height:80px!important;border-radius:0 0 28px 28px!important;box-shadow:0 8px 32px #65558f1f;border-bottom:1.5px solid rgba(124,77,255,.15)!important;border-top:none!important;border-left:none!important;border-right:none!important}.player-bar.dock-top:before{border-radius:0 0 28px 28px!important}.player-bar.vertical.dock-left{top:64px!important;bottom:0!important;left:0!important;right:auto!important;margin:0!important;width:80px!important;max-width:80px!important;height:calc(100vh - 64px)!important;border-radius:0 28px 28px 0!important;border-right:1.5px solid rgba(124,77,255,.15)!important;border-left:none!important;border-top:none!important;border-bottom:none!important}.player-bar.vertical.dock-left:before{border-radius:0 28px 28px 0!important}.player-bar.vertical.dock-right{top:64px!important;bottom:0!important;right:0!important;left:auto!important;margin:0!important;width:80px!important;max-width:80px!important;height:calc(100vh - 64px)!important;border-radius:28px 0 0 28px!important;border-left:1.5px solid rgba(124,77,255,.15)!important;border-right:none!important;border-top:none!important;border-bottom:none!important}.player-bar.vertical.dock-right:before{border-radius:28px 0 0 28px!important}.player-bar.floating{bottom:16px!important;left:16px!important;right:16px!important;width:auto!important;height:76px!important;border-radius:38px!important;border:1.5px solid rgba(124,77,255,.15)!important}.player-bar.floating:before{border-radius:38px!important}.player-bar.floating.dock-top{top:76px!important;bottom:auto!important;left:16px!important;right:16px!important;width:auto!important;height:76px!important;border-radius:38px!important;border:1.5px solid rgba(124,77,255,.15)!important;box-shadow:0 8px 32px #65558f26!important}.player-bar.floating.dock-top:before{border-radius:38px!important}.player-bar.floating.vertical.dock-left{top:76px!important;bottom:16px!important;left:16px!important;right:auto!important;width:76px!important;max-width:76px!important;height:calc(100vh - 92px)!important;border-radius:38px!important;border:1.5px solid rgba(124,77,255,.15)!important;box-shadow:var(--shadow-md)!important}.player-bar.floating.vertical.dock-left:before{border-radius:38px!important}.player-bar.floating.vertical.dock-right{top:76px!important;bottom:16px!important;right:16px!important;left:auto!important;width:76px!important;max-width:76px!important;height:calc(100vh - 92px)!important;border-radius:38px!important;border:1.5px solid rgba(124,77,255,.15)!important;box-shadow:var(--shadow-md)!important}.player-bar.floating.vertical.dock-right:before{border-radius:38px!important}.player-bar.vertical{flex-direction:column!important;padding:24px 8px!important;gap:20px!important;justify-content:space-between!important;align-items:center!important}html.dark .player-bar.vertical.dock-left{border-right-color:#d0bcff1a!important}html.dark .player-bar.vertical.dock-right{border-left-color:#d0bcff1a!important}.player-bar.vertical .player-drag-handle{width:48px;height:24px;margin-right:0;margin-bottom:8px}.player-bar.vertical .player-drag-handle span{transform:rotate(90deg)}.player-bar.vertical .player-track{width:100%;flex-direction:column;align-items:center;gap:8px}.player-bar.vertical .player-thumb{width:50px;height:50px;margin:0}.player-bar.vertical .player-track-text{display:none}.player-bar.vertical .player-add-btn{margin:0}.player-bar.vertical .player-center{flex:none;width:100%;flex-direction:column;gap:16px}.player-bar.vertical .ctrl-row{flex-direction:column;gap:8px}.player-bar.vertical .timeline-row{display:none}.player-bar.vertical .player-right{flex:none;width:100%;flex-direction:column;gap:12px;align-items:center}.player-bar.vertical .vol-wrap{width:auto;margin:0}.player-bar.vertical .vol-slider-el{display:none}.drag-active-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;border:4px solid var(--primary);opacity:.15;border-radius:28px;margin:12px}body.player-dock-bottom .main-card{padding-bottom:110px!important;padding-top:28px!important}body.player-dock-top .main-card{padding-top:110px!important;padding-bottom:28px!important}body.player-dock-left .main-card,body.player-dock-right .main-card{padding-top:28px!important;padding-bottom:28px!important}body.player-dock-bottom .sidebar-tab-content{padding-bottom:100px!important;padding-top:20px!important}body.player-dock-top .sidebar-tab-content{padding-top:100px!important;padding-bottom:20px!important}body.player-dock-left .sidebar-tab-content,body.player-dock-right .sidebar-tab-content{padding-top:20px!important;padding-bottom:20px!important}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;background:#0c0a1473;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.19,1,.22,1)}.auth-overlay.visible{opacity:1;pointer-events:all}.auth-box{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:28px;padding:40px;width:100%;max-width:440px;box-shadow:0 24px 64px #65558f26;position:relative;overflow:hidden;font-family:Outfit,sans-serif;color:var(--text);transform:translateY(20px) scale(.96);transition:transform .4s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}html.dark .auth-box{background:#1e182e66;border-color:#d0bcff14;box-shadow:0 24px 64px #00000073}.auth-overlay.visible .auth-box{transform:translateY(0) scale(1)}.auth-skip-btn{position:absolute;top:20px;right:20px;background:none;border:none;color:var(--text-2);cursor:pointer;transition:color .2s,transform .2s;display:flex;align-items:center;justify-content:center}.auth-skip-btn:hover{color:var(--text);transform:scale(1.1)}.auth-slide{display:none;flex-direction:column;animation:authSlideIn .4s cubic-bezier(.19,1,.22,1)}.auth-slide.active{display:flex}@keyframes authSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.auth-title{font-size:24px;font-weight:800;text-align:center;margin-bottom:6px;background:linear-gradient(135deg,var(--primary) 0%,#a289f0 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-subtitle{font-size:13px;color:var(--text-2);text-align:center;margin-bottom:28px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input-group{display:flex;flex-direction:column;gap:6px}.auth-input-group label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-2)}.auth-input-group input{background:#ffffff0d;border:1.5px solid rgba(124,77,255,.12);border-radius:12px;padding:12px 16px;font-family:inherit;font-size:14px;color:var(--text);transition:border-color .25s,box-shadow .25s,background-color .25s}html.dark .auth-input-group input{background:#0003;border-color:#d0bcff14}.auth-input-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #7c4dff26;background:#ffffff14}.auth-submit-btn{background:var(--primary);color:#fff;border:none;border-radius:14px;padding:12px;font-family:inherit;font-weight:700;font-size:14px;cursor:pointer;transition:transform .2s,background-color .2s,opacity .2s;box-shadow:0 8px 24px #7c4dff33;margin-top:8px;text-align:center}.auth-submit-btn:hover{background:#6a3de8;transform:translateY(-1px)}.auth-submit-btn:active{transform:translateY(1px)}.auth-submit-btn.disabled,.auth-submit-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.auth-divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:var(--text-2);font-size:11px;font-weight:700}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1.5px solid rgba(124,77,255,.12)}html.dark .auth-divider:before,html.dark .auth-divider:after{border-bottom-color:#d0bcff14}.auth-divider span{padding:0 10px}.auth-google-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:14px;padding:10px;color:var(--text);font-family:inherit;font-weight:600;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .2s,transform .2s}.auth-google-btn:hover{background:#ffffff2e;transform:translateY(-1px)}.auth-google-icon{width:18px;height:18px}.auth-footer{text-align:center;font-size:13px;color:var(--text-2);margin-top:24px}.auth-footer a{color:var(--primary);text-decoration:none;font-weight:700}.auth-footer a:hover{text-decoration:underline}.avatar-setup-wrap{display:flex;flex-direction:column;align-items:center;gap:20px;margin-bottom:24px}.current-avatar-preview{width:88px;height:88px;border-radius:50%;border:3px solid var(--primary);position:relative;box-shadow:0 8px 24px #7c4dff33;background:#ffffff0d;overflow:hidden}.current-avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-presets-grid{display:flex;gap:12px;justify-content:center}.avatar-preset-item{width:42px;height:42px;border-radius:50%;cursor:pointer;border:2px solid transparent;overflow:hidden;transition:transform .2s,border-color .2s;background:#ffffff0d}.avatar-preset-item:hover{transform:scale(1.15)}.avatar-preset-item.active{border-color:var(--primary);transform:scale(1.1);box-shadow:0 4px 12px #7c4dff40}.avatar-preset-item img{width:100%;height:100%;object-fit:cover}.username-validation-status{font-size:11px;margin-top:4px;font-weight:600;transition:color .2s}.username-validation-status.success{color:#4caf50}.username-validation-status.error{color:#f44336}.verification-desc{font-size:13px;color:var(--text-2);text-align:center;margin-bottom:24px;line-height:1.5}.verification-code-container{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.code-input{width:44px;height:48px;background:#ffffff0d;border:1.5px solid rgba(124,77,255,.12);border-radius:12px;text-align:center;font-size:20px;font-weight:700;font-family:inherit;color:var(--text);transition:border-color .2s,box-shadow .2s}html.dark .code-input{background:#0003;border-color:#d0bcff14}.code-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #7c4dff26;background:#ffffff14}.verification-timer{text-align:center;font-size:13px;color:var(--text-2);margin-bottom:24px}.verification-timer a{color:var(--primary);font-weight:700;text-decoration:none}.verification-timer a:hover{text-decoration:underline}.verification-toast{position:fixed;top:-100px;right:24px;z-index:110000;background:#ffffff26;border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:14px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 16px 36px #65558f33;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);max-width:360px;font-family:Outfit,sans-serif;color:var(--text);cursor:pointer;transition:top .4s cubic-bezier(.175,.885,.32,1.275),transform .2s,background-color .2s}html.dark .verification-toast{background:#1e182e73;border-color:#d0bcff1a;box-shadow:0 16px 36px #0006}.verification-toast.show{top:24px}.verification-toast:hover{transform:scale(1.03);background-color:#ffffff38}html.dark .verification-toast:hover{background-color:#1e182e99}.toast-icon{font-size:28px}.toast-content{display:flex;flex-direction:column;gap:3px}.toast-title{font-size:13px;font-weight:700;color:var(--text)}.toast-body{font-size:11px;color:var(--text-2)}.toast-body strong{color:var(--primary);font-size:12px}.profile-avatar{width:32px;height:32px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s,background-color .2s,transform .2s;overflow:hidden}.profile-avatar:hover{border-color:var(--primary);background-color:#ffffff26;transform:scale(1.05)}.profile-avatar img{width:100%;height:100%;object-fit:cover}.verified-badge{display:inline-flex;align-items:center;justify-content:center;color:var(--primary);font-size:14px;margin-left:4px;vertical-align:middle}.sync-status-indicator{transition:background-color .3s,box-shadow .3s}.sync-status-indicator.connected{background:#4caf50!important;box-shadow:0 0 8px #4caf5066}.sync-status-indicator.error{background:#f44336!important;box-shadow:0 0 8px #f4433666}
