
/* Shared control treatment (no alternate designs or test-mode selectors). */
#spotifyModal .spotify-immersive-backdrop,
#spotifyModal .spotify-immersive-context,
#spotifyModal .spotify-immersive-extras,
#spotifyModal section#spotifyImmersiveQueue,
#spotifyMiniPlayer .spotify-immersive-mini-progress{display:none}
#spotifyModal section#spotifyImmersiveQueue[hidden]{display:none!important}
#spotifyModal .spotify-immersive-action svg{width:23px;height:23px;display:block;fill:none;stroke:currentColor}
#spotifyModal .spotify-immersive-action{display:grid!important;place-items:center;
  width:42px;height:42px;min-width:42px;min-height:42px;padding:8px!important;
  border:0!important;border-radius:50%!important;background:transparent!important;color:#e1e7e3!important;
  touch-action:manipulation;flex-shrink:0}
#spotifyModal .spotify-immersive-action.is-on{color:#1ed760!important}
#spotifyModal .spotify-immersive-action:disabled{opacity:.4}
#spotifyModal .spotify-immersive-context{font:700 10px/1.35 system-ui,sans-serif;letter-spacing:.1em;color:#e1e5e2}
#spotifyModal .spotify-immersive-context strong{display:block;margin-top:2px;color:white;font-size:12px;letter-spacing:0}
#spotifyModal .spotify-now-progress{order:0}
#spotifyModal #spotifyNowSeek[type=range]{-webkit-appearance:none!important;appearance:none!important;
  min-height:18px!important;height:18px!important;padding:0!important;margin:0!important;
  background:transparent!important;border:0!important;accent-color:#fff;touch-action:pan-x}
