.mobile-player-nav,
.mobile-player-queue {
  display: none;
}

/* Controls must fit inside the player grid. The volume rail is deliberately
   the same usable width as the seek rail, with actions on the row below. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2] .player-primary {
    grid-template-rows: minmax(300px, 48dvh) auto auto 56px 78px !important;
    gap: 12px 0 !important;
  }

  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls {
    grid-column: 2 !important;
    grid-row: 5 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas: "volume volume" "image submit" !important;
    width: 100% !important;
    max-width: none !important;
    height: 78px !important;
    min-height: 78px !important;
    align-content: start !important;
    justify-items: center !important;
    gap: 12px 16px !important;
    overflow: visible !important;
  }

  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls .player-volume-menu {
    grid-area: volume !important;
    grid-column: auto !important;
    width: 100% !important;
    max-width: none !important;
  }

  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls #createLyricsImage {
    grid-area: image !important;
    grid-column: auto !important;
  }

  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls #toggleLyricsSubmit {
    grid-area: submit !important;
    grid-column: auto !important;
    margin: 0 !important;
  }

  .full-player[data-mobile-player-v2] .timeline,
  .full-player[data-mobile-player-v2] .fullSeek,
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls {
    justify-self: stretch !important;
    min-width: 0 !important;
  }
}

/* Keep the mobile player controls in the lower half, after the artwork. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2] .player-primary {
    grid-template-rows: minmax(360px, 56dvh) auto auto 54px 78px !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary {
    grid-template-rows: minmax(360px, 56dvh) auto auto 54px 30px !important;
  }
}

/* Final mobile rail/lyrics pass: later than all legacy player rules. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2] .player-controls,
  .full-player[data-mobile-player-v2] .fullControls {
    transform: translateY(clamp(36px, 6dvh, 68px)) !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "volume" !important;
    width: calc(100vw - 40px) !important;
    max-width: none !important;
    height: 30px !important;
    min-height: 30px !important;
    transform: translateY(clamp(36px, 6dvh, 68px)) !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls .player-volume-menu {
    grid-area: volume !important;
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) 22px !important;
    width: 100% !important;
    max-width: none !important;
  }
  .full-player[data-mobile-player-v2] #playerVolume,
  .full-player[data-mobile-player-v2] #playerVolume::-webkit-slider-runnable-track {
    width: 100% !important;
    min-width: 0 !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-extra-controls.fullExtraControls {
    display: none !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary > .player-extra-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary .player-volume-menu {
    display: none !important;
  }
  .full-player[data-mobile-player-v2].has-static-lyrics .lyrics-lines.is-static-lyrics .lyrics-line-static,
  .full-player[data-mobile-player-v2].has-static-lyrics .lyrics-line-static {
    color: #fff !important;
    opacity: 1 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
  }
  .full-player[data-mobile-player-v2] .lyrics-scroll-hint:not([hidden]) {
    right: auto !important;
    left: 50% !important;
    bottom: 14px !important;
    display: inline-flex !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.92) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.7) !important;
    transform: translateX(-50%) !important;
  }
}

/* v19: keep the mobile transport controls lower than the center line. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .timeline,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .fullSeek,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .player-controls,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .fullControls,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .player-extra-controls.fullExtraControls {
    transform: translateY(clamp(64px, 9dvh, 104px)) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .timeline,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullSeek,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullControls {
    transform: translateY(clamp(12px, 2dvh, 24px)) !important;
  }
}

/* Final positioning pass: keep title, seek bar, and playback controls lower
   than the artwork instead of clustering around the visual midpoint. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2] .player-primary {
    grid-template-rows: minmax(360px, 56dvh) auto auto 54px 78px !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary {
    grid-template-rows: minmax(360px, 56dvh) auto auto 54px 30px !important;
  }
}

/* Keep the playback rail in the lower Apple-Music-style portion of the
   screen. The lyric view stays compact, but its rail no longer floats midway
   through the text. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .timeline,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .fullSeek,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .player-controls,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .fullControls,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .player-extra-controls.fullExtraControls {
    transform: translateY(clamp(64px, 9dvh, 104px)) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .timeline,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullSeek,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullControls {
    transform: translateY(clamp(12px, 2dvh, 24px)) !important;
  }
}

/* Static Genius lyrics never use the dimmed synced-lyrics state on mobile. */
@media (max-width: 899px) {
  .full-player.has-static-lyrics .lyrics-line-static,
  .full-player[data-mobile-player-v2].has-static-lyrics .lyrics-line-static {
    color: #fff !important;
    opacity: 1 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
    transform: none !important;
  }
}

