/* 全局基础设置 */
[v-cloak] {
    display: none !important;
}
body { background-color: #0f172a; color: #f8fafc; font-family: 'Inter', system-ui, sans-serif; }

/* 隐藏滚动条但允许滚动 */
.hide-scroll::-webkit-scrollbar { display: none; }
.hide-scroll { -ms-overflow-style: none; scrollbar-width: none; }

/* 文本截断 */
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Vue 过渡动画 */
.fade-enter-active, .fade-leave-active { transition: opacity 0.3s ease; }
.fade-enter-from, .fade-leave-to { opacity: 0; }

.dropdown-enter-active, .dropdown-leave-active { transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1); }
.dropdown-enter-from, .dropdown-leave-to { opacity: 0; transform: translateY(-10px) scale(0.95); }

.slide-enter-active, .slide-leave-active { transition: opacity 1s ease-in-out; position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.slide-enter-from, .slide-leave-to { opacity: 0; }

/* 移动端菜单过渡 */
.mobile-menu-enter-active, .mobile-menu-leave-active { transition: transform 0.3s ease-in-out; }
.mobile-menu-enter-from, .mobile-menu-leave-to { transform: translateX(100%); }

/* 播放按钮脉冲动画 */
@keyframes pulse-ring { 
    0% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.7); } 
    70% { box-shadow: 0 0 0 15px rgba(99, 102, 241, 0); } 
    100% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0); } 
}
.play-btn-pulse:hover { animation: pulse-ring 1.5s infinite; }

/* Admin 专用样式 */
.admin-input { @apply w-full border border-slate-200 rounded-lg px-4 py-2.5 outline-none focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 transition text-sm text-slate-700 bg-slate-50; }
.admin-label { @apply block text-xs font-bold text-slate-500 uppercase tracking-wider mb-1.5; }

/* Toast 样式 */
.toast-container { position: fixed; top: 20px; right: 20px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
.toast { pointer-events: auto; padding: 12px 20px; border-radius: 12px; color: white; font-size: 14px; font-weight: 600; display: flex; items-center; gap: 8px; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); animation: slideIn 0.3s ease-out forwards; }
.toast-success { background-color: #10b981; }
.toast-error { background-color: #f43f5e; }
@keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* --- DPlayer Logo 自适应调整 --- */
.dplayer-logo img {
    width: 15% !important;       
    max-width: 200px !important; 
    min-width: 80px !important;  
    height: auto !important;     
}