#spotifyModal #spotifyNowSeek[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:5px;background:#ffffff66}
#spotifyModal #spotifyNowSeek[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;margin-top:-4px}
#spotifyModal #spotifyNowSeek[type=range]::-moz-range-track{height:4px;border-radius:5px;background:#ffffff66}
#spotifyModal #spotifyNowSeek[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:white}
#spotifyModal .spotify-now-controls svg,#spotifyModal #spotifyNowPlay svg{fill:currentColor!important}
#spotifyModal #spotifyLibraryMinimize{margin-left:auto}
#spotifyModal #spotifyImmersiveMinimize{margin-left:auto;flex-shrink:0}
#spotifyModal #spotifyEmbedPlayerView>.spotify-embed-head{display:flex;align-items:center}
#spotifyModal #spotifyEmbedPlayerView>.spotify-embed-head strong{flex:1;text-align:center}
/* LBRank immersive Spotify player: artwork, controls, queue and mini-player. */
#spotifyModal .spotify-modal-panel {
  height:100%!important;max-height:100%!important;width:100%!important;
  border:0!important;border-radius:0!important;padding-top:max(13px,env(safe-area-inset-top,0px))!important;
  background:linear-gradient(160deg,#325246 0%,#15281e 38%,#101312 80%)!important;
  box-shadow:none!important;gap:8px!important
}
#spotifyModal .spotify-modal-head{min-height:38px}
#spotifyModal #spotifyEmbeddedView,
#spotifyModal .spotify-library{padding-bottom:22px}
#spotifyModal #spotifyEmbedPlayerView{
  position:relative;gap:2px;flex:1;min-height:0;
}
#spotifyModal #spotifyEmbedPlayerView>.spotify-embed-head{
  min-height:36px;padding:0 0 2px;position:relative;z-index:1
}
#spotifyModal #spotifyPlayerTitle{font-size:13px}
#spotifyModal .spotify-now-playing{
  display:grid!important;grid-template-columns:minmax(0,1fr) 45px;
  gap:8px 8px;align-items:center;position:relative;isolation:isolate;
  justify-items:stretch;width:100%;min-width:0;
  padding:12px 3px 16px!important;background:transparent!important;
  border:0!important;border-radius:0!important;
}
#spotifyModal .spotify-immersive-backdrop{
  display:block;position:absolute;inset:-55px -55px 0;
  z-index:-1;opacity:.27;pointer-events:none;
  background-position:center;background-size:cover;
  filter:blur(52px) saturate(1.4);transform:scale(1.03);
  animation:spotify-immersive-breathe 12s ease-in-out infinite alternate
}
#spotifyModal .spotify-now-playing:after{
  content:'';position:absolute;inset:-12px -17px -10px;z-index:-1;
  pointer-events:none;background:linear-gradient(180deg,#12251b22,#111a15cc);
}
#spotifyModal .spotify-immersive-context{
  display:block;grid-column:1/-1;grid-row:1;text-align:center;margin:0 auto 10px
}
#spotifyModal #spotifyNowCover{
  grid-column:1/-1;grid-row:2;
  width:min(78vw,370px)!important;height:auto!important;
  max-height:min(40dvh,370px);aspect-ratio:1;object-fit:cover;
  justify-self:center;border-radius:6px!important;
  box-shadow:0 25px 55px #000b,0 0 0 1px #ffffff20;
  margin:2px 0 clamp(9px,2.6dvh,28px)
}
#spotifyModal .spotify-now-meta{
  grid-column:1;grid-row:3;min-width:0;text-align:left!important;padding-left:2px;
}
#spotifyModal .spotify-now-meta strong{
  display:block;font:800 clamp(23px,6vw,31px)/1.12 system-ui,sans-serif!important;
  letter-spacing:-.04em;color:#fff!important;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap
}
#spotifyModal .spotify-now-meta small{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:15px!important;color:#dbdfdc!important
}
#spotifyModal .spotify-player-like{
  grid-column:2;grid-row:3;justify-self:center;margin:0
}
#spotifyModal .spotify-now-progress{
  grid-column:1/-1;grid-row:4;display:grid!important;
  grid-template-columns:39px minmax(0,1fr) 39px;align-items:center;
  gap:8px;width:100%;font-size:11px;color:#ebf0ec;font-variant-numeric:tabular-nums;
  margin-top:clamp(7px,1.8dvh,19px)
}
#spotifyModal .spotify-now-progress span:last-child{text-align:right}
#spotifyModal .spotify-now-controls{
  grid-column:1/-1;grid-row:5;justify-content:space-around;gap:10px;
  width:100%;min-height:73px
}
#spotifyModal .spotify-now-controls button{
  width:57px;min-width:57px;min-height:60px;color:#fff!important
}
#spotifyModal #spotifyNowPlay{
  width:70px;height:70px;background:#1ed760!important;
  box-shadow:0 5px 22px #0006;color:#071209!important
}
#spotifyModal #spotifyNowPlay svg{width:30px;height:30px}
#spotifyModal .spotify-immersive-extras{
  display:flex;grid-column:1/-1;grid-row:6;width:100%;
  align-items:center;justify-content:space-around;gap:8px;margin-top:0
}
#spotifyModal .spotify-immersive-action{
  width:43px;height:43px;min-height:43px;flex:0 0 43px
}
#spotifyModal .spotify-immersive-action.is-on{color:#1ed760!important}

