/* ===== pages.css — 跨頁面共用組件 ===== */
/* 從 57 個 HTML 的 <style> 區塊中提取最常重複的 5 個模式 */

/* ── Page Header（28 頁使用）───────────────────────────────────── */
.page-header { text-align: center; padding: 2rem 0 1.5rem; }
.page-header .logo { font-size: 3rem; margin-bottom: .4rem; }
.page-header h1 .subj-ico,
.site-header h1 .subj-ico {
  display: inline-block;
  width: 1.2em; height: 1.2em;
  vertical-align: -.22em;
  margin-right: .5rem;
}
.page-header h1 { font-size: 1.8rem; font-weight: 700; color: var(--accent); }
.page-header .subtitle { color: var(--text-secondary); font-size: .9rem; margin-top: .25rem; }

/* ── Section Card（8 頁使用）───────────────────────────────────── */
.sec-card {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow);
  margin-bottom: 1.25rem;
}
.sec-title {
  font-size: 1rem; font-weight: 700; color: var(--text-primary);
  margin-bottom: 1rem; display: flex; align-items: center; gap: .4rem;
}

/* ── Year Grid（9 頁使用）──────────────────────────────────────── */
.year-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; }
.year-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: .75rem .25rem; background: var(--bg-card2); border: 1.5px solid var(--border);
  border-radius: var(--radius-sm); text-decoration: none; cursor: pointer;
  transition: all var(--transition);
}
.year-btn:hover { border-color: var(--accent); background: var(--accent-light); }
.year-btn.predict { border-color: #a855f7; background: rgba(168,85,247,.06); }
.year-btn.done { opacity: .6; }
.year-btn.active { border-color: var(--accent); background: var(--accent-light); }
.year-num { font-size: 1.2rem; font-weight: 700; color: var(--accent); }
.year-label { font-size: .7rem; color: var(--text-muted); }

/* ── Difficulty Grid（8 頁使用）─────────────────────────────────── */
.diff-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: .6rem; }
.diff-btn {
  display: flex; flex-direction: column; align-items: center; padding: .65rem .25rem;
  background: var(--bg-card2); border: 1.5px solid var(--border);
  border-radius: var(--radius-sm); text-decoration: none; cursor: pointer;
  transition: all var(--transition);
}
.diff-btn:hover { border-color: var(--accent); }
.diff-btn.active { border-color: var(--accent); background: var(--accent-light); }
.diff-emoji { font-size: 1.3rem; }
.diff-name { font-size: .78rem; font-weight: 600; color: var(--text-secondary); margin-top: .15rem; }

/* ── Stats Row（11 頁使用）─────────────────────────────────────── */
.stats-row {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem;
  margin-bottom: 1.75rem;
}
.stat-box {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: .75rem .5rem; text-align: center;
}
.stat-num { font-size: 1.4rem; font-weight: 700; color: var(--accent); }
.stat-label { font-size: .72rem; color: var(--text-muted); margin-top: 2px; }

/* ── Nav Bar / Back Link ───────────────────────────────────────── */
.back-link {
  display: inline-flex; align-items: center; gap: .3rem;
  color: var(--text-secondary); text-decoration: none; font-size: .85rem;
  margin-bottom: 1rem;
}
.back-link:hover { color: var(--accent); }

/* ── Responsive ────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .page-header { padding: 1.5rem 0 1rem; }
  .page-header .logo { font-size: 2.5rem; }
  .page-header h1 { font-size: 1.4rem; }
  .sec-card { padding: 1.15rem; }
  .year-grid { grid-template-columns: repeat(3, 1fr); }
  .diff-grid { grid-template-columns: repeat(3, 1fr); }
  .stats-row { grid-template-columns: repeat(2, 1fr); gap: .5rem; }
  .stat-num { font-size: 1.2rem; }
}

@media (max-width: 380px) {
  .diff-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 768px) {
  .stats-row { gap: 1rem; }
}
