/**
 * ローディングアニメーション
 * 全テーマ共通のローディング関連スタイル
 */

/* 基本スピナー */
.loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #f3f3f3;
  border-top: 3px solid #d3533e;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ローディングプレースホルダー（タブコンテンツ用） */
.loading-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
  color: rgba(34,34,34,.5);
}
.loading-placeholder .loading-spinner {
  margin-bottom: 20px;
}

/* 遅延読み込み用ローダー */
.lazy-loading-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
}

/* appPage内のテキストローダー */
.appPage .loader {
  color: #aeada2;
  text-align: center;
  padding: 1rem 2rem;
  font-size: 1rem;
}

/* 閲覧者一覧モーダル用ローダー */
.latest-viewers-loader {
  display: flex;
  justify-content: center;
  padding: 20px 0;
}
.latest-viewers-loader .loading-spinner {
  width: 30px;
  height: 30px;
}