#spotifyModal .spotify-immersive-repeat{position:relative}
#spotifyModal section#spotifyImmersiveQueue:not([hidden]){
  display:block;margin:5px 0 12px;padding:16px 11px;border:1px solid #ffffff20;
  border-radius:14px;background:#0f1b16ed;color:#fff
}
#spotifyModal .spotify-immersive-queue-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:7px}
#spotifyModal .spotify-immersive-queue-heading h3{font-size:18px;margin:0;color:#fff}
#spotifyModal .spotify-immersive-queue-heading span{font-size:11px;color:#b9ccc0}
#spotifyModal .spotify-immersive-queue-list{display:grid;gap:0;max-height:32dvh;overflow-y:auto;overscroll-behavior:contain}
#spotifyModal .spotify-immersive-queue-row{
  display:flex;gap:12px;width:100%;min-height:61px;align-items:center;text-align:left;
  background:transparent!important;border:0!important;border-bottom:1px solid #ffffff16!important;
  border-radius:0!important;padding:7px 4px!important;color:#fff!important
}
#spotifyModal .spotify-immersive-queue-row.is-current{background:#1ed76017!important}
#spotifyModal .spotify-immersive-queue-row.is-current strong{color:#1ed760}
#spotifyModal .spotify-immersive-queue-art{flex:0 0 45px;width:45px;height:45px;border-radius:5px;object-fit:cover}
#spotifyModal .spotify-immersive-queue-copy{display:grid;gap:4px;min-width:0;flex:1}
#spotifyModal .spotify-immersive-queue-copy strong,#spotifyModal .spotify-immersive-queue-copy small{
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
#spotifyModal .spotify-immersive-queue-copy strong{font-size:13px}
#spotifyModal .spotify-immersive-queue-copy small{font-size:11px;color:#bbcac1}
#spotifyModal .spotify-immersive-queue-empty{font-size:13px;color:#c3cec7}
/* Album-cover-derived mini-player, rather than a permanent green strip. */
#spotifyMiniPlayer{
  isolation:isolate;overflow:hidden;
  background:linear-gradient(105deg,rgba(0,0,0,.06),rgba(0,0,0,.4)),var(--spotify-mini-color,#242424)!important;
  border-color:#ffffff2b!important;padding-bottom:9px!important;
  box-shadow:0 -7px 24px #0007!important;
  color:#fff!important;
}
#spotifyMiniPlayer::before{
  content:"";position:absolute;inset:-30px;pointer-events:none;z-index:0;
  background-image:var(--spotify-mini-artwork,none);
  background-position:center;background-size:cover;
  filter:blur(34px) saturate(1.25) brightness(.74);
  opacity:.45;
}
#spotifyMiniPlayer > :not(.spotify-immersive-mini-progress){
  position:relative;z-index:1;
}
#spotifyMiniPlayer .spotify-immersive-mini-progress{
  display:block;position:absolute;left:0;right:0;bottom:0;height:3px;z-index:2;
  border-radius:0;
  background:linear-gradient(to right,#fff var(--spotify-immersive-progress,0%),#ffffff55 var(--spotify-immersive-progress,0%))
}
#spotifyMiniPlayer #spotifyMiniCover{border-radius:4px}
@keyframes spotify-immersive-breathe {
  from{transform:scale(1.03) translate3d(-1%,0,0);opacity:.2}
  to{transform:scale(1.12) translate3d(1%,1%,0);opacity:.35}
}
@media(max-height:710px) {
  #spotifyModal #spotifyNowCover{
    width:min(57vw,260px)!important;max-height:32dvh;margin:0 0 7px
  }
  #spotifyModal .spotify-now-playing{gap:5px}
}
@media(max-width:360px){
  #spotifyModal .spotify-immersive-context{margin-bottom:1px}
  #spotifyModal .spotify-now-controls{min-height:64px}
  #spotifyModal #spotifyNowPlay{width:62px;height:62px}
  #spotifyModal .spotify-immersive-extras{gap:2px}
}
@media(prefers-reduced-motion:reduce){
  #spotifyModal .spotify-immersive-backdrop{animation:none!important}
}


