/* ==========================================================================
   Réviser la conjugaison — exercice interactif
   S'appuie sur les jetons du site (design.css) : --couleur-lien (accent teal),
   --couleur-texte, --couleur-bordure. Titres en Fraunces, interface en Inter.
   ========================================================================== */

.conjugaison-page {
--quiz-accent: var(--couleur-lien);
--quiz-card: #ffffff;
--quiz-field: #ffffff;
--quiz-field-border: #dcdcd6;
--quiz-muted: #74736f;
--quiz-rule: #ece9e3;
--quiz-tint: color-mix(in srgb, var(--quiz-accent) 9%, transparent);
--quiz-tint-strong: color-mix(in srgb, var(--quiz-accent) 16%, transparent);
}

/* La carte vit dans le flux normal d'une page du site : c'est #corps qui
   fournit la largeur et le centrage, pas de plein écran ni de fond dédié. */

/* --- Carte ----------------------------------------------------------------- */

.conjugaison-quiz {
width: min(100%, 580px);
margin: 0 auto 3rem;
padding: 2.6rem 2.4rem 2.2rem;
border: 1px solid var(--quiz-rule);
border-radius: 16px;
background: var(--quiz-card);
box-shadow:
0 1px 2px rgba(28, 27, 25, 0.04),
0 18px 40px -24px rgba(28, 27, 25, 0.35);
}

/* Neutralise les styles globaux du site sur les <p> internes (justification,
   retrait de 4em…) : :where() a une spécificité nulle, donc les règles de
   composant qui suivent (et le compteur aligné à gauche) reprennent la main. */
.conjugaison-quiz :where(p) {
margin: 0;
padding: 0;
font-size: inherit;
text-align: center;
}

/* --- En-tête : le temps en cours, visible uniquement pendant l'exercice ---- */

.conjugaison-quiz__header {
display: none;
margin-bottom: 1.8rem;
text-align: center;
}

.conjugaison-quiz:has(#quiz-panel:not([hidden])) .conjugaison-quiz__header {
display: block;
}

.conjugaison-quiz__kicker {
margin: 0;
font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 0.74rem;
font-weight: 600;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--quiz-accent);
}

.conjugaison-quiz__header h2 {
margin: 0 auto;
color: #353535;
font-family: "Fraunces", Georgia, "Times New Roman", serif;
font-size: clamp(1.5rem, 4vw, 1.9rem);
font-weight: 500;
line-height: 1.12;
letter-spacing: -0.01em;
text-align: center;
}

.conjugaison-quiz__header h2::after {
content: "";
display: block;
width: 2.4em;
height: 3px;
margin: 0.5rem auto 0;
border-radius: 2px;
background: var(--quiz-accent);
}

/* Consigne affichée seulement sur l'écran de réglages. */
.conjugaison-quiz__lede {
max-width: 30rem;
margin: 0 auto 1.9rem;
color: var(--quiz-muted);
font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 0.98rem;
line-height: 1.55;
text-align: center;
}

.conjugaison-quiz:has(#quiz-setup[hidden]) .conjugaison-quiz__lede {
display: none;
}

/* --- Réglages -------------------------------------------------------------- */

.conjugaison-quiz__setup {
display: grid;
gap: 1.5rem;
}

.conjugaison-quiz__fields {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}

.conjugaison-quiz__controls {
display: grid;
gap: 0.5rem;
}

.conjugaison-quiz__controls label,
.conjugaison-quiz__controls--tense legend {
padding: 0;
font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--quiz-muted);
}

/* Champs select avec chevron maison + icône de gauche */
.conjugaison-quiz__select {
position: relative;
display: flex;
align-items: center;
}

.conjugaison-quiz__select > i {
position: absolute;
left: 0.95rem;
color: var(--quiz-accent);
font-size: 0.9rem;
pointer-events: none;
}

.conjugaison-quiz__select::after {
content: "";
position: absolute;
right: 1rem;
width: 0.5rem;
height: 0.5rem;
border-right: 2px solid var(--quiz-muted);
border-bottom: 2px solid var(--quiz-muted);
transform: translateY(-25%) rotate(45deg);
pointer-events: none;
}