@media (max-width: 899px) {
  html.player-is-open,
  body.player-is-open {
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  body.player-is-open {
    touch-action: none !important;
  }

  .full-player[data-mobile-player-v2]:not([hidden]) {
    --mobile-side: clamp(20px, 5.6vw, 28px);
    --mobile-bottom-nav: calc(58px + max(10px, env(safe-area-inset-bottom)));
    --mobile-cover-overlap: clamp(120px, 16dvh, 150px);
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: block !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 0 !important;
    overflow: hidden !important;
    color: #fff !important;
    background: #0b0c10 !important;
    isolation: isolate !important;
    overscroll-behavior: none !important;
  }

  .full-player[data-mobile-player-v2] .player-backdrop {
    display: none !important;
  }

  .full-player[data-mobile-player-v2]::before {
    content: "" !important;
    position: fixed !important;
    inset: -12% !important;
    z-index: 0 !important;
    display: block !important;
    background-color: var(--player-era-color-2, #20242b) !important;
    background-image: var(--player-cover-image) !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    filter: blur(52px) saturate(1.42) brightness(.68) !important;
    transform: scale(1.12) !important;
    pointer-events: none !important;
  }

  .full-player[data-mobile-player-v2]::after {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 1 !important;
    display: block !important;
    background:
      radial-gradient(circle at 50% 10%, rgba(255,255,255,.07), transparent 38%),
      linear-gradient(180deg, rgba(5,6,9,.04) 0%, rgba(5,6,9,.1) 46%, rgba(5,6,9,.32) 72%, rgba(5,6,9,.58) 100%) !important;
    pointer-events: none !important;
  }

  .full-player[data-mobile-player-v2] .player-close {
    position: fixed !important;
    top: max(8px, env(safe-area-inset-top)) !important;
    left: 50% !important;
    right: auto !important;
    z-index: 55 !important;
    width: 48px !important;
    height: 28px !important;
    min-width: 48px !important;
    min-height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    transform: translateX(-50%) !important;
  }

  .full-player[data-mobile-player-v2] .player-close svg {
    display: block !important;
    width: 36px !important;
    height: 22px !important;
    margin: auto !important;
    fill: none !important;
    stroke: rgba(255,255,255,.72) !important;
    stroke-width: 2.2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  .full-player[data-mobile-player-v2] .player-layout,
  .full-player[data-mobile-player-v2].no-lyrics:not(.lrc-open) .player-layout,
  .full-player[data-mobile-player-v2].lrc-open .player-layout {
    position: relative !important;
    inset: auto !important;
    z-index: 2 !important;
    display: block !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 0 0 var(--mobile-bottom-nav) !important;
    overflow: hidden !important;
    text-align: left !important;
  }

  .full-player[data-mobile-player-v2] .player-primary {
    position: relative !important;
    display: grid !important;
    grid-template-columns: var(--mobile-side) minmax(0, 1fr) var(--mobile-side) !important;
    grid-template-rows: minmax(350px, 55dvh) auto auto 68px 26px !important;
    align-content: start !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: clamp(22px, 3.55dvh, 30px) 0 !important;
    width: 100vw !important;
    max-width: none !important;
    height: calc(100dvh - var(--mobile-bottom-nav)) !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    text-align: left !important;
  }

  /* The artwork is a true full-bleed top surface, never a square card. */
  .full-player[data-mobile-player-v2] .player-art,
  .full-player[data-mobile-player-v2] .fullCover {
    position: relative !important;
    inset: auto !important;
    z-index: 1 !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    align-self: stretch !important;
    display: block !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] .player-art::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 3 !important;
    display: block !important;
    width: 100% !important;
    height: calc(100% + var(--mobile-cover-overlap)) !important;
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.03) 0%,
        transparent 54%,
        rgba(5,6,9,.08) 70%,
        rgba(5,6,9,.18) 84%,
        transparent 100%
      ) !important;
    pointer-events: none !important;
  }

  .full-player[data-mobile-player-v2] .player-art::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    height: calc(100% + var(--mobile-cover-overlap)) !important;
    background-color: var(--player-era-color-2, #20242b) !important;
    background-image: var(--player-cover-image) !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    filter: blur(28px) saturate(1.18) brightness(.64) !important;
    transform: scale(1.055) !important;
    -webkit-mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 76%,
      rgba(0,0,0,.74) 86%,
      rgba(0,0,0,.28) 94%,
      transparent 100%
    ) !important;
    mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 76%,
      rgba(0,0,0,.74) 86%,
      rgba(0,0,0,.28) 94%,
      transparent 100%
    ) !important;
    pointer-events: none !important;
  }

  .full-player[data-mobile-player-v2] .player-art img,
  .full-player[data-mobile-player-v2] #fullCover {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    z-index: 2 !important;
    display: block !important;
    width: 100% !important;
    height: calc(100% + var(--mobile-cover-overlap)) !important;
    max-width: none !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    border: 0 !important;
    border-radius: 0 !important;
    filter: saturate(1.04) contrast(1.02) !important;
    transform: none !important;
    -webkit-mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 60%,
      rgba(0,0,0,.8) 66%,
      rgba(0,0,0,.35) 73%,
      rgba(0,0,0,.1) 78%,
      transparent 83%,
      transparent 100%
    ) !important;
    mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 60%,
      rgba(0,0,0,.8) 66%,
      rgba(0,0,0,.35) 73%,
      rgba(0,0,0,.1) 78%,
      transparent 83%,
      transparent 100%
    ) !important;
  }

  .full-player[data-mobile-player-v2] .player-info,
  .full-player[data-mobile-player-v2] .fullTrackInfo {
    position: relative !important;
    inset: auto !important;
    z-index: 4 !important;
    grid-column: 2 !important;
    grid-row: 2 !important;
    align-self: end !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] .timeline,
  .full-player[data-mobile-player-v2] .fullSeek,
  .full-player[data-mobile-player-v2] .player-controls,
  .full-player[data-mobile-player-v2] .fullControls,
  .full-player[data-mobile-player-v2] .player-extra-controls,
  .full-player[data-mobile-player-v2] .fullExtraControls {
    position: relative !important;
    z-index: 4 !important;
  }

  .full-player[data-mobile-player-v2] .player-info h2,
  .full-player[data-mobile-player-v2] #fullTitle {
    max-width: calc(100vw - (var(--mobile-side) * 2)) !important;
    margin: 0 !important;
    overflow: hidden !important;
    color: rgba(255,255,255,.98) !important;
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif !important;
    font-size: clamp(18px, 5vw, 22px) !important;
    font-weight: 650 !important;
    line-height: 1.08 !important;
    letter-spacing: -.025em !important;
    text-align: left !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .full-player[data-mobile-player-v2] .player-info p,
  .full-player[data-mobile-player-v2] #fullArtist {
    max-width: calc(100vw - (var(--mobile-side) * 2)) !important;
    margin: 3px 0 0 !important;
    overflow: hidden !important;
    color: rgba(255,255,255,.64) !important;
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif !important;
    font-size: clamp(14px, 4vw, 17px) !important;
    font-weight: 450 !important;
    line-height: 1.08 !important;
    letter-spacing: -.018em !important;
    text-align: left !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .full-player[data-mobile-player-v2] .timeline,
  .full-player[data-mobile-player-v2] .fullSeek {
    position: relative !important;
    inset: auto !important;
    grid-column: 2 !important;
    grid-row: 3 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] #playerSeek {
    --seek-progress: 0%;
    display: block !important;
    width: 100% !important;
    height: 5px !important;
    min-height: 5px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(to right, rgba(255,255,255,.94) var(--seek-progress), rgba(255,255,255,.25) var(--seek-progress)) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  .full-player[data-mobile-player-v2] #playerSeek::-webkit-slider-runnable-track {
    width: 100% !important;
    height: 5px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
  }

  .full-player[data-mobile-player-v2] #playerSeek::-webkit-slider-thumb {
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  .full-player[data-mobile-player-v2] #playerSeek::-moz-range-track,
  .full-player[data-mobile-player-v2] #playerSeek::-moz-range-progress {
    height: 5px !important;
    border: 0 !important;
    border-radius: 999px !important;
  }

  .full-player[data-mobile-player-v2] #playerSeek::-moz-range-track { background: rgba(255,255,255,.25) !important; }
  .full-player[data-mobile-player-v2] #playerSeek::-moz-range-progress { background: rgba(255,255,255,.94) !important; }
  .full-player[data-mobile-player-v2] #playerSeek::-moz-range-thumb { width: 0 !important; height: 0 !important; border: 0 !important; }

  .full-player[data-mobile-player-v2] .fullTimeRow {
    display: flex !important;
    justify-content: space-between !important;
    width: 100% !important;
    margin: 0 !important;
    color: rgba(255,255,255,.46) !important;
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
  }

  .full-player[data-mobile-player-v2] .player-controls,
  .full-player[data-mobile-player-v2] .fullControls {
    position: relative !important;
    inset: auto !important;
    grid-column: 2 !important;
    grid-row: 4 !important;
    align-self: center !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    grid-template-rows: 68px !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 0 !important;
    width: min(100%, 300px) !important;
    max-width: 300px !important;
    height: 68px !important;
    justify-self: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] #playerShuffle,
  .full-player[data-mobile-player-v2] #playerRepeat {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] #prevTrack,
  .full-player[data-mobile-player-v2] #fullPlay,
  .full-player[data-mobile-player-v2] #nextTrack,
  .full-player[data-mobile-player-v2] .player-controls button,
  .full-player[data-mobile-player-v2] .player-controls .icon-button,
  .full-player[data-mobile-player-v2] .player-controls .main-play {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    place-items: center !important;
    width: 62px !important;
    min-width: 62px !important;
    max-width: 62px !important;
    height: 62px !important;
    min-height: 62px !important;
    max-height: 62px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: #fff !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] #prevTrack { grid-column: 1 !important; }
  .full-player[data-mobile-player-v2] #fullPlay { grid-column: 2 !important; width: 68px !important; height: 68px !important; }
  .full-player[data-mobile-player-v2] #nextTrack { grid-column: 3 !important; }

  .full-player[data-mobile-player-v2] .player-controls button::before,
  .full-player[data-mobile-player-v2] .player-controls button::after {
    display: none !important;
    content: none !important;
  }

  .full-player[data-mobile-player-v2] .player-controls .sf-symbol-wrap {
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
  }

  .full-player[data-mobile-player-v2] #fullPlay .sf-symbol-wrap {
    width: 52px !important;
    height: 52px !important;
    max-width: 52px !important;
    max-height: 52px !important;
  }

  .full-player[data-mobile-player-v2] .player-controls .mobile-player-symbol {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    overflow: visible !important;
    fill: currentColor !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    filter: drop-shadow(0 2px 8px rgba(0,0,0,.18)) !important;
  }

  .full-player[data-mobile-player-v2] .player-controls .mobile-player-symbol path,
  .full-player[data-mobile-player-v2] #playerVolumeToggle .mobile-player-symbol path,
  .full-player[data-mobile-player-v2] .player-volume-high .mobile-player-symbol path {
    display: block !important;
    fill: inherit !important;
    stroke: inherit !important;
  }

  .full-player[data-mobile-player-v2] #prevTrack .mobile-player-symbol,
  .full-player[data-mobile-player-v2] #nextTrack .mobile-player-symbol,
  .full-player[data-mobile-player-v2] #fullPlay .mobile-player-symbol {
    stroke: none !important;
  }

  .full-player[data-mobile-player-v2] .player-extra-controls,
  .full-player[data-mobile-player-v2] .fullExtraControls {
    position: relative !important;
    inset: auto !important;
    grid-column: 2 !important;
    grid-row: 5 !important;
    align-self: center !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] .player-volume-menu {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) 20px !important;
    grid-template-rows: 22px !important;
    align-items: center !important;
    gap: 9px !important;
    width: 100% !important;
    max-width: none !important;
    height: 22px !important;
    margin: 0 !important;
  }

  .full-player[data-mobile-player-v2] #playerVolumeToggle,
  .full-player[data-mobile-player-v2] .player-volume-high {
    display: grid !important;
    place-items: center !important;
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    max-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(255,255,255,.56) !important;
    background: transparent !important;
    border: 0 !important;
  }

  .full-player[data-mobile-player-v2] #playerVolumeToggle::before,
  .full-player[data-mobile-player-v2] #playerVolumeToggle::after,
  .full-player[data-mobile-player-v2] .player-volume-menu::after {
    display: none !important;
    content: none !important;
  }

  .full-player[data-mobile-player-v2] #playerVolumeToggle .sf-symbol-wrap,
  .full-player[data-mobile-player-v2] .player-volume-high .sf-symbol-wrap {
    display: grid !important;
    place-items: center !important;
    width: 16px !important;
    height: 16px !important;
    max-width: 16px !important;
    max-height: 16px !important;
  }

  .full-player[data-mobile-player-v2] #playerVolumeToggle .mobile-player-symbol,
  .full-player[data-mobile-player-v2] .player-volume-high .mobile-player-symbol {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    fill: currentColor !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  .full-player[data-mobile-player-v2] #playerVolumePopup,
  .full-player[data-mobile-player-v2] #playerVolumePopup[hidden],
  .full-player[data-mobile-player-v2] #playerVolumePopup:not([hidden]) {
    position: static !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    height: 5px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .full-player[data-mobile-player-v2] #playerVolume {
    display: block !important;
    width: 100% !important;
    height: 5px !important;
    min-height: 5px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(to right, rgba(255,255,255,.82) var(--seek-progress), rgba(255,255,255,.2) var(--seek-progress)) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
  }

  .full-player[data-mobile-player-v2] #playerVolume::-webkit-slider-runnable-track {
    height: 5px !important;
    border-radius: 999px !important;
    background: transparent !important;
  }

  .full-player[data-mobile-player-v2] #playerVolume::-webkit-slider-thumb,
  .full-player[data-mobile-player-v2] #playerVolume::-moz-range-thumb {
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .full-player[data-mobile-player-v2] #toggleLyricsSubmit {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] #createLyricsImage {
    display: none !important;
  }

  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .lyrics-panel {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-nav {
    position: fixed !important;
    right: var(--mobile-side) !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    left: var(--mobile-side) !important;
    z-index: 45 !important;
    display: grid !important;
    grid-template-columns: 42px 42px 42px !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: auto !important;
    box-sizing: border-box !important;
    height: 50px !important;
    margin: 0 !important;
    padding: 0 clamp(20px, 8vw, 42px) !important;
    pointer-events: auto !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-nav-button {
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: rgba(255,255,255,.62) !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-nav-button.active {
    color: #fff !important;
    background: rgba(255,255,255,.14) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-nav-button:disabled {
    opacity: .25 !important;
  }

  .full-player[data-mobile-player-v2] #mobileLyricsToggle {
    grid-column: 1 !important;
  }

  .full-player[data-mobile-player-v2] #mobileCreateLyricsImage {
    grid-column: 2 !important;
  }

  .full-player[data-mobile-player-v2] #mobileCreateLyricsImage[hidden] {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] #mobileQueueToggle {
    grid-column: 3 !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-nav-button svg {
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-nav-button img {
    display: block !important;
    width: 23px !important;
    height: 23px !important;
    max-width: 23px !important;
    max-height: 23px !important;
    object-fit: contain !important;
    opacity: .9 !important;
  }

  /* Lyrics view: compact header, large transparent lyric field, compact controls. */
  .full-player[data-mobile-player-v2].mobile-lyrics-view::after {
    background: linear-gradient(180deg, rgba(8,10,12,.18), rgba(8,10,12,.48) 36%, rgba(7,8,11,.72) 100%) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-layout,
  .full-player[data-mobile-player-v2].mobile-lyrics-view.no-lyrics:not(.lrc-open) .player-layout {
    display: grid !important;
    grid-template-columns: var(--mobile-side) 50px 12px minmax(0, 1fr) var(--mobile-side) !important;
    grid-template-rows:
      54px
      minmax(0, 1fr)
      30px
      58px
      24px !important;
    gap: clamp(9px, 1.4dvh, 13px) 0 !important;
    height: 100dvh !important;
    padding:
      max(46px, calc(env(safe-area-inset-top) + 28px))
      0
      var(--mobile-bottom-nav) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary {
    display: contents !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-art,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullCover {
    position: relative !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    display: block !important;
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
    aspect-ratio: 1 !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: 9px !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.24) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-art::before,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-art::after {
    display: none !important;
    content: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-art img,
  .full-player[data-mobile-player-v2].mobile-lyrics-view #fullCover {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: inherit !important;
    object-fit: cover !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-info,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullTrackInfo {
    grid-column: 4 !important;
    grid-row: 1 !important;
    align-self: center !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-info h2,
  .full-player[data-mobile-player-v2].mobile-lyrics-view #fullTitle {
    max-width: 100% !important;
    font-size: clamp(13px, 3.8vw, 16px) !important;
    font-weight: 650 !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-info p,
  .full-player[data-mobile-player-v2].mobile-lyrics-view #fullArtist {
    max-width: 100% !important;
    margin-top: 2px !important;
    font-size: clamp(11px, 3.2vw, 13px) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-panel,
  .full-player[data-mobile-player-v2].mobile-lyrics-view.has-lyrics .lyrics-panel,
  .full-player[data-mobile-player-v2].mobile-lyrics-view.lyrics-loading .lyrics-panel {
    position: relative !important;
    inset: auto !important;
    grid-column: 2 / 5 !important;
    grid-row: 2 !important;
    align-self: stretch !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-head {
    position: fixed !important;
    top: max(13px, env(safe-area-inset-top)) !important;
    right: var(--mobile-side) !important;
    left: auto !important;
    z-index: 54 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-head h3 {
    display: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view #lyricsCredit {
    display: block !important;
    color: rgba(255,255,255,.5) !important;
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-lines,
  .full-player[data-mobile-player-v2].mobile-lyrics-view #lyricsLines {
    position: relative !important;
    inset: auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(7px, 1.15dvh, 11px) !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: clamp(10px, 1.8dvh, 16px) 0 clamp(18px, 3dvh, 28px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    scrollbar-width: none !important;
    mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 82%, transparent 100%) !important;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 82%, transparent 100%) !important;
    overscroll-behavior: contain !important;
    touch-action: pan-y !important;
    scroll-padding-block: 16% 18% !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view #lyricsLines::-webkit-scrollbar {
    display: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.near,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.mobile-near,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.active {
    display: block !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    color: rgba(255,255,255,.2) !important;
    background: transparent !important;
    font-family: "Neue Haas Grotesk Display Pro", "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-size: clamp(25px, 7.6vw, 34px) !important;
    font-style: normal !important;
    font-weight: normal !important;
    font-stretch: normal !important;
    line-height: 1.08 !important;
    letter-spacing: normal !important;
    text-align: left !important;
    text-shadow: none !important;
    opacity: 1 !important;
    filter: blur(.45px) !important;
    transform: none !important;
    transition: color .28s ease, filter .28s ease !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.near,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.mobile-near {
    color: rgba(255,255,255,.38) !important;
    filter: blur(.2px) !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.active {
    color: rgba(255,255,255,.98) !important;
    filter: none !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-prelude {
    color: rgba(255,255,255,.32) !important;
    letter-spacing: .08em !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-empty {
    margin: 20px 0 0 !important;
    color: rgba(255,255,255,.62) !important;
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .timeline,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullSeek {
    grid-column: 2 / 5 !important;
    grid-row: 3 !important;
    align-self: center !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullControls {
    grid-column: 2 / 5 !important;
    grid-row: 4 !important;
    grid-template-rows: 58px !important;
    height: 58px !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view #prevTrack,
  .full-player[data-mobile-player-v2].mobile-lyrics-view #nextTrack {
    width: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    height: 50px !important;
    min-height: 50px !important;
    max-height: 50px !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view #fullPlay {
    width: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-controls .sf-symbol-wrap {
    width: 34px !important;
    height: 34px !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view #fullPlay .sf-symbol-wrap {
    width: 42px !important;
    height: 42px !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-extra-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullExtraControls {
    grid-column: 2 / 5 !important;
    grid-row: 5 !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue[hidden] {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue:not([hidden]) {
    position: fixed !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 80 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100vw !important;
    height: min(72dvh, 650px) !important;
    margin: 0 !important;
    padding: 14px var(--mobile-side) max(18px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 24px 24px 0 0 !important;
    color: #fff !important;
    background: rgba(24,25,29,.88) !important;
    box-shadow: 0 -20px 80px rgba(0,0,0,.42) !important;
    backdrop-filter: blur(36px) saturate(1.35) !important;
    -webkit-backdrop-filter: blur(36px) saturate(1.35) !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue::before {
    content: "" !important;
    align-self: center !important;
    width: 38px !important;
    height: 5px !important;
    margin: 0 0 14px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.32) !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-head {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    margin-bottom: 14px !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-head span,
  .full-player[data-mobile-player-v2] .mobile-player-queue-head strong {
    display: block !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-head span {
    color: rgba(255,255,255,.5) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-head strong {
    margin-top: 2px !important;
    font-size: 22px !important;
    letter-spacing: -.025em !important;
  }

  .full-player[data-mobile-player-v2] #closeMobileQueue {
    padding: 8px 12px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: rgba(255,255,255,.12) !important;
    font-size: 12px !important;
    font-weight: 650 !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-list {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    gap: 2px !important;
    width: 100% !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-item {
    display: grid !important;
    grid-template-columns: 26px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 58px !important;
    padding: 8px 4px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    color: rgba(255,255,255,.72) !important;
    background: transparent !important;
    text-align: left !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-item.active {
    color: #fff !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-item strong,
  .full-player[data-mobile-player-v2] .mobile-player-queue-item small {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-item strong {
    font-size: 14px !important;
    font-weight: 620 !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-item small {
    margin-top: 3px !important;
    color: rgba(255,255,255,.46) !important;
    font-size: 11px !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-index {
    color: rgba(255,255,255,.44) !important;
    font-size: 10px !important;
    text-align: center !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-queue-empty {
    margin: 30px 0 !important;
    color: rgba(255,255,255,.52) !important;
    font-size: 14px !important;
    text-align: center !important;
  }

  .full-player[data-mobile-player-v2].mobile-queue-open .mobile-player-nav {
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-submitter:not([hidden]) {
    position: fixed !important;
    inset: 0 !important;
    z-index: 100 !important;
    display: grid !important;
    grid-auto-rows: max-content !important;
    align-content: start !important;
    gap: 12px !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: max(48px, calc(env(safe-area-inset-top) + 24px)) 18px max(22px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    border-radius: 0 !important;
  }

  .full-player[data-mobile-player-v2].lrc-open .mobile-player-nav {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-submitter .lyrics-generator-head {
    align-items: flex-start !important;
    gap: 12px !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-submitter .lyrics-generator-head strong {
    font-size: 20px !important;
    line-height: 1.1 !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-submitter .lyrics-generator-head span {
    max-width: 270px !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  .full-player[data-mobile-player-v2] #closeLyricsSubmit {
    width: auto !important;
    min-width: 64px !important;
    max-width: none !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 14px !important;
    font-size: 12px !important;
  }

  .full-player[data-mobile-player-v2] #lyricsContributor {
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    padding: 0 14px !important;
    border-radius: 14px !important;
    font-size: 14px !important;
  }

  .full-player[data-mobile-player-v2] #lyricsRawInput {
    width: 100% !important;
    height: 150px !important;
    min-height: 150px !important;
    max-height: 150px !important;
    padding: 13px 14px !important;
    border-radius: 14px !important;
    font-size: 14px !important;
    resize: none !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-generator-actions {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-generator-actions .soft-button {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    border-radius: 14px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-generator-current {
    min-height: 88px !important;
    padding: 13px 14px !important;
    border-radius: 14px !important;
  }

  .full-player[data-mobile-player-v2] .lyrics-generator-current strong {
    font-size: 18px !important;
  }

  .full-player[data-mobile-player-v2] #submitLyricsButton {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border-radius: 14px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 899px) and (max-height: 760px) {
  .full-player[data-mobile-player-v2] .player-primary {
    grid-template-rows: minmax(320px, 51dvh) auto auto 60px 22px !important;
    gap: 7px 0 !important;
  }

  .full-player[data-mobile-player-v2] .player-controls,
  .full-player[data-mobile-player-v2] .fullControls {
    grid-template-rows: 60px !important;
    height: 60px !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-layout {
    grid-template-rows: 50px minmax(0, 1fr) 28px 52px 22px !important;
    gap: 7px 0 !important;
  }

  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.near,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.mobile-near,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .lyrics-line.active {
    font-size: clamp(23px, 7vw, 30px) !important;
  }
}

/* v17: one continuous blur layer and swipe-only dismissal. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2]:not([hidden]) {
    transform: translate3d(0, var(--player-swipe-y, 0px), 0) !important;
    will-change: transform !important;
  }

  .full-player[data-mobile-player-v2].player-swipe-dragging {
    transition: none !important;
  }

  .full-player[data-mobile-player-v2].player-swipe-returning {
    transition: transform 220ms cubic-bezier(.22, .74, .22, 1) !important;
  }

  .full-player[data-mobile-player-v2].player-swipe-dismissing {
    transition: transform 180ms cubic-bezier(.32, .72, 0, 1) !important;
  }

  .full-player[data-mobile-player-v2] .player-close {
    display: grid !important;
  }

  .full-player[data-mobile-player-v2] .desktop-player-close {
    display: none !important;
  }

  .full-player[data-mobile-player-v2] .mobile-player-close {
    display: block !important;
    width: 36px !important;
    height: 22px !important;
    margin: auto !important;
    fill: none !important;
    stroke: rgba(255, 255, 255, .72) !important;
    stroke-width: 2.2 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  .full-player[data-mobile-player-v2]::before {
    inset: -16vmax !important;
    background-color: var(--player-era-color-2, #20242b) !important;
    background-image: var(--player-cover-image) !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    filter: blur(68px) saturate(1.36) brightness(.66) !important;
    transform: translateZ(0) scale(1.08) !important;
    backface-visibility: hidden !important;
  }

  .full-player[data-mobile-player-v2]::after {
    background: linear-gradient(180deg, rgba(5, 6, 9, .06), rgba(5, 6, 9, .2) 54%, rgba(5, 6, 9, .56)) !important;
  }

  .full-player[data-mobile-player-v2] .player-primary {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .full-player[data-mobile-player-v2] .player-art::before {
    content: none !important;
    display: none !important;
    filter: none !important;
  }

  .full-player[data-mobile-player-v2] .player-art img,
  .full-player[data-mobile-player-v2] #fullCover {
    -webkit-mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 54%,
      rgba(0, 0, 0, .88) 62%,
      rgba(0, 0, 0, .58) 72%,
      rgba(0, 0, 0, .26) 82%,
      transparent 94%
    ) !important;
    mask-image: linear-gradient(
      to bottom,
      #000 0%,
      #000 54%,
      rgba(0, 0, 0, .88) 62%,
      rgba(0, 0, 0, .58) 72%,
      rgba(0, 0, 0, .26) 82%,
      transparent 94%
    ) !important;
  }

  .full-player[data-mobile-player-v2] #playerVolumeToggle .sf-symbol-wrap,
  .full-player[data-mobile-player-v2] #playerVolumeToggle .sf-symbol-img {
    width: 14px !important;
    height: 14px !important;
    max-width: 14px !important;
    max-height: 14px !important;
  }

  .full-player[data-mobile-player-v2] .player-volume-high .sf-symbol-wrap,
  .full-player[data-mobile-player-v2] .player-volume-high .sf-symbol-img {
    width: 17px !important;
    height: 17px !important;
    max-width: 17px !important;
    max-height: 17px !important;
  }
}

/* Final mobile control layout: no inherited desktop width can crop the cover,
   time row, or volume rail. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .player-primary {
    grid-template-rows: minmax(400px, 62dvh) auto auto 66px 34px !important;
    gap: 10px 0 !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls {
    grid-column: 2 !important;
    grid-row: 5 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas: "volume volume" "image submit" !important;
    width: 100% !important;
    max-width: none !important;
    height: 78px !important;
    min-height: 78px !important;
    padding: 0 !important;
    overflow: visible !important;
    align-content: start !important;
    justify-items: center !important;
    gap: 12px 16px !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls .player-volume-menu {
    grid-area: volume !important;
    grid-column: auto !important;
    width: 100% !important;
    max-width: none !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls #createLyricsImage { grid-area: image !important; grid-column: auto !important; }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls #toggleLyricsSubmit { grid-area: submit !important; grid-column: auto !important; }
  .full-player[data-mobile-player-v2] .timeline,
  .full-player[data-mobile-player-v2] .fullSeek,
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    justify-self: stretch !important;
  }
}

/* v18 mobile final overrides: this block remains last by design. */
@media (max-width: 899px) {
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .timeline,
  .full-player[data-mobile-player-v2]:not(.mobile-lyrics-view) .fullSeek,
  .full-player[data-mobile-player-v2] .player-controls,
  .full-player[data-mobile-player-v2] .fullControls {
    transform: translateY(clamp(64px, 9dvh, 104px)) !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas: "volume" !important;
    width: calc(100vw - 40px) !important;
    max-width: none !important;
    height: 30px !important;
    min-height: 30px !important;
    transform: translateY(clamp(64px, 9dvh, 104px)) !important;
  }
  .full-player[data-mobile-player-v2] .player-extra-controls.fullExtraControls .player-volume-menu {
    grid-area: volume !important;
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) 22px !important;
    width: 100% !important;
    max-width: none !important;
  }
  .full-player[data-mobile-player-v2] #playerVolume,
  .full-player[data-mobile-player-v2] #playerVolume::-webkit-slider-runnable-track {
    width: 100% !important;
    min-width: 0 !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-extra-controls.fullExtraControls {
    display: none !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary > .player-extra-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-primary .player-volume-menu {
    display: none !important;
  }
  .full-player[data-mobile-player-v2].has-static-lyrics .lyrics-lines.is-static-lyrics .lyrics-line-static,
  .full-player[data-mobile-player-v2].has-static-lyrics .lyrics-line-static {
    color: #fff !important;
    opacity: 1 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
  }
  .full-player[data-mobile-player-v2] .lyrics-scroll-hint:not([hidden]) {
    right: auto !important;
    left: 50% !important;
    bottom: 14px !important;
    display: inline-flex !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.92) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,.7) !important;
    transform: translateX(-50%) !important;
  }
  .full-player[data-mobile-player-v2].mobile-lyrics-view .timeline,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullSeek,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .player-controls,
  .full-player[data-mobile-player-v2].mobile-lyrics-view .fullControls {
    transform: translateY(clamp(12px, 2dvh, 24px)) !important;
  }
}