/* Compact, non-scrolling Now Playing viewport; other Spotify screens still scroll normally. */
#spotifyModal[data-spotify-view="player"]{
  overflow:hidden!important;overflow-x:clip!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-modal-panel{
  display:flex!important;flex-direction:column!important;gap:0!important;
  height:100%!important;max-height:100%!important;min-height:0!important;
  overflow:hidden!important;overscroll-behavior:none;
  padding: max(6px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-left,0px)) 3px!important;
  box-sizing:border-box!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-drag-handle{
  flex:0 0 22px!important;min-height:22px!important;height:22px!important
}
#spotifyModal[data-spotify-view="player"] .spotify-modal-head{display:none!important}
#spotifyModal[data-spotify-view="player"] #spotifyConnected{
  display:flex!important;flex-direction:column!important;
  flex:1 1 0!important;min-height:0!important;min-width:0!important;
  width:100%!important;overflow:hidden!important;gap:0!important
}
#spotifyModal[data-spotify-view="player"] #spotifyEmbedPlayerView{
  display:flex!important;flex-direction:column!important;position:relative!important;
  width:100%!important;min-width:0!important;min-height:0!important;
  flex:1 1 0!important;gap:0!important;overflow:hidden!important;
}
#spotifyModal[data-spotify-view="player"] #spotifyEmbedPlayerView>.spotify-embed-head{
  flex:0 0 39px;min-height:39px!important;height:39px!important;padding:0!important;
  justify-content:space-between;gap:3px!important
}
#spotifyModal[data-spotify-view="player"] #spotifyEmbedPlayerView>.spotify-embed-head>button{
  min-width:40px!important;min-height:39px!important;width:40px!important;height:39px!important
}
#spotifyModal[data-spotify-view="player"] #spotifyEmbedPlayerView>.spotify-embed-head strong{
  flex:1!important;text-align:center;overflow:hidden;text-overflow:ellipsis
}
#spotifyModal[data-spotify-view="player"] .spotify-now-playing{
  flex:1 1 0!important;min-height:0!important;min-width:0!important;
  width:100%!important;height:100%!important;box-sizing:border-box!important;
  margin:0!important;padding:4px 1px 2px!important;
  overflow:hidden!important;
  display:grid!important;align-content:stretch!important;
  grid-template-columns:minmax(0,1fr) 44px!important;
  grid-template-rows:auto minmax(0,1fr) auto auto auto auto!important;
  column-gap:4px!important;row-gap:clamp(2px,.65dvh,7px)!important;
  touch-action:pan-y;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-context{
  grid-column:1/-1!important;grid-row:1!important;margin:0!important;
  align-self:start;text-align:center
}
#spotifyModal[data-spotify-view="player"] #spotifyNowCover{
  grid-column:1/-1!important;grid-row:2!important;
  justify-self:center!important;align-self:center!important;
  width:var(--spotify-art-size,185px)!important;height:var(--spotify-art-size,185px)!important;
  max-height:100%!important;max-width:100%!important;
  aspect-ratio:1!important;object-fit:contain!important;
  margin:0!important;border-radius:6px!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-meta{
  grid-column:1!important;grid-row:3!important;
  margin:0!important;min-height:0;gap:3px!important;overflow:hidden;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-meta strong{
  font-size:clamp(19px,5vw,27px)!important;line-height:1.18!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-meta small{
  font-size:13px!important;line-height:1.2!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-player-like{
  grid-column:2!important;grid-row:3!important;align-self:center!important;
  width:40px!important;height:40px!important
}
#spotifyModal[data-spotify-view="player"] .spotify-now-progress{
  grid-column:1/-1!important;grid-row:4!important;
  min-height:20px!important;height:20px!important;margin:1px 0 0!important;
  gap:6px!important;font-size:10px!important;align-self:center
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls{
  grid-column:1/-1!important;grid-row:5!important;
  margin:0!important;min-height:61px!important;height:61px!important;
  width:100%!important;gap:8px!important;justify-content:space-evenly!important
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls button{
  width:54px!important;height:54px!important;
  min-width:54px!important;min-height:54px!important;padding:8px!important;
  touch-action:manipulation
}
#spotifyModal[data-spotify-view="player"] #spotifyNowPlay{
  width:61px!important;height:61px!important;min-width:61px!important;min-height:61px!important
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-extras{
  grid-column:1/-1!important;grid-row:6!important;
  display:flex!important;min-height:43px!important;height:43px!important;
  width:100%!important;gap:2px!important;margin:0!important;
  justify-content:space-between!important
}
#spotifyModal[data-spotify-view="player"] section#spotifyImmersiveQueue:not([hidden]){
  position:absolute!important;z-index:24!important;display:flex!important;flex-direction:column!important;
  inset:12% 0 0!important;height:auto!important;min-height:0!important;
  margin:0!important;padding:12px!important;
  border-radius:17px 17px 0 0!important;box-shadow:0 -9px 34px #000a;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-queue-list{
  max-height:none!important;flex:1 1 auto!important;min-height:0!important;
  overflow-y:auto!important;-webkit-overflow-scrolling:touch
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-queue-heading{flex:0 0 auto}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-queue-close{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
#spotifyModal[data-spotify-view="player"] #spotifyStatus.is-error{
  position:absolute;z-index:17;top:42px;left:12px;right:12px;margin:0;pointer-events:none;
  font-size:11px;max-height:62px;overflow:hidden
}
#spotifyModal[data-spotify-view="player"] .spotify-modal-panel,
#spotifyModal[data-spotify-view="player"] .spotify-modal-panel *{
  -webkit-text-size-adjust:100%;box-sizing:border-box;max-width:100%
}
#spotifyModal .spotify-immersive-action,#spotifyModal .spotify-now-controls button{
  -webkit-tap-highlight-color:transparent
}
@media(max-height:650px){
  #spotifyModal[data-spotify-view="player"] #spotifyNowCover{width:var(--spotify-art-size,125px)!important;height:var(--spotify-art-size,125px)!important}
  #spotifyModal[data-spotify-view="player"] .spotify-now-controls{height:49px!important;min-height:49px!important}
  #spotifyModal[data-spotify-view="player"] #spotifyNowPlay{width:48px!important;height:48px!important;min-height:48px!important;min-width:48px!important}
  #spotifyModal[data-spotify-view="player"] .spotify-immersive-extras{height:36px!important;min-height:36px!important}
  #spotifyModal[data-spotify-view="player"] .spotify-immersive-action{height:36px!important;min-height:36px!important}
}

/* Stable, distinct touch targets: Spotify-style 5-across transport row.
   Queue/share/link are a separate labeled toolbar beneath it. */
#spotifyModal[data-spotify-view="player"] .spotify-now-controls{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  align-items:center!important;
  justify-items:center!important;
  justify-content:stretch!important;
  gap:0!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls > button{
  justify-self:center!important;
  align-self:center!important;
  position:relative!important;
  z-index:2!important;
  flex:initial!important;
  max-width:100%!important;
  min-width:0!important;
  width:min(100%,53px)!important;
  height:51px!important;
  min-height:51px!important;
  padding:8px!important;
  pointer-events:auto!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls > .spotify-immersive-action{
  width:46px!important;
  height:46px!important;
  min-height:46px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.8;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls > .spotify-immersive-action.is-on{
  opacity:1;color:#1ed760!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls > .spotify-immersive-action svg{
  display:block!important;width:24px!important;height:24px!important;
  fill:none!important;stroke:currentColor!important;pointer-events:none!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-controls > .spotify-immersive-action svg path{
  fill:none!important;stroke:currentColor!important
}
#spotifyModal[data-spotify-view="player"] #spotifyNowPlay{
  width:60px!important;height:60px!important;
  min-height:60px!important;min-width:60px!important;
  max-width:60px!important;justify-self:center!important
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-repeat-one{
  position:absolute!important;top:48%!important;left:50%!important;
  transform:translate(-50%,-50%)!important;
  display:block!important;padding:0px 2px!important;
  background:#1a3327!important;color:#1ed760!important;
  border-radius:3px!important;font:900 11px/1.2 system-ui,sans-serif!important;
  pointer-events:none!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-repeat-one[hidden]{
  display:none!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-extras{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
  justify-items:center!important;align-items:center!important;
  width:100%!important;min-height:50px!important;height:50px!important;
  gap:4px!important;z-index:3!important;position:relative!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-extras > button{
  display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;
  gap:2px!important;width:100%!important;max-width:120px!important;
  height:49px!important;min-height:49px!important;
  border:0!important;background:transparent!important;
  color:#dbe3df!important;pointer-events:auto!important;
  position:relative!important;z-index:3!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-extras > button svg{
  height:20px!important;width:20px!important;pointer-events:none!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-extras > button .spotify-immersive-control-label{
  display:block!important;color:#d0ddd4!important;
  font:650 10px/1.1 system-ui,sans-serif!important;
  text-align:center!important;pointer-events:none!important;
}
#spotifyModal[data-spotify-view="player"] section#spotifyImmersiveQueue:not([hidden]){
  z-index:30!important;
}
@media(max-height:650px){
  #spotifyModal[data-spotify-view="player"] .spotify-now-controls > button{height:45px!important;min-height:45px!important}
  #spotifyModal[data-spotify-view="player"] #spotifyNowPlay{height:52px!important;min-height:52px!important;width:52px!important;min-width:52px!important}
  #spotifyModal[data-spotify-view="player"] .spotify-immersive-extras{height:48px!important;min-height:48px!important}
  #spotifyModal[data-spotify-view="player"] .spotify-immersive-extras > button{height:47px!important;min-height:47px!important}
}

/* Queue trigger is a normal grid item, never the full-screen queue sheet. */
#spotifyModal[data-spotify-view="player"] #spotifyImmersiveQueueButton {
  grid-column:auto!important;position:relative!important;inset:auto!important;
  width:100%!important;height:49px!important;min-height:49px!important;
  max-width:120px!important;margin:0!important;padding:6px!important;
  align-self:center!important;justify-self:center!important;
  z-index:3!important;pointer-events:auto!important;
  border:0!important;border-radius:10px!important;box-shadow:none!important;
  background:transparent!important;
}
#spotifyModal[data-spotify-view="player"] #spotifyImmersiveQueueButton svg,
#spotifyModal[data-spotify-view="player"] #spotifyImmersiveQueueButton .spotify-immersive-control-label {
  pointer-events:none!important;
}

/* Spotify Connect first-play recovery on iPhone. This overlay only appears
   when the Spotify mobile app has not registered a playable device. */
#spotifyModal #spotifyNativeLaunchPanel[hidden] {
  display: none !important;
}
#spotifyModal[data-spotify-view="player"] #spotifyNativeLaunchPanel {
  position: absolute !important;
  z-index: 50 !important;
  top: 45px !important;
  left: 6px !important;
  right: 6px !important;
  bottom: 6px !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  justify-content: center !important;
  align-items: stretch !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(255,255,255,.19) !important;
  border-radius: 18px !important;
  padding: clamp(16px,5vw,30px) !important;
  background: rgba(11,25,18,.96) !important;
  box-shadow: 0 14px 44px rgba(0,0,0,.5) !important;
  color: #f5fff8 !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  text-align: center !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
}
#spotifyModal #spotifyNativeLaunchPanel strong {
  color: #fff !important;
  font: 750 clamp(18px,5vw,24px)/1.2 system-ui,sans-serif !important;
}
#spotifyModal #spotifyNativeLaunchPanel p {
  color: #d2dfd6 !important;
  font: 450 13px/1.5 system-ui,sans-serif !important;
  margin: 0 0 8px !important;
}
#spotifyModal #spotifyNativeLaunchPanel .spotify-native-launch-button,
#spotifyModal #spotifyNativeLaunchPanel .spotify-native-launch-retry {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  min-height: 48px !important;
  width: 100% !important;
  padding: 11px 15px !important;
  border-radius: 24px !important;
  font: 750 14px/1.25 system-ui,sans-serif !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
  cursor: pointer !important;
}
#spotifyModal #spotifyNativeLaunchPanel .spotify-native-launch-button {
  color: #071709 !important;
  background: #1ed760 !important;
  border: 1px solid #1ed760 !important;
}
#spotifyModal #spotifyNativeLaunchPanel .spotify-native-launch-retry {
  color: #fff !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.36) !important;
}
#spotifyModal #spotifyNativeLaunchPanel :is(a,button):focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 3px !important;
}