.conjugaison-quiz select,
.conjugaison-quiz input[type="text"] {
width: 100%;
min-height: 3rem;
padding: 0.7rem 0.9rem;
border: 1px solid var(--quiz-field-border);
border-radius: 10px;
font: inherit;
color: var(--couleur-texte);
background: var(--quiz-field);
transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.conjugaison-quiz__select select {
appearance: none;
-webkit-appearance: none;
padding-left: 2.5rem;
padding-right: 2.4rem;
cursor: pointer;
}

.conjugaison-quiz select:focus,
.conjugaison-quiz input:focus {
outline: none;
border-color: var(--quiz-accent);
box-shadow: 0 0 0 3px var(--quiz-tint);
}

/* --- Pastilles de temps ---------------------------------------------------- */

.conjugaison-quiz__controls--tense {
margin: 0;
padding: 0;
border: 0;
min-inline-size: 0;
}

.conjugaison-quiz__controls--tense legend {
margin-bottom: 0.6rem;
}

.conjugaison-quiz__tense-list {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}

.conjugaison-quiz__tense-option {
display: inline-flex;
flex: 1 1 auto;
align-items: center;
justify-content: center;
min-height: 2.3rem;
padding: 0.4rem 0.85rem;
border: 1px solid var(--quiz-field-border);
border-radius: 999px;
font: inherit;
font-size: 0.86rem;
font-weight: 500;
line-height: 1.2;
color: #4a4a48;
background: var(--quiz-field);
cursor: pointer;
transition: color 0.18s ease, background 0.18s ease, border-color 0.18s ease, transform 0.12s ease;
}

.conjugaison-quiz__tense-option:hover,
.conjugaison-quiz__tense-option:focus-visible {
outline: none;
border-color: color-mix(in srgb, var(--quiz-accent) 45%, var(--quiz-field-border));
color: var(--quiz-accent);
background: var(--quiz-tint);
}

.conjugaison-quiz__tense-option:active {
transform: scale(0.95);
}

.conjugaison-quiz__tense-option[aria-pressed="true"] {
border-color: var(--quiz-accent);
color: var(--quiz-accent);
background: var(--quiz-tint-strong);
font-weight: 600;
}

/* --- Chrono ---------------------------------------------------------------- */

.conjugaison-quiz__timer-setup {
display: flex;
align-items: center;
justify-content: center;
gap: 0.9rem;
padding-top: 0.3rem;
color: var(--quiz-muted);
}

.conjugaison-quiz__toggle,
.conjugaison-quiz__duration,
.conjugaison-quiz__duration-control {
display: inline-flex;
align-items: center;
gap: 0.5rem;
}

.conjugaison-quiz__toggle {
cursor: pointer;
font-size: 0.92rem;
font-weight: 600;
}

.conjugaison-quiz__toggle i {
color: var(--quiz-accent);
}

.conjugaison-quiz__toggle input {
width: 1.05rem;
height: 1.05rem;
min-height: 0;
margin: 0;
accent-color: var(--quiz-accent);
cursor: pointer;
}

.conjugaison-quiz__duration {
font-size: 0.92rem;
font-weight: 500;
}

.conjugaison-quiz__duration input {
width: 4.4rem;
min-height: 2.3rem;
padding: 0.35rem 0.55rem;
text-align: right;
}

.conjugaison-quiz__duration input:disabled {
opacity: 0.5;
cursor: not-allowed;
}

/* --- Boutons --------------------------------------------------------------- */

.conjugaison-quiz__button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.55rem;
min-height: 3rem;
min-width: 8rem;
padding: 0.7rem 1.3rem;
border: 1px solid var(--quiz-accent);
border-radius: 10px;
font: inherit;
font-weight: 600;
color: #fff;
background: var(--quiz-accent);
cursor: pointer;
transition: background 0.18s ease, border-color 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
}

