:root{color-scheme:light dark;--bg: var(--tg-theme-bg-color, #010207);--text: var(--tg-theme-text-color, #f4f4f5);--hint: var(--tg-theme-hint-color, #9ca3af);--button: var(--tg-theme-button-color, #2ea6ff);--button-text: var(--tg-theme-button-text-color, #ffffff);--surface: var(--tg-theme-secondary-bg-color, #080d18);--surface-deep: color-mix(in srgb, var(--bg) 92%, #070d17);--glass-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.055'/%3E%3C/svg%3E");--bg-noise: radial-gradient(circle at 18% 22%, rgba(255,255,255,.018) 0 .42px, transparent .78px), radial-gradient(circle at 72% 64%, rgba(255,255,255,.014) 0 .34px, transparent .74px);--matte-noise: radial-gradient(circle at 18% 6%, rgba(255,255,255,.14), transparent 34%), radial-gradient(circle at 78% 110%, rgba(57,111,255,.08), transparent 38%);--matte-haze: radial-gradient(circle at 18% -8%, color-mix(in srgb, var(--button) 11%, transparent) 0, transparent 30%), radial-gradient(circle at 92% 18%, rgba(72, 108, 188, .075) 0, transparent 34%), radial-gradient(circle at 30% 110%, rgba(31, 73, 180, .095) 0, transparent 42%);--glass: color-mix(in srgb, #071427 42%, transparent);--glass-strong: color-mix(in srgb, #0b1830 56%, transparent);--glass-soft: color-mix(in srgb, #0a1628 30%, transparent);--glass-control: var(--matte-noise), linear-gradient(145deg, rgba(255,255,255,.125), rgba(255,255,255,.034) 48%, rgba(77,128,255,.045));--glass-panel: var(--matte-noise), radial-gradient(circle at 18% 0%, rgba(105,137,255,.18), transparent 46%), linear-gradient(150deg, rgba(35,57,96,.3), rgba(7,15,29,.5) 58%, rgba(0,0,0,.34));--glass-list: var(--matte-noise), radial-gradient(circle at 18% 8%, rgba(85,130,255,.14), transparent 46%), linear-gradient(145deg, rgba(31,51,88,.26), rgba(6,14,27,.46) 62%, rgba(0,0,0,.26));--line: color-mix(in srgb, var(--button) 28%, rgba(255,255,255,.42));--control-line: color-mix(in srgb, var(--button) 24%, rgba(255,255,255,.44));--hairline: color-mix(in srgb, var(--button) 16%, rgba(255,255,255,.36));--glass-highlight: rgba(255,255,255,.13);--glass-shadow: 0 24px 70px rgba(0,0,0,.48);--glass-shadow-soft: 0 14px 36px rgba(0,0,0,.34);--radius: 10px;--radius-soft: 18px;--ease-out: cubic-bezier(.2, .9, .2, 1);--ease-spring: cubic-bezier(.18, .89, .32, 1.18);--motion-fast: .14s;--motion: .22s;--motion-slow: .34s}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--matte-haze),linear-gradient(180deg,#000,#010309 16%,color-mix(in srgb,var(--bg) 92%,#061022) 46%,#000);background-size:auto;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}@keyframes fade-up{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-down{0%{opacity:0;transform:translate3d(0,-8px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes row-in{0%{opacity:0;transform:translate3d(0,8px,0) scale(.992)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:.78;transform:translate3d(0,22px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes player-in{0%{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes art-in{0%{opacity:0;transform:translate3d(0,10px,0) scale(.965)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes track-meta-in{0%{opacity:0;transform:translate3d(0,6px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes mini-player-in{0%{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes error-in{0%{opacity:0;transform:translate3d(0,-6px,0)}65%{transform:translate3d(0,1px,0)}to{opacity:1;transform:translateZ(0)}}main{min-height:var(--tg-viewport-stable-height, 100vh);padding:10px 10px calc(154px + env(safe-area-inset-bottom))}main>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;animation:fade-down var(--motion) var(--ease-out) both}main>header strong{font-size:20px;letter-spacing:0}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}button{position:relative;min-height:36px;border:0;border-radius:var(--radius-soft);padding:7px 11px;display:inline-grid;place-items:center;overflow:hidden;background:var(--glass-control),var(--glass);color:var(--text);font:inherit;font-weight:600;line-height:1;box-shadow:inset 0 0 0 1px var(--control-line),inset 0 1px 0 var(--glass-highlight),var(--glass-shadow-soft);backdrop-filter:blur(34px) saturate(138%) brightness(.9) contrast(1.04);-webkit-backdrop-filter:blur(34px) saturate(138%) brightness(.9) contrast(1.04);transition:transform var(--motion-fast) var(--ease-out),opacity var(--motion-fast) ease,background-color var(--motion) ease,color var(--motion) ease,box-shadow var(--motion) ease,border-color var(--motion) ease}button:before{display:none}button>*{position:relative;z-index:1}button:active{transform:scale(.97);opacity:.86}button:disabled{opacity:.45;transform:none}button.primary,nav button.active{background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);color:var(--button-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,white 26%,transparent),inset 0 1px #ffffff14,0 12px 30px color-mix(in srgb,var(--button) 22%,transparent)}.toolbar-button{min-height:38px;padding-inline:13px;font-size:14px}.action-button{min-height:40px;padding-inline:14px;margin-bottom:8px;font-size:14px}.compact-button{min-height:34px;padding-inline:10px;font-size:13px}.danger-button{min-height:36px;padding-inline:12px;background:var(--matte-noise),color-mix(in srgb,#ff6b6b 18%,var(--glass-strong));color:#ff8585;box-shadow:inset 0 0 0 1px color-mix(in srgb,#ff8585 36%,transparent),inset 0 1px #ffffff1a,0 8px 20px #00000038}.icon-button{width:34px;height:34px;min-height:34px;padding:0;font-size:18px}.icon-button.danger{color:#ff6b6b}.favorite-button{color:var(--hint);font-size:19px}.favorite-button.active,.favorite-playlist-action.active{background:color-mix(in srgb,#ff4f87 18%,var(--glass-strong));color:#ff7aa5;box-shadow:inset 0 0 0 1px color-mix(in srgb,#ff7aa5 44%,transparent),0 8px 18px #ff4f8724}.favorite-button:disabled{opacity:.55}.cache-button{color:var(--hint);font-size:15px}.cache-button.loading{font-size:10.5px;line-height:1;font-variant-numeric:tabular-nums}.cache-button.active{background:color-mix(in srgb,var(--button) 16%,var(--glass-strong));color:var(--button)}input{width:100%;border:0;border-radius:var(--radius-soft);padding:10px 12px;margin-bottom:8px;background:var(--glass-control),color-mix(in srgb,var(--surface-deep) 74%,transparent);color:var(--text);font-size:16px;box-shadow:inset 0 0 0 1px var(--control-line),inset 0 1px #ffffff1a,0 10px 24px #0003;backdrop-filter:blur(38px) saturate(136%) brightness(.88) contrast(1.04);-webkit-backdrop-filter:blur(38px) saturate(136%) brightness(.88) contrast(1.04);transition:box-shadow var(--motion) ease,background-color var(--motion) ease,transform var(--motion-fast) var(--ease-out)}input:focus{outline:none;background:var(--glass-control),color-mix(in srgb,var(--surface) 72%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 76%,transparent),inset 0 1px #ffffff24,0 0 0 3px color-mix(in srgb,var(--button) 18%,transparent),0 14px 34px #0000003d}.auth-screen{min-height:var(--tg-viewport-stable-height, 100vh);display:grid;place-items:center;padding:22px}.auth-card{width:min(100%,420px);display:grid;gap:14px;padding:22px;border-radius:22px;background:var(--glass-panel),var(--glass-strong);box-shadow:inset 0 0 0 1px var(--control-line),inset 0 1px #ffffff1f,0 22px 70px #0000006b;backdrop-filter:blur(28px) saturate(112%);-webkit-backdrop-filter:blur(28px) saturate(112%);animation:fade-up var(--motion-slow) var(--ease-out) both}.auth-logo{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:var(--button);color:var(--button-text);font-size:30px;font-weight:800;animation:art-in var(--motion-slow) var(--ease-spring) both}.auth-card h1{margin:0;font-size:26px}.auth-card p{margin:0;color:var(--hint);line-height:1.38}.auth-card small{color:var(--hint);line-height:1.35}.auth-button{min-height:44px;display:grid;place-items:center;border-radius:var(--radius-soft);background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);color:var(--button-text);text-decoration:none;font-weight:750}.filter-tabs{display:flex;gap:5px;overflow-x:auto;margin:0 0 8px;padding:3px 1px 2px;scrollbar-width:none}.filter-tabs::-webkit-scrollbar{display:none}.filter-tabs button{flex:0 0 auto;min-height:34px;padding-inline:11px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--hint);font-size:13px;transform-origin:center;background:var(--glass-control),color-mix(in srgb,var(--surface-deep) 68%,transparent)}.filter-tabs button.active{background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);color:var(--button-text);transform:translateY(-1px)}.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;padding:1px}.library-count-label{min-width:0;color:var(--hint);font-size:12px;font-weight:650;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sort-icon-button{width:38px;height:34px;min-height:34px;padding:0;display:inline-grid;place-items:center;color:var(--hint);border-radius:13px;background:var(--glass-control),color-mix(in srgb,var(--surface-deep) 68%,transparent)}.sort-icon-button.active{background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);color:var(--button-text);transform:translateY(-1px)}.sort-icon-button:disabled{opacity:.62}.cache-menu{position:relative;margin-left:auto}.cache-menu-button{min-height:34px;padding-inline:12px;color:var(--text);font-size:13px;font-weight:750;background:var(--glass-control),color-mix(in srgb,var(--surface-deep) 68%,transparent)}.cache-menu-button.active{background:var(--matte-noise),color-mix(in srgb,var(--button) 72%,#071225 28%);color:var(--button-text)}.cache-popover{position:absolute;top:calc(100% + 7px);right:0;z-index:30;width:min(304px,calc(100vw - 34px));padding:10px;display:grid;gap:9px;border-radius:var(--radius);color:var(--hint);background:var(--matte-noise),linear-gradient(145deg,#ffffff16,#ffffff06),color-mix(in srgb,var(--surface) 76%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 22%,rgba(255,255,255,.14)),inset 0 1px #ffffff17,0 18px 34px #00000061;backdrop-filter:blur(22px) saturate(112%);-webkit-backdrop-filter:blur(22px) saturate(112%);animation:pop-in var(--motion-fast) var(--ease-out) both}.cache-popover span{font-size:12px;font-weight:650}.cache-popover-actions{display:flex;gap:7px;flex-wrap:wrap}.sort-icon-svg{width:19px;height:19px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.list{display:grid;gap:5px}.large-list .row,.large-list .library-group-card,.large-list .artist-album-section{content-visibility:auto;contain-intrinsic-size:58px;animation:none}.large-list .row,.large-list .library-group-card{backdrop-filter:blur(24px) saturate(122%) brightness(.86) contrast(1.04);-webkit-backdrop-filter:blur(24px) saturate(122%) brightness(.86) contrast(1.04);transition:background-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.queue-row{backdrop-filter:none;-webkit-backdrop-filter:none}.load-more-button{width:100%;min-height:42px;margin-top:3px;color:var(--hint);background:var(--glass-control),color-mix(in srgb,var(--surface) 56%,transparent)}.row{position:relative;min-height:50px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px;background:var(--matte-noise),var(--glass-list),color-mix(in srgb,#02050d 54%,transparent);border-radius:var(--radius-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 24%,rgba(255,255,255,.2)),inset 0 1px #ffffff13,0 12px 32px #00000047;backdrop-filter:blur(42px) saturate(132%) brightness(.84) contrast(1.06);-webkit-backdrop-filter:blur(42px) saturate(132%) brightness(.84) contrast(1.06);animation:row-in var(--motion) var(--ease-out) both;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion) ease,box-shadow var(--motion) ease,outline-color var(--motion) ease}.row:after,.library-group-card:after,.open-playlist:after,.dock-player:after,.player-queue:after,.player-queue-header:after,.queue-row:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;border-radius:inherit;background:var(--glass-grain),linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.018) 44%,transparent 78%),radial-gradient(circle at 24% 0%,rgba(92,132,255,.12),transparent 42%),radial-gradient(circle at 82% 100%,rgba(255,255,255,.045),transparent 40%);opacity:.3;mix-blend-mode:screen}.row>*,.library-group-card>*,.open-playlist>*,.dock-player>*,.player-queue>*,.player-queue-header>*,.queue-row>*{position:relative;z-index:1}.list>.row:nth-child(1),.queue-list>.queue-row:nth-child(1),.library-group-list>.library-group-card:nth-child(1){animation-delay:0ms}.list>.row:nth-child(2),.queue-list>.queue-row:nth-child(2),.library-group-list>.library-group-card:nth-child(2){animation-delay:24ms}.list>.row:nth-child(3),.queue-list>.queue-row:nth-child(3),.library-group-list>.library-group-card:nth-child(3){animation-delay:48ms}.list>.row:nth-child(4),.queue-list>.queue-row:nth-child(4),.library-group-list>.library-group-card:nth-child(4){animation-delay:72ms}.list>.row:nth-child(5),.queue-list>.queue-row:nth-child(5),.library-group-list>.library-group-card:nth-child(5){animation-delay:96ms}.row:active,.library-group-card:active,.picker-row:active,.queue-row:active{transform:scale(.992)}.track-row{grid-template-columns:36px 40px minmax(0,1fr) 34px 34px;cursor:pointer}.track-row.selecting{grid-template-columns:30px 36px 40px minmax(0,1fr) 34px 34px auto}.track-row.selected{background:var(--matte-noise),color-mix(in srgb,var(--button) 18%,var(--glass-strong));outline:1px solid color-mix(in srgb,var(--button) 52%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 48%,rgba(255,255,255,.18)),inset 0 1px #ffffff24,0 10px 26px color-mix(in srgb,var(--button) 12%,transparent)}.playlist-row{grid-template-columns:44px minmax(0,1fr) auto;cursor:pointer}.playlist-row.active{background:var(--matte-noise),color-mix(in srgb,var(--button) 16%,var(--glass-strong));outline:1px solid color-mix(in srgb,var(--button) 44%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 42%,transparent),inset 0 1px #ffffff24,0 8px 24px color-mix(in srgb,var(--button) 10%,transparent)}.row-actions{display:flex;align-items:center;gap:4px}.playlist-row .row-actions{gap:2px}.track-row.selecting .row-actions .icon-button{width:31px;height:31px;min-height:31px;font-size:17px}.play{width:36px;height:36px;min-height:36px;padding:0;border-radius:18px;background:var(--button);color:var(--button-text);font-size:0;transition:transform var(--motion-fast) var(--ease-spring),box-shadow var(--motion) ease,opacity var(--motion-fast) ease;box-shadow:inset 0 0 0 1px color-mix(in srgb,white 14%,transparent),0 8px 18px color-mix(in srgb,var(--button) 22%,transparent)}.play:active{transform:scale(.92)}.select-toggle{width:28px;height:28px;min-height:28px;padding:0;border:1px solid color-mix(in srgb,var(--button) 48%,var(--hint));border-radius:14px;background:transparent;color:var(--button-text);font-size:14px;transition:transform var(--motion-fast) var(--ease-spring),background-color var(--motion) ease,border-color var(--motion) ease}.select-toggle.active{border-color:var(--button);background:var(--button);transform:scale(1.04)}.track-thumb,.mini-cover{width:40px;height:40px;border-radius:var(--radius);object-fit:cover;background:var(--glass-control),color-mix(in srgb,var(--button) 12%,var(--bg));box-shadow:inset 0 0 0 1px #ffffff14;transition:transform var(--motion) var(--ease-out),box-shadow var(--motion) ease}.row:active .track-thumb,.row:active .playlist-list-cover{transform:scale(.965)}.track-thumb.placeholder,.mini-cover.placeholder{display:grid;place-items:center;color:var(--button);font-size:20px;font-weight:700}.playlist-list-cover{width:44px;height:44px;min-width:44px;min-height:44px;aspect-ratio:1 / 1;display:block;border-radius:var(--radius);object-fit:cover;overflow:hidden;background:var(--glass-control),color-mix(in srgb,var(--button) 12%,var(--bg));box-shadow:inset 0 0 0 1px #ffffff14}.playlist-list-cover.placeholder{display:grid;place-items:center;color:var(--button);font-size:22px;font-weight:700}.chevron{width:24px;color:var(--hint);font-size:24px;line-height:1;text-align:center;transition:transform var(--motion-fast) var(--ease-out),color var(--motion) ease}.row:active .chevron,.library-group-card:active .chevron{transform:translate(2px);color:var(--button)}.meta{min-width:0;display:grid;gap:2px}.meta b,.meta span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.meta b{font-size:15px;line-height:1.15}.meta span,p{color:var(--hint);font-size:12px}.panel{margin-top:10px;padding:10px;background:var(--surface);border-radius:8px}.panel{background:var(--glass-panel),var(--glass);box-shadow:inset 0 0 0 1px var(--hairline),inset 0 1px #ffffff1a;backdrop-filter:blur(22px) saturate(112%);-webkit-backdrop-filter:blur(22px) saturate(112%)}.section-toolbar{display:flex;align-items:center;gap:7px;margin-bottom:8px}.section-toolbar .action-button{flex:0 0 auto;margin-bottom:0}.section-toolbar .compact-button{flex:0 0 auto;min-height:40px}.open-playlist{position:relative;overflow:hidden;margin-top:14px;padding:11px;border:1px solid var(--line);background:var(--matte-noise),var(--glass-panel),color-mix(in srgb,#02050d 62%,transparent);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line),inset 0 1px #ffffff14,0 18px 48px #0000005c;backdrop-filter:blur(46px) saturate(132%) brightness(.84) contrast(1.05);-webkit-backdrop-filter:blur(46px) saturate(132%) brightness(.84) contrast(1.05);animation:fade-up var(--motion-slow) var(--ease-out) both}.section-label{margin-bottom:7px;color:var(--button);font-size:11px;font-weight:700;text-transform:uppercase}.panel-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:10px}.playlist-hero{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center;margin-bottom:10px;animation:fade-up var(--motion) var(--ease-out) both}.playlist-cover{width:76px;height:76px;min-width:76px;min-height:76px;aspect-ratio:1 / 1;display:grid;place-items:center;overflow:hidden;border-radius:var(--radius);background:var(--glass-control),color-mix(in srgb,var(--button) 12%,var(--bg));color:var(--button);font-size:32px;font-weight:700}.playlist-cover img{display:block;width:100%;height:100%;object-fit:cover}.playlist-summary{min-width:0;display:grid;gap:4px}.playlist-summary h2{margin:0;font-size:21px;line-height:1.12;letter-spacing:0;overflow-wrap:anywhere}.playlist-summary p{margin:0;font-size:13px}.playlist-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:7px;margin-bottom:10px;animation:fade-up var(--motion) var(--ease-out) both;animation-delay:40ms}.playlist-actions.compact{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.playlist-actions.open-playlist-actions,.playlist-actions.open-playlist-actions.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.playlist-action{width:100%;min-height:38px;padding-inline:7px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}.playlist-action.with-icon{display:inline-flex;align-items:center;justify-content:center;gap:6px}.inline-action-icon{width:17px;height:17px;flex:0 0 17px}.play-pause-icon{width:20px;height:20px;display:block;fill:currentColor}.play .play-pause-icon{width:17px;height:17px}.playlist-action .play-pause-icon{width:16px;height:16px}.shuffle-icon{display:block;fill:none;stroke:currentColor;stroke-width:2.15;stroke-linecap:round;stroke-linejoin:round}.playlist-tracks{display:grid;gap:5px}.library-group-list,.artist-album-list{display:grid;gap:6px}.library-group-card{position:relative;overflow:hidden;width:100%;min-height:60px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;justify-items:stretch;gap:8px;padding:7px;text-align:left;background:var(--matte-noise),var(--glass-list),color-mix(in srgb,#02050d 54%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 23%,rgba(255,255,255,.19)),inset 0 1px #ffffff13,0 12px 30px #00000042;backdrop-filter:blur(42px) saturate(132%) brightness(.84) contrast(1.06);-webkit-backdrop-filter:blur(42px) saturate(132%) brightness(.84) contrast(1.06);animation:row-in var(--motion) var(--ease-out) both;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion) ease,box-shadow var(--motion) ease}.library-group-cover{width:48px;height:48px;border-radius:var(--radius);object-fit:cover;background:color-mix(in srgb,var(--button) 12%,var(--bg))}.library-group-cover.placeholder{display:grid;place-items:center;color:var(--button);font-size:22px;font-weight:700}.library-group-meta{min-width:0;display:grid;align-content:center;gap:3px}.library-group-meta b,.library-group-meta span,.library-group-meta small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.library-group-meta span,.library-group-meta small{color:var(--hint);font-size:12px;font-weight:500}.library-detail{display:grid;gap:9px}.back-button{justify-self:start}.library-detail-hero{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:center;padding:9px;border-radius:var(--radius);background:var(--glass-panel),var(--glass);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 24%,rgba(255,255,255,.18)),inset 0 1px #ffffff1a,0 10px 28px #00000038;backdrop-filter:blur(24px) saturate(112%);-webkit-backdrop-filter:blur(24px) saturate(112%);animation:fade-up var(--motion) var(--ease-out) both}.library-detail-cover{width:82px;aspect-ratio:1;border-radius:var(--radius);object-fit:cover;background:color-mix(in srgb,var(--button) 12%,var(--bg))}.library-detail-cover.placeholder{display:grid;place-items:center;color:var(--button);font-size:34px;font-weight:700}.library-detail-summary{min-width:0;display:grid;gap:4px}.library-detail-summary span{color:var(--button);font-size:11px;font-weight:700;text-transform:uppercase}.library-detail-summary h2{margin:0;font-size:21px;line-height:1.12;letter-spacing:0;overflow-wrap:anywhere}.library-detail-summary p{margin:0;font-size:13px;line-height:1.3}.library-detail-actions{margin-bottom:0}.artist-album-section{display:grid;gap:6px;padding-top:3px}.artist-album-header{display:grid;grid-template-columns:40px minmax(0,1fr);gap:7px;align-items:center;margin:2px 0 0}.artist-album-cover{width:40px;height:40px;border-radius:var(--radius);object-fit:cover;background:color-mix(in srgb,var(--button) 12%,var(--bg))}.artist-album-cover.placeholder{display:grid;place-items:center;color:var(--button);font-size:19px;font-weight:700}.artist-album-header div{min-width:0;display:grid;gap:3px}.artist-album-header b,.artist-album-header span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.artist-album-header span{color:var(--hint);font-size:12px}.bulk-panel{display:grid;gap:6px;margin:0 0 8px;animation:fade-up var(--motion) var(--ease-out) both}.playlist-bulk-panel{margin-bottom:10px}.bulk-toolbar,.bulk-actions{display:flex;align-items:center;gap:5px;overflow-x:auto;padding-bottom:1px;scrollbar-width:none}.bulk-toolbar::-webkit-scrollbar,.bulk-actions::-webkit-scrollbar{display:none}.bulk-toolbar span{flex:0 0 auto;color:var(--hint);font-size:12px;font-weight:600}.bulk-actions button,.bulk-toolbar button{flex:0 0 auto;white-space:nowrap}.cache-strip{display:flex;align-items:center;gap:5px;overflow-x:auto;margin:0 0 8px;padding:6px;border-radius:var(--radius);background:var(--glass-control),color-mix(in srgb,var(--surface) 52%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 18%,rgba(255,255,255,.12)),inset 0 1px #ffffff14;backdrop-filter:blur(20px) saturate(112%);-webkit-backdrop-filter:blur(20px) saturate(112%);scrollbar-width:none;animation:fade-up var(--motion) var(--ease-out) both}.cache-strip::-webkit-scrollbar{display:none}.cache-strip span,.cache-status{color:var(--hint);font-size:12px;font-weight:600}.cache-strip span{flex:1 0 auto}.cache-strip button{flex:0 0 auto}.cache-status{margin:-2px 0 8px;padding-inline:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.empty{min-height:190px;display:grid;align-content:center;justify-items:start;gap:8px;padding:18px;border-radius:var(--radius-soft);animation:fade-up var(--motion-slow) var(--ease-out) both}.empty b{font-size:20px;line-height:1.2}.empty p{max-width:320px;margin:0;font-size:14px;line-height:1.35}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;align-items:end;background:var(--matte-noise),#00000057;backdrop-filter:blur(12px) saturate(110%);-webkit-backdrop-filter:blur(12px) saturate(110%);animation:sheet-backdrop-in var(--motion) ease both}.sheet{max-height:min(78vh,var(--tg-viewport-stable-height, 78vh));display:grid;gap:8px;overflow:auto;padding:10px 10px calc(14px + env(safe-area-inset-bottom));background:var(--glass-panel),color-mix(in srgb,var(--bg) 58%,transparent);border-top:1px solid color-mix(in srgb,var(--button) 22%,rgba(255,255,255,.16));border-radius:20px 20px 0 0;box-shadow:inset 0 1px #ffffff0e,0 -18px 52px #00000057;backdrop-filter:blur(32px) saturate(116%);-webkit-backdrop-filter:blur(32px) saturate(116%);animation:sheet-in var(--motion-slow) var(--ease-out) both}.sheet-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:0}.sheet-track{min-width:0;display:grid;gap:3px;padding:8px 2px}.sheet-track b,.sheet-track span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sheet-track span,.sheet-note{color:var(--hint);font-size:12px}.sheet-note{margin:4px 2px 0}.form-field{display:grid;gap:5px}.form-field span{color:var(--hint);font-size:12px;font-weight:700}.form-field input{margin-bottom:0}.sheet-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.sheet-actions .action-button{width:100%;margin-bottom:0}.share-options{display:grid;gap:7px}.share-option{width:100%;min-height:58px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;justify-items:stretch;gap:10px;padding:9px 10px;text-align:left;background:var(--glass-control),color-mix(in srgb,var(--surface) 48%,transparent);border-radius:14px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 24%,rgba(255,255,255,.16)),inset 0 1px #ffffff1a,0 8px 22px #0000002e;backdrop-filter:blur(18px) saturate(112%);-webkit-backdrop-filter:blur(18px) saturate(112%)}.share-option:disabled{opacity:.48}.share-option.fallback{background:var(--glass-control),color-mix(in srgb,var(--surface) 34%,transparent)}.share-option.fallback .share-option-icon{background:color-mix(in srgb,var(--hint) 13%,var(--surface));color:var(--hint)}.share-option-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--glass-control),color-mix(in srgb,var(--button) 17%,var(--surface));color:var(--button);font-size:20px;font-weight:800}.share-option span:last-child{min-width:0;display:grid;gap:3px}.share-option b,.share-option small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.share-option small{color:var(--hint);font-size:12px;font-weight:600}.full-width{width:100%}.picker-row{width:100%;min-height:48px;grid-template-columns:minmax(0,1fr) auto;justify-items:stretch;gap:7px;text-align:left;background:var(--glass-list),color-mix(in srgb,var(--surface) 50%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 22%,rgba(255,255,255,.14)),inset 0 1px #ffffff14;backdrop-filter:blur(18px) saturate(112%);-webkit-backdrop-filter:blur(18px) saturate(112%);animation:row-in var(--motion) var(--ease-out) both;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion) ease,box-shadow var(--motion) ease}.picker-row span:first-child{min-width:0;display:grid;gap:3px}.picker-row b,.picker-row small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.picker-row small{color:var(--hint);font-size:12px;font-weight:500}.error{padding:9px;margin-bottom:8px;border-radius:var(--radius);background:color-mix(in srgb,#7f1d1d 82%,transparent);color:#fff;overflow-wrap:anywhere;animation:error-in var(--motion-slow) var(--ease-out) both}.offline-banner{margin:2px 0 10px;color:color-mix(in srgb,var(--hint) 78%,transparent);font-size:13px;font-weight:650;text-align:center;animation:fade-up var(--motion) var(--ease-out) both}.bottom-dock{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--matte-noise),linear-gradient(180deg,#090f1c94,#000000db),color-mix(in srgb,#000 62%,transparent);border-top:1px solid color-mix(in srgb,var(--button) 18%,rgba(255,255,255,.12));box-shadow:inset 0 1px #ffffff0b,0 -18px 44px #00000052;backdrop-filter:blur(46px) saturate(124%) brightness(.84);-webkit-backdrop-filter:blur(46px) saturate(124%) brightness(.84);animation:mini-player-in var(--motion-slow) var(--ease-out) both}.dock-player-shell{position:relative;min-width:0;overflow:hidden;border-radius:18px;touch-action:none}.dock-player{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr) 42px 46px;gap:9px;align-items:center;min-height:58px;padding:8px;position:relative;border-radius:18px;background:var(--matte-noise),linear-gradient(90deg,color-mix(in srgb,var(--button) 22%,#02050d) 0%,color-mix(in srgb,var(--button) 17%,#02050d) var(--dock-progress, 0%),color-mix(in srgb,#02050d 66%,transparent) var(--dock-progress, 0%),color-mix(in srgb,#02050d 66%,transparent) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--control-line) 94%,transparent),inset 0 1px #ffffff21,0 16px 38px #00000061;backdrop-filter:blur(46px) saturate(132%) brightness(.84) contrast(1.05);-webkit-backdrop-filter:blur(46px) saturate(132%) brightness(.84) contrast(1.05);touch-action:none;cursor:pointer;overflow:hidden}.dock-player.with-cover:before{content:"";position:absolute;top:-42%;right:-42%;bottom:-42%;left:-42%;z-index:0;pointer-events:none;background-image:var(--cover-url);background-size:cover;background-position:center;opacity:.26;filter:blur(28px) saturate(1.55) brightness(.72);transform:scale(1.08)}.dock-player>*{position:relative;z-index:1}.dock-player:focus-visible{outline:none;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--button) 72%,transparent),0 12px 28px #0003}.mini-track{min-width:0;max-width:100%;width:100%;display:grid;gap:2px;padding:0;box-sizing:border-box;text-align:left;background:transparent;justify-items:stretch;overflow:hidden;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.mini-track:before{display:none}.mini-cover,.mini-track{touch-action:none}.mini-cover,.player-art img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.mini-cover,.mini-track{animation:track-meta-in var(--motion) var(--ease-out) both}.mini-track b,.mini-track span{min-width:0;max-width:100%;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mini-track span{color:var(--hint);font-size:12px}.dock-player .favorite-button{width:42px;height:42px;min-height:42px;border-radius:14px;font-size:22px;background:var(--glass-control),color-mix(in srgb,var(--surface) 54%,transparent)}.dock-play-button{width:46px;height:42px;min-height:42px;padding:0;border-radius:14px;background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);color:var(--button-text);font-size:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,white 14%,transparent),0 8px 18px color-mix(in srgb,var(--button) 22%,transparent)}.dock-play-button .play-pause-icon{width:22px;height:22px}.swipe-visual{position:relative;z-index:3;transform:translate3d(var(--swipe-x, 0px),0,0) scale(var(--swipe-scale, 1));opacity:var(--swipe-opacity, 1);transition:transform .23s cubic-bezier(.16,1.05,.28,1),opacity .18s ease;will-change:transform,opacity}.swipe-visual.completing{transition:transform .32s cubic-bezier(.19,1,.22,1),opacity .26s ease}.swipe-visual.dragging,.swipe-visual.settling{transition:none}.swipe-visual.settling .mini-cover,.swipe-visual.settling .mini-track,.full-track-card.current.swipe-visual.settling .player-art,.full-track-card.current.swipe-visual.settling .player-art img,.full-track-card.current.swipe-visual.settling .full-player-meta{animation:none;transition:none}.swipe-preview-card{position:absolute;z-index:1;min-width:0;display:grid;align-items:center;grid-template-columns:64px 42px minmax(0,1fr);gap:9px;padding:8px;border-radius:18px;background:var(--glass-panel),color-mix(in srgb,var(--surface) 82%,transparent);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 32%,rgba(255,255,255,.16)),inset 0 1px #ffffff1a,0 12px 30px #0000004d;backdrop-filter:blur(24px) saturate(112%);-webkit-backdrop-filter:blur(24px) saturate(112%);pointer-events:none;opacity:var(--swipe-preview-opacity, 0);transform:translate3d(var(--swipe-preview-x, 0),0,0) scale(var(--swipe-preview-scale, .94));transition:transform .32s cubic-bezier(.19,1,.22,1),opacity .22s ease;will-change:transform,opacity}.swipe-preview-card.dragging,.full-track-card.preview.dragging{transition:none}.swipe-preview-card.completing,.full-track-card.preview.completing{transition:transform .32s cubic-bezier(.16,1,.22,1),opacity .24s ease}.swipe-preview-card.dock{top:0;right:0;bottom:0;left:0;grid-template-columns:42px minmax(0,1fr) 42px 46px;min-height:58px;padding:8px;gap:9px;background:var(--glass-panel),color-mix(in srgb,var(--surface) 86%,transparent)}.swipe-preview-card.dock .swipe-preview-label{display:none}.swipe-preview-card.dock .swipe-preview-cover{order:1}.swipe-preview-card.dock .swipe-preview-meta{order:2}.swipe-preview-action{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--glass-control),color-mix(in srgb,var(--surface) 58%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--control-line) 74%,transparent);font-weight:800;line-height:1}.swipe-preview-action.favorite{order:3;color:var(--hint);font-size:22px}.swipe-preview-action.favorite.active{color:#ff7aa5;background:color-mix(in srgb,#ff4f87 18%,var(--glass-strong))}.swipe-preview-action.play{order:4;width:46px;color:var(--button-text);background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);font-size:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,white 14%,transparent),0 8px 18px color-mix(in srgb,var(--button) 22%,transparent)}.swipe-preview-action.play .play-pause-icon{width:22px;height:22px}.swipe-preview-card.full{left:20px;right:20px;top:calc(62px + env(safe-area-inset-top));min-height:64px}.swipe-preview-card.previous{transform-origin:left center}.swipe-preview-card.next{transform-origin:right center}.swipe-preview-label{color:var(--button);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0}.swipe-preview-cover{width:42px;height:42px;border-radius:12px;object-fit:cover;background:color-mix(in srgb,var(--button) 14%,var(--surface))}.swipe-preview-cover.placeholder{display:grid;place-items:center;color:var(--button);font-size:20px;font-weight:800}.swipe-preview-meta{min-width:0;display:grid;gap:2px}.swipe-preview-meta b,.swipe-preview-meta small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.swipe-preview-meta small{color:var(--hint);font-size:12px}.audio-engine{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.full-player{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;height:var(--app-viewport-height, var(--tg-viewport-stable-height, 100dvh));max-height:var(--app-viewport-height, var(--tg-viewport-stable-height, 100dvh));display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:clamp(7px,1.2vh,10px);padding:calc(8px + env(safe-area-inset-top)) 14px calc(86px + env(safe-area-inset-bottom));background:var(--matte-haze),linear-gradient(180deg,#000,#010309 18%,color-mix(in srgb,var(--bg) 92%,#071226) 52%,#000);background-size:auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;animation:player-in var(--motion-slow) var(--ease-out) both;will-change:transform,opacity;isolation:isolate}.full-player.with-cover:before{content:"";position:fixed;top:-18%;right:-18%;bottom:-18%;left:-18%;z-index:0;pointer-events:none;background-image:var(--cover-url);background-size:cover;background-position:center;opacity:.42;filter:blur(76px) saturate(1.65) brightness(.46);transform:scale(1.06)}.full-player.with-cover:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.055),transparent 32%),linear-gradient(180deg,#00000057,#000000a3 48%,#000000eb)}.full-player>*{position:relative;z-index:1}.full-player-header{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;animation:fade-down var(--motion) var(--ease-out) both}.full-player-header strong{text-align:center}.full-player-header .icon-button{width:44px;height:44px;min-height:44px;border-radius:15px;font-size:23px;line-height:1}.full-player-action{position:relative;overflow:hidden;color:var(--text);background:var(--matte-noise),var(--glass-control),color-mix(in srgb,#030712 74%,var(--surface) 26%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 42%,rgba(255,255,255,.18)),inset 0 1px #ffffff1a,0 10px 24px #00000047;backdrop-filter:blur(30px) saturate(120%) brightness(.88);-webkit-backdrop-filter:blur(30px) saturate(120%) brightness(.88)}.full-player-action:before{display:none}.full-player-action.share,.full-player-action.collapse{color:var(--text);background:var(--matte-noise),var(--glass-control),color-mix(in srgb,#030712 74%,var(--surface) 26%)}.full-track-stage{min-width:0;min-height:0;position:relative;display:grid;place-items:stretch;overflow:visible;touch-action:none;isolation:isolate}.full-track-card{position:absolute;top:0;right:0;bottom:0;left:0;min-width:0;display:grid;align-content:center;justify-items:center;gap:clamp(8px,1.6vh,14px);padding-inline:4px;touch-action:none}.full-track-card.current{z-index:3}.full-track-card.current .player-art,.full-track-card.current .player-art img,.full-track-card.current .full-player-meta{animation:none}.full-track-card.preview{z-index:2;pointer-events:none;opacity:var(--swipe-preview-opacity, 0);transform:translate3d(var(--swipe-preview-x, 0),0,0) scale(var(--swipe-preview-scale, .96));transition:transform .32s cubic-bezier(.19,1,.22,1),opacity .22s ease;will-change:transform,opacity}.full-track-card.preview .player-art,.full-track-card.preview .full-player-meta{animation:none}.player-art{align-self:center;justify-self:center;width:min(76vw,380px,100%);width:min(76vw,42dvh,380px,100%);max-width:calc(100vw - 96px);aspect-ratio:1;display:grid;place-items:center;position:relative;z-index:1;margin:0 auto 4px;border-radius:18px;background:var(--matte-noise),var(--glass-panel),color-mix(in srgb,#02050d 58%,transparent);color:var(--button);font-size:clamp(72px,22vw,132px);font-weight:700;overflow:hidden;isolation:isolate;box-shadow:0 18px 44px #00000057,inset 0 0 0 1px #ffffff1a,inset 0 1px #ffffff0e;backdrop-filter:blur(32px) saturate(120%) brightness(.9);-webkit-backdrop-filter:blur(32px) saturate(120%) brightness(.9);touch-action:none;animation:art-in var(--motion-slow) var(--ease-spring) both;transition:transform var(--motion-fast) var(--ease-out),box-shadow var(--motion) ease}.player-art:active{transform:scale(.985)}.player-art.with-cover{background:color-mix(in srgb,var(--surface) 78%,#000);color:transparent;overflow:hidden;box-shadow:0 0 88px color-mix(in srgb,var(--button) 24%,transparent),0 0 46px #ffffff0e,0 28px 76px #00000085,inset 0 0 0 1px #ffffff1f,inset 0 1px #ffffff12}.player-art.with-cover:before{display:none}.player-art img{position:relative;z-index:2;width:100%;height:100%;border-radius:inherit;object-fit:cover;animation:track-meta-in var(--motion) var(--ease-out) both;box-shadow:0 18px 42px #0000005c,inset 0 0 0 1px #ffffff1a}.full-player-meta{position:relative;z-index:5;min-width:0;width:min(100%,680px);display:grid;gap:5px;margin-top:0;padding-inline:6px;text-align:center;touch-action:none;animation:track-meta-in var(--motion) var(--ease-out) both;animation-delay:40ms;color:var(--text);text-shadow:0 2px 18px rgba(0,0,0,.62)}.full-player-meta h1{margin:0;font-size:22px;line-height:1.15;letter-spacing:0;color:#fff;font-weight:800;text-shadow:0 2px 22px rgba(0,0,0,.76),0 0 26px rgba(255,255,255,.1);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.full-player-meta p{margin:0;color:color-mix(in srgb,var(--text) 78%,var(--hint));font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.player-context{color:color-mix(in srgb,var(--text) 64%,var(--hint));font-size:12px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.seek{width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;accent-color:var(--button);animation:fade-up var(--motion) var(--ease-out) both;animation-delay:70ms}.seek:focus{outline:none;box-shadow:none}.time-row{display:flex;justify-content:space-between;color:var(--hint);font-size:12px}.player-controls{--player-control-size: 48px;--player-play-size: 72px;display:grid;grid-template-columns:var(--player-control-size) var(--player-control-size) var(--player-play-size) var(--player-control-size) var(--player-control-size);justify-content:center;align-items:center;gap:10px;animation:fade-up var(--motion) var(--ease-out) both;animation-delay:90ms}.player-controls>button{justify-self:center;align-self:center;min-height:0;padding:0}@media(max-height:700px){.full-player{grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:7px;padding-top:calc(6px + env(safe-area-inset-top));padding-bottom:calc(78px + env(safe-area-inset-bottom))}.player-art{width:min(60vw,260px,100%);width:min(60vw,34dvh,260px,100%);margin-bottom:2px}.full-player-meta h1{font-size:19px;-webkit-line-clamp:1}.full-player-meta{gap:3px}.player-controls{--player-control-size: 40px;--player-play-size: 58px;gap:7px}.queue-row{min-height:50px;grid-template-columns:24px 38px minmax(0,1fr) auto;gap:8px;padding:6px 8px}.queue-cover{width:38px;height:38px}}@media(max-height:610px){.full-player{grid-template-rows:auto minmax(0,1fr) auto auto auto}.player-art{width:min(48vw,190px,100%);width:min(48vw,30dvh,190px,100%)}.full-player-header .icon-button{width:38px;height:38px;min-height:38px;border-radius:10px}.player-controls{--player-control-size: 36px;--player-play-size: 52px;gap:6px}}@media(max-width:370px){.player-controls{--player-control-size: 42px;--player-play-size: 64px;gap:7px}}.player-like-button,.playback-mode-button{width:var(--player-control-size);height:var(--player-control-size);min-height:var(--player-control-size);padding:0;border-radius:14px;background:var(--glass-control),color-mix(in srgb,var(--surface) 44%,transparent);color:var(--hint);font-size:20px;font-variant-numeric:tabular-nums;transition:transform var(--motion-fast) var(--ease-spring),background-color var(--motion) ease,color var(--motion) ease,box-shadow var(--motion) ease}.player-like-button.active{background:var(--matte-noise),color-mix(in srgb,#ff4f87 18%,var(--surface));color:#ff7aa5;box-shadow:inset 0 0 0 1px color-mix(in srgb,#ff7aa5 46%,transparent),0 8px 20px #ff4f8722}.playback-mode-button.shuffle,.playback-mode-button.repeat{background:var(--matte-noise),color-mix(in srgb,var(--button) 78%,#071225 22%);color:var(--button-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,white 16%,transparent),0 8px 20px color-mix(in srgb,var(--button) 22%,transparent)}.playback-mode-button.repeat{background:color-mix(in srgb,var(--button) 72%,#7c3aed)}.playback-mode-symbol{display:grid;place-items:center;line-height:1}.playback-mode-svg{width:24px;height:24px;margin:auto;stroke-width:2.05}.transport{width:var(--player-control-size);height:var(--player-control-size);border-radius:14px;background:var(--glass-control),color-mix(in srgb,var(--surface) 44%,transparent);display:grid;place-items:center;font-size:0}.track-step-icon{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:3.1;stroke-linecap:round;stroke-linejoin:round}.big-play{justify-self:center;width:var(--player-play-size);height:var(--player-play-size);border-radius:999px;background:var(--matte-noise),color-mix(in srgb,var(--button) 82%,#071225 18%);color:var(--button-text);font-size:0;box-shadow:inset 0 0 0 1px color-mix(in srgb,white 16%,transparent),0 14px 34px color-mix(in srgb,var(--button) 28%,transparent);transition:transform var(--motion-fast) var(--ease-spring),box-shadow var(--motion) ease,opacity var(--motion-fast) ease}.big-play .play-pause-icon{width:34px;height:34px}.big-play:active{transform:scale(.94)}.player-queue{--queue-collapsed-height: 64px;position:fixed;left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:7;height:min(74vh,760px);max-height:calc(var(--app-viewport-height, var(--tg-viewport-stable-height, 100dvh)) - 76px - env(safe-area-inset-top));min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:6px;padding:10px;border-radius:24px 24px 0 0;background:var(--matte-noise),var(--glass-panel),color-mix(in srgb,#000 52%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 25%,rgba(255,255,255,.2)),inset 0 1px #ffffff13,0 -24px 70px #0000007a;backdrop-filter:blur(58px) saturate(132%) brightness(.8) contrast(1.06);-webkit-backdrop-filter:blur(58px) saturate(132%) brightness(.8) contrast(1.06);overflow:hidden;transform:translate3d(0,calc(100% - var(--queue-collapsed-height)),0);transition:transform .18s cubic-bezier(.16,1.05,.28,1),box-shadow .16s ease;will-change:transform;contain:layout paint style}.player-queue.expanded{transform:translateZ(0);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 26%,rgba(255,255,255,.18)),inset 0 1px #fff1,0 -26px 76px #00000070}.player-queue-header{position:relative;overflow:hidden;width:100%;min-height:50px;display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;justify-content:stretch;gap:10px;padding:8px 10px 8px 14px;text-align:left;background:var(--matte-noise),var(--glass-control),color-mix(in srgb,#02050d 64%,transparent);border-radius:18px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 18%,rgba(255,255,255,.14)),inset 0 1px #ffffff14;backdrop-filter:blur(36px) saturate(128%) brightness(.86) contrast(1.04);-webkit-backdrop-filter:blur(36px) saturate(128%) brightness(.86) contrast(1.04)}.queue-title{min-width:0;display:flex;align-items:baseline;gap:8px;overflow:hidden}.queue-title strong{font-size:18px;line-height:1.05;letter-spacing:0;white-space:nowrap}.queue-title small{color:var(--hint);font-size:13px;font-weight:600;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.queue-sheet-chevron{justify-self:end;width:34px;height:34px;display:grid;place-items:center;border-radius:14px;color:var(--button);background:var(--glass-control),color-mix(in srgb,var(--button) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 28%,rgba(255,255,255,.14)),inset 0 1px #ffffff1a}.chevron-icon{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.queue-list{min-height:0;height:100%;display:grid;align-content:start;gap:3px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:2px 0 calc(18px + env(safe-area-inset-bottom));opacity:0;pointer-events:none;transition:opacity .12s ease;contain:layout paint style}.player-queue.expanded .queue-list{opacity:1;pointer-events:auto}.queue-row{position:relative;overflow:hidden;width:100%;min-height:54px;display:grid;grid-template-columns:28px 42px minmax(0,1fr) auto;align-items:center;justify-items:stretch;gap:10px;padding:7px 10px;text-align:left;background:var(--matte-noise),var(--glass-list),color-mix(in srgb,#02050d 56%,transparent);border-radius:14px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 20%,rgba(255,255,255,.15)),inset 0 1px #ffffff13,0 10px 26px #00000038;animation:none;transition:transform var(--motion-fast) var(--ease-out),background-color var(--motion) ease,box-shadow var(--motion) ease;backdrop-filter:none;-webkit-backdrop-filter:none}.queue-spacer{pointer-events:none}.queue-load-more{width:100%;min-height:42px;color:var(--hint);background:var(--matte-noise),var(--glass-control),color-mix(in srgb,#02050d 58%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 22%,rgba(255,255,255,.16)),inset 0 1px #ffffff14,0 10px 26px #00000038;backdrop-filter:blur(30px) saturate(124%) brightness(.86);-webkit-backdrop-filter:blur(30px) saturate(124%) brightness(.86)}.queue-row.active{background:var(--matte-noise),color-mix(in srgb,var(--button) 16%,var(--surface));box-shadow:inset 3px 0 0 var(--button),inset 0 0 0 1px color-mix(in srgb,var(--button) 32%,rgba(255,255,255,.14)),inset 0 1px #ffffff1a}.queue-index{align-self:center;display:grid;place-items:center;color:var(--button);font-size:14px;text-align:center}.queue-play-icon{width:16px;height:16px}.queue-cover{width:42px;height:42px;align-self:center;border-radius:8px;object-fit:cover;background:color-mix(in srgb,var(--button) 14%,var(--surface));color:var(--button)}.queue-cover.placeholder{display:grid;place-items:center;font-size:18px}.queue-meta{min-width:0;display:grid;gap:3px}.queue-meta b,.queue-meta small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.queue-meta small,.queue-duration{color:var(--hint);font-size:12px;font-weight:500}.queue-duration{align-self:center}.dock-nav{min-height:50px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8px}.dock-nav button{min-width:0;min-height:50px;display:grid;place-items:center;gap:3px;padding:5px 8px;border-radius:18px;background:var(--matte-noise),color-mix(in srgb,var(--surface) 16%,transparent);color:color-mix(in srgb,var(--text) 68%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 10%,transparent);backdrop-filter:blur(18px) saturate(110%);-webkit-backdrop-filter:blur(18px) saturate(110%);font-size:11px;line-height:1}.dock-nav button.active{background:var(--glass-control),color-mix(in srgb,var(--button) 16%,transparent);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 28%,transparent),inset 0 1px #ffffff14}.dock-nav button.active .dock-nav-icon{color:var(--button-text);background:var(--matte-noise),color-mix(in srgb,var(--button) 84%,#071225 16%);box-shadow:0 8px 18px color-mix(in srgb,var(--button) 22%,transparent)}.dock-nav-icon{position:relative;width:30px;height:25px;display:grid;place-items:center;border-radius:12px;color:var(--hint);font-size:21px;line-height:1;transition:transform var(--motion-fast) var(--ease-out),color var(--motion) ease,background-color var(--motion) ease,box-shadow var(--motion) ease}.dock-nav-svg{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}.dock-nav-svg circle{fill:currentColor;stroke:none}.dock-nav button.active .dock-nav-icon:after{content:"";position:absolute;right:-3px;top:0;width:6px;height:6px;border-radius:50%;background:#ff4e3a;box-shadow:0 0 0 2px color-mix(in srgb,var(--bg) 70%,transparent)}.auth-card,.cache-popover,.row,.library-group-card,.open-playlist,.library-detail-hero,.cache-strip,.empty,.sheet,.share-option,.picker-row,.full-player-action,.player-art,.player-like-button,.playback-mode-button,.transport,.player-queue,.player-queue-header,.queue-load-more,.dock-nav button{border:1px solid color-mix(in srgb,var(--button) 14%,rgba(255,255,255,.34));box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 10%,transparent),inset 0 1px #ffffff2e,inset 0 -1px #ffffff0a,0 20px 52px #00000057;backdrop-filter:blur(52px) saturate(168%) brightness(.92) contrast(1.05);-webkit-backdrop-filter:blur(52px) saturate(168%) brightness(.92) contrast(1.05)}.row,.library-group-card,.open-playlist,.library-detail-hero,.empty,.sheet,.share-option,.picker-row,.player-queue,.player-queue-header,.queue-load-more{background:radial-gradient(circle at 18% 0%,rgba(120,154,255,.17),transparent 44%),radial-gradient(circle at 88% 120%,rgba(50,115,255,.08),transparent 40%),linear-gradient(145deg,#2c3e623b,#040b1761 58%,#00000040)}.open-playlist,.library-detail-hero,.sheet,.player-queue,.empty{background:radial-gradient(circle at 16% 0%,rgba(126,156,255,.22),transparent 44%),radial-gradient(circle at 94% 20%,rgba(74,120,255,.12),transparent 40%),linear-gradient(150deg,#2a40694d,#040c1b70 58%,#00000042)}.filter-tabs button,.sort-icon-button,.cache-menu-button,.compact-button,.toolbar-button,.action-button,.playlist-action,.load-more-button{background:linear-gradient(145deg,#ffffff1f,#ffffff08 48%,#3e6fff0f),color-mix(in srgb,#071629 32%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 16%,rgba(255,255,255,.3)),inset 0 1px #ffffff2b,0 14px 34px #0000003d;backdrop-filter:blur(48px) saturate(162%) brightness(.91) contrast(1.05);-webkit-backdrop-filter:blur(48px) saturate(162%) brightness(.91) contrast(1.05)}.filter-tabs button.active,.sort-icon-button.active,.cache-menu-button.active,button.primary,nav button.active{background:radial-gradient(circle at 26% 0%,rgba(255,255,255,.24),transparent 42%),color-mix(in srgb,var(--button) 80%,#071225 20%);box-shadow:inset 0 0 0 1px color-mix(in srgb,white 28%,transparent),inset 0 1px #ffffff29,0 16px 36px color-mix(in srgb,var(--button) 24%,transparent)}.bottom-dock{background:radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--button) 10%,transparent),transparent 38%),linear-gradient(180deg,#090f1c7a,#000000e0),color-mix(in srgb,#000 58%,transparent);backdrop-filter:blur(64px) saturate(168%) brightness(.84) contrast(1.06);-webkit-backdrop-filter:blur(64px) saturate(168%) brightness(.84) contrast(1.06)}.dock-player{background:linear-gradient(90deg,color-mix(in srgb,var(--button) 20%,#02050d) 0%,color-mix(in srgb,var(--button) 16%,#02050d) var(--dock-progress, 0%),color-mix(in srgb,#02050d 52%,transparent) var(--dock-progress, 0%),color-mix(in srgb,#02050d 52%,transparent) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--button) 22%,rgba(255,255,255,.28)),inset 0 1px #ffffff24,0 18px 46px #0000006b;backdrop-filter:blur(54px) saturate(148%) brightness(.86) contrast(1.06);-webkit-backdrop-filter:blur(54px) saturate(148%) brightness(.86) contrast(1.06)}.queue-row{border:1px solid color-mix(in srgb,var(--button) 14%,rgba(255,255,255,.22));background:radial-gradient(circle at 14% 0%,rgba(112,148,255,.12),transparent 42%),linear-gradient(145deg,#1f33582e,#040c1a52 62%,#0003);box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 7%,transparent),inset 0 1px #ffffff14,0 10px 28px #0000003d}.danger-button,.compact-button.danger-button,.playlist-action.danger-button{background:linear-gradient(145deg,#ff8c8c21,#ff6e6e0e),color-mix(in srgb,#ff6b6b 16%,#081121 84%);color:#ff8b8b;box-shadow:inset 0 0 0 1px color-mix(in srgb,#ff8b8b 34%,transparent),inset 0 1px #ffffff1f,0 12px 30px #0000003d}.favorite-button.active,.favorite-playlist-action.active,.player-like-button.active{background:linear-gradient(145deg,#ff7aa52e,#ff4f8712),color-mix(in srgb,#ff4f87 17%,#071225 83%);color:#ff86ad;box-shadow:inset 0 0 0 1px color-mix(in srgb,#ff8bb2 44%,transparent),inset 0 1px #ffffff24,0 12px 30px #ff4f8724}.playback-mode-button.shuffle,.playback-mode-button.repeat{background:radial-gradient(circle at 26% 0%,rgba(255,255,255,.18),transparent 44%),color-mix(in srgb,var(--button) 78%,#071225 22%);color:var(--button-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,white 20%,transparent),inset 0 1px #ffffff1f,0 14px 34px color-mix(in srgb,var(--button) 22%,transparent)}.playback-mode-button.repeat{background:radial-gradient(circle at 26% 0%,rgba(255,255,255,.18),transparent 44%),color-mix(in srgb,var(--button) 68%,#7c3aed 32%)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root{--glass: color-mix(in srgb, var(--surface) 82%, #000 18%);--glass-strong: color-mix(in srgb, var(--surface) 90%, #000 10%);--glass-soft: color-mix(in srgb, var(--surface) 66%, #000 34%)}button,input,.row,.open-playlist,.library-group-card,.library-detail-hero,.sheet,.share-option,.picker-row,.bottom-dock,.dock-player,.full-player-action,.player-queue,.player-queue-header,.dock-nav button{backdrop-filter:none;-webkit-backdrop-filter:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
