/* One bounded desktop player. Queue content must never size the viewport. */
@media(min-width:860px){
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded){position:fixed;inset:0;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:48px minmax(0,1fr) 64px 52px 48px 72px;grid-template-areas:'top top' 'art queue' 'meta queue' 'actions queue' 'seek seek' 'transport transport';gap:10px 28px;padding:16px 24px;height:100dvh;min-height:0;max-height:100dvh;width:auto;max-width:none;margin:0;overflow:hidden;align-items:stretch;align-content:stretch;box-sizing:border-box}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.amb{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.top{grid-area:top;position:relative;top:auto;min-height:0;height:48px;margin:0;padding:0;max-width:none}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.art{grid-area:art;position:relative;inset:auto;align-self:center;justify-self:center;min-height:0;min-width:0;width:min(100%,calc(100dvh - 370px));height:auto;max-height:100%;max-width:520px;aspect-ratio:1;object-fit:contain;margin:0;transform:none}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.meta{grid-area:meta;align-self:center;justify-self:center;width:100%;max-width:520px;min-height:0;margin:0;overflow:hidden}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded) #ft{font-size:22px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded) #fa{font-size:13px;line-height:1.5;margin:5px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.act{grid-area:actions;align-self:center;justify-self:center;min-height:0;height:52px;width:100%;max-width:520px;padding:2px 0;margin:0;overflow-x:auto;overflow-y:hidden;gap:8px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.act button{min-width:42px;min-height:42px;height:42px;padding:8px 12px;font-size:12px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.bar{grid-area:seek;align-self:center;width:100%;height:48px;min-height:0;max-width:none;margin:0;padding:0;border:0;gap:12px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.ctl{grid-area:transport;align-self:center;justify-self:center;width:min(100%,460px);height:72px;min-height:0;max-width:460px;margin:0;padding:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.ctl #pp{width:64px;height:64px;min-width:0;padding:14px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>:is(.lb,.player-queue-handle,.player-secondary-controls){display:none!important}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>#desktop-listening-panel{grid-area:queue;display:flex;flex-direction:column;align-self:stretch;width:100%;height:100%;min-height:0;max-height:100%;min-width:0;overflow:hidden}
 html.ritm-webapp[data-theme] #desktop-listening-panel .listening-tabs{flex:0 0 auto;display:flex;gap:4px;border-bottom:1px solid var(--ui-border);padding:6px 10px}
 html.ritm-webapp[data-theme] #desktop-listening-panel .listening-tabs button{min-height:44px;background:transparent;border:0;color:var(--mu);padding:8px 10px;cursor:pointer}
 html.ritm-webapp[data-theme] #desktop-listening-panel .listening-tabs button[aria-selected=true]{color:var(--tx);border-bottom:2px solid var(--active-red)}
 html.ritm-webapp[data-theme] #desktop-listening-panel .listening-body{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:12px;scrollbar-width:thin}
 html.ritm-webapp[data-theme] #desktop-listening-panel .clean-queue-row img{width:44px;height:44px}
 html.ritm-webapp[data-theme] #desktop-listening-panel .clean-queue-row b{font-size:13px}
 html.ritm-webapp[data-theme] #desktop-listening-panel .clean-queue-row small{font-size:11px}
}
@media(min-width:1100px){
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded){left:260px}
 html.ritm-webapp[data-theme] #mini{height:92px;padding:10px 20px;gap:12px;min-width:0}
 html.ritm-webapp[data-theme] #mini #mi{flex:0 0 54px;width:54px;height:54px}
 html.ritm-webapp[data-theme] #mini #mt{flex:0 1 210px;min-width:90px;max-width:210px;width:auto}
 html.ritm-webapp[data-theme] #mini .web-mini-transport{flex:1 1 0;min-width:0;gap:6px}
 html.ritm-webapp[data-theme] #mini .web-mini-transport>button{flex:0 0 38px;width:38px;min-width:38px}
 html.ritm-webapp[data-theme] #mini .web-mini-timeline{flex:1 1 0;min-width:100px;width:auto;gap:8px}
 html.ritm-webapp[data-theme] #mini .web-mini-timeline input{flex:1 1 0;min-width:0;width:100%}
 html.ritm-webapp[data-theme] #mini .web-mini-volume{flex:0 0 112px;width:112px;min-width:0}
 html.ritm-webapp[data-theme] #mini .web-mini-volume input{min-width:0;width:100%}
}
@media(min-width:860px) and (max-height:650px){
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded){grid-template-rows:44px minmax(0,1fr) 52px 46px 40px 64px;gap:6px 20px;padding:10px 20px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.art{width:min(100%,calc(100dvh - 300px))}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.ctl{height:64px}
 html.ritm-webapp[data-theme] #full.ritm-player-pro.open:not(.ritm-player-expanded)>.ctl #pp{width:58px;height:58px}
}
