
@keyframes audiusBorderGlow {
    0%   { border-color: #60a5fa; box-shadow: 0 0 8px rgba(96,165,250,0.3); }
    10%  { border-color: #8b5cf6; box-shadow: 0 0 12px rgba(139,92,246,0.35); }
    20%  { border-color: #fbbf24; box-shadow: 0 0 8px rgba(251,191,36,0.3); }
    30%  { border-color: #06b6d4; box-shadow: 0 0 12px rgba(6,182,212,0.35); }
    40%  { border-color: #fb7185; box-shadow: 0 0 8px rgba(251,113,133,0.3); }
    50%  { border-color: #f97316; box-shadow: 0 0 12px rgba(249,115,22,0.35); }
    60%  { border-color: #34d399; box-shadow: 0 0 8px rgba(52,211,153,0.3); }
    70%  { border-color: #ec4899; box-shadow: 0 0 12px rgba(236,72,153,0.35); }
    80%  { border-color: #6366f1; box-shadow: 0 0 8px rgba(99,102,241,0.3); }
    90%  { border-color: #ef4444; box-shadow: 0 0 12px rgba(239,68,68,0.35); }
    100% { border-color: #60a5fa; box-shadow: 0 0 8px rgba(96,165,250,0.3); }
}

@keyframes audiusBorderGlowHover {
    0%   { border-color: #60a5fa; box-shadow: 0 0 16px rgba(96,165,250,0.5); }
    10%  { border-color: #8b5cf6; box-shadow: 0 0 22px rgba(139,92,246,0.55); }
    20%  { border-color: #fbbf24; box-shadow: 0 0 16px rgba(251,191,36,0.5); }
    30%  { border-color: #06b6d4; box-shadow: 0 0 22px rgba(6,182,212,0.55); }
    40%  { border-color: #fb7185; box-shadow: 0 0 16px rgba(251,113,133,0.5); }
    50%  { border-color: #f97316; box-shadow: 0 0 22px rgba(249,115,22,0.55); }
    60%  { border-color: #34d399; box-shadow: 0 0 16px rgba(52,211,153,0.5); }
    70%  { border-color: #ec4899; box-shadow: 0 0 22px rgba(236,72,153,0.55); }
    80%  { border-color: #6366f1; box-shadow: 0 0 16px rgba(99,102,241,0.5); }
    90%  { border-color: #ef4444; box-shadow: 0 0 22px rgba(239,68,68,0.55); }
    100% { border-color: #60a5fa; box-shadow: 0 0 16px rgba(96,165,250,0.5); }
}
                .audius-player-wrapper {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 16px;
                    align-items: center;
                    background: var(--bg-card);
                    border: 2px solid var(--border-color);
                    border-radius: 20px;
                    padding: 16px;
                    margin-bottom: 20px;
                    backdrop-filter: blur(8px);
                    position: relative;
                    user-select: none;
                    animation: audiusBorderGlow 12s ease-in-out infinite;
                }
                .audius-player-wrapper:hover {
                    animation: audiusBorderGlowHover 6s ease-in-out infinite;
                }
                .audius-cover {
                    width: 120px;
                    height: 120px;
                    border-radius: 16px;
                    object-fit: cover;
                    flex-shrink: 0;
                    background: var(--bg-input);
                    box-shadow: 0 8px 20px rgba(0,0,0,0.4);
                }
                .audius-cover-fallback {
                    width: 120px;
                    height: 120px;
                    border-radius: 16px;
                    background: var(--bg-input);
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 3rem;
                    color: var(--text-muted);
                    flex-shrink: 0;
                }
                .audius-controls {
                    flex: 1;
                    min-width: 250px;
                    display: flex;
                    flex-direction: column;
                    gap: 10px;
                }
                .audius-info {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    color: var(--text-secondary);
                    font-size: 0.9rem;
                }
                .audius-title-text {
                    font-weight: 600;
                    color: var(--text-primary);
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    max-width: 70%;
                }
                .audius-time-row {
                    display: flex;
                    align-items: center;
                    gap: 10px;
                }
                .audius-progress {
                    flex: 1;
                    height: 6px;
                    background: var(--border-color);
                    border-radius: 3px;
                    cursor: pointer;
                    position: relative;
                    overflow: visible;
                }
                .audius-progress-fill {
                    height: 100%;
                    background: var(--text-accent);
                    border-radius: 3px;
                    width: 0%;
                    transition: width 0.1s linear;
                    position: relative;
                }
                .audius-progress-thumb {
                    position: absolute;
                    right: -6px;
                    top: -4px;
                    width: 14px;
                    height: 14px;
                    background: white;
                    border-radius: 50%;
                    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
                    display: none;
                }
                .audius-progress:hover .audius-progress-thumb {
                    display: block;
                }
                .audius-time {
                    font-size: 0.8rem;
                    color: var(--text-muted);
                    white-space: nowrap;
                    min-width: 90px;
                    text-align: right;
                }
                .audius-actions {
                    display: flex;
                    align-items: center;
                    gap: 12px;
                    flex-wrap: wrap;
                }
                .audius-btn {
                    background: transparent;
                    border: none;
                    color: var(--text-secondary);
                    cursor: pointer;
                    font-size: 1.2rem;
                    padding: 6px 8px;
                    border-radius: 8px;
                    transition: all 0.2s;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                }
                .audius-btn:hover {
                    background: var(--btn-hover);
                    color: var(--text-primary);
                }
                .audius-btn.active {
                    color: var(--text-accent);
                }
                .audius-volume-slider {
                    width: 80px;
                    height: 4px;
                    -webkit-appearance: none;
                    appearance: none;
                    background: var(--border-color);
                    border-radius: 2px;
                    outline: none;
                    cursor: pointer;
                }
                .audius-volume-slider::-webkit-slider-thumb {
                    -webkit-appearance: none;
                    width: 14px;
                    height: 14px;
                    background: white;
                    border-radius: 50%;
                }
                .audius-speed-select {
                    background: var(--bg-input);
                    border: 1px solid var(--border-color);
                    color: var(--text-secondary);
                    padding: 2px 6px;
                    border-radius: 6px;
                    font-size: 0.8rem;
                    cursor: pointer;
                }
                /* 网站标识链接 */
                .audius-brand-link {
                    color: var(--text-muted);
                    text-decoration: none;
                    font-size: 0.75rem;
                    white-space: nowrap;
                    margin-left: auto;
                    padding-left: 8px;
                    border-left: 1px solid var(--border-color);
                    transition: color 0.2s;
                }
                .audius-brand-link:hover {
                    color: var(--text-accent);
                }
                /* 右键菜单 */
                .audius-context-menu {
                    display: none;
                    position: fixed;
                    background: var(--bg-card);
                    border: 1px solid var(--border-accent);
                    border-radius: 12px;
                    padding: 8px 0;
                    z-index: 99999;
                    min-width: 160px;
                    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
                    backdrop-filter: blur(8px);
                }
                .audius-context-menu-item {
                    padding: 8px 16px;
                    color: var(--text-secondary);
                    cursor: pointer;
                    font-size: 0.9rem;
                    display: flex;
                    align-items: center;
                    gap: 8px;
                    transition: background 0.15s;
                }
                .audius-context-menu-item:hover {
                    background: rgba(255,255,255,0.08);
                    color: white;
                }
.audius-source-link {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 0.85rem;
    padding: 2px 6px;
    border-radius: 6px;
    transition: all 0.2s;
    flex-shrink: 0;
}
.audius-source-link:hover {
    color: var(--text-accent);
    background: rgba(255,255,255,0.08);
}


        .music-detail-card { /* 可空，当前用内联 */ }
        .recommendation-grid a:hover { border-color: var(--text-accent) !important; }

/* ========== 去中心化电台 播放器专用样式 ========== */

/* 电台状态指示器 */
.radio-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}
.radio-status-badge.live {
    background: rgba(52, 211, 153, 0.15);
    color: #34d399;
    border: 1px solid rgba(52, 211, 153, 0.3);
}
.radio-status-badge.offline {
    background: rgba(148, 163, 184, 0.15);
    color: #94a3b8;
    border: 1px solid rgba(148, 163, 184, 0.3);
}

/* 电台播放器加载状态 */
.radio-loading-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--text-muted);
    border-top-color: var(--text-accent);
    border-radius: 50%;
    animation: radioSpin 0.8s linear infinite;
}
@keyframes radioSpin {
    to { transform: rotate(360deg); }
}

/* 电台播放器错误状态 */
.radio-error-icon {
    color: #f87171;
    font-size: 1.2rem;
}

/* 电台默认图标容器（用于播放器内无 favicon 时） */
.radio-default-icon {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #3b82f6, #8b5cf6);
    color: white;
    font-size: 1.8rem;
}

/* 电台播放器边框动画增强（与音乐播放器一致） */
.radio-player-wrapper {
    animation: audiusBorderGlow 12s ease-in-out infinite;
}
.radio-player-wrapper:hover {
    animation: audiusBorderGlowHover 6s ease-in-out infinite;
}

/* 电台卡片在落地页相关推荐中的悬停效果 */
#relatedRadioGrid a:hover {
    border-color: var(--text-accent) !important;
}

/* 电台播放器品牌链接文字截断 */
.radio-brand-link {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 0.75rem;
    white-space: nowrap;
    margin-left: auto;
    padding-left: 8px;
    border-left: 1px solid var(--border-color);
    transition: color 0.2s;
}
.radio-brand-link:hover {
    color: var(--text-accent);
}