/* Mobile browsing keeps search anchored and navigation available between gestures. */
body.library-page dialog[data-selected-playlist-action-menu]:not([open]){display:none!important}
@media (max-width:760px), ((hover:none) and (pointer:coarse) and (max-width:1050px)){
/* Inline-menu overflow rules otherwise reset the pager to the Library panel.
   A modal is in the top layer and does not need the pager to be unclipped. */
body.library-page.favorites-three-pane-active .favorites-selected-layout:has(dialog[data-selected-playlist-action-menu]){
  overflow-x:auto!important;overflow-y:hidden!important;
}
body.library-page.favorites-page dialog.favorites-playlist-action-menu{
  position:fixed!important;inset:0!important;margin:0!important;transform:none!important;
  box-sizing:border-box;width:100%!important;height:100dvh!important;min-width:0;max-width:none!important;max-height:none!important;
  padding:calc(20px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px))!important;
  display:grid;grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:18px;overflow:hidden!important;
  border:0!important;border-radius:0!important;background:#08090f;color:#f5f3f7;box-shadow:none;animation:none;
}
body.library-page dialog.favorites-playlist-action-menu::before{display:none}
body.library-page .favorites-playlist-action-menu-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
body.library-page .favorites-playlist-action-menu-head strong{font-size:1.2rem;line-height:1.3}
body.library-page dialog.favorites-playlist-action-menu .favorites-mobile-menu-close{
  position:static!important;display:grid;place-items:center;flex:none;width:44px;height:44px;margin:0;padding:0;
  border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:inherit;font-size:1.3rem;line-height:1;cursor:pointer;
}
body.library-page .favorites-playlist-action-options{
  display:grid;align-content:start;gap:6px;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;
  overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;
}
body.library-page dialog.favorites-playlist-action-menu :is(.favorites-right-context-item,.favorites-right-context-subaction){
  box-sizing:border-box;min-height:58px;width:100%;padding:12px;border-radius:12px;font-size:1rem;white-space:normal;
}
body.library-page dialog.favorites-playlist-action-menu .favorites-right-context-item > span{min-width:0;white-space:normal;overflow-wrap:anywhere}
body.library-page dialog.favorites-playlist-action-menu.is-mobile-submenu-phase .favorites-playlist-action-options > :not(.is-submenu-active){display:none!important}
body.library-page dialog.favorites-playlist-action-menu .is-submenu-active{display:block;min-width:0}
body.library-page dialog.favorites-playlist-action-menu .is-submenu-active > .favorites-right-context-item{display:none!important}
body.library-page dialog.favorites-playlist-action-menu .is-submenu-active > .favorites-right-context-submenu{
  position:static!important;inset:auto!important;transform:none!important;display:grid!important;gap:10px;
  width:100%!important;min-width:0;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none;
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
}
body.library-page dialog.favorites-playlist-action-menu .favorites-mobile-menu-back{
  position:static!important;display:flex;align-items:center;gap:12px;min-height:44px;margin:0 0 10px;padding:10px 12px;
  border:0;border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font:inherit;cursor:pointer;
}
body.library-page dialog.favorites-playlist-action-menu button:focus-visible{outline:2px solid #b699ff;outline-offset:-3px}
}
body.library-page .favorites-playlist-track-sort-close{display:none}
body.library-page .favorites-playlist-track-sort-options{display:grid;gap:4px}
body.library-page dialog.favorites-playlist-track-sort-menu:not([open]){display:none!important}
@media (max-width:760px), ((hover:none) and (pointer:coarse) and (max-width:1050px)){
body.library-page.favorites-page dialog.favorites-playlist-track-sort-menu{
  position:fixed!important;inset:0!important;margin:0!important;transform:none!important;
  box-sizing:border-box;width:100%!important;height:100dvh!important;max-width:none;max-height:none;
  padding:calc(20px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));
  display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;overflow:hidden;
  border:0;border-radius:0;background:#08090f;color:#f5f3f7;box-shadow:none;
}
body.library-page dialog.favorites-playlist-track-sort-menu::before{display:none}
body.library-page .favorites-playlist-track-sort-menu-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
body.library-page .favorites-playlist-track-sort-menu-title{margin:0;padding:0;border:0;color:#fff;font-size:1.2rem;line-height:1.3}
body.library-page .favorites-playlist-track-sort-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font:inherit;font-size:1.6rem;line-height:1;cursor:pointer}
body.library-page .favorites-playlist-track-sort-options{align-content:start;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
body.library-page .favorites-playlist-track-sort-menu-item{min-height:58px!important}
body.library-page .favorites-playlist-track-sort-menu button:focus-visible{outline:2px solid #b699ff;outline-offset:-3px}
}
/* Party permissions are a second page of the same panel on every screen. */
body.library-page .favorites-playlist-hero-party-popover{
  grid-template-rows:auto minmax(0,1fr);overflow:hidden;box-sizing:border-box;
}
body.library-page .favorites-playlist-hero-party-popover[popover="manual"]{
  position:fixed;inset:auto;margin:0;
  left:var(--party-popover-left);top:var(--party-popover-top);
  width:var(--party-popover-width);max-height:var(--party-popover-max-height);
}
body.library-page .favorites-playlist-hero-party-popover-head{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;
}
body.library-page .favorites-playlist-hero-party-popover-head:has(.favorites-playlist-hero-party-back){
  grid-template-columns:auto minmax(0,1fr) auto;
}
body.library-page .favorites-playlist-hero-party-popover-head strong{line-height:1.3}
body.library-page .favorites-playlist-hero-party-popover-head small{line-height:1.4}
body.library-page .favorites-playlist-hero-party-popover-head .favorites-playlist-hero-party-popover-actions{
  grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:flex-start;padding:0;gap:8px;
}
body.library-page .favorites-playlist-hero-party-popover :is(.favorites-playlist-hero-party-back,.favorites-playlist-hero-party-close){
  position:static;display:grid;place-items:center;flex-shrink:0;
  width:44px;height:44px;padding:0;border:0;border-radius:50%;
  background:rgba(255,255,255,.1);color:#fff;font:inherit;font-size:1.6rem;line-height:1;cursor:pointer;
}
body.library-page .favorites-playlist-hero-party-back svg{width:24px;height:24px}
/* Leave room for profile rings inside the scrolling panel. */
body.library-page .favorites-playlist-hero-party-members{padding:4px;box-sizing:border-box}
body.library-page .favorites-playlist-hero-party-popover [hidden]{display:none!important}
body.library-page .favorites-playlist-hero-party-edit-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}
body.library-page .favorites-playlist-hero-party-popover :is(.favorites-playlist-hero-party-edit-actions,.favorites-playlist-hero-party-remove-confirm,.is-add-candidate) button,
body.library-page .favorites-playlist-hero-party-directory{
  display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;
  padding:10px 14px;border:1px solid rgba(255,255,255,.15);border-radius:14px;
  background:rgba(255,255,255,.07);color:#eef0f5;font:inherit;font-size:.85rem;cursor:pointer;
}
body.library-page .favorites-playlist-hero-party-popover button:disabled{opacity:.5;cursor:default}
body.library-page .favorites-playlist-hero-party-popover button.is-remove{color:#ffb5c2}
body.library-page .favorites-playlist-hero-party-remove-confirm{grid-column:1 / -1;padding:12px;border-radius:14px;background:rgba(255,103,126,.08)}
body.library-page .favorites-playlist-hero-party-remove-confirm p,
body.library-page .favorites-playlist-hero-party-help{margin:0 0 12px;color:#b9bdc9;font-size:.85rem;line-height:1.5;white-space:normal}
body.library-page .favorites-playlist-hero-party-remove-confirm > div{display:flex;flex-wrap:wrap;gap:8px}
body.library-page .favorites-playlist-hero-party-member-menu-options button{min-height:60px}
body.library-page .favorites-playlist-hero-party-member-menu-options button :is(strong,small){white-space:normal;overflow:visible;text-overflow:clip;line-height:1.4}
body.library-page .favorites-playlist-hero-party-search{display:grid;gap:8px;margin-bottom:12px;color:#b9bdc9;font-size:.85rem}
body.library-page .favorites-playlist-hero-party-search input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.05);color:#fff;font:inherit;font-size:16px}
body.library-page .favorites-playlist-hero-party-member.is-add-candidate{grid-template-columns:42px minmax(0,1fr) auto}
body.library-page .favorites-playlist-hero-party-body{
  min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;
  overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;
}
body.library-page .favorites-playlist-hero-party-permissions{display:grid;gap:10px}
body.library-page .favorites-playlist-hero-party-notice{margin:0 0 14px;padding:12px;border-radius:10px;background:rgba(143,85,237,.16);color:#e6dcff;font-size:.85rem;line-height:1.45}
body.library-page .favorites-playlist-hero-party-notice.is-error{background:rgba(255,103,126,.12);color:#ffb5c2}
body.library-page .favorites-playlist-hero-party-permissions > button{
  display:flex;align-items:center;min-height:68px;width:100%;padding:14px;
  border:1px solid rgba(255,255,255,.12);border-radius:14px;
  background:rgba(255,255,255,.05);color:#fff;text-align:left;font:inherit;cursor:pointer;
}
body.library-page .favorites-playlist-hero-party-permissions .favorites-playlist-hero-party-bulk-option-copy{
  display:grid;gap:5px;min-width:0;white-space:normal;overflow-wrap:anywhere;
}
body.library-page .favorites-playlist-hero-party-permissions strong{font-size:.94rem;line-height:1.35}
body.library-page .favorites-playlist-hero-party-permissions small{font-size:.8rem;line-height:1.45;color:#b9bdc9}
body.library-page .favorites-playlist-hero-party-permissions > button:hover{background:rgba(255,255,255,.1)}
body.library-page .favorites-playlist-hero-party-popover button:focus-visible{outline:2px solid #b699ff;outline-offset:-3px}
@media (max-width:760px), ((hover:none) and (pointer:coarse) and (max-width:1050px)){
body.library-page.favorites-page .favorites-playlist-hero:has(.favorites-playlist-hero-party-root.is-open){
  z-index:2000!important;overflow:visible!important;
}
body.library-page.favorites-page .favorites-playlist-hero-party-root.is-open{
  position:fixed!important;inset:0!important;z-index:2001!important;
  display:block;width:100vw;height:100dvh;transform:none!important;
}
body.library-page.favorites-page .favorites-playlist-hero-party-root.is-open .favorites-playlist-hero-party-stack{visibility:hidden}
body.library-page.favorites-page .favorites-playlist-hero-party-root.is-open .favorites-playlist-hero-party-popover.is-mobile-fullscreen{
  position:fixed!important;inset:0!important;margin:0!important;
  width:100%!important;height:100dvh!important;min-width:0;max-width:none;max-height:none!important;
  box-sizing:border-box;grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:18px;
  padding:calc(20px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));
  border:0;border-radius:0;background:#08090f;box-shadow:none;
  overflow:hidden!important;transform:none!important;animation:none;
}
body.library-page.favorites-page .favorites-playlist-hero-party-root.is-open .favorites-playlist-hero-party-popover::before{display:none}
body.library-page.favorites-page .favorites-playlist-hero-party-root.is-open .favorites-playlist-hero-party-popover-head{
  position:static;padding:0;background:#08090f;
}
body.library-page .favorites-playlist-hero-party-popover-head strong{font-size:1.2rem}
body.library-page .favorites-playlist-hero-party-popover-head small{font-size:.85rem}
body.library-page .favorites-playlist-hero-party-popover-actions > button{min-height:44px;font-size:.85rem}
body.library-page .favorites-playlist-hero-party-permissions strong{font-size:1rem}
body.library-page .favorites-playlist-hero-party-permissions small{font-size:.9rem}
}
.favorites-mobile-hero-playing{display:none}
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page .favorites-mobile-hero-stats{gap:0}
body.library-page .favorites-mobile-hero-metrics,
body.library-page .favorites-mobile-hero-playing{grid-area:1 / 1;align-self:center;transition:opacity .45s ease}
body.library-page .favorites-mobile-hero-metrics{display:grid;gap:12px;opacity:1}
body.library-page .favorites-mobile-hero-playing{display:grid;gap:8px;opacity:0;pointer-events:none}
body.library-page .favorites-mobile-hero-playing strong{font-size:clamp(20px,5.5vw,25px);line-height:1.2}
body.library-page .favorites-mobile-hero-playing > span{font-size:clamp(14px,4vw,18px);line-height:1.35;overflow-wrap:anywhere;color:rgba(220,225,239,.84)}
body.library-page .favorites-mobile-hero-stats.is-showing-now-playing .favorites-mobile-hero-metrics{opacity:0;pointer-events:none}
body.library-page .favorites-mobile-hero-stats.is-showing-now-playing .favorites-mobile-hero-playing{opacity:1}
html.elara-playback-still body.library-page :is(.favorites-mobile-hero-metrics,.favorites-mobile-hero-playing){transition:none}
body.library-page.favorites-page.favorites-three-pane-active:has(.favorites-mobile-panel-dot[data-mobile-panel-target="center"].is-active) .favorites-selected-playlist.has-album-hero [data-mobile-hero-dock] .favorites-album-hero-play.is-playing > span{
  width:13px!important;height:20px!important;
}
body.library-page.favorites-page.favorites-three-pane-active:has(.favorites-mobile-panel-dot[data-mobile-panel-target="center"].is-active) .favorites-selected-playlist.has-album-hero [data-mobile-hero-dock] .favorites-album-hero-play.is-playing > span::before,
body.library-page.favorites-page.favorites-three-pane-active:has(.favorites-mobile-panel-dot[data-mobile-panel-target="center"].is-active) .favorites-selected-playlist.has-album-hero [data-mobile-hero-dock] .favorites-album-hero-play.is-playing > span::after{
  width:5px!important;height:20px!important;border-radius:2.5px!important;
}
}
@media (prefers-reduced-motion:reduce){
  body.library-page :is(.favorites-mobile-hero-metrics,.favorites-mobile-hero-playing){transition:none}
}
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-three-pane-active.favorites-mobile-topbar-search-expanded .topbar .favorites-search-shell{
  position:relative!important;grid-column:2!important;left:auto!important;top:auto!important;transform:none!important;
  width:100%!important;max-width:none!important;min-width:0!important;justify-self:stretch!important;flex:1 1 auto!important;
}
body.library-page.favorites-three-pane-active .topbar .favorites-search-box{
  margin:0!important;transform:none!important;justify-self:start!important;
}
body.library-page.favorites-three-pane-active .topbar .favorites-search-input::placeholder,
body.library-page.favorites-three-pane-active .topbar .favorites-search-box:focus-within .favorites-search-input::placeholder{
  opacity:1!important;color:#bfc5d0!important;
}
body.library-page.favorites-three-pane-active .topbar .favorites-search-mobile-toggle{flex-shrink:0!important}
body.library-page.favorites-three-pane-active .favorites-center-artist-directory .is-artist-card{
  display:grid!important;grid-template-columns:minmax(0,1fr) 44px!important;align-items:center!important;gap:10px!important;
  min-height:84px!important;padding:0!important;
}
body.library-page.favorites-three-pane-active .favorites-center-artist-directory .is-artist-card > .favorites-search-card{
  display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;grid-template-rows:1fr 1fr!important;
  align-items:center!important;align-content:center!important;justify-items:stretch!important;
  column-gap:12px!important;row-gap:3px!important;min-height:84px!important;height:auto!important;
  width:100%!important;padding:10px!important;text-align:left!important;border-radius:18px!important;
}
body.library-page.favorites-three-pane-active .favorites-center-artist-directory .is-artist-card .favorites-search-card-cover{
  grid-column:1!important;grid-row:1 / 3!important;align-self:center!important;width:64px!important;height:64px!important;margin:0!important;
}
body.library-page.favorites-three-pane-active .favorites-center-artist-directory .is-artist-card .favorites-search-card-title{
  grid-column:2!important;grid-row:1!important;align-self:end!important;text-align:left!important;padding:0!important;margin:0!important;
  min-width:0!important;font-size:16px!important;line-height:1.25!important;
}
body.library-page.favorites-three-pane-active .favorites-center-artist-directory .is-artist-card .favorites-search-card-meta{
  display:block!important;grid-column:2!important;grid-row:2!important;align-self:start!important;text-align:left!important;
  padding:0!important;margin:0!important;font-size:12px!important;line-height:1.3!important;color:#b8b7c3!important;
}
body.library-page.favorites-three-pane-active .favorites-center-artist-directory .is-artist-card .favorites-search-result-menu-button{
  width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;
}
}
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
/* Override the older album-hero reservation when no dock is visible. */
body.library-page.favorites-page.favorites-three-pane-active:is(.favorites-mobile-chrome-collapsed,.favorites-mobile-browse-player-empty) .library-shell,
body.library-page.favorites-page.favorites-three-pane-active:is(.favorites-mobile-chrome-collapsed,.favorites-mobile-browse-player-empty) .library-shell:has(.favorites-selected-playlist.has-album-hero){
  --favorites-bottom-player-height:0px!important;
}
body.library-page.favorites-three-pane-active.favorites-mobile-home-nav-visible:is(.favorites-mobile-chrome-collapsed,.favorites-mobile-browse-player-empty) .favorites-mobile-panel-dots{
  bottom:calc(72px + env(safe-area-inset-bottom,0px))!important;
}
body.library-page.favorites-three-pane-active.favorites-mobile-chrome-collapsed.favorites-mobile-home-nav-visible .favorites-mobile-home-bottom-nav{
  bottom:calc(6px + env(safe-area-inset-bottom,0px))!important;opacity:1!important;visibility:visible!important;
  pointer-events:auto!important;transform:none!important;
}
body.library-page.favorites-three-pane-active.favorites-mobile-chrome-collapsed:not(.favorites-mobile-browse-player-empty):has(.favorites-mobile-home-bottom-nav) .favorites-mobile-chrome-handle-bottom:not([hidden]){
  display:inline-grid!important;left:auto!important;right:max(10px,env(safe-area-inset-right,0px))!important;
  bottom:calc(74px + env(safe-area-inset-bottom,0px))!important;transform:none!important;
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
}
body.library-page.favorites-mobile-browse-player-empty .topbar-player-dock.is-favorites-bottom-player{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
body.library-page.favorites-mobile-browse-player-empty.favorites-mobile-home-nav-visible .favorites-mobile-home-bottom-nav{
  bottom:calc(6px + env(safe-area-inset-bottom,0px))!important;
}
body.library-page.favorites-three-pane-active:has(#favorites-connections-panel:not([hidden]),#topbar-player-queue-panel:not([hidden]),.favorites-account-menu-panel:not([hidden])) :is(.favorites-mobile-home-bottom-nav,.favorites-mobile-chrome-handle-bottom){
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
@media (prefers-reduced-motion:reduce){body.library-page .favorites-mobile-home-bottom-nav{transition:none!important}}
}

/* Search controls take their normal place in the list, then yield to results. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-three-pane-active .favorites-center-search-results .favorites-search-sticky-header.is-query-search-header{
  position:relative!important;top:auto!important;margin:0 -16px 8px!important;padding:4px 16px 12px!important;
  gap:8px!important;min-height:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  transition:opacity .16s ease,visibility .16s ease!important;
}
body.library-page.favorites-three-pane-active .favorites-center-search-results .favorites-search-sticky-header.is-query-search-header::before{
  top:0!important;bottom:0!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header.is-mobile-search-scrolled{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-return-row{
  min-height:44px!important;gap:8px!important;padding:0!important;
}
body.library-page.favorites-three-pane-active .is-query-search-header .favorites-search-return-row .favorites-center-back-button{
  min-height:44px!important;height:44px!important;padding:0 12px!important;font-size:14px!important;gap:8px!important;
}
body.library-page.favorites-three-pane-active .is-query-search-header .favorites-search-return-row .favorites-center-close-button{
  width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-chip-row{
  margin:0!important;padding:0!important;gap:8px!important;scroll-padding-inline:0!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-chip{
  flex:0 0 auto!important;min-height:44px!important;height:44px!important;padding:0 16px!important;font-size:14px!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-section-head{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:0!important;padding:0!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-section-title-row{
  display:grid!important;gap:3px!important;min-width:0!important;flex:1 1 auto!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-section-title-row h3{
  margin:0!important;font-size:16px!important;line-height:1.25!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-result-summary{
  white-space:normal!important;overflow-wrap:anywhere;font-size:12px!important;line-height:1.3!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-section-summary{
  flex:0 0 auto!important;margin:0!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-result-options-button{
  min-height:44px!important;padding:0 10px!important;gap:6px!important;font-size:13px!important;
}
body.library-page.favorites-three-pane-active .favorites-search-sticky-header.is-query-search-header .favorites-search-result-options-button svg{
  width:20px!important;height:20px!important;
}
}
@media (prefers-reduced-motion:reduce){
body.library-page .favorites-search-sticky-header.is-query-search-header{transition:none!important}
}

/* Phone Home uses the live viewport and keeps fixed navigation outside pane clipping. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-three-pane-active .library-shell{
  --favorites-mobile-viewport-height:100vh;
  --favorites-pane-height:calc(var(--favorites-mobile-viewport-height) - var(--favorites-pane-top) - var(--favorites-bottom-player-height));
  height:calc(var(--favorites-mobile-viewport-height) - var(--favorites-pane-top));
  --favorites-panel-island-bottom-gap:0px;
}
@supports (height:100dvh){
  body.library-page.favorites-three-pane-active .library-shell{--favorites-mobile-viewport-height:100dvh}
}
body.library-page.favorites-three-pane-active:has(.favorites-mobile-home-bottom-nav) .collection-panel{
  padding-top:0!important;padding-bottom:0!important;
}
body.library-page.favorites-three-pane-active .favorites-selected-layout.is-collection-view .favorites-center-home-broadcast-carousel{
  box-sizing:border-box;width:100%!important;max-width:100%!important;
  margin:0!important;padding:2px 0 12px!important;scroll-padding-inline:0!important;
}
body.library-page.favorites-three-pane-active .favorites-selected-layout.is-collection-view .favorites-center-home-broadcast-card{
  box-sizing:border-box;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-rows:auto 1fr;gap:14px 12px;align-items:center;
  flex:0 0 100%!important;width:100%!important;min-width:100%!important;max-width:100%!important;
  min-height:0!important;padding:18px!important;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-copy{display:contents!important}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-copy h3{
  grid-column:1 / -1;grid-row:1;width:100%!important;max-width:none!important;
  font-size:clamp(21px,5.8vw,27px)!important;line-height:1.15!important;
  white-space:normal!important;overflow-wrap:anywhere;text-wrap:wrap!important;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-actions{
  grid-column:1;grid-row:2;display:flex!important;flex-wrap:wrap!important;
  align-self:center!important;align-items:center!important;justify-content:center;gap:10px!important;
  min-width:0;margin:0!important;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-actions > button{
  box-sizing:border-box;flex:0 0 44px;width:44px!important;min-width:44px!important;
  height:44px!important;min-height:44px!important;padding:0!important;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-art{
  grid-column:2;grid-row:2;position:relative!important;inset:auto!important;
  display:flex!important;flex-direction:column;align-items:center;gap:8px;
  box-sizing:border-box;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;
  padding:0!important;margin:0!important;align-self:center;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-cover{
  position:relative!important;inset:auto!important;display:block;
  width:100%!important;height:auto!important;max-width:160px;max-height:none!important;
  aspect-ratio:1;border-radius:18px!important;flex:none;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-art .favorites-center-home-broadcast-stats{
  position:relative!important;inset:auto!important;display:flex!important;flex-wrap:wrap!important;
  justify-content:center!important;gap:5px!important;width:100%!important;max-width:100%!important;
}
body.library-page.favorites-three-pane-active .favorites-center-home-broadcast-art .favorites-center-home-broadcast-stat{
  box-sizing:border-box;max-width:100%;min-height:24px;padding:4px 7px!important;
  white-space:normal;overflow-wrap:anywhere;line-height:1.2!important;
}
}

/* Panel 1's utility row yields to scrolling without resizing the list.
   The collapsed main bar leaves only a small gap above this row. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-three-pane-active.favorites-mobile-chrome-collapsed .favorites-side-menu{
  --library-sidebar-toolbar-shift:-48px;
}
body.library-page.favorites-three-pane-active .favorites-side-menu:not(.is-collapsed) .favorites-side-sticky-controls{
  transform:translateY(var(--library-sidebar-toolbar-shift,0px))!important;
  transition:grid-template-columns .22s ease,transform var(--library-chrome-motion,480ms) var(--library-chrome-easing,ease),opacity .18s ease,visibility 0s!important;
}
body.library-page.favorites-three-pane-active .favorites-side-menu:not(.is-collapsed) .favorites-side-sticky-controls.is-mobile-scroll-hidden{
  transform:translateY(calc(var(--library-sidebar-toolbar-shift,0px) - 100% - 2px))!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
  transition:grid-template-columns .22s ease,transform .18s ease,opacity .18s ease,visibility 0s .18s!important;
}
}
@media (prefers-reduced-motion:reduce){
body.library-page.favorites-three-pane-active.favorites-mobile-chrome-ready .favorites-side-menu:not(.is-collapsed) .favorites-side-sticky-controls{
  transition:none!important;
}
}

/* Album playback stays in the artwork row, independent of wrapped card copy. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page .favorites-artist-release-card{
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto 1fr;
}
body.library-page .favorites-artist-release-card > .favorites-artist-release-cover{
  grid-area:1 / 1;align-self:start;
}
body.library-page .favorites-artist-release-card > .favorites-artist-release-copy{
  grid-area:2 / 1;
}
body.library-page .favorites-artist-release-card > .favorites-artist-release-play{
  position:relative;inset:auto;grid-area:1 / 1;
  align-self:end;justify-self:start;margin:0 0 8px 8px;
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}
}

/* The artist pill can remain visible above a paused player. Its own fade/inert
   state controls interaction, independently of the bottom player's presence. */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-page.favorites-three-pane-active:has(.favorites-mobile-panel-dot[data-mobile-panel-target="center"].is-active) .favorites-selected-playlist.has-album-hero.is-selected-artist-view .favorites-artist-hero-tools[data-mobile-hero-dock="artist"]:not([inert]) :is([data-selected-artist-play],[data-selected-artist-shuffle]){
  pointer-events:auto!important;
}
}

/* A friend avatar accompanies the compact Join Listening status. */
.favorites-listen-with-notice[data-playlist-join-notice].has-avatar{grid-template-columns:46px minmax(0,1fr) 30px}
.favorites-listen-with-notice[data-playlist-join-notice].has-avatar > .favorites-listen-with-notice-icon{grid-column:1;grid-row:1}
.favorites-listen-with-notice[data-playlist-join-notice].has-avatar .favorites-listen-with-notice-copy{grid-column:2}
.favorites-listen-with-notice[data-playlist-join-notice].has-avatar .favorites-listen-with-notice-close{grid-column:3}
.favorites-listen-with-notice[data-playlist-join-notice].has-avatar .favorites-listen-with-notice-action{grid-column:2}

/* Keep mobile editing readable without iOS focus zoom leaving the whole Library
   enlarged after Search closes. The viewport still permits user pinch zoom. */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-page :is(input:not([type]),input[type="text"],input[type="search"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],textarea,select,[contenteditable="true"]){
  font-size:max(16px,1em)!important;
}
body.library-page.favorites-page.favorites-three-pane-active .topbar #search-input{
  font-size:max(16px,calc(1rem * var(--favorites-search-text-scale,1)))!important;
}
body.library-page.favorites-page.favorites-three-pane-active .favorites-side-search-input{
  font-size:max(16px,calc(var(--library-panel1-search-text-size,var(--library-panel1-text-size,1rem)) * .86))!important;
}
/* The center pane shares the inset frame used by both side panels. A viewport
   width minus a different gutter can extend it beyond that frame on phones. */
body.library-page.favorites-page.favorites-three-pane-active .favorites-selected-layout{
  --favorites-mobile-panel-padding:0px;
  --favorites-mobile-panel-width:100%;
  min-width:0;max-width:100%!important;padding-inline:0!important;
}
body.library-page.favorites-page #collection-selected-view .favorites-selected-layout > :is(.favorites-side-menu,.favorites-selected-playlist,.favorites-selected-album){
  flex-basis:100%!important;width:100%!important;min-width:0!important;max-width:100%!important;
  margin-inline:0!important;
}
body.library-page.favorites-page.favorites-three-pane-active .favorites-selected-layout.is-mobile-panel-overlay-active > .favorites-selected-playlist{
  left:0!important;right:auto!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
}
}

