/* 播放页视觉模式 · v1.4 */

/* 模式钮：与茶座 #divine-plugin-selector-btn i 同一套 FA6 调色盘 + 彩虹渐变（不用 !important） */
.panel-player .full-jiaohu-btn#full-btn-player-mode i,
.panel-player .full-jiaohu-btn#full-btn-player-mode i::before,
.panel-player.is-bg-color .full-jiaohu-btn#full-btn-player-mode i,
.panel-player.is-bg-color .full-jiaohu-btn#full-btn-player-mode i::before,
.panel-player.is-bg-image .full-jiaohu-btn#full-btn-player-mode i,
.panel-player.is-bg-image .full-jiaohu-btn#full-btn-player-mode i::before,
.panel-player.is-bg-divine .full-jiaohu-btn#full-btn-player-mode i,
.panel-player.is-bg-divine .full-jiaohu-btn#full-btn-player-mode i::before,
body.sdy-mode-color .full-jiaohu-btn#full-btn-player-mode i,
body.sdy-mode-color .full-jiaohu-btn#full-btn-player-mode i::before,
body.sdy-mode-image .full-jiaohu-btn#full-btn-player-mode i,
body.sdy-mode-image .full-jiaohu-btn#full-btn-player-mode i::before {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-style: normal;
    display: inline-block;
    font-size: 21px;
    background-image: linear-gradient(135deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffeaa7, #fdcb6e, #e17055, #d63031);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* 描边跟互动条：沉浸白钮 → 白描边；纯色/背景图黑钮 → 黑描边 */
.panel-player .full-jiaohu-btn#full-btn-player-mode i,
.panel-player .full-jiaohu-btn#full-btn-player-mode i::before,
.panel-player.is-bg-divine .full-jiaohu-btn#full-btn-player-mode i,
.panel-player.is-bg-divine .full-jiaohu-btn#full-btn-player-mode i::before {
    -webkit-text-stroke: 0.5px #fff;
    paint-order: stroke fill;
    filter: drop-shadow(0.35px 0 0 #fff) drop-shadow(-0.35px 0 0 #fff) drop-shadow(0 0.35px 0 #fff) drop-shadow(0 -0.35px 0 #fff);
}

.panel-player.is-bg-color .full-jiaohu-btn#full-btn-player-mode i,
.panel-player.is-bg-color .full-jiaohu-btn#full-btn-player-mode i::before,
.panel-player.is-bg-image .full-jiaohu-btn#full-btn-player-mode i,
.panel-player.is-bg-image .full-jiaohu-btn#full-btn-player-mode i::before,
body.sdy-mode-color .full-jiaohu-btn#full-btn-player-mode i,
body.sdy-mode-color .full-jiaohu-btn#full-btn-player-mode i::before,
body.sdy-mode-image .full-jiaohu-btn#full-btn-player-mode i,
body.sdy-mode-image .full-jiaohu-btn#full-btn-player-mode i::before {
    -webkit-text-stroke: 0.5px #000;
    paint-order: stroke fill;
    filter: drop-shadow(0.35px 0 0 #000) drop-shadow(-0.35px 0 0 #000) drop-shadow(0 0.35px 0 #000) drop-shadow(0 -0.35px 0 #000);
}

.full-player-mode-fab {
    position: absolute;
    right: 4px;
    bottom: 8px;
    z-index: 6;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    background: rgba(15, 23, 42, 0.45);
    color: #fff;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(10px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
}

.full-player-mode-fab img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.full-player-mode-fab:active {
    transform: scale(0.96);
}

.full-player-mode-overlay {
    position: fixed;
    inset: 0;
    z-index: 150;
    background: #fff;
}

.full-player-mode-overlay[hidden],
.full-player-mode-sheet[hidden],
.full-player-mode-preview[hidden] {
    display: none !important;
    pointer-events: none;
    visibility: hidden;
}

.full-player-mode-sheet {
    position: fixed;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 151;
    width: 100%;
    max-width: none;
    max-height: none;
    transform: none;
    padding: calc(8px + var(--sdy-sat, env(safe-area-inset-top, 0px))) 16px calc(20px + var(--sdy-sab, env(safe-area-inset-bottom, 0px)));
    background: #fff;
    color: #111;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.full-player-mode-sheet__head {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
    padding: 4px 0 8px;
    border-bottom: none;
}

.full-player-mode-sheet__title {
    margin: 0;
    flex: 1;
    font-size: 17px;
    font-weight: 600;
    color: #111;
    text-align: center;
}

.full-player-mode-sheet__back,
.full-player-mode-sheet__close {
    border: none;
    background: transparent;
    color: #111;
    width: 40px;
    height: 40px;
    border-radius: 0;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
}

.full-player-mode-sheet__head-space {
    width: 40px;
    height: 40px;
}

.full-player-mode-sheet__tabs {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 22px;
    margin: 0 0 14px;
    padding: 0 4px;
    border-bottom: 1px solid #f0f0f0;
}

.full-player-mode-sheet__tabs [data-mode-cat] {
    border: none;
    background: transparent;
    padding: 10px 0 8px;
    font-size: 15px;
    color: #888;
    cursor: pointer;
}

.full-player-mode-sheet__tabs [data-mode-cat].is-active {
    color: #111;
    font-weight: 600;
    box-shadow: inset 0 -2px 0 #e74c3c;
}

.full-player-mode-sheet__section {
    margin: 0 0 12px;
    font-size: 15px;
    font-weight: 600;
    color: #111;
}

.full-player-mode-latest {
    margin: 0;
}

.full-player-mode-latest[hidden] {
    display: none;
}

.full-player-mode-list {
    flex: 1;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.full-player-mode-block__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 10px;
}

.full-player-mode-option,
.full-player-mode-card {
    box-sizing: border-box;
    flex: none;
    min-width: 0;
    max-width: none;
    min-height: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    filter: none;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    cursor: pointer;
}

.full-player-mode-card__thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    border-radius: 8px;
    overflow: hidden;
    background-color: #1a1a1a;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.full-player-mode-card__thumb-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.full-player-mode-option--minimal .full-player-mode-card__thumb {
    background-image: linear-gradient(165deg, #fffaf3 0%, #F6F1E7 52%, #e8e0d4 100%);
}

.full-player-mode-option--wave .full-player-mode-card__thumb {
    background-color: #f4f0e6;
}

.full-player-mode-option.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.full-player-mode-card__using {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 2;
    padding: 3px 8px;
    border-radius: 999px;
    background: #22A06B;
    color: #fff;
    font-size: 10px;
    line-height: 1.3;
}

.full-player-mode-card__name,
.full-player-mode-option__label {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #111;
    text-align: left;
    text-shadow: none;
    pointer-events: none;
}

.full-player-mode-card__desc {
    margin-top: 2px;
    font-size: 11px;
    line-height: 1.35;
    color: #999;
    text-align: left;
    pointer-events: none;
}

.full-player-mode-card__store {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 2;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-size: 10px;
    line-height: 1.3;
}

.full-player-mode-option__feats {
    position: absolute;
    bottom: 6px;
    left: 6px;
    display: flex;
    gap: 4px;
    align-items: center;
    z-index: 2;
    pointer-events: none;
}

.full-player-mode-option__feats i {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
}

.full-player-color-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: #bbc7a4;
    pointer-events: none;
}

.full-player-color-bg[hidden] {
    display: none !important;
}

.full-cover-art-stage {
    flex: 1;
    min-height: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 12px 24px 24px;
}

.full-cover-art-stage:not([hidden]) {
    display: flex;
}

.full-cover-art-large {
    width: min(280px, 72vw);
    height: min(280px, 72vw);
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
}

.full-color-title-stage {
    flex: 1;
    min-height: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
    text-align: center;
}

.full-color-title-stage:not([hidden]) {
    display: flex;
}

.full-color-title-stage p {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.45;
}

body.sdy-mode-image .full-player-bg-mask,
.panel-player.is-bg-image .full-player-bg-mask,
body.sdy-mode-color .full-player-bg-mask,
.panel-player.is-bg-color .full-player-bg-mask,
body.sdy-mode-minimal .full-player-bg-mask,
.panel-player.is-bg-minimal .full-player-bg-mask {
    background: none;
}

.panel-player.is-bg-color .full-player-bg-fallback {
    display: none;
}

.panel-player.is-bg-color:not(.is-bg-minimal):not(.is-long-lyrics) {
    --fp-vinyl: 230px;
}

.panel-player.is-bg-color:not(.is-bg-minimal):not(.is-long-lyrics) .full-lyrics-scroll {
    mask-image: none;
    -webkit-mask-image: none;
}

.panel-player.is-bg-color:not(.is-bg-minimal):not(.is-long-lyrics) .full-lyrics-body {
    padding: 20px 2vw;
}

/* 茶座独立页长字幕：#lyric-content padding 5px 1px + JS paddingBottom 20vh */
.panel-player.is-bg-color:not(.is-bg-minimal).is-long-lyrics .full-lyrics-body,
.panel-player.is-bg-image.is-long-lyrics .full-lyrics-body {
    padding: 5px 1px 20vh;
}

.panel-player.is-bg-color:not(.is-bg-minimal) .full-player-title {
    font-weight: 700;
}

.panel-player.is-bg-color:not(.is-bg-minimal) .full-player-artist {
    font-size: 16px;
    font-weight: 400;
    color: #000;
}

/* 纯色/背景图长字幕：对齐 player.251025.css portrait-long-mode，只留右下角迷你播放 */
.panel-player.is-long-lyrics:not(.is-bg-divine) .full-player-header,
.panel-player.is-long-lyrics:not(.is-bg-divine) .full-player-jiaohu,
.panel-player.is-long-lyrics:not(.is-bg-divine) .full-player-progress,
.panel-player.is-long-lyrics:not(.is-bg-divine) .full-player-transport,
.panel-player.is-long-lyrics:not(.is-bg-divine) .full-tool-btn--sleep {
    display: none;
}

.panel-player.is-long-lyrics:not(.is-bg-divine) .full-lyrics-stage {
    padding-bottom: 0;
    padding-top: var(--sdy-sat, env(safe-area-inset-top, 0px));
    pointer-events: auto;
}

.panel-player.is-long-lyrics:not(.is-bg-divine) .full-mini-play {
    display: flex;
    right: 2px;
    bottom: 2px;
    width: 44px;
    height: 44px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    z-index: 8;
}

.panel-player.is-long-lyrics:not(.is-bg-divine) .full-mini-play img {
    width: 24px;
    height: 24px;
    filter: none;
}

.panel-player.is-long-lyrics:not(.is-bg-divine) .full-mini-play.is-follow-mode img {
    filter: brightness(0) invert(48%) sepia(82%) saturate(2477%) hue-rotate(191deg) brightness(101%) contrast(101%);
}

/* 纯色/背景图拼音：对齐 player.php，格宽随字、允许 -0.06em 重叠 */
.panel-player.is-bg-color .full-lyrics-body .lyric-line.pinyin-mode .py-pair,
.panel-player.is-bg-image .full-lyrics-body .lyric-line.pinyin-mode .py-pair {
    width: auto;
    min-width: 0;
    max-width: none;
    margin-right: -0.06em;
    padding: 0 0.08em;
}

.panel-player.is-bg-color .full-lyrics-body .lyric-line.pinyin-mode .py-pair--wide,
.panel-player.is-bg-image .full-lyrics-body .lyric-line.pinyin-mode .py-pair--wide {
    min-width: 0;
    max-width: none;
}

body.sdy-mode-image .full-player-bg-img,
.panel-player.is-bg-image .full-player-bg-img {
    inset: 0;
    width: 100%;
    height: 100%;
    filter: none;
    transform: none;
    opacity: 1;
    object-fit: cover;
}

