/* classement.css — CSS partagé pour les pages classement.php des jeux */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: 'Inter', sans-serif;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  background: linear-gradient(135deg, #0f0c29, #302b63, #24243e);
  color: #e0e0e0;
  padding: 16px;
  padding-top: 60px;
}
.card {
  background: rgba(20, 20, 35, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 24px;
  padding: 32px 28px 28px;
  max-width: 600px;
  width: 100%;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
  text-align: center;
}
h1 {
  font-size: 1.8rem;
  font-weight: 800;
  background: linear-gradient(90deg, var(--color-light), var(--color-mid), var(--color-dark));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 24px;
}

/* Onglets de filtrage (difficulté, catégorie) */
.tabs { display: flex; gap: 6px; margin-bottom: 20px; justify-content: center; flex-wrap: wrap; }
.tab-btn {
  font-family: 'Inter', sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 8px 18px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.06);
  color: #cbd5e1;
  transition: all 0.2s;
}
.tab-btn:hover { background: rgba(255, 255, 255, 0.12); border-color: color-mix(in srgb, var(--color-mid) 30%, transparent); }
.tab-btn.active { background: color-mix(in srgb, var(--color-dark) 30%, transparent); border-color: color-mix(in srgb, var(--color-dark) 60%, transparent); color: var(--color-accent); }

/* Onglets principaux Solo / Défi */
.mode-tabs { display: flex; gap: 6px; margin-bottom: 20px; justify-content: center; }
.mode-tab {
  font-family: 'Inter', sans-serif; font-size: 0.85rem; font-weight: 700;
  padding: 10px 20px; border: 2px solid rgba(255, 255, 255, 0.12); border-radius: 12px;
  cursor: pointer; background: rgba(255, 255, 255, 0.04); color: #94a3b8; transition: all 0.2s;
}
.mode-tab:hover { background: rgba(255, 255, 255, 0.08); }
.mode-tab.active { background: color-mix(in srgb, var(--color-dark) 20%, transparent); border-color: color-mix(in srgb, var(--color-dark) 50%, transparent); color: var(--color-accent); }
.mode-section { display: none; }
.mode-section.visible { display: block; }

/* Leaderboard */
.leaderboard { text-align: left; }
.lb-header {
  display: flex;
  padding: 8px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.lb-rank { width: 40px; }
.lb-pseudo { flex: 1; }
.lb-temps { width: 90px; text-align: right; }
.lb-score { width: 90px; text-align: right; }
.lb-tentatives { width: 80px; text-align: right; }
.lb-coups { width: 80px; text-align: right; }
.lb-row {
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.85rem;
  transition: background 0.2s;
}
.lb-row:nth-child(even) { background: rgba(255, 255, 255, 0.03); }
.lb-row:hover { background: rgba(255, 255, 255, 0.08); }
.lb-row.top1 { background: rgba(255, 215, 0, 0.08); border: 1px solid rgba(255, 215, 0, 0.2); }
.lb-row.top2 { background: rgba(192, 192, 192, 0.06); }
.lb-row.top3 { background: rgba(205, 127, 50, 0.06); }
.lb-row .lb-rank { font-weight: 800; color: var(--color-light); }
.lb-row.top1 .lb-rank { color: #ffd700; }
.lb-row.top2 .lb-rank { color: #c0c0c0; }
.lb-row.top3 .lb-rank { color: #cd7f32; }
.lb-row .lb-pseudo { font-weight: 600; }
.lb-row .lb-temps { font-weight: 700; color: var(--color-mid); }
.lb-row .lb-score { font-weight: 700; color: var(--color-mid); }
.lb-row .lb-tentatives { font-weight: 700; color: #f59e0b; }
.lb-row .lb-coups { font-weight: 700; color: var(--color-mid); }
.no-data { font-size: 0.85rem; color: #64748b; font-style: italic; padding: 24px 0; }
.loading { color: #94a3b8; font-size: 0.85rem; padding: 24px 0; }

/* Navigation date (défi du jour) */
.date-nav { display: flex; justify-content: center; align-items: center; gap: 10px; margin-bottom: 16px; }
.date-btn {
  font-family: 'Inter', sans-serif; font-size: 1.1rem;
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px; color: var(--color-accent); width: 32px; height: 32px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: all 0.2s;
}
.date-btn:hover { background: rgba(255, 255, 255, 0.15); }
.date-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.date-affichee { font-size: 0.88rem; font-weight: 700; color: var(--color-accent); min-width: 180px; text-align: center; }
.date-input {
  font-family: 'Inter', sans-serif; font-size: 0.82rem; padding: 5px 10px;
  border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px;
  background: rgba(255, 255, 255, 0.08); color: #e2e8f0; cursor: pointer;
}

/* Podium défi */
.podium { display: flex; justify-content: center; gap: 14px; margin-bottom: 16px; }
.podium-item { text-align: center; padding: 14px; background: rgba(255, 255, 255, 0.06); border-radius: 12px; min-width: 90px; }
.podium-item:first-child { border: 1px solid rgba(255, 215, 0, 0.2); background: rgba(255, 215, 0, 0.05); }
.podium-rang { font-size: 1.4rem; margin-bottom: 4px; }
.podium-pseudo { font-size: 0.82rem; font-weight: 700; color: var(--color-accent); }
.podium-temps { font-size: 0.75rem; color: #94a3b8; margin-top: 2px; font-variant-numeric: tabular-nums; }
.podium-info { font-size: 0.7rem; color: #94a3b8; margin-top: 2px; }
.defi-liste { text-align: left; }
.defi-row {
  display: flex; align-items: center; padding: 8px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06); font-size: 0.85rem;
}
.defi-row .lb-rank { width: 36px; font-weight: 800; color: var(--color-light); }
.defi-row .lb-pseudo { flex: 1; font-weight: 600; }
.defi-row .lb-temps { width: 100px; text-align: right; font-weight: 700; color: var(--color-mid); font-variant-numeric: tabular-nums; }

.back-link { display: inline-block; margin-top: 20px; font-size: 0.85rem; color: var(--color-mid); text-decoration: none; font-weight: 600; }
.back-link:hover { color: var(--color-light); }
footer { font-size: 0.78rem; color: #64748b; margin-top: 16px; }
footer a { color: var(--color-mid); text-decoration: none; }
footer a:hover { color: var(--color-light); }
@media (max-width: 480px) {
  .card { padding: 24px 10px 20px; }
  .tabs { flex-wrap: wrap; }
  .mode-tabs { flex-wrap: wrap; }
  .podium { flex-direction: column; gap: 8px; }
  .podium-item { min-width: 0; }
  .lb-rank { width: 28px; }
  .lb-temps { width: 65px; font-size: 0.75rem; }
  .lb-score { width: 65px; font-size: 0.75rem; }
  .lb-coups { width: 50px; font-size: 0.75rem; }
  .lb-pseudo { font-size: 0.78rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lb-header { font-size: 0.68rem; }
  .date-nav { flex-wrap: wrap; gap: 6px; }
  .date-affichee { min-width: 0; font-size: 0.8rem; }
  .date-input { font-size: 0.75rem; }
}
