/* ClubOS Music Shell Runtime — externalized by R103 FIX11 FIX4 FIX3.
 * Single CSS source for native /music and lazy player bootstrap from Blog.
 */
:root {
    --music-bg-start: var(--site-bg);
    --music-bg-end: var(--site-bg);
    --music-card: var(--site-surface);
    --music-card-soft: var(--site-surface-2);
    --music-border: var(--site-border);
    --music-text: var(--site-text);
    --music-muted: var(--site-text-muted);
    --music-accent: var(--site-accent);
    --music-accent-soft: var(--site-accent);
}

body.music-page-shell {
    min-height: 100vh;
    background: var(--site-bg-gradient);
    color: var(--music-text);
}

body.music-page-shell .site-shell {
    max-width: 1180px;
}

.navbar.music-navbar {
    position: sticky;
    top: 0;
    z-index: 1200;
    background: rgba(8, 12, 22, .88);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(107, 123, 159, .28);
}

.music-shell-main {
    position: relative;
    z-index: 1;
}

.music-context-sticky {
    position: sticky;
    top: calc(var(--music-nav-height, 72px) - 16px);
    z-index: 1180;
    margin-top: 0 !important;
}

.music-context-bar {
    padding: .75rem .9rem;
    border: 1px solid rgba(86, 103, 136, .45);
    background: linear-gradient(180deg, rgba(13, 20, 33, .96), rgba(10, 16, 27, .92));
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .22);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-left-radius: .85rem;
    border-bottom-right-radius: .85rem;
}

.navbar.music-navbar .navbar-brand,
.navbar.music-navbar .nav-link,
.navbar.music-navbar .btn-link {
    color: var(--music-text);
}

.music-page-shell .card {
    background: linear-gradient(180deg, rgba(21, 28, 45, .96), rgba(15, 21, 34, .96));
    color: var(--music-text);
    border: 1px solid rgba(70, 84, 114, .35) !important;
}

.album-card {
    border-radius: 1rem;
    overflow: hidden;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.album-card:hover {
    transform: translateY(-6px);
    border-color: rgba(54, 200, 255, .55) !important;
    box-shadow: 0 18px 36px rgba(0, 0, 0, .42);
}

.album-cover-link {
    overflow: hidden;
    border-radius: .95rem .95rem 0 0;
}

.album-cover,
.album-detail-cover {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: .75rem;
    border: 1px solid rgba(106, 124, 157, .35);
}

.album-cover {
    border-radius: 0;
    transition: transform .35s ease;
}

.album-card:hover .album-cover {
    transform: scale(1.04);
}

.placeholder-cover {
    background: linear-gradient(135deg, rgba(35, 46, 67, .9), rgba(20, 28, 43, .95));
}

.playlist-cover-placeholder {
    background: radial-gradient(circle at 20% 20%, rgba(46, 224, 255, .35), transparent 45%),
        radial-gradient(circle at 80% 80%, rgba(148, 83, 255, .3), transparent 45%),
        linear-gradient(135deg, rgba(28, 38, 62, .96), rgba(13, 22, 39, .98));
    border-bottom: 1px solid rgba(106, 124, 157, .3);
}

.playlist-cover-content {
    color: rgba(226, 240, 255, .96);
    text-shadow: 0 8px 20px rgba(0, 0, 0, .35);
}

.playlist-cover-icon {
    font-size: 2.1rem;
    line-height: 1;
    margin-bottom: .3rem;
}

.playlist-cover-label {
    font-size: .72rem;
    letter-spacing: .18em;
    font-weight: 700;
    opacity: .9;
}

.playlist-empty-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(191, 225, 255, .95);
    font-size: 1.5rem;
    background: linear-gradient(135deg, rgba(37, 121, 191, .45), rgba(118, 74, 209, .38));
    border: 1px solid rgba(114, 149, 204, .45);
}

.music-playlist-card {
    transition: transform .16s ease, box-shadow .16s ease;
}

.music-playlist-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 32px rgba(4, 10, 22, .3);
}

.music-playlist-card-description {
    min-height: 2.6rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.music-playlist-detail-header .card-body {
    padding-bottom: 1.35rem;
}

.music-playlist-detail-title-row .music-btn {
    margin-top: .1rem;
}

.music-playlist-tracks-card .card-body > .p-3 {
    padding-top: .82rem !important;
    padding-bottom: .82rem !important;
}

.music-playlist-empty-state {
    border-top: 1px solid rgba(106, 124, 157, .22);
}

.music-page-shell .text-secondary {
    color: var(--music-muted) !important;
}

.music-page-shell .btn-primary {
    background: linear-gradient(120deg, var(--music-accent) 0%, #29a7ff 100%);
    color: #0b1221;
    border: none;
    font-weight: 600;
}

.music-page-shell .btn-primary:hover {
    color: #0b1221;
    filter: brightness(1.04);
}

.music-btn {
    border-radius: .72rem;
    font-weight: 600;
    letter-spacing: .01em;
    transition: all .16s ease;
    line-height: 1.2;
    min-height: 1.84rem;
    padding: .24rem .52rem;
    box-shadow: 0 3px 10px rgba(3, 10, 20, .16);
}

.music-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 16px rgba(3, 10, 20, .22);
}

.music-btn:disabled {
    opacity: .55;
    transform: none;
    cursor: not-allowed;
}

.music-btn-primary {
    box-shadow: 0 8px 20px rgba(30, 215, 96, .18);
}

.music-btn-ghost {
    border-color: rgba(112, 131, 168, .6);
    background: rgba(12, 18, 30, .45);
}

.music-btn-ghost:hover {
    border-color: rgba(143, 163, 204, .8);
    background: rgba(28, 39, 61, .7);
}

#global-player-toggle {
    color: #e9f1ff;
    border-color: rgba(150, 176, 220, .72);
    background: linear-gradient(180deg, rgba(22, 32, 50, .96), rgba(16, 24, 39, .96));
}

#global-player-toggle:hover,
#global-player-toggle:focus-visible {
    color: #f8fbff !important;
    border-color: rgba(181, 206, 245, .95);
    background: linear-gradient(180deg, rgba(36, 52, 80, .98), rgba(26, 39, 62, .98));
    box-shadow: 0 0 0 .2rem rgba(122, 171, 236, .24);
}

#global-player-toggle:disabled {
    color: rgba(206, 220, 246, .72);
    border-color: rgba(109, 130, 166, .5);
    background: rgba(16, 24, 39, .72);
    box-shadow: none;
}

#global-player-toggle,
#global-player-prev,
#global-player-next,
#global-player-shuffle,
#global-player-volume {
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
    padding: 0;
    border-radius: 999px;
    position: relative;
}

#global-player-loop {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
    padding: 0;
    border-radius: 999px;
}

#global-player-loop .music-loop-badge {
    position: absolute;
    right: .24rem;
    bottom: .2rem;
    min-width: .74rem;
    height: .74rem;
    padding: 0 .14rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 214, 122, .55);
    background: rgba(255, 199, 79, .2);
    color: #ffd777;
    font-size: .56rem;
    font-weight: 700;
    line-height: .66rem;
    text-align: center;
    opacity: 0;
    transform: scale(.8);
    transition: opacity .16s ease, transform .16s ease;
}

.music-btn-subtle {
    border-color: rgba(112, 131, 168, .45);
    color: #d5dceb;
}

.music-btn-comment {
    border-color: rgba(95, 198, 255, .55);
    color: #bce8ff;
    background: rgba(20, 53, 84, .3);
}

.music-btn-comment:hover {
    color: #e6f6ff;
    background: rgba(31, 86, 131, .45);
    border-color: rgba(120, 219, 255, .8);
}

.music-btn-comments {
    min-width: 2.4rem;
}

.music-track-play-btn,
.music-track-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .2rem;
}

.music-track-play-btn {
    width: 1.95rem;
    min-width: 1.95rem;
    height: 1.95rem;
    padding: 0;
    border-radius: 999px;
    border-color: rgba(143, 163, 204, .82);
    background: rgba(22, 34, 54, .68);
    color: #e9f2ff;
    box-shadow: 0 3px 10px rgba(3, 10, 20, .22);
}

.music-track-play-btn:hover,
.music-track-play-btn:focus-visible {
    border-color: rgba(176, 199, 240, .95);
    background: rgba(39, 57, 87, .9);
    color: #f8fbff !important;
}

.music-track-play-btn.is-playing {
    border-color: rgba(255, 203, 102, .92);
    background: linear-gradient(120deg, rgba(255, 198, 94, .95), rgba(255, 150, 96, .95));
    color: #2a1f08;
    box-shadow: 0 6px 16px rgba(255, 174, 92, .3);
}

.music-track-play-btn .music-track-play-icon {
    font-size: .92rem;
    line-height: 1;
    transform: translateX(.03rem);
}

.music-track-action-btn {
    min-width: 1.3rem;
    height: 1.6rem;
    padding: 0 .14rem;
    border-radius: .42rem;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.music-track-action-btn:hover,
.music-track-action-btn:focus-visible {
    background: rgba(58, 84, 121, .28);
    box-shadow: none;
    transform: none;
}

.music-track-action-icon {
    font-size: .95rem;
    line-height: 1;
    opacity: .9;
}

.music-track-icon-svg {
    width: .98rem;
    height: .98rem;
    display: block;
    fill: currentColor;
}

.music-track-action-icon-mp3 {
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .04em;
    border: 1px solid currentColor;
    border-radius: .22rem;
    padding: .08rem .18rem;
    line-height: 1.05;
}

.music-track-action-btn.music-btn-comment {
    color: #93ddff;
}

.music-track-action-btn.music-btn-comment.is-empty {
    color: #808080;
    opacity: .5;
}

.music-track-action-btn.music-btn-comment.is-open {
    color: #f4c27c;
}

.music-track-comment-count {
    font-size: .66rem;
    font-weight: 600;
    color: #9fb7da;
    margin-left: .05rem;
}

.music-track-action-btn.music-btn-like {
    color: #f3adbe;
    gap: .1rem;
}

.music-track-action-btn.music-btn-like .music-track-action-icon {
    font-size: .9rem;
}

.music-track-like-count {
    font-size: .68rem;
    font-weight: 600;
    color: #b6c6df;
    min-width: 1ch;
}

.music-track-action-btn.music-btn-favorite {
    color: #808080 !important;
    filter: none;
}

.music-track-action-btn.music-btn-favorite.is-active {
    color: #f5c400 !important;
    filter: drop-shadow(0 0 4px rgba(245, 196, 0, .45)) drop-shadow(0 1px 1px rgba(0, 0, 0, .18));
}

:root[data-theme="light"] .music-track-action-btn.music-btn-comment.is-empty {
    color: #808080;
    opacity: .5;
}

.music-track-action-btn.music-btn-comment.is-empty:hover,
.music-track-action-btn.music-btn-comment.is-empty:focus-visible {
    opacity: .72;
}

:root[data-theme="light"] .music-track-action-btn.music-btn-favorite {
    color: #808080 !important;
}

:root[data-theme="light"] .music-track-action-btn.music-btn-favorite.is-active {
    color: #f5c400 !important;
    filter: drop-shadow(0 0 4px rgba(245, 196, 0, .5)) drop-shadow(0 1px 1px rgba(0, 0, 0, .22));
}

.music-track-action-btn.js-track-playlist-add {
    color: #b7c8e5;
}

.music-track-action-btn.music-btn-download {
    color: #9ddba5;
}

.music-album-actions {
    padding-top: .2rem;
}

.js-music-play-trigger.btn-warning {
    border-color: rgba(255, 203, 102, .9);
    color: #1b1212;
    background: linear-gradient(120deg, rgba(255, 198, 94, .95), rgba(255, 150, 96, .95));
    box-shadow: 0 6px 16px rgba(255, 174, 92, .28);
}

.js-music-play-trigger:not(.btn-warning):hover,
.js-music-play-trigger:not(.btn-warning):focus-visible {
    color: #f4f8ff !important;
    background: rgba(29, 44, 69, .88);
    border-color: rgba(155, 182, 229, .85);
}

.js-music-play-trigger.btn-warning:hover,
.js-music-play-trigger.btn-warning:focus-visible {
    color: #2a1f08 !important;
    filter: brightness(1.03);
}

.music-track-table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--music-text);
    --bs-table-border-color: rgba(73, 90, 123, .45);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.02);
    --bs-table-hover-bg: rgba(54, 200, 255, 0.07);
}

