.niuniu-music-layer{position:fixed;z-index:76;inset:0 auto 0 50%;width:min(100vw,430px);height:var(--app-viewport-height,100dvh);transform:translateX(-50%);pointer-events:none;--music-accent:#e8b842;--music-glow:#ffd96c66;--music-panel:rgba(13,14,18,.94);--music-card:rgba(255,255,255,.075);--music-border:rgba(242,200,91,.34);--music-text:#fff4d0;--music-muted:#aa9c78}.platform-theme-black-blue .niuniu-music-layer{--music-accent:#38c8ef;--music-glow:#35c8ff66;--music-panel:rgba(7,15,28,.95);--music-card:rgba(70,153,215,.12);--music-border:rgba(67,205,242,.35);--music-text:#e8f8ff;--music-muted:#8faabe}.platform-theme-blue-white .niuniu-music-layer{--music-accent:#1977dc;--music-glow:#2789ef55;--music-panel:rgba(245,250,255,.97);--music-card:rgba(29,113,201,.08);--music-border:rgba(31,118,210,.25);--music-text:#17375d;--music-muted:#6d829b}.niuniu-music-disc{position:absolute;left:var(--music-float-x);top:var(--music-float-y);width:var(--music-float-size);aspect-ratio:1;transform:translate(-50%,-50%);border:0;padding:0;border-radius:50%;background:none;pointer-events:auto;touch-action:none;cursor:grab;filter:drop-shadow(0 8px 13px rgba(0,0,0,.5));isolation:isolate}.niuniu-music-disc:active{cursor:grabbing}.niuniu-music-disc-art,.mini-disc,.track-disc{display:grid;place-items:center;border-radius:50%;background-image:radial-gradient(circle at center,#06070a 0 8%,transparent 9%),repeating-radial-gradient(circle at center,rgba(255,255,255,.13) 0 1px,transparent 2px 6px),conic-gradient(from 20deg,#090a0d,var(--music-accent),#11131a,var(--music-accent),#090a0d);background-position:center;background-size:cover;box-shadow:inset 0 0 0 2px var(--music-border),inset 0 0 20px #0008,0 0 18px var(--music-glow);color:var(--music-accent);overflow:hidden}.niuniu-music-disc-art{position:absolute;inset:0}.niuniu-music-disc-art:after,.mini-disc:after,.track-disc:after{content:"";width:18%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#050505 0 28%,var(--music-accent) 31% 58%,#101010 62%);box-shadow:0 0 0 2px #fff2;position:absolute}.niuniu-music-disc-art>svg{width:32%;height:32%}.niuniu-music-disc-art>i{position:absolute;inset:5%;border-radius:50%;border:1px solid #fff2}.niuniu-music-disc.is-playing .niuniu-music-disc-art,.mini-disc.is-playing{animation:niuniu-cd-spin 3.2s linear infinite}.niuniu-music-disc>em{position:absolute;right:-4%;bottom:-2%;width:36%;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:var(--music-accent);color:#071018;box-shadow:0 4px 12px #0008;font-style:normal}.niuniu-music-disc>em svg{width:55%;height:55%;fill:currentColor}.music-bars{display:flex;align-items:flex-end;gap:2px;height:46%}.music-bars i{width:3px;border-radius:2px;background:#071018;animation:music-bar .7s ease-in-out infinite alternate}.music-bars i:nth-child(1){height:55%}.music-bars i:nth-child(2){height:100%;animation-delay:.18s}.music-bars i:nth-child(3){height:72%;animation-delay:.34s}@keyframes niuniu-cd-spin{to{transform:rotate(360deg)}}@keyframes music-bar{to{height:28%}}
.niuniu-music-panel{position:absolute;left:16px;right:16px;bottom:calc(86px + env(safe-area-inset-bottom));max-height:min(62vh,510px);display:flex;flex-direction:column;border:1px solid var(--music-border);border-radius:24px;background:var(--music-panel);color:var(--music-text);box-shadow:0 18px 50px #000a,0 0 28px var(--music-glow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);pointer-events:auto;overflow:hidden;animation:music-panel-in .22s ease-out}.niuniu-music-panel>header{display:flex;align-items:center;justify-content:space-between;padding:16px 17px 11px}.niuniu-music-panel>header span{display:flex;flex-direction:column}.niuniu-music-panel>header small{font-size:9px;letter-spacing:2px;color:var(--music-accent)}.niuniu-music-panel>header b{font-size:17px}.niuniu-music-panel>header button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--music-card);color:inherit}.niuniu-music-panel svg{width:18px;height:18px}.niuniu-music-now{display:grid;grid-template-columns:52px 1fr 38px;align-items:center;gap:11px;margin:0 13px 10px;padding:11px;border-radius:17px;background:linear-gradient(125deg,var(--music-card),transparent);border:1px solid var(--music-border)}.mini-disc{position:relative;width:52px;aspect-ratio:1}.mini-disc>svg,.track-disc>svg{width:34%;height:34%}.niuniu-music-now>div{min-width:0;display:flex;flex-direction:column}.niuniu-music-now small{font-size:11px;color:var(--music-muted)}.niuniu-music-now b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.niuniu-music-now>button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--music-accent);color:#071018}.niuniu-music-hint,.niuniu-music-empty,.niuniu-music-notice{margin:0 13px 9px;padding:9px 11px;border-radius:12px;background:var(--music-card);color:var(--music-muted);font-size:12px}.niuniu-music-track-list{display:flex;flex-direction:column;gap:7px;padding:0 13px;overflow:auto;overscroll-behavior:contain}.niuniu-music-track-list>button{display:grid;grid-template-columns:38px 1fr 22px;align-items:center;gap:10px;min-height:54px;padding:7px 10px;border:1px solid transparent;border-radius:15px;background:var(--music-card);color:inherit;text-align:left}.niuniu-music-track-list>button.active{border-color:var(--music-border);box-shadow:inset 3px 0 var(--music-accent)}.niuniu-music-track-list>button>span:nth-child(2){min-width:0;display:flex;flex-direction:column}.niuniu-music-track-list b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.niuniu-music-track-list small{font-size:11px;color:var(--music-muted)}.track-disc{position:relative;width:38px;aspect-ratio:1}.niuniu-music-track-list>button>svg{color:var(--music-accent);transform:rotate(-90deg)}.niuniu-music-panel>footer{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;padding:12px 14px 15px}.niuniu-music-mute{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--music-border);border-radius:50%;background:var(--music-card);color:var(--music-accent)}.niuniu-music-panel>footer label{display:grid;grid-template-columns:1fr 38px;align-items:center;gap:8px}.niuniu-music-panel input[type=range]{height:4px;accent-color:var(--music-accent);background:linear-gradient(90deg,var(--music-accent) var(--music-volume),var(--music-card) var(--music-volume));border-radius:4px}.niuniu-music-panel>footer small{color:var(--music-muted);font-size:11px;text-align:right}.niuniu-music-notice{color:var(--music-accent);text-align:center}@keyframes music-panel-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}.wechat-room.chat-panel-open .niuniu-music-layer,.wechat-room.chat-keyboard-open .niuniu-music-layer{pointer-events:none;opacity:0;transition:opacity .12s}
@media (max-width:380px){.niuniu-music-panel{left:10px;right:10px}.niuniu-music-now{grid-template-columns:46px 1fr 36px}.mini-disc{width:46px}}
.niuniu-music-disc{transition:none!important;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.niuniu-music-disc *{pointer-events:none}
.niuniu-music-layer .niuniu-music-disc{z-index:2}
/* Position belongs to a non-button wrapper: global button feedback cannot
   replace the centering transform or move the DJ when its panel opens. */
.niuniu-music-anchor{position:absolute;left:var(--music-float-x);top:var(--music-float-y);width:var(--music-float-size);min-width:44px;aspect-ratio:1;transform:translate(-50%,-50%);z-index:2;pointer-events:none}
.niuniu-music-layer .niuniu-music-anchor .niuniu-music-disc,
.niuniu-music-layer .niuniu-music-anchor .niuniu-music-disc:is(:active,.kris-pressed,.is-pointer-pressed){position:absolute;inset:0;left:0;top:0;width:100%;height:100%;transform:none!important;scale:1!important;translate:none!important;transition:none!important;opacity:1!important;cursor:pointer}
.niuniu-music-layer .niuniu-music-anchor.is-drag-ready .niuniu-music-disc{cursor:grabbing}
.niuniu-music-drag-hint{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);padding:5px 9px;border-radius:8px;background:var(--music-panel);color:var(--music-text);font-size:11px;white-space:nowrap;pointer-events:none}
/* Fixed/composited DJ layers must not paint through an inactive retained room. */
.persistent-chat-room-host:not(.is-active) .niuniu-music-layer,
.persistent-chat-room-host[aria-hidden="true"] .niuniu-music-layer{display:none!important;visibility:hidden!important;pointer-events:none!important}
/* Keep the DJ out of nested filtered video surfaces on mobile Safari. The
   same transparent poster follows the finger while the video is unmounted. */
.niuniu-music-layer .niuniu-music-disc.niuniu-music-dj{filter:none;-webkit-user-drag:none}
.galaxy-dj-drag-poster{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
.niuniu-music-anchor.is-drag-ready .music-bars i{animation-play-state:paused}

.music-library-controls{--ml-ink:var(--music-text,#e8f5ff);--ml-accent:var(--music-accent,#69dfff);--ml-line:var(--music-border,#448bb24d);color:var(--ml-ink);padding:12px 14px;background:linear-gradient(135deg,#173d581f,transparent);min-width:0}
.music-library-heading{display:flex;align-items:center;gap:7px;margin-bottom:10px;font-size:13px}.music-library-heading>svg{width:16px;height:16px;color:var(--ml-accent)}.music-library-heading>small{margin-left:auto;font-size:10px;opacity:.65}
.music-library-pills{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 9px;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.music-library-pills::-webkit-scrollbar{display:none}
.music-library-pills>button{flex:0 0 auto;min-width:112px;max-width:200px;display:flex;align-items:center;gap:9px;border:1px solid var(--ml-line);border-radius:13px;background:rgba(70,135,180,.07);color:inherit;padding:10px 12px;text-align:left;min-height:58px}
.music-library-pills>button>span{min-width:0;display:grid;gap:3px}.music-library-pills b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-library-pills small{font-size:10px;opacity:.65}.music-library-pills svg{width:17px;height:17px;flex:none}.music-library-pills>button.active{border-color:var(--ml-accent);background:linear-gradient(120deg,#217aa944,#dab55715);box-shadow:inset 0 0 18px #2997c915;color:var(--ml-accent)}
.music-mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border:1px solid var(--ml-line);padding:4px;border-radius:13px;background:#0002}.music-mode-switch>button{display:flex;gap:6px;justify-content:center;align-items:center;min-height:37px;border:0;border-radius:9px;background:transparent;color:inherit;font-size:12px}.music-mode-switch svg{height:15px;width:15px}.music-mode-switch>button.active{color:#072039;background:linear-gradient(135deg,#8ce8ff,#50b9ee);box-shadow:0 2px 10px #39a8e530;font-weight:700}.music-mode-description{margin:8px 0 0;font-size:10px;opacity:.66;line-height:1.5}
.niuniu-music-panel .music-library-controls{flex-shrink:0;padding-top:2px}.niuniu-music-panel>header,.niuniu-music-panel>.niuniu-music-now,.niuniu-music-panel>footer{flex-shrink:0}.niuniu-music-panel .niuniu-music-track-list{min-height:55px;flex:1}.niuniu-music-layer .niuniu-music-panel{max-height:min(78dvh,670px);z-index:3}
.niuniu-music-panel .niuniu-music-track-list{scrollbar-width:thin;scrollbar-color:var(--music-border) transparent}.niuniu-music-track-list::-webkit-scrollbar{width:4px}.niuniu-music-track-list::-webkit-scrollbar-thumb{background:var(--music-border);border-radius:4px}.niuniu-music-track-list::-webkit-scrollbar-button{display:none}
.background-music-page .music-library-controls{border:1px solid #548fa84d;border-radius:20px;background:linear-gradient(135deg,#13385b99,#07162add);margin:0 0 18px;padding:18px}
.platform-theme-blue-white .music-library-controls{--ml-ink:#17375d;--ml-accent:#167fc9;background:#edf7ff}.platform-theme-blue-white .background-music-page .music-library-controls{background:#edf7ff}
@media(max-height:620px){.niuniu-music-layer .niuniu-music-panel{bottom:60px;max-height:calc(100dvh - 80px)}.niuniu-music-panel .niuniu-music-now{display:none}.niuniu-music-panel .music-library-pills>button{min-height:44px;padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.niuniu-music-panel{animation:none}}

.niuniu-floating-layer{position:fixed;z-index:74;inset:0 auto 0 50%;width:min(100vw,430px);height:var(--app-viewport-height,100dvh);pointer-events:none;transform:translateX(-50%);--float-accent:#f0c45b;--float-accent-soft:#f0c45b2e;--float-surface:rgba(12,13,17,.94);--float-surface-2:rgba(34,35,42,.96);--float-text:#fff3cc;--float-muted:#a89978;--float-border:#f1c55770}.niuniu-floating-anchor{position:absolute;left:var(--niuniu-floating-x);top:var(--niuniu-floating-y);width:var(--niuniu-floating-size);aspect-ratio:1;pointer-events:auto;transform:translate(-50%,-50%);touch-action:none;-webkit-user-select:none;user-select:none}.niuniu-floating-trigger{width:100%;height:100%;display:grid;place-items:center;padding:0;border:2px solid rgba(255,226,139,.92);border-radius:50%;background:linear-gradient(145deg,#ffe184,#9f6a10);color:#1d1202;box-shadow:0 9px 27px #0009,0 0 0 3px #e9b53e25;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-drag:none;transform:translateZ(0);transition:transform .18s cubic-bezier(.2,.9,.3,1.35),box-shadow .18s}.niuniu-floating-layer.is-dragging .niuniu-floating-trigger{cursor:grabbing;transform:scale(1.035);transition:none;box-shadow:0 12px 32px #000b,0 0 0 5px var(--float-accent-soft)}.niuniu-floating-trigger img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.niuniu-floating-trigger svg{width:48%;height:48%;pointer-events:none}.niuniu-floating-trigger.is-open{transform:scale(1.08);box-shadow:0 9px 30px #000a,0 0 0 5px var(--float-accent-soft)}.niuniu-floating-trigger.pressed{animation:niuniuFloatTap .19s ease-out}
.niuniu-floating-mini-panel{position:absolute;top:calc(100% + 11px);left:0;width:min(270px,78vw);max-height:min(430px,calc(var(--app-viewport-height,100dvh) - var(--niuniu-floating-y) - 86px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;padding:11px;border:1px solid var(--float-border);border-radius:21px;background:linear-gradient(155deg,var(--float-surface-2),var(--float-surface));box-shadow:0 22px 56px #000c,0 0 0 1px #ffffff0b inset;overflow:hidden;transform:scale(var(--niuniu-panel-scale));transform-origin:top left;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:niuniuPanelOpen .2s cubic-bezier(.2,.85,.25,1.12) both}.niuniu-floating-layer.align-right .niuniu-floating-mini-panel{left:auto;right:0;transform-origin:top right}.niuniu-floating-layer.align-bottom .niuniu-floating-mini-panel{top:auto;bottom:calc(100% + 11px);max-height:min(430px,calc(var(--niuniu-floating-y) - 60px));transform-origin:bottom left}.niuniu-floating-layer.align-right.align-bottom .niuniu-floating-mini-panel{transform-origin:bottom right}.niuniu-floating-mini-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 7px;border-bottom:1px solid #ffffff12}.niuniu-floating-mini-panel>header span{display:grid;gap:2px}.niuniu-floating-mini-panel>header b{color:var(--float-text);font-size:14px}.niuniu-floating-mini-panel>header small{color:var(--float-muted);font-size:9px}.niuniu-floating-mini-panel>header button{width:29px;height:29px;display:grid;place-items:center;padding:0;border:0;border-radius:10px;background:#ffffff0b;color:var(--float-muted)}.niuniu-floating-mini-panel>header svg{width:15px}.niuniu-floating-mini-panel nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:auto;overscroll-behavior:contain}.niuniu-floating-mini-panel nav button{min-width:0;height:var(--item-height);display:grid;grid-template-columns:var(--icon-box) minmax(0,1fr);align-items:center;gap:8px;padding:6px 8px;border:1px solid #ffffff0d;border-radius:14px;background:#ffffff0a;color:var(--float-text);text-align:left;opacity:0;animation:niuniuFloatRow .2s ease-out calc(var(--float-row,0)*30ms + 35ms) forwards}.niuniu-floating-mini-panel nav button:active{transform:scale(.96);background:var(--float-accent-soft)}.niuniu-floating-mini-panel nav i{width:var(--icon-box);height:var(--icon-box);display:grid;place-items:center;border-radius:11px;background:var(--float-accent-soft);overflow:hidden}.niuniu-floating-mini-panel nav i img{width:100%;height:100%;object-fit:contain;transform:scale(var(--icon-scale))}.niuniu-floating-mini-panel nav i svg{width:55%;height:55%;transform:scale(var(--icon-scale))}.niuniu-floating-mini-panel nav span{min-width:0;display:grid;gap:2px}.niuniu-floating-mini-panel nav b,.niuniu-floating-mini-panel nav small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.niuniu-floating-mini-panel nav b{font-size:11px}.niuniu-floating-mini-panel nav small{color:var(--float-muted);font-size:7px}.niuniu-floating-hide{height:34px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:11px;background:#6c272b66;color:#ffb1b1;font-size:10px;font-weight:800}.niuniu-floating-hide svg{width:14px}
.niuniu-floating-free-layer{position:absolute;inset:0;pointer-events:none}.niuniu-floating-action,.niuniu-floating-free-hide{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);touch-action:none;-webkit-user-select:none;user-select:none}.niuniu-floating-action{width:var(--action-width);display:grid;justify-items:center;gap:3px;padding:0;border:0;background:transparent;color:var(--float-text);filter:drop-shadow(0 8px 14px #000a);animation:niuniuFreeAppear .2s ease-out calc(var(--float-row,0)*35ms) both}.niuniu-floating-action i{width:var(--action-icon);height:var(--action-icon);display:grid;place-items:center;border:1px solid var(--float-border);border-radius:50%;background:linear-gradient(145deg,var(--float-surface-2),var(--float-surface));box-shadow:0 0 0 3px var(--float-accent-soft);overflow:hidden}.niuniu-floating-action i img{width:100%;height:100%;object-fit:contain;transform:scale(var(--icon-scale))}.niuniu-floating-action i svg{width:52%;height:52%;color:var(--float-accent);transform:scale(var(--icon-scale))}.niuniu-floating-action span{max-width:100%;padding:2px 6px;border-radius:8px;background:var(--float-surface);color:var(--float-text);font-size:9px;font-weight:900;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.niuniu-floating-action:active i{transform:scale(.92)}.niuniu-floating-free-hide{min-width:48px;display:flex;align-items:center;justify-content:center;gap:3px;padding:5px 7px;border:1px solid #fa77774d;border-radius:12px;background:#33191dcc;color:#ffaaaa;font-size:8px}.niuniu-floating-free-hide svg{width:11px}
.niuniu-floating-peek{position:absolute;right:-1px;top:var(--niuniu-floating-y);width:29px;height:54px;display:grid;grid-template-rows:23px 18px;place-items:center;padding:4px 1px;border:1px solid var(--float-border);border-right:0;border-radius:15px 0 0 15px;background:linear-gradient(145deg,var(--float-surface-2),var(--float-surface));color:var(--float-accent);box-shadow:0 8px 24px #0009;pointer-events:auto;transform:translateY(-50%);animation:niuniuFloatPeek .22s ease-out}.niuniu-floating-peek svg{width:16px}.niuniu-floating-peek span{font-size:7px;font-weight:900;writing-mode:vertical-rl;letter-spacing:1px}.niuniu-floating-peek.pressed{animation:niuniuFloatPeekTap .19s ease-out}.chat-panel-open~.niuniu-floating-layer,.wechat-room.chat-panel-open .niuniu-floating-layer{display:none}
html[data-platform-theme="black-blue"] .niuniu-floating-layer{--float-accent:#75d7ff;--float-accent-soft:#269ed12e;--float-surface:rgba(5,12,18,.95);--float-surface-2:rgba(11,42,62,.95);--float-text:#d8f4ff;--float-muted:#78a7ba;--float-border:#53c9fa70}html[data-platform-theme="black-blue"] .niuniu-floating-trigger{border-color:#8bdcff;background:linear-gradient(145deg,#9ae8ff,#0872b4);color:#03131f}html[data-platform-theme="blue-white"] .niuniu-floating-layer{--float-accent:#2577e8;--float-accent-soft:#287be821;--float-surface:rgba(242,248,255,.97);--float-surface-2:rgba(255,255,255,.98);--float-text:#17345c;--float-muted:#6982a2;--float-border:#5a9cf075}html[data-platform-theme="blue-white"] .niuniu-floating-trigger{border-color:#9bc8ff;background:linear-gradient(145deg,#fff,#6caeff);color:#174d92}html[data-platform-theme="blue-white"] .niuniu-floating-mini-panel{box-shadow:0 20px 48px #15447d3b}html[data-platform-theme="blue-white"] .niuniu-floating-mini-panel>header{border-bottom-color:#17345c16}html[data-platform-theme="blue-white"] .niuniu-floating-mini-panel nav button{border-color:#397ac31f;background:#2774c80b}
@keyframes niuniuFloatTap{0%{transform:scale(1)}45%{transform:scale(.86)}100%{transform:scale(1.06)}}@keyframes niuniuPanelOpen{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}@keyframes niuniuFloatRow{from{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@keyframes niuniuFreeAppear{from{opacity:0;filter:drop-shadow(0 8px 14px #0000)}to{opacity:1;filter:drop-shadow(0 8px 14px #000a)}}@keyframes niuniuFloatPeek{from{opacity:0;transform:translate(22px,-50%)}to{opacity:1;transform:translateY(-50%)}}@keyframes niuniuFloatPeekTap{0%,100%{transform:translateY(-50%) scale(1)}45%{transform:translateY(-50%) scale(.86)}}
@media(prefers-reduced-motion:reduce){.niuniu-floating-trigger,.niuniu-floating-mini-panel,.niuniu-floating-mini-panel button,.niuniu-floating-action,.niuniu-floating-peek{animation:none!important;transition:none!important;opacity:1}}@media(max-width:430px){.niuniu-floating-mini-panel{width:min(258px,76vw)}}
.niuniu-floating-layer.side-shortcuts .niuniu-floating-peek{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;animation:none;transition:none;z-index:2}
.niuniu-floating-layer.side-shortcuts .niuniu-floating-mini-panel{left:auto;right:35px;top:clamp(26%,var(--niuniu-floating-y),74%);bottom:auto;width:min(calc(270px * var(--niuniu-panel-scale,1)),calc(100% - 45px));max-height:min(400px,50%);transform:translateY(-50%);animation:none;grid-template-rows:minmax(0,1fr);pointer-events:auto}
/* The room-wide pressed animation must never replace the handle's Y anchor.
   Keep the same geometry while pressed, expanded and collapsed; haptics and
   opacity feedback still work, and intentional long-press dragging is retained. */
html #root .niuniu-floating-layer.side-shortcuts .niuniu-floating-peek{transform:translateY(-50%)!important}

.niuniu-music-anchor>.e89-widget-speech{position:absolute;z-index:3;bottom:calc(100% + 10px);width:max-content;max-width:min(220px,calc(100vw - 24px));box-sizing:border-box;padding:11px 14px;border:1px solid #d9b875;border-radius:15px;background:linear-gradient(135deg,#30312efa,#171c25fa);color:#ffe3a1;font:600 11px/1.6 Arial,sans-serif;text-align:center;box-shadow:0 6px 20px #0006;pointer-events:none;visibility:hidden;white-space:normal}
.niuniu-music-anchor>.e89-widget-speech::after{content:'';position:absolute;left:var(--e89-hint-tail,75%);bottom:-5px;width:8px;height:8px;background:#171c25;border-right:1px solid #d9b875;border-bottom:1px solid #d9b875;transform:translateX(-50%) rotate(45deg)}
.niuniu-music-anchor>.e89-widget-speech[data-placement=below]{bottom:auto;top:calc(100% + 10px)}
.niuniu-music-anchor>.e89-widget-speech[data-placement=below]::after{bottom:auto;top:-5px;background:#30312e;transform:translateX(-50%) rotate(225deg)}

.niuniu-floating-peek *{pointer-events:none}.persistent-chat-room-host:not(.is-active) .niuniu-floating-layer{display:none!important}.niuniu-music-layer[hidden],.niuniu-floating-layer[hidden]{display:none!important}
