/* Quiz de Noël : styles propres à l'outil. */
.o-quiz-noel { min-width: 0; }
.o-quiz-noel [hidden] { display: none !important; }
.o-quiz-noel-reglages { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }

.o-quiz-noel-equipes { margin: 14px 0 0; padding: 12px 14px; border: 1px solid var(--bord); border-radius: var(--rayon-petit); min-width: 0; }
.o-quiz-noel-equipes legend { padding: 0 6px; font-weight: 700; }
.o-quiz-noel-equipes label { display: flex; flex-direction: column; gap: 4px; font-size: .88rem; color: var(--texte-2); }
.o-quiz-noel-nb { max-width: 200px; margin-bottom: 10px; }
.o-quiz-noel-noms { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px 14px; }
.o-quiz-noel-noms input { width: 100%; box-sizing: border-box; }

.o-quiz-noel-depart { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px 0 8px; text-align: center; }
.o-quiz-noel-depart p { margin: 0; }
.o-quiz-noel-info { font-size: .88rem; color: var(--texte-2); min-height: 1.3em; }

.o-quiz-noel-jeu, .o-quiz-noel-fin { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 16px 0 18px; border-top: 1px solid var(--bord); margin-top: 12px; text-align: center; }
.o-quiz-noel-barre { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: .92rem; color: var(--texte-2); }
.o-quiz-noel-barre strong { color: var(--texte); font-variant-numeric: tabular-nums; }
.o-quiz-noel-barre .presse strong { color: var(--erreur-texte); }
.o-quiz-noel-jauge { display: block; width: 100%; max-width: 560px; height: 6px; border-radius: 3px; background: var(--surface-2); overflow: hidden; }
.o-quiz-noel-jauge b { display: block; height: 100%; width: 0; background: var(--marque); transition: width .25s; }

.o-quiz-noel-tableau { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.o-quiz-noel-tableau li { display: flex; gap: 8px; align-items: baseline; padding: 4px 12px; border: 1px solid var(--bord); border-radius: 999px; font-size: .9rem; background: var(--surface); }
.o-quiz-noel-tableau li.actif { border-color: var(--marque); background: var(--marque); color: var(--sur-marque); }
.o-quiz-noel-tableau strong { font-variant-numeric: tabular-nums; }
.o-quiz-noel-tour { margin: 0; font-weight: 700; font-size: 1.05rem; }

.o-quiz-noel-etiquette { margin: 0; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: var(--texte-2); }
.o-quiz-noel-question { margin: 0; max-width: 640px; font-size: clamp(1.2rem, 4.2vw, 1.6rem); font-weight: 800; line-height: 1.25; color: var(--texte); overflow-wrap: anywhere; }
.o-quiz-noel-question:focus { outline: none; }

.o-quiz-noel-choix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; max-width: 600px; }
.atelier .o-quiz-noel-choix .btn { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 12px; font-size: 1rem; text-align: left; justify-content: flex-start; overflow-wrap: anywhere; }
.o-quiz-noel-touche { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--bord); border-radius: 6px; font-size: .8rem; color: var(--texte-2); }
.atelier .o-quiz-noel-choix .btn:disabled { opacity: 1; }
.atelier .o-quiz-noel-choix .btn.juste { background: var(--ok-fond); border-color: var(--ok-texte); color: var(--ok-texte); font-weight: 700; }
.atelier .o-quiz-noel-choix .btn.faux { background: var(--erreur-fond); border-color: var(--erreur-texte); color: var(--erreur-texte); text-decoration: line-through; }
.o-quiz-noel-choix .btn.juste::after { content: "✓"; margin-left: auto; }
.o-quiz-noel-choix .btn.faux::after { content: "✗"; margin-left: auto; }

.o-quiz-noel-retour { display: block; min-height: 1.5em; font-weight: 700; }
.o-quiz-noel-retour.ok { color: var(--ok-texte); }
.o-quiz-noel-retour.ko { color: var(--erreur-texte); }
.o-quiz-noel-explication { margin: 0; max-width: 600px; padding: 10px 14px; border-radius: var(--rayon-petit); background: var(--surface-2); font-size: .95rem; color: var(--texte); text-align: left; }
.o-quiz-noel-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.o-quiz-noel-actions-gauche { justify-content: flex-start; }

