/**
 * Forme Q — question à choix multiple.
 *
 * Quatre propositions, une seule juste. Pensée pour le doigt d'abord : chaque
 * proposition est une cible d'au moins 48 px de haut, et c'est le <label> entier
 * qui est cliquable, pas le petit rond du bouton radio.
 *
 * Aucun JavaScript : ce sont des <input type="radio"> natifs, cachés, dont l'état
 * :checked pilote l'apparence du label. Le clavier fonctionne donc tout seul —
 * flèches pour changer de proposition, comme dans n'importe quel formulaire.
 *
 * Réutilisable pour toute question à choix : la polysémie, le sens figuré, la
 * nature d'un mot. Rien ici ne parle de dictionnaire.
 */

.question-qcm {
    background: #fff;
    border: 1px solid #e6e7e9;
    border-radius: .75rem;
    padding: .9rem 1rem;
    margin-bottom: .85rem;
}

.question-qcm .numero {
    font-size: .95rem;
    color: var(--jm-soft);
    text-transform: uppercase;
    letter-spacing: .04em;
}

/* Le mot sur lequel porte la question : c'est ce que l'œil doit trouver en
   premier, avant même de lire les propositions. */
.question-qcm .mot-cherche {
    font-size: 1.35rem;
    font-weight: 700;
    color: #212529;
    margin: .15rem 0 .75rem;
}

.question-qcm .propositions {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: .5rem;
}

/* Le radio est masqué SANS être retiré de l'arbre d'accessibilité.
   « width: 0; height: 0 » le faisait disparaître pour un lecteur d'écran : un
   élément de taille nulle n'y figure pas. Le motif 1 px + clip-path le garde
   annoncé (« bouton radio, 1 sur 4 ») et atteignable au clavier.
   Ne jamais remplacer par display:none ni visibility:hidden. */
.question-qcm .propositions input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    border: 0;
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}

/* Le radio étant en position absolue, il se placerait par rapport à un ancêtre
   lointain et le navigateur sauterait ailleurs en lui donnant le focus. */
.question-qcm .propositions { position: relative; }

.question-qcm .choix {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .5rem .75rem;
    border: 2px solid #dee2e6;
    border-radius: .6rem;
    background: #f8f9fa;
    cursor: pointer;
    text-align: center;
    font-size: 1.05rem;
    transition: background .12s, border-color .12s;
    -webkit-tap-highlight-color: transparent;
}

.question-qcm .choix:hover, .question-qcm .choix:active { border-color: #adb5bd; background: #f1f3f5; }

.question-qcm input[type="radio"]:checked + .choix {
    border-color: var(--notion, var(--jm-accent));
    background: var(--notion-lt, var(--jm-accent-lt));
    font-weight: 600;
}

/* Le focus clavier doit rester visible même quand la souris ne l'est pas. */
.question-qcm input[type="radio"]:focus-visible + .choix {
    outline: 2px solid var(--notion, var(--jm-accent));
    outline-offset: 2px;
}

/* ------------------------------------------------------------------ correction
   Trois états, et le troisième compte autant que les deux autres : la bonne
   réponse est montrée même quand l'élève ne l'a pas choisie. */

.question-qcm.juste { border-color: #bfe5c8; background: var(--jm-success-lt); }
.question-qcm.faux  { border-color: #f5cdb3; background: var(--jm-warn-lt); }

.question-qcm .choix.est-juste {
    border-color: var(--jm-success);
    background: var(--jm-success-lt);
    font-weight: 600;
}

.question-qcm .choix.est-choisi-faux {
    border-color: var(--jm-warn);
    background: var(--jm-warn-lt);
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.question-qcm .regle {
    margin-top: .6rem;
    font-size: .95rem;
    color: #495057;
}

.question-qcm .regle strong { color: #212529; }

@media (max-width: 480px) {
    .question-qcm .propositions { grid-template-columns: repeat(2, 1fr); }
    .question-qcm .choix { font-size: 1rem; }
}

/* Tablette (lot 4, 24/10/2026) : un point de rupture à 768 px, en plus de celui à 560 px. */
@media (max-width: 767.98px) {
    .question-qcm { padding: .8rem .85rem; }
}
