/* Shared glass player: only the active stream adds an overlay or artwork. */
.music-player {
    --music-text:#edf3f9; --music-muted:#afbdcc; --music-accent:#a6d4fb;
    position:fixed; z-index:110; left:24px; right:24px; bottom:max(16px,env(safe-area-inset-bottom));
    display:grid; grid-template-columns:minmax(160px,1fr) minmax(220px,1.4fr) auto 44px 44px;
    align-items:center; gap:12px; max-width:1080px; margin:auto; padding:10px 12px;
    border:1px solid #ffffff24; border-radius:16px; background:#101720bd;
    color:var(--music-text); box-shadow:0 12px 40px #0005;
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); font-family:inherit;
}
.music-player[hidden],.music-player [hidden] { display:none!important; }
.music-player svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.music-player button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:10px; background:transparent; color:var(--music-muted); cursor:pointer; touch-action:manipulation; transition:color .18s,background .18s; }
.music-player button:hover { color:#fff; background:#ffffff0c; }
.music-player button:active { opacity:.75; }
.music-player :is(button,input):focus-visible { outline:2px solid var(--music-accent); outline-offset:3px; }
.music-player-info { display:flex; align-items:center; gap:12px; min-width:0; }
.music-player-info>div { display:grid; gap:4px; min-width:0; }
.music-player-info strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; font-weight:600; line-height:1.4; color:var(--music-text); }
.music-player-info [data-music-playing-meta] { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; line-height:1.5; color:var(--music-muted); }
.music-player-cover { position:relative; display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border-radius:10px; overflow:hidden; color:var(--music-accent); background:#ffffff08; }
.music-player-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.music-player.is-live .music-player-cover { background:transparent; }
.music-player.is-live:not(.is-paused):not(.is-hidden-document) .music-player-cover { animation:music-float 3.8s ease-in-out infinite; }
.music-player-transport,.music-player-volume { display:flex; align-items:center; gap:8px; min-width:0; }
.music-player button.music-player-toggle { flex:0 0 44px; color:var(--music-accent); background:#a6d4fb12; }
.music-player .music-player-toggle:hover { background:#a6d4fb24; }
.music-time { flex:0 0 auto; min-width:32px; color:var(--music-muted); font-size:11px; font-variant-numeric:tabular-nums; }
.music-player.is-live [data-music-duration] { color:var(--music-accent); font-size:9px; letter-spacing:.08em; }
.music-player.is-live :is(.music-seek,[data-music-elapsed]) { display:none; }
.music-range { appearance:none; -webkit-appearance:none; min-width:44px; height:44px; margin:0; padding:0; border:0; border-radius:8px; background:transparent; cursor:pointer; accent-color:var(--music-accent); }
.music-seek { flex:1; width:100%; }.music-volume { width:64px; --music-progress:100%; }
.music-range::-webkit-slider-runnable-track { height:3px; border-radius:4px; background:linear-gradient(to right,var(--music-accent) var(--music-progress),#ffffff26 var(--music-progress)); }
.music-range::-webkit-slider-thumb { appearance:none; width:10px; height:10px; margin-top:-3.5px; border:0; border-radius:50%; background:var(--music-accent); }
.music-range::-moz-range-track { height:3px; border-radius:4px; background:#ffffff26; }
.music-range::-moz-range-progress { height:3px; border-radius:4px; background:var(--music-accent); }
.music-range::-moz-range-thumb { width:10px; height:10px; border:0; border-radius:50%; background:var(--music-accent); }
.music-range:disabled { opacity:.3; cursor:default; }
.music-range:disabled::-webkit-slider-thumb { opacity:0; }.music-range:disabled::-moz-range-thumb { opacity:0; }
.music-player-status { grid-column:1/-1; margin:0; padding:0 4px; color:var(--music-muted); font-size:11px; line-height:1.5; }
.music-player-status:empty { display:none; }
.music-player.is-compact {
    left:auto; right:24px; width:320px; max-width:calc(100vw - 24px);
    grid-template-columns:minmax(0,1fr) 44px 44px 44px; gap:4px; padding:8px;
}
.music-player.is-compact .music-player-info { gap:8px; }
.music-player.is-compact .music-player-cover { width:40px; height:44px; flex-basis:40px; }
.music-player.is-compact :is(.music-player-volume,.music-time,.music-seek) { display:none; }
.music-player.is-compact .music-player-transport { display:contents; }
.music-player.is-compact .music-player-size { transform:rotate(180deg); }
body.music-player-open { padding-bottom:calc(156px + env(safe-area-inset-bottom)); }
body.music-player-compact { padding-bottom:calc(116px + env(safe-area-inset-bottom)); }
@keyframes music-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@media(min-width:701px) {
    .music-player.is-live:not(.is-compact) { max-width:760px; grid-template-columns:minmax(160px,1fr) auto auto 44px 44px; }
}
@media(max-width:1000px) { .music-volume { display:none; } }
@media(max-width:700px) {
    .music-player { left:12px; right:12px; bottom:max(12px,env(safe-area-inset-bottom)); grid-template-columns:minmax(0,1fr) 44px 44px 44px; gap:4px; }
    .music-player-info { gap:8px; grid-column:1; grid-row:1; }
    .music-player-volume { grid-column:2; grid-row:1; }.music-player-size { grid-column:3; grid-row:1; }.music-player-close { grid-column:4; grid-row:1; }
    .music-player-transport { grid-column:1/-1; grid-row:2; gap:8px; }
    .music-player-status { grid-row:3; }
    .music-player.is-compact { right:12px; grid-template-columns:minmax(0,1fr) 44px 44px 44px; }
    .music-player.is-compact .music-player-toggle { grid-column:2; grid-row:1; }
    .music-player.is-compact .music-player-volume { display:none; }
    body.music-player-open { padding-bottom:calc(204px + env(safe-area-inset-bottom)); }
    body.music-player-compact { padding-bottom:calc(140px + env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { .music-player * { animation:none!important; transition:none!important; } }
@supports not (backdrop-filter:blur(1px)) { .music-player { background:#101720ed; } }