.conjugaison-quiz__button:hover,
.conjugaison-quiz__button:focus-visible {
outline: none;
background: color-mix(in srgb, var(--quiz-accent) 86%, #000);
border-color: color-mix(in srgb, var(--quiz-accent) 86%, #000);
box-shadow: 0 6px 18px -8px color-mix(in srgb, var(--quiz-accent) 70%, transparent);
}

.conjugaison-quiz__button:active {
transform: scale(0.97);
}

.conjugaison-quiz__button:disabled {
opacity: 0.6;
cursor: not-allowed;
box-shadow: none;
}

.conjugaison-quiz__button--start {
width: 100%;
margin-top: 0.3rem;
}

.conjugaison-quiz__button--start i {
transition: transform 0.2s ease;
}

.conjugaison-quiz__button--start:hover i {
transform: translateX(3px);
}

/* --- Panneau de jeu -------------------------------------------------------- */

/* Pas de filet pleine largeur : l'espace de l'en-tête suffit à séparer,
   et la barre de progression / le score servent de repère horizontal. */
.conjugaison-quiz__panel,
.conjugaison-quiz__result {
margin-top: 0;
}

.conjugaison-quiz__progress-row {
display: flex;
align-items: center;
gap: 1.1rem;
margin-bottom: 1.8rem;
}

.conjugaison-quiz__progress-main {
display: grid;
flex: 1;
min-width: 0;
gap: 0.55rem;
}

.conjugaison-quiz__counter {
margin: 0;
color: var(--quiz-muted);
font-size: 0.9rem;
font-weight: 600;
font-variant-numeric: tabular-nums;
letter-spacing: 0.02em;
text-align: left;
}

/* Minuteur circulaire qui se remplit, calé en haut à droite du panneau. */
.conjugaison-quiz__timer {
position: relative;
flex: 0 0 auto;
display: grid;
place-items: center;
width: 3.6rem;
height: 3.6rem;
}

.conjugaison-quiz__timer-ring {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}

.conjugaison-quiz__timer-track {
fill: none;
stroke: var(--quiz-rule);
stroke-width: 3;
}

.conjugaison-quiz__timer-fill {
fill: none;
stroke: var(--quiz-accent);
stroke-width: 3;
stroke-linecap: round;
stroke-dasharray: 100;
stroke-dashoffset: 100;
transform: rotate(-90deg);
transform-origin: 50% 50%;
transition: stroke-dashoffset 1s linear, stroke 0.3s ease;
}

.conjugaison-quiz__timer-text {
position: relative;
display: inline-flex;
align-items: baseline;
gap: 0.06rem;
color: var(--couleur-texte);
font-variant-numeric: tabular-nums;
line-height: 1;
}

.conjugaison-quiz__timer-text strong {
font-size: 1.1rem;
font-weight: 700;
}

.conjugaison-quiz__timer-text span {
font-size: 0.62rem;
color: var(--quiz-muted);
}

.conjugaison-quiz__timer.is-low .conjugaison-quiz__timer-fill {
stroke: #d6492f;
}

.conjugaison-quiz__timer.is-low .conjugaison-quiz__timer-text strong {
color: #b23a2b;
}

.conjugaison-quiz__progress {
height: 0.4rem;
overflow: hidden;
border-radius: 999px;
background: var(--quiz-rule);
}

.conjugaison-quiz__progress span {
display: block;
width: 0%;
height: 100%;
border-radius: inherit;
background: var(--quiz-accent);
transition: width 0.25s ease;
}

/* --- Question -------------------------------------------------------------- */

.conjugaison-quiz__prompt {
display: grid;
gap: 0.35rem;
margin: 0 0 1.6rem;
text-align: center;
}

.conjugaison-quiz__cue {
font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 0.72rem;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--quiz-muted);
}

.conjugaison-quiz__verb {
color: #2c2c2c;
font-family: "Fraunces", Georgia, "Times New Roman", serif;
font-size: clamp(2.1rem, 8vw, 2.9rem);
font-weight: 500;
font-style: italic;
line-height: 1.05;
letter-spacing: -0.01em;
}

.conjugaison-quiz__person {
display: block;
max-width: 26rem;
margin: 0.15rem auto 0;
color: var(--quiz-muted);
font-size: 1rem;
line-height: 1.4;
}

.conjugaison-quiz__prompt sup {
font-size: 0.7em;
line-height: 0;
}

/* --- Réponse --------------------------------------------------------------- */

.conjugaison-quiz__answer {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 0.7rem;
align-items: stretch;
}

.conjugaison-quiz__answer input {
min-height: 3.1rem;
font-size: 1.05rem;
}

.conjugaison-quiz__answer .conjugaison-quiz__button {
min-width: 6.5rem;
}

/* --- Retour (correct / faux) ----------------------------------------------- */

.conjugaison-quiz__feedback {
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
min-height: 2.6rem;
margin-top: 1.1rem;
padding: 0.75rem 1rem;
border-radius: 10px;
font-weight: 600;
text-align: center;
}

.conjugaison-quiz__feedback:empty {
min-height: 0;
padding: 0;
}

.conjugaison-quiz__feedback.is-correct {
color: #156c3c;
background: color-mix(in srgb, #2e9e63 14%, transparent);
}

.conjugaison-quiz__feedback.is-correct::before {
content: "\f00c";
font-family: "Font Awesome 6 Free";
font-weight: 900;
}

.conjugaison-quiz__feedback.is-wrong {
color: #b23a2b;
background: color-mix(in srgb, #d6492f 13%, transparent);
}

.conjugaison-quiz__feedback.is-wrong::before {
content: "\f00d";
font-family: "Font Awesome 6 Free";
font-weight: 900;
}

/* --- Bilan ----------------------------------------------------------------- */

.conjugaison-quiz__result {
display: grid;
gap: 1.6rem;
justify-items: center;
}

.conjugaison-quiz__result-head {
display: grid;
gap: 0.35rem;
justify-items: center;
text-align: center;
}

.conjugaison-quiz__result h2 {
margin: 0.4rem 0 0;
color: #353535;
font-family: "Fraunces", Georgia, "Times New Roman", serif;
font-size: 1.7rem;
font-weight: 500;
line-height: 1.1;
text-align: center;
}

#corps.conjugaison-page .conjugaison-quiz__result h2::after {
content: none;
display: none;
}

.conjugaison-quiz__result-score {
margin: 0.3rem 0 0;
color: var(--quiz-accent);
font-family: "Fraunces", Georgia, "Times New Roman", serif;
font-size: 2.8rem;
font-weight: 600;
line-height: 1;
letter-spacing: -0.01em;
font-variant-numeric: tabular-nums;
}

.conjugaison-quiz__result #result-message {
margin: 0.2rem 0 0;
padding: 0;
color: var(--quiz-muted);
text-align: center;
}

.conjugaison-quiz__mistakes {
display: grid;
gap: 0.9rem;
width: 100%;
text-align: left;
}

.conjugaison-quiz__mistakes h3 {
margin: 0;
color: #4a4a48;
font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
text-align: left;
}

.conjugaison-quiz__mistakes ul {
display: grid;
gap: 0.65rem;
margin: 0;
padding: 0;
list-style: none;
}

.conjugaison-quiz__mistakes li {
display: grid;
gap: 0.2rem;
padding: 0.8rem 0.95rem;
border: 1px solid var(--quiz-rule);
border-left: 3px solid color-mix(in srgb, #d6492f 55%, transparent);
border-radius: 8px;
background: #fbfaf8;
}

.conjugaison-quiz__mistakes strong {
color: #2c2c2c;
font-weight: 600;
}

.conjugaison-quiz__mistakes sup {
font-size: 0.7em;
line-height: 0;
}

.conjugaison-quiz__mistake-answer {
color: var(--quiz-accent);
font-weight: 600;
}

/* --- Responsive ------------------------------------------------------------ */

@media (max-width: 560px) {
.conjugaison-quiz {
padding: 1.8rem 1.4rem 1.6rem;
border-radius: 14px;
}

.conjugaison-quiz__fields {
grid-template-columns: 1fr;
}

.conjugaison-quiz__answer {
grid-template-columns: 1fr;
}

.conjugaison-quiz__answer .conjugaison-quiz__button {
width: 100%;
}

.conjugaison-quiz__timer-setup {
flex-wrap: wrap;
}
}

/* --- Mode sombre ----------------------------------------------------------- */

html[data-theme="dark"] .conjugaison-page {
--quiz-card: #121212;
--quiz-field: #0a0a0a;
--quiz-field-border: #333;
--quiz-muted: #9a9a96;
--quiz-rule: #2a2a2a;
}

html[data-theme="dark"] .conjugaison-quiz {
box-shadow: 0 18px 40px -26px rgba(0, 0, 0, 0.8);
}

html[data-theme="dark"] .conjugaison-quiz__header h1,
html[data-theme="dark"] .conjugaison-quiz__verb,
html[data-theme="dark"] .conjugaison-quiz__result h2 {
color: #f0f0ee;
}

html[data-theme="dark"] .conjugaison-quiz__mistakes strong {
color: #ededeb;
}

html[data-theme="dark"] .conjugaison-quiz select,
html[data-theme="dark"] .conjugaison-quiz input[type="text"] {
color: var(--couleur-texte);
}

html[data-theme="dark"] .conjugaison-quiz__tense-option {
color: #c4c4c0;
}

html[data-theme="dark"] .conjugaison-quiz__mistakes li {
background: #161616;
}

html[data-theme="dark"] .conjugaison-quiz__feedback.is-correct {
color: #8fe0b1;
}

html[data-theme="dark"] .conjugaison-quiz__feedback.is-wrong {
color: #ffab9f;
}

html[data-theme="dark"] .conjugaison-quiz__timer.is-low .conjugaison-quiz__timer-text strong {
color: #ffab9f;
}

@media (prefers-reduced-motion: reduce) {
.conjugaison-quiz__progress span,
.conjugaison-quiz__button,
.conjugaison-quiz__tense-option,
.conjugaison-quiz__button--start i,
.conjugaison-quiz__timer-fill {
transition: none;
}
}
