/* 加载动画 */
.loading-spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  border-top-color: #c846c2;
  animation: spin 1s ease-in-out infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.loading-dots {
  display: inline-block;
}

.loading-dots::after {
  content: '';
  animation: dots 1.5s steps(4, end) infinite;
}

@keyframes dots {
  0%, 20% { content: ''; }
  40% { content: '.'; }
  60% { content: '..'; }
  80%, 100% { content: '...'; }
}

/* 骨架屏 */
.skeleton {
  background: linear-gradient(90deg, 
    rgba(255,255,255,0.1) 25%, 
    rgba(255,255,255,0.2) 50%, 
    rgba(255,255,255,0.1) 75%);
  background-size: 200% 100%;
  animation: loading 1.5s infinite;
}

@keyframes loading {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* 查询更多按钮禁用状态 */
.btn:disabled {
  background: rgba(34, 197, 94, 0.3);
  color: rgba(34, 197, 94, 0.7);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* 减少动画模式支持 */
@media (prefers-reduced-motion: reduce) {
  .table-row {
    animation: none;
  }
  
  .title-glow {
    animation: none;
  }
  
  .loading-spinner {
    animation: none;
  }
  
  .pulse {
    animation: none;
  }
}