/* The recovery panel must really disappear when the device reconnects;
   include the player view selector to outrank its visible overlay styles. */
#spotifyModal[data-spotify-view="player"] #spotifyNativeLaunchPanel[hidden] {
  display: none !important;
}

/* Spotify artwork gesture: horizontal flicks switch tracks, vertical gestures
   remain available to the browser. Prevent image dragging on touch devices. */
#spotifyModal[data-spotify-view="player"] #spotifyNowCover {
  touch-action: pan-y !important;
  -webkit-user-drag: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  cursor: grab !important;
}
#spotifyModal[data-spotify-view="player"] #spotifyNowCover:active {
  cursor: grabbing !important;
}


/* Spotify screen separation: library/search/playlist pages stay pure black.
   The immersive Now Playing page alone picks up its album-art colors. */
#spotifyModal:not([data-spotify-view="player"]) .spotify-modal-panel {
  background:#000!important;
  background-image:none!important;
  background-color:#000!important;
}
#spotifyModal:not([data-spotify-view="player"]) :is(
  #spotifyConnected,.spotify-library,.spotify-library-results,.spotify-library-card,
  .spotify-track-row,.spotify-full-tracks,.spotify-full-track,
  .spotify-search-result,.spotify-search-results,.spotify-v2-collection,
  .spotify-embed-mount,.spotify-embedded-view,.spotify-embed-player-view,
  .spotify-modal-head,.spotify-embed-head,.spotify-library-tabs,
  .spotify-connect-player,.spotify-modal-section
) {
  background:#000!important;
  background-image:none!important;
  background-color:#000!important;
  box-shadow:none!important;
}
#spotifyModal:not([data-spotify-view="player"]) :is(
  .spotify-full-track,.spotify-library-card,.spotify-track-row,
  .spotify-search-result,.spotify-full-track:hover,.spotify-full-track:focus-visible
) {
  background:#000!important;
  background-image:none!important;
}
#spotifyModal:not([data-spotify-view="player"]) :is(
  .spotify-full-track:active,.spotify-library-card:active,.spotify-search-result:active
) {
  background:#131313!important;
}
#spotifyModal:not([data-spotify-view="player"]) .spotify-library-tabs .selected {
  background:#1ed760!important;
  color:#000!important;
}
#spotifyModal:not([data-spotify-view="player"]) :is(
  .spotify-modal-panel input,.spotify-modal-panel select
) {
  background:#000!important;
  color:#fff!important;
  border-color:#3a3a3a!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-modal-panel {
  background-color:#000!important;
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.48) 43%,rgba(0,0,0,.91) 100%),
    var(--spotify-current-artwork,none)!important;
  background-position:center,center!important;
  background-size:cover,cover!important;
  background-repeat:no-repeat,no-repeat!important;
  transition:background-color .2s ease!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-now-playing:after {
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.28))!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-immersive-backdrop {
  opacity:.42!important;
}
/* Library colors are independent of which LBRank appearance is selected. */

