:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent:#1db954;--accent-contrast:#08090a;--accent-soft:#1db95429;--accent-glow:#1db9546b;--font-family:"Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--radius:12px;--bg:#000;--surface:#121212;--surface-2:#181818;--surface-3:#232323;--surface-4:#2a2a2a;--text:#fff;--text-dim:#b3b3b3;--text-muted:#8f8f8f;--border:#ffffff14;--shadow:0 8px 32px #0000008c;--row-h:56px;--gap:20px;--panel-w:340px;--sidebar-w:264px}[data-density=compact]{--row-h:44px;--gap:14px}*{box-sizing:border-box}html,body,#root{height:100dvh;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-family);-webkit-font-smoothing:antialiased;font-size:15px;overflow:hidden}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,h4,p{margin:0}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff2e padding-box content-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d padding-box content-box}.app{flex-direction:column;gap:8px;height:100%;padding:8px 8px 0;display:flex}.app__body{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);flex:1;gap:8px;min-height:0;display:grid}.app__body.has-panel{grid-template-columns:var(--sidebar-w) minmax(0, 1fr) var(--panel-w)}.app__main{background:var(--surface);border-radius:var(--radius);flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.app__main:before{content:"";background:linear-gradient(180deg, var(--accent-soft), transparent 78%);pointer-events:none;opacity:.85;height:380px;position:absolute;inset:0 0 auto}[data-background=solid] .app__main:before{display:none}.app__content{padding:0 var(--gap) 32px;flex:1;position:relative;overflow-y:auto}.page{flex-direction:column;gap:8px;padding-bottom:24px;display:flex}.page__greeting{padding:6px 0 12px}.page__greeting h1{letter-spacing:-.02em;margin-bottom:6px;font-size:clamp(1.7rem,3vw,2.4rem);font-weight:800}.page__footnote{align-items:center;gap:6px;padding-top:12px;display:flex}.section{margin-top:18px}.sidebar{border-radius:var(--radius);border:1px solid var(--border);background:#0a0a0a;flex-direction:column;gap:10px;min-height:0;padding:12px 10px;display:flex}.sidebar__brand{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:4px 8px 10px;display:flex}.brand-mark{background:var(--accent);width:32px;height:32px;color:var(--accent-contrast);box-shadow:0 0 22px var(--accent-glow);border-radius:50%;flex:none;place-items:center;display:grid}.brand-mark--lg{width:46px;height:46px}.brand-name{letter-spacing:-.02em;font-size:1.05rem;font-weight:800}.sidebar__nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--text-dim);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:14px;padding:10px 12px;font-size:.92rem;font-weight:600;transition:color .15s,background .15s;display:flex}.nav-item:hover{color:var(--text);background:#ffffff0f}.nav-item.is-active{color:var(--text);background:#ffffff17}.sidebar__section{border-top:1px solid var(--border);flex-direction:column;flex:1;min-height:0;padding-top:10px;display:flex}.sidebar__section-head{color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:0 8px 6px;font-size:.8rem;font-weight:700;display:flex}.sidebar__scroll{flex-direction:column;flex:1;gap:2px;padding-right:2px;display:flex;overflow-y:auto}.shelf-item{color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;min-width:0;padding:6px 8px;display:flex}.shelf-item:hover{background:#ffffff12}.shelf-item.is-active{background:#ffffff1a}.shelf-item__cover{background-position:50%;background-size:cover;background-color:var(--surface-3);width:40px;height:40px;color:var(--text-dim);border-radius:6px;flex:none;place-items:center;display:grid}.shelf-item__cover--folder{background:var(--surface-3)}.shelf-item__text{flex-direction:column;gap:2px;min-width:0;display:flex}.shelf-item__text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.shelf-item__text small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.sidebar__hint{color:var(--text-muted);padding:8px;font-size:.78rem;line-height:1.4}.sidebar__footer{border-top:1px solid var(--border);padding-top:10px}.radio-button{background:var(--accent-soft);width:100%;color:var(--text);border:0;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:.86rem;font-weight:600;display:flex}.radio-button:hover{background:var(--accent-glow)}.pulse{animation:1.8s ease-in-out infinite pulse}.topbar{z-index:20;padding:14px var(--gap);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#121212db,#12121259 70%,#0000);justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar__left,.topbar__right{align-items:center;gap:10px;min-width:0;display:flex}.topbar__right{justify-content:flex-end}.topbar__back{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}@media (width<=1100px){.topbar__back span{display:none}}.search-field{width:min(420px,40vw);height:42px;color:var(--text-dim);background:#ffffff1a;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s,background .15s;display:flex}.search-field:focus-within{color:var(--text);background:#ffffff24;border-color:#ffffff38}.search-field input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1}.search-field input::placeholder{color:var(--text-muted)}.search-field__clear{color:var(--text-muted);background:0 0;border:0;padding:0 2px;font-size:1.1rem;line-height:1}.search-field__mic{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;margin-right:-4px;transition:color .15s,background .15s;display:inline-flex}.search-field__mic:hover{color:var(--accent);background:#ffffff14}.recognize-overlay{z-index:90;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:radial-gradient(circle at 50% 32%,#1db95429,#0000 55%),#080808f0;justify-content:center;align-items:center;padding:24px;animation:.18s recognize-fade;display:flex;position:fixed;inset:0}.recognize-overlay__close{width:44px;height:44px;color:var(--text);cursor:pointer;background:#ffffff14;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:18px;right:18px}.recognize-overlay__close:hover{background:#ffffff29}.recognize-overlay__stage{text-align:center;flex-direction:column;align-items:center;gap:8px;max-width:520px;display:flex}.recognize-logo{aspect-ratio:1;width:min(38vw,260px);transform:scale(calc(1 + var(--level,0) * .1));transition:transform 80ms linear;position:relative}.recognize-logo img{z-index:1;object-fit:contain;width:100%;height:100%;filter:drop-shadow(0 0 calc(8px + var(--level,0) * 26px) #1db95473);animation:14s linear infinite recognize-spin;position:relative}.recognize-logo.is-found img{animation:none}.recognize-logo__glow{opacity:calc(.18 + var(--level,0) * .75);filter:blur(14px);background:radial-gradient(circle,#1db9548c,#0000 65%);border-radius:50%;position:absolute;inset:-6%}.recognize-overlay__title{align-items:center;gap:8px;margin:18px 0 0;font-size:1.5rem;display:inline-flex}.recognize-overlay__hint{color:var(--text-muted);margin:0;font-size:.9rem}.recognize-result{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;flex-direction:column;gap:2px;margin-top:14px;padding:12px 20px;display:flex}.recognize-result strong{font-size:1.1rem}.recognize-result span{color:var(--text-muted);font-size:.85rem}.recognize-overlay__actions{gap:10px;margin-top:18px;display:flex}@keyframes recognize-spin{to{transform:rotate(360deg)}}@keyframes recognize-fade{0%{opacity:0}to{opacity:1}}@media (width<=760px){.recognize-logo{width:min(58vw,220px)}}.user-menu{position:relative}.user-chip{color:var(--text);background:#00000073;border:0;border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;display:flex}.user-chip:hover{background:#000000a6}.user-chip__avatar{background:var(--accent);width:30px;height:30px;color:var(--accent-contrast);border-radius:50%;place-items:center;font-size:.78rem;font-weight:700;display:grid}.user-chip__name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.82rem;font-weight:600;overflow:hidden}.user-menu__panel{border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);z-index:40;background:#1f1f1f;border-radius:10px;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.menu-item{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:.86rem;display:flex}.menu-item:hover{background:#ffffff17}.menu-separator{background:var(--border);height:1px;margin:4px 6px}.scan-chip{color:var(--text-dim);background:#00000073;border-radius:999px;align-items:center;gap:8px;max-width:220px;padding:6px 12px;font-size:.76rem;display:flex}.scan-chip--paused{color:#fbbf24}.scan-chip__bar{background:#ffffff2e;border-radius:999px;width:56px;height:3px;overflow:hidden}.scan-chip__bar div{background:var(--accent);height:100%;transition:width .4s}.section-header{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px;display:flex}.section-header h2{letter-spacing:-.01em;font-size:1.3rem;font-weight:800}.section-header p{color:var(--text-muted);margin-top:3px;font-size:.8rem}.card-row{scroll-snap-type:x proximity;grid-auto-columns:172px;grid-auto-flow:column;gap:16px;padding:2px 2px 10px;display:grid;overflow-x:auto}.card-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:16px;display:grid}.media-card{border-radius:var(--radius);background:var(--surface-2);cursor:pointer;min-width:0;padding:12px;transition:background .2s,transform .2s;position:relative}.media-card:hover{background:var(--surface-3)}.media-card__art{margin-bottom:12px;position:relative}.media-card__play{background:var(--accent);width:44px;height:44px;color:var(--accent-contrast);opacity:0;border:0;border-radius:50%;place-items:center;transition:opacity .2s,transform .2s;display:grid;position:absolute;bottom:8px;right:8px;transform:translateY(8px);box-shadow:0 8px 18px #00000073}.media-card:hover .media-card__play{opacity:1;transform:translateY(0)}.media-card h3{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.media-card p{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.78rem;overflow:hidden}.cover{aspect-ratio:1;background-position:50%;background-size:cover;border-radius:6px;flex:none;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.cover__initials{letter-spacing:.02em;color:#ffffff80;font-size:1.1rem;font-weight:800}.cover__img{object-fit:cover;border-radius:inherit;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.cover--circle{border-radius:50%}.cover--hero{width:232px;height:232px;box-shadow:var(--shadow);border-radius:10px}.cover--thumb{width:40px;height:40px}.cover--player{width:56px;height:56px}.cover--quick{border-radius:6px 0 0 6px;width:56px;height:56px}.cover--queue{width:40px;height:40px}.quick-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-bottom:18px;display:grid}.quick-tile{height:62px;color:var(--text);text-align:left;background:#ffffff17;border:0;border-radius:8px;align-items:center;gap:12px;padding:0;transition:background .18s;display:flex;position:relative;overflow:hidden}.quick-tile:hover{background:#ffffff29}.quick-tile__title{white-space:nowrap;text-overflow:ellipsis;padding-right:52px;font-size:.9rem;font-weight:700;overflow:hidden}.quick-tile__play{background:var(--accent);width:34px;height:34px;color:var(--accent-contrast);opacity:0;border-radius:50%;place-items:center;transition:opacity .18s,transform .18s;display:grid;position:absolute;right:12px;transform:translateY(4px)}.quick-tile:hover .quick-tile__play{opacity:1;transform:translateY(0)}.quick-tile--action{background:0 0;border:1px dashed #fff3}.quick-tile__icon{background:var(--surface-3);width:56px;height:56px;color:var(--accent);border-radius:6px 0 0 6px;place-items:center;display:grid}.radio-card{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(120deg, var(--accent-soft), #ffffff08);width:100%;color:var(--text);text-align:left;align-items:center;gap:16px;padding:16px 18px;display:flex}.radio-card:hover{border-color:var(--accent-glow)}.radio-card__icon{background:var(--accent);width:52px;height:52px;color:var(--accent-contrast);border-radius:50%;place-items:center;display:grid}.radio-card span strong{font-size:.98rem;display:block}.radio-card span small{color:var(--text-dim);margin-top:3px;font-size:.8rem;display:block}.radio-card__go{color:var(--accent);margin-left:auto}.track-list{flex-direction:column;display:flex}.track-row{height:var(--row-h);color:var(--text-dim);border-radius:6px;grid-template-columns:30px minmax(0,3fr) minmax(0,2fr) 116px 56px;align-items:center;gap:12px;padding:0 10px;display:grid}.track-row.without-album{grid-template-columns:30px minmax(0,1fr) 116px 56px}.track-row--header{border-bottom:1px solid var(--border);letter-spacing:.08em;text-transform:uppercase;height:30px;color:var(--text-muted);border-radius:0;margin-bottom:6px;font-size:.7rem}.track-row:hover{color:var(--text);background:#ffffff12}.track-row.is-current .track-row__title,.track-row.is-current .track-row__number{color:var(--accent)}.track-row__index{font-variant-numeric:tabular-nums;place-items:center;font-size:.85rem;display:grid;position:relative}.track-row__play{color:var(--text);opacity:0;background:0 0;border:0;place-items:center;transition:opacity .12s;display:grid;position:absolute;inset:0}.track-row:hover .track-row__play,.track-row.is-current .track-row__play{opacity:1}.track-row:hover .track-row__number,.track-row.is-current .track-row__number{opacity:0}.track-row__main{cursor:pointer;align-items:center;gap:12px;min-width:0;display:flex}.track-row__text{flex-direction:column;gap:2px;min-width:0;display:flex}.track-row__title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;font-size:.9rem;display:flex;overflow:hidden}.track-row__artist{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.track-row__similar-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:2px;display:flex}.track-row__similar{max-width:100%;color:var(--accent);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;opacity:.85;background:0 0;border:0;align-self:flex-start;margin-top:2px;padding:0;font-size:.74rem;overflow:hidden}.track-row__similar:hover{opacity:1;text-decoration:underline}.track-row__album{white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.track-row__album-more{color:var(--text-dim);font-size:.72rem}.track-row__actions{opacity:0;justify-content:flex-end;align-items:center;gap:2px;transition:opacity .12s;display:flex}.track-row:hover .track-row__actions,.track-row.is-current .track-row__actions{opacity:1}.track-row__duration{text-align:right;font-variant-numeric:tabular-nums;font-size:.8rem}.tag{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;padding:2px 7px;font-size:.66rem;font-weight:700;display:inline-flex}.tag--warn{color:#fbbf24;background:#fbbf2429}.tag--muted{color:var(--text-muted);background:#ffffff14}.track-row.is-missing{opacity:.55}.track-row.is-missing:hover{opacity:.8}.track-row.is-missing .track-row__main{cursor:default}.ghost-button--sm{padding:4px 10px;font-size:.72rem}.tracklist-footnote{color:var(--text-muted);padding:12px;font-size:.78rem}.equalizer{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.equalizer i{background:var(--accent);border-radius:2px;width:3px;animation:.9s ease-in-out infinite eq}.equalizer i:first-child{height:60%}.equalizer i:nth-child(2){height:100%;animation-delay:.18s}.equalizer i:nth-child(3){height:40%;animation-delay:.36s}.detail-head{align-items:flex-end;gap:24px;min-width:0;padding:24px 0 20px;display:flex}.detail-head__info{flex-direction:column;gap:4px;min-width:0;display:flex}.detail-head__kind{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:.72rem;font-weight:700}.detail-head h1{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(1.8rem,4vw,3.2rem);font-weight:800;line-height:1.05}.detail-head__meta{color:var(--text-dim);font-size:.84rem}.detail-head__desc{color:var(--text-muted);overflow-wrap:anywhere;font-size:.82rem}.detail-head__actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.play-fab{background:var(--accent);width:52px;height:52px;color:var(--accent-contrast);box-shadow:0 6px 22px var(--accent-glow);border:0;border-radius:50%;place-items:center;transition:transform .15s;display:grid}.play-fab:hover:not(:disabled){transform:scale(1.06)}.play-fab:disabled{opacity:.45;cursor:not-allowed}.player{border-top:1px solid var(--border);background:#000;flex:none;grid-template-columns:minmax(200px,30%) minmax(0,1fr) minmax(200px,30%);align-items:center;gap:16px;height:90px;padding:0 16px;display:grid}.player__track{align-items:center;gap:10px;min-width:0;display:flex}.player__meta{flex-direction:column;min-width:0;margin-right:auto;display:flex}.player__title{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;padding:0;font-size:.86rem;font-weight:600;overflow:hidden}.player__title:hover{text-decoration:underline}.player__artist{text-align:left;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;padding:0;font-size:.75rem;overflow:hidden}.player__artist:hover{color:var(--text-dim);text-decoration:underline}.player__idle{color:var(--text-muted);font-size:.82rem}.player__center{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.player__controls{align-items:center;gap:10px;display:flex}.player__play{color:#000;background:#fff;border:0;border-radius:50%;place-items:center;width:42px;height:42px;transition:transform .12s;display:grid}.player__play:hover{transform:scale(1.06)}.player__progress{align-items:center;gap:10px;width:100%;display:flex}.player__time{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;min-width:34px;font-size:.7rem}.player__right{justify-content:flex-end;align-items:center;gap:4px;display:flex}.range{appearance:none;background:linear-gradient(to right, var(--text) 0%, var(--text) var(--progress,0%), #ffffff38 var(--progress,0%), #ffffff38 100%);cursor:pointer;border-radius:999px;outline:none;width:96px;height:4px}.range--progress{flex:1;width:auto}.range::-webkit-slider-thumb{appearance:none;opacity:0;background:#fff;border:0;border-radius:50%;width:12px;height:12px;transition:opacity .12s}.range:hover::-webkit-slider-thumb{opacity:1}.range:focus::-webkit-slider-thumb{opacity:1}.range::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:12px;height:12px}.right-panel{border:1px solid var(--border);border-radius:var(--radius);background:#0f0f0f;flex-direction:column;min-height:0;padding:14px;display:flex;overflow:hidden}.right-panel__head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.right-panel__head h2{font-size:1rem;font-weight:700}.right-panel__context{color:var(--text-muted);margin-bottom:10px;font-size:.76rem}.queue-list{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.queue-item{border-radius:6px;align-items:center;gap:4px;display:flex}.queue-item:hover{background:#ffffff0f}.queue-item.is-current .queue-item__text strong{color:var(--accent)}.queue-item__main{color:var(--text);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.queue-item__text{flex-direction:column;gap:2px;min-width:0;display:flex}.queue-item__text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;font-weight:600;overflow:hidden}.queue-item__text small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.queue-item__time{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.72rem}.lyrics{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.lyrics__lines{flex-direction:column;flex:1;gap:12px;padding-right:6px;display:flex;overflow-y:auto}.lyrics__line{color:#ffffff61;cursor:pointer;font-size:1rem;font-weight:600;line-height:1.35;transition:color .2s,transform .2s}.lyrics__line:hover{color:#ffffffb3}.lyrics__line.is-active{color:var(--text);transform:scale(1.01)}.lyrics__plain{white-space:pre-wrap;color:var(--text-dim);flex:1;font-family:inherit;font-size:.9rem;line-height:1.6;overflow-y:auto}.lyrics__source{color:var(--text-muted);margin-top:10px;font-size:.7rem}.primary-button{background:var(--accent);color:var(--accent-contrast);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.86rem;font-weight:700;transition:transform .12s,filter .12s;display:inline-flex}.primary-button:hover:not(:disabled){filter:brightness(1.06);transform:scale(1.02)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.primary-button--full{width:100%}.ghost-button{border:1px solid var(--border);color:var(--text);background:#ffffff05;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.ghost-button:hover:not(:disabled){background:#ffffff14;border-color:#fff3}.ghost-button:disabled{opacity:.45;cursor:not-allowed}.ghost-button--danger{color:#f87171;border-color:#f871714d}.ghost-button--danger:hover:not(:disabled){background:#f871711f}.ghost-button--full{width:100%;margin-top:10px}.icon-button{width:32px;height:32px;color:var(--text-dim);background:0 0;border:0;border-radius:50%;place-items:center;transition:color .12s,background .12s;display:grid}.icon-button:hover{color:var(--text);background:#ffffff1a}.icon-button.is-active{color:var(--accent)}.icon-button--round{background:#00000073}.icon-button--tiny{width:26px;height:26px}.link-button{color:var(--text);font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:.78rem;font-weight:600;display:flex}.field>span .badge{flex-shrink:0}.field>input,.field>select,.field__row>input,.field__row>select{border:1px solid var(--border);height:38px;color:var(--text);background:#ffffff0f;border-radius:8px;outline:none;width:100%;min-width:0;padding:0 12px}.field input[type=checkbox]{flex-shrink:0;width:auto;height:auto;padding:0}.field input:focus,.field select:focus{border-color:var(--accent-glow);background:#ffffff17}.field__row{align-items:center;gap:8px;display:flex}.field__link{color:inherit;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.field__link:hover{color:var(--accent)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:12px 0;display:grid}.form-grid--inline{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.channel-block{border:1px solid var(--border);background:#ffffff05;border-radius:12px;flex-direction:column;gap:10px;margin-top:14px;padding:12px 14px;display:flex}.channel-block__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.channel-block__head h4{margin:0 0 4px;font-size:.9rem}.channel-block__head p{max-width:620px;color:var(--text-muted);margin:0;font-size:.78rem}.channel-block .field--prefix{min-width:170px;max-width:220px}.channel-list{flex-direction:column;gap:6px;display:flex}.channel-row{background:#ffffff08;border-radius:8px;grid-template-columns:12px minmax(140px,1fr) auto auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.channel-dot{background:#ffffff2e;border-radius:999px;width:10px;height:10px}.channel-dot.is-ok{background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.channel-dot.is-bad{background:#e5484d;box-shadow:0 0 8px #e5484d80}.channel-dot--inline{vertical-align:middle;margin-left:8px;display:inline-block}.channel-row__name{min-width:0;color:var(--text);background:0 0;border:0;border-bottom:1px dashed #0000;padding:2px 4px;font-size:.84rem;font-weight:600}.channel-row__name:focus{border-bottom-color:var(--border);outline:none}.channel-row__status{white-space:nowrap;font-size:.72rem}.channel-row__status.is-ok{color:var(--accent)}.channel-row__status.is-bad{color:#ff7b7f}.channel-add{gap:8px;display:flex}.channel-add input{flex:1;min-width:0}@media (width<=900px){.channel-row{grid-template-columns:12px minmax(0,1fr) auto}.channel-row__status{display:none}}.toggle{border:1px solid var(--border);cursor:pointer;background:#ffffff08;border-radius:8px;align-items:flex-start;gap:10px;margin:8px 0;padding:10px 12px;display:flex}.toggle input{accent-color:var(--accent);margin-top:3px}.toggle span{flex-direction:column;gap:2px;display:flex}.toggle strong{font-size:.84rem;font-weight:600}.toggle small{color:var(--text-muted);font-size:.76rem}.toggles{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px;display:grid}.switch-list{flex-direction:column;gap:8px;display:flex}.switch-row{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;min-height:52px;padding:8px 14px;transition:background .15s,border-color .15s;display:flex}.switch-row:hover{background:#ffffff0f}.switch-row.is-on{background:#1db95414;border-color:#1db95473}.switch-row__label{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.switch-row--text{align-items:flex-start}.switch-row__text{flex-direction:column;gap:2px;min-width:0;display:flex}.switch-row__text strong{font-size:.9rem;font-weight:600}.switch-row__text small{color:var(--text-muted);font-size:.78rem}.switch{flex:none;width:54px;height:32px;position:relative}.switch input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch__track{background:#ffffff2e;border-radius:999px;transition:background .18s;position:absolute;inset:0}.switch__knob{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .18s;position:absolute;top:4px;left:4px;box-shadow:0 1px 3px #0006}.switch.is-on .switch__track{background:var(--accent)}.switch.is-on .switch__knob{transform:translate(22px)}.switch input:focus-visible+.switch__track{outline:2px solid var(--accent);outline-offset:2px}.badge{color:var(--text-dim);white-space:nowrap;background:#ffffff1a;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.68rem;font-weight:700;display:inline-flex}.badge--accent{background:var(--accent-soft);color:var(--accent)}.badge--warn{color:#fbbf24;background:#fbbf2429}.segmented{border:1px solid var(--border);background:#ffffff0f;border-radius:999px;gap:2px;margin:6px 0 4px;padding:3px;display:inline-flex}.segmented button{color:var(--text-dim);background:0 0;border:0;border-radius:999px;padding:7px 16px;font-size:.8rem;font-weight:600}.segmented button.is-active{background:var(--accent);color:var(--accent-contrast)}.swatches{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 16px;display:flex}.swatch{color:#08090a;border:2px solid #0000;border-radius:50%;place-items:center;width:38px;height:38px;padding:0;display:grid}.swatch.is-active{border-color:#fff;box-shadow:0 0 0 3px #ffffff2e}.swatch--custom{cursor:pointer;background:conic-gradient(#f43f5e,#f59e0b,#22c55e,#3b82f6,#a855f7,#f43f5e);position:relative;overflow:hidden}.swatch--custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.range-row{align-items:center;gap:14px;margin:8px 0 16px;display:flex}.range-row .range{width:220px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 14px;padding-bottom:10px;display:flex}.tab{color:var(--text-dim);background:#ffffff0f;border:0;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.tab:hover{color:var(--text);background:#ffffff1f}.tab.is-active{background:var(--accent);color:var(--accent-contrast)}.tabs__spacer{flex:1}.panel{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);margin-bottom:16px;padding:18px}.panel h3{align-items:center;gap:8px;margin:16px 0 8px;font-size:.95rem;font-weight:700;display:flex}.panel h3:first-child{margin-top:0}.panel__actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.kv-list{flex-direction:column;gap:2px;display:flex}.kv{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:16px;padding:9px 0;font-size:.84rem;display:flex}.kv:last-child{border-bottom:0}.kv span{color:var(--text-muted)}.kv strong{text-align:right;overflow-wrap:anywhere;font-weight:600}.kv-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px;display:grid}.kv-grid .kv{border:1px solid var(--border);background:#ffffff08;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px}.kv-grid .kv strong{text-align:left;font-size:1.25rem}.capabilities{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.capability{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:.74rem;font-weight:600;display:inline-flex}.capability.is-on{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-glow)}.capability.is-off{color:var(--text-muted)}.capability .dot{background:var(--text-muted);border-radius:50%;width:6px;height:6px}.scan-status{flex-direction:column;gap:10px;display:flex}.scan-status__bar{background:#ffffff1a;border-radius:999px;height:6px;overflow:hidden}.scan-status__bar div{background:var(--accent);height:100%;transition:width .4s}.scan-status__bar div.is-idle{background:#ffffff24}.scan-status__meta{color:var(--text-dim);flex-direction:column;gap:4px;font-size:.8rem;display:flex}.source-list{flex-direction:column;gap:2px;display:flex}.source-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 8px;display:flex}.source-row__main{flex-direction:column;flex:1;gap:2px;min-width:200px;display:flex}.source-row__main strong{font-size:.88rem}.source-row__main small{color:var(--text-muted);overflow-wrap:anywhere;font-size:.74rem}.source-row__stats{flex-wrap:wrap;gap:6px;display:flex}.source-row__actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.source-row__actions select{border:1px solid var(--border);height:32px;color:var(--text);background:#ffffff0f;border-radius:8px;padding:0 8px}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000ad;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--border);width:min(520px,100%);box-shadow:var(--shadow);background:#1c1c1c;border-radius:14px;overflow:hidden}.modal--wide{width:min(680px,100%)}.fs-roots{flex-wrap:wrap;gap:6px;display:flex}.fs-path{border:1px solid var(--border);background:#ffffff0d;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.fs-path code{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.fs-list{background:#00000038;border-radius:8px;flex-direction:column;gap:2px;max-height:320px;padding:4px;display:flex;overflow-y:auto}.fs-entry{color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:.85rem;display:flex}.fs-entry:hover{background:#ffffff17}.fs-entry svg{color:var(--accent);flex:none}.fs-loading{color:var(--text-dim);align-items:center;gap:8px;padding:10px;font-size:.8rem;display:flex}.modal__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.modal__head h2{font-size:1rem}.modal__body{flex-direction:column;gap:14px;padding:18px;display:flex}.modal__actions{justify-content:flex-end;gap:10px;display:flex}.modal__divider{background:var(--border);height:1px}.pick-list{flex-direction:column;gap:2px;max-height:260px;display:flex;overflow-y:auto}.pick-item{color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:10px;font-size:.86rem;display:flex}.pick-item:hover{background:#ffffff14}.pick-item small{color:var(--text-muted);margin-left:auto}.toasts{z-index:70;flex-direction:column;gap:8px;max-width:340px;display:flex;position:fixed;bottom:106px;right:20px}.toast{border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;background:#262626;border-radius:10px;padding:12px 16px;font-size:.84rem;animation:.2s slide-in}.toast--success{border-color:var(--accent-glow);background:#14301f}.toast--error{background:#331617;border-color:#f8717166}.notice{border:1px solid var(--border);color:var(--text-dim);background:#ffffff0d;border-radius:10px;align-items:center;gap:8px;margin:8px 0 14px;padding:10px 14px;font-size:.8rem;display:flex}.notice--warn{color:#fde68a;background:#fbbf241a;border-color:#fbbf2452}.tag--ok{color:#86efac;background:#22c55e29}.request-chip{color:var(--text-dim);white-space:nowrap;align-items:center;gap:6px;font-size:.72rem;display:inline-flex}.request-list{flex-direction:column;gap:2px;display:flex}.request-row{border-radius:10px;grid-template-columns:minmax(180px,1.4fr) minmax(140px,1fr) minmax(200px,1.4fr) 110px 84px;align-items:center;gap:12px;padding:10px 12px;font-size:.82rem;display:grid}.request-row--head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);border-radius:0;font-size:.72rem}.request-row:not(.request-row--head):hover{background:#ffffff0a}.request-row small{color:var(--text-muted);font-size:.72rem;display:block}.request-row__track strong{font-weight:600;display:block}.request-row__state{flex-direction:column;gap:5px;display:flex}.request-state{color:var(--text-dim);align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.request-state.is-done{color:#86efac}.request-state.is-failed,.request-row__error{color:#fca5a5}.progress{background:#ffffff1a;border-radius:999px;height:4px;display:block;overflow:hidden}.progress>span{background:var(--accent,#4ade80);border-radius:999px;height:100%;transition:width .4s;display:block}.request-row__actions{justify-content:flex-end;gap:4px;display:flex}.lyrics__empty{flex-direction:column;align-items:center;gap:10px;display:flex}.lyrics__toolbar{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:8px 10px 10px;display:flex}.lyrics__offset{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:.7rem;display:flex}.lyrics__offset .icon-button--tiny{min-width:0;padding:2px 6px;font-size:.68rem}.lyrics__offset-value{text-align:center;font-variant-numeric:tabular-nums;min-width:42px;color:var(--text)}.lyrics__actions{align-items:center;gap:6px;display:flex}.lyrics__actions .ghost-button{flex:auto}.lyrics__lines.is-split .lyrics__row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lyrics__row{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;padding:2px 0;display:grid}.lyrics__line--translation{color:var(--text-muted);cursor:default;font-weight:500}.lyrics__row.is-active .lyrics__line{color:var(--text);transform:none}.lyrics__row:not(.is-active) .lyrics__line{color:#ffffff61}.lyrics__row.is-active .lyrics__line--translation{color:#ffffffd1}.lyrics__lang{border:1px solid var(--border);height:26px;color:var(--text);background:#ffffff0f;border-radius:6px;margin-left:auto;padding:0 8px;font-size:.72rem}.lyrics__lang option{color:var(--text);background:#121212}.ghost-button.is-active{border-color:var(--accent);color:var(--accent)}body.lyrics-wide .app__body.has-panel{grid-template-columns:var(--sidebar-w) minmax(0, 1fr) min(52vw, 860px)}@media (width<=1280px){body.lyrics-wide .app__body.has-panel{grid-template-columns:var(--sidebar-w) minmax(0, 1fr) min(46vw, 700px)}}@media (width<=760px){.lyrics__lines.is-split .lyrics__row{grid-template-columns:minmax(0,1fr);gap:2px}body.lyrics-wide .app__body.has-panel{grid-template-columns:minmax(0,1fr)}.player{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.toasts{bottom:calc(110px + env(safe-area-inset-bottom,0px))}.scan-chip{display:none}}.source-link{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:.74rem;line-height:1.3;display:inline-flex}.source-link:hover{color:var(--text);text-decoration:underline}.source-link svg{opacity:.5;flex-shrink:0}.source-link:hover svg{opacity:1}.panel__hint{color:var(--text-muted);margin:8px 0 0;font-size:.76rem;line-height:1.4}.checkbox-row{color:var(--text-dim);align-items:flex-start;gap:8px;font-size:.78rem;line-height:1.4;display:flex}.checkbox-row input{flex-shrink:0;margin-top:2px}.bulk-actions{flex-wrap:wrap;gap:8px;margin:4px 0 12px;display:flex}.ghost-button--danger{color:#fca5a5}.ghost-button--danger:hover{background:#f8717114;border-color:#f8717180}.source-link strong{font-weight:700}.source-link:hover strong{text-decoration:underline}.empty-state{text-align:center;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 24px;display:flex}.empty-state__icon{width:64px;height:64px;color:var(--text-muted);background:#ffffff0f;border-radius:50%;place-items:center;display:grid}.empty-state h3{color:var(--text);font-size:1.05rem}.empty-state p{max-width:44ch;font-size:.84rem;line-height:1.5}.spinner{color:var(--text-dim);align-items:center;gap:8px;padding:12px 0;font-size:.84rem;display:inline-flex}.spin{animation:1s linear infinite spin}.skeleton-rows{flex-direction:column;gap:10px;padding:16px 0;display:flex}.skeleton-row{align-items:center;gap:12px;display:flex}.skeleton{background:linear-gradient(90deg,#ffffff0f,#ffffff1f,#ffffff0f) 0 0/200% 100%;border-radius:6px;animation:1.4s linear infinite shimmer}.skeleton--square{width:44px;height:44px}.skeleton--line{flex:1;max-width:420px;height:12px}.skeleton--short{width:90px;height:12px}.muted{color:var(--text-muted);font-size:.82rem}.text-danger{color:#f87171;font-size:.78rem}.form-error{color:#f87171;font-size:.8rem}.hero-empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:64px 24px;display:flex}.hero-empty__art{background:var(--accent-soft);width:120px;height:120px;color:var(--accent);box-shadow:0 0 60px var(--accent-glow);border-radius:50%;place-items:center;display:grid}.hero-empty h1{letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.2rem)}.hero-empty p{max-width:52ch;color:var(--text-dim);font-size:.9rem;line-height:1.6}.hero-empty__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;display:flex}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.splash,.login{background:radial-gradient(circle at 50% 20%,#1b1b1b,#000 70%);place-items:center;height:100%;display:grid;position:relative;overflow:hidden}.splash__logo{letter-spacing:-.02em;color:var(--text);font-size:1.4rem;font-weight:800}.splash__bar{background:#ffffff1f;border-radius:999px;width:180px;height:3px;position:absolute;bottom:20%;overflow:hidden}.splash__bar span{background:var(--accent);width:40%;height:100%;animation:1.2s ease-in-out infinite indeterminate;display:block}.login__glow{background:radial-gradient(circle, var(--accent-glow), transparent 62%);filter:blur(40px);opacity:.5;pointer-events:none;border-radius:50%;width:620px;height:620px;position:absolute;top:-220px}.login__card{border:1px solid var(--border);width:min(420px,100% - 32px);box-shadow:var(--shadow);background:#181818eb;border-radius:16px;flex-direction:column;gap:14px;padding:30px;display:flex;position:relative}.login__brand{align-items:center;gap:12px;margin-bottom:6px;display:flex}.login__brand h1{letter-spacing:-.02em;font-size:1.25rem}.login__brand p{color:var(--text-muted);font-size:.78rem}.login__hint{color:var(--text-muted);font-size:.72rem;line-height:1.5}.login__hint code{color:var(--text-dim);font-size:.7rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes eq{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes slide-in{0%{opacity:0;transform:translateY(8px)}}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media (width<=1280px){.app__body.has-panel{grid-template-columns:var(--sidebar-w) minmax(0, 1fr)}.right-panel{z-index:70;border-radius:0;width:min(460px,92vw);position:fixed;top:0;bottom:0;right:0;box-shadow:-24px 0 60px #0000008c}body.lyrics-wide .right-panel{width:min(760px,94vw)}}@media (width<=1100px){:root{--sidebar-w:200px}.app{gap:8px;padding:8px}.track-row{grid-template-columns:26px minmax(0,1fr) 92px 44px}.track-row__album{display:none}.player{grid-template-columns:minmax(140px,34%) minmax(0,1fr) auto}.player__right .range--volume{display:none}.detail-head__actions{flex-wrap:wrap}.card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (width<=980px){:root{--sidebar-w:220px}.player{grid-template-columns:minmax(0,1fr) auto;height:78px}.player__right{display:none}.track-row,.track-row.without-album{grid-template-columns:26px minmax(0,1fr) 96px 48px}.track-row__album{display:none}}.search-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0 4px;display:flex}.discover-toggle{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:#ffffff0a;border-radius:999px;align-items:center;gap:7px;padding:7px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.discover-toggle small{color:var(--text-muted);font-size:.7rem;font-weight:500}.discover-toggle.is-on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text)}.discover-toggle.is-on small{color:var(--accent)}.search-toolbar__hint{color:var(--text-muted);font-size:.78rem}.section--outside{border-top:1px solid var(--border);padding-top:14px}.discover-list{flex-direction:column;gap:4px;display:flex}.discover-list__row{border-radius:8px;grid-template-columns:minmax(0,1fr) 52px auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.discover-list__row:hover{background:#ffffff0a}.discover-list__text{flex-direction:column;gap:2px;min-width:0;display:flex}.discover-list__text strong{white-space:nowrap;text-overflow:ellipsis;font-size:.86rem;font-weight:600;overflow:hidden}.discover-list__text small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.76rem;overflow:hidden}.discover-list__time{color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right;font-size:.76rem}.discover-list__badge{color:var(--text-muted);white-space:nowrap;background:#ffffff0f;border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:600}.discover-list .ghost-button{align-items:center;gap:5px;display:inline-flex}@media (width<=760px){.discover-list__row{grid-template-columns:minmax(0,1fr) auto}.discover-list__time{display:none}}.player__station{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.7rem;font-weight:600;display:inline-flex}.player__station span{color:var(--text-muted);font-weight:500}.station-hero{border:1px solid var(--border);background:linear-gradient(120deg, var(--accent-soft), transparent 70%), var(--surface-2);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin:12px 0;padding:16px 18px;display:flex}.station-hero__text{flex-direction:column;gap:4px;display:flex}.station-hero__text strong{font-size:1rem}.station-hero__text small{color:var(--text-muted);font-size:.78rem}.station-create{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.station-create label{color:var(--text-muted);flex-direction:column;gap:5px;min-width:240px;font-size:.76rem;display:flex}.station-create select{border:1px solid var(--border);background:var(--surface-3);color:var(--text);border-radius:8px;padding:8px 10px;font-size:.84rem}.station-list{flex-direction:column;gap:8px;display:flex}.station-card{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.station-card.is-active{border-color:var(--accent);background:var(--accent-soft)}.station-card__main{flex-direction:column;gap:3px;min-width:0;display:flex}.station-card__title{color:var(--accent);align-items:center;gap:8px;display:flex}.station-card__title strong{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.station-card__live{background:var(--accent);color:var(--accent-contrast);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:2px 8px;font-size:.64rem;font-weight:700}.station-card__main small{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.station-card__genres{color:var(--accent)!important;font-size:.72rem!important}.station-card__modes{border:1px solid var(--border);background:#ffffff08;border-radius:999px;padding:2px;display:inline-flex}.station-mode{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:600}.station-mode:hover{color:var(--text)}.station-mode.is-active{background:var(--accent);color:var(--accent-contrast)}.station-card__actions{align-items:center;gap:6px;display:flex}.station-overlay{z-index:60;background:radial-gradient(circle at 50% -10%, #1db95438, transparent 55%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:72px 24px 32px;display:flex;position:fixed;inset:0;overflow-y:auto}.station-overlay__bar{justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex;position:absolute;top:0;left:0;right:0}.station-overlay__badge{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;font-size:.78rem;font-weight:700;display:inline-flex}.station-overlay__bar-actions{align-items:center;gap:8px;display:flex}.station-overlay__art .cover--station{border-radius:16px;width:min(44vh,320px);height:min(44vh,320px);box-shadow:0 24px 60px #0000008c}.station-overlay__info{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.station-overlay__info h1{margin:0;font-size:clamp(1.4rem,4vw,2.3rem)}.station-overlay__info p{color:var(--text-dim);margin:0;font-size:1rem}.station-overlay__album{color:var(--text-muted);font-size:.8rem}.station-overlay__reason{color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;background:#ffffff14;border-radius:999px;margin-top:4px;padding:4px 12px;font-size:.72rem}.station-overlay__controls{align-items:center;gap:20px;display:flex}.station-overlay__thumb{border:1px solid var(--border);width:54px;height:54px;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:999px;place-items:center;display:grid}.station-overlay__thumb:hover{background:#ffffff1a}.station-overlay__thumb.is-up{border-color:var(--accent);color:var(--accent)}.station-overlay__play{background:var(--accent);width:72px;height:72px;color:var(--accent-contrast);cursor:pointer;border:0;border-radius:999px;place-items:center;display:grid}.station-overlay__lyrics{color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:.82rem;display:inline-flex}.station-overlay__lyrics:hover{color:var(--text)}@media (width<=760px){.station-overlay{padding-top:84px}.station-overlay__art .cover--station{width:min(52vw,220px);height:min(52vw,220px)}.station-card{grid-template-columns:minmax(0,1fr);gap:10px}.station-card__modes{justify-self:start}}.visualizer{width:100%;height:100%;display:block;position:absolute;inset:0}.visualizer--off{display:none}.viz-overlay{z-index:70;background:#000;position:fixed;inset:0;overflow:hidden}.viz-overlay__stage{position:absolute;inset:0}.viz-overlay__effect{z-index:1;position:absolute;inset:0}.viz-overlay__canvas{width:100%;height:100%}.viz-overlay__art{z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.viz-overlay__art .cover--viz{border-radius:16px;width:min(46vh,360px);height:min(46vh,360px);box-shadow:0 30px 80px #0009}.viz-overlay.is-blend .viz-overlay__effect{z-index:3;mix-blend-mode:overlay}.viz-overlay.is-blend .viz-overlay__art .cover--viz{opacity:.95}.viz-overlay__bar{z-index:4;background:linear-gradient(#00000080,#0000);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex;position:absolute;top:0;left:0;right:0}.viz-overlay__badge{text-overflow:ellipsis;white-space:nowrap;color:#ffffffeb;text-shadow:0 1px 6px #000c;max-width:60%;font-size:.8rem;font-weight:600;overflow:hidden}.viz-overlay__bar-actions{align-items:center;gap:8px;display:flex}.viz-overlay__controls{left:0;right:0;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:4;justify-content:center;align-items:center;gap:20px;display:flex;position:absolute}.viz-overlay__play{background:var(--accent);width:62px;height:62px;color:var(--accent-contrast);cursor:pointer;border:0;border-radius:999px;place-items:center;display:grid;box-shadow:0 10px 30px #00000073}.viz-overlay__idle{color:var(--text-muted);font-size:.9rem}.viz-overlay .icon-button{color:#ffffffe6}@media (width<=760px){.viz-overlay__art .cover--viz{width:min(58vw,240px);height:min(58vw,240px)}.viz-overlay__controls{gap:14px}.app{padding:0 0 env(safe-area-inset-bottom,0px);gap:0}.topbar{gap:16px}.topbar__right{gap:6px;margin-left:4px}.search-field{flex:auto;width:auto;min-width:0}.search-field__mic{margin-right:0}.app__body,.app__body.has-panel{grid-template-columns:minmax(0,1fr)}.app__main{border-radius:0}.detail-head{flex-direction:column;align-items:flex-start;gap:14px}.cover--hero{width:150px;height:150px}.search-field{width:100%}.player__progress{display:flex}.quick-grid{grid-template-columns:1fr}}.topbar__menu,.sidebar-backdrop{display:none}@media (width<=760px){.topbar__menu{display:inline-flex}.topbar__nav{display:none}.sidebar{z-index:60;border-radius:0;width:min(80vw,300px);transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-104%);box-shadow:0 0 40px #0000008c}.sidebar.is-open{transform:none}.sidebar-backdrop{z-index:55;opacity:0;pointer-events:none;background:#0000008c;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-backdrop.is-open{opacity:1;pointer-events:auto}.player{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);gap:6px;padding:8px 12px 10px}.player__track,.player__center{grid-column:1/-1}.player__right{display:none}.player__idle{text-align:center}.track-row,.track-row.without-album{grid-template-rows:auto auto;grid-template-columns:26px minmax(0,1fr) 44px;padding:8px 6px}.track-row__album{display:none}.track-row__index{grid-area:1/1/2/2}.track-row__main{grid-area:1/2/2/3;min-width:0}.track-row__duration{grid-area:1/3/2/4}.track-row__actions{opacity:1;scrollbar-width:none;grid-area:2/2/3/4;justify-content:flex-start;gap:2px;padding-top:2px;display:flex;overflow-x:auto}.track-row__actions::-webkit-scrollbar{display:none}.track-row__actions .icon-button{width:34px;height:34px}.track-row--header .track-row__actions{display:none}.detail-head__actions{flex-wrap:wrap}.detail-head__actions .ghost-button{flex:auto}.right-panel{z-index:70;border-radius:0;width:auto;max-width:none;padding-bottom:8px;position:fixed;inset:0}.request-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:6px}.request-row--head{display:none}.request-row__size{text-align:right}.request-row__actions{grid-column:1/-1;justify-content:flex-end}}.pub-list{flex-direction:column;gap:6px;margin:6px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.pub-list a{color:var(--accent)}.genre-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.genre-search{flex:1;min-width:220px}.genre-roots{flex-wrap:wrap;gap:8px;display:flex}.genre-chip{color:var(--text);cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:inline-flex}.genre-chip:hover{background:#ffffff1f}.genre-tree{flex-direction:column;gap:10px;display:flex}.genre-branch{flex-direction:column;gap:6px;display:flex}.genre-node{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-self:flex-start;align-items:center;gap:8px;padding:2px 0;font-size:14px;display:inline-flex}.genre-node:hover{color:var(--accent)}.genre-node--root{font-size:15px;font-weight:600}.genre-node__count{color:var(--muted);background:#ffffff12;border-radius:999px;padding:1px 7px;font-size:11px}.genre-children{border-left:1px solid #ffffff14;flex-wrap:wrap;gap:6px;margin-left:6px;padding-left:16px;display:flex}.genre-breadcrumb{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:12px;font-size:13px;display:flex}.genre-crumb-wrap{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.genre-crumb{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.genre-crumb:hover{color:var(--text)}.station-create__label{flex:320px}.station-search{border:1px solid var(--border);background:var(--surface-3);color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.station-search input{color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:.84rem}.station-search__results{border:1px solid var(--border);background:var(--surface-3);border-radius:8px;flex-direction:column;flex-basis:100%;gap:10px;max-height:320px;padding:10px;display:flex;overflow:auto}.station-search__group{flex-direction:column;gap:2px;display:flex}.station-search__group>span{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.68rem}.station-search__group button{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;gap:10px;padding:6px 8px;font-size:.84rem;display:flex}.station-search__group button:hover{background:#ffffff0f}.station-search__group small{color:var(--text-muted)}.station-overlay.has-viz{background:#05070a}.station-overlay__bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.station-overlay__bg .station-overlay__canvas:not(.visualizer--off){width:100%;height:100%;display:block}.station-overlay__cover-bg{aspect-ratio:auto;filter:blur(34px)saturate(1.15)brightness(.6);border-radius:0;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.14)}.station-overlay__shade{background:radial-gradient(circle at 50% 42%,#0000001f,#000000b8 78%),linear-gradient(#0000008c,#0000 30% 62%,#000000c7);position:absolute;inset:0}.station-overlay>.station-overlay__art,.station-overlay>.station-overlay__info,.station-overlay>.station-overlay__controls,.station-overlay>.station-overlay__lyrics,.station-overlay>.station-overlay__viz{z-index:1;position:relative}.station-overlay .station-overlay__bar{z-index:2}.station-overlay.has-viz .station-overlay__bar{background:linear-gradient(#0009,#0000)}.station-overlay .icon-button--danger{color:#f87171}.station-overlay .icon-button--danger:hover{background:#f871711f}.station-overlay .icon-button:disabled{opacity:.35;cursor:not-allowed}.station-overlay.has-viz .icon-button:not(.is-active){color:#ffffffd1}.station-overlay__viz{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0c0e8c;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.station-overlay__viz-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 6px 0 2px;font-size:.66rem;font-weight:700}.station-overlay__viz-name{text-overflow:ellipsis;white-space:nowrap;text-align:center;min-width:150px;max-width:34vw;color:var(--text);font-size:.8rem;overflow:hidden}@media (width<=760px){.station-overlay__exit{display:none}.station-overlay__viz-name{min-width:96px}}.availability-led{background:#4b5563;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.availability-led--both{background:#1db954;box-shadow:0 0 6px #1db954bf}.availability-led--local{background:#f5c542;box-shadow:0 0 6px #f5c542a6}.availability-led--remote{background:#4aa3ff;box-shadow:0 0 6px #4aa3ffbf}.availability-led--none{opacity:.55;background:#4b5563}.pub-preview{flex-direction:column;gap:5px;max-height:240px;margin:6px 0 0;padding:0;list-style:none;display:flex;overflow:auto}.pub-preview li{align-items:center;gap:8px;font-size:.84rem;display:flex}.pub-preview li.is-missing{opacity:.55}.pub-preview__title{text-overflow:ellipsis;white-space:nowrap;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.pub-preview__title small{color:var(--text-muted);font-size:.72rem}.pub-legend{color:var(--text-muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.7rem;display:flex}.pub-legend span{align-items:center;gap:5px;display:inline-flex}.queue-item__title{align-items:center;gap:6px;min-width:0;display:flex}.queue-item__title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.playlist-queue{flex-direction:column;gap:8px;margin:18px 0;display:flex}.playlist-queue h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.75rem}.playlist-queue__list{flex-direction:column;gap:6px;display:flex}.playlist-queue__item{border:1px solid var(--border);background:var(--surface-3);border-radius:10px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 12px;display:grid}.playlist-queue__item.is-error{border-color:#f8717166}.playlist-queue__title{flex-direction:column;min-width:0;display:flex}.playlist-queue__title strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.playlist-queue__title small,.playlist-queue__state small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.playlist-queue__state{flex-direction:column;gap:4px;min-width:0;font-size:.78rem;display:flex}.playlist-queue__state>span{align-items:center;gap:6px;display:inline-flex}.playlist-queue__bar{background:#ffffff1a;border-radius:999px;height:4px;overflow:hidden}.playlist-queue__bar span{background:var(--accent);height:100%;display:block}.playlist-queue__actions{align-items:center;gap:8px;font-size:.75rem;display:flex}.playlist-queue__actions a{color:var(--accent);white-space:nowrap;align-items:center;gap:4px;text-decoration:none;display:inline-flex}@media (width<=760px){.playlist-queue__item{grid-template-columns:1fr;gap:6px}}.analysis-progress{border:1px solid var(--border);background:var(--surface-3);border-radius:12px;flex-direction:column;gap:6px;margin:14px 0 18px;padding:12px 14px;display:flex}.analysis-progress__row{justify-content:space-between;align-items:baseline;gap:12px;font-size:.8rem;display:flex}.analysis-progress__row small{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.analysis-progress__bar{background:#ffffff1a;border-radius:999px;height:6px;overflow:hidden}.analysis-progress__bar span{background:var(--accent);height:100%;transition:width .3s;display:block}.analysis-progress>small{color:var(--text-muted);font-size:.72rem}.alt-audio{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:14px;padding-top:12px;display:flex}.alt-audio__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.alt-audio__head>div{flex-direction:column;gap:2px;display:flex}.alt-audio__head small,.alt-audio__meta small{color:var(--text-muted);font-size:.72rem}.alt-audio__error{color:#f87171;font-size:.75rem}.alt-audio__player{width:100%}.alt-audio__list{flex-direction:column;gap:6px;max-height:260px;display:flex;overflow-y:auto}.alt-audio__item{border:1px solid var(--border);background:var(--surface-3);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.alt-audio__meta{flex-direction:column;gap:2px;min-width:0;display:flex}.alt-audio__meta strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.alt-audio__meta small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alt-audio__actions{flex-shrink:0;gap:6px;display:flex}@media (width<=760px){.alt-audio__item{flex-direction:column;align-items:stretch}.alt-audio__actions{justify-content:flex-end}}
