﻿/* ========== 鍏ㄥ眬閲嶇疆 ========== */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: #000000;
  color: #e0e0e0;
  font-size: 14px;
  min-height: 100vh;
  overflow-x: hidden;
}
.container { max-width: 500px; margin: 0 auto; min-height: 100vh; padding-bottom: 64px; }

/* ========== 鍔ㄧ敾 ========== */
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes progressShimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.fade-in { animation: fadeIn 0.3s ease; }

/* ========== 鍔犺浇 / 閿欒 / 绌虹姸鎬?========== */
.loading-container { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100px 0; }
.loading-spinner { width: 40px; height: 40px; border: 3px solid rgba(255,255,255,0.1); border-top-color: #667eea; border-radius: 50%; animation: spin 0.8s linear infinite; }
.loading-text { color: #888; font-size: 13px; margin-top: 16px; }
.error-container { text-align: center; padding: 80px 20px; }
.error-text { color: #ff6b6b; font-size: 14px; margin-bottom: 20px; }
.retry-btn { background: linear-gradient(135deg, #667eea, #764ba2); color: #fff; border: none; border-radius: 20px; padding: 10px 36px; font-size: 14px; cursor: pointer; }
.retry-btn:active { opacity: 0.8; }
.empty-container { text-align: center; padding: 80px 20px; }
.empty-icon { font-size: 48px; margin-bottom: 12px; opacity: 0.3; }
.empty-text { color: #666; font-size: 14px; }

/* ========== 婊氬姩鏉?========== */
::-webkit-scrollbar { width: 0; height: 0; }

/* ========== 浜壊涓婚 ========== */