body:not(.sdy-immersive-active) .panel-player.is-bg-color .sdy-act-count { color: #000; }
body:not(.sdy-immersive-active) .panel-player.is-bg-color .sdy-random-count { color: #000; }
body:not(.sdy-immersive-active) .panel-player.is-bg-image .sdy-act-count { color: #000; }
body:not(.sdy-immersive-active) .panel-player.is-bg-image .sdy-random-count { color: #000; }

body:not(.sdy-immersive-active) .panel-player.is-bg-color .full-transport-btn--loop img,
body:not(.sdy-immersive-active) .panel-player.is-bg-image .full-transport-btn--loop img {
    filter: brightness(0) drop-shadow(0 0 4px #fff);
}

.panel-player.is-bg-color .full-jiaohu-btn i,
.panel-player.is-bg-image .full-jiaohu-btn i,
.panel-player.is-bg-color .full-player-back,
.panel-player.is-bg-image .full-player-back,
.panel-player.is-bg-color .full-player-back i,
.panel-player.is-bg-image .full-player-back i {
    color: #000;
    filter: drop-shadow(0 0 4px #fff);
}

.panel-player.is-bg-divine .full-jiaohu-btn img {
    filter: brightness(0) invert(1) drop-shadow(0 0 3px rgba(0, 0, 0, 0.35));
}

.panel-player.is-bg-divine .full-jiaohu-btn.is-on img {
    filter: none;
}

.panel-player.is-bg-divine .full-time-row {
    color: rgba(255, 255, 255, 0.85);
}

.panel-player.is-bg-color .full-seek-bar,
.panel-player.is-bg-image .full-seek-bar {
    accent-color: var(--dominant-color, #bbc7a4);
    background: linear-gradient(
        to right,
        rgba(255, 255, 255, 0.45) 0,
        rgba(255, 255, 255, 0.45) var(--sdy-buf-pct, 0%),
        var(--sdy-seek-track, rgba(255, 255, 255, 0.22)) var(--sdy-buf-pct, 0%),
        var(--sdy-seek-track, rgba(255, 255, 255, 0.22)) 100%
    );
}

.full-seek-bar::-webkit-slider-thumb {
    background: #fff;
}

.full-seek-bar::-moz-range-thumb {
    background: #fff;
}

.panel-player.is-bg-color .full-seek-bar::-webkit-slider-runnable-track,
.panel-player.is-bg-image .full-seek-bar::-webkit-slider-runnable-track,
.panel-player.is-bg-color .full-seek-bar::-moz-range-track,
.panel-player.is-bg-image .full-seek-bar::-moz-range-track {
    background: linear-gradient(
        to right,
        rgba(255, 255, 255, 0.45) 0,
        rgba(255, 255, 255, 0.45) var(--sdy-buf-pct, 0%),
        var(--sdy-seek-track, rgba(255, 255, 255, 0.22)) var(--sdy-buf-pct, 0%),
        var(--sdy-seek-track, rgba(255, 255, 255, 0.22)) 100%
    );
}

.panel-player.is-bg-divine,
.panel-player.is-immersive-local {
    background: #000;
}

.full-immersive-host {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    background: #000;
    pointer-events: none;
}

body.sdy-mode-divine .full-immersive-host,
body.sdy-immersive-active .full-immersive-host {
    background: #000;
}

.sdy-immersive-chrome-btn {
    pointer-events: auto;
}

.full-immersive-host[hidden] {
    display: none !important;
}

.full-immersive-host.is-parked {
    visibility: hidden;
}

body.sdy-full-player-open.sdy-immersive-active .full-player-bg-img,
body.sdy-full-player-open.sdy-immersive-active .full-player-bg-fallback {
    opacity: 0;
}

body.sdy-mode-divine.sdy-divine-has-cover .full-player-bg-img {
    opacity: 1;
    filter: blur(48px) saturate(1.12) brightness(0.7);
    transform: scale(1.12);
}

body.sdy-mode-divine.sdy-divine-color-base .full-player-bg-fallback {
    opacity: 1;
}

body.sdy-immersive-active .full-player-bg-mask {
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.05) 0%,
        rgba(0, 0, 0, 0.35) 55%,
        rgba(0, 0, 0, 0.82) 100%
    );
}

body.sdy-immersive-active .full-player-bg-mask,
.panel-player.is-immersive-plugins-active .full-player-bg-mask {
    opacity: 0.15;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.02) 0%,
        rgba(0, 0, 0, 0.12) 55%,
        rgba(0, 0, 0, 0.35) 100%
    );
}

.panel-player.is-bg-divine .full-immersive-host {
    z-index: 1;
}

.panel-player.is-bg-divine .full-player-bg-img,
.panel-player.is-bg-divine .full-player-bg-fallback,
.panel-player.is-bg-divine .full-player-color-bg {
    opacity: 0;
}

.panel-player.is-bg-divine .full-player-bg-mask {
    z-index: 2;
    pointer-events: none;
}

.panel-player.is-immersive-local .full-immersive-host {
    z-index: 1;
}

body.sdy-mode-cloud.sdy-full-player-open .panel-player.is-bg-divine {
    background: transparent;
}

body.sdy-mode-cloud.sdy-full-player-open .panel-player .full-player,
body.sdy-mode-cloud.sdy-full-player-open .full-immersive-host,
body.sdy-mode-cloud.sdy-full-player-open.sdy-immersive-active .full-immersive-host,
body.sdy-mode-cloud.sdy-full-player-open.sdy-mode-divine .full-immersive-host {
    background: var(--sdy-divine-base, var(--dominant-color, #bbc7a4));
}

html.sdy-native-player-ui body.sdy-full-player-open .panel-player .full-player,
html.sdy-native-player-ui body.sdy-full-player-open .panel-player.is-bg-divine {
    background: transparent;
}

/* Native GL sits behind the WebView. Opaque CSS here would hide the surface. */
html.sdy-native-gl-bg,
html.sdy-native-gl-bg body {
    background: transparent;
}

html.sdy-native-gl-bg.sdy-player-sheet-settled:not(.sdy-native-sheet-out) body.sdy-full-player-open #app {
    visibility: hidden;
}

html.sdy-native-gl-bg body.sdy-full-player-open #panel-player,
html.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-player-shell {
    visibility: visible;
}

html.sdy-native-player-ui.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-player-bg {
    visibility: hidden;
    pointer-events: none;
}

html.sdy-native-player-ui.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-player-shell {
    visibility: visible;
    pointer-events: none;
    background: transparent;
}

html.sdy-native-player-ui.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-stage,
html.sdy-native-player-ui.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-lyrics-stage,
html.sdy-native-player-ui.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-lyrics-scroll,
html.sdy-native-player-ui.sdy-native-gl-bg body.sdy-full-player-open #panel-player .full-lyrics-body {
    visibility: visible;
}

html.sdy-native-gl-bg .panel-player.is-bg-divine,
html.sdy-native-gl-bg .panel-player.is-immersive-local,
html.sdy-native-gl-bg .panel-player .full-player,
html.sdy-native-gl-bg .full-immersive-host,
html.sdy-native-gl-bg body.sdy-mode-divine .full-immersive-host,
html.sdy-native-gl-bg body.sdy-immersive-active .full-immersive-host,
html.sdy-native-gl-bg body.sdy-mode-cloud.sdy-full-player-open .panel-player.is-bg-divine,
html.sdy-native-gl-bg body.sdy-mode-cloud .panel-player .full-player,
html.sdy-native-gl-bg body.sdy-mode-cloud .full-immersive-host,
html.sdy-native-gl-bg body.sdy-mode-cloud.sdy-immersive-active .full-immersive-host,
html.sdy-native-gl-bg body.sdy-mode-cloud.sdy-mode-divine .full-immersive-host,
html.sdy-native-gl-bg #panel-player,
html.sdy-native-gl-bg #panel-player.panel-player.is-bg-divine,
html.sdy-native-gl-bg #panel-player .full-player,
html.sdy-native-gl-bg #full-immersive-host {
    background: transparent;
    background-color: transparent;
    background-image: none;
}

body.sdy-full-player-open.sdy-immersive-active .full-vinyl-stage,
body.sdy-full-player-open.sdy-immersive-active .full-tonearm {
    display: none;
}

body.sdy-full-player-open.sdy-immersive-active .full-cover-art-stage,
body.sdy-full-player-open.sdy-immersive-active .full-color-title-stage {
    display: none;
}

body.sdy-immersive-active .full-player-meta {
    visibility: hidden;
}

body.sdy-full-player-open.sdy-immersive-active.sdy-full-player-lyrics .full-player-header,
body.sdy-full-player-open.sdy-immersive-active .full-player.is-long-lyrics .full-player-header {
    display: none;
}

body.sdy-immersive-active .full-player-search-trigger img {
    filter: brightness(0) invert(1);
}

body.sdy-immersive-active .full-player-mode-fab {
    border-color: rgba(255, 255, 255, 0.5);
    background: rgba(0, 0, 0, 0.35);
}

body.sdy-mode-divine .full-tool-btn--sleep,
body.sdy-immersive-active .full-tool-btn--sleep {
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

body.sdy-full-player-open.sdy-immersive-active.divine-screen-rotated #panel-player {
    position: fixed;
    transform: rotate(90deg);
    transform-origin: center center;
    width: 100vh;
    height: 100vw;
    top: 50%;
    left: 50%;
    margin-left: -50vh;
    margin-top: -50vw;
    background: #000;
    overflow: hidden;
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-orientation-toggle-btn,
body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-lock-btn {
    display: flex;
    position: fixed;
    z-index: 1000;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-orientation-toggle-btn:not([hidden]) {
    left: 10px;
    bottom: 10px;
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode.divine-screen-rotated #divine-orientation-toggle-btn:not([hidden]),
body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode .panel-player.sdy-native-fake-landscape #divine-orientation-toggle-btn:not([hidden]),
html.sdy-native-fake-landscape body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-orientation-toggle-btn:not([hidden]) {
    left: calc(10px + max(var(--sdy-sat, 44px), 44px));
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-lock-btn:not([hidden]) {
    left: 60px;
    bottom: 10px;
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode.divine-screen-rotated #divine-lock-btn:not([hidden]),
body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode .panel-player.sdy-native-fake-landscape #divine-lock-btn:not([hidden]),
html.sdy-native-fake-landscape body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-lock-btn:not([hidden]) {
    left: calc(60px + max(var(--sdy-sat, 44px), 44px));
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode #divine-lock-btn.is-auto-hidden {
    display: none;
}

body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode[data-screen-locked="true"] #divine-orientation-toggle-btn,
body.sdy-full-player-open.sdy-immersive-active.portrait-long-mode[data-screen-locked="true"] .full-mini-play {
    display: none;
}

body.sdy-full-player-open.sdy-immersive-active.divine-screen-rotated .full-player,
body.sdy-full-player-open.sdy-immersive-active.divine-screen-rotated .full-player-shell,
body.sdy-full-player-open.sdy-immersive-active .panel-player.sdy-native-fake-landscape .full-player,
body.sdy-full-player-open.sdy-immersive-active .panel-player.sdy-native-fake-landscape .full-player-shell {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    max-width: none;
    width: 100%;
}

body.sdy-full-player-open.sdy-immersive-active.divine-screen-rotated .full-lyrics-stage,
body.sdy-full-player-open.sdy-immersive-active.divine-screen-rotated .full-lyrics-scroll,
body.sdy-full-player-open.sdy-immersive-active .panel-player.sdy-native-fake-landscape .full-lyrics-stage,
body.sdy-full-player-open.sdy-immersive-active .panel-player.sdy-native-fake-landscape .full-lyrics-scroll {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex: 1;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
}

html.sdy-native-player-ui.sdy-native-sheet-open #full-player-mode-preview:not([hidden]) {
    visibility: visible;
    pointer-events: auto;
}

.full-player-mode-preview {
    position: fixed;
    inset: 0;
    z-index: 160;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: calc(8px + var(--sdy-sat, env(safe-area-inset-top, 0px))) 0 calc(20px + var(--sdy-sab, env(safe-area-inset-bottom, 0px)));
    background: #f7f8fa;
    color: #111;
}

.full-player-mode-preview__head {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    padding: 4px 8px 8px;
}

.full-player-mode-preview__viewport {
    flex: 1;
    min-height: 0;
    width: 100%;
    overflow: hidden;
    touch-action: pan-x;
}

.full-player-mode-preview__rail {
    display: flex;
    flex-direction: row;
    height: 100%;
    width: 100%;
    will-change: transform;
}

.full-player-mode-preview__slide {
    flex: 0 0 auto;
    box-sizing: border-box;
    height: 100%;
    padding: 0 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.full-player-mode-preview__art {
    width: 100%;
    max-width: 360px;
    height: 64vh;
    flex-shrink: 0;
    border-radius: 20px;
    overflow: hidden;
    background: #111;
    background-size: cover;
    background-position: center;
}

.full-player-mode-preview__art-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.full-player-mode-preview__meta {
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0 24px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.full-player-mode-preview__name {
    width: 100%;
    max-width: 360px;
    margin: 16px 0 8px;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
}

.full-player-mode-preview__desc {
    width: 100%;
    max-width: 360px;
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: #888;
    text-align: left;
}

.full-player-mode-preview__use {
    position: relative;
    overflow: hidden;
    display: block;
    width: 100%;
    max-width: 360px;
    height: 48px;
    margin: 28px auto 0;
    border: 0;
    border-radius: 24px;
    background: #ff3b30;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

.full-player-mode-preview__use-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 0;
    background: #ff3b30;
    border-radius: inherit;
}

.full-player-mode-preview__use-label {
    position: relative;
    z-index: 1;
}

.full-player-mode-preview__use.is-progress,
.full-player-mode-preview__use.is-done {
    cursor: default;
    background: #ffb3ae;
}

.full-player-mode-preview__use.is-done .full-player-mode-preview__use-fill {
    width: 100%;
}

/* 网页枝随机简页：同一 #panel-player，藏唱针/字幕/多余钮，留标题作者红心进度运控定时 */
body.sdy-mode-random .full-tonearm,
body.sdy-mode-random .full-lyrics-stage,
body.sdy-mode-random .full-cover-art-stage,
body.sdy-mode-random .full-color-title-stage,
body.sdy-mode-random #full-player-jiaohu .full-jiaohu-btn:not(#full-btn-favorite):not(#full-btn-like),
body.sdy-mode-random #full-btn-loop,
body.sdy-mode-random #full-btn-open-playlist,
body.sdy-mode-random #full-btn-prev-lyric,
body.sdy-mode-random #full-btn-next-lyric,
body.sdy-mode-random #full-btn-study,
body.sdy-mode-random #full-btn-my-read,
body.sdy-mode-random .full-follow-exit,
body.sdy-mode-random .full-follow-read-hint,
body.sdy-mode-random .full-no-srt-hint,
body.sdy-mode-random .player-search-container,
body.sdy-mode-random .full-player-search-trigger,
body.sdy-mode-random #player-search-trigger,
body.sdy-mode-random #player-search-container {
    display: none;
}

body.sdy-mode-random .full-player-transport {
    padding-bottom: 0;
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    height: auto;
}

/* 网页枝随机：对照外站参考图元件位置（云雾底，不是外站渐变） */
body.sdy-mode-random .full-player {
    --fp-vinyl: min(72vw, 280px);
}

body.sdy-mode-random.sdy-full-player-open .panel-player.is-expanded .full-player,
body.sdy-mode-random .panel-player.is-collapsing .full-player {
    background: var(--sdy-divine-base, var(--dominant-color, transparent));
}

body.sdy-mode-random #full-vinyl-stage {
    width: 100%;
    height: var(--fp-vinyl);
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

body.sdy-mode-random .panel-player .full-player-bg-mask,
body.sdy-mode-random .full-player-bg-mask {
    display: none;
}

body.sdy-mode-random .full-player-shell {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding-bottom: calc(40px + var(--sdy-sab));
}

body.sdy-mode-random .full-player-header {
    display: flex;
    flex: 0 0 auto;
    order: 0;
    align-items: flex-start;
    padding-top: calc(15px + var(--sdy-sat, env(safe-area-inset-top, 0px)));
}

body.sdy-mode-random #player-search-trigger,
body.sdy-mode-random #player-search-trigger img,
body.sdy-mode-random #player-search-container {
    display: none;
    width: 0;
    height: 0;
    overflow: hidden;
    visibility: hidden;
}

body.sdy-mode-random .full-stage {
    order: 1;
    flex: 0 0 auto;
    min-height: 0;
    padding-top: 0px;
}

body.sdy-mode-random .full-player-meta {
    order: 2;
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    text-align: center;
    padding: 4px 28px 0;
}

body.sdy-mode-random .full-player-title {
    color: #fff;
    font-size: 22px;
    font-weight: 500;
}

body.sdy-mode-random .full-player-artist {
    color: #fff;
    font-size: 14px;
    margin-top: 4px;
}

body.sdy-mode-random #panel-player .full-player-jiaohu,
body.sdy-mode-random .full-player-jiaohu {
    order: 3;
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    justify-content: center;
    gap: 36px;
    padding: 4px 0 2px;
}

body.sdy-mode-random #full-btn-favorite i,
body.sdy-mode-random #full-btn-like i {
    font-size: 26px;
}

body.sdy-mode-random #full-btn-favorite.has-count i,
body.sdy-mode-random #full-btn-like.has-count i {
    -webkit-mask-image: radial-gradient(circle 12px at 112% 0%, transparent 11px, #000 12px);
    mask-image: radial-gradient(circle 12px at 112% 0%, transparent 11px, #000 12px);
}

#full-btn-like {
    display: inline-flex;
    position: relative;
}

#full-btn-favorite {
    position: relative;
}

body.sdy-mode-random .panel-player #full-btn-like i,
body.sdy-mode-random .panel-player #full-btn-favorite i,
body.sdy-mode-random .panel-player #full-btn-like .sdy-random-count,
body.sdy-mode-random .panel-player #full-btn-favorite .sdy-random-count,
body.sdy-mode-random .panel-player #full-btn-like .sdy-act-count,
body.sdy-mode-random .panel-player #full-btn-favorite .sdy-act-count {
    color: #fff;
}

body.sdy-immersive-active.sdy-mode-random #full-btn-like.is-on i,
body.sdy-immersive-active.sdy-mode-random #full-btn-favorite.is-on i,
body.sdy-immersive-active.sdy-mode-random #full-btn-like.is-on .sdy-random-count,
body.sdy-immersive-active.sdy-mode-random #full-btn-favorite.is-on .sdy-random-count {
    color: #fff;
}

body.sdy-mode-random .sdy-random-count {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 12px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #fff;
    font-size: 10px;
    line-height: 12px;
    text-align: center;
    font-weight: 600;
    pointer-events: none;
}

body.sdy-mode-random .sdy-random-count[hidden] {
    display: none;
}

body.sdy-mode-random .sdy-random-cue {
    order: 4;
    display: none;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    padding: 0 28px 10px;
    overflow: hidden;
    white-space: normal;
}

body.sdy-mode-random.has-random-cue .sdy-random-cue {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    margin-top: 0;
}

body.sdy-mode-random #panel-player .full-player-progress,
body.sdy-mode-random .full-player-progress {
    order: 5;
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    margin-top: auto;
    transform: translateY(-14px);
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "cur bar dur";
    align-items: center;
    gap: 8px;
    padding: 4px 28px 0;
}

body.sdy-mode-random.has-random-cue .full-player-progress {
    margin-top: 0;
}

body.sdy-mode-random #full-seek-bar {
    grid-area: bar;
}

body.sdy-mode-random .full-time-row {
    display: contents;
}

body.sdy-mode-random #full-time-current,
body.sdy-mode-random #full-time-duration {
    color: #fff;
}