.music-track-table > :not(caption) > * > * {
    padding-top: .48rem;
    padding-bottom: .48rem;
    border-bottom-color: rgba(73, 90, 123, .4);
    font-size: .93rem;
}

.music-track-row {
    transition: background-color .16s ease;
}

.music-track-row:hover {
    background: rgba(43, 69, 103, .22);
}

.music-track-row.is-track-playing {
    background: linear-gradient(90deg, rgba(33, 78, 122, .42), rgba(23, 49, 80, .28)) !important;
    box-shadow: inset 0 0 0 1px rgba(118, 214, 255, .28);
}

.music-track-row.is-track-paused {
    background: linear-gradient(90deg, rgba(33, 78, 122, .2), rgba(23, 49, 80, .14)) !important;
    box-shadow: inset 0 0 0 1px rgba(118, 214, 255, .16);
}

.music-track-row.is-track-targeted {
    animation: musicTrackPulse 1.25s ease;
}

.music-track-row .fw-semibold {
    font-size: .94rem;
    line-height: 1.2;
}

.music-track-row .badge {
    font-size: .62rem;
    padding: .2rem .38rem;
}

@keyframes musicTrackPulse {
    0% { box-shadow: inset 0 0 0 1px rgba(36, 225, 123, .7); }
    100% { box-shadow: inset 0 0 0 1px rgba(36, 225, 123, 0); }
}

.music-track-actions {
    justify-content: flex-end;
    row-gap: .3rem !important;
    column-gap: .35rem !important;
    flex-wrap: nowrap !important;
    white-space: nowrap;
}

.track-cover-thumb {
    width: 38px;
    height: 38px;
    border-radius: .4rem;
    object-fit: cover;
    border: 1px solid rgba(106, 124, 157, .45);
}

.track-cover-placeholder {
    background: rgba(35, 46, 67, .85);
}

.music-page-shell .access-cta {
    border-left: 4px solid var(--music-accent-soft);
    background: rgba(34, 48, 74, .65);
    color: var(--music-text);
}

.music-page-shell .alert-secondary {
    background: rgba(34, 48, 74, .65);
    color: var(--music-text);
    border: 1px solid rgba(86, 103, 136, .45);
}

:root[data-theme="light"] .music-page-shell .alert-secondary {
    background: #f6faff;
    color: #0d2542;
    border: 1px solid #c3d8f3;
}

:root[data-theme="light"] .music-page-shell .alert-secondary .btn-outline-light {
    color: #0a5495;
    border-color: #7daadd;
    background: #ffffff;
}

:root[data-theme="light"] .music-page-shell .alert-secondary .btn-outline-light:hover,
:root[data-theme="light"] .music-page-shell .alert-secondary .btn-outline-light:focus-visible {
    color: #083f6f;
    border-color: #5e92ce;
    background: #eef6ff;
}

.music-page-shell a {
    color: #9ad5ff;
}

.music-page-shell a:hover {
    color: #c4e7ff;
}

.music-page-shell {
    --music-nav-height: 72px;
    --music-sticky-offset-total: 132px;
    padding-bottom: 136px;
}
#site-shell-root {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
#site-shell-main {
    flex: 1 1 auto;
}
#site-shell-content {
    position: relative;
}
#site-shell-player-zone {
    position: relative;
    z-index: 1100;
}

@media (min-width: 768px) {
    .global-music-player[hidden] { display: none !important; }
}

.global-music-player {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1100;
    background: linear-gradient(180deg, rgba(8, 13, 24, .94), rgba(6, 10, 18, .98));
    border-top: 1px solid rgba(86, 103, 136, .5);
    backdrop-filter: blur(10px);
    box-shadow: 0 -14px 34px rgba(0, 0, 0, .42);
}

.global-music-player__inner {
    width: 100%;
    box-sizing: border-box;
}

.global-music-player__main {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 0;
    flex-wrap: nowrap;
}

.global-music-player__meta {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .55rem;
    flex: 0 1 186px;
    max-width: 196px;
}

.global-music-player__transport {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: nowrap;
    flex: 0 0 auto;
}

.global-music-player__timeline {
    display: flex;
    align-items: center;
    gap: .42rem;
    min-width: 0;
    flex: 1 1 auto;
    position: relative;
}

.global-music-player__actions {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: nowrap;
    flex: 0 0 auto;
    max-width: max-content;
}

.global-music-player__dock-header {
    display: none;
}

#global-player-undock {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    width: 100%;
    border-radius: .72rem;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .01em;
}

#global-player-undock svg {
    width: .95rem;
    height: .95rem;
    fill: currentColor;
}

.global-music-player__cover {
    width: 44px;
    height: 44px;
    border-radius: .5rem;
    object-fit: cover;
    border: 1px solid rgba(106, 124, 157, .45);
    background: rgba(35, 46, 67, .85);
}

.global-music-player__title {
    font-weight: 600;
    color: var(--music-text);
    line-height: 1.2;
    overflow: hidden;
    white-space: nowrap;
}

.global-music-player__subtitle {
    color: var(--music-muted);
    font-size: .82rem;
    line-height: 1.2;
    overflow: hidden;
    white-space: nowrap;
}

.global-music-player__meta-text {
    min-width: 0;
    flex: 1 1 auto;
}

.global-music-player__text-scroll {
    display: inline-block;
    min-width: 100%;
    white-space: nowrap;
    transform: translateX(0);
    will-change: transform;
}

.global-music-player__title.is-marquee .global-music-player__text-scroll,
.global-music-player__subtitle.is-marquee .global-music-player__text-scroll {
    animation: global-player-marquee 8.5s linear infinite;
}

@keyframes global-player-marquee {
    0%, 14% {
        transform: translateX(0);
    }
    86%, 100% {
        transform: translateX(calc(-1 * var(--marquee-shift, 0px)));
    }
}

.global-music-player__seek {
    width: 1px;
    height: 1px;
    margin: 0;
    --seek-progress: 0%;
    --seek-played: #f28b4f;
    --seek-unplayed: rgba(95, 126, 176, .54);
    --seek-thumb: #e85f38;
    --seek-thumb-ring: #f8efe7;
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.global-music-player__seek:disabled {
    cursor: default;
    opacity: .65;
}

.global-music-player__seek::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--seek-played) 0%, var(--seek-played) var(--seek-progress), var(--seek-unplayed) var(--seek-progress), var(--seek-unplayed) 100%);
}

.global-music-player__seek::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--seek-thumb-ring);
    background: var(--seek-thumb);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .28);
    margin-top: -5px;
}

.global-music-player__seek::-moz-range-track {
    height: 4px;
    border-radius: 999px;
    background: var(--seek-unplayed);
}

.global-music-player__seek::-moz-range-progress {
    height: 4px;
    border-radius: 999px;
    background: var(--seek-played);
}

.global-music-player__seek::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--seek-thumb-ring);
    background: var(--seek-thumb);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .28);
}

.global-music-player__times {
    font-size: .78rem;
    color: var(--music-muted);
    min-width: 86px;
    text-align: right;
    white-space: nowrap;
    margin: 0;
    font-variant-numeric: tabular-nums;
    letter-spacing: .01em;
}

.music-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.music-icon-btn svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
    display: block;
}

#global-player-toggle .music-icon-pause {
    display: none;
}

#global-player-toggle[data-playing="1"] .music-icon-play {
    display: none;
}

#global-player-toggle[data-playing="1"] .music-icon-pause {
    display: block;
}

#global-player-loop .music-icon-loop {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
    flex: 0 0 auto;
}

#global-player-loop[data-loop-mode="track"] .music-loop-badge,
#global-player-loop[data-loop-mode="album"] .music-loop-badge {
    opacity: 1;
    transform: scale(1);
}

#global-player-loop[data-loop-mode="none"] {
    color: #9cb0cf;
    border-color: rgba(108, 126, 160, .6);
}

#global-player-loop[data-loop-mode="track"] {
    color: #ffca6f;
    border-color: rgba(255, 205, 116, .92);
    background: rgba(255, 185, 61, .14);
    box-shadow: 0 0 0 1px rgba(255, 203, 111, .24) inset;
}

#global-player-loop[data-loop-mode="album"] {
    color: #88dcff;
    border-color: rgba(128, 225, 255, .9);
    background: rgba(66, 161, 204, .2);
    box-shadow: 0 0 0 1px rgba(116, 214, 251, .24) inset;
}

#global-player-shuffle {
    position: relative;
    isolation: isolate;
}

#global-player-shuffle::after {
    content: attr(data-shuffle-badge);
    position: absolute;
    top: -.34rem;
    right: -.3rem;
    min-width: .98rem;
    height: .98rem;
    padding: 0 .18rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: transparent;
    font-size: .54rem;
    font-weight: 700;
    line-height: .9rem;
    text-align: center;
    letter-spacing: .02em;
    opacity: 0;
    transform: scale(.82);
    transition: opacity .16s ease, transform .16s ease, border-color .16s ease, background-color .16s ease, color .16s ease;
    pointer-events: none;
}

#global-player-shuffle[data-shuffle-mode="local"] {
    color: #ffca6f;
    border-color: rgba(255, 205, 116, .92);
    background: rgba(255, 185, 61, .14);
    box-shadow: 0 0 0 1px rgba(255, 203, 111, .24) inset;
}

#global-player-shuffle[data-shuffle-mode="local"]::after {
    border-color: rgba(255, 214, 139, .58);
    background: rgba(255, 199, 79, .24);
    color: #ffd67e;
    opacity: 1;
    transform: scale(1);
}