/* Long track titles travel gently to show their entire name, then return.
   Short names remain static. Artist labels stay in their own row. */
#spotifyModal[data-spotify-view="player"] .spotify-now-meta,
#spotifyMiniPlayer .spotify-mini-details {
  overflow:hidden!important;
  min-width:0!important;
}
#spotifyMiniPlayer .spotify-mini-details {
  grid-template-columns:minmax(0,1fr)!important;
}
#spotifyModal[data-spotify-view="player"] .spotify-modal-panel .spotify-now-meta #spotifyNowTitle,
#spotifyMiniPlayer .spotify-mini-details #spotifyMiniTitle {
  display:block!important;
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  will-change:transform;
}
#spotifyModal #spotifyNowTitle.spotify-title-is-scrolling,
#spotifyMiniPlayer #spotifyMiniTitle.spotify-title-is-scrolling {
  animation:spotify-title-marquee var(--spotify-title-duration,12s) ease-in-out infinite!important;
}
@keyframes spotify-title-marquee {
  0%,12% {transform:translate3d(0,0,0)}
  45%,65% {transform:translate3d(var(--spotify-title-travel,0px),0,0)}
  100% {transform:translate3d(0,0,0)}
}
@media(prefers-reduced-motion:reduce) {
  #spotifyModal[data-spotify-view="player"] .spotify-modal-panel .spotify-now-meta #spotifyNowTitle,
  #spotifyMiniPlayer .spotify-mini-details #spotifyMiniTitle {
    animation:none!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    will-change:auto;
  }
}