body.sdy-mode-random #full-time-current {
    grid-area: cur;
}

body.sdy-mode-random #full-time-duration {
    grid-area: dur;
}

body.sdy-mode-random .full-player-jiaohu,
body.sdy-mode-random .full-player-progress,
body.sdy-mode-random .full-player-transport {
    z-index: 23;
}

body.sdy-mode-random .full-player-transport {
    order: 6;
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    height: auto;
    margin-top: 0;
    margin-bottom: calc(16px + var(--sdy-sab));
    padding: 8px 16px 0;
    justify-content: center;
    gap: 40px;
}

body.sdy-mode-random #full-btn-play {
    width: min(28vw, 96px);
    height: min(28vw, 96px);
    min-width: 72px;
    min-height: 72px;
    max-width: 96px;
    flex: 0 0 min(28vw, 96px);
    border: 3.5px solid #fff;
    border-radius: 50%;
    background: transparent;
}

body.sdy-mode-random .full-tool-btn--sleep {
    order: 6;
    bottom: var(--sdy-sab);
    color: #fff;
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(255, 255, 255, 0.45);
}

body.sdy-mode-random .full-tool-btn--pick {
    position: absolute;
    bottom: var(--sdy-sab);
    transform: none;
    z-index: 22;
    min-width: 60px;
    height: 30px;
}

#full-btn-random-pick {
    display: none;
}

body.sdy-mode-random #full-btn-random-pick {
    display: inline-flex;
}

body.sdy-mode-random.sdy-full-player-open .full-immersive-host,
body.sdy-mode-random .full-immersive-host {
    background: var(--sdy-divine-base, var(--dominant-color, transparent));
}