#global-player-shuffle[data-shuffle-mode="global"] {
    color: #9ce9ff;
    border-color: rgba(129, 224, 255, .88);
    background: rgba(61, 159, 199, .2);
    box-shadow: 0 0 0 1px rgba(117, 212, 247, .24) inset;
}

#global-player-shuffle[data-shuffle-mode="global"]::after {
    border-color: rgba(128, 225, 255, .56);
    background: rgba(63, 171, 214, .22);
    color: #9ce6ff;
    opacity: 1;
    transform: scale(1);
}

.global-music-player .music-btn-like::before,
.global-music-player .music-btn-favorite::before,
.global-music-player #global-player-playlist::before {
    content: none !important;
}

.music-btn-like-icon,
.music-btn-favorite-icon,
.music-btn-playlist-icon {
    width: .95rem;
    height: .95rem;
    fill: currentColor;
    display: inline-block;
    vertical-align: -.1rem;
    margin-right: .34rem;
}

#global-player-favorite,
#global-player-playlist {
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
    padding: 0;
    border-radius: 999px;
    justify-content: center;
}

#global-player-favorite .music-btn-favorite-icon,
#global-player-playlist .music-btn-playlist-icon {
    margin-right: 0;
}

.music-btn-like-icon {
    color: #ff7f9a;
}

.music-btn-favorite-icon {
    color: #9aa7c2;
    transition: color .16s ease, filter .16s ease;
}

#global-player-favorite.is-active .music-btn-favorite-icon {
    color: #ffcf67;
    filter: drop-shadow(0 0 6px rgba(255, 207, 103, .4));
}

.global-music-player__volume-wrap {
    position: relative;
    display: inline-flex;
}

.global-music-player__volume-popover {
    position: absolute;
    right: 0;
    bottom: calc(100% + .55rem);
    width: 2.65rem;
    padding: .48rem 0;
    border-radius: .8rem;
    border: 1px solid rgba(86, 103, 136, .62);
    background: linear-gradient(180deg, rgba(9, 15, 25, .96), rgba(8, 13, 23, .98));
    box-shadow: 0 16px 28px rgba(0, 0, 0, .36);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 8;
}

.global-music-player__volume-slider {
    width: 1rem;
    height: 7rem;
    margin: 0;
    writing-mode: vertical-lr;
    direction: rtl;
    accent-color: #ff8c55;
    cursor: pointer;
}

#global-player-volume[data-volume-level="muted"] {
    color: #8ea2c0;
}

#global-player-volume[data-volume-level="low"] {
    color: #ffd09a;
}

#global-player-volume[data-volume-level="high"] {
    color: #8ddfff;
}

.music-track-comments {
    background: linear-gradient(180deg, rgba(18, 27, 43, .64), rgba(13, 21, 34, .76));
    border: 1px solid rgba(73, 90, 123, .48);
    border-radius: .75rem;
}

.music-track-comments-row > td {
    padding-top: .2rem;
    padding-bottom: .65rem;
}

.music-comment-item {
    border: 1px solid rgba(73, 90, 123, .45);
    border-radius: .65rem;
    background: rgba(10, 16, 26, .68);
    padding: .7rem .75rem;
    margin-bottom: .55rem;
}

.music-comment-avatar {
    width: 1.95rem;
    height: 1.95rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid rgba(95, 117, 153, .55);
    background: rgba(46, 95, 178, .3);
    color: #d8e6ff;
    font-size: .74rem;
    font-weight: 700;
    line-height: 1;
    flex: 0 0 auto;
}

.music-comment-avatar[data-profile-hover-trigger="1"] {
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.music-comment-avatar[data-profile-hover-trigger="1"]:hover,
.music-comment-avatar[data-profile-hover-trigger="1"]:focus-visible {
    border-color: rgba(144, 190, 255, .95);
    box-shadow: 0 0 0 2px rgba(96, 165, 250, .25);
    transform: translateY(-1px);
    outline: none;
}

.music-comment-avatar-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.music-comment-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    text-transform: uppercase;
}

.music-author-meta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
    max-width: 100%;
}

.music-author-meta-compact {
    font-size: .88rem;
}

.music-author-avatar {
    width: 2.05rem;
    height: 2.05rem;
    font-size: .78rem;
}

.music-author-name {
    color: inherit;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    border-radius: .45rem;
    padding: .05rem .22rem;
}

.music-author-name[data-profile-hover-trigger="1"] {
    cursor: pointer;
    transition: color .15s ease, background-color .15s ease;
}

.music-author-name[data-profile-hover-trigger="1"]:hover,
.music-author-name[data-profile-hover-trigger="1"]:focus-visible {
    color: #dbeafe;
    background: rgba(59, 130, 246, .16);
    outline: none;
}

.music-author-separator {
    opacity: .6;
}

.music-comment-item.is-highlighted {
    border-color: rgba(30, 215, 96, .8);
    box-shadow: 0 0 0 1px rgba(30, 215, 96, .35) inset;
}

.music-comment-replies {
    margin-left: 1rem;
    padding-left: .8rem;
    border-left: 1px dashed rgba(86, 103, 136, .5);
}

.music-comment-ts {
    cursor: pointer;
    color: #90d7ff;
    text-decoration: none;
}

.music-comment-reactions .btn {
    --bs-btn-padding-y: .1rem;
    --bs-btn-padding-x: .4rem;
    --bs-btn-font-size: .75rem;
    border-radius: .55rem;
}

.music-track-comments .form-control,
.music-track-comments .form-control:focus {
    background: rgba(9, 15, 25, .84);
    border-color: rgba(86, 103, 136, .55);
    color: var(--music-text);
    box-shadow: none;
}

.js-track-comments-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.music-track-comments .input-group .btn {
    border-radius: .55rem;
}

:root[data-theme="light"] .music-comment-avatar {
    border-color: rgba(123, 147, 189, .45);
    background: rgba(59, 130, 246, .14);
    color: #1f3a73;
}

:root[data-theme="light"] .music-comment-avatar[data-profile-hover-trigger="1"]:hover,
:root[data-theme="light"] .music-comment-avatar[data-profile-hover-trigger="1"]:focus-visible {
    border-color: rgba(59, 130, 246, .8);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, .18);
}

:root[data-theme="light"] .music-author-name[data-profile-hover-trigger="1"]:hover,
:root[data-theme="light"] .music-author-name[data-profile-hover-trigger="1"]:focus-visible {
    color: #1d4ed8;
    background: rgba(37, 99, 235, .12);
}

.music-playlist-edit-modal {
    position: fixed;
    inset: 0;
    z-index: 2200;
    background: rgba(8, 12, 20, .62);
    padding: 1rem;
    overflow-y: auto;
}

.music-playlist-edit-modal__panel {
    width: min(560px, 100%);
    margin: 4vh auto;
    border: 1px solid rgba(86, 103, 136, .55);
    border-radius: .9rem;
    background: linear-gradient(180deg, rgba(15, 23, 37, .98), rgba(11, 18, 30, .98));
    box-shadow: 0 24px 44px rgba(0, 0, 0, .42);
    padding: 1rem;
    color: var(--music-text);
}

.music-playlist-edit-modal .form-control {
    background: rgba(9, 15, 25, .86);
    border-color: rgba(86, 103, 136, .6);
    color: var(--music-text);
}

.music-playlist-edit-modal .form-control:focus {
    border-color: rgba(115, 186, 255, .82);
    box-shadow: 0 0 0 .2rem rgba(115, 186, 255, .2);
    background: rgba(9, 15, 25, .95);
    color: var(--music-text);
}

.music-playlist-edit-modal .form-check-input {
    border-color: rgba(115, 186, 255, .6);
    background-color: rgba(9, 15, 25, .9);
}

.music-playlist-edit-modal .form-check-input:checked {
    background-color: var(--music-accent);
    border-color: var(--music-accent);
}

:root[data-theme="light"] .music-playlist-edit-modal {
    background: rgba(12, 18, 30, .35);
}

:root[data-theme="light"] .music-playlist-card:hover {
    box-shadow: 0 16px 26px rgba(35, 58, 94, .18);
}

:root[data-theme="light"] .music-playlist-detail-header {
    border: 1px solid rgba(184, 199, 224, .8) !important;
    background: linear-gradient(180deg, #ffffff, #f7faff);
}

:root[data-theme="light"] .music-playlist-tracks-card {
    border: 1px solid rgba(184, 199, 224, .8) !important;
    background: #ffffff;
}

:root[data-theme="light"] .music-playlist-empty-state {
    border-top-color: rgba(172, 192, 224, .6);
}

:root[data-theme="light"] .music-playlist-edit-modal__panel {
    background: linear-gradient(180deg, #ffffff, #f6f9ff);
    border-color: rgba(176, 188, 211, .92);
    box-shadow: 0 24px 44px rgba(39, 60, 95, .2);
    color: #1f2c43;
}

:root[data-theme="light"] .music-playlist-edit-modal .form-control {
    background: #ffffff;
    border-color: #c6d4eb;
    color: #1f2c43;
}

:root[data-theme="light"] .music-playlist-edit-modal .form-control:focus {
    border-color: #67a7ff;
    box-shadow: 0 0 0 .2rem rgba(103, 167, 255, .2);
    background: #ffffff;
    color: #1f2c43;
}

:root[data-theme="light"] .music-playlist-edit-modal .form-check-label {
    color: #31435f;
}

.playlist-track-remove-inline {
    opacity: 0;
    pointer-events: none;
    transform: translateY(2px);
    transition: opacity .14s ease, transform .14s ease;
}

.music-track-row[data-playlist-track-row="1"]:hover .playlist-track-remove-inline,
.music-track-row[data-playlist-track-row="1"]:focus-within .playlist-track-remove-inline,
.playlist-track-remove-inline:focus-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

@media (max-width: 992px) {
    .playlist-track-remove-inline {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }
}

.music-playlist-track-remove-modal {
    position: fixed;
    inset: 0;
    z-index: 2250;
    background: rgba(8, 12, 20, .62);
    padding: 1rem;
    overflow-y: auto;
}

.music-playlist-track-remove-modal__panel {
    width: min(460px, 100%);
    margin: 14vh auto;
    border: 1px solid rgba(86, 103, 136, .55);
    border-radius: .9rem;
    background: linear-gradient(180deg, rgba(15, 23, 37, .98), rgba(11, 18, 30, .98));
    box-shadow: 0 24px 44px rgba(0, 0, 0, .42);
    padding: 1rem;
    color: var(--music-text);
}

:root[data-theme="light"] .music-playlist-track-remove-modal {
    background: rgba(12, 18, 30, .35);
}

:root[data-theme="light"] .music-playlist-track-remove-modal__panel {
    background: linear-gradient(180deg, #ffffff, #f6f9ff);
    border-color: rgba(176, 188, 211, .92);
    box-shadow: 0 24px 44px rgba(39, 60, 95, .2);
    color: #1f2c43;
}

.js-track-comments-toggle {
    min-width: 3.1rem;
}

.js-track-like-toggle.is-active,
#global-player-like.is-active {
    border-color: rgba(255, 99, 132, .95);
    color: #ffd2dd;
    background: rgba(255, 99, 132, .22);
    box-shadow: 0 0 0 1px rgba(255, 99, 132, .28) inset;
}

#global-player-favorite.is-active {
    border-color: rgba(255, 209, 102, .9);
    color: #ffe8ad;
    background: rgba(255, 209, 102, .22);
    box-shadow: 0 0 0 1px rgba(255, 209, 102, .2) inset;
}

.music-comment-reactions .btn.is-active {
    border-color: rgba(30, 215, 96, .9);
    color: #dfffea;
    background: rgba(30, 215, 96, .2);
}

.global-music-player__wave-wrap {
    position: relative;
    height: 54px;
    flex: 1 1 auto;
    min-width: 280px;
    max-width: none;
    border: 1px solid rgba(73, 90, 123, .52);
    border-radius: .6rem;
    background: linear-gradient(180deg, rgba(8, 14, 24, .82), rgba(8, 14, 24, .72));
    overflow: hidden;
    cursor: pointer;
}

.global-music-player__overflow {
    display: none;
    position: relative;
    z-index: 9;
}

#global-player-overflow-toggle {
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
    padding: 0;
    border-radius: 999px;
}