.o-quiz-noel-fin h2, .o-quiz-noel-memoire h2 { margin: 0; font-size: 1.25rem; }
.o-quiz-noel-fin h2:focus { outline: none; }
.o-quiz-noel-fin h3 { margin: 6px 0 0; font-size: 1.05rem; }
.o-quiz-noel-fin p { margin: 0; }
.o-quiz-noel-bilan { font-size: 1.3rem; font-weight: 800; }
.o-quiz-noel-classement { margin: 0; padding: 0; list-style: none; font-size: 1.05rem; }
.o-quiz-noel-classement li:first-child { font-weight: 700; }
.o-quiz-noel-record { font-weight: 600; color: var(--texte-2); }
.o-quiz-noel-erreurs { width: 100%; max-width: 640px; margin: 0; padding-left: 1.6em; text-align: left; }
.o-quiz-noel-erreurs li { padding: 8px 0; border-bottom: 1px solid var(--bord); }
.o-quiz-noel-erreurs p { margin: 2px 0; }
.o-quiz-noel-erreurs .q { font-weight: 700; }
.o-quiz-noel-erreurs .faux { color: var(--erreur-texte); text-decoration: line-through; }
.o-quiz-noel-erreurs .juste { color: var(--ok-texte); font-weight: 700; }
.o-quiz-noel-erreurs .expl { font-size: .9rem; color: var(--texte-2); }

.o-quiz-noel-memoire { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; margin-top: 12px; border-top: 1px solid var(--bord); }
.o-quiz-noel-memoire ul { margin: 0; padding-left: 1.2em; }
.o-quiz-noel-memoire p { margin: 0; color: var(--texte-2); }
.o-quiz-noel-vues:empty { display: none; }

.o-quiz-noel-impression { display: none; }

@media (max-width: 480px) {
  .o-quiz-noel-choix { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .o-quiz-noel-jauge b { transition: none; }
}

@media print {
  @page { size: A4; margin: 14mm 14mm 12mm; }
  body:has(.o-quiz-noel-impression) *:not(:has(.o-quiz-noel-impression)):not(.o-quiz-noel-impression):not(.o-quiz-noel-impression *) { display: none !important; }
  html:has(.o-quiz-noel-impression), body:has(.o-quiz-noel-impression), body:has(.o-quiz-noel-impression) *:has(.o-quiz-noel-impression) {
    display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: #fff !important;
    box-shadow: none !important; width: auto !important; max-width: none !important; min-height: 0 !important; height: auto !important;
    position: static !important; overflow: visible !important; color: #000 !important;
  }
  .o-quiz-noel .o-quiz-noel-impression { display: block !important; color: #000; font-family: var(--police); font-size: 10.5pt; line-height: 1.3; }
  .o-quiz-noel-impression .o-quiz-noel-feuille { display: block; break-after: page; page-break-after: always; }
  .o-quiz-noel-impression .o-quiz-noel-feuille:last-child { break-after: auto; page-break-after: auto; }
  .o-quiz-noel-impression h2 { margin: 0 0 3mm; font-size: 16pt; color: #000; }
  .o-quiz-noel-impression .o-quiz-noel-ligne { display: flex; justify-content: space-between; gap: 10mm; margin: 0 0 5mm; padding-bottom: 2mm; border-bottom: .3mm solid #000; color: #000; }
  .o-quiz-noel-impression .o-quiz-noel-liste { margin: 0; padding-left: 7mm; }
  .o-quiz-noel-impression .o-quiz-noel-liste > li { break-inside: avoid; page-break-inside: avoid; margin: 0 0 3.2mm; }
  .o-quiz-noel-impression .o-quiz-noel-liste > li::marker { font-weight: 700; }
  .o-quiz-noel-impression p { margin: 0; color: #000; }
  .o-quiz-noel-impression .q { font-weight: 700; }
  .o-quiz-noel-impression ul.c { display: grid; grid-template-columns: 1fr 1fr; gap: .6mm 6mm; margin: 1mm 0 0; padding: 0; list-style: none; }
  .o-quiz-noel-impression ul.c li::before { content: "☐ "; }
  .o-quiz-noel-impression .o-quiz-noel-liste-rep > li { margin-bottom: 2.4mm; }
  .o-quiz-noel-impression .e { font-size: 9pt; color: #333; }
}
