/* Private playlist builder */
#playlist-dialog{width:min(780px,calc(100% - 28px));max-height:92dvh;padding:28px;border-radius:24px;background:linear-gradient(145deg,#1b1a23,#111218);box-sizing:border-box}
#playlist-form{display:flex;flex-direction:column;max-height:calc(92dvh - 58px);min-height:0;gap:0}
#playlist-dialog .playlist-heading{display:block;flex:none;margin:0;padding:0;min-height:0}
.playlist-heading .eyebrow{font-size:10px;color:#b5a4f1;letter-spacing:1.8px;margin:0 0 8px}.playlist-heading h2{font-size:28px;letter-spacing:-.6px;margin:0 0 22px}
.playlist-name-row{display:flex;align-items:flex-end;gap:12px;margin-bottom:20px}.playlist-name-row label{flex:1;min-width:0;margin:0;font-size:12px;color:#b7b3c2}.playlist-name-row input{display:block;width:100%;box-sizing:border-box;margin-top:8px;font-size:16px;padding:12px 14px}.playlist-name-row button{padding:12px 16px;white-space:nowrap;font-size:12px;border-radius:24px}
.playlist-filter-row,.playlist-selection-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.playlist-filter-row{padding-bottom:15px;border-bottom:1px solid #ffffff0c}.playlist-modes{display:flex;gap:4px;background:#0e1016;padding:4px;border-radius:24px}.playlist-modes button{border:0;border-radius:20px;background:transparent;padding:9px 18px;color:#aaa7b6;font-size:13px}.playlist-modes button[aria-pressed=true]{background:#eeebfa;color:#13141c}.playlist-filter-row label{margin:0 0 0 auto;display:flex;align-items:center;gap:10px;color:#ada9ba;font-size:12px}.playlist-filter-row select{border-radius:20px;padding:9px 30px 9px 14px;max-width:220px}
.playlist-selection-tools{padding:12px 0;flex:none}.playlist-selection-tools button{background:none;border:0;padding:4px 0;margin-right:12px;color:#c1b2ff;font-size:12px}.playlist-selection-tools button:disabled{opacity:.35}.playlist-selection-tools strong{margin-left:auto;color:#bcb6ca;font-size:12px;font-weight:500}
#playlist-items{max-height:350px;min-height:90px;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#45434d transparent;padding:2px 5px 2px 0;display:flex;flex-direction:column;gap:7px}
.playlist-pick{display:flex;align-items:center;gap:14px;flex:none;min-height:78px;width:100%;text-align:left;border:1px solid transparent;border-radius:12px;background:#ffffff03;padding:9px 12px;color:#f2eff8}.playlist-pick:hover{background:#ffffff07}.playlist-pick.chosen{background:#ad95ff12;border-color:#b5a0ff66}.playlist-pick:focus-visible{outline:2px solid #b6a2ff;outline-offset:-2px}.playlist-pick:disabled{opacity:.5}.playlist-pick-art{width:56px;height:56px;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#37334a,#24353e);display:grid;place-items:center;flex:none}.playlist-pick-art :is(img,:where(canvas.private-art-canvas)){width:100%;height:100%;object-fit:cover}.playlist-pick-art svg{width:25px;height:25px}.playlist-pick-copy{flex:1;min-width:0}.playlist-pick-copy strong{display:block;font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-pick-copy small{display:block;font-size:11px;color:#a6a0b5;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-pick-check{flex:none;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;color:#171323;background:#c4b3ff;opacity:0}.playlist-pick-check svg{width:17px;height:17px}.playlist-pick.chosen .playlist-pick-check{opacity:1}.playlist-no-results{padding:30px;text-align:center;color:#aaa4b9;font-size:14px}
#playlist-dialog .playlist-folder-setting{flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#ffffff04;border:1px solid #ffffff09;border-radius:12px;padding:16px;margin:24px 0 0;font-size:13px}.playlist-folder-copy strong{display:block;font-size:13px;font-weight:500}.playlist-folder-copy small{display:block;color:#9994a7;font-size:11px;margin-top:5px}.playlist-folder-setting input{position:absolute;opacity:0;width:1px;height:1px}.playlist-switch{display:inline-flex;align-items:center;width:40px;height:24px;border-radius:20px;background:#46424e;flex:none;transition:background .15s}.playlist-switch:after{content:'';width:18px;height:18px;border-radius:50%;background:white;margin-left:3px;transition:transform .15s}#playlist-folder:checked+.playlist-switch{background:#8b6eee}#playlist-folder:checked+.playlist-switch:after{transform:translateX(16px)}#playlist-folder:focus-visible+.playlist-switch{outline:2px solid white;outline-offset:3px}
#playlist-error{color:#ffb6c5;font-size:13px;margin:10px 0 0}#playlist-error:empty{display:none}#playlist-form .dialog-actions{flex:none;padding-top:16px;margin-top:16px;border-top:1px solid #ffffff0c;display:flex;justify-content:space-between;align-items:center;gap:12px}.playlist-save-side{display:flex;align-items:center;gap:16px}.playlist-save-side small{font-size:11px;color:#a6a0b5}.playlist-save-side button{min-width:175px}
/* The fixed rail uses a scrollbar-free viewport, with paging arrows at its edges. */
/* Neutral frosted surfaces; keep controls legible when backdrop blur is unavailable. */
body #playlist-dialog,body #manage-dialog{background:linear-gradient(145deg,#28292dec,#151619f2);border-color:#ffffff20;box-shadow:0 24px 90px #0009}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
 body #playlist-dialog,body #manage-dialog{background:linear-gradient(145deg,#2b2c31c9,#141518dc);backdrop-filter:blur(32px) saturate(85%);-webkit-backdrop-filter:blur(32px) saturate(85%)}
 body #playlist-dialog::backdrop,body #manage-dialog::backdrop{background:#05060755;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
}
body #playlist-dialog .eyebrow,body #manage-dialog .eyebrow{color:#c1becd}
body #playlist-dialog .playlist-pick.chosen{background:#ffffff0d;border-color:#ffffff42}
body #playlist-dialog .playlist-pick-check{background:#e3e2e8;color:#232229}
body #playlist-dialog .playlist-selection-tools button{color:#dddbe4}
body #playlist-dialog :is(input,select){background:#ffffff09;border-color:#ffffff25;color:#f1f0f5}
body #playlist-dialog option{background:#24242a;color:#f1f0f5}
body #manage-dialog .manage-footprint{background:#17181cb5;border-color:#ffffff15}
#playlist-browse-add{width:44px;height:44px;min-width:44px;padding:10px;border-radius:50%;border:0;background:#e1e1e5;color:#24232b;display:grid;place-items:center;flex:none}
#playlist-browse-add svg{width:22px;height:22px}
#private-playlists .playlist-view-tools{flex-wrap:nowrap;gap:10px}
#private-playlists .playlist-view-tools label{min-width:0;flex:1}
#private-playlists .playlist-view-tools select{min-width:0;min-height:44px;max-width:180px;width:100%}
body #private-playlists #new-playlist{min-height:44px;flex:none}
/* List playback lives with the other actions, leaving the artwork unobscured. */
body #playlists[data-playlist-view=list] .playlist-card-actions .playlist-card-play{position:static!important;transform:none;opacity:1;left:auto;top:auto;width:44px;height:44px;min-width:44px;background:#8a75d830;border:0;box-shadow:none;color:#eee9ff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body #playlists .playlist-card-actions .playlist-card-play:hover{background:#9a84ea55}
body #playlists .playlist-card-actions .playlist-card-play[data-action=Pause]{background:#9a84ea4d}
body #playlists:not([data-playlist-view=list]) .playlist-card-play{background:#7565ad59;border:0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 3px 12px #0003}
body #playlists .playlist-card-actions button{width:44px;height:44px;min-width:44px;min-height:44px}
.playlist-discovery{flex:none;min-width:0}
.playlist-discovery[hidden],.playlist-original-picker[hidden],#playlist-dialog .playlist-filter-row[hidden]{display:none!important}
.playlist-discovery-search{display:flex;align-items:center;gap:10px;border:1px solid #ffffff22;border-radius:18px;padding:0 12px;margin:0 0 12px;background:#0c0d1029}
.playlist-discovery-search svg{width:21px;height:21px;flex:none;color:var(--private-icon-color,#ec819c)}
body #playlist-dialog .playlist-discovery-search input{width:100%;min-width:0;padding:13px 0;border:0;outline-offset:3px;background:transparent;font-size:16px}
.playlist-discovery-filters{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.playlist-discovery-scopes{display:flex;gap:5px}.playlist-discovery-scopes button{padding:9px 13px;min-height:40px;border:0;border-radius:22px;background:#ffffff09;color:#c2bfcb;font-size:13px}
.playlist-discovery-scopes button[aria-pressed=true]{background:#e1e1e5;color:#24232b}
#playlist-source{border-radius:20px;font-size:12px;min-height:40px;max-width:180px;padding:9px 28px 9px 12px}
.playlist-discovery-note{font-size:12px;color:#bdbbc7;line-height:1.5;margin:12px 0 0}
.playlist-discovery-section{font-size:13px;font-weight:600;color:#bebbc9;margin:18px 8px 7px}.playlist-discovery-section:first-child{margin-top:6px}
.playlist-discovery-row{display:flex;align-items:center;min-width:0;flex:none}.playlist-discovery-row>.playlist-pick{min-width:0;flex:1}
.playlist-album-row{position:relative}
body #playlist-dialog .playlist-album-row>.playlist-pick{width:100%;padding-right:62px;box-sizing:border-box}
body #playlist-dialog [data-playlist-open-album]{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:44px;height:44px;min-height:44px;padding:10px;display:grid;place-items:center;border:1px solid #ffffff20;border-radius:50%;background:#ffffff08;color:#efedf5;box-sizing:border-box}
body #playlist-dialog [data-playlist-open-album]:hover{background:#ffffff18;border-color:#ffffff40}
body #playlist-dialog [data-playlist-open-album]:focus-visible{outline:2px solid #e3dcff;outline-offset:2px}
body #playlist-dialog [data-playlist-open-album] svg{width:22px;height:22px}
.playlist-album-header[hidden],.playlist-album-footer[hidden]{display:none!important}
#playlist-dialog.has-album-tracks :is(.playlist-heading,.playlist-name-row,.playlist-folder-setting,.dialog-actions,#playlist-dialog-mobile-close){display:none!important}
#playlist-dialog .playlist-album-header{flex:none;min-width:0;padding:0 0 10px}
body #playlist-dialog [data-album-back]{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:8px 12px 8px 0;margin-bottom:20px;border:0;background:transparent;color:#eeedf3;font-size:14px}
#playlist-dialog [data-album-back] svg{width:22px;height:22px;transform:rotate(180deg)}
#playlist-dialog .playlist-album-header .eyebrow{font-size:10px;letter-spacing:1.7px;margin:0 0 10px;color:#bdbac8}
#playlist-dialog #playlist-album-title{font-size:24px;line-height:1.2;letter-spacing:-.4px;overflow-wrap:anywhere;margin:0 0 10px}
#playlist-dialog .playlist-album-note{font-size:13px;line-height:1.5;color:#bdbac8;margin:0}
#playlist-dialog .playlist-album-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;flex:none;border-top:1px solid #ffffff14;padding-top:16px;margin-top:16px}
#playlist-dialog [data-album-total]{font-size:12px;color:#bdbac8}
body #playlist-dialog [data-album-done]{min-height:44px;min-width:108px;padding:11px 24px;border:1px solid #ffffff35;border-radius:24px;background:#ecebf2;color:#24232a;font-weight:600}
@media(max-width:700px),(max-width:900px) and (max-height:500px){
 #playlist-dialog.has-album-tracks #playlist-items{height:clamp(252px,46dvh,430px);max-height:430px}
 #playlist-dialog.has-album-tracks{min-height:70dvh}
}
.has-discovery .playlist-pick-art{position:relative;overflow:visible}.has-discovery .playlist-pick-art>img,.has-discovery .playlist-pick-art>canvas{border-radius:8px}
.playlist-kind{position:absolute;right:-5px;bottom:-3px;display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#29272f;color:var(--private-icon-color,#ec819c);box-shadow:0 0 0 2px #222228}.playlist-kind svg{width:14px;height:14px}
.playlist-original-picker{align-self:flex-start;background:transparent;border:0;color:#bcb9c8;text-decoration:underline;text-underline-offset:3px;padding:12px 0 0;font-size:12px}
@media(max-width:700px),(max-width:900px) and (max-height:500px){
 body:has(#playlist-area:not([hidden])) #private-mobile-library-tools{display:none!important}
 #private-playlists .playlist-view-tools{width:100%;gap:8px}
 #private-playlists .playlist-view-tools label{font-size:12px;gap:7px}
 #private-playlists #new-playlist{font-size:11px;padding:9px 12px}
 body #playlists[data-playlist-view=list] .playlist-card-actions{gap:2px}
 #playlist-dialog.has-discovery .playlist-name-row{margin-bottom:14px}
 #playlist-dialog.has-discovery .playlist-folder-setting{margin-top:12px}
}
@media(max-width:479px){
 body #playlists[data-playlist-view=list] .private-playlist-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:7px 12px;padding:12px}
 body #playlists[data-playlist-view=list] .playlist-cover-stage{grid-row:1/3;grid-column:1;width:48px;height:48px;align-self:start;margin-top:4px}
 body #playlists[data-playlist-view=list] .playlist-card-copy{grid-row:1;grid-column:2}
 body #playlists[data-playlist-view=list] h3{font-size:15px}
 body #playlists[data-playlist-view=list] .playlist-card-actions{grid-row:2;grid-column:2;justify-content:flex-end}
 .playlist-discovery-scopes button{padding:9px 12px}
 #playlist-source{max-width:none;width:100%}
}
@media(max-width:359px){#private-playlists .playlist-view-tools label{font-size:0;gap:0}#private-playlists .playlist-view-tools select{font-size:12px;padding-left:10px}#private-playlists #new-playlist{font-size:10px;padding:9px 10px}}
.private-sidebar .rail{display:flex;flex-direction:column;overflow:hidden;gap:6px}.private-sidebar .rail>#rail-toggle{flex:none}.private-rail-window{flex:1;min-height:0;min-width:0;width:100%;align-self:stretch;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;scrollbar-width:none;overscroll-behavior:contain}.private-rail-window::-webkit-scrollbar{display:none}.private-rail-content{display:flex;flex-direction:column;gap:9px;min-width:0;width:100%;box-sizing:border-box}.private-rail-content>a,.private-rail-content>button{display:flex;flex:none;justify-content:center;align-items:center;width:100%;min-height:56px;border:0;background:#0d1115;color:#e9edf1;border-radius:13px;padding:14px;gap:14px;position:relative;box-sizing:border-box}.private-rail-content>a:hover,.private-rail-content>button:hover{background:#22272b;text-decoration:none}.private-rail-content>a svg,.private-rail-content>button svg{width:27px;height:27px}.private-rail-content>.rail-active{background:#243331}.private-rail-content>.rail-active:before{content:'';position:absolute;left:3px;top:14px;bottom:14px;width:3px;border-radius:3px;background:#d9f3ef}.private-rail-expanded .private-rail-content>a,.private-rail-expanded .private-rail-content>button{justify-content:flex-start;padding:11px 13px;min-height:43px;gap:14px}.private-sidebar .rail>.rail-more{flex:none;height:28px;min-height:28px;border-radius:8px;padding:3px;background:transparent;color:#a9a5b6;justify-content:center;gap:6px}.private-sidebar .rail>.rail-more svg{width:18px;height:18px}.private-sidebar .rail>.rail-more .rail-label{font-size:11px!important}.private-sidebar .rail>.rail-more:hover{background:#ffffff09;color:white}.private-sidebar .rail>.rail-more[hidden]{display:none}
@media(max-width:650px){#playlist-dialog{padding:20px 16px;width:calc(100% - 20px)}#playlist-form{max-height:calc(92dvh - 42px)}.playlist-heading h2{font-size:24px;margin-bottom:16px}.playlist-name-row{gap:8px;margin-bottom:15px}.playlist-name-row button{font-size:11px;padding:12px}.playlist-filter-row label{margin-left:0;width:100%;justify-content:space-between}.playlist-filter-row select{flex:1;max-width:none}.playlist-pick{gap:10px;min-height:70px;padding:8px}.playlist-pick-art{width:48px;height:48px}.playlist-pick-copy strong{font-size:12px}.playlist-pick-copy small{font-size:10px}.playlist-save-side small{display:none}.playlist-save-side button{min-width:0;font-size:12px}.playlist-selection-tools{gap:6px}.playlist-selection-tools strong{font-size:10px}.private-rail-content>a,.private-rail-content>button{min-height:42px;padding:9px;border-radius:9px}.private-rail-content>a svg,.private-rail-content>button svg{width:23px;height:23px}}
/* Let the mobile sheet scroll instead of squeezing its picker to a single row. */
@media(max-width:700px),(max-width:900px) and (max-height:500px){
  #playlist-dialog #playlist-form{max-height:none;width:100%}
  #playlist-dialog #playlist-items{flex:none;height:clamp(252px,46dvh,382px);min-height:252px;max-height:382px}
  #playlist-dialog #playlist-dialog-mobile-close{position:absolute;top:20px;right:16px;margin:0;float:none}
  #playlist-dialog .playlist-heading{padding-right:56px}
}

body[data-private-icon-tone="full"] #playlist-dialog :is(.playlist-kind,.playlist-discovery-search svg){color:#e51e2f}
body #playlists[data-playlist-view=large] .playlist-card-tracks{right:70px}
@media(min-width:0px){
 body #playlists[data-playlist-view=small] .playlist-card-actions{display:grid;grid-template-columns:repeat(2,44px);justify-content:space-between;gap:4px}
 body #playlists[data-playlist-view=small] .playlist-card-play{grid-column:1/-1;justify-self:center}
}
