﻿/* ═══════════ 全站播放器 ═══════════ */
.yxyh-lfx-layer {
    position: fixed;
    inset: 0;
    z-index: 9800;
    pointer-events: none;
    overflow: hidden;
}

.yxyh-lfx-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* 播报横幅：玻璃拟态 */
/* 播报横幅：顶部垂下式（原版 nm_logfx 对齐） */
.yxyh-lfx-banner {
    position: absolute; top: var(--ls-header-height, 64px); inset-inline-start: 50%; z-index: 3;
    transform: translateX(-50%) translateY(-140%);
    min-width: 260px; max-width: 92vw;
    padding: 13px 26px;
    border-radius: 16px;
    color: #fff; font-size: 15px; font-family: inherit; font-weight: 500;
    box-shadow: 0 8px 30px rgba(123, 95, 176, .4), 0 0 0 1px rgba(255, 255, 255, .25) inset;
    opacity: 0;
    transition: transform .5s cubic-bezier(.22, 1, .36, 1), opacity .4s ease;
    white-space: nowrap;
    display: flex; align-items: center; gap: 4px;
}
.yxyh-lfx-banner.is-show { transform: translateX(-50%) translateY(14px); opacity: 1; }
.yxyh-lfx-banner .yxyh-lfx-banner-name {
    opacity: .95; padding: 2px 10px; margin-inline-end: 2px; border-radius: 9px;
    background: rgba(255, 255, 255, .28); font-weight: 600;
}
.yxyh-lfx-banner b { font-weight: 700; }

.yxyh-lfx-banner.tone-blue   { background: linear-gradient(135deg, #a5b4fc, #6366f1); }
.yxyh-lfx-banner.tone-gold   { background: linear-gradient(135deg, #fcd34d, #f59e0b); }
.yxyh-lfx-banner.tone-pink   { background: linear-gradient(135deg, #f9a8d4, #ec4899); }
.yxyh-lfx-banner.tone-violet { background: linear-gradient(135deg, #c4b5fd, #8b5cf6); }
.yxyh-lfx-banner.tone-red    { background: linear-gradient(135deg, #fca5a5, #ef4444); }
.yxyh-lfx-banner.tone-green  { background: linear-gradient(135deg, #86efac, #10b981); }

/* 霓虹脉冲沿用移动端的全屏内发光效果。 */
.yxyh-lfx-neon {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    z-index: 1;
    color: #8b5cf6;
    transition: opacity .45s ease;
    border: 2px solid currentColor;
    box-shadow: inset 0 0 70px 8px currentColor, 0 0 26px 4px currentColor;
}
.yxyh-lfx-neon.is-show { opacity: .8; animation: yxyhLfxNeonPulse 1.2s ease-in-out infinite; }
.yxyh-lfx-neon.tone-blue { color: #818cf8; }
.yxyh-lfx-neon.tone-gold { color: #f59e0b; }
.yxyh-lfx-neon.tone-pink { color: #ec4899; }
.yxyh-lfx-neon.tone-violet { color: #8b5cf6; }
.yxyh-lfx-neon.tone-red { color: #ef4444; }
.yxyh-lfx-neon.tone-green { color: #10b981; }
@keyframes yxyhLfxNeonPulse { 0%, 100% { opacity: .4; } 50% { opacity: .8; } }


/* 宿主未提供 toast 时的模块内轻提示 */
.yxyh-lfx-toast {
    position: fixed;
    inset-block-end: 32px;
    inset-inline-end: 28px;
    z-index: 12000;
    max-width: 340px;
    padding: 11px 18px;
    border-radius: 12px;
    background: rgba(35, 39, 47, 0.92);
    color: #fff;
    font-size: 13.5px;
    line-height: 1.6;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.22);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .24s ease, transform .24s ease;
    pointer-events: none;
}
.yxyh-lfx-toast.is-error { background: rgba(220, 38, 38, 0.95); }
.yxyh-lfx-toast.is-show { opacity: 1; transform: translateY(0); }
