/* Library-scoped styles do not change the player's custom visual design. */
:root[data-theme=light]{--app-panel-solid:rgba(252,249,255,.98);--app-panel:rgba(250,247,255,.94);--app-text:#29223a;--app-muted-text:#6c627f;--app-tab-active-bg:#e3d7f8;--app-tab-active-border:#c3a8ec;--app-section-bg:#f1ebf9;--app-stroke:#bdaed333;--app-spectrum-studio-bg:radial-gradient(ellipse at 0 0,#ece0ff,transparent 48%),linear-gradient(130deg,#fcfaff,#f0f4ff);--app-spectrum-bg:radial-gradient(ellipse at 50% 100%,#e8e0fc,transparent 65%),linear-gradient(130deg,#f7f3ff,#f9fbff)}
:root[data-theme=light]:not(.widget-mode) .poweramp-stage::before{background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.18) 45%,rgba(0,0,0,.76) 100%),radial-gradient(circle at 50% 70%,rgba(255,255,255,.08),transparent 34%)}
:root[data-theme=light] .song-copy strong,:root[data-theme=light] .song-copy span,:root[data-theme=light] .stage-status,:root[data-theme=light] .stage-status span,:root[data-theme=light] .quality-line,:root[data-theme=light] .progress-area>span{color:#fff;text-shadow:0 1px 4px #000b}
:root[data-theme=light] .poweramp-stage .icon-button,:root[data-theme=light] .poweramp-stage .quick-control,:root[data-theme=light] .poweramp-stage .transport-button{background:rgba(255,255,255,.87);color:#28213b;box-shadow:0 4px 18px #0003}
:root[data-theme=light] .poweramp-stage .transport-deck .transport-button.play{background:rgba(255,255,255,.94)}
:root[data-theme=light] .poweramp-stage .quick-control::before,:root[data-theme=light] .poweramp-stage .transport-button::before{background:#28213b;filter:none}
:root[data-theme=light] .poweramp-stage .quick-actions .quick-control.active,:root[data-theme=light] .poweramp-stage .quick-actions .quick-control:hover{background:#dfd2fa}
:root[data-theme=light] .poweramp-stage .seek-bar::-webkit-slider-thumb{background:#fff}
:root[data-theme=light] .spectrum-topic-button.active{background:#8962d3;color:white;border-color:#8962d3}
:root[data-theme=light] .control-panel input[type=range],:root[data-theme=light] .spectrum-studio input[type=range]{accent-color:#8962d3}
.library-panel {
  --lib-ink:#f2f1ff; --lib-muted:#a29fbb; --lib-surface:rgba(24,23,40,.88);
  --lib-line:rgba(183,173,235,.14); --lib-accent:#c2adff;
  inset:16px auto 16px 16px; width:min(620px,calc(100vw - 32px)); max-width:none;
  height:auto; border:1px solid var(--lib-line); border-radius:26px;
  background:#10101c; color:var(--lib-ink); padding:20px;
  box-shadow:0 30px 100px #0008; isolation:isolate; overflow:hidden;
  grid-template-rows:auto auto auto auto auto minmax(0,1fr); gap:16px;
}
.library-panel>*:not(.library-artwork){position:relative;z-index:1}
.library-panel [hidden]{display:none!important}
.library-artwork{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;background-repeat:no-repeat;pointer-events:none;will-change:transform}
.library-panel::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#17142a,#0c0d17);opacity:var(--library-art-shade,.35);pointer-events:none}
.library-head{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.library-head>div{grid-column:1/3;min-width:0}
.library-head #closeLibraryButton{grid-column:3;grid-row:1}.library-head #libraryArtButton{grid-column:1/3;grid-row:2;text-align:left}.library-head #rescanButton{grid-column:3;grid-row:2}
.library-eyebrow{font-size:10px;letter-spacing:2.8px;font-weight:700;color:var(--lib-accent)}
.library-head h2{font-size:27px;line-height:1.25;margin:7px 0;letter-spacing:-1px;font-weight:750}
.library-heading-dot{color:var(--lib-accent)}.library-head p{color:var(--lib-muted);font-size:12px}
.library-panel button,.library-panel select,.library-panel input{color:var(--lib-ink);background:var(--lib-surface);border:1px solid var(--lib-line);border-radius:12px;font:inherit;font-size:13px;min-height:40px}
.library-panel button{padding:9px 16px;cursor:pointer;transition:background .15s,border-color .15s}
.library-panel button:hover{background:rgba(141,113,222,.22);border-color:var(--lib-accent)}
.library-panel button:focus-visible,.library-panel input:focus-visible{outline:2px solid var(--lib-accent);outline-offset:2px}
.library-panel #closeLibraryButton{width:40px;min-width:40px;height:40px;padding:0}
.library-search{gap:7px}.library-search>span{font-size:11px;font-weight:600;letter-spacing:.3px;color:var(--lib-muted)}
.library-search input{height:48px;width:100%;padding:0 17px;border-radius:14px}
.library-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.library-tabs button{flex:1;min-width:100px}
.library-tabs button.active{background:var(--lib-accent);color:#21153f;border-color:transparent}
.library-sort-label{width:100%;letter-spacing:1.5px;font-size:9px;color:var(--lib-muted);padding:4px 2px 0}
.library-panel .playlist-tools{display:none;grid-template-columns:minmax(140px,1fr) minmax(100px,1fr) auto;gap:8px}
.library-panel.collections-view .playlist-tools,.library-panel[data-view="playlist"] .playlist-tools{display:grid}
.library-panel .playlist-tools input,.library-panel .playlist-tools select{width:100%;padding:9px 12px}
.library-count{font-size:11px;color:var(--lib-muted);padding:0 8px}
.library-panel .track-list{position:relative;display:block;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 6px 0 0;grid-row:6}
.track-list-spacer{width:1px;pointer-events:none}.track-list-window{position:absolute;left:0;right:6px}
.library-panel .track-row{box-sizing:border-box;height:70px;min-height:70px;margin:0 0 8px;display:grid;grid-template-columns:42px minmax(0,1fr) 60px;grid-template-rows:1fr 1fr;gap:3px 12px;padding:13px 16px;border:1px solid transparent;border-radius:13px;background:rgba(100,94,142,.08);cursor:pointer;content-visibility:auto}
.library-panel .track-row:hover{background:rgba(151,127,224,.13);border-color:var(--lib-line)}
.library-panel .track-row.active{border-color:rgba(194,173,255,.45);background:linear-gradient(110deg,rgba(142,99,235,.24),rgba(112,111,195,.08))}
.track-row .track-number{grid-row:1/3;grid-column:1;align-self:center;font-size:12px;color:var(--lib-muted);font-variant-numeric:tabular-nums;text-align:center}
.track-row.active .track-number{font-size:22px;color:var(--lib-accent)}
.library-panel .track-row strong{grid-column:2;grid-row:1;font-size:13px;align-self:end;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-panel .track-row span{grid-column:2;grid-row:2;font-size:11px;color:var(--lib-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-panel .track-row em{grid-column:3;grid-row:1/3;align-self:center;justify-self:end;font-size:9px;font-style:normal;letter-spacing:.8px;padding:5px 7px;border:1px solid var(--lib-line);border-radius:6px;color:var(--lib-muted)}
.playlist-cards{grid-row:6;overflow:auto;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-content:start;padding:3px 5px 20px}
.playlist-card{border:1px solid var(--lib-line);border-radius:19px;overflow:hidden;background:var(--lib-surface);min-height:284px;align-self:start}
.library-panel .playlist-card-open{display:block;text-align:left;border:0;border-radius:0;width:100%;padding:0;background:transparent}
.playlist-card-art{display:grid;place-items:center;height:150px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 20% 0%,hsl(var(--card-hue) 70% 70% / .65),transparent 65%),linear-gradient(135deg,hsl(var(--card-hue) 55% 20%),hsl(calc(var(--card-hue) + 65) 60% 36%))}
.playlist-card-art::before,.playlist-card-art::after{content:"";position:absolute;width:130px;height:130px;border:1px solid #fff4;border-radius:50%;transform:translate(55px,40px)}
.playlist-card-art::after{width:180px;height:180px}.playlist-card-art b{font-size:46px;font-weight:300;color:#fff;text-shadow:0 3px 20px #0005}
.playlist-card-info{display:block;padding:18px}.playlist-card-info strong{display:block;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-card-info small{display:block;color:var(--lib-muted);margin-top:6px;font-size:11px}
.playlist-card-actions{display:flex;gap:8px;padding:0 18px 16px}.library-panel .playlist-card-actions button{font-size:11px;min-height:30px;padding:5px 10px}
.library-panel .library-art-settings{position:absolute;inset:16px 16px 16px auto;width:min(400px,calc(100% - 32px));z-index:5;background:#1a1829;border:1px solid var(--lib-line);border-radius:20px;padding:24px;overflow:auto;box-shadow:0 10px 80px #000a}
.library-art-settings h3{font-size:22px;margin:0 0 5px}.library-art-settings p{font-size:12px;line-height:1.6;color:var(--lib-muted)}
.library-art-settings label{display:flex;flex-direction:column;gap:8px;margin:19px 0;font-size:12px}.library-art-settings input[type=range]{padding:0;min-height:20px;accent-color:var(--lib-accent)}
.library-art-settings label:has(input[type=checkbox]){flex-direction:row;align-items:center}.library-art-settings input[type=checkbox]{min-height:16px;accent-color:var(--lib-accent)}
.library-art-settings output{float:right;color:var(--lib-accent)}.library-art-settings .art-actions{display:flex;gap:8px;flex-wrap:wrap}.library-art-settings input[type=file]{max-width:100%;font-size:11px;padding:8px}
.library-art-preview{height:100px;background:#090912 center/cover;border-radius:10px;border:1px solid var(--lib-line)}
[data-theme=light] .library-panel{--lib-ink:#25203b;--lib-muted:#706982;--lib-surface:rgba(255,255,255,.8);--lib-line:rgba(88,61,142,.15);--lib-accent:#8962d3;background:#f6f3fc;box-shadow:0 20px 80px #30214a33}
[data-theme=light] .library-panel::before{background:linear-gradient(135deg,#f9f6ff,#f6f8ff)}
[data-theme=light] .library-tabs button.active{color:#fff}[data-theme=light] .library-panel .library-art-settings{background:#faf7ff}
[data-theme=light] .library-panel .track-row.active{background:linear-gradient(110deg,#dfd2faac,#e6dffc80);border-color:#ae93df}
:root[data-theme=light] .library-panel button{background:var(--lib-surface);color:var(--lib-ink);border-color:var(--lib-line)}
:root[data-theme=light] .library-panel .library-tabs button.active{background:#8962d3;color:#fff;border-color:#8962d3}
:root[data-theme=light] .library-panel .playlist-card-open{background:transparent;border:0}
.library-panel ::-webkit-scrollbar{width:8px;height:8px}.library-panel ::-webkit-scrollbar-track{background:transparent}.library-panel ::-webkit-scrollbar-thumb{background:#8880a24d;border:2px solid transparent;background-clip:padding-box;border-radius:10px}.library-panel ::-webkit-scrollbar-button{display:none}
@media(max-width:1000px){.library-panel{padding:20px;gap:12px}.library-head h2{font-size:27px}.playlist-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.library-sort-label{letter-spacing:.5px}.library-eyebrow{letter-spacing:1.4px}}

/* Entire-card artwork, with only the options menu sitting above the click surface. */
.library-panel .music-art-card{position:relative;box-sizing:border-box;height:234px;min-height:234px;aspect-ratio:auto;isolation:isolate;background:#191827}
.library-panel .music-art-card .playlist-card-open{position:absolute;inset:0;height:100%;min-height:0;background:transparent;color:#fff;overflow:hidden}
.music-art-card .playlist-card-art{position:absolute;inset:0;height:auto;border-radius:inherit}
.music-art-card .playlist-card-art:has(img)::before,.music-art-card .playlist-card-art:has(img)::after{display:none}
.card-cover-image{width:100%;height:100%;object-fit:cover;transform:scale(calc(var(--art-zoom,1) * var(--art-bounce,1)));pointer-events:none}
.music-art-card .playlist-card-art>b{align-self:start;margin-top:50px;font-size:44px}
.music-art-card .playlist-card-info{position:absolute;inset:auto 0 0;padding:50px 16px 18px;background:linear-gradient(transparent,rgba(4,5,13,.83) 65%);color:#fff;pointer-events:none}
.music-art-card .playlist-card-info strong{font-size:16px;line-height:1.35;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 1px 3px #0008}
.music-art-card .playlist-card-info small{color:#e7e4f0;font-size:10px;line-height:1.4}
.library-panel .card-options-button{position:absolute;right:8px;top:8px;width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;background:transparent;border:0;color:#ffe536;font-size:28px;font-weight:800;z-index:3;line-height:1;text-shadow:0 1px 3px #0008;box-shadow:none}
.library-panel .card-options-menu{position:absolute;right:8px;top:50px;z-index:4;min-width:180px;max-width:calc(100% - 16px);padding:6px;background:#211d33;border:1px solid #ffffff26;border-radius:12px;box-shadow:0 8px 30px #0007}
.library-panel .card-options-menu button{display:block;text-align:left;width:100%;font-size:12px;border:0;background:transparent;color:#f3efff;padding:10px;min-height:38px}
.library-panel .card-options-menu button:hover,.library-panel .card-options-menu button:focus-visible{background:#ffffff18}
.music-art-card.is-playing{border-color:var(--lib-accent);box-shadow:0 0 0 1px var(--lib-accent)}
.cards-empty{grid-column:1/-1;color:var(--lib-muted);font-size:13px;padding:20px 8px;line-height:1.6}
.card-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-editor-heading h3{font-size:21px}
.library-panel .card-editor-close{min-width:36px;min-height:36px;padding:0;font-size:24px}
.card-art-preview{height:200px;overflow:hidden;background:#090911;border-radius:14px;border:1px solid var(--lib-line)}
.card-editor-actions{position:sticky;bottom:-24px;padding:16px 0;background:inherit;border-top:1px solid var(--lib-line)}
.library-panel .card-art-save{background:var(--lib-accent);color:#201435}
.card-editor-status{min-height:20px}.card-art-editor{overscroll-behavior:contain}
#favoriteButton .favorite-heart{display:block;width:21px;height:21px;overflow:visible;pointer-events:none}
#favoriteButton .favorite-heart path{fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
#favoriteButton[aria-pressed=true] .favorite-heart path{fill:#fff}
.quick-actions #favoriteButton:active{transform:none}
.center-image.has-now-playing-artwork{position:relative;background-color:#07080c}
.now-playing-artwork{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.center-image.has-now-playing-artwork>span{visibility:hidden}
:root[data-theme=light] .library-panel .card-options-button,.library-panel .card-options-button:hover,.library-panel .card-options-button:focus-visible{color:#ffe536;background:transparent;border:0;box-shadow:none}
:root[data-theme=light] .library-panel .card-options-menu{background:#faf7ff;border-color:#c3b4dd}
:root[data-theme=light] .library-panel .card-options-menu button{color:#30233f}
:root[data-theme=light] .library-panel .card-options-menu button:hover{background:#e8dcf7}
:root[data-theme=light] .library-panel.has-visible-art .library-head h2,:root[data-theme=light] .library-panel.has-visible-art .library-head p,:root[data-theme=light] .library-panel.has-visible-art .library-search>span,:root[data-theme=light] .library-panel.has-visible-art .library-count,:root[data-theme=light] .library-panel.has-visible-art .library-sort-label{color:#fff;text-shadow:0 1px 5px #000,0 0 8px #000}
@media(max-height:690px){.library-panel{gap:8px;padding:16px}.library-head h2{font-size:23px;margin:3px 0}.library-eyebrow{font-size:9px}.library-panel .library-search input{height:40px}.library-panel button{min-height:34px}.library-head p{margin:2px 0}}

/* Compact library toolbar; fixed grid tracks prevent artwork cards from overlapping. */
.library-panel{grid-template-rows:auto auto auto auto minmax(0,1fr);gap:12px}
.library-panel .track-list,.library-panel .playlist-cards{grid-row:5}
.library-panel .playlist-cards{grid-template-columns:repeat(2,minmax(0,244px));grid-auto-rows:234px;align-content:start;justify-content:center;align-items:start;gap:16px 14px}
.library-panel .library-head{display:flex;align-items:flex-start;gap:8px}
.library-panel .library-head>div:first-child{flex:1;min-width:0}
.library-panel .library-head .library-header-actions{flex:0 0 auto;display:flex;align-items:center;gap:4px}
.library-panel .library-head h2{font-size:24px;margin:5px 0;letter-spacing:-.7px}
.library-panel .library-eyebrow{font-size:8px;letter-spacing:1.5px}
.library-panel .library-head p{font-size:11px;margin:3px 0}
.library-panel .library-head .library-tool-icon{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;border-radius:50%;font-size:22px;display:grid;place-items:center;background:transparent;color:var(--lib-ink)}
.library-panel .library-tool-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.library-search-tool{display:flex;align-items:center;gap:3px}
.library-panel #trackSearch{width:2.5cm;height:30px;min-height:30px;padding:4px 10px;border-radius:999px;font-size:11px;outline-offset:1px}
.library-panel .library-tabs{gap:6px;flex-wrap:wrap}
.library-panel .library-tabs button{flex:0 0 auto;min-width:0;min-height:30px;padding:6px 12px;font-size:12px;line-height:1.2;border-radius:999px}
.library-panel .library-sort-label{font-size:8px;padding:3px 2px 0;letter-spacing:1px}
.library-panel .playlist-tools{grid-template-columns:minmax(90px,1fr) minmax(90px,1fr) auto}
.library-panel .playlist-tools input,.library-panel .playlist-tools select,.library-panel .playlist-tools button{font-size:11px;min-height:32px;padding:5px 9px}
.library-panel .playlist-card-info strong{font-size:14px}.library-panel .playlist-card-info small{font-size:9px}
.library-panel .card-options-menu{top:38px;min-width:164px}
.quick-actions{grid-template-columns:minmax(46px,auto) repeat(10,40px)}
.quick-actions #favoriteButton{grid-column:auto;grid-row:auto;width:40px;height:40px;min-height:40px;font-size:25px;display:grid;place-items:center;line-height:1}
.quick-actions #favoriteButton::before{display:none}
.song-card .song-copy{grid-column:1/3}
.stage-actions{left:clamp(18px,2vw,34px)}
:root[data-theme=light] .library-panel.has-visible-art .library-tool-icon{color:#fff;text-shadow:0 1px 4px #000}
@media(max-height:690px){.library-panel{gap:8px}.library-panel .library-head h2{font-size:21px}.library-panel .library-eyebrow{font-size:7px}.library-panel .library-head p{font-size:10px}}

/* Artwork shortcut and the shared song editor, without opening the library panel. */
#playerArtworkButton::before{display:none}
#playerArtworkButton{display:grid;place-items:center}
#playerArtworkButton svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.player-art-menu,.player-art-dialog{--lib-ink:#f2f1ff;--lib-muted:#b3aec9;--lib-surface:#252136;--lib-line:#ffffff26;--lib-accent:#c2adff;color:var(--lib-ink);background:#1a1829;border:1px solid var(--lib-line);box-shadow:0 18px 65px #0009}
.player-art-menu{position:fixed;z-index:120;width:262px;max-width:calc(100vw - 24px);border-radius:15px;padding:6px}
.player-art-menu[hidden],.player-art-dialog [hidden]{display:none!important}
.player-art-menu button{display:block;width:100%;padding:12px 13px;text-align:left;border:0;border-radius:10px;color:var(--lib-ink);background:transparent;cursor:pointer}
.player-art-menu button strong,.player-art-menu button small{display:block;font-family:inherit}
.player-art-menu button strong{font-size:13px;font-weight:650}.player-art-menu button small{font-size:11px;color:var(--lib-muted);margin-top:4px}
.player-art-menu button:hover,.player-art-menu button:focus-visible{background:#a58ad32b;outline:none}
.player-art-menu button:disabled{opacity:.45;cursor:default}
.player-art-dialog{width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);padding:0;border-radius:20px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#81769755 transparent}
.player-art-dialog::backdrop{background:#03030980}
.player-art-dialog .card-art-editor{padding:22px;background:inherit}
.player-art-dialog .card-art-editor p{font-size:12px;line-height:1.6;color:var(--lib-muted)}
.player-art-dialog .card-art-preview{height:164px}
.player-art-dialog .card-art-editor button,.player-art-dialog .card-art-editor input,.player-art-dialog .card-art-editor select{color:var(--lib-ink);background:var(--lib-surface);border:1px solid var(--lib-line);border-radius:10px;font:inherit;font-size:12px;min-height:36px}
.player-art-dialog .card-art-editor button{padding:8px 12px;cursor:pointer}
.player-art-dialog .card-art-editor button:hover{border-color:var(--lib-accent)}
.player-art-dialog .card-art-editor :is(button,input,select):focus-visible{outline:2px solid var(--lib-accent);outline-offset:2px}
.player-art-dialog .card-editor-close{min-width:32px;padding:0!important;font-size:22px!important}
.player-art-dialog .card-art-save{background:var(--lib-accent)!important;color:#21153f!important}
.player-art-dialog .card-art-editor input[type=range]{min-height:20px;padding:0}
.player-art-dialog .card-art-editor input[type=checkbox]{min-height:16px}
.player-art-dialog .card-editor-actions{bottom:0;padding:12px 0;background:#1a1829}
:root[data-theme=light] :is(.player-art-menu,.player-art-dialog){--lib-ink:#29223a;--lib-muted:#6c627f;--lib-surface:#f1ebf9;--lib-line:#bdaed35c;--lib-accent:#8962d3;background:#fcfaff}
:root[data-theme=light] .player-art-dialog .card-editor-actions{background:#fcfaff}
:root[data-theme=light] .player-art-dialog .card-art-save{color:#fff!important}
