:root{--list-card-gap: 4px;color-scheme:dark;--bg: #0b0c0e;--surface: #141619;--surface-2: #1c1f23;--line: #2b2f34;--text: #f2f4f5;--muted: #969da4;--accent: #36e0a1;--accent-dark: #092b20;--danger: #ff6b6b;--warning: #f5c451;--topbar: rgba(11, 12, 14, .96);--activity-bg: #0e1012;--head-bg: #17191c;--head-hover: #1a1d20;--code-bg: #090a0c;--spec-white: #f5f7f8;--spec-green: #36e0a1;--spec-gold: #f2c94c;--spec-magenta: #e052c6;--spec-crimson: #ff4d5f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=light]{color-scheme:light;--bg: #f4f6f7;--surface: #ffffff;--surface-2: #edf0f1;--line: #d9dee1;--text: #15191c;--muted: #687178;--accent: #0ca978;--accent-dark: #d9f6eb;--danger: #c73f46;--warning: #b67a08;--topbar: rgba(255, 255, 255, .96);--activity-bg: #eef1f2;--head-bg: #f8f9f9;--head-hover: #f1f4f4;--code-bg: #f4f6f7;--spec-white: #596168;--spec-green: #087f5b;--spec-gold: #9a6800;--spec-magenta: #b02691;--spec-crimson: #c92f42}*{box-sizing:border-box}strong,b{font-weight:400}:focus{outline:none}:focus-visible{outline:none}html{height:100%}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}*{scrollbar-width:none}*::-webkit-scrollbar{display:none}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--topbar);position:sticky;top:0;z-index:10}.topbar,.topbar *{-webkit-tap-highlight-color:transparent}.topbar{-webkit-user-select:none;user-select:none}.topbar-nav{display:flex;align-items:center;gap:4px;margin-left:26px}.topbar-nav a{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:var(--muted);text-decoration:none;font-size:13.5px;font-weight:400;transition:color .12s,background .12s}.topbar-nav a svg{width:17px;height:17px}.topbar-nav a:hover,.topbar-nav a.active{color:var(--text);background:var(--surface-2)}.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto}html[data-i18n-pending] body{visibility:hidden}[hidden]{display:none!important}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-size:20px;font-weight:400}.brand-mark{width:36px;height:36px;display:grid;place-items:center;color:var(--accent)}.brand-mark svg{width:30px}.top-actions,.system-facts{display:flex;align-items:center;gap:9px}.language-control{position:relative;width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer}.language-control svg{width:16px;pointer-events:none}.language-control select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:12px}.language-control select:focus{border-color:transparent;box-shadow:none}.language-control select option{background:var(--surface);color:var(--text)}.language-control select option:checked{background:var(--surface-2);color:var(--text)}.icon-button.bordered{border:1px solid var(--line);background:var(--surface)}.server-status{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:7px}.server-status>span{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #36e0a114}.shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px)}.workspace{padding:28px clamp(28px,5vw,76px) 64px;border-right:1px solid var(--line)}.workspace-meta{display:flex;max-width:900px;margin-bottom:14px}.eyebrow{margin:0 0 9px;color:var(--accent);text-transform:uppercase;font-size:11px;font-weight:400;letter-spacing:.14em}h1,h2,p{letter-spacing:0}h1{margin:0;font-size:clamp(32px,4.6vw,56px);line-height:1.02;font-weight:400;max-width:660px}h2{margin:0;font-size:20px}.system-facts{flex-wrap:wrap}.fact{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--muted);font-size:11px;white-space:nowrap}.fact svg{width:13px}.fact strong{color:var(--text);font-weight:400}.quota-fact{flex-direction:column;align-items:stretch;height:auto;padding:6px 10px;min-width:200px}.quota-fact .quota-head{display:flex;align-items:center;gap:6px}.quota-fact .quota-head svg{width:13px;flex:0 0 auto}.quota-fact .quota-head em{margin-left:auto;font-style:normal;color:var(--muted)}.quota-fact .progress-track{margin-top:4px}.fact.ok svg{color:var(--accent)}.fact.warn svg{color:var(--warning)}.download-form{max-width:900px;margin-top:0}.field{display:flex;flex-direction:column;gap:9px;min-width:0}.field>span,.field>label{color:var(--text);font-size:13px;font-weight:400}.field small{color:var(--muted);font-size:12px}textarea,input,select{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}textarea{padding:16px;resize:vertical;min-height:126px;line-height:1.55}input,select{height:44px;padding:0 12px}textarea:focus,input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #36e0a11a}.resource-label-row{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:12px}.resource-label-row>label{color:var(--text);font-size:13px;font-weight:400}.resource-actions{display:flex;align-items:center;gap:7px}.resource-actions .icon-button{width:32px;min-width:32px;height:32px;flex:0 0 32px;padding:0}.resource-actions .icon-button svg{width:16px;height:16px;flex:0 0 16px}.resource-actions .download-icon-button{border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));background:var(--surface);color:var(--accent)}@media(hover:hover)and (pointer:fine){.resource-actions .download-icon-button:hover{border-color:var(--line);background:transparent;color:var(--text)}}.resource-actions .download-icon-button:disabled{opacity:.55;cursor:wait}.advanced-grid{display:grid;grid-template-columns:1fr 1fr 150px;gap:16px;padding:20px 22px 24px;align-items:end}.advanced-toggles{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 20px;padding-top:4px;border-top:1px solid var(--line)}.toggle-field{display:flex;align-items:center;gap:9px;height:44px;font-size:13px;grid-column:1 / -1}.toggle-field input{position:absolute;width:1px;height:1px;margin:0;opacity:0;clip-path:inset(50%);pointer-events:none}.toggle{width:36px;height:20px;border-radius:10px;background:#343940;position:relative;transition:background .15s}.toggle:after{content:"";width:14px;height:14px;border-radius:50%;background:#fff;position:absolute;left:3px;top:3px;transition:transform .15s}.toggle-field input:checked+.toggle{background:var(--accent)}.toggle-field input:checked+.toggle:after{transform:translate(16px);background:#07140f}.button,.icon-button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:6px;font-weight:400}.button{height:40px;padding:0 15px}.button svg,.icon-button svg{width:17px;height:17px}.button-primary{background:var(--accent);color:#07140f}.button-primary:hover{border-color:var(--accent);box-shadow:none;color:var(--accent);filter:none}.button-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line)}.resource-input{position:relative;border:1px solid var(--line);border-radius:7px;background:var(--surface);overflow:visible;transition:border-color .15s,box-shadow .15s}.resource-input #urls{display:block;min-height:50px;height:50px;padding:13px 14px;resize:none;border:0;border-radius:6px 6px 0 0;background:transparent;box-shadow:none;overflow:hidden}.preview-panel{border-radius:0 0 6px 6px;background:var(--surface);overflow:visible}.resource-input #urls:has(+.preview-panel:not([hidden])){border-bottom:1px solid var(--line)}.search-results{position:absolute;z-index:40;top:56px;left:-1px;right:-1px;max-height:min(430px,58vh);overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 18px 45px #0000004d}.search-status{min-height:54px;display:flex;align-items:center;gap:9px;padding:0 11px;color:var(--muted);font-size:12px}.search-status svg{width:15px}.search-status.loading svg{animation:spin .8s linear infinite}.search-result{width:100%;min-height:58px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:7px;border:0;border-radius:5px;background:transparent;color:var(--text);text-align:left}.search-result:hover,.search-result:focus-visible{background:transparent;outline:none}@media(hover:hover)and (pointer:fine){.search-result:hover .search-result-type{color:var(--text)}}.search-result:focus-visible .search-result-type{color:var(--accent)}.search-result.selected{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.search-result-cover{width:42px;height:42px;border-radius:4px;object-fit:cover;background:var(--surface-2)}.search-result-copy{min-width:0}.search-result-copy strong,.search-result-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-copy strong{font-size:12px}.search-result-copy .explicit-mark{display:inline-flex}.search-result-copy span,.search-result-type{color:var(--muted);font-size:10px}.search-result-type{padding-right:5px;text-transform:uppercase}.search-result.added{opacity:.58}.search-result.added .search-result-type{color:var(--accent)}.preview-resource+.preview-resource{border-top:1px solid var(--line)}.preview-resource summary{list-style:none;cursor:pointer}.preview-resource summary::-webkit-details-marker{display:none}.preview-head{display:grid;grid-template-columns:52px minmax(150px,1fr) minmax(240px,auto) auto 28px 18px;align-items:center;gap:12px;padding:12px 14px;background:var(--head-bg)}.preview-head:hover{background:var(--head-bg)}.preview-cover{width:58px;height:58px;border-radius:5px;object-fit:cover;background:var(--surface-2)}.preview-head .preview-cover{width:52px;height:52px}.preview-cover-placeholder{display:grid;place-items:center;color:var(--muted)}.preview-cover-placeholder svg{width:22px}.preview-title{min-width:0}.preview-title strong,.preview-title span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-title span,.preview-count{color:var(--muted);font-size:12px}.preview-count{white-space:nowrap}.preview-specs{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:5px;max-width:100%;overflow-x:auto;scrollbar-width:none}.preview-specs::-webkit-scrollbar{display:none}.preview-specs:has(.spec-menu:not([hidden])){overflow:visible}.spec-control{position:relative;flex:0 0 auto}.spec-tag{display:inline-flex;align-items:center;gap:4px;height:25px;padding:0 7px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:4px;background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--text);font-size:10px;white-space:nowrap}.spec-tag.spec-tone-white{--spec-tone: var(--spec-white)}.spec-tag.spec-tone-green{--spec-tone: var(--spec-green)}.spec-tag.spec-tone-gold{--spec-tone: var(--spec-gold)}.spec-tag.spec-tone-magenta{--spec-tone: var(--spec-magenta)}.spec-tag.spec-tone-crimson{--spec-tone: var(--spec-crimson)}.spec-tag[class*=spec-tone-]:not(.spec-tone-default){border-color:color-mix(in srgb,var(--spec-tone) 55%,var(--line));background:color-mix(in srgb,var(--spec-tone) 10%,var(--surface));color:var(--spec-tone)}.spec-tag svg{width:11px}.spec-tag:disabled{border-color:var(--line);background:transparent;color:var(--muted);cursor:default}.spec-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:150px;padding:5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 14px 35px #0000003d}.spec-menu button{width:100%;height:32px;padding:0 8px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:4px;background:transparent;color:var(--text);font-size:11px;text-align:left}@media(hover:hover)and (pointer:fine){.spec-menu button:hover{color:var(--text);background:transparent}}.spec-menu button.selected{color:var(--accent)}.spec-menu button svg{width:13px}.preview-chevron{width:16px;color:var(--muted);transition:transform .16s ease}.preview-remove{width:28px;height:28px}.preview-remove svg{width:14px}.preview-resource[open] .preview-chevron{transform:rotate(180deg)}.preview-loading{min-height:62px;padding:0 16px;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.preview-loading svg{width:16px;animation:spin .8s linear infinite}.track-list{max-height:310px;overflow:auto}.search-result,.preview-resource,.track-row{margin-bottom:var(--list-card-gap)}.preview-resource[open]>summary{margin-bottom:var(--list-card-gap)}.track-list>.track-row:last-child{margin-bottom:0}.track-row{min-height:43px;padding:8px 14px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;border-top:1px solid rgba(43,47,52,.7)}.track-number{color:var(--muted);font-size:11px;text-align:right}.track-name{min-width:0}.track-name>strong,.track-name>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-name span,.track-duration{font-size:11px;color:var(--muted)}.explicit-mark{display:inline-flex;margin-left:5px;border:1px solid #596067;border-radius:2px;padding:0 3px;font-size:8px;color:#bbc1c6;vertical-align:1px}.atmos-mark{color:#b06bff;border-color:#b06bff}.preview-note{padding:9px 14px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.icon-button{width:36px;height:36px;color:var(--muted);background:transparent}@media(hover:hover)and (pointer:fine){.icon-button:hover{color:var(--text);background:transparent}}.form-message{min-height:18px;margin-top:15px;color:var(--danger);font-size:13px}.form-message.success{color:var(--accent)}.activity{padding:20px;background:var(--activity-bg);display:flex;flex-direction:column}.activity-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.activity-header h2{font-size:13px;line-height:36px;font-weight:400}.activity .job-list{flex:1}.activity .job-list:empty{flex:0 0 0}.activity .empty-state{flex:1}.job-list{display:flex;flex-direction:column;gap:10px}.job{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:15px}.job-top{display:flex;align-items:flex-start;gap:11px}.job-icon{width:32px;height:32px;border-radius:5px;background:var(--surface-2);display:grid;place-items:center;color:var(--accent);flex:0 0 auto}.job-icon svg{width:16px}.job-cover{width:38px;height:38px;flex:0 0 38px;border-radius:5px;object-fit:cover;background:var(--surface-2)}.job-copy{min-width:0;flex:1}.job-copy strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.job-copy .job-subtitle{margin-top:2px;color:var(--text)}.job-copy .job-meta{margin-top:2px;text-transform:capitalize}.job-status{width:8px;height:8px;border-radius:50%;background:var(--muted);margin-top:5px}.job-status.running,.job-status.queued{background:var(--warning)}.job-status.completed{background:var(--accent)}.job-status.failed,.job-status.cancelled{background:var(--danger)}.job-actions{display:flex;gap:8px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}.job-actions button{border:0;background:transparent;color:var(--muted);padding:0;font-size:12px}.job-actions button:hover{color:var(--accent)}.progress-wrap{margin-top:13px}.overall-progress{margin-bottom:0}.overall-progress+.progress-wrap{margin-top:7px}.progress-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:var(--muted);font-size:11px}.progress-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-track{height:4px;border-radius:2px;overflow:hidden;background:#30343a}.progress-bar{height:100%;background:var(--accent);transition:width .2s ease}.empty-state{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}.empty-state svg{width:34px;height:34px;margin-bottom:13px;color:#545b62}.empty-state p{margin:0 0 5px;color:var(--text);font-weight:400}.empty-state span{font-size:12px;max-width:220px}dialog{width:min(520px,calc(100vw - 32px));border:1px solid var(--line);border-radius:8px;padding:0;background:var(--surface);color:var(--text);box-shadow:0 24px 80px #0000008c}#authDialog{overflow-x:hidden}.advanced-dialog{width:min(720px,calc(100vw - 32px))}dialog::backdrop{background:#000000b8}.dialog-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.dialog-content{min-width:0;padding:22px;color:var(--text);line-height:1.5}#authContent{width:100%;max-width:100%;overflow-x:clip}.dialog-content p{margin:0 0 16px}.dialog-content .auth-link{width:100%}.account-list{width:100%;min-width:0;display:flex;flex-direction:column;gap:8px;margin-bottom:16px;overflow-x:hidden}.account-row{width:100%;min-width:0;max-width:100%;min-height:58px;display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:var(--head-bg)}.account-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:5px;background:var(--surface-2);color:var(--accent)}.account-avatar svg{width:16px}.account-copy{min-width:0}.account-copy strong,.account-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-copy strong{display:flex;align-items:center;gap:6px;font-size:12px}.account-copy span{margin-top:2px;color:var(--muted);font-size:10px}.account-health-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--muted)}.account-health-dot.checking{background:var(--warning);animation:health-pulse 1s ease-in-out infinite}.account-health-dot.healthy{background:var(--accent)}.account-health-dot.degraded{background:var(--warning)}.account-health-dot.unhealthy{background:var(--danger)}@keyframes health-pulse{50%{opacity:.35}}.account-row .toggle-field{grid-column:auto;height:32px}.account-row .icon-button{width:30px;height:30px}.account-empty{padding:18px 10px;color:var(--muted);font-size:12px;text-align:center}.add-account-button{width:100%}.log-dialog{width:min(800px,calc(100vw - 32px))}.log-dialog pre{margin:0;padding:20px;max-height:60vh;overflow:auto;background:var(--code-bg);color:var(--text);font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.qr-muted{color:var(--muted);font-size:12px}.login-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-gate[hidden]{display:none}.admin-shell{min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px)}.admin-workspace{padding:28px clamp(28px,5vw,76px) 64px;max-width:900px}.admin-workspace h3{font-weight:400}.monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:4px}.monitor-card{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--surface)}.monitor-card h4{margin:0 0 10px;font-size:12.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.monitor-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:13px}.monitor-card dt{color:var(--muted)}.monitor-card dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.monitor-table{width:100%;border-collapse:collapse;font-size:12px}.monitor-table th,.monitor-table td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left}.monitor-table th{color:var(--muted);font-weight:500}.monitor-card.monitor-wide{grid-column:1 / -1}.route-list{display:flex;flex-wrap:wrap;gap:6px}.route-chip{font-size:11px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.admin-user-form{display:flex;flex-direction:column;gap:10px}.admin-user-field{display:flex;flex-direction:column;gap:3px}.admin-user-hint{font-size:11px;color:var(--muted)}.admin-user-hint.invalid{color:#e5484d}.admin-password-wrap{display:flex;align-items:center;gap:6px}.admin-password-wrap input{flex:1;min-width:0}.admin-user-admin{align-self:flex-start}.admin-user-message{margin:0;font-size:13px}.admin-user-message.ok{color:var(--accent)}.admin-user-message.error{color:#e5484d}.login-card{width:100%;max-width:340px;display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 18px 50px #00000059}.login-brand{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:6px;text-align:center}.login-brand h1{margin:0;font-size:19px}.login-brand p{margin:0;color:var(--muted);font-size:13px}.login-card .field{display:flex;flex-direction:column;gap:6px}.login-card .field span{color:var(--muted);font-size:12.5px}.login-card input{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text);font-size:14px}.login-card input:focus{outline:none;border-color:var(--accent)}.login-error{margin:0;color:#e5484d;font-size:12.5px}.login-card .button{justify-content:center}@media(max-width:980px){.shell{grid-template-columns:1fr}.workspace{border-right:0}.activity{border-top:1px solid var(--line)}}@media(max-width:700px){body[data-route=downloads]{overflow:hidden;height:100dvh}body[data-route=downloads] .shell{height:calc(100dvh - 68px);min-height:0;overflow-y:auto}.topbar{padding:0 18px}.workspace{padding:20px 18px 44px}.advanced-grid,.advanced-toggles{grid-template-columns:1fr}.compact-field{max-width:none}.activity{padding:20px 18px}.preview-head{grid-template-columns:46px minmax(0,1fr) 28px 16px;gap:10px}.preview-head .preview-cover{width:46px;height:46px}.preview-specs{grid-column:2 / 5;grid-row:2;justify-content:flex-start}.preview-count{display:none}.preview-remove{grid-column:3;grid-row:1}.preview-chevron{grid-column:4;grid-row:1}}@media(max-width:560px){.language-control{width:34px}.preview-count{display:none}.fact.path-fact{max-width:100%}.fact.path-fact strong{overflow:hidden;text-overflow:ellipsis}}.bandwidth-panel{text-align:left;padding:14px 16px}.bandwidth-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.bandwidth-controls .toggle-field{grid-column:auto;height:36px}.bandwidth-cap-field{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.bandwidth-cap-field input{width:100px;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--text)}.bandwidth-status{margin-left:auto;font-size:12px;color:var(--muted)}.bandwidth-jobs{margin-top:12px;display:flex;flex-direction:column;gap:6px}.bandwidth-job-row{display:flex;align-items:center;gap:10px;font-size:12.5px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--head-bg)}.bandwidth-job-row .job-user{color:var(--muted);min-width:90px}.bandwidth-job-row .job-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bandwidth-job-row .job-rate{font-variant-numeric:tabular-nums;color:var(--accent)}.bandwidth-users{margin-top:12px}.bandwidth-users h4{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.bandwidth-users table{width:100%;border-collapse:collapse;font-size:12.5px}.bandwidth-users th,.bandwidth-users td{text-align:right;padding:6px 8px;border-bottom:1px solid var(--line)}.bandwidth-users th:first-child,.bandwidth-users td:first-child{text-align:left}.bandwidth-users th{color:var(--muted);font-weight:500;white-space:nowrap}.bandwidth-users td.num{font-variant-numeric:tabular-nums}.bandwidth-empty{color:var(--muted);font-size:12px;text-align:center;padding:10px 0}.user-menu{position:relative;display:inline-flex}.user-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:120;min-width:200px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:0 18px 50px #0006}.user-menu-header{padding:8px 10px;margin-bottom:4px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-header strong{color:var(--text);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{width:100%;display:flex;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font-size:13px;text-align:left}.user-menu-item:hover{background:var(--surface-2)}.user-menu-item svg{width:15px;height:15px;color:var(--muted);flex:0 0 15px}.password-dialog{width:min(420px,calc(100vw - 32px))}.password-form{display:flex;flex-direction:column;gap:14px}.password-form .login-error{margin:0}.password-form .button{justify-content:center}.onboarding-overlay{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px;background:#0000008c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.onboarding-overlay[hidden]{display:none}.onboarding-card{max-height:calc(100dvh - 48px);overflow-y:auto;width:100%;max-width:420px;display:flex;flex-direction:column;gap:18px;padding:30px;text-align:center;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 24px 80px #00000080}.onboarding-brand{display:flex;justify-content:center;color:var(--accent)}.onboarding-brand .brand-mark{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--accent-dark)}.onboarding-brand svg{width:22px;height:22px}.onboarding-card h2{margin:0;font-size:19px}.onboarding-steps{margin:0;padding:0 0 0 20px;text-align:left;color:var(--muted);font-size:13.5px;line-height:1.7}.onboarding-steps li{margin-bottom:4px}.onboarding-card .button{justify-content:center;width:100%}.onboarding-author{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.onboarding-author strong{color:var(--text)}.onboarding-card a{color:var(--accent);text-underline-offset:3px}.onboarding-notice{padding:12px;border:1px solid var(--line);border-radius:8px;text-align:left;font-size:13px;line-height:1.7}.onboarding-notice p{margin:0 0 8px}.topbar button.brand{padding:0;border:0;background:transparent;box-shadow:none}dialog.onboarding-overlay{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;box-sizing:border-box;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.onboarding-overlay::backdrop{background:transparent}.onboarding-card{max-width:460px;max-height:calc(100dvh - 48px);padding:24px;gap:16px;text-align:left;border-radius:24px;box-sizing:border-box;overscroll-behavior:contain}.onboarding-card[hidden]{display:none}.onboarding-brand{justify-content:flex-start;align-items:center;gap:12px;font-weight:700}.onboarding-card h2{font-size:24px;line-height:1.25;text-wrap:balance}.onboarding-intro,.onboarding-summary{margin:0;font-size:14px;line-height:1.6}.onboarding-summary,.gesture-alternative{color:var(--muted)}.onboarding-notice{border:0;background:var(--surface-2,var(--surface));padding:14px;border-radius:12px}.onboarding-notice p{margin:6px 0}.onboarding-author{flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:8px}.onboarding-card .button{min-height:44px;flex-shrink:0}.onboarding-card .button:disabled{opacity:.5;cursor:default}.onboarding-card :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.gesture-guide{list-style:none;padding:0;margin:0;display:grid;gap:18px}.gesture-guide li{display:flex;gap:12px;align-items:flex-start}.gesture-guide svg{width:22px;height:22px;flex-shrink:0;color:var(--accent)}.gesture-guide strong{font-size:14px;line-height:1.5}.gesture-guide p{margin:4px 0 0;font-size:14px;line-height:1.55;color:var(--muted)}.gesture-alternative,.gesture-status{font-size:12px;line-height:1.5;margin:0}.gesture-status{color:var(--muted);text-align:center}@media(max-width:400px){.onboarding-card{padding:20px;gap:14px}}.onboarding-card .button-primary:hover{color:#07140f}.onboarding-card .button:disabled{opacity:.65}.onboarding-card h2:focus{outline:none}@media(max-width:700px){body,body *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none}body input,body textarea,body [contenteditable]:not([contenteditable=false]),body [contenteditable]:not([contenteditable=false]) *{-webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default}}@media(max-width:700px){.topbar .brand>.brand-mark{display:none}}@media(max-width:700px){.dialog-head>.icon-button{width:40px;min-width:40px;height:40px}.dialog-head>.icon-button svg{width:19px;height:19px}.preview-remove{width:32px;min-width:32px;height:36px}.preview-remove svg{width:16px;height:16px}.preview-head{grid-template-columns:46px minmax(0,1fr) 32px 20px}.spec-menu button{min-height:36px}}#previewPanel .preview-head{grid-template-columns:52px minmax(0,1fr) auto 32px 20px;grid-template-rows:auto minmax(36px,auto) auto;row-gap:2px}#previewPanel .preview-cover{grid-column:1;grid-row:1 / 3}#previewPanel .preview-title{display:contents}#previewPanel .preview-title strong{grid-column:2 / -1;grid-row:1;min-width:0}#previewPanel .preview-title>span{grid-column:2;grid-row:2;min-width:0}#previewPanel .preview-count{display:block;grid-column:3;grid-row:2}#previewPanel .preview-remove{grid-column:4;grid-row:2}#previewPanel .preview-chevron{grid-column:5;grid-row:2}#previewPanel .preview-specs{grid-column:2 / -1;grid-row:3;justify-content:flex-start}#previewPanel .track-row{grid-template-rows:auto auto;row-gap:2px}#previewPanel .track-row>.track-number{grid-column:1;grid-row:1 / 3}#previewPanel .track-row>.track-name{display:contents}#previewPanel .track-row .track-name>strong{grid-column:2 / -1;grid-row:1;min-width:0}#previewPanel .track-row .track-name>span{grid-column:2;grid-row:2;min-width:0}#previewPanel .track-row>.track-duration{grid-column:3;grid-row:2}.album-disc{display:inline-block;position:relative;flex-shrink:0;border-radius:50%!important;overflow:hidden;vertical-align:middle;background:conic-gradient(from 30deg,#798692,#c3d0d7,#4f6070,#d5dee3,#798692);box-shadow:0 1px 2px #0005;-webkit-mask-image:radial-gradient(circle closest-side,transparent 12%,#000 14%);mask-image:radial-gradient(circle closest-side,transparent 12%,#000 14%)}.album-disc>img{display:block;position:absolute;inset:0;width:100%!important;height:100%!important;border-radius:50%!important;object-fit:cover}.album-disc:before{content:"";position:absolute;inset:0;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,transparent 93%,#ffffff85 96%,#18283b85 98%,#ffffff8a 100%),conic-gradient(from -30deg,transparent,#ffffff1c 40deg,transparent 85deg,#ffffff12 220deg,transparent 280deg)}.album-disc:after{content:"";position:absolute;z-index:2;inset:34%;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,transparent 39%,#eff7ffed 43%,#627080ab 49%,#d8e7f359 52%,#eaf5ff36 84%,#ffffffa1 90%,transparent 95%)}:where(.album-disc){width:42px;height:42px}:root{--drawer-open-ms:280;--drawer-close-ms:240;--drawer-open-duration:.28s;--drawer-close-duration:.24s;--drawer-open-ease:cubic-bezier(.12,1,.28,1);--drawer-close-ease:cubic-bezier(.4,0,1,1)}body[data-route=player]{overflow:hidden}.player-shell{height:calc(100dvh - 68px);min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.library-panel,.lyrics-panel{min-width:0;min-height:0;background:var(--activity-bg);display:flex;flex-direction:column;overflow:hidden}.library-panel{border-right:1px solid var(--line)}.lyrics-panel{border-left:1px solid var(--line)}.player-resource-input{position:relative;min-height:0;flex:1;display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--surface);overflow:hidden}.player-search-wrap{height:38px;flex:0 0 38px;display:flex;align-items:center;gap:8px;margin:8px 12px 0;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--head-bg);color:var(--muted)}.player-search-wrap:focus-within{border-color:var(--accent)}.player-search-wrap>svg{width:14px;color:var(--muted)}.player-search-wrap input{height:36px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none!important}.player-search-wrap input,.artist-search input{accent-color:transparent;-webkit-appearance:textfield;appearance:textfield}.player-search-wrap input::-webkit-search-cancel-button,.artist-search input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}.search-clear{width:24px;min-width:24px;height:24px;margin-left:2px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.search-clear:hover{color:var(--text)}.search-clear svg{width:14px;height:14px}#searchSpinner{width:24px;min-width:24px;height:24px;margin-left:2px;display:inline-flex;align-items:center;justify-content:center;align-self:center}#searchSpinner svg{width:14px;height:14px;animation:spin 1s linear infinite}.player-search-results{position:absolute;z-index:8;top:50px;left:0;right:0;max-height:min(420px,calc(100% - 50px));overflow:auto;padding:6px;border-bottom:1px solid var(--line);background:var(--surface);box-shadow:0 16px 40px #00000047}.player-result,.queue-item{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;color:var(--text);text-align:left;position:relative}.player-result{grid-template-columns:42px minmax(0,1fr) auto auto;padding:7px;background:transparent;border-radius:5px}.player-result:hover{background:transparent}.player-result.selected{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.player-result img{width:42px;height:42px;object-fit:cover;border-radius:4px;background:var(--surface-2)}.player-result-copy,.queue-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.player-result-copy strong,.player-result-copy span,.queue-copy strong,.queue-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tscroll{display:block;width:fit-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400}.tscroll[data-artist-link]{max-width:100px}.tscroll[data-artist-open],.tscroll[data-album-info]{cursor:pointer}@media(hover:hover)and (pointer:fine){.tscroll[data-artist-open]:hover,.tscroll[data-album-info]:hover{color:var(--text);text-decoration:underline}}.queue-copy span.tscroll,.player-result-copy span.tscroll{font-size:11px;color:var(--muted)}.tscroll .scroll-title-text{display:inline-block;width:max-content;max-width:none;white-space:nowrap;color:inherit!important;font:inherit!important}.tscroll.overflowing{text-overflow:clip}.queue-item:hover .tscroll.overflowing .scroll-title-text,.fav-track-row:hover .tscroll.overflowing .scroll-title-text,.playlist-track-row:hover .tscroll.overflowing .scroll-title-text,.playlist-album-head:hover .tscroll.overflowing .scroll-title-text,.preview-head:hover .tscroll.overflowing .scroll-title-text,.player-result:hover .tscroll.overflowing .scroll-title-text,.tscroll.overflowing:hover .scroll-title-text{animation:title-scroll var(--scroll-duration, 8s) linear infinite}@keyframes title-scroll{0%,12%{transform:translate(0)}88%,to{transform:translate(var(--scroll-distance, 0px))}}.result-type{color:var(--muted);font-size:11px}.queue-head{height:50px;flex:0 0 50px;display:flex;align-items:flex-end;gap:8px;padding:0 14px;position:relative;z-index:1}.library-tabs{display:flex;align-items:flex-end;gap:3px;min-width:0;height:100%}.library-tab{position:relative;height:34px;display:inline-flex;align-items:center;gap:8px;padding:0 16px;border:0;border-radius:9px 9px 0 0;background:transparent;color:var(--muted);font-size:12.5px;font-weight:400;white-space:nowrap;transition:color .12s,background .12s}.library-tab:hover{color:var(--text);background:transparent}.library-tab.active{color:var(--text);background:var(--surface);border:1px solid var(--line);border-bottom:0;margin-bottom:-1px}.library-tab.active:before,.library-tab.active:after{content:"";position:absolute;bottom:0;width:10px;height:10px}.library-tab.active:before{left:-10px;background:radial-gradient(circle at top left,transparent 9.5px,var(--surface) 9.5px),radial-gradient(circle at top left,transparent 8.5px,var(--line) 8.5px)}.library-tab.active:after{right:-10px;background:radial-gradient(circle at top right,transparent 9.5px,var(--surface) 9.5px),radial-gradient(circle at top right,transparent 8.5px,var(--line) 8.5px)}.library-tab>.tab-count{min-width:18px;height:17px;display:inline-grid;place-items:center;padding:0 5px;border-radius:9px;background:color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted);font-size:10px;font-weight:400}.library-tab.active>.tab-count{background:var(--accent-dark);color:var(--accent)}.player-queue{min-height:0;flex:1;overflow-y:auto;padding:12px 12px 24px}.queue-item{grid-template-columns:50px minmax(0,1fr) 28px 28px 28px;min-height:66px;padding:8px 10px;background:var(--head-bg)}@media(max-width:700px){.playlist-album-head.preview-head{grid-template-columns:46px minmax(0,1fr) 28px 28px 28px}.playlist-album-head .preview-count{display:block}}.queue-fav{width:28px;min-width:28px;height:28px;color:var(--muted)}.icon-button.added,.icon-button.added:hover{color:var(--accent)}.icon-button.partial,.icon-button.partial:hover{color:var(--warning)}.queue-fav svg{width:11px;height:11px}@media(hover:hover)and (pointer:fine){.queue-fav:hover{color:var(--text);background:transparent}}.queue-fav.fav-on{opacity:1;color:var(--accent)}.queue-fav.fav-on svg{fill:currentColor}.result-fav{width:26px;min-width:26px;height:26px;opacity:.55;color:var(--muted)}@media(hover:hover)and (pointer:fine){.result-fav:hover{opacity:1;color:var(--text);background:transparent}}.result-fav.fav-on{opacity:1;color:var(--accent)}.result-fav.fav-on svg{fill:currentColor}.fly-cover{position:fixed;left:0;top:0;z-index:99;width:56px;height:56px;object-fit:cover;border-radius:6px;box-shadow:0 10px 30px #0006;pointer-events:none;transition:transform .55s cubic-bezier(.3,.7,.4,1),opacity .55s ease}.library-tab.pulse{animation:tab-pulse .32s ease}@keyframes tab-pulse{40%{transform:scale(1.08)}}.queue-item img,.queue-cover-placeholder{width:50px;height:50px;display:grid;place-items:center;object-fit:cover;border-radius:5px;background:var(--surface-2);color:var(--muted)}.queue-cover-placeholder svg{width:19px}.queue-item.active,.queue-item.selected{background:color-mix(in srgb,var(--accent) 12%,var(--head-bg))}.queue-item.active strong{color:var(--accent)}.queue-duration,.playlist-album-head .preview-count{color:var(--muted);font-size:10px;width:28px;min-width:28px;text-align:center;overflow:hidden;font-variant-numeric:tabular-nums}.queue-remove{opacity:1;width:28px;min-width:28px;height:28px;justify-content:center}.playlist-album{border-bottom:0}.playlist-album-head.preview-head{grid-template-columns:50px minmax(0,1fr) 28px 28px 28px;gap:10px;min-height:66px;padding:8px 10px}.playlist-album-head .preview-chevron{display:none;width:0;min-width:0;margin:0}.fav-album-loading{padding:12px 14px;color:var(--muted);font-size:11px}.playlist-track-row.fav-track-row{grid-template-columns:24px minmax(0,1fr) 28px 28px 28px}.playlist-track-row[data-artist-track]{grid-template-columns:24px minmax(0,1fr) 28px 28px}.playlist-track-row.queue-inner-row{grid-template-columns:24px minmax(0,1fr) 28px 28px 28px}.queue-inner-row .track-duration{width:28px;min-width:28px}.fav-track-row .track-name span.tscroll{font-size:10px}.fav-track-row .track-duration{font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted)}.fav-track-row.selected{background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.info-view{min-height:0;flex:1;overflow-y:auto;padding:18px 16px 24px;display:flex;flex-direction:column}.info-view>.player-empty{flex:1;min-height:200px}.info-cover{margin-bottom:14px}.info-cover img{width:100%;max-width:220px;border-radius:8px;display:block;box-shadow:0 12px 32px #00000047}.info-cover-wrap{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.info-cover-wrap .info-cover{margin-bottom:0}.info-cover-wrap .info-cover img{width:min(220px,100%)}.info-actions{display:flex;flex-direction:column;gap:6px;padding-top:2px}.info-actions .info-action{width:30px;min-width:30px;height:30px}.info-album-link{cursor:pointer;color:inherit}@media(hover:hover)and (pointer:fine){.info-album-link:hover{color:var(--text);text-decoration:underline}}.info-row strong a,.info-row strong .info-link,.info-row .tscroll[data-artist-open]{color:inherit}.info-row{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;padding:8px 2px;border-bottom:1px solid var(--line);font-size:12px}.info-row span{color:var(--muted)}.info-row strong{font-weight:400;overflow-wrap:anywhere}.spin{animation:spin 1s linear infinite}.artist-view{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:8px 12px 24px;display:flex;flex-direction:column}.artist-view>.player-empty{flex:1;min-height:200px}.artist-hero{display:flex;align-items:center;gap:12px;padding:4px 8px 14px}.artist-hero img,.artist-hero .queue-cover-placeholder{width:64px;height:64px;border-radius:8px;object-fit:cover;background:var(--surface-2);color:var(--muted)}.artist-hero .queue-cover-placeholder svg{width:26px}.artist-hero h3{margin:0;font-size:17px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artist-search{margin:0 0 10px;display:flex;align-items:center;gap:8px;padding:0 10px;height:38px;border:1px solid var(--line);border-radius:6px;background:var(--head-bg);color:var(--muted)}.artist-search:focus-within{border-color:var(--accent)}.artist-search svg{width:14px}.artist-search input{height:36px;padding:0;border:0;background:transparent;box-shadow:none!important}.artist-filter{display:flex;gap:6px;margin:0 0 10px}.artist-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border:1px solid var(--line);border-radius:14px;background:var(--head-bg);color:var(--muted);font-size:12px;font-weight:400}.artist-chip span:last-child{font-size:10px;font-weight:400;opacity:.85}.artist-chip.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}.artist-list{display:flex;flex-direction:column}.artist-album .playlist-album-head .preview-count{font-size:10px}.artist-album .playlist-album-tracks{background:var(--surface)}.artist-chooser{position:fixed;z-index:60;min-width:160px;max-width:220px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #00000059;padding:4px}.artist-chooser button{border:0;background:transparent;color:var(--text);text-align:left;padding:8px 10px;border-radius:7px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(hover:hover)and (pointer:fine){.artist-chooser button:hover{background:color-mix(in srgb,var(--text) 10%,var(--surface));color:var(--text)}}.playlist-album-head.preview-head .preview-cover{width:50px;height:50px}.playlist-album-head .preview-title span{font-size:11px}.playlist-album-head .preview-count{font-size:10px}.playlist-album-tracks{max-height:215px;overflow-y:auto;overscroll-behavior-y:contain;background:var(--surface)}.playlist-album-tracks{-webkit-overflow-scrolling:touch;touch-action:pan-y}.playlist-album-tracks{padding:6px}.playlist-album-tracks>.playlist-track-row.queue-inner-row:first-child{margin-top:6px}.playlist-album-tracks>.playlist-track-row.queue-inner-row:last-child{margin-bottom:8px}.playlist-album-tracks{background:color-mix(in srgb,#000 26%,var(--surface));box-shadow:inset 0 8px 16px -6px #000000e6,inset 0 2px 2px -1px #000000b3,inset 12px 0 16px -14px #000000b3,inset -12px 0 16px -14px #000000b3,inset 0 -2px 3px -1px #0000004d}:root[data-theme=light] .playlist-album-tracks{background:color-mix(in srgb,#000 9%,var(--surface));box-shadow:inset 0 8px 16px -6px #0000004d,inset 0 2px 2px -1px #0003,inset 12px 0 16px -14px #0003,inset -12px 0 16px -14px #0003,inset 0 -2px 3px -1px #0000001f}.artist-album .playlist-album-tracks{background:color-mix(in srgb,#000 26%,var(--surface))}.playlist-track-row{width:100%;min-height:43px;padding:7px 12px;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px;border:0;background:transparent;color:var(--text);text-align:left}.tscroll,.queue-copy,.preview-title,.track-name,.queue-item,.player-result,.playlist-track-row,.playlist-album-head{-webkit-user-select:none;user-select:none}.playlist-track-row:hover{background:transparent}.playlist-track-row.active{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.playlist-track-row.active .track-name strong{color:var(--accent)}.playlist-track-row .track-number{text-align:center}#playerQueue>*+*,#playerFavorites>*+*{border-top:0}.player-queue:empty{flex:0 0 0;padding:0;min-height:0;overflow:hidden}.player-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:12px;text-align:center}.player-empty svg{width:26px}.now-panel{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;padding:28px clamp(28px,5vw,76px) 18px;overflow:hidden}.now-panel>*{flex:0 0 auto}.now-panel .now-art,.now-panel .now-copy,.now-panel .player-error,.now-panel .seek-row,.now-panel .transport,.now-panel .play-options{margin-top:auto}.now-panel .seek-row{margin-top:14px}.now-panel .transport{margin-top:10px}.now-panel .play-options{margin-top:12px;margin-bottom:0}.now-art{width:min(52vh,460px,100%,calc(100dvh - 350px));flex:0 1 auto;aspect-ratio:1;position:relative;display:grid;place-items:center;background:var(--surface-2);box-shadow:0 24px 60px #0000003d}.now-art img{width:100%;height:100%;object-fit:cover}.now-art img:not([src]){display:none}.player-shell.art-backdrop:before{content:"";position:absolute;inset:68px 0 0;z-index:0;opacity:0;transition:opacity .3s ease;background-image:var(--backdrop, none);background-size:cover;background-position:center;filter:blur(64px) saturate(1.15) brightness(.55);transform:scale(1.2);pointer-events:none}.player-shell.art-backdrop.lyrics-open:before{opacity:1}.player-shell.art-backdrop.lyrics-open.cover-bright:before{filter:blur(64px) saturate(1.05)}.player-shell.art-backdrop>*{position:relative;z-index:1}.now-art.lyrics-mode{cursor:pointer;min-height:0;aspect-ratio:auto;flex:1 1 auto;background:transparent;box-shadow:none}.now-art.lyrics-mode>:not(.cover-lyrics){visibility:hidden}.cover-lyrics{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,94%);max-height:min(46dvh,390px);overflow-y:auto;overscroll-behavior:contain;padding:24px;white-space:pre-wrap;text-align:center;color:var(--text);font-size:14px;line-height:2;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 48px,#000 calc(100% - 48px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 48px,#000 calc(100% - 48px),transparent 100%)}.cover-lyrics::-webkit-scrollbar{display:none}.cover-lyrics .lyrics-line{padding:3px 0;transition:color .15s,font-size .15s}.cover-lyrics .lyrics-line.active{color:var(--accent);font-size:18px;font-weight:400}.player-shell.art-backdrop{--cover-ink: #f2f4f5;--cover-ink-dim: hsl(210 7.142857% 75%)}.player-shell.art-backdrop.cover-bright{--cover-ink: #111417;--cover-ink-dim: hsl(210 7.54717% 25%)}.player-shell.art-backdrop.lyrics-open .cover-lyrics{color:var(--cover-ink)}.player-shell.art-backdrop.lyrics-open .cover-lyrics .lyrics-line{color:var(--cover-ink-dim)}.player-shell.art-backdrop.lyrics-open .cover-lyrics .lyrics-line.active,.player-shell.art-backdrop.lyrics-open .now-copy h2,.player-shell.art-backdrop.lyrics-open .now-copy p,.player-shell.art-backdrop.lyrics-open .seek-row,.player-shell.art-backdrop.lyrics-open .player-error,.player-shell.art-backdrop.lyrics-open .transport .icon-button,.player-shell.art-backdrop.lyrics-open .play-speed,.player-shell.art-backdrop.lyrics-open .play-quality,.player-shell.art-backdrop.lyrics-open .volume{color:var(--cover-ink)}.player-shell.art-backdrop.lyrics-open .play-button{background:transparent;color:var(--cover-ink)}.player-shell.art-backdrop.lyrics-open .play-options .icon-button,.player-shell.art-backdrop.lyrics-open .volume .icon-button{color:var(--cover-ink);background:transparent}@media(hover:hover)and (pointer:fine){.player-shell.art-backdrop.lyrics-open .volume .icon-button:hover{color:var(--cover-ink);background:transparent}}.player-shell.art-backdrop.lyrics-open #qualityButton,.player-shell.art-backdrop.lyrics-open #qualityButton:hover,.player-shell.art-backdrop.lyrics-open #qualityButton.locked,.player-shell.art-backdrop.lyrics-open #qualityButton:disabled{color:var(--cover-ink);border-color:transparent;background:transparent;opacity:1}.player-shell.art-backdrop.lyrics-open .player-settings-button:hover{color:var(--cover-ink)}.player-shell.art-backdrop.lyrics-open input[type=range]{--range-color: var(--cover-ink);--range-track: color-mix(in srgb, var(--cover-ink) 30%, transparent)}.player-shell.art-backdrop.lyrics-open .now-copy #nowArtistName.artist-link:hover,.player-shell.art-backdrop.lyrics-open .now-copy #nowAlbumName.album-link:hover{color:var(--cover-ink);text-decoration:underline}.now-art>span svg{width:56px;height:56px;color:var(--muted)}.now-copy{width:100%;margin-top:auto}.now-panel .now-copy{margin-top:20px}.now-copy h2{font-size:19px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.now-copy h2>.tscroll{display:block;width:100%;max-width:100%}.now-copy p{margin:5px 0 0;color:var(--muted);font-size:13px}.now-copy #nowArtistName.artist-link,.now-copy #nowAlbumName.album-link{cursor:pointer}.now-copy #nowArtistName.artist-link:hover,.now-copy #nowAlbumName.album-link:hover,.now-copy .copy-link:hover{color:var(--text);text-decoration:underline}.now-copy .tscroll[data-artist-open]:hover,.now-copy .tscroll[data-album-info]:hover{color:inherit;text-decoration:inherit}.now-copy #nowArtistName .tscroll{display:inline-block;vertical-align:bottom}.transport>#favoriteButton{margin-right:5px}.transport>#downloadButton{margin-left:5px}.transport>.icon-button:disabled{opacity:.4;cursor:default}.transport .icon-button{position:relative}@media(hover:hover)and (pointer:fine){.transport>.icon-button.fav-active:hover{color:var(--text)}}.transport>.icon-button.fav-active svg{fill:currentColor}.play-speed{display:inline-flex;align-items:center;gap:6px;margin-left:14px;color:var(--muted);font-size:11px;white-space:nowrap}.play-speed svg{width:13px}.play-speed strong{color:var(--text);font-weight:400;font-variant-numeric:tabular-nums}.spec-tag.locked{cursor:default}.toast{position:fixed;left:50%;bottom:26px;z-index:90;max-width:calc(100vw - 40px);transform:translate(-50%,10px);padding:10px 16px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--text);font-size:13px;box-shadow:0 14px 40px #00000059;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}.toast.show{opacity:1;transform:translate(-50%)}.player-error{width:100%;min-height:20px;margin-top:7px;color:var(--text);font-size:11px}.player-error.api-info{color:var(--text)}.player-error.is-loading{color:var(--accent);animation:status-loading 1.1s ease-in-out infinite}@keyframes status-loading{0%,to{opacity:1}50%{opacity:.42}}@media(prefers-reduced-motion:reduce){.player-error.is-loading{animation:none}}.seek-row{width:100%;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:9px;color:var(--muted);font-size:10px}.seek-row span:last-child{text-align:right}input[type=range]{height:20px;padding:0;border:0;box-shadow:none;accent-color:var(--accent);appearance:none;-webkit-appearance:none;background:transparent;--range-fill: 0%;--range-color: var(--text);--range-track: color-mix(in srgb, var(--text) 22%, transparent)}@media(hover:hover)and (pointer:fine){input[type=range]:hover{--range-color: var(--text)}}input[type=range]::-webkit-slider-runnable-track{height:2px;border:0;border-radius:1px;background:linear-gradient(to right,var(--range-color) var(--range-fill),var(--range-track) var(--range-fill))}input[type=range]::-moz-range-track{height:2px;border-radius:1px;background:var(--range-track)}input[type=range]::-moz-range-progress{height:2px;border-radius:1px;background:var(--range-color)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:11px;height:11px;margin-top:-4.5px;border:0;border-radius:50%;background:var(--text);box-shadow:none;transition:transform .12s ease}input[type=range]::-moz-range-thumb{width:11px;height:11px;border:0;border-radius:50%;background:var(--text);box-shadow:none;transition:transform .12s ease}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}input[type=range]:hover::-moz-range-thumb,input[type=range]:active::-moz-range-thumb{transform:scale(1.25)}.player-shell.art-backdrop.lyrics-open input[type=range]::-webkit-slider-thumb{background:var(--cover-ink)}.player-shell.art-backdrop.lyrics-open input[type=range]::-moz-range-thumb{background:var(--cover-ink)}.transport{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:10px}.transport .icon-button.active{color:var(--text)}@media(hover:hover)and (pointer:fine){.transport .icon-button:hover,.transport .icon-button.active:hover{color:var(--text)}}.transport .icon-button.active:after{content:"";position:absolute;left:50%;bottom:6px;transform:translate(-50%);width:3px;height:3px;border-radius:50%;background:currentColor;pointer-events:none}.transport .icon-button#repeat.active.single:after{display:none}#repeat svg text{font-family:inherit}.play-button{width:48px;height:48px;display:grid;place-items:center;border:0;background:transparent;color:var(--text)}@media(hover:hover)and (pointer:fine){.play-button:hover{color:var(--text)}}.play-button svg{width:24px}.play-options{width:100%;margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:24px}.play-quality,.volume{display:flex;align-items:center;gap:7px;color:var(--muted)}.play-quality>svg{width:14px;flex:0 0 14px}.play-quality{min-width:0;justify-self:end}.quality-specs{overflow:visible}#qualityButton{width:86px;justify-content:center;border-color:transparent;background:transparent;color:var(--muted)}@media(hover:hover)and (pointer:fine){#qualityButton:hover{color:var(--text)}}#qualityButton.locked{color:var(--muted)}.player-shell{--fn-ink: #ffffff}:root[data-theme=light] .player-shell{--fn-ink: #000000}.player-shell.art-backdrop.lyrics-open{--fn-ink: var(--cover-ink)}.player-shell .seek-row,.player-shell .player-error,.player-shell .transport .icon-button,.player-shell .play-button,.player-shell .play-speed,.player-shell .play-quality,.player-shell .volume,.player-shell .play-options .icon-button,.player-shell .volume .icon-button,.player-shell #qualityButton,.player-shell .player-settings-button{color:var(--fn-ink)}.player-shell .play-button,.player-shell .play-options .icon-button,.player-shell .volume .icon-button,.player-shell #qualityButton{background:transparent}.player-shell #qualityButton,.player-shell #qualityButton:hover,.player-shell #qualityButton.locked,.player-shell #qualityButton:disabled{border-color:transparent;opacity:1}.player-shell .seek-row input[type=range]{--range-color: var(--fn-ink);--range-track: color-mix(in srgb, var(--fn-ink) 30%, transparent)}#qualityButton:disabled{border-color:transparent;background:transparent;color:var(--muted);opacity:.55}.quality-specs .spec-menu{top:auto;right:auto;bottom:calc(100% + 6px);left:0;min-width:180px}.player-settings-button{width:30px;min-width:30px;height:30px;padding:0;justify-self:center;border:0;background:transparent}@media(hover:hover)and (pointer:fine){.player-settings-button:hover{color:var(--text);background:transparent}}.player-settings-button svg{width:14px}.player-settings-dialog{width:min(390px,calc(100vw - 32px))}.player-settings-dialog .dialog-head{align-items:center;padding:16px 18px}.player-settings-dialog .dialog-head h2{font-size:15px}.player-settings-content{padding:8px 18px 14px}.player-settings-content .toggle-field{grid-column:auto}.volume{justify-self:start}.volume .icon-button{width:14px;min-width:14px;height:30px;padding:0;background:transparent}@media(hover:hover)and (pointer:fine){.volume .icon-button:hover{color:var(--text);background:transparent}}.volume .icon-button svg{width:14px;height:14px}.volume input{width:86px}.lyrics-tabs{height:50px;flex:0 0 50px;padding:0 14px;position:relative;z-index:1}.lyrics-body{min-height:0;flex:1;display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--surface)}.lyrics{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;padding:22px;white-space:pre-wrap;color:var(--muted);font-size:14px;line-height:1.9}.lyrics-line{display:block;padding:4px 0;transition:color .15s}.lyrics-line.active{color:var(--text);font-weight:400}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.player-shell{grid-template-columns:330px 1fr}.lyrics-panel{display:none}}.player-drawer-backdrop{display:none}body:not([data-route=player]) .library-panel,body:not([data-route=player]) .lyrics-panel,body:not([data-route=player]) .player-drawer-backdrop{display:none!important}@media(max-width:700px){body[data-route=player]{overflow:hidden}.topbar-nav{margin-left:10px}.topbar-nav a{width:34px;height:34px}body[data-route=player] .top-actions{margin-left:auto}.player-shell{height:calc(100dvh - 68px);min-height:0;position:relative;display:block;overflow:hidden;touch-action:pan-y}.player-shell>.now-panel{position:absolute;inset:0;padding:14px 22px 38px;overflow-y:auto;touch-action:pan-y}.player-shell>.library-panel,.player-shell>.lyrics-panel,.player-shell .player-queue,.player-shell .artist-view,.player-shell .info-view,.player-shell .playlist-album-tracks,.player-shell .lyrics{touch-action:pan-y}.player-shell>.library-panel,.player-shell>.lyrics-panel{position:fixed;top:max(32px,env(safe-area-inset-top,0px));bottom:max(32px,env(safe-area-inset-bottom,0px));width:calc(100% - 48px);margin:0;background:var(--surface);z-index:30;transition:transform var(--drawer-close-duration) var(--drawer-close-ease);box-shadow:0 0 44px #0006;border:0}.player-shell>.library-panel{left:0;transform:translate(calc(-100% - 64px));border-radius:24px}.player-shell>.lyrics-panel{right:0;transform:translate(calc(100% + 64px));display:flex;flex-direction:column;border-radius:24px}.player-shell.art-backdrop>.library-panel,.player-shell.art-backdrop>.lyrics-panel{position:fixed;z-index:30}.player-shell.drawer-lib-open>.library-panel{transform:translate(0);transition:transform var(--drawer-open-duration) var(--drawer-open-ease)}.player-shell.drawer-lyr-open>.lyrics-panel{transform:translate(0);transition:transform var(--drawer-open-duration) var(--drawer-open-ease)}.player-shell>.player-drawer-backdrop{display:block;position:fixed;inset:0;z-index:25;background:#00000073;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--drawer-close-duration) var(--drawer-close-ease),visibility 0s var(--drawer-close-duration)}.player-shell.drawer-lib-open>.player-drawer-backdrop,.player-shell.drawer-lyr-open>.player-drawer-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition:opacity var(--drawer-open-duration) var(--drawer-open-ease),visibility 0s}@media(prefers-reduced-motion:reduce){.player-shell>.player-drawer-backdrop,.player-shell>.library-panel,.player-shell>.lyrics-panel,.player-shell.drawer-lib-open>.library-panel,.player-shell.drawer-lyr-open>.lyrics-panel,.player-shell.drawer-lib-open>.player-drawer-backdrop,.player-shell.drawer-lyr-open>.player-drawer-backdrop{transition:none}}.player-shell.art-backdrop:before{inset:0}.now-art{width:min(24dvh,220px,72vw)}.now-art.lyrics-mode .cover-lyrics{width:94vw;max-width:640px;padding-inline:24px}.cover-lyrics{touch-action:pan-y;user-select:none;-webkit-user-select:none}.now-copy{margin-top:12px}.player-error{min-height:15px;margin-top:3px}.transport{margin-top:5px}.play-options{margin-top:6px}.topbar{padding:0 16px}}.copy-link{cursor:pointer}@media(hover:hover)and (pointer:fine){.copy-link:hover{color:var(--text);text-decoration:underline}}.follow-item{grid-template-columns:50px minmax(0,1fr) 28px}.artist-search-results{margin:0 0 10px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 16px 40px #00000047;flex:0 0 auto;max-height:260px}.fav-item.pending,.fav-album.pending{opacity:.55}.fav-track-row.excluded{opacity:.45}.fav-track-row.excluded .track-name{text-decoration:line-through}body.no-images img{display:none!important}.explicit-badge{display:inline-block;margin-left:6px;padding:0 4px;font-size:9px;font-weight:700;line-height:1.5;letter-spacing:.5px;color:var(--accent);border:1px solid var(--accent);border-radius:3px;vertical-align:middle;background:transparent;flex:0 0 auto}.atmos-badge{color:#b06bff;border-color:#b06bff}.spectrum-view{padding:0;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:0}.spectrum-view[hidden]{display:none}.spectrum-title{grid-column:1 / -1;grid-row:1}.spectrum-wrap{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:36px minmax(0,1fr);flex:1.2 1 0;min-height:0;border:0;border-radius:0;overflow:hidden;background:var(--surface)}.spectrum-yaxis,.spectrum-note-axis{font:10px ui-monospace,monospace;color:var(--muted)}.spectrum-yaxis{grid-column:1;grid-row:2;position:relative}.spectrum-yaxis span{position:absolute;right:5px;transform:translateY(50%);line-height:1}.spectrum-main{grid-column:2;grid-row:2;min-width:0;min-height:0;position:relative;background:#0c0d10}.spectrum-canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.spectrum-parts{flex:2 1 0;min-height:0;display:flex;flex-direction:column;gap:0}.spectrum-part{display:flex;flex-direction:column;flex:1 1 0;min-height:0;border:0;border-radius:0;overflow:hidden;background:var(--surface)}.spectrum-part-title{flex:0 0 20px}.spectrum-plot{display:grid;grid-template-columns:32px minmax(0,1fr);position:relative;flex:1;min-height:0}.spectrum-note-axis{grid-column:1;display:flex;flex-direction:column;justify-content:space-between;text-align:right;padding:3px 5px 3px 0;font-size:9px}.spectrum-plot canvas{position:absolute;left:32px;top:0;width:calc(100% - 32px);height:100%;display:block;background:#0c0d10}.analysis-header{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:8px;height:20px;min-height:20px;flex:0 0 20px;padding:0 8px;color:var(--muted);font-size:11px;font-weight:600}.analysis-header output{font-size:10px;font-weight:400;font-variant-numeric:tabular-nums}.spectrum-view{overscroll-behavior:contain}.spectrum-wrap{grid-template-rows:20px minmax(0,1fr)}.spectrum-view canvas{image-rendering:pixelated;touch-action:none}.spectrum-channel{position:absolute;left:5px;z-index:1;pointer-events:none;color:#eee;background:#111a;padding:1px 3px;font:10px ui-monospace,monospace}.channel-left{top:3px}.channel-right{top:calc(50% + 3px)}.spectrum-main:after{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid #ffffff26;pointer-events:none}.spectrum-view{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,6fr) minmax(0,2fr) minmax(0,2fr);gap:0;overflow:hidden;position:relative}.spectrum-parts{display:contents}.spectrum-wrap,.spectrum-part{box-sizing:border-box;height:auto;min-height:0;min-width:0}.spectrum-view .analysis-unavailable{position:absolute;inset:0 0 auto;z-index:3;margin:0;padding:8px;background:var(--surface)}.analysis-scale{display:flex;flex-direction:column;width:152px;max-width:52%;gap:2px;flex:0 1 152px}.analysis-colorbar{display:block;height:5px;background:linear-gradient(to right,#0c0c0e,#0c0c10,#0c0d12,#0c0d14,#0d0e17,#0d0e19,#0d0e1b,#0d0f1d,#0d0f1f,#0d1021,#0d1024,#0d1026,#0e1128,#0e112a,#0e112c,#0e122e,#0e1231,#0e1333,#0e1335,#0e1337,#0f1439,#0f143b,#0f153d,#0f1540,#0f1542,#0f1644,#0f1646,#101748,#10174a,#10174d,#10184f,#101951,#101a52,#101c54,#111e56,#111f58,#112159,#11225b,#11245d,#12265e,#122760,#122962,#122a64,#122c65,#132e67,#132f69,#13316a,#13336c,#13346e,#143670,#143771,#143973,#143b75,#143c76,#153e78,#153f7a,#15417c,#15437d,#15447f,#164681,#164882,#164984,#164b86,#164c88,#174e89,#17508b,#17518d,#17538e,#175490,#185692,#185894,#185995,#185b96,#185d96,#185f97,#186197,#186397,#186597,#186798,#186998,#186b98,#186d98,#186f99,#187199,#187399,#187599,#18779a,#18799a,#187b9a,#187d9a,#187e9b,#18809b,#18829b,#198499,#1a8698,#1a8896,#1b8995,#1c8b93,#1c8d92,#1d8f90,#1e908e,#1e928d,#1f948b,#20968a,#219788,#219987,#229b85,#239c84,#239e82,#24a081,#25a27f,#25a37e,#26a57c,#27a77b,#27a979,#29aa78,#2dab76,#31ac74,#35ad72,#39ae70,#3daf6e,#41b06c,#44b16b,#48b269,#4cb367,#50b365,#54b463,#58b561,#5cb660,#60b75e,#64b85c,#68b95a,#6cba58,#70bb56,#73bc54,#77bd53,#7bbe51,#7fbf4f,#83bf4d,#87c04b,#8bc149,#8fc248,#93c346,#97c444,#9bc542,#9fc640,#a3c73e,#a6c83c,#aac93b,#aeca39,#b2cb37,#b6cb35,#bacc33,#becd31,#c2ce30,#c6cf2e,#cad02c,#ced12a,#d2d228,#d2d028,#d3ce28,#d3cc27,#d4ca27,#d4c827,#d5c627,#d5c426,#d5c326,#d6c126,#d6bf26,#d7bd26,#d7bb25,#d8b925,#d8b725,#d8b525,#d9b325,#d9b124,#daaf24,#daad24,#dbab24,#dba923,#dca723,#dca523,#dca323,#dda123,#dd9f22,#de9d22,#de9b22,#df9922,#df9721,#df9521,#e09321,#e09121,#e19021,#e18e20,#e28c20,#e28a20,#e38820,#e38620,#e3841f,#e4821f,#e4801f,#e57e1f,#e57c1e,#e67a1e,#e6781e,#e6751e,#e6731e,#e6701e,#e66e1e,#e66b1e,#e6681e,#e6661e,#e6631e,#e6601e,#e65e1e,#e65b1e,#e6591e,#e6561e,#e6531e,#e6511e,#e64e1e,#e64c1e,#e6491e,#e6461e,#e6441e,#e6411e,#e63e1e,#e63c1e,#e6391e,#e6371e,#e6341e,#e6311e,#e62f1e,#e62c1e,#e62a1e,#e6281e,#e8271d,#e9261c,#ea251c,#eb241b,#ed231a,#ee221a,#ef2119,#f02018,#f21f18,#f31e17,#f41d16,#f51c15,#f61b15,#f81a14,#f91913,#fa1813,#fb1712,#fd1611,#fe1511,#ff1410)}.analysis-scale-ticks{display:flex;justify-content:space-between;font:8px ui-monospace,monospace;font-weight:400;color:var(--muted);white-space:nowrap}.analysis-rms .analysis-header{gap:4px;padding:0 6px;font-size:10px}.loudness-values{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap}.loudness-values output{font-size:9px}.peak-lamp{--peak:0;width:7px;height:7px;flex:none;border-radius:50%;background:color-mix(in srgb,#4acb79 calc(var(--peak)*100%),#1a1e22);box-shadow:0 0 calc(var(--peak)*7px) color-mix(in srgb,#4acb79 calc(var(--peak)*70%),transparent);opacity:calc(.22 + var(--peak)*.78);pointer-events:none}.peak-lamp.is-hot{background:var(--warning);box-shadow:0 0 8px color-mix(in srgb,var(--warning) 70%,transparent);opacity:1}.peak-lamp.is-clip{background:var(--danger);box-shadow:0 0 10px var(--danger);opacity:1}#rmsValue{color:#4acb79}#lufsMValue{color:#42c9f5}.rhythm-tempo{display:flex;align-items:center;gap:6px}#rhythmBeat{width:6px;height:6px;border-radius:50%;background:#eedc2a;opacity:.18}#rhythmBeat.active{opacity:1}.analysis-onset .spectrum-plot{position:relative}.spectrum-view{--analysis-axis-width:40px}.spectrum-wrap,.spectrum-plot{grid-template-columns:var(--analysis-axis-width) minmax(0,1fr) var(--analysis-axis-width)}.spectrum-plot canvas{left:var(--analysis-axis-width);width:calc(100% - 2 * var(--analysis-axis-width))}.spectrum-note-axis{grid-row:1;font-size:8px;white-space:nowrap}.spectrum-yaxis.analysis-axis-right{grid-column:3}.spectrum-yaxis.analysis-axis-right span{left:5px;right:auto}.spectrum-note-axis.analysis-axis-right{grid-column:3;text-align:left;padding:3px 0 3px 5px}.analysis-rms-axis{color:#4acb79}.analysis-lufs-axis{color:#42c9f5}.spectrum-view .analysis-precise-axis{position:relative;display:block;padding:0}.analysis-tick{position:absolute;left:0;right:0;height:0}.analysis-tick:before{content:"";position:absolute;top:0;right:0;width:4px;border-top:1px solid currentColor;opacity:.65}.spectrum-view .analysis-tick span{position:absolute;left:auto;right:6px;transform:none;line-height:10px;white-space:nowrap}.analysis-axis-right .analysis-tick:before{left:0;right:auto}.spectrum-view .analysis-axis-right .analysis-tick span{left:6px;right:auto}.spectrum-main:after{top:var(--spectrum-split,50%)}.channel-right{top:calc(var(--spectrum-split,50%) + 3px)}.spectrum-view.analysis-expanded{grid-template-rows:minmax(0,1fr)}.spectrum-view.analysis-expanded .analysis-card:not(.analysis-focused){display:none}.spectrum-view.analysis-expanded .analysis-focused{grid-row:1;border-top:0}.spectrum-view canvas{cursor:zoom-in}.spectrum-view.analysis-expanded canvas{cursor:zoom-out}.library-panel .artist-view{padding:8px 0 16px}.library-panel .artist-view[hidden],.player-search-wrap[hidden]{display:none}.spectrum-wrap{grid-template-rows:20px minmax(0,1fr) 14px}.analysis-time-axis{box-sizing:border-box;position:relative;height:14px;min-height:14px;flex:0 0 14px;margin:0 var(--analysis-axis-width);color:var(--muted);font:9px/14px ui-monospace,monospace;-webkit-user-select:none;user-select:none;pointer-events:none}.spectrum-wrap>.analysis-time-axis{grid-column:2;grid-row:3;margin:0}#artistSearchResults{padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}.follow-artist-card{grid-template-columns:minmax(0,1fr) 28px}.artist-card-open{display:grid;grid-template-columns:50px minmax(0,1fr);gap:10px;align-items:center;min-width:0;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.artist-hero #followButton{margin-left:auto;flex:0 0 28px}.analysis-time-tick{position:absolute;top:0;height:14px;white-space:nowrap}.analysis-time-tick>span{display:block;padding-top:3px;font-size:8px;line-height:11px}.analysis-time-tick>i{position:absolute;top:0;height:3px;border-left:1px solid currentColor;opacity:.55}.library-panel .artist-search{margin-left:12px;margin-right:12px;flex:0 0 38px;min-width:0}.library-panel .artist-search input{min-width:0}.eq-view{min-height:0;flex:1;padding:12px;overflow-y:auto;background:var(--surface)}.eq-view[hidden]{display:none}.eq-toolbar{display:flex;align-items:center;flex-wrap:nowrap;gap:4px 6px;min-height:40px}.eq-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;height:40px;min-height:40px;padding:0 2px;color:var(--text);font-size:12px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.eq-toggle input{position:absolute;width:1px;height:1px;opacity:0}.eq-toggle-track{position:relative;width:32px;height:18px;flex:none;border:1px solid var(--line);border-radius:999px;background:var(--line);transition:background .16s,border-color .16s}.eq-toggle-track:after{content:"";position:absolute;width:12px;height:12px;left:2px;top:2px;border-radius:50%;background:var(--muted);transition:transform .16s,background .16s}.eq-toggle input:checked+.eq-toggle-track{background:var(--accent);border-color:var(--accent)}.eq-toggle input:checked+.eq-toggle-track:after{transform:translate(14px);background:var(--surface)}.eq-toggle input:focus-visible+.eq-toggle-track{outline:2px solid var(--accent);outline-offset:3px}.eq-toggle input:disabled+.eq-toggle-track{opacity:.4}.eq-reset{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;min-height:32px;margin-left:auto;padding:0;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);transition:color .16s,border-color .16s}.eq-reset svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.eq-reset:active{color:var(--accent);border-color:var(--accent)}.eq-reset:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(hover:hover){.eq-reset:hover{color:var(--text);border-color:var(--muted)}}@media(prefers-reduced-motion:reduce){.eq-toggle-track,.eq-toggle-track:after,.eq-reset{transition:none}}.eq-response-gesture{touch-action:pan-y;user-select:none;-webkit-user-select:none}.eq-response-gesture .eq-response{pointer-events:none}.eq-hint{margin:10px 0;color:var(--muted);font-size:10px;line-height:1.5}.eq-row{display:grid;grid-template-columns:50px 52px 48px;gap:8px;align-items:center;min-height:40px;font:11px ui-monospace,monospace}.eq-row output{text-align:right;color:var(--muted)}.eq-preamp{border-bottom:1px solid var(--line);margin-bottom:6px;padding-bottom:6px}.eq-response{display:block;width:100%;height:auto;margin-top:10px;overflow:visible}.eq-response text{fill:var(--text);font:9px ui-monospace,monospace}.eq-plot-bg{fill:#0c0d10}.eq-plot-frame{fill:none;stroke:#fff9;stroke-width:.9}.eq-tick{stroke:#fffc;stroke-width:.9}.eq-grid{stroke:#ffffff4d;stroke-width:.6}.eq-grid-minor{stroke:#ffffff1f;stroke-width:.5}.eq-zero{stroke:#ffffffe6;stroke-width:1.1}.eq-response-fill{stroke:none;fill:color-mix(in srgb,var(--accent) 20%,transparent)}.eq-response-line{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.eq-band-mark{fill:var(--accent);stroke:#0c0d10;stroke-width:.8}.eq-view.eq-bypassed .eq-pot-cell,.eq-view.eq-bypassed .eq-response-gesture{--accent: var(--muted)}@media(max-width:700px){.now-art:not(.lyrics-mode){touch-action:none}.now-art img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}}#view-player{-webkit-tap-highlight-color:transparent}#nowArt{user-select:none;-webkit-user-select:none}.info-album-tracks{margin-top:14px;flex-shrink:0}.info-track-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;border-bottom:1px solid var(--line)}.info-track-row .playlist-track-row{min-width:0;padding-left:0;padding-right:6px}.info-track-row .track-name{min-width:0}.info-track-status{padding:14px 0;color:var(--muted);font-size:12px}@media(max-width:700px){body[data-route=player].player-cover-lyrics{--lyrics-topbar-ink:#f2f4f5}body[data-route=player].player-cover-lyrics.player-cover-bright{--lyrics-topbar-ink:#111417}body[data-route=player] .player-shell.art-backdrop:before{position:fixed;inset:0}body[data-route=player].player-cover-lyrics .topbar,body[data-route=player].player-cover-lyrics .topbar button,body[data-route=player].player-cover-lyrics .topbar .language-control,body[data-route=player].player-cover-lyrics .topbar .topbar-nav a{background:transparent;border-color:transparent;box-shadow:none;color:var(--lyrics-topbar-ink)}body[data-route=player].player-cover-lyrics .topbar .brand,body[data-route=player].player-cover-lyrics .topbar .play-speed,body[data-route=player].player-cover-lyrics .topbar .play-speed strong{color:var(--lyrics-topbar-ink)}}@media(max-width:700px){.queue-item .tscroll[data-artist-open],.playlist-album-head .tscroll[data-artist-open],.playlist-track-row .tscroll[data-artist-open],.player-result .tscroll[data-artist-open]{pointer-events:none;cursor:inherit;text-decoration:none}}@media(max-width:700px){.player-shell>.library-panel,.player-shell>.lyrics-panel{bottom:calc(max(32px,env(safe-area-inset-bottom,0px)) + var(--drawer-keyboard-inset,0px))}.library-panel>.queue-head,.lyrics-panel>.lyrics-tabs{order:20;height:56px;flex:0 0 56px;padding:6px 10px 10px;align-items:center;border:0;background:var(--surface)}.queue-head>.library-tabs{width:100%;align-items:center}.library-panel .library-tab,.lyrics-panel>.lyrics-tabs .library-tab{flex:1;justify-content:center;min-width:0;height:40px;padding:0 8px;border:0;border-radius:12px;margin:0}.library-panel .library-tab.active,.lyrics-panel>.lyrics-tabs .library-tab.active{background:transparent;color:var(--accent)}.library-panel .library-tab:before,.library-panel .library-tab:after,.lyrics-panel>.lyrics-tabs .library-tab:before,.lyrics-panel>.lyrics-tabs .library-tab:after{content:none}.player-resource-input,.lyrics-body{border-top:0}.player-resource-input>.player-search-wrap{order:10;margin:8px 12px}.player-resource-input>.player-search-results{top:0;bottom:54px;max-height:none;border:0;box-shadow:none;background:var(--surface)}.library-panel #artistView{position:relative;overflow:hidden;padding:8px 0 0}.library-panel #artistView>.artist-search{order:10;margin:8px 12px}.library-panel #artistView>.artist-hero,.library-panel #artistView>.artist-filter{flex-shrink:0}.library-panel #artistList{min-height:0;flex:1;overflow:auto}.library-panel #artistSearchResults{position:absolute;z-index:8;inset:0 0 54px;max-height:none;margin:0;background:var(--surface);border:0;box-shadow:none}}.dialog-card{display:contents}@media(max-width:700px){dialog{border:0;background:transparent;box-shadow:none;padding:0 0 64px;max-height:calc(100dvh - 32px);overflow:visible}#authDialog{overflow:visible}dialog>.dialog-card{display:block;max-height:calc(100dvh - 112px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 20px 60px #0006}dialog .dialog-head>button[aria-label=Close]{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:50%;color:var(--text);background:var(--surface);box-shadow:0 6px 20px #00000040}dialog .dialog-head>button[aria-label=Close]:active{background:var(--surface-2)}dialog .dialog-head>button[aria-label=Close]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}}@media(max-width:700px){.spectrum-view{padding-top:12px}}@media(max-width:700px){.topbar{background:var(--bg);border:0;box-shadow:none}.topbar .icon-button,.topbar .language-control,.topbar .topbar-nav a,.topbar .icon-button:hover,.topbar .topbar-nav a:hover,.topbar .topbar-nav a.active{background:transparent;border:0;box-shadow:none}.topbar .topbar-nav a.active,body[data-route=player].player-cover-lyrics .topbar .topbar-nav a.active{color:var(--accent)}}.eq-toggle{white-space:nowrap}.eq-reset:disabled{opacity:.4;cursor:default;color:var(--muted);border-color:var(--line)}.eq-pot:disabled{opacity:.4;cursor:default}.eq-preamp-cell .eq-band-box{position:relative}.eq-preamp-cell .eq-preamp-mode{position:absolute;right:3px;bottom:3px}.eq-preamp-cell .eq-preamp-mode.is-auto i:after{background-image:linear-gradient(var(--accent),var(--accent));filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent) 55%,transparent))}.eq-preamp-cell.is-auto .eq-pot{opacity:.45;cursor:default}.eq-preamp-cell.is-auto .eq-pot i:after{background-image:linear-gradient(var(--muted),var(--muted));filter:none}.eq-preamp-cell.is-auto .eq-pot:before{opacity:.35}@media(max-width:700px){.player-search-results,#artistSearchResults{touch-action:pan-y}}.eq-view{touch-action:pan-y}.eq-quick-pots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 5px;padding:4px 0 8px}.eq-band-box{display:flex;flex-direction:column;align-items:center;gap:2px;width:min(100%,calc(var(--eq-wrap-max) + 2px));padding:3px 0;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);border-radius:10px;box-sizing:border-box}.eq-preamp-cell .eq-band-box{height:100%;justify-content:center}.eq-band-lock,.eq-band-freq{display:flex;align-items:center;justify-content:center;height:15px;min-width:15px;margin:0;padding:0 1px;border:0;border-radius:5px;background:transparent;cursor:pointer;touch-action:none;font:8px ui-monospace,monospace;font-weight:700;letter-spacing:.02em;white-space:nowrap}.eq-band-lock{grid-area:1/1/2/2;justify-self:start;align-self:start;position:relative;padding:0;border-radius:4px}.eq-band-lock:before{content:"";position:absolute;inset:0;border-radius:4px;background:linear-gradient(#333a41,#14181c);box-shadow:inset 0 1px 1px #ffffff1f,0 1px 2px #0006,0 0 0 1px var(--line)}.eq-band-lock:after{content:"";position:absolute;left:50%;top:2px;width:7px;height:6px;margin-left:-3.5px;border-radius:2px;background:linear-gradient(color-mix(in srgb,var(--eq-ink) 46%,#fff),var(--eq-ink) 56%,color-mix(in srgb,var(--eq-ink) 55%,#000));box-shadow:inset 0 1px #ffffffb0,0 1px 2px #0009;transition:top .12s ease,background .12s ease}.eq-band-lock.is-locked:after{top:7px;background:linear-gradient(#cfd6db,#8b959e 56%,#59626a)}.eq-band-lock:before,.eq-band-lock:after{pointer-events:none}:root[data-theme=light] .eq-band-lock:before{background:linear-gradient(#e3e8ec,#b3bbc2)}:root[data-theme=light] .eq-band-box{border-color:color-mix(in srgb,var(--accent) 80%,transparent)}:root[data-theme=light] .eq-band-shaped .eq-band-box{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}:root[data-theme=light] .eq-band-lock:before{background:linear-gradient(#d5dbe1,#94a1ab);box-shadow:inset 0 1px 1px #fffd,0 1px 2px #0003,0 0 0 1px #8794a0}:root[data-theme=light] .eq-band-lock:after{box-shadow:inset 0 1px #fffd,0 1px 2px #00000052}:root[data-theme=light] .eq-band-lock.is-locked:after{background:linear-gradient(#eaeef1,#a7b2bb 56%,#79838c)}:root[data-theme=light] .eq-pot-tag,:root[data-theme=light] .eq-type b{color:#4c565e}.eq-pot-cell.eq-band-locked .eq-pot i:after,.eq-pot-cell.eq-band-locked .eq-type i:after{background-image:linear-gradient(var(--muted),var(--muted))}.eq-pot-cell.eq-band-locked .eq-band-box{border-color:color-mix(in srgb,var(--muted) 45%,transparent)}.eq-view:not(.eq-readonly) .eq-pot-cell.eq-band-locked .eq-type:disabled{opacity:1;cursor:default}.eq-band-freq{grid-area:1/3/2/4;justify-self:end;align-self:start;color:var(--text);cursor:default;font:8px ui-monospace,monospace;font-weight:700;letter-spacing:.02em;white-space:nowrap}.eq-band-freq:hover,.eq-band-lock:hover{color:var(--text)}.eq-band-lock:disabled,.eq-band-freq:disabled{opacity:.3;cursor:default}.eq-band-lock:focus-visible,.eq-band-freq:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.eq-type-menu{position:fixed;z-index:1000;display:flex;flex-direction:column;min-width:118px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 30px #0007}.eq-type-item{display:block;width:100%;padding:7px 10px;border:0;border-radius:7px;background:transparent;color:var(--text);font:12px system-ui,sans-serif;text-align:left;white-space:nowrap}.eq-type-item.is-active{background:var(--accent);color:#08120b}.eq-type-item.is-current{color:var(--accent)}.eq-type-item.is-current.is-active{color:#08120b}.eq-band-shaped .eq-pot:not(.eq-pot-mini),.eq-band-shaped output{opacity:.45}.eq-band-shaped .eq-band-box{border-color:color-mix(in srgb,var(--accent) 28%,transparent)}.eq-pot-cell{--eq-wrap-max:96px;--eq-ink:var(--accent);--eq-lamp-on:var(--accent);--eq-freq-ink:#b06bff;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center;color:var(--muted);font:9px ui-monospace,monospace;touch-action:none;cursor:grab;overflow:visible}.eq-pot-wrap{--eq-mini-size:clamp(22px,2.35vw,30px);display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-items:center;justify-items:center;row-gap:5px;width:min(100%,var(--eq-wrap-max));padding:0 7px;box-sizing:border-box;flex:none}.eq-preamp-cell .eq-pot i:after{background:linear-gradient(var(--eq-ink),var(--eq-ink)) no-repeat 50% 3px / 2px 11px;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--eq-ink) 55%,transparent))}.eq-pot-cell span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eq-pot-cell output{font:inherit}.eq-band-pots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}.eq-pot{--eq-pot-angle:-135deg;--eq-level:0;--eq-led-well:#2a3238;--eq-pot-body:#171a1e;--eq-pot-cap-hi:#4a515a;--eq-pot-cap-mid:var(--surface);--eq-pot-cap-lo:#101214;--eq-pot-inset:#ffffff22;--eq-pot-drop:#0005;--eq-lamp-die:#1a2a22;--eq-lamp-well:#0b0e0c;--eq-lamp-bezel:#4a515a;--eq-lamp-rim:#14181c;--eq-lamp-hot-well:#3a2a08;--eq-lamp-clip-well:#3a1012;position:relative;width:52px;height:52px;padding:0;flex:none;overflow:hidden;isolation:isolate;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle at 50% 50%,transparent 61%,var(--surface-2) 62% 69%,transparent 70%) var(--eq-pot-body);box-shadow:inset 0 1px 1px var(--eq-pot-inset),0 1px 2px var(--eq-pot-drop);color:var(--text);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.eq-pot:before,.eq-pot:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(circle closest-side at 50% 50%,transparent 70%,#000 74% 96%,transparent 99%);mask-image:radial-gradient(circle closest-side at 50% 50%,transparent 70%,#000 74% 96%,transparent 99%)}.eq-pot:before{background:conic-gradient(from -135deg,#2ecc71 0deg,#2ecc71 209deg,#9fdc4a 229deg,#f0c93a 250deg,#ff5a5a 270deg,transparent 270.2deg 360deg)}.eq-pot:after{background:repeating-conic-gradient(from -135deg,transparent 0 9deg,var(--eq-pot-body) 9deg 16.875deg),conic-gradient(from -135deg,transparent 0deg calc(var(--eq-level)*270deg),var(--eq-led-well) calc(var(--eq-level)*270deg) 270deg,var(--eq-pot-body) 270.2deg 360deg)}.eq-pot:active{cursor:grabbing}.eq-pot.is-freq i:after{background-image:linear-gradient(var(--eq-freq-ink),var(--eq-freq-ink));filter:drop-shadow(0 0 3px color-mix(in srgb,var(--eq-freq-ink) 55%,transparent))}.eq-pot i{position:absolute;inset:7px;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 32% 28%,var(--eq-pot-cap-hi),var(--eq-pot-cap-mid) 42%,var(--eq-pot-cap-lo) 78%);box-shadow:inset 0 1px 1px var(--eq-pot-inset),0 2px 3px var(--eq-pot-drop)}.eq-pot i:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(var(--eq-ink),var(--eq-ink)) no-repeat 50% 3px / 2px 11px;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--eq-ink) 55%,transparent));transform:rotate(var(--eq-pot-angle));transform-origin:50% 50%}.eq-pot .eq-peak-lamp{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;z-index:2;opacity:1;background:radial-gradient(circle at 50% 58%,color-mix(in srgb,var(--eq-lamp-on) calc(var(--peak)*100%),var(--eq-lamp-die)) 0 48%,var(--eq-lamp-well) 74%);box-shadow:inset 0 -1.4px 2px #000c,0 0 0 1px var(--eq-lamp-bezel),0 0 0 2.2px var(--eq-lamp-rim),0 1px 1px var(--eq-pot-drop),0 0 calc(var(--peak)*7px) color-mix(in srgb,var(--eq-lamp-on) calc(var(--peak)*75%),transparent)}.eq-pot .eq-peak-lamp.is-hot{background:radial-gradient(circle at 50% 58%,var(--warning) 0 50%,var(--eq-lamp-hot-well) 74%);box-shadow:inset 0 -1.4px 2px #000a,0 0 0 1px var(--eq-lamp-bezel),0 0 0 2.2px var(--eq-lamp-rim),0 1px 1px var(--eq-pot-drop),0 0 8px color-mix(in srgb,var(--warning) 80%,transparent)}.eq-pot .eq-peak-lamp.is-clip{background:radial-gradient(circle at 50% 58%,var(--danger) 0 50%,var(--eq-lamp-clip-well) 74%);box-shadow:inset 0 -1.4px 2px #000a,0 0 0 1px var(--eq-lamp-bezel),0 0 0 2.2px var(--eq-lamp-rim),0 1px 1px var(--eq-pot-drop),0 0 9px var(--danger)}:root[data-theme=light] .eq-pot-cell{--eq-ink:#12c98d;--eq-lamp-on:#16d295;--eq-freq-ink:#8b5cf6}:root[data-theme=light] .eq-pot:before{background:conic-gradient(from -135deg,#10b981 0deg,#10b981 209deg,#65a30d 229deg,#e0a000 250deg,#e5484d 270deg,transparent 270.2deg 360deg)}:root[data-theme=light] .eq-pot{--eq-led-well:#a6b0b8}:root[data-theme=light] .eq-pot,:root[data-theme=light] .eq-type{--eq-pot-body:#e0e6ea;--eq-pot-cap-hi:#ffffff;--eq-pot-cap-mid:#f3f6f8;--eq-pot-cap-lo:#b3bec7;--eq-pot-inset:#ffffffcc;--eq-pot-drop:#00000033;border-color:#9dabb5;--eq-led-well:#b7bec4;--eq-lamp-die:#b9c6bf;--eq-lamp-well:#7f8d86;--eq-lamp-bezel:#8f9ba5;--eq-lamp-rim:#eef1f3;--eq-lamp-hot-well:#c9a24a;--eq-lamp-clip-well:#c97a7e}.eq-pot:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.eq-pot-wrap>.eq-pot:not(.eq-pot-mini){grid-column:1/-1;grid-row:2}.eq-pot-mini,.eq-editor .eq-pot.eq-pot-mini{grid-column:1;grid-row:3;position:relative;justify-self:start;overflow:visible;width:var(--eq-mini-size,30px);height:var(--eq-mini-size,30px);z-index:auto;background:radial-gradient(circle at 50% 50%,transparent 56%,var(--surface-2) 58% 66%,transparent 68%),conic-gradient(from -135deg,transparent 0 270deg,var(--eq-pot-body) 270.2deg 360deg),repeating-conic-gradient(from -135deg,var(--muted) 0 9deg,transparent 9deg 30deg);background-color:var(--eq-pot-body);box-shadow:inset 0 1px 1px var(--eq-pot-inset),0 1px 2px var(--eq-pot-drop)}.eq-pot-mini:before,.eq-pot-mini:after,.eq-pot-mini .eq-peak-lamp{display:none}.eq-pot-mini i{inset:5px}.eq-pot-tag{position:absolute;left:50%;top:-8px;transform:translate(-50%);font:7px ui-monospace,monospace;font-weight:700;line-height:1;color:var(--muted);pointer-events:none}.eq-pot-mini i:after{background:linear-gradient(var(--eq-ink),var(--eq-ink)) no-repeat 50% 1.5px / 2px 8px;filter:none}.eq-type{grid-column:3;grid-row:3;position:relative;justify-self:end;display:block;overflow:visible;width:var(--eq-mini-size,30px);height:var(--eq-mini-size,30px);margin:0;padding:0;border:1px solid var(--line);border-radius:50%;background:conic-gradient(from -135deg,var(--muted) 0 9deg,transparent 9deg 10deg),conic-gradient(from -81deg,var(--muted) 0 9deg,transparent 9deg 10deg),conic-gradient(from -27deg,var(--muted) 0 9deg,transparent 9deg 10deg),conic-gradient(from 27deg,var(--muted) 0 9deg,transparent 9deg 10deg),conic-gradient(from 81deg,var(--muted) 0 9deg,transparent 9deg 10deg),conic-gradient(from 135deg,var(--muted) 0 9deg,transparent 9deg 10deg),var(--eq-pot-body,#171a1e);color:var(--muted);box-shadow:inset 0 1px 1px var(--eq-pot-inset,#ffffff22),0 1px 2px var(--eq-pot-drop,#0005);cursor:pointer;touch-action:none}.eq-type i{position:absolute;inset:5px;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 32% 28%,var(--eq-pot-cap-hi,#4a515a),var(--eq-pot-cap-mid,var(--surface)) 42%,var(--eq-pot-cap-lo,#101214) 78%);box-shadow:inset 0 1px 1px var(--eq-pot-inset,#ffffff22),0 1px 1px var(--eq-pot-drop,#0005)}.eq-type i:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(var(--eq-ink),var(--eq-ink)) no-repeat 50% 1.5px / 2px 8px;transform:rotate(var(--eq-type-angle,0deg));transform-origin:50% 50%}.eq-type b{position:absolute;left:50%;top:-8px;transform:translate(-50%);font:7px ui-monospace,monospace;font-weight:700;pointer-events:none;line-height:1;letter-spacing:.02em}:root[data-theme=light] .eq-type{background:conic-gradient(from -135deg,#687178 0 1.2deg,transparent 1.2deg 2deg),conic-gradient(from -81deg,#687178 0 1.2deg,transparent 1.2deg 2deg),conic-gradient(from -27deg,#687178 0 1.2deg,transparent 1.2deg 2deg),conic-gradient(from 27deg,#687178 0 1.2deg,transparent 1.2deg 2deg),conic-gradient(from 81deg,#687178 0 1.2deg,transparent 1.2deg 2deg),conic-gradient(from 135deg,#687178 0 1.2deg,transparent 1.2deg 2deg),#e0e6ea}.eq-pro-bands{display:flex;flex-direction:column;gap:10px}.eq-band{padding:10px;border:1px solid var(--line);border-radius:12px;min-width:0}.eq-band-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.eq-band-head label{display:flex;align-items:center;gap:6px;min-height:32px;white-space:nowrap}.eq-band-head input{width:18px;height:18px;padding:0;flex:none;accent-color:var(--accent)}.eq-remove{width:32px;height:32px;padding:0;border:0;background:transparent;color:var(--muted);font-size:21px}.eq-frequency{display:grid;grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:10px;margin:4px 0 8px}.eq-dial{position:relative;overflow:hidden;min-width:0;height:52px;padding:4px 8px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);cursor:ew-resize;touch-action:none;user-select:none;-webkit-user-select:none;font:15px ui-monospace,monospace}.eq-dial small{color:var(--muted);font-size:9px}.eq-dial i{position:absolute;bottom:0;height:9px;left:0;right:0;opacity:.5;background:repeating-linear-gradient(90deg,transparent 0 9px,var(--muted) 9px 10px);pointer-events:none}.eq-dial:after{content:"";position:absolute;bottom:0;left:50%;height:12px;width:2px;background:var(--accent);pointer-events:none}.eq-exact{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:10px}.eq-exact input{min-width:0;width:100%;padding:8px 3px;text-align:right;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);font:11px ui-monospace,monospace;-webkit-appearance:textfield;appearance:textfield}.eq-exact input::-webkit-inner-spin-button{-webkit-appearance:none}.eq-band-bypassed .eq-frequency,.eq-band-bypassed .eq-band-pots{opacity:.5}.eq-add{display:flex;justify-content:center;gap:12px;width:100%;min-height:40px;margin-top:10px;padding:8px;border:1px dashed var(--line);border-radius:10px;color:var(--accent);background:transparent;font:inherit;font-size:12px}.eq-add span{color:var(--muted)}.eq-view [data-eq-edit]:disabled{opacity:.4;cursor:default}.eq-view [data-eq-edit]:focus-visible,.eq-toggle:focus-within{outline:none}.eq-view [data-eq-edit]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:700px){.eq-locked [data-eq-edit],.eq-readonly [data-eq-edit],.eq-locked #eqReset{pointer-events:none}.eq-locked .eq-pot,.eq-readonly .eq-pot,.eq-locked .eq-pot-cell,.eq-readonly .eq-pot-cell,.eq-locked .eq-type,.eq-readonly .eq-type{touch-action:pan-y}.eq-pot,.eq-editor .eq-pot{width:44px;height:44px}.eq-pot-cell{--eq-wrap-max:86px}.eq-pot-wrap{--eq-mini-size:26px;width:min(100%,var(--eq-wrap-max));height:auto;padding:0 4px;row-gap:4px}.eq-pot-mini,.eq-editor .eq-pot.eq-pot-mini,.eq-type{width:var(--eq-mini-size,26px);height:var(--eq-mini-size,26px)}.eq-band-box{padding:3px 0}.eq-band-lock,.eq-band-freq{height:13px;min-width:13px;font-size:7px}.eq-pot .eq-peak-lamp{width:9px;height:9px;margin:-4.5px 0 0 -4.5px}}.player-fullscreen-hint{position:fixed;z-index:10000;top:max(12px,env(safe-area-inset-top,0px));left:50%;max-width:calc(100vw - 32px);padding:12px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);box-shadow:0 8px 28px #0005;text-align:center;font-size:13px;line-height:1.5;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,calc(-100% - 32px));transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .18s,visibility 0s .22s}.player-fullscreen-hint.show{opacity:1;visibility:visible;transform:translate(-50%);transition-delay:0s}@media(prefers-reduced-motion:reduce){.player-fullscreen-hint{transition:none}}.player-quality-setting{margin:16px 0}.player-quality-setting>label{display:inline-block;color:var(--text);font-size:13px}#playerDefaultQualityValue{float:right;color:var(--muted);font:11px ui-monospace,monospace;line-height:20px}#playerDefaultQuality{display:block;width:calc(100% - 40px);margin:12px 20px 0;touch-action:pan-y}.player-quality-stops{display:flex;justify-content:space-between;gap:4px}.player-quality-stops button{min-height:36px;padding:0 2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px}.player-quality-stops button.active{color:var(--accent)}.player-quality-stops button:focus-visible,#playerDefaultQuality:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#playerSettingsDialog{-webkit-tap-highlight-color:transparent}#playerSettingsDialog .eq-hint{font-size:11px}.player-quality-stops button{user-select:none;-webkit-user-select:none}.login-card .login-claim-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;color:var(--accent);font-size:13px;text-decoration:underline;text-underline-offset:4px;-webkit-tap-highlight-color:transparent}.login-claim-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.library-panel .artist-filter{margin-left:12px;margin-right:12px;flex-wrap:wrap}@media(max-width:700px){.library-panel #artistView>.artist-filter{order:9;margin:8px 12px 0}.library-panel .artist-view,.library-panel .artist-list{touch-action:pan-y}}.eq-view{display:flex;flex-direction:column;overflow:hidden;padding:8px 12px;gap:6px}.eq-view>.eq-response-gesture{flex:0 0 auto;min-height:0}.eq-view .eq-response{height:clamp(100px,21dvh,168px);margin-top:0}.eq-editor{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:0 2px}.eq-footer{flex:0 0 auto}.eq-editor .eq-hint{margin:4px 0 6px;line-height:1.35}.eq-editor .eq-quick-pots{gap:6px 4px}.eq-editor .eq-pot{width:48px;height:48px}.eq-editor .eq-pot-wrap{width:min(100%,var(--eq-wrap-max));height:auto}.eq-editor .eq-pro-bands{gap:6px}.eq-editor .eq-band{padding:6px 8px;border-radius:10px}.eq-editor .eq-band-head label{min-height:26px}.eq-editor .eq-remove{height:28px}.eq-editor .eq-frequency{margin:2px 0 4px;gap:8px}.eq-editor .eq-dial{height:36px;padding:2px 6px 11px;font-size:13px}.eq-editor .eq-exact input{height:32px;padding:4px 3px}.eq-editor .eq-add{min-height:34px;margin-top:6px;padding:6px}.artist-favorites-list{flex:1;min-height:0;overflow-y:auto}.now-copy #nowArtist{display:flex;flex-direction:column;gap:4px;min-width:0}.now-copy #nowArtistName,.now-copy #nowAlbumName{display:block;width:100%;min-width:0;white-space:nowrap;line-height:18px}.now-copy #nowAlbumName{width:fit-content;max-width:100%;align-self:flex-start}.now-copy #nowArtistName .tscroll,.now-copy #nowAlbumName .tscroll{display:block;width:100%;max-width:100%;white-space:nowrap}.now-copy #nowArtist .tscroll.overflowing .scroll-title-text{animation:title-scroll calc(var(--scroll-duration,8s) * 1.5) linear infinite}@media(prefers-reduced-motion:reduce){.now-copy #nowArtist .tscroll.overflowing .scroll-title-text{animation:none}}.radio-view{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.radio-controls{flex:none;padding:8px 12px 0}.radio-modes{display:flex;gap:6px;margin-bottom:8px}.radio-modes button{border:0;background:transparent;color:var(--muted);padding:6px 10px;border-radius:6px;font-size:12px}.radio-modes button.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.radio-filters{display:flex;gap:8px}.radio-filters select{width:50%;min-width:0;height:32px;padding:0 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font-size:12px}.radio-search{flex:none;margin:8px 12px}.radio-search input{width:0;flex:1;min-width:0}.radio-results{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:0 8px}.radio-station{display:flex;align-items:center;min-height:66px;margin-bottom:5px;background:var(--head-bg);border-radius:6px}.radio-station.active{background:color-mix(in srgb,var(--accent) 12%,var(--head-bg))}.radio-station.active strong,.radio-live{color:var(--accent)}.radio-station-play{flex:1;min-width:0;display:grid;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:10px;padding:8px;text-align:left;color:var(--text);background:transparent;border:0}.radio-station img{width:50px;height:50px;object-fit:cover;border-radius:5px}.radio-station .queue-copy small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:11px;margin-top:4px}.radio-station>.queue-fav{flex:none;margin-right:10px}.radio-more{display:block;margin:12px auto;padding:8px 16px;color:var(--accent);background:transparent;border:1px solid var(--line);border-radius:6px}.radio-message{padding:12px;color:var(--muted);font-size:12px;text-align:center}.radio-view button,.radio-view select{-webkit-tap-highlight-color:transparent}#seek:disabled{opacity:.35;cursor:default}@media(max-width:700px){.library-panel .library-tab{padding-left:7px;padding-right:7px}.radio-results{order:0;padding-top:8px}.radio-controls{order:2}.radio-search{order:3;margin:8px 12px}.radio-results,.radio-station,.radio-station-play{touch-action:pan-y}}.now-art>img:not([src]){display:none}@media(min-width:701px)and (max-width:1100px){.library-panel .library-tab{padding-left:7px;padding-right:7px;gap:4px}}.analysis-frequency-views{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);flex:1;min-height:0;min-width:0}.frequency-pane{grid-area:1 / 1}.frequency-pane:not(.is-active){visibility:hidden;pointer-events:none}.frequency-pane.spectrum-wrap{grid-template-rows:minmax(0,1fr) 14px}.frequency-pane.spectrum-wrap .spectrum-yaxis,.frequency-pane.spectrum-wrap .spectrum-main{grid-row:1}.frequency-pane.spectrum-wrap>.analysis-time-axis{grid-row:2}.analysis-frequency-tabs{display:flex;align-items:center;gap:8px;min-width:0}.analysis-frequency-tabs button{height:20px;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}.analysis-frequency-tabs button[aria-selected=true]{color:var(--accent)}.analysis-frequency-tabs button:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.cqt-stereo-plot>.spectrum-channel{left:calc(var(--analysis-axis-width) + 4px)}.analysis-frequency-selector{position:relative;min-width:0;z-index:5}.analysis-frequency-toggle{display:flex;align-items:center;gap:5px;height:20px;padding:0;border:0;background:transparent;color:var(--accent);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.analysis-frequency-toggle svg{width:11px;height:11px;transition:transform .15s}.analysis-frequency-toggle[aria-expanded=true] svg{transform:rotate(180deg)}#frequencyOptions{position:absolute;left:-4px;top:22px;min-width:104px;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:4px;border:1px solid var(--line);border-radius:7px;background:var(--surface);box-shadow:0 5px 16px #0005;z-index:10}#frequencyOptions[hidden]{display:none}#frequencyOptions button{height:32px;padding:0 10px;text-align:left;border-radius:4px}#frequencyOptions button[aria-checked=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}#frequencyOptions button:hover{background:var(--surface-2)}.analysis-minor-tick span{display:none}.spectrum-view .analysis-minor-tick:after{width:3px;opacity:.3}#cqtPane{--cqt-natural-tick:#fff}:root[data-theme=light] #cqtPane{--cqt-natural-tick:#111}#cqtPane .analysis-tick{color:var(--cqt-natural-tick)}#cqtPane .analysis-tick:before{width:5px;opacity:1}#cqtPane .analysis-tick.analysis-black-note{color:var(--cqt-natural-tick)}#cqtPane .analysis-tick.analysis-black-note:before{width:3px;border-top-width:1.5px}#cqtPane .analysis-tick.analysis-c-note{color:#ff633b}#cqtPane .analysis-tick.analysis-c-note:before{width:9px;border-top-width:2px}#cqtPane .analysis-tick span{right:11px}#cqtPane .analysis-axis-right .analysis-tick span{left:11px;right:auto}.spectrum-view .analysis-octave{position:absolute;left:6px;width:10px;display:flex;flex-direction:column;align-items:flex-start;pointer-events:none;font:9px/10px ui-monospace,monospace;color:var(--muted)}.analysis-octave:before,.analysis-octave:after{content:"";width:8px;flex:1;min-height:0;border-left:1px solid currentColor;opacity:.6}#cqtPane .analysis-octave:before,#cqtPane .analysis-octave:after{color:#8470ee}.analysis-octave:before{border-top:1px solid currentColor}.analysis-octave:after{border-bottom:1px solid currentColor}.spectrum-view .analysis-octave>span{position:static;transform:none;line-height:10px;flex:none;margin-left:0}.spectrum-view .analysis-axis-right .analysis-octave{left:auto;right:6px;align-items:flex-end}.analysis-axis-right .analysis-octave:before,.analysis-axis-right .analysis-octave:after{border-left:0;border-right:1px solid currentColor}.spectrum-view .analysis-axis-right .analysis-octave>span{margin-left:0;margin-right:0}#playerFavorites .radio-station>.icon-button{min-width:44px}.radio-fav-item .queue-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px;margin-top:4px}.fav-album .preview-count{display:block}@media(max-width:700px){.library-panel>.queue-head{padding-left:8px;padding-right:8px}.library-panel>.queue-head>.library-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.library-panel .library-tab{width:100%;height:44px;padding:0 2px;gap:0}.library-panel .library-tab>.tab-count,.lyrics-panel .library-tab>#eqStatus{position:absolute;top:0;right:4px;min-width:0;height:12px;padding:0 3px;font-size:9px;line-height:12px;max-width:calc(100% - 8px);overflow:hidden}}.library-tab>#eqStatus{background:color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted)}.library-tab>#eqStatus.is-on{background:var(--accent-dark);color:var(--accent)}.library-panel .artist-modes{flex:0 0 28px;height:28px;margin:0 12px 10px;align-items:center}.artist-modes button{min-height:28px}.artist-view>.artist-discover-empty{min-height:0}@media(max-width:700px){.library-panel #artistView>.artist-modes{order:11;margin:0 12px 4px}.library-panel #artistSearchResults{bottom:54px}.library-panel #artistFavoritesList{flex:1;min-height:0;overflow-y:auto;touch-action:pan-y}}.radio-modes .mode-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:100%;height:28px;min-height:28px;padding:2px;border:0;border-radius:6px;background:var(--surface-2);color:var(--muted);isolation:isolate}.mode-switch:before{content:"";position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);border-radius:4px;background:color-mix(in srgb,var(--muted) 16%,transparent);transition:transform .22s cubic-bezier(.16,1,.3,1);z-index:-1}.mode-switch[aria-checked=true]:before{transform:translate(100%)}.mode-switch>span{align-self:center;text-align:center;padding:0 8px;font-size:12px;line-height:18px;white-space:nowrap;transition:color .18s;pointer-events:none}.mode-switch[aria-checked=false]>span:first-child,.mode-switch[aria-checked=true]>span:last-child{color:var(--text)}.mode-switch:focus-visible{outline:1px solid var(--muted);outline-offset:2px}@media(prefers-reduced-motion:reduce){.mode-switch:before,.mode-switch>span{transition:none}}.library-panel #artistFavoritesList,.library-panel #artistSearchResults{box-sizing:border-box;padding-left:12px;padding-right:12px}.radio-view>.radio-modes{flex:none;margin:0 12px 8px}@media(max-width:700px){.radio-view>.radio-modes{order:4;margin-bottom:4px}}#qualityControl .spec-tag.radio-live{background:transparent}.history-view{touch-action:pan-y;overscroll-behavior:contain}@media(max-width:700px){body[data-route=player] .topbar{background:transparent}body[data-route=player] .player-shell.art-backdrop.cover-bright:before{filter:blur(64px) saturate(1.05)}body[data-route=player] .topbar,body[data-route=player] .topbar button,body[data-route=player] .topbar .brand,body[data-route=player] .topbar .language-control,body[data-route=player] .topbar .topbar-nav a,body[data-route=player] .topbar .play-speed,body[data-route=player] .topbar .play-speed strong{transition:color .3s ease}}@media(max-width:700px)and (prefers-reduced-motion:reduce){body[data-route=player] .player-shell.art-backdrop:before,body[data-route=player] .topbar,body[data-route=player] .topbar *{transition:none}}.player-shell.lyrics-open .now-panel>.player-error{padding-top:12px}.player-shell.lyrics-open .now-panel{padding-top:0}.player-shell.lyrics-open .now-copy{margin-top:auto}.player-shell.lyrics-open .now-panel>.player-error{margin-top:0}.now-search{display:none}@media(max-width:700px){.now-panel>.now-search{display:block;width:100%;position:relative;z-index:5;margin-bottom:16px}.lyrics-open .now-panel>.now-search{display:none}.now-search-input{display:flex;align-items:center;gap:8px;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted)}.now-search-input>svg{width:16px;height:16px;flex:none}.now-search-input input{flex:1;min-width:0;width:100%;height:100%;border:0;background:transparent;padding:0;font-size:16px;box-shadow:none}.now-search-input input::-webkit-search-cancel-button{display:none}#nowSearchResults{top:46px;max-height:min(420px,45dvh);overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--line);border-radius:8px}#nowSearchResults .player-result{grid-template-columns:42px minmax(0,1fr) auto}.now-search-placeholder{display:grid;place-items:center;width:42px;height:42px}.now-search-album{padding-left:8px}.now-search-album .playlist-track-row{grid-template-columns:24px minmax(0,1fr) 36px;min-height:44px}}#historyView .queue-item{grid-template-columns:50px minmax(0,1fr) 28px 44px 28px}.history-time{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:10px;line-height:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.artist-hero .artist-close{flex:0 0 28px;width:28px;height:28px}@media(max-width:700px){.queue-remove,.queue-fav,.result-fav,.search-clear,.info-actions .info-action,#radioSearchClear,#nowSearchClear{width:32px;min-width:32px;height:36px}.queue-remove svg,.queue-fav svg,.result-fav svg,.search-clear svg,.info-actions .info-action svg,#radioSearchClear svg,#nowSearchClear svg{width:15px;height:15px}.queue-item,.playlist-album-head.preview-head{grid-template-columns:50px minmax(0,1fr) 28px 32px 32px;gap:8px}.playlist-track-row.fav-track-row,.playlist-track-row.queue-inner-row{grid-template-columns:24px minmax(0,1fr) 28px 32px 32px;gap:8px}.playlist-track-row[data-artist-track]{grid-template-columns:24px minmax(0,1fr) 28px 32px}.follow-artist-card,.info-track-row{grid-template-columns:minmax(0,1fr) 32px}#historyView .queue-item{grid-template-columns:50px minmax(0,1fr) 28px 44px 32px}.artist-hero #followButton,.artist-hero .artist-close{flex:0 0 32px;width:32px;height:36px}.eq-editor .eq-remove{width:36px;min-width:36px;height:36px;font-size:23px}.eq-add{min-height:40px}#favoriteButton{width:40px;min-width:40px;height:40px}#favoriteButton svg{width:20px;height:20px}}@media(max-width:700px){.queue-fav svg[data-lucide=heart],.result-fav svg[data-lucide=heart],.info-actions .info-action svg[data-lucide=heart]{width:13px;height:13px}#favoriteButton svg[data-lucide=heart]{width:18px;height:18px}}.queue-drop-slot{box-sizing:border-box;width:100%;min-height:36px;border:1px dashed color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:10px}.queue-drag-ghost{border-radius:8px!important;position:fixed!important;z-index:10001!important;margin:0!important;box-sizing:border-box;pointer-events:none!important;border-radius:14px;background:var(--head-bg)!important;box-shadow:0 14px 34px #0006;opacity:.96;scale:1.025;will-change:transform;overflow:hidden}.queue-dragging,.queue-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}#playerQueue{-webkit-touch-callout:none}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result){grid-template-rows:auto minmax(28px,auto);row-gap:0;align-content:center}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:first-child{grid-column:1;grid-row:1 / 3;align-self:center}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:is(.queue-copy,.preview-title,.track-name,.player-result-copy){display:contents}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:is(.queue-copy,.preview-title,.track-name,.player-result-copy)>:first-child{grid-column:2 / -1;grid-row:1;min-width:0;max-width:100%;align-self:end}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:is(.queue-copy,.preview-title,.track-name,.player-result-copy)>:nth-child(2){grid-column:2;grid-row:2;min-width:0;max-width:100%;align-self:center}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:is(.queue-copy,.preview-title,.track-name,.player-result-copy)>:nth-child(n+3){grid-column:2 / -1;grid-row:3;min-width:0;max-width:100%}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:nth-child(3){grid-column:3;grid-row:2}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:nth-child(4){grid-column:4;grid-row:2}:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result)>:nth-child(5){grid-column:5;grid-row:2}.info-track-row{grid-template-columns:24px minmax(0,1fr) 28px 32px;grid-template-rows:auto minmax(28px,auto)}.info-track-row>.playlist-track-row{grid-column:1 / -1;grid-row:1 / 3;grid-template-columns:24px minmax(0,1fr) 28px 32px;padding-right:0}.info-track-row>[data-info-track-add]{grid-column:4;grid-row:2;align-self:center;justify-self:end}@media(max-width:700px){:is(.queue-item:not(.follow-artist-card),.playlist-album-head,.playlist-track-row,.player-result){grid-template-rows:auto minmax(36px,auto)}.info-track-row{grid-template-rows:auto minmax(36px,auto)}}.info-track-row{padding-block:7px}.info-track-row>.playlist-track-row{padding-block:0}.queue-item.queue-plain,.playlist-album-head.queue-plain{grid-template-columns:50px minmax(0,1fr) 28px}.playlist-track-row.queue-plain{grid-template-columns:24px minmax(0,1fr) 28px}.queue-plain{position:relative}.queue-item.fav-item:not(.radio-fav-item){grid-template-columns:50px minmax(0,1fr) 28px}.playlist-album-head.fav-album-head{grid-template-columns:50px minmax(0,1fr) 28px}@media(max-width:700px){.playlist-album-head.fav-album-head{grid-template-columns:46px minmax(0,1fr) 28px}}.queue-plain.queue-favorited:after{content:"";position:absolute;top:3px;right:3px;width:13px;height:13px;background:var(--accent);clip-path:polygon(0 0,100% 0,100% 100%);pointer-events:none}.queue-plain.queue-favorited>:is(.queue-copy,.preview-title,.track-name)>:first-child{padding-right:11px}.queue-drop-slot{position:relative;z-index:0;border:0}.queue-drop-slot:after{content:"";position:absolute;inset:2px;border:1px dashed var(--accent);border-radius:8px;pointer-events:none}.queue-dragging #playerQueue>.queue-item,.queue-dragging #playerQueue>.playlist-album,.queue-dragging #playerQueue .playlist-album-tracks>.playlist-track-row{position:relative;z-index:1}.queue-drag-source{position:absolute!important;opacity:0!important;pointer-events:none!important}body[data-route=player] .player-shell.art-backdrop:before,body[data-route=player] .player-shell.art-backdrop.cover-bright:before,body[data-route=player] .player-shell.art-backdrop.lyrics-open.cover-bright:before{filter:blur(64px)}body[data-route=player] .player-shell.art-backdrop.lyrics-hsl-backdrop:before,body[data-route=player] .player-shell.art-backdrop.lyrics-hsl-backdrop.cover-bright:before,body[data-route=player] .player-shell.art-backdrop.lyrics-hsl-backdrop.lyrics-open.cover-bright:before{background-image:var(--lyrics-rendered-backdrop);background-size:var(--lyrics-rendered-size,100% 100%);background-repeat:no-repeat;transform:none;filter:none}.queue-action-drop{position:fixed;z-index:10000;pointer-events:none;display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--queue-drop-color);border-radius:18px;background:transparent;color:var(--queue-drop-color);box-shadow:none;transition:color .16s ease,border-color .16s ease}.queue-action-drop[data-action=favorite]{--queue-drop-color:var(--accent)}.queue-action-drop[data-action=unfavorite]{--queue-drop-color:var(--warning)}.queue-action-drop[data-action=queue]{--queue-drop-color:var(--accent)}.queue-action-drop[data-action=remove]{--queue-drop-color:hsl(357 100% 35.49%)}.queue-action-drop[data-action=remove]{--queue-drop-color:hsl(357 100% 54.51%)}:root[data-theme=light] .queue-action-drop[data-action=favorite]{--queue-drop-color:hsl(161 87% 70%)}:root[data-theme=light] .queue-action-drop[data-action=unfavorite]{--queue-drop-color:hsl(43 87% 62%)}.queue-action-drop[data-action=remove]{--queue-drop-color:hsl(357 100% 70%)}.queue-action-drop svg{width:20px;height:20px;flex-shrink:0;stroke-width:2.5;transform-box:fill-box;transform-origin:center}.queue-action-drop:after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;box-shadow:0 0 12px color-mix(in srgb,var(--queue-drop-color) 65%,transparent),inset 0 0 7px color-mix(in srgb,var(--queue-drop-color) 35%,transparent);opacity:0;transition:opacity .16s ease}.queue-action-drop.queue-drop-over:after{opacity:1}.queue-action-drop.queue-drop-over{color:var(--queue-drop-color);border-color:var(--queue-drop-color);border-style:solid}.queue-drag-ghost[data-drop-target=remove]{box-shadow:0 0 0 2px var(--danger),0 14px 34px #0006}.queue-drag-ghost[data-drop-target=favorite]{box-shadow:0 0 0 2px var(--accent),0 14px 34px #0006}.queue-drag-ghost[data-drop-target=unfavorite]{box-shadow:0 0 0 2px var(--warning),0 14px 34px #0006}.queue-drop-slot.queue-slot-away:after{opacity:.25}.queue-drop-slot:after{transition:opacity .16s ease}.queue-drag-hint{position:fixed;z-index:10003;transform:translate(-50%);pointer-events:none;padding:6px 11px;border-radius:20px;max-width:calc(100vw - 16px);white-space:nowrap;font-size:12px;color:var(--accent);background:var(--surface);border:1px solid currentColor;box-shadow:0 4px 16px #0003}.queue-drag-hint[data-action=remove]{color:var(--danger)}.queue-drag-hint[data-action=unfavorite]{color:var(--warning)}.queue-action-dissolve{will-change:opacity}.queue-drop-particles{position:fixed;inset:0;z-index:10002;pointer-events:none;overflow:hidden;contain:strict;--particle-color:#49df8b;--particle-light:#a5f5c5}.queue-drop-particles[data-action=remove]{--particle-color:#ff626b;--particle-light:#ffb0ad}.queue-drop-particles[data-action=unfavorite]{--particle-color:#f5c451;--particle-light:#ffe08a}.queue-drop-particle{position:absolute;border-radius:50%;background:var(--particle-color);opacity:0;pointer-events:none}.queue-drop-particle:nth-child(3n){background:var(--particle-light)}.queue-drop-particle:nth-child(4n){box-shadow:0 0 5px var(--particle-color)}@media(prefers-reduced-motion:reduce){.queue-action-drop,.queue-action-drop:after,.queue-drop-slot:after{transition:none}}:is(.queue-item,.player-result,.playlist-album,.playlist-track-row,.info-track-row,.radio-station,.queue-drop-slot){margin-bottom:var(--list-card-gap)}.playlist-album[open]>.playlist-album-head{margin-bottom:var(--list-card-gap)}.playlist-album-tracks>.playlist-track-row:last-child,.info-track-row>.playlist-track-row{margin-bottom:0}@media(max-width:700px){body[data-route=player] .player-shell.art-backdrop.lyrics-hsl-backdrop:before,body[data-route=player] .player-shell.art-backdrop.lyrics-hsl-backdrop.cover-bright:before,body[data-route=player] .player-shell.art-backdrop.lyrics-hsl-backdrop.lyrics-open.cover-bright:before{inset:-16px;background-size:var(--lyrics-rendered-inset-size,var(--lyrics-rendered-size,100% 100%))}}@media(max-width:700px){#playerQueue :is(.queue-item.queue-plain,.playlist-album-head.queue-plain,.queue-inner-row.queue-plain) *{pointer-events:none}}.queue-dragging #playerQueue,.queue-dragging #playerQueue .playlist-album-tracks{overflow-y:hidden!important;overscroll-behavior:contain}.cd-box{position:fixed;inset:auto 0 0;margin:0 auto;padding:0;width:min(680px,100%);max-width:100%;height:min(78dvh,760px);max-height:calc(100dvh - 24px);border:1px solid var(--line);border-bottom:0;border-radius:28px 28px 0 0;background:var(--surface);color:var(--text);overflow:hidden;box-shadow:0 -12px 48px #0003}.cd-box[open]{display:flex;flex-direction:column;animation:cd-box-in var(--drawer-open-duration) var(--drawer-open-ease)}.cd-box::backdrop{background:#0006;animation:cd-box-dim var(--drawer-open-duration) var(--drawer-open-ease)}.cd-box.closing{animation:cd-box-out var(--drawer-close-duration) var(--drawer-close-ease) forwards;pointer-events:none}.cd-box.closing::backdrop{animation:cd-box-dim-out var(--drawer-close-duration) var(--drawer-close-ease) forwards}.cd-box-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:16px;overflow-y:auto;overscroll-behavior:contain;padding:24px 20px max(24px,env(safe-area-inset-bottom));min-height:0;flex:1;outline:none}.cd-box-album{min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:0;gap:5px;border:0;background:transparent;color:var(--text);text-align:center;-webkit-tap-highlight-color:transparent}.cd-box-cover{display:grid;place-items:center;position:relative;width:100%;aspect-ratio:1;background:conic-gradient(from 35deg,#7d8994,#d1dbe1,#586775,#c5d1d9,#7d8994);border-radius:50%;overflow:hidden;margin-bottom:0;box-shadow:0 1px 1px #0009,0 3px 6px #0004}.cd-box-cover:before{content:"";position:absolute;inset:0;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,transparent 94%,#ffffff9c 96%,#11182785 98%,#ffffff80 100%),conic-gradient(from -40deg,transparent,#ffffff24 40deg,transparent 85deg,#ffffff10 200deg,transparent 270deg)}.cd-box-cover:after{content:"";position:absolute;left:35%;top:35%;width:30%;aspect-ratio:1;z-index:2;border-radius:50%;background:radial-gradient(circle closest-side,var(--surface-2) 35%,#202932 38%,#f1f5f7 42%,#7d8b98 46%,#d8e4eb80 49%,#dce8f030 85%,#f3faff96 91%,transparent 95%);pointer-events:none}.cd-box-cover svg{width:36%;height:36%;color:var(--muted)}.cd-box-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cd-box-album:active .cd-box-cover{opacity:.75}.cd-box-album:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.cd-box-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:48px 12px}.cd-box-empty svg{width:44px;height:44px;opacity:.65}@media(max-width:700px){.cd-box-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}@media(max-height:500px){.cd-box{height:90dvh}}@keyframes cd-box-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes cd-box-out{0%{transform:var(--cd-close-start,translateY(0))}to{transform:translateY(100%)}}@keyframes cd-box-dim{0%{background:transparent}to{background:#0006}}@keyframes cd-box-dim-out{to{background:transparent}}@media(prefers-reduced-motion:reduce){.cd-box[open],.cd-box::backdrop,.cd-box.closing,.cd-box.closing::backdrop{animation:none}}.cd-playing-mode:not(.lyrics-open) #nowArt{border-radius:50%;background:transparent;box-shadow:0 2px 1px #0008,0 5px 5px #0003,0 18px 36px #0005;isolation:isolate}.cd-playing-mode:not(.lyrics-open) #nowCover{-webkit-mask-image:radial-gradient(circle closest-side,transparent 11.6%,#000 12.4%);mask-image:radial-gradient(circle closest-side,transparent 11.6%,#000 12.4%)}.cd-playing-mode:not(.lyrics-open) #nowArt:before{content:"";position:absolute;inset:0;z-index:1;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,transparent 96.5%,#ffffff60 97.2%,#11182766 98.2%,#ffffff9c 99%,#151c2870 100%),conic-gradient(from -35deg,transparent 0deg,#ffffff1f 38deg,transparent 75deg,#0000000a 150deg,#ffffff15 218deg,transparent 258deg,#00000010 325deg,transparent 360deg);box-shadow:inset 0 1px 1px #ffffff80,inset 0 -2px 2px #0007;-webkit-mask-image:radial-gradient(circle closest-side,transparent 11.6%,#000 12.4%);mask-image:radial-gradient(circle closest-side,transparent 11.6%,#000 12.4%)}.cd-playing-mode:not(.lyrics-open) #nowCover{border-radius:50%;animation:cd-record-spin 12s linear infinite;animation-play-state:paused}.cd-playing-mode.cd-spinning:not(.lyrics-open) #nowCover{animation-play-state:running}.cd-playing-mode:not(.lyrics-open) #nowArt:after{content:"";position:absolute;z-index:2;width:30%;aspect-ratio:1;left:35%;top:35%;border:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,transparent 38%,#18212bd9 40%,#e7f1f6f2 43%,#ffffffed 45%,#697a8dba 48%,#d7e4eb52 51%,#d7e4eb24 85%,#ffffff80 88%,#14223570 90%,#eef8ff85 92%,transparent 95%),conic-gradient(from 25deg,#e8f4fc28,#ffffff73 60deg,#192f452e 120deg,#d7eaf859 190deg,#ffffff87 240deg,#1c344b30 300deg,#e8f4fc28);-webkit-mask-image:radial-gradient(circle closest-side,transparent 38.5%,#000 40%,#000 92%,transparent 96%);mask-image:radial-gradient(circle closest-side,transparent 38.5%,#000 40%,#000 92%,transparent 96%)}@keyframes cd-record-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.cd-playing-mode #nowCover{animation:none!important}}.cd-box-mount{display:block;position:relative;width:100%;aspect-ratio:1;padding:2%;border-radius:50%;background:radial-gradient(circle closest-side,transparent 18%,var(--surface-2) 19% 24%,transparent 25% 88%,#ffffff08 89%,transparent 94%)}.cd-box-clip{position:absolute;z-index:4;width:13%;aspect-ratio:1;left:43.5%;top:43.5%;border-radius:50%;pointer-events:none;background:radial-gradient(circle closest-side,var(--surface-2) 40%,transparent 45%),repeating-conic-gradient(from 10deg,#7d8997 0deg 16deg,#303b48 18deg 34deg,#abb7c3 36deg 45deg);box-shadow:0 1px 2px #0008,inset 0 0 0 1px #ffffff50}.cd-box-clip:after{content:"";position:absolute;inset:30%;border-radius:50%;background:var(--surface-2);box-shadow:inset 0 1px 1px #ffffff30}.cd-lifted .cd-box-cover{visibility:hidden}.cd-drop-target .cd-box-mount{box-shadow:inset 0 0 0 2px var(--accent),0 0 14px color-mix(in srgb,var(--accent) 25%,transparent)}.cd-reordering .cd-box-grid{overflow-y:hidden}.cd-box-cover.cd-drag-ghost{position:fixed;left:0;top:0;z-index:20;pointer-events:none;margin:0;opacity:1;visibility:visible;box-shadow:0 12px 22px #0007;will-change:transform}.cd-box-album *{pointer-events:none;-webkit-user-drag:none}.cd-box-album{user-select:none;-webkit-user-select:none}.cd-box-cover.cd-drag-ghost{-webkit-mask-image:radial-gradient(circle closest-side,transparent 13%,#000 14%);mask-image:radial-gradient(circle closest-side,transparent 13%,#000 14%)}.cd-box-cover.cd-landing-hidden{visibility:hidden}.cd-box-cover.cd-landing-ghost{z-index:21}.cd-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;visibility:hidden;pointer-events:none}.cd-reordering .cd-actions{visibility:visible}.cd-actions>.queue-action-drop{position:relative;z-index:1;min-height:64px}.cd-actions span{display:none}.cd-box-clip.cd-favorited{background:radial-gradient(circle closest-side,#166534 40%,transparent 45%),repeating-conic-gradient(from 10deg,#4ade80 0deg 16deg,#15803d 18deg 34deg,#bbf7d0 36deg 45deg)}.cd-box-clip.cd-favorited:after{background:#22c55e}.cd-box{overflow:visible;max-height:calc(100dvh - 108px - env(safe-area-inset-top,0px))}.cd-box-grid{border-radius:inherit}.cd-actions{position:absolute;bottom:calc(100% + 12px);left:0;width:100%;padding:0 14px}.player-search-results,#artistSearchResults{overscroll-behavior:contain;overflow-anchor:none}@media(max-width:700px){.player-shell>.now-panel.now-search-open{overflow-y:hidden;overscroll-behavior:none}#nowSearchResults{max-height:min(420px,45vh);max-height:min(420px,45svh);overscroll-behavior:none}}#playerSearchResults .player-result{position:relative}#playerSearchResults .player-result[aria-busy=true]{cursor:progress}.search-added-feedback{position:absolute;inset:0;width:100%;height:100%;z-index:2;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:inherit;background:var(--surface);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);pointer-events:none;font-size:12px}.search-added-feedback svg{width:20px;height:20px;flex:none}.playlist-album-tracks .playlist-track-row.queue-inner-row,.queue-drag-ghost.queue-inner-row{background:var(--head-bg);grid-template-columns:24px minmax(0,1fr) auto;grid-template-rows:1fr;align-items:center;height:40px;min-height:40px;padding:0 12px;overflow:hidden}.playlist-album-tracks .playlist-track-row.queue-inner-row>.track-number,.queue-drag-ghost.queue-inner-row>.track-number{grid-column:1;grid-row:1;align-self:center}.playlist-album-tracks .playlist-track-row.queue-inner-row>.track-name,.queue-drag-ghost.queue-inner-row>.track-name{grid-column:2;grid-row:1;align-self:center;display:flex;align-items:center;min-width:0;overflow:hidden;white-space:nowrap}.playlist-album-tracks .playlist-track-row.queue-inner-row>.track-name>*,.queue-drag-ghost.queue-inner-row>.track-name>*{grid-column:auto;grid-row:auto;min-width:0;overflow:hidden}.playlist-album-tracks .playlist-track-row.queue-inner-row>.track-duration,.queue-drag-ghost.queue-inner-row>.track-duration{grid-column:3;grid-row:1;align-self:center}
