.playlist-management{display:flex;flex-direction:column;gap:8px;min-width:0}
.playlist-management-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ffffff0c;min-width:0}
.collection-art{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:#24272d;color:#abb3bf;font-size:25px}
.collection-art svg{width:24px;height:24px}
.collection-name{display:block;min-width:0}
.collection-name input{display:block;width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #34383f;border-radius:8px;background:#101113;color:#f4f5f6;font:inherit;font-size:15px;line-height:1.4}
.collection-name small{display:block;margin:5px 0 0 2px;font-size:12px;color:#abb3bf}
.collection-order{display:flex;align-items:center;gap:2px}
.collection-order button,.collection-delete{min-width:44px;min-height:44px;padding:10px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;color:#abb3bf}
.collection-order svg,.collection-delete svg{width:18px;height:18px;flex:none}
.collection-grip{cursor:grab;touch-action:none}
.collection-delete:hover{background:#ffffff08;color:#e6b4bd}
.collection-undo{align-self:flex-start;min-height:44px;padding:8px 0;color:#abb3bf;font-size:13px}
.collection-confirm{grid-column:1/-1;border:1px solid #34383f;border-radius:10px;padding:14px;background:#202329;min-width:0}
.collection-confirm strong{display:block;overflow-wrap:anywhere;font-size:14px}
.collection-confirm p{color:#abb3bf;font-size:13px;line-height:1.6;margin:8px 0 12px}
.collection-confirm>div{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.collection-confirm button{min-height:44px;padding:8px 12px;border:1px solid #454a53;border-radius:8px}
.collection-confirm .danger{color:#f2bcc4}
.playlist-management :focus-visible{outline:2px solid #f4f5f6;outline-offset:3px}
#library-main[data-view=playlists] #page-actions,#library-main[data-view=saved] #page-actions{gap:8px}
#edit-playlists,#edit-saved{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 12px;margin-left:auto}
#edit-playlists svg,#edit-saved svg{width:17px;height:17px}
#page-actions:has(#edit-playlists) .u308-vs{margin-left:0}
#library-main[data-view=saved] #page-actions>small{flex:1;min-width:150px;font-size:12px;color:#abb3bf}
@media(max-width:1023px){.playlist-management-row{grid-template-columns:44px minmax(0,1fr) auto;gap:8px;padding:12px 0}.collection-art{width:44px;height:44px}.collection-name input{font-size:16px}.collection-name{grid-column:2/-1}.collection-order{grid-column:1/3;justify-self:start}.collection-delete{grid-column:3;justify-self:end}.collection-grip{display:none}.collection-confirm{grid-column:1/-1}.collection-delete span{font-size:13px}}
@media(prefers-reduced-motion:reduce){.playlist-management *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:1023px){#edit-playlists{font-size:14px;padding:8px}}

.collection-confirm button,.collection-name input{scroll-margin-top:calc(var(--archive-safe-top,env(safe-area-inset-top,0px)) + 12px);scroll-margin-bottom:20px}
@media(max-width:1023px){.collection-order .collection-grip{display:none}.collection-confirm button,.collection-name input{scroll-margin-bottom:calc(var(--archive-safe-bottom,env(safe-area-inset-bottom,0px)) + 180px)}}

.playlist-management-row.collection-drop-target{box-shadow:inset 0 2px 0 #abb3bf;background:#ffffff03}

/* Library editing follows the queue's row and drag feedback, keeping 44px targets. */
.collection-icon-edit{position:relative;border:1px solid #41464f;cursor:pointer;flex:none;padding:8px;overflow:visible}
.collection-icon-edit:hover{background:#30343c;color:#f4f5f6}
.collection-icon-hint{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;width:18px;height:18px;border-radius:5px;background:#343941;color:#d1d7df;border:1px solid #191b1f}
.collection-icon-hint svg{width:11px;height:11px}
#content.u178-editing>.track-group{border-bottom:1px solid #ffffff0b;border-radius:8px;min-width:0}
#content.u178-editing .track-group>.track.playlist-editing{display:grid;grid-template-columns:44px 44px minmax(0,1fr) 44px 44px;align-items:center;gap:8px;padding:8px 4px;min-height:64px;border:0;flex-wrap:nowrap}
#content .playlist-editing.is-selected{background:#ffffff05;border-radius:8px}
#content .playlist-editing .u178-select-control,#content .playlist-editing .playlist-grip,#content .playlist-editing .song-edit-remove{width:44px;min-height:44px;padding:0;display:grid;place-items:center;grid-row:1;grid-column:auto;flex:none;color:#9ba5b3}
.song-select-box{display:grid;place-items:center;width:19px;height:19px;border:1.5px solid #626d7b;border-radius:5px;color:#14171b}
.song-select-box svg{width:15px;height:15px;stroke-width:2.5}
[aria-checked=true]>.song-select-box{border-color:var(--archive-accent,#b7dc7c);background:var(--archive-accent,#b7dc7c)}
.song-edit-art{display:block;width:44px;height:44px;cursor:grab;user-select:none;touch-action:pan-y}
.song-edit-art img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px;pointer-events:none}
.song-edit-copy{display:block;text-align:left;min-width:0;width:100%;padding:0;min-height:44px;cursor:grab;user-select:none;touch-action:pan-y}
.song-edit-copy strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:#edf0f4;font-size:14px;line-height:1.45;font-weight:650}
.song-edit-copy .song-edit-artist{display:block;font-size:12px;color:#9da7b5;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.song-edit-copy small{display:block;font-size:12px;line-height:1.5;margin-top:3px;color:#abb3bf;overflow-wrap:anywhere}
#content .playlist-editing .playlist-grip{cursor:grab;touch-action:none}
#content .playlist-editing .song-edit-remove:hover{color:#edb6bf;background:#ffffff08}
#content .playlist-editing .playlist-grip svg,#content .playlist-editing .song-edit-remove svg{width:18px;height:18px}
#content[data-song-drag=true]{user-select:none}
#content[data-song-drag=true]>.track-group:not(.song-sort-ghost){opacity:.6}
#content>.track-group[data-sort-placeholder=true]{opacity:.2!important;background:#ffffff06;outline:1px dashed #626d7b;outline-offset:-1px}
#content>.song-sort-ghost{position:fixed;z-index:100;margin:0;pointer-events:none;border:1px solid #505761;box-shadow:0 12px 35px #0008;background:#2b2e34;opacity:.98;border-radius:8px;transform-origin:center}
#content>.song-sort-ghost .track{background:#2b2e34!important}
.playlist-editing :focus-visible{outline:2px solid var(--archive-accent,#b7dc7c);outline-offset:2px}
#playlist-icon-panel{padding:20px;max-height:calc(100dvh - var(--archive-safe-top,env(safe-area-inset-top,0px)) - var(--archive-safe-bottom,env(safe-area-inset-bottom,0px)) - 24px);overflow:auto}
.playlist-icon-grid button{min-height:72px;min-width:44px;background:#202329;border-color:#34383f;color:#c4ccd7}
.playlist-icon-grid button:hover{background:#2b2f36}
@media(max-width:1023px){
 #content.u178-editing .track-group>.track.playlist-editing{grid-template-columns:44px 40px minmax(0,1fr) 44px 44px;gap:4px;padding:8px 0;min-height:64px}
 #content .playlist-editing .u178-select-control,#content .playlist-editing .playlist-grip,#content .playlist-editing .song-edit-remove{display:grid;width:44px;min-width:44px;min-height:44px;margin:0;grid-row:1!important;grid-column:auto!important}
 .song-edit-art{width:40px;height:40px;cursor:pointer}.song-edit-copy{cursor:pointer;min-height:44px}.song-edit-copy strong{font-size:14px}
 #library-main[data-view=saved] #page-actions>small,#library-main[data-view=playlist] #page-actions>small{flex:1 1 100%;font-size:12px;color:#9da7b5}
 .u178 .dock{border-radius:10px;padding:8px 10px;gap:4px}.u178 .dock .count{flex-basis:auto;font-size:12px}
 .u178 .dock button{padding:6px 8px}
 #playlist-icon-panel{scroll-padding-bottom:calc(var(--archive-safe-bottom,env(safe-area-inset-bottom,0px)) + 12px)}
}
@media(prefers-reduced-motion:reduce){.song-sort-ghost{transition:none!important;animation:none!important}}

#content.u178-editing .playlist-editing>.u178-select-control{grid-column:1!important;grid-row:1!important}#content.u178-editing .playlist-editing>.song-edit-art{grid-column:2!important;grid-row:1!important}#content.u178-editing .playlist-editing>.song-edit-copy{grid-column:3!important;grid-row:1!important}#content.u178-editing .playlist-editing>.song-edit-remove{grid-column:4!important;grid-row:1!important}#content.u178-editing .playlist-editing>.playlist-grip{grid-column:5!important;grid-row:1!important}

#playlist-icon-panel{width:min(520px,calc(100vw - var(--archive-safe-left,env(safe-area-inset-left,0px)) - var(--archive-safe-right,env(safe-area-inset-right,0px)) - 24px))}

/* Compact editing uses the same title/artist and performer lines as a normal row. */
.song-edit-title{display:flex;align-items:baseline;gap:4px;min-width:0;white-space:nowrap}
.song-edit-title strong{display:block;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:unset;line-height:1.45}
.song-edit-title .song-edit-artist{display:block;flex:0 0 auto;min-width:0;max-width:44%;margin:0;font-size:12px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.song-edit-copy>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:20px;line-height:20px;margin-top:2px}
.song-edit-copy>small .member-badge,.song-edit-copy>small .guest-credit{vertical-align:middle}
#library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track{height:64px;min-height:64px;padding-block:8px}
#library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track>.track-info strong{display:flex;align-items:baseline;gap:3px;white-space:nowrap;min-width:0;-webkit-line-clamp:unset;line-height:1.45}
#library-main:is([data-view=saved],[data-view=playlist]) .track-info .track-song-title{flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#library-main:is([data-view=saved],[data-view=playlist]) .track-info .track-artist{flex:0 0 auto;min-width:0;max-width:44%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track>.track-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:20px;line-height:20px;margin-top:2px}
.collection-art>.playlist-initial{display:grid;place-items:center;width:100%;height:100%;line-height:1;font-style:normal;text-align:center;margin:0;padding:0}
@media(max-width:1023px){
 .playlist-management-row>.collection-art{grid-column:1;grid-row:1;align-self:start;margin-top:0}
 .playlist-management-row>.collection-name{grid-column:2/-1;grid-row:1}
 .playlist-management-row>.collection-order{grid-row:2}
 .playlist-management-row>.collection-delete{grid-row:2}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing){grid-template-columns:40px minmax(0,1fr) repeat(3,44px);gap:4px;padding-inline:0}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.track-cover{width:40px;height:40px;grid-column:1;grid-row:1;align-self:center}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.track-info{grid-column:2;grid-row:1;min-height:44px;padding:0}
 /* The title retains its history action; avoid a duplicate history target in a narrow row. */
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.history-count{display:none}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.history-count span,#library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.history-count svg:last-child{display:none}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.save{grid-column:3;grid-row:1}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>[data-enqueue]{grid-column:4;grid-row:1}
 #library-main:is([data-view=saved],[data-view=playlist]) #content>.track-group>.track:not(.playlist-editing)>.record-more{grid-column:5;grid-row:1}
}

/* Pinning is an explicit draft edit; browsing only displays the pinned marker. */
.collection-order .collection-pin svg{width:15px;height:15px}
.collection-pin[aria-pressed=true]{color:#f4f5f6;background:#ffffff0c}
.collection-pin[aria-pressed=true] svg{fill:currentColor}