#global-player-overflow-toggle svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.global-music-player__overflow-popover {
    position: absolute;
    right: 0;
    bottom: calc(100% + .55rem);
    min-width: 210px;
    border-radius: .72rem;
    border: 1px solid rgba(86, 103, 136, .62);
    background: linear-gradient(180deg, rgba(9, 15, 25, .97), rgba(8, 13, 23, .98));
    box-shadow: 0 16px 28px rgba(0, 0, 0, .36);
    padding: .36rem;
    opacity: 0;
    transform: translateY(6px);
    pointer-events: none;
    transition: opacity .26s ease, transform .24s ease;
}

.global-music-player__overflow-popover.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.global-music-player__overflow-item {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid rgba(89, 108, 145, .5);
    background: rgba(13, 22, 36, .8);
    color: #e0ebff;
    border-radius: .55rem;
    padding: .28rem .46rem;
    font-size: .78rem;
    line-height: 1.2;
    text-align: left;
}

.global-music-player__overflow-item + .global-music-player__overflow-item {
    margin-top: .24rem;
}

.global-music-player__overflow-item:hover {
    border-color: rgba(123, 147, 192, .75);
    background: rgba(22, 36, 58, .9);
    color: #f2f7ff;
}

.global-music-player__overflow-item.is-active {
    border-color: rgba(255, 204, 120, .72);
    background: rgba(255, 188, 79, .16);
    color: #ffe4b3;
}

.global-music-player__overflow-item svg {
    width: .92rem;
    height: .92rem;
    fill: currentColor;
    flex: 0 0 auto;
}

.global-music-player__overflow-item .global-music-player__overflow-label {
    flex: 1 1 auto;
    min-width: 0;
}

.global-music-player__overflow-item[data-overflow-target="global-player-loop"] .global-music-player__overflow-loop-state {
    margin-left: auto;
    min-width: 1.2rem;
    height: 1.06rem;
    padding: 0 .36rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    font-size: .62rem;
    font-weight: 700;
    line-height: .98rem;
    letter-spacing: .03em;
    text-transform: uppercase;
    text-align: center;
    opacity: 0;
    transform: scale(.9);
    transition: opacity .16s ease, transform .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
    pointer-events: none;
}

.global-music-player__overflow-item[data-overflow-target="global-player-loop"][data-loop-mode="track"] {
    border-color: rgba(255, 204, 120, .72);
    background: rgba(255, 188, 79, .16);
    color: #ffe4b3;
}

.global-music-player__overflow-item[data-overflow-target="global-player-loop"][data-loop-mode="track"] .global-music-player__overflow-loop-state {
    border-color: rgba(255, 214, 139, .58);
    background: rgba(255, 199, 79, .24);
    color: #ffd67e;
    opacity: 1;
    transform: scale(1);
}

.global-music-player__overflow-item[data-overflow-target="global-player-loop"][data-loop-mode="album"] {
    border-color: rgba(122, 221, 255, .72);
    background: rgba(78, 168, 206, .2);
    color: #d6f3ff;
}

.global-music-player__overflow-item[data-overflow-target="global-player-loop"][data-loop-mode="album"] .global-music-player__overflow-loop-state {
    border-color: rgba(128, 225, 255, .56);
    background: rgba(63, 171, 214, .22);
    color: #9ce6ff;
    opacity: 1;
    transform: scale(1);
}

.global-music-player__overflow-item[data-overflow-target="global-player-shuffle"] .global-music-player__overflow-shuffle-state {
    margin-left: auto;
    min-width: 2.5rem;
    height: 1.06rem;
    padding: 0 .36rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    font-size: .6rem;
    font-weight: 700;
    line-height: .98rem;
    letter-spacing: .03em;
    text-transform: uppercase;
    text-align: center;
    opacity: 0;
    transform: scale(.9);
    transition: opacity .16s ease, transform .16s ease, background-color .16s ease, border-color .16s ease, color .16s ease;
    pointer-events: none;
}

.global-music-player__overflow-item[data-overflow-target="global-player-shuffle"][data-shuffle-mode="local"] {
    border-color: rgba(255, 204, 120, .72);
    background: rgba(255, 188, 79, .16);
    color: #ffe4b3;
}

.global-music-player__overflow-item[data-overflow-target="global-player-shuffle"][data-shuffle-mode="local"] .global-music-player__overflow-shuffle-state {
    border-color: rgba(255, 214, 139, .58);
    background: rgba(255, 199, 79, .24);
    color: #ffd67e;
    opacity: 1;
    transform: scale(1);
}

.global-music-player__overflow-item[data-overflow-target="global-player-shuffle"][data-shuffle-mode="global"] {
    border-color: rgba(122, 221, 255, .72);
    background: rgba(78, 168, 206, .2);
    color: #d6f3ff;
}

.global-music-player__overflow-item[data-overflow-target="global-player-shuffle"][data-shuffle-mode="global"] .global-music-player__overflow-shuffle-state {
    border-color: rgba(128, 225, 255, .56);
    background: rgba(63, 171, 214, .22);
    color: #9ce6ff;
    opacity: 1;
    transform: scale(1);
}

.global-music-player__wave {
    width: 100%;
    height: 100%;
    display: block;
}

.global-music-player__markers {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.global-music-player__marker {
    position: absolute;
    top: 0;
    width: 2px;
    height: 100%;
    background: rgba(128, 217, 255, .9);
    transform: translateX(-50%);
    pointer-events: auto;
    cursor: pointer;
}

.global-music-player__wave-hover {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(255, 255, 255, .28);
    transform: translateX(-50%);
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s ease;
}

.global-music-player__wave-time {
    position: absolute;
    top: 4px;
    left: 0;
    transform: translateX(-50%);
    background: rgba(8, 13, 24, .93);
    color: #eef4ff;
    border: 1px solid rgba(112, 132, 170, .55);
    border-radius: .35rem;
    padding: .08rem .35rem;
    font-size: .69rem;
    line-height: 1.2;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity .12s ease;
    z-index: 4;
    font-variant-numeric: tabular-nums;
}

.global-music-player__tooltip {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 0;
    transform: translateX(-50%);
    background: rgba(8, 12, 22, .95);
    border: 1px solid rgba(86, 103, 136, .6);
    border-radius: .35rem;
    color: #e6ebf5;
    font-size: .72rem;
    line-height: 1.2;
    padding: .3rem .4rem;
    max-width: 220px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    z-index: 5;
}

.music-elevated-panel {
    box-shadow: 0 12px 24px rgba(0, 0, 0, .25);
}

.js-track-comments-toggle.is-open {
    border-color: rgba(120, 219, 255, .9);
    background: rgba(31, 86, 131, .55);
    color: #e6f6ff;
}

.global-music-player.is-loading #global-player-toggle {
    pointer-events: none;
    opacity: .8;
}

.music-ui-toast {
    position: fixed;
    right: 16px;
    bottom: 108px;
    z-index: 1300;
    max-width: min(360px, calc(100vw - 32px));
    padding: .55rem .7rem;
    border-radius: .65rem;
    font-size: .84rem;
    color: #dce8f8;
    background: rgba(9, 14, 24, .9);
    border: 1px solid rgba(86, 103, 136, .65);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
    opacity: 0;
    transform: translateY(10px);
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
}

.music-ui-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.music-ui-toast.is-error {
    border-color: rgba(255, 129, 129, .75);
    color: #ffd8d8;
}

.music-ui-toast.is-success {
    border-color: rgba(113, 231, 154, .75);
    color: #e1ffe9;
}

.global-music-player__visualizer {
    position: relative;
    width: 142px;
    height: 54px;
    border: 1px solid rgba(74, 99, 142, .5);
    border-radius: .58rem;
    background: radial-gradient(circle at 24% 22%, rgba(73, 154, 230, .22), rgba(9, 16, 30, .9));
    overflow: hidden;
    flex: 0 0 142px;
}

.global-music-player__visualizer-canvas {
    display: block;
    width: 100%;
    height: 100%;
}

.global-music-player__visualizer-empty {
    position: absolute;
    inset: auto 0 .26rem 0;
    text-align: center;
    font-size: .62rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: rgba(200, 220, 255, .8);
    pointer-events: none;
}

#global-player-display-toggle {
    width: 2.45rem;
    min-width: 2.45rem;
    height: 2.45rem;
    padding: 0;
    border-radius: 999px;
}

#global-player-display-toggle .music-icon-undock,
#global-player-display-toggle .global-music-player__dock-return-label {
    display: none;
}

#global-player-display-toggle .global-music-player__dock-return-label {
    margin-left: .35rem;
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .01em;
    white-space: nowrap;
}

#global-player-display-toggle[data-display-mode="dock-right"] {
    color: #9ce9ff;
    border-color: rgba(124, 214, 244, .86);
    background: rgba(52, 140, 179, .22);
}

.global-music-player__overflow-item[data-player-display-mode] .global-music-player__overflow-display-state {
    margin-left: auto;
    min-width: 2.2rem;
    height: 1.06rem;
    padding: 0 .32rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: inherit;
    font-size: .56rem;
    font-weight: 700;
    line-height: .98rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-align: center;
    opacity: .7;
}

.global-music-player__overflow-item[data-player-display-mode].is-active {
    border-color: rgba(120, 209, 255, .74);
    background: rgba(55, 147, 185, .18);
    color: #d8f2ff;
}

.global-music-player__overflow-item[data-player-display-mode].is-active .global-music-player__overflow-display-state {
    border-color: rgba(120, 209, 255, .52);
    background: rgba(68, 169, 214, .2);
    opacity: 1;
}

#site-shell-root[data-player-display-mode="dock-right"] {
    padding-right: 344px;
    padding-bottom: 24px;
}

#site-shell-root[data-player-display-mode="dock-right"] .music-ui-toast {
    right: 352px;
    bottom: 24px;
}