/* Saved and shared likes: one natural scrolling surface and a readable phone header. */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-sticky-stack{
  position:relative!important;top:auto!important;display:block!important;
  height:auto!important;max-height:none!important;overflow:visible!important;
}
body.library-page #collection-selected-view .favorites-playlist-hero:is(.is-liked-songs-playlist,.is-friends-family-liked-playlist){
  display:grid!important;grid-template-columns:72px minmax(0,1fr)!important;
  align-items:center!important;gap:16px!important;
  height:auto!important;min-height:156px!important;max-height:none!important;
  padding:28px 18px 22px!important;overflow:hidden!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-cover{
  display:block!important;width:72px!important;height:72px!important;min-height:0!important;
  margin:0!important;opacity:1!important;transform:none!important;align-self:center!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-cover .favorites-side-playlist-quad{
  width:100%!important;height:100%!important;min-height:0!important;aspect-ratio:1;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-copy{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;
  gap:6px!important;min-width:0!important;width:100%!important;max-width:100%!important;
  padding:0!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-copy h2{
  font-size:clamp(1.45rem,6.3vw,1.9rem)!important;line-height:1.12!important;
  margin:0!important;max-width:100%!important;white-space:normal!important;
  word-break:normal!important;overflow-wrap:normal!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-kicker{
  display:block!important;font-size:.7rem!important;line-height:1.3!important;margin:0!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-meta{
  display:flex!important;flex-wrap:wrap!important;gap:4px 10px!important;
  font-size:.75rem!important;line-height:1.4!important;opacity:1!important;
  max-height:none!important;margin:0!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) :is(.favorites-liked-songs-details-pill,.favorites-playlist-hero-compact-play,.favorites-playlist-hero-compact-shuffle,.favorites-playlist-table-head,.favorites-mobile-hero-stats),
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-copy::before{
  display:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-tools{
  position:relative!important;inset:auto!important;display:block!important;
  box-sizing:border-box;width:100%!important;max-width:100%!important;
  height:auto!important;min-height:72px!important;max-height:none!important;
  margin:0!important;padding:12px 16px!important;overflow:visible!important;
  opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-tools-row{
  display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
  gap:8px!important;min-width:0!important;min-height:48px!important;transform:none!important;padding-right:48px!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-tools-playback-actions{
  display:flex!important;gap:10px!important;align-items:center!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-tools button{
  min-height:44px!important;pointer-events:auto!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-hero-tools :is(.favorites-playlist-hero-play,.favorites-playlist-hero-shuffle){
  width:46px!important;min-width:46px!important;height:46px!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-view-menu-root{margin-left:auto!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-empty-playlist-view{font-size:.85rem!important;gap:6px!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-empty-playlist-view > span:first-child{display:none!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-table-head{
  display:flex!important;position:absolute!important;inset:12px 16px auto auto!important;
  width:44px!important;height:48px!important;min-height:48px!important;padding:0!important;z-index:10!important;pointer-events:auto!important;
  border:0!important;background:none!important;box-shadow:none!important;
  overflow:visible!important;opacity:1!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-table-head > span,
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-table-head::before,
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-table-head::after{display:none!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .favorites-playlist-table-sort-toggle{
  position:relative!important;inset:auto!important;display:inline-flex!important;
  width:44px!important;height:44px!important;margin:0!important;opacity:1!important;pointer-events:auto!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) :is(.favorites-selected-track-region,.track-picker-list.is-playlist-view){
  height:auto!important;min-height:0!important;max-height:none!important;
  overflow:visible!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .track-picker-list.is-playlist-view{
  display:grid!important;grid-template-columns:minmax(0,1fr)!important;
  padding:8px 12px 64px!important;margin:0!important;gap:6px!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-row{
  grid-template-columns:52px minmax(0,1fr) 44px!important;grid-template-rows:auto!important;
  align-items:center!important;column-gap:10px!important;row-gap:0!important;
  min-width:0!important;min-height:76px!important;padding:8px 0!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) :is(.playlist-track-cover,.playlist-track-album,.playlist-track-date-added,.playlist-track-compact-artist,.playlist-track-play-count,.playlist-track-waveform,.track-picker-memberships,.track-description,.playlist-track-queue-button,.playlist-track-like-button,.playlist-track-add-button){display:none!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-toggle.has-playlist-track-cover{
  display:block!important;grid-column:1!important;grid-row:1!important;
  width:52px!important;min-width:52px!important;height:52px!important;min-height:52px!important;
  border-radius:12px!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-main{
  grid-column:2!important;grid-row:1!important;min-width:0!important;gap:4px!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) :is(.playlist-track-title,.playlist-track-artist){
  display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;font-size:.95rem!important;line-height:1.25!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-artist{font-size:.75rem!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-action-shell{
  grid-column:3!important;grid-row:1!important;display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;gap:2px!important;padding:0!important;
  width:44px!important;min-width:44px!important;max-width:44px!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-action-duration{
  display:block!important;order:0;min-width:0!important;padding:0!important;
  font-size:.7rem!important;line-height:1.2!important;opacity:1!important;transform:none!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) .playlist-track-more-button{
  display:inline-flex!important;order:1;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) :is(.playlist-track-selected-glass,.playlist-track-hover-glass){left:-8px!important;right:-8px!important}
body.library-page #collection-selected-view :is(.is-liked-songs-playlist,.is-friends-family-liked-playlist) :is(.favorites-empty-playlist-view,.favorites-empty-playlist-dots){min-width:44px!important}}

/* Shared likes and empty playlists fit inside the same mobile browsing frame. */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page #collection-selected-view .is-friends-family-liked-playlist .favorites-playlist-hero-copy h2{
  max-height:none!important;overflow:visible!important;text-overflow:clip!important;
}
body.library-page #collection-selected-view .is-friends-family-liked-playlist .favorites-playlist-tools-row{
  flex-wrap:wrap!important;row-gap:8px!important;
}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog{padding:20px 16px;gap:24px;min-width:0}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog .favorites-search-section-head h3{font-size:1.3rem;line-height:1.25}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog .favorites-search-section-head > span{font-size:.8rem;line-height:1.4;white-space:normal}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog .favorites-center-likes-social-album-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;
}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog .favorites-center-likes-social-album-grid > *{min-width:0;width:100%;max-width:100%}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog .favorites-search-card-title{font-size:.95rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
body.library-page #collection-selected-view .favorites-friends-family-liked-catalog .favorites-search-card-meta{font-size:.75rem;line-height:1.4;white-space:normal}
body.library-page #collection-selected-view .favorites-empty-playlist-stage{
  box-sizing:border-box;min-width:0;width:100%;max-width:100%;height:auto;min-height:0;gap:12px;
}
body.library-page #collection-selected-view .favorites-empty-playlist-hero{
  box-sizing:border-box;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:16px;
  width:100%;min-width:0;min-height:156px;height:auto;padding:24px 16px;
}
body.library-page #collection-selected-view .favorites-empty-playlist-cover{
  width:72px;height:72px;min-width:0;min-height:0;align-self:start;
}
body.library-page #collection-selected-view .favorites-empty-playlist-cover > :is(svg,.favorites-side-playlist-quad){max-width:100%;max-height:100%}
body.library-page #collection-selected-view .favorites-empty-playlist-cover svg{width:36px;height:36px}
body.library-page #collection-selected-view .favorites-empty-playlist-copy{min-width:0;max-width:100%;gap:10px}
body.library-page #collection-selected-view .favorites-empty-playlist-copy h2{
  font-size:clamp(1.4rem,5.6vw,1.9rem);line-height:1.2;max-height:none;white-space:normal;overflow-wrap:anywhere;
}
body.library-page #collection-selected-view .favorites-empty-playlist-meta{font-size:.85rem;line-height:1.4}
body.library-page #collection-selected-view .favorites-empty-playlist-owner-row{gap:8px;align-items:flex-start}
body.library-page #collection-selected-view .favorites-empty-playlist-owner{max-width:100%;font-size:.8rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
body.library-page #collection-selected-view .favorites-empty-playlist-owner b{flex:none}
body.library-page #collection-selected-view .favorites-empty-playlist-owner-row .favorites-playlist-banner-edit-button{min-height:44px;padding:0 12px}
body.library-page #collection-selected-view .favorites-empty-playlist-tools{
  box-sizing:border-box;display:flex;flex-wrap:wrap;width:100%;min-width:0;gap:8px 12px;padding:12px 16px;
}
body.library-page #collection-selected-view .favorites-empty-playlist-tools > button,
body.library-page #collection-selected-view .favorites-empty-playlist-tools > span > button{min-height:44px;min-width:44px}
body.library-page #collection-selected-view .favorites-empty-playlist-search{box-sizing:border-box;min-width:0;max-width:100%;padding:20px 16px}
body.library-page #collection-selected-view .favorites-empty-playlist-search h3{font-size:1.3rem;line-height:1.3;white-space:normal}
}

/* Touch carousels expose playback on the card in view, without sticky hover. */
.favorites-mobile-card-play-cue{display:none}
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page .is-mobile-play-focus-track .favorites-artist-release-card > .favorites-artist-release-play{
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:none!important;
  transition:opacity .12s ease!important;
}
body.library-page .is-mobile-play-focus-track .favorites-artist-release-card:is(.is-mobile-play-focus,:focus-within,.is-playing) > .favorites-artist-release-play{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
}
body.library-page .is-mobile-play-focus-track .favorites-artist-release-card.is-mobile-play-focus .favorites-artist-release-menu-button{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}
body.library-page .is-mobile-play-focus-track .favorites-artist-release-play:focus-visible{
  outline:3px solid white;outline-offset:3px;
}
body.library-page .is-mobile-play-focus-track .favorites-artist-release-play.is-playing > span,
body.library-page .is-mobile-play-focus-track .favorites-artist-track-card.is-playing .favorites-mobile-card-play-cue > span{
  width:16px;height:20px;margin:0;border:0;border-left:6px solid currentColor;border-right:6px solid currentColor;box-sizing:border-box;
}
body.library-page .is-mobile-play-focus-track .favorites-mobile-card-play-cue{
  display:flex;position:absolute;left:8px;bottom:8px;z-index:8;width:48px;height:48px;align-items:center;justify-content:center;
  border-radius:50%;background:linear-gradient(135deg,#75f3a3,#48d979);color:#07131d;
  box-shadow:0 4px 16px rgba(0,0,0,.3);pointer-events:none;opacity:0;
}
body.library-page .is-mobile-play-focus-track .favorites-artist-track-card:is(.is-mobile-play-focus,:focus-within,.is-playing) .favorites-mobile-card-play-cue{opacity:1}
body.library-page .favorites-mobile-card-play-cue > span{
  width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid currentColor;margin-left:4px;
}
}

@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page [data-related-albums-strip-shell]:has(>.is-mobile-play-focus-track) > .favorites-related-strip-arrow:not(:disabled),
body.library-page .favorites-artist-track-card-carousel:has(>.is-mobile-play-focus-track) > .favorites-artist-track-card-arrow:not([hidden]):not(:disabled){
  opacity:1;visibility:visible;pointer-events:auto;z-index:12;min-width:44px;min-height:44px;transform:translateY(-50%);
}
}

/* The same menu cycles smooth, quick and persistent mobile bars. */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page{--library-chrome-motion:480ms;--library-chrome-easing:cubic-bezier(.22,.61,.36,1)}
body.library-page[data-library-chrome-mode="quick"]{--library-chrome-motion:160ms;--library-chrome-easing:ease-out}
body.library-page.favorites-three-pane-active .topbar.has-sticky-dropdown-nav.is-player-nav-ready,
body.library-page.favorites-three-pane-active #topbar-player-dock{
  transition:transform var(--library-chrome-motion) var(--library-chrome-easing),opacity var(--library-chrome-motion) ease,visibility 0s!important;
}
body.library-page.favorites-mobile-chrome-collapsed.favorites-three-pane-active .topbar.has-sticky-dropdown-nav.is-player-nav-ready{
  overflow:visible!important;
  transform:translateY(calc(-1 * var(--library-chrome-slide-distance,64px)))!important;
  transition:transform var(--library-chrome-motion) var(--library-chrome-easing),opacity var(--library-chrome-motion) ease,visibility 0s var(--library-chrome-motion)!important;
}
body.library-page.favorites-mobile-chrome-collapsed.favorites-three-pane-active #topbar-player-dock{
  transition:transform var(--library-chrome-motion) var(--library-chrome-easing),opacity var(--library-chrome-motion) ease,visibility 0s var(--library-chrome-motion)!important;
}
body.library-page [data-mobile-hero-metric-values]{display:grid;gap:10px;min-width:0}
body.library-page .favorites-mobile-hero-track-title{
  margin:0;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:clamp(12px,3.5vw,15px);line-height:1.4;color:rgba(220,225,239,.84);font-weight:600;
}
}
@media (prefers-reduced-motion:reduce){
body.library-page.favorites-three-pane-active .topbar.has-sticky-dropdown-nav.is-player-nav-ready,
body.library-page.favorites-three-pane-active #topbar-player-dock{transition:none!important}
}

/* Expand discovery rows in place on desktop and phones. */
body.library-page .favorites-related-albums.is-browse-expanded .favorites-related-strip-arrow{display:none!important}
body.library-page .favorites-related-albums.is-browse-expanded .favorites-artist-release-strip{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px!important;
  width:100%!important;max-width:100%!important;min-width:0!important;padding:12px 0!important;
  overflow:visible!important;scroll-snap-type:none!important;transform:none!important;
}
body.library-page .favorites-related-albums.is-browse-expanded .favorites-artist-release-card{
  width:100%!important;min-width:0!important;max-width:none!important;flex-basis:auto!important;
  transform:none!important;box-sizing:border-box;
}
@media (max-width:560px), (hover:none) and (pointer:coarse) and (max-width:820px){
body.library-page .favorites-related-albums.is-browse-expanded .favorites-artist-release-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important}
body.library-page .favorites-related-albums.is-browse-expanded .favorites-artist-release-card > .favorites-artist-release-play{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;
}
}

/* A rebuilt header is already collapsed: do not replay its layout transition. */
body.library-page .favorites-selected-playlist.is-restoring-browse-scroll :is(.favorites-album-hero-tools,.favorites-artist-hero-tools,.favorites-playlist-hero-tools){transition:none!important}

/* Card menus render in a body portal; their source must not unclip the panes. */
body.library-page.favorites-three-pane-active .favorites-selected-layout:has([data-library-release-card-menu-root].is-open,[data-library-playlist-card-menu-root].is-open){overflow:hidden!important;min-height:0!important}
body.library-page.favorites-three-pane-active .favorites-selected-playlist:has([data-library-release-card-menu-root].is-open,[data-library-playlist-card-menu-root].is-open){overflow-x:hidden!important;overflow-y:auto!important;min-height:0!important}
body.library-page .favorites-related-albums:not(.is-browse-expanded) .favorites-artist-release-strip:has([data-library-release-card-menu-root].is-open){overflow-x:auto!important;overflow-y:hidden!important}

/* Keep the phone scrollport and poster geometry independent of bar visibility.
   Bars cover/reveal the edges without resizing content or writing scrollTop. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-three-pane-active:has(#collection-selected-view) .library-shell{
  --favorites-pane-top:22px!important;
  --favorites-bottom-player-height:0px!important;
}
body.library-page.favorites-three-pane-active:has(#collection-selected-view) .topbar.has-sticky-dropdown-nav.is-player-nav-ready{
  position:fixed!important;top:0!important;left:0!important;right:0!important;
  width:auto!important;height:auto!important;min-height:54px!important;max-height:none!important;
  margin:0!important;padding:6px max(10px,env(safe-area-inset-right,0px)) 6px max(10px,env(safe-area-inset-left,0px))!important;
}
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-layout{
  --favorites-pane-top:22px!important;
}
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-layout > :is(.favorites-selected-playlist,.favorites-selected-album,.favorites-side-menu){
  padding-top:54px!important;padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))!important;
  scroll-padding-top:64px;scroll-padding-bottom:110px;overflow-anchor:none;
}
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-playlist.is-selected-album-view.has-album-hero .favorites-album-sticky-stack .favorites-album-hero{
  height:clamp(560px,100svh,860px)!important;min-height:clamp(560px,100svh,860px)!important;
}
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-playlist.is-selected-album-view.has-album-hero .favorites-mobile-now-playing-shell{gap:12px!important}
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-playlist.is-selected-album-view.has-album-hero .favorites-mobile-now-playing-art{
  width:clamp(190px,57vw,248px)!important;margin-top:0!important;
}
}

/* Artwork refreshes and canvas compositing cannot replace or cover card metadata. */
body.favorites-page .favorites-artist-release-cover{display:block;isolation:isolate}
body.favorites-page .favorites-discovery-cover-art{position:absolute;inset:0;z-index:0;display:block;overflow:hidden}
body.favorites-page .favorites-artist-release-cover > :is(.favorites-artist-release-badge,.favorites-artist-release-date-tag){
  z-index:2;opacity:1;visibility:visible;pointer-events:none;
}
/* Detail navigation and playback are distinct, native touch targets. */
body.favorites-page .favorites-artist-track-card{position:relative;display:grid;cursor:default}
body.favorites-page :is(.favorites-discovery-track-open,.favorites-discovery-track-copy){
  display:block;width:100%;min-width:0;padding:0;border:0;border-radius:inherit;
  background:transparent;color:inherit;font:inherit;text-align:inherit;cursor:pointer;
}
body.favorites-page .favorites-discovery-track-open{position:absolute;inset:0;height:100%}
body.favorites-page .favorites-discovery-track-copy{display:grid;gap:9px}
body.favorites-page .favorites-discovery-track-play{
  display:flex;position:absolute;left:8px;bottom:8px;z-index:8;width:48px;height:48px;min-width:48px;
  align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;
  background:linear-gradient(135deg,#75f3a3,#48d979);color:#07131d;box-shadow:0 4px 16px rgba(0,0,0,.3);
  cursor:pointer;pointer-events:auto;opacity:0;visibility:hidden;
}
body.favorites-page .favorites-discovery-track-play > span{
  width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:16px solid currentColor;margin-left:4px;
}
body.favorites-page .favorites-artist-track-card.is-playing .favorites-discovery-track-play > span{
  width:16px;height:20px;margin:0;border:0;border-left:6px solid currentColor;border-right:6px solid currentColor;box-sizing:border-box;
}
body.favorites-page .favorites-artist-track-card:is(:hover,:focus-within,.is-playing) .favorites-discovery-track-play{opacity:1;visibility:visible}
/* Only the focused card exposes the switchable More/Save control. */
body.favorites-page [data-discovery-card-actions]{
  position:absolute;top:8px;right:8px;z-index:12;display:block;width:44px;height:44px;
  opacity:0;visibility:hidden;pointer-events:none;
}
body.favorites-page :is(.favorites-artist-release-card,.favorites-artist-track-card):is(:hover,:focus-within) [data-discovery-card-actions],
body.favorites-page [data-discovery-card-actions].is-open{opacity:1;visibility:visible;pointer-events:auto}
body.favorites-page [data-discovery-card-actions] > :is([data-discovery-card-save],[data-discovery-card-more]){
  display:flex;position:relative;align-items:center;justify-content:center;gap:3px;
  width:44px;height:44px;min-width:44px;padding:10px;border:1px solid rgba(255,255,255,.22);border-radius:50%;
  background:rgba(7,15,22,.88);color:white;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.25);
  opacity:1;visibility:inherit;pointer-events:inherit;transform:none;-webkit-touch-callout:none;user-select:none;touch-action:manipulation;
}
body.favorites-page [data-discovery-card-actions] > [hidden],
body.favorites-page [data-discovery-card-mode="more"] > [data-discovery-card-save],
body.favorites-page [data-discovery-card-mode="save"] > [data-discovery-card-more]{display:none!important}
body.favorites-page .favorites-discovery-track-more{font-size:15px;letter-spacing:1px}
body.favorites-page .favorites-discovery-album-save{font-size:28px;line-height:1}
body.favorites-page .favorites-discovery-track-like svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
body.favorites-page [data-discovery-card-actions] > .favorites-discovery-track-like.is-liked{color:#fa71d3}
body.favorites-page .favorites-discovery-track-like.is-liked svg{fill:currentColor}
body.favorites-page [data-discovery-card-actions] > :disabled{cursor:wait}
body.favorites-page :is([data-discovery-card-save],[data-discovery-card-more],.favorites-discovery-track-play,.favorites-discovery-track-open,.favorites-discovery-track-copy):focus-visible{outline:3px solid var(--accent,#69dfc4);outline-offset:3px}
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
  body.library-page .favorites-artist-release-card > .favorites-artist-release-play,
  body.library-page .is-mobile-play-focus-track .favorites-artist-release-card > .favorites-artist-release-play,
  body.library-page .favorites-artist-track-card .favorites-discovery-track-play{
    opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;
  }
  body.library-page .is-mobile-play-focus-track :is(.favorites-artist-release-card,.favorites-artist-track-card):not(.is-mobile-play-focus):not(:focus-within) [data-discovery-card-actions]:not(.is-open){opacity:0;visibility:hidden;pointer-events:none}
  body.library-page .is-mobile-play-focus-track .is-mobile-play-focus [data-discovery-card-actions]{opacity:1;visibility:visible;pointer-events:auto}
}

/* Selection is explicit; carousel centering and incidental hover do not select a card. */
body.favorites-page.discovery-card-selection-ready :is(.favorites-artist-release-card,.favorites-artist-track-card):not(.is-discovery-selected) [data-discovery-card-actions]:not(.is-open){
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;
}
body.favorites-page.discovery-card-selection-ready .is-discovery-selected [data-discovery-card-actions]{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;
}
body.favorites-page.discovery-card-selection-ready .is-discovery-selected{
  background:rgba(255,255,255,.07);outline:none;
}
/* Recommendation selection uses the card shading, without colored artwork rings. */
body.favorites-page.discovery-card-selection-ready :is(.favorites-artist-release-card,.favorites-artist-track-card) :is(.favorites-artist-release-cover,.favorites-artist-track-card-cover){
  border-color:transparent;
  box-shadow:0 16px 30px rgba(0,0,0,.2);
}
body.favorites-page.discovery-card-selection-ready :is(.favorites-artist-release-card,.favorites-artist-track-card):focus-visible{
  outline:2px solid rgba(255,255,255,.8);outline-offset:3px;
}
/* Context menus use one viewport-sized sheet and one scroll surface on phones. */
@media (max-width:820px), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained{
  position:fixed!important;
  left:calc(var(--favorites-mobile-app-menu-left,0px) + 12px)!important;
  top:calc(var(--favorites-mobile-app-menu-top,0px) + 12px)!important;
  right:auto!important;bottom:auto!important;
  width:calc(var(--favorites-mobile-app-menu-width,100vw) - 24px)!important;
  height:calc(var(--favorites-mobile-app-menu-height,100dvh) - 24px)!important;
  min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  box-sizing:border-box!important;
  display:grid!important;align-content:start!important;
  padding:16px 18px max(24px,env(safe-area-inset-bottom,0px))!important;
  border:0!important;border-radius:18px!important;background:#262626!important;
  transform:none!important;transition:none!important;animation:none!important;
  overflow-x:hidden!important;overflow-y:auto!important;
  overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;
  overflow-anchor:none;
}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained.is-mobile-submenu-phase{
  padding:0!important;overflow:hidden!important;
}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained.is-mobile-submenu-phase > :not(.is-submenu-active){display:none!important}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained > .has-submenu.is-submenu-active{position:static!important;display:block!important}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained > .has-submenu.is-submenu-active > .favorites-right-context-item{display:none!important}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained > .has-submenu.is-submenu-active > .favorites-right-context-submenu{
  position:absolute!important;inset:0!important;
  width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;
  box-sizing:border-box!important;display:grid!important;align-content:start!important;
  padding:16px 18px max(24px,env(safe-area-inset-bottom,0px))!important;
  border:0!important;border-radius:inherit!important;background:#262626!important;box-shadow:none!important;
  visibility:visible!important;opacity:1!important;pointer-events:auto!important;
  transform:none!important;transition:none!important;animation:none!important;
  overflow-x:hidden!important;overflow-y:auto!important;
  overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;
  overflow-anchor:none;
}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained > .has-submenu:not(.is-submenu-active) > .favorites-right-context-submenu{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained .has-submenu::after{display:none!important}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained > .has-submenu.is-submenu-active > .favorites-right-context-submenu > .favorites-mobile-menu-close{display:none!important}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained .favorites-mobile-menu-back{
  position:sticky!important;top:0!important;z-index:5!important;
  display:inline-flex!important;align-items:center;justify-self:start;gap:12px;
  min-height:46px;width:auto;margin:0 0 10px;padding:0 14px;
  border:0;border-radius:8px;background:#353535;color:#f5f5f5;
  font:inherit;cursor:pointer;touch-action:manipulation;
}
body.library-page.favorites-page.favorites-three-pane-active .favorites-right-context-menu.is-mobile-app-panel.is-scroll-constrained .favorites-right-context-playlist-scroll{max-height:none!important;overflow:visible!important}
}

/* Touch devices have no hover step: Queue controls are ready on the first tap. */
@media (hover:none), (pointer:coarse){
body.library-page #topbar-player-queue-panel .topbar-player-queue-tools,
body.library-page #topbar-player-queue-panel .topbar-player-queue-view,
body.library-page #topbar-player-queue-panel .topbar-player-queue-clear{
  visibility:visible;opacity:1;pointer-events:auto;
  transform:none;clip-path:none;transition:none;
}
body.library-page #topbar-player-queue-panel .topbar-player-queue-clear:disabled{opacity:.42}
}

/* Block-level close button lets its auto margin align it to the menu's right edge. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page .favorites-side-create-choice-menu > .favorites-mobile-menu-close{display:grid}
}

/* Reclaim the detail toolbar's top gap while keeping the scrollport and scroll range steady. */
@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), (hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px){
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-layout > .favorites-selected-album.favorites-right-detail{
  --library-detail-chrome-space:54px;
  padding-top:var(--library-detail-chrome-space)!important;
  padding-bottom:calc(164px - var(--library-detail-chrome-space) + env(safe-area-inset-bottom,0px))!important;
  transition:padding-top var(--library-chrome-motion,480ms) var(--library-chrome-easing,ease),padding-bottom var(--library-chrome-motion,480ms) var(--library-chrome-easing,ease);
}
body.library-page.favorites-three-pane-active.favorites-mobile-chrome-collapsed #collection-selected-view .favorites-selected-layout > .favorites-selected-album.favorites-right-detail{
  --library-detail-chrome-space:var(--library-right-detail-pad-top,22px);
}
}
@media (prefers-reduced-motion:reduce){
body.library-page.favorites-three-pane-active #collection-selected-view .favorites-selected-layout > .favorites-selected-album.favorites-right-detail{transition:none}
}

@media (max-width:560px), ((hover:none) and (pointer:coarse) and (max-width:820px) and (max-height:1180px)), ((hover:none) and (pointer:coarse) and (max-width:1050px) and (max-height:560px)){
  /* Keep the artwork and its playback button in the same cell as a track scrolls into view. */
  body.library-page #collection-selected-view .track-picker-list.is-album-view .playlist-track-cover {
    display:grid;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr);
    isolation:isolate;
  }
  body.library-page #collection-selected-view .track-picker-list.is-album-view .playlist-track-cover > :is(canvas, img, .track-cover-placeholder, .playlist-track-number-control) {
    grid-area:1 / 1;
  }
  body.library-page #collection-selected-view .track-picker-list.is-album-view .playlist-track-cover > :is(canvas, img, .track-cover-placeholder) {
    transform:none!important; /* Override the shared mobile artwork scale(1). */
  }
  body.library-page #collection-selected-view .track-picker-list.is-album-view .playlist-track-cover > .playlist-track-number-control {
    position:relative;
    inset:auto;
    width:auto;
    height:auto;
    place-self:stretch;
    transform:none;
  }
}
