/* ============================================================
   フラッシュカード アプリ共通スタイル
   ============================================================ */

/* ----------------------------------------------------------
   デザイントークン（CSS カスタムプロパティ）
   ---------------------------------------------------------- */
:root {
  /* カラー */
  --color-brand:           #1e3a5f;
  --color-primary:         #4361ee;
  --color-primary-hover:   #3451d1;
  --color-success:         #22c55e;
  --color-warning:         #f59e0b;
  --color-danger:          #ef4444;

  --color-bg:              #f5f7fa;
  --color-surface:         #ffffff;
  --color-quiz-card-bg:    #f0f4ff;
  --color-category-bg:     #f0f4ff;

  --color-text-primary:    #1a1a2e;
  --color-text-secondary:  #6b7280;
  --color-text-on-brand:   #ffffff;

  /* シャドウ */
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.10), 0 1px 4px rgba(0, 0, 0, 0.06);

  /* 角丸 */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;

  /* フォントサイズ */
  --text-xs:   0.75rem;
  --text-sm:   0.85rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
}

/* ----------------------------------------------------------
   ページ基盤
   ---------------------------------------------------------- */
body {
  background-color: var(--color-bg);
  color: var(--color-text-primary);
}

/* ----------------------------------------------------------
   ナビバー
   ---------------------------------------------------------- */
.navbar.navbar-app {
  background-color: var(--color-brand) !important;
}

.user-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-text-on-brand);
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  text-decoration: none;
}

/* ----------------------------------------------------------
   共通カードスタイル
   ---------------------------------------------------------- */

/* クイズカード（index.html / list_collections.html 共通） */
.quiz-card {
  background-color: var(--color-quiz-card-bg);
  border: none;
  border-radius: var(--radius-sm);
  padding: 12px;
  margin-bottom: 10px;
  box-shadow: var(--shadow-md);
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}
.quiz-card:hover {
  transform: translateY(-2px);
}
.quiz-card h5 {
  margin-bottom: 4px;
  font-size: var(--text-lg);
  font-weight: 600;
  color: var(--color-text-primary);
}
.quiz-card p {
  margin-bottom: 4px;
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}

/* クイズメタ情報（問題数・種別・順序） */
.quiz-details {
  display: flex;
  gap: 10px;
}
.quiz-details span {
  display: flex;
  align-items: center;
  font-size: var(--text-sm);
  color: var(--color-text-secondary);
}
.quiz-details span i {
  margin-right: 4px;
}

/* カテゴリ名バッジ（トップ・クイズ一覧共通） */
.category-name {
  font-size: var(--text-xs);
  color: var(--color-primary);
  font-weight: 600;
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* カテゴリアコーディオンヘッダー（list_collections.html） */
.category {
  background-color: var(--color-surface);
  border: none;
  border-radius: var(--radius-md);
  padding: 14px 16px;
  margin-bottom: 8px;
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  color: var(--color-text-primary);
}
.category .bi-chevron-down {
  font-size: 1.2rem;
  transition: transform 0.3s;
  color: var(--color-text-secondary);
}
/* 展開時（aria-expanded="true"）に chevron を回転 */
.category[aria-expanded="true"] .bi-chevron-down {
  transform: rotate(180deg);
}

/* ----------------------------------------------------------
   スコア色（回答履歴・セッション詳細共通）
   ---------------------------------------------------------- */
.score-high { color: var(--color-success); font-weight: 600; }
.score-mid  { color: var(--color-warning); font-weight: 600; }
.score-low  { color: var(--color-danger);  font-weight: 600; }

/* ----------------------------------------------------------
   問題カード（view_session.html）
   ---------------------------------------------------------- */
.question-card-correct {
  border-left: 4px solid var(--color-success);
}
.question-card-incorrect {
  border-left: 4px solid var(--color-danger);
}

/* ----------------------------------------------------------
   ボトムナビゲーション（スマホ専用）
   ---------------------------------------------------------- */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: calc(56px + env(safe-area-inset-bottom));
  background-color: var(--color-surface);
  border-top: 1px solid #e5e7eb;
  display: flex;
  z-index: 1030;
  padding-bottom: env(safe-area-inset-bottom);
}

.bottom-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: var(--color-text-secondary);
  font-size: var(--text-xs);
  gap: 2px;
  transition: color 0.15s;
  -webkit-tap-highlight-color: transparent;
}

.bottom-nav-item i {
  font-size: 1.4rem;
  line-height: 1;
}

.bottom-nav-item.active {
  color: var(--color-primary);
}

.bottom-nav-item:hover {
  color: var(--color-primary);
}

/* スマホ表示時：ボトムナビの高さ分だけコンテンツが隠れないよう余白を追加 */
@media (max-width: 991px) {
  body {
    padding-bottom: calc(56px + env(safe-area-inset-bottom));
  }
}