.global-music-player__volume-zone {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.global-music-player__dock-queue {
    display: none;
}

.global-music-player[data-display-mode="dock-right"] {
    left: auto;
    right: 14px;
    top: calc(var(--player-dock-top-offset, var(--music-sticky-offset-total)) + 8px);
    bottom: 14px;
    width: 324px;
    border-radius: 1.05rem;
    border: 1px solid rgba(88, 109, 148, .65);
    box-shadow: 0 20px 38px rgba(0, 0, 0, .46);
    overflow: hidden;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__inner {
    height: 100%;
    width: 100%;
    max-width: 100%;
    padding: .88rem .9rem !important;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__main {
    height: 100%;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: .58rem;
    overflow-x: hidden;
    overflow-y: hidden;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__dock-header {
    display: flex;
    order: 1 !important;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__transport {
    order: 2 !important;
    justify-content: flex-start;
    gap: .5rem;
    padding-top: .08rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__transport .global-music-player__volume-wrap {
    margin-left: auto;
}

.global-music-player[data-display-mode="dock-right"] #global-player-toggle {
    width: 2.9rem;
    min-width: 2.9rem;
    height: 2.9rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__visualizer {
    order: 4 !important;
    width: 100%;
    flex: 0 0 auto;
    min-height: 108px;
    height: clamp(108px, 16vh, 138px);
    border-radius: .78rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__timeline {
    order: 3 !important;
    width: 100%;
    display: block;
    position: relative;
    /* On fixe explicitement la hauteur pour garder le même alignement partout. */
    flex: 0 0 34px;
    height: 34px;
    min-height: 34px;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__seek {
    display: none;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__wave-wrap {
    display: block;
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
    height: 34px;
    border-radius: .52rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__times {
    position: absolute;
    inset: 0;
    z-index: 3;
    min-width: 0;
    height: 34px;
    margin: 0;
    text-align: initial;
    pointer-events: none;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__times-sep {
    display: none;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__time-current {
    position: absolute;
    left: .34rem;
    /* On ancre les timings au bas du spectrum pour éviter les décalages de contexte. */
    top: auto;
    bottom: -.46rem;
    transform: translateY(-50%);
    min-width: 0;
    color: #ffd8b2;
    font-weight: 600;
    font-size: .66rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    padding: .05rem .28rem;
    border-radius: .35rem;
    background: rgba(8, 15, 28, .5);
    border: 1px solid rgba(113, 138, 179, .42);
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__time-duration {
    position: absolute;
    right: .34rem;
    /* Même ancrage que le timing courant, pour rester parfaitement symétrique. */
    top: auto;
    bottom: -.46rem;
    transform: translateY(-50%);
    min-width: 0;
    color: #a9c3ea;
    font-size: .66rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    padding: .05rem .28rem;
    border-radius: .35rem;
    background: rgba(8, 15, 28, .5);
    border: 1px solid rgba(113, 138, 179, .42);
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__meta {
    order: 6 !important;
    flex: 0 0 auto;
    max-width: none;
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-direction: column;
    gap: .5rem;
    border: 1px solid rgba(88, 109, 148, .45);
    border-radius: .8rem;
    background: linear-gradient(180deg, rgba(13, 20, 34, .84), rgba(11, 18, 30, .74));
    padding: .62rem .56rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__cover {
    width: 146px;
    height: 146px;
    border-radius: .8rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__meta-text {
    width: 100%;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__title {
    font-size: .95rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__subtitle {
    font-size: .8rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__volume-zone {
    order: 5 !important;
    display: none;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__volume-popover {
    right: 0;
    left: auto;
    transform: none;
    top: calc(100% + .46rem);
    bottom: auto;
    z-index: 24;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions {
    order: 7 !important;
    width: 100%;
    justify-content: center;
    gap: .28rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions > .btn,
.global-music-player[data-display-mode="dock-right"] .global-music-player__actions > .global-music-player__overflow {
    min-width: 0;
    width: 100%;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions > .btn {
    border-radius: .7rem;
    height: 2.12rem;
    padding: .16rem .16rem;
    justify-content: center;
    align-items: center;
}

.global-music-player[data-display-mode="dock-right"] #global-player-comments,
.global-music-player[data-display-mode="dock-right"] #global-player-like,
.global-music-player[data-display-mode="dock-right"] #global-player-favorite,
.global-music-player[data-display-mode="dock-right"] #global-player-playlist {
    display: inline-flex !important;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions #global-player-playlist,
.global-music-player[data-display-mode="dock-right"] .global-music-player__actions #global-player-favorite,
.global-music-player[data-display-mode="dock-right"] .global-music-player__actions #global-player-overflow-toggle {
    width: 100%;
    min-width: 0;
    height: 2.12rem;
    border-radius: .7rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions #global-player-display-toggle {
    display: none !important;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions #global-player-like .music-like-count {
    display: none;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__actions .global-music-player__overflow {
    display: none !important;
}

.global-music-player[data-display-mode="dock-right"] #global-player-comments::after,
.global-music-player[data-display-mode="dock-right"] #global-player-like::after,
.global-music-player[data-display-mode="dock-right"] #global-player-favorite::after,
.global-music-player[data-display-mode="dock-right"] #global-player-playlist::after {
    display: inline-block;
    margin-left: .28rem;
    font-size: .66rem;
    line-height: 1;
    letter-spacing: .01em;
    vertical-align: middle;
}

.global-music-player[data-display-mode="dock-right"] #global-player-comments::after {
    content: "Com";
}

.global-music-player[data-display-mode="dock-right"] #global-player-like::after {
    content: none;
    display: none;
}

.global-music-player[data-display-mode="dock-right"] #global-player-favorite::after {
    content: "Fav";
}

.global-music-player[data-display-mode="dock-right"] #global-player-playlist::after {
    content: "List";
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue {
    order: 8 !important;
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
    margin-top: auto;
    overflow: hidden;
    border: 1px solid rgba(82, 104, 143, .48);
    border-radius: .72rem;
    background: linear-gradient(180deg, rgba(11, 17, 30, .82), rgba(10, 16, 27, .74));
    padding: .52rem;
    gap: .45rem;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__main > * {
    max-width: 100%;
}

.global-music-player__dock-queue-header {
    font-size: .7rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(195, 214, 248, .86);
}

.global-music-player__dock-queue-empty {
    font-size: .76rem;
    color: rgba(163, 186, 225, .76);
    line-height: 1.25;
}

.global-music-player__dock-queue-list {
    display: flex;
    flex-direction: column;
    gap: .28rem;
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    overflow-y: auto;
    padding-right: .16rem;
    scrollbar-width: thin;
    scrollbar-color: rgba(126, 160, 210, .45) transparent;
}

.global-music-player__dock-queue-list::-webkit-scrollbar {
    width: 8px;
}

.global-music-player__dock-queue-list::-webkit-scrollbar-track {
    background: transparent;
}

.global-music-player__dock-queue-list::-webkit-scrollbar-thumb {
    background: rgba(126, 160, 210, .45);
    border-radius: 999px;
}

.global-music-player__dock-queue-item {
    border: 1px solid rgba(86, 107, 144, .56);
    border-radius: .58rem;
    background: rgba(15, 24, 40, .82);
    color: #e6f0ff;
    text-align: left;
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .34rem .46rem;
    line-height: 1.2;
}

.global-music-player__dock-queue-role {
    min-width: 2.1rem;
    height: 1rem;
    padding: 0 .24rem;
    border-radius: 999px;
    border: 1px solid rgba(123, 149, 190, .55);
    background: rgba(45, 67, 101, .48);
    color: #bddcff;
    font-size: .56rem;
    line-height: .92rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .04em;
    flex: 0 0 auto;
}

.global-music-player__dock-queue-mode {
    min-width: 2.5rem;
    height: 1rem;
    padding: 0 .24rem;
    border-radius: 999px;
    border: 1px solid rgba(110, 138, 184, .45);
    background: rgba(28, 45, 74, .42);
    color: rgba(196, 218, 251, .88);
    font-size: .53rem;
    line-height: .9rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .03em;
    flex: 0 0 auto;
}

.global-music-player__dock-queue-item:hover {
    border-color: rgba(132, 170, 227, .72);
    background: rgba(24, 37, 60, .9);
    color: #f2f7ff;
}

.global-music-player__dock-queue-item.is-active {
    border-color: rgba(255, 191, 116, .78);
    background: linear-gradient(180deg, rgba(255, 194, 116, .8), rgba(255, 168, 92, .72));
    color: #2e1a08;
}

.global-music-player__dock-queue-item.is-history {
    opacity: .74;
    border-color: rgba(93, 113, 147, .52);
    background: rgba(13, 21, 36, .64);
}

.global-music-player__dock-queue-item.is-locked {
    opacity: .82;
    border-color: rgba(157, 132, 90, .62);
    background: rgba(41, 32, 18, .54);
    color: rgba(255, 225, 180, .9);
    cursor: default;
}

.global-music-player__dock-queue-index {
    width: 1.3rem;
    min-width: 1.3rem;
    text-align: center;
    font-size: .7rem;
    opacity: .84;
}

.global-music-player__dock-queue-text {
    min-width: 0;
    flex: 1 1 auto;
}

.global-music-player__dock-queue-title,
.global-music-player__dock-queue-subtitle {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.global-music-player__dock-queue-title {
    font-size: .78rem;
    color: inherit;
}

.global-music-player__dock-queue-subtitle {
    font-size: .68rem;
    color: rgba(173, 197, 234, .78);
}

.global-music-player__dock-queue-item.is-active .global-music-player__dock-queue-role {
    border-color: rgba(173, 95, 23, .58);
    background: rgba(255, 232, 208, .72);
    color: #7b3e06;
}

.global-music-player__dock-queue-item.is-active .global-music-player__dock-queue-subtitle {
    color: rgba(71, 44, 18, .78);
}

.global-music-player__dock-queue-item:not(.is-active):not(.is-history) {
    border-color: rgba(104, 127, 166, .66);
    background: rgba(26, 39, 61, .82);
    color: #eaf2ff;
}

.global-music-player[data-display-mode="dock-right"] .global-music-player__overflow-popover {
    right: 0;
    left: auto;
    min-width: 188px;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__meta {
    border-color: rgba(132, 166, 205, .58);
    background: linear-gradient(180deg, rgba(243, 249, 255, .98), rgba(232, 243, 255, .96));
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__title {
    color: #14375f;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__subtitle {
    color: #4d6f95;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__time-current {
    color: #a64f12;
    background: rgba(252, 244, 233, .95);
    border-color: rgba(210, 155, 109, .48);
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__time-duration {
    color: #4f78a4;
    background: rgba(232, 242, 252, .95);
    border-color: rgba(142, 173, 210, .58);
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__wave-wrap {
    border-color: rgba(145, 178, 216, .66);
    background: linear-gradient(180deg, rgba(241, 248, 255, .98), rgba(229, 241, 255, .94));
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__visualizer {
    border-color: rgba(145, 178, 216, .66);
    background: radial-gradient(circle at 24% 22%, rgba(95, 169, 232, .34), rgba(227, 240, 255, .95));
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__visualizer-empty {
    color: rgba(72, 109, 148, .88);
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__volume-popover {
    border-color: rgba(145, 178, 216, .72);
    background: linear-gradient(180deg, rgba(246, 251, 255, .98), rgba(231, 242, 255, .96));
    box-shadow: 0 14px 24px rgba(31, 74, 122, .2);
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__wave-time {
    background: rgba(248, 252, 255, .98);
    border-color: rgba(145, 178, 216, .72);
    color: #2b537f;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue {
    border-color: rgba(145, 178, 216, .6);
    background: linear-gradient(180deg, rgba(241, 248, 255, .98), rgba(230, 242, 255, .95));
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-header {
    color: #4d6f95;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-empty {
    color: #6b88ab;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-role {
    border-color: rgba(138, 172, 210, .66);
    background: rgba(215, 232, 250, .9);
    color: #4f78a4;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-mode {
    border-color: rgba(155, 181, 214, .72);
    background: rgba(224, 238, 253, .9);
    color: #476f99;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item {
    border-color: rgba(146, 177, 214, .72);
    background: rgba(235, 245, 255, .96);
    color: #1e3e63;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item:not(.is-active):not(.is-history) {
    border-color: rgba(142, 173, 210, .78);
    background: rgba(229, 241, 255, .96);
    color: #1f456d;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item.is-history {
    border-color: rgba(165, 188, 216, .68);
    background: rgba(243, 249, 255, .86);
    color: #5b7799;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item.is-active {
    border-color: rgba(218, 138, 68, .78);
    background: linear-gradient(180deg, rgba(255, 216, 175, .96), rgba(255, 191, 138, .92));
    color: #4b2200;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item.is-locked {
    border-color: rgba(215, 174, 110, .76);
    background: rgba(255, 236, 206, .88);
    color: #75420f;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item .global-music-player__dock-queue-subtitle {
    color: #6287b2;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] .global-music-player__dock-queue-item.is-active .global-music-player__dock-queue-subtitle {
    color: #8a4a16;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] #global-player-comments {
    color: #0a5f89 !important;
    border-color: #70afd5 !important;
    background: rgba(238, 247, 255, .96) !important;
}

:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] #global-player-comments:hover,
:root[data-theme="light"] .global-music-player[data-display-mode="dock-right"] #global-player-comments:focus-visible {
    color: #08496a !important;
    border-color: #4e93c1 !important;
    background: rgba(222, 240, 255, .98) !important;
}

@media (max-width: 1240px) {
    #site-shell-root[data-player-display-mode="dock-right"] {
        padding-right: 0;
        padding-bottom: 136px;
    }

    #site-shell-root[data-player-display-mode="dock-right"] .music-ui-toast {
        right: 16px;
        bottom: 108px;
    }
}

@media (max-width: 767.98px) {
    .music-page-shell {
        padding-bottom: 186px;
    }

    .global-music-player__times {
        min-width: 70px;
    }

    .music-track-actions {
        justify-content: flex-start;
    }

    .global-music-player__main {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .global-music-player__transport {
        margin-left: 0;
    }

    .global-music-player__timeline {
        order: 3;
        width: 100%;
    }

    .global-music-player__wave-wrap {
        min-width: 0;
        max-width: none;
        height: 48px;
    }

    .global-music-player__actions {
        margin-left: 0;
    }

    .global-music-player__cover {
        width: 48px;
        height: 48px;
    }

    .music-ui-toast {
        right: 10px;
        bottom: 170px;
        max-width: calc(100vw - 20px);
    }
}

.global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) #global-player-shuffle,
.global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) #global-player-loop,
.global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) #global-player-comments,
.global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) #global-player-favorite,
.global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) #global-player-playlist {
    display: none !important;
}

/* MOB21: only the mobile rich rail continues to hide Like when its
 * secondary controls are collapsed. Desktop keeps the persistent Like. */
@media (max-width: 767.98px) {
    .global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) #global-player-like {
        display: none !important;
    }
}

.global-music-player[data-secondary-collapsed="1"]:not([data-display-mode="dock-right"]) .global-music-player__overflow {
    display: inline-flex;
}

.global-music-player[data-layout-mode="medium"] .global-music-player__main {
    gap: .5rem;
}

.global-music-player[data-layout-mode="medium"] .global-music-player__transport,
.global-music-player[data-layout-mode="medium"] .global-music-player__actions {
    gap: .28rem;
}

.global-music-player[data-layout-mode="medium"] .global-music-player__timeline {
    gap: .34rem;
}

.global-music-player[data-layout-mode="medium"] .global-music-player__meta {
    flex-basis: 168px;
    max-width: 178px;
}

.global-music-player[data-layout-mode="medium"] .global-music-player__cover {
    width: 40px;
    height: 40px;
}

.global-music-player[data-layout-mode="compact"] .global-music-player__main {
    gap: .42rem;
}

.global-music-player[data-layout-mode="compact"] .global-music-player__transport,
.global-music-player[data-layout-mode="compact"] .global-music-player__actions {
    gap: .22rem;
}

.global-music-player[data-layout-mode="compact"] .global-music-player__timeline {
    gap: .28rem;
}

.global-music-player[data-layout-mode="compact"] .global-music-player__wave-wrap {
    min-width: 240px;
}

.global-music-player[data-layout-mode="compact"] .global-music-player__meta {
    flex-basis: 150px;
    max-width: 158px;
}

.global-music-player[data-layout-mode="compact"] .global-music-player__cover {
    width: 36px;
    height: 36px;
}

.global-music-player[data-layout-mode="bridge"] .global-music-player__main {
    flex-wrap: wrap;
    row-gap: .42rem;
    column-gap: .35rem;
}

.global-music-player[data-layout-mode="bridge"] .global-music-player__transport {
    order: 1;
    flex: 0 0 auto;
    gap: .22rem;
}

.global-music-player[data-layout-mode="bridge"] .global-music-player__timeline {
    order: 2;
    flex: 1 1 290px;
    min-width: 250px;
    gap: .28rem;
}

.global-music-player[data-layout-mode="bridge"] .global-music-player__meta {
    order: 3;
    flex: 1 1 auto;
    max-width: calc(100% - 82px);
    flex-basis: 142px;
}

.global-music-player[data-layout-mode="bridge"] .global-music-player__cover {
    width: 34px;
    height: 34px;
}

.global-music-player[data-layout-mode="bridge"] .global-music-player__actions {
    order: 4;
    flex: 0 0 auto;
    margin-left: auto;
    gap: .2rem;
}

.global-music-player[data-layout-mode="tight"] .global-music-player__main {
    flex-wrap: wrap;
    row-gap: .42rem;
    column-gap: .38rem;
}

.global-music-player[data-layout-mode="tight"] .global-music-player__transport {
    order: 1;
    flex: 0 0 auto;
}

.global-music-player[data-layout-mode="tight"] .global-music-player__timeline {
    order: 2;
    flex: 1 1 260px;
    min-width: 220px;
}

.global-music-player[data-layout-mode="tight"] .global-music-player__meta {
    order: 3;
    flex: 1 1 auto;
    max-width: calc(100% - 74px);
    flex-basis: 128px;
}

.global-music-player[data-layout-mode="tight"] .global-music-player__cover {
    width: 32px;
    height: 32px;
}

.global-music-player[data-layout-mode="tight"] .global-music-player__actions {
    order: 4;
    flex: 0 0 auto;
    margin-left: auto;
}

@media (max-width: 1320px) and (min-width: 768px) {
    .global-music-player__main {
        gap: .5rem;
    }

    .global-music-player__transport,
    .global-music-player__actions {
        gap: .28rem;
    }

    .global-music-player__timeline {
        gap: .36rem;
    }

    .global-music-player__meta {
        flex-basis: 218px;
        max-width: 232px;
    }

    .global-music-player__cover {
        width: 40px;
        height: 40px;
    }
}


/* R103 FIX14 — signalétique admin des brouillons et partage désactivé. */
.music-admin-draft-badge {
    letter-spacing: .055em;
    font-weight: 800;
}

.cab-music-share-button[data-music-share-disabled="1"],
.cab-music-share-page-button[data-music-share-disabled="1"] {
    opacity: .36 !important;
    filter: grayscale(.8) saturate(.55);
    cursor: not-allowed !important;
    box-shadow: none !important;
}


/* ==========================================================================
 * R119.4A DESK5B FIX3 — desktop player micro-fixes
 * ========================================================================== */
@media (min-width: 768px) {
    #site-shell-player-zone[data-volume-popover-open="1"] { z-index: 1760 !important; }
    .global-music-player[data-volume-popover-open="1"] { z-index: 1760 !important; }
    .global-music-player[data-volume-popover-open="1"] .global-music-player__volume-popover { z-index: 1770 !important; }

    :is(body.music-page-shell, body.music-player-persistent) .global-music-player .music-track-reaction-wrap--global {
        position: relative; flex: 0 0 2.45rem; width: 2.45rem; min-width: 2.45rem; height: 2.45rem;
    }
    :is(body.music-page-shell, body.music-player-persistent) .global-music-player #global-player-like {
        position: relative !important; display: inline-flex !important; align-items: center !important; justify-content: center !important;
        width: 2.45rem !important; min-width: 2.45rem !important; max-width: 2.45rem !important; height: 2.45rem !important;
        padding: 0 !important; gap: 0 !important; border-radius: 999px !important; border-width: 1px !important; border-color: currentColor !important; overflow: visible !important;
    }
    :is(body.music-page-shell, body.music-player-persistent) .global-music-player #global-player-like .music-track-action-icon {
        display: inline-flex; align-items: center; justify-content: center; margin: 0 !important;
    }
    :is(body.music-page-shell, body.music-player-persistent) .global-music-player #global-player-like .music-social-like-svg { width: 1rem; height: 1rem; }
    :is(body.music-page-shell, body.music-player-persistent) .global-music-player #global-player-like .music-like-count {
        position: absolute; top: -.34rem; right: -.28rem; display: inline-flex; align-items: center; justify-content: center;
        min-width: 1.05rem; height: 1.05rem; padding: 0 .2rem; border: 1px solid rgba(255,255,255,.86); border-radius: 999px;
        background: #fff3f6; color: #b4234b; box-shadow: 0 1px 5px rgba(15,23,42,.24); font-size: .58rem; font-weight: 800; line-height: 1; z-index: 3; pointer-events: none;
    }
    :root[data-theme="dark"] :is(body.music-page-shell, body.music-player-persistent) .global-music-player #global-player-like .music-like-count {
        border-color: rgba(255,255,255,.62); background: #321724; color: #ffb7ca;
    }

    .global-music-player__inner { padding-right: 3.65rem !important; }
    #global-player-minimize {
        position: absolute; top: 50%; right: .5rem; display: inline-flex; align-items: center; justify-content: center;
        width: 2.45rem; min-width: 2.45rem; height: 2.45rem; padding: 0; border-radius: 999px; transform: translateY(-50%); z-index: 18;
        transition: width .16s ease, height .16s ease, border-radius .16s ease, background-color .16s ease, color .16s ease;
    }
    #global-player-minimize svg { width: 1rem; height: 1rem; fill: currentColor; }
    #global-player-minimize .global-music-player__minimize-restore { display: none; }

    .global-music-player[data-player-minimized="1"] {
        left: auto !important; right: 0 !important; top: auto !important; bottom: 0 !important; width: 20px !important; min-width: 20px !important; max-width: 20px !important;
        height: var(--club-player-minimized-height, 64px) !important; min-height: 0 !important; overflow: hidden !important;
        border-left: 1px solid rgba(86,103,136,.62); border-top-left-radius: 10px; box-shadow: -8px 0 20px rgba(0,0,0,.18);
    }
    .global-music-player[data-player-minimized="1"] .global-music-player__inner {
        visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; width: 20px !important; height: 100% !important; padding: 0 !important; overflow: hidden !important;
    }
    .global-music-player[data-player-minimized="1"] #global-player-minimize {
        inset: 0 !important; width: 20px !important; min-width: 20px !important; max-width: 20px !important; height: 100% !important; padding: 0 !important;
        border-width: 0 0 0 1px !important; border-radius: 10px 0 0 10px !important; transform: none !important; background: rgba(246,250,255,.98) !important; color: #245b9e !important; box-shadow: none !important;
    }
    :root[data-theme="dark"] .global-music-player[data-player-minimized="1"] #global-player-minimize { background: rgba(12,20,34,.98) !important; color: #9fd6ff !important; }
    .global-music-player[data-player-minimized="1"] #global-player-minimize .global-music-player__minimize-close { display: none; }
    .global-music-player[data-player-minimized="1"] #global-player-minimize .global-music-player__minimize-restore { display: block; width: .8rem; height: .8rem; }
}
@media (max-width: 767.98px) { #global-player-minimize { display: none !important; } }


/* MOB19 — canonical persistent global-player presentation.
 * This sheet survives SPA removal of clubos-music.css; keep ALL rules below scoped
 * to the persistent player, not Music Room cards or article UI. */
#site-shell-player-zone .global-music-player .music-track-reaction-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
#site-shell-player-zone .global-music-player .music-track-reaction-picker {
    position: absolute;
    z-index: 32000;
    left: 50%;
    bottom: calc(100% - 2px);
    display: flex;
    gap: .22rem;
    width: max-content;
    max-width: min(330px, calc(100vw - 24px));
    padding: .4rem .48rem;
    border: 1px solid var(--site-border, #cbd5e1);
    border-radius: 999px;
    background: var(--site-surface, #fff);
    box-shadow: 0 14px 34px rgba(15,23,42,.2);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 5px) scale(.96);
    transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
}
#site-shell-player-zone .global-music-player .music-track-reaction-wrap.is-open .music-track-reaction-picker,
#site-shell-player-zone .global-music-player .music-track-reaction-wrap:focus-within .music-track-reaction-picker {
    opacity: 1; visibility: visible; pointer-events: auto;
    transform: translate(-50%, 0) scale(1);
}
@media (hover:hover) and (pointer:fine) {
    #site-shell-player-zone .global-music-player .music-track-reaction-wrap:hover .music-track-reaction-picker {
        opacity: 1; visibility: visible; pointer-events: auto;
        transform: translate(-50%, 0) scale(1);
    }
}
#site-shell-player-zone .global-music-player .music-track-reaction-choice {
    display: inline-grid; place-items: center;
    width: 36px; height: 36px; min-width: 36px;
    padding: 0; border: 0; border-radius: 50%;
    background: transparent; font-size: 1.12rem; line-height: 1;
    cursor: pointer;
}
#site-shell-player-zone .global-music-player .music-track-reaction-choice:hover,
#site-shell-player-zone .global-music-player .music-track-reaction-choice:focus-visible,
#site-shell-player-zone .global-music-player .music-track-reaction-choice.is-active {
    background: color-mix(in srgb, var(--site-link, #2563eb) 13%, transparent);
    transform: translateY(-2px) scale(1.1);
}
@media (min-width:768px) {
    #site-shell-player-zone .global-music-player .global-music-player__markers { overflow: visible; }
    #site-shell-player-zone .global-music-player .global-music-player__marker {
        top: auto !important; bottom: -5px !important;
        display: grid !important; place-items: center;
        width: 20px !important; height: 20px !important;
        overflow: hidden; border-radius: 50% !important;
        border: 2px solid var(--site-surface, #fff) !important;
        background: var(--site-accent, #0f8278) !important;
        color: #fff !important;
        transform: translateX(-50%) !important;
        font-size: .58rem; font-weight: 850; z-index: 5;
    }
    #site-shell-player-zone .global-music-player .global-music-player__marker img {
        position: absolute; inset: 0;
        display: block; width: 100% !important; height: 100% !important;
        border-radius: inherit; object-fit: cover;
    }
    #site-shell-player-zone .global-music-player .global-music-player__marker:hover,
    #site-shell-player-zone .global-music-player .global-music-player__marker:focus-visible {
        z-index: 12;
        transform: translateX(-50%) scale(1.16) !important;
    }
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"]:not([data-player-minimized="1"]) {
        overflow: visible;
    }
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"]:not([data-player-minimized="1"]) #global-player-minimize {
        position: absolute !important;
        top: auto !important; bottom: -10px !important; right: -10px !important;
        transform: none !important; z-index: 32001 !important;
        border-radius: 999px !important;
        background: var(--site-surface, #fff) !important;
        box-shadow: 0 5px 20px rgba(15,23,42,.24);
    }
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"] .music-track-reaction-wrap--global {
        z-index: 32010;
    }
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"] .music-track-reaction-wrap--global .music-track-reaction-picker {
        left: 50%; right: auto; max-width: none;
        transform: translate(-40%, 5px) scale(.96);
    }
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"] .music-track-reaction-wrap--global.is-open .music-track-reaction-picker,
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"] .music-track-reaction-wrap--global:hover .music-track-reaction-picker,
    #site-shell-player-zone .global-music-player[data-display-mode="dock-right"] .music-track-reaction-wrap--global:focus-within .music-track-reaction-picker {
        transform: translate(-40%, 0) scale(1);
    }
}
@media (max-width:767.98px) {
    /* Mobile still has timestamp markers in the expanded waveform. */
    #site-shell-player-zone .global-music-player .global-music-player__marker {
        top: auto !important; bottom: -4px !important;
        display: grid; place-items: center;
        width: 18px !important; height: 18px !important;
        overflow: hidden; border-radius: 50% !important;
        border: 2px solid var(--site-surface, #fff) !important;
        transform: translateX(-50%) !important;
    }
    #site-shell-player-zone .global-music-player .global-music-player__marker img {
        position: absolute; inset: 0;
        display: block; width: 100% !important; height: 100% !important;
        object-fit: cover; border-radius: inherit;
    }
    #site-shell-player-zone .global-music-player .music-track-reaction-picker {
        left: 0; transform: translate(0, 5px) scale(.96);
    }
    #site-shell-player-zone .global-music-player .music-track-reaction-wrap.is-open .music-track-reaction-picker,
    #site-shell-player-zone .global-music-player .music-track-reaction-wrap:focus-within .music-track-reaction-picker {
        transform: translate(0, 0) scale(1);
    }
}


/* MOB21 — Stable immersive Winamp: keep the fallback viewport geometry even
 * when native Fullscreen changes the media-query result on a real phone.
 * Never style an ordinary player or the music catalogue with this scope. */
body.music-mobile-visualizer-open #site-shell-player-zone {
    position: relative;
    z-index: 2147483000 !important;
}
body.music-mobile-visualizer-open #site-shell-player-zone .global-music-player {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    overflow: visible !important;
}
body.music-mobile-visualizer-open #site-shell-player-zone #global-player-visualizer-wrap.is-music-mobile-visualizer-immersive {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483001 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #02050a !important;
    overflow: hidden !important;
    touch-action: none !important;
}
body.music-mobile-visualizer-open #site-shell-player-zone #global-player-visualizer-wrap.is-music-mobile-visualizer-immersive .global-music-player__visualizer-canvas {
    width: 100% !important;
    height: 100% !important;
}
body.music-mobile-visualizer-open #site-shell-player-zone #global-player-visualizer-wrap.is-music-mobile-visualizer-immersive .music-mobile-visualizer-close {
    position: absolute !important;
    z-index: 25 !important;
    top: max(.75rem, env(safe-area-inset-top, 0px)) !important;
    right: max(.75rem, env(safe-area-inset-right, 0px)) !important;
    display: grid !important;
}


/* MOB22 — Reacteur social du lecteur persistant, indépendant de la surface SPA. */
#site-shell-player-zone .global-music-player .music-social-like-svg {
    display: block;
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}
#site-shell-player-zone .global-music-player .music-social-like-svg.is-filled {
    fill: currentColor;
    stroke-width: 1.45;
}
#site-shell-player-zone .global-music-player .music-social-reaction-emoji {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    font-size: 18px;
    line-height: 1;
}
/* Le portail n'est plus descendant du player : style global uniquement sous sa classe dédiée. */
body > .music-track-reaction-picker.is-global-floating {
    position: fixed !important;
    inset: auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: max-content !important;
    max-width: calc(100vw - 16px) !important;
    padding: .4rem .48rem !important;
    gap: .22rem !important;
    border: 1px solid var(--site-border, #cbd5e1) !important;
    border-radius: 999px !important;
    background: var(--site-surface, #fff) !important;
    color: var(--site-text, #14243e) !important;
    box-shadow: 0 14px 34px rgba(15,23,42,.25) !important;
    transform: none !important;
    transition: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 2147483000 !important;
}
body > .music-track-reaction-picker.is-global-floating .music-track-reaction-choice {
    display: inline-grid !important;
    place-items: center !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    font-size: 1.12rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
}
body > .music-track-reaction-picker.is-global-floating .music-track-reaction-choice:is(:hover,:focus-visible,.is-active) {
    background: color-mix(in srgb, var(--site-link, #2563eb) 13%, transparent) !important;
    transform: translateY(-2px) scale(1.1);
}
/* CSS seul ne doit jamais ouvrir une palette désactivée. Le JS contrôle is-open. */
#site-shell-player-zone .global-music-player .music-track-reaction-wrap--global:not(.is-open) .music-track-reaction-picker {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}


/* MOB23 — Persistent player reactions and dock queue glyph on every SPA surface. */
@media (min-width: 768px) {
    #site-shell-player-zone .global-music-player .music-track-reaction-wrap--global {
        display: inline-flex !important;
        flex: 0 0 auto !important;
        align-items: center !important;
        justify-content: center !important;
    }
    #site-shell-player-zone .global-music-player .music-track-reaction-wrap--global #global-player-like:not([hidden]) {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 2.45rem !important;
        box-sizing: border-box !important;
        width: 2.45rem !important;
        min-width: 2.45rem !important;
        max-width: 2.45rem !important;
        height: 2.45rem !important;
        min-height: 2.45rem !important;
        padding: 0 !important;
        border-radius: 999px !important;
        aspect-ratio: 1 !important;
    }
}
#site-shell-player-zone #global-player-dock-queue-list .music-queue-removable-row > .music-queue-remove,
#site-shell-player-zone [data-music-mobile-queue-list] .music-queue-removable-row > .music-queue-remove {
    display: inline-grid !important;
    place-items: center !important;
    flex: 0 0 1.9rem !important;
    box-sizing: border-box !important;
    width: 1.9rem !important;
    min-width: 1.9rem !important;
    max-width: 1.9rem !important;
    height: 1.9rem !important;
    min-height: 1.9rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--site-text-muted, #64748b) !important;
    cursor: pointer;
}
#site-shell-player-zone #global-player-dock-queue-list .music-queue-remove svg,
#site-shell-player-zone [data-music-mobile-queue-list] .music-queue-remove svg {
    display: block !important;
    width: 16px !important;
    min-width: 16px !important;
    height: 16px !important;
    min-height: 16px !important;
    fill: currentColor !important;
    stroke: none !important;
}
#site-shell-player-zone .music-queue-remove:is(:hover,:focus-visible) {
    background: color-mix(in srgb, currentColor 10%, transparent) !important;
    opacity: 1;
}
@media (max-width: 767.98px) {
    body > dialog.music-global-mobile-reaction-dialog {
        position: fixed !important;
        inset: auto 10px max(86px, calc(env(safe-area-inset-bottom, 0px) + 80px)) 10px !important;
        z-index: 2147483000 !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 15px 12px 18px !important;
        border: 1px solid var(--site-border, #d3deeb) !important;
        border-radius: 18px !important;
        background: var(--site-surface, #fff) !important;
        color: var(--site-text, #14243e) !important;
        box-shadow: 0 18px 45px rgba(0, 18, 46, .29) !important;
    }
    body > dialog.music-global-mobile-reaction-dialog::backdrop {
        background: rgba(12,22,43,.42);
        backdrop-filter: blur(4px);
    }
    .music-global-mobile-reaction-dialog__header {
        display: flex; align-items: center; justify-content: space-between;
        gap: 10px; padding: 0 4px 13px; font-weight: 750;
    }
    .music-global-mobile-reaction-dialog__close {
        display: grid; place-items: center; width: 34px; height: 34px;
        padding: 0; border-radius: 50%; border: 1px solid var(--site-border, #d3deeb);
        background: transparent; color: inherit; font-size: 23px;
    }
    .music-global-mobile-reaction-dialog__choices {
        display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px;
    }
    .music-global-mobile-reaction-dialog__choice {
        display: grid; justify-items: center; gap: 5px; padding: 10px 3px;
        min-height: 65px; border: 1px solid var(--site-border, #d3deeb);
        border-radius: 12px; background: var(--site-surface-2, #f5f8fc);
        color: inherit; font-size: 12px; cursor: pointer;
    }
    .music-global-mobile-reaction-dialog__choice span:first-child { font-size: 25px; line-height: 1.2; }
    .music-global-mobile-reaction-dialog__choice.is-active {
        border-color: var(--site-link, #1672f9);
        background: color-mix(in srgb, var(--site-link, #1672f9) 12%, var(--site-surface, #fff));
    }
}


/* RS251 RESP1 - adaptive persistent player, not the page catalogue.
 * Mobile shell canonical boundary = 649.98px. Between mobile and desktop the
 * full player uses a deterministic two-row GRID instead of a shrinking FLEX
 * line (the old bridge/tight flex modes depend on resize history).
 * Never alter dock-right or the minimized handle.
 */
@media (min-width: 650px) and (max-width: 1279.98px) {
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) > .global-music-player__inner {
        padding: 7px 58px 8px 12px !important;
        box-sizing: border-box !important;
        width: 100% !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__main {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) auto auto !important;
        grid-template-areas: "transport timeline timeline timeline" "meta meta volume actions" !important;
        align-items: center !important;
        column-gap: 8px !important; row-gap: 3px !important;
        flex-wrap: nowrap !important;
        width: 100% !important; max-width: 100% !important;
        min-width: 0 !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__transport {
        grid-area: transport !important; order: initial !important;
        min-width: 0 !important; margin: 0 !important; gap: 3px !important;
        flex: initial !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__timeline {
        grid-area: timeline !important; order: initial !important;
        width: auto !important; flex: initial !important;
        min-width: 0 !important; gap: 5px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__wave-wrap {
        width: auto !important; flex: 1 1 auto !important;
        min-width: 0 !important; max-width: none !important;
        height: 30px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__meta {
        grid-area: meta !important; order: initial !important;
        flex: initial !important; width: 100% !important;
        max-width: 100% !important; min-width: 0 !important;
        gap: 7px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__meta-text {
        min-width: 0 !important; overflow: hidden !important;
        flex: 1 1 auto !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__visualizer {
        display: none !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__volume-zone {
        grid-area: volume !important; order: initial !important;
        justify-self: end !important; margin: 0 !important;
        flex: initial !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__actions {
        grid-area: actions !important; order: initial !important;
        justify-self: end !important; margin: 0 !important;
        flex: initial !important; min-width: 0 !important;
        max-width: none !important; gap: 3px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__dock-queue {
        display: none !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__cover {
        width: 38px !important; height: 38px !important;
        flex: 0 0 38px !important;
    }
    /* Keep the Like control available when 650-767px is already DESKTOP shell. */
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .music-track-reaction-wrap--global #global-player-like:not([hidden]) {
        display: inline-flex !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__times {
        white-space: nowrap !important; flex: 0 0 auto !important;
    }
}

/* Touch/landscape: do not silently allocate fixed min widths that exceed the
 * intermediate player. Very short windows retain accessible controls. */
@media (min-width: 650px) and (max-width: 849.98px) {
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__main {
        column-gap: 5px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__transport > .music-icon-btn,
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__actions .music-icon-btn,
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__volume-zone .music-icon-btn {
        width: 36px !important; min-width: 36px !important; height: 36px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__inner {
        padding-right: 49px !important;
    }
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) #global-player-minimize {
        width: 36px !important; min-width: 36px !important; height: 36px !important;
    }
}

/* Wide desktop: one row, but waveform must be genuinely shrinkable when
 * DevTools or a sidebar reduces usable width. */
@media (min-width: 1280px) {
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__timeline,
    #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]) .global-music-player__wave-wrap {
        min-width: 0 !important;
    }
}


/* RS251 RESP2 - lifecycle, not only width. The mobile shell injects a compact
 * player and an expanded button rail as *siblings* of the canonical player
 * inner. After a width change these nodes remain in the DOM. Their old mobile
 * styling was scoped to body.clubos-mobile-active, so outside that mode the
 * browser displayed raw covers/buttons (including natural-size 640px covers).
 * Hide mobile-only siblings at the DESKTOP boundary regardless of stale body
 * classes, resize order, or the player's stored compact state. The real audio
 * engine/DOM and the ordinary one-line minimized player are untouched.
 */
@media (min-width: 650px) {
    #site-shell-player-zone .global-music-player > .clubos-mobile-player-compact,
    #site-shell-player-zone .global-music-player > .clubos-mobile-player-expanded-actions {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}
/* A stale desktop-to-mobile transition must not show naked injected markup
 * before mobile-shell rehydrate sets the correct body class. */
body:not(.clubos-mobile-active) #site-shell-player-zone .global-music-player > .clubos-mobile-player-compact,
body:not(.clubos-mobile-active) #site-shell-player-zone .global-music-player > .clubos-mobile-player-expanded-actions {
    display: none !important;
    pointer-events: none !important;
}

/* Foldable / wide phone portrait in the *real* mobile shell (500-649px).
 * Phase-Q moves transport buttons into a positioned top-right rail. Reserve
 * space for them, then give waveform and track actions their own rows. */
@media (min-width: 500px) and (max-width: 649.98px) {
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact):not([data-display-mode="dock-right"]) .global-music-player__main {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas: "meta" "timeline" "actions" !important;
        align-items: center !important;
        justify-items: stretch !important;
        gap: 5px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact) .global-music-player__meta {
        grid-area: meta !important;
        width: calc(100% - 232px) !important;
        max-width: calc(100% - 232px) !important;
        min-width: 0 !important;
        min-height: 42px !important;
        margin: 0 !important;
        order: initial !important;
    }
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact) .global-music-player__timeline {
        grid-area: timeline !important;
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding-right: 0 !important;
        margin: 0 !important;
        order: initial !important;
    }
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact) .global-music-player__wave-wrap {
        min-width: 0 !important;
        max-width: none !important;
        flex: 1 1 0% !important;
    }
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact) .global-music-player__actions {
        grid-area: actions !important;
        display: flex !important;
        justify-content: flex-end !important;
        justify-self: end !important;
        align-self: center !important;
        width: max-content !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        order: initial !important;
    }
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact) .global-music-player__visualizer {
        display: none !important;
    }
    body.clubos-mobile-active #site-shell-player-zone .global-music-player:not(.is-clubos-mobile-compact) .global-music-player__dock-queue {
        display: none !important;
    }
}

/* RS251 RESP3 — Stop mobile Music Room navigation leaking into tablet/desktop.
 * music-mobile-complete.js injects [data-music-mobile-hub] when <=767.98px.
 * On resize, that nav remains in DOM, but its CSS stops applying above 767.98px:
 * the inline SVGs then expand to their natural 300x150px size. This is NOT
 * the audio player. Leave the canonical catalog, player and mini-player alone.
 */
#music-shell-content [data-music-mobile-hub="1"] .music-mobile-svg,
#music-shell-content [data-music-mobile-album-actions="1"] .music-mobile-svg {
    display: inline-block;
    width: 1.05rem;
    height: 1.05rem;
    max-width: 1.05rem;
    max-height: 1.05rem;
    flex: none;
    vertical-align: middle;
}
@media (min-width: 768px) {
    #music-shell-content [data-music-mobile-hub="1"],
    #music-shell-content [data-music-mobile-album-actions="1"] {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}

/* MOB25 UX3 - desktop transport/timeline swap without relocating event-bound DOM.
   Children of timeline become items of the parent flex line for ordering only.
   Dock, reduced player, mobile portrait, intermediate grid remain untouched. */
@media (min-width: 1280px){
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__main{
    display:flex!important;align-items:center!important;flex-wrap:nowrap!important;min-width:0!important;
  }
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__timeline{
    display:contents!important;
  }
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__wave-wrap{
    order:-30!important;flex:1 1 260px!important;min-width:90px!important;max-width:42vw!important;
  }
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__transport{
    order:-20!important;flex:0 0 auto!important;
  }
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__times{
    order:-10!important;min-width:78px!important;flex:0 0 auto!important;
  }
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__actions{
    margin-left:auto!important;
  }
  #site-shell-player-zone .global-music-player:not([data-display-mode="dock-right"]):not([data-player-minimized="1"]) .global-music-player__seek{
    display:none!important;
  }
}
