/* Polices hébergées sur le site (licence SIL OFL, voir polices/), jamais chargées depuis Google. */
@font-face { font-family: 'Lexend'; font-style: normal; font-weight: 400; font-display: swap; src: url('polices/lexend-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Lexend'; font-style: normal; font-weight: 700; font-display: swap; src: url('polices/lexend-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'OpenDyslexic'; font-style: normal; font-weight: 400; font-display: swap; src: url('polices/opendyslexic-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'OpenDyslexic'; font-style: normal; font-weight: 700; font-display: swap; src: url('polices/opendyslexic-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Andika'; font-style: normal; font-weight: 400; font-display: swap; src: url('polices/andika-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Andika'; font-style: normal; font-weight: 700; font-display: swap; src: url('polices/andika-latin-700-normal.woff2') format('woff2'); }

/* Maîtrise ! · espace de l'élève et page du référent.
 * Grandes zones à toucher (48 px), texte aéré, ni italique ni capitales
 * d'insistance ; réglages de lecture par variables. */

.mt-app {
	--mt-encre: #1B2238;
	--mt-doux: #4A5272;
	--mt-fond: #FBF7EE;
	--mt-carte: #FFFFFF;
	--mt-bord: #E6DFD0;
	--mt-accent: #14213D;
	--mt-jaune: #FFC93C;
	--mt-vert: #1F7A5C;
	--mt-vert-clair: #E3F2EC;
	--mt-orange-clair: #FFF1D6;
	--mt-police: 'Lexend', Arial, Helvetica, sans-serif;
	--mt-taille: 110%;
	--mt-interligne: 1.7;
	--mt-espacement: 0.03em;
	font-family: var(--mt-police);
	font-size: var(--mt-taille);
	line-height: var(--mt-interligne);
	letter-spacing: var(--mt-espacement);
	word-spacing: 0.08em;
	color: var(--mt-encre);
	background: var(--mt-fond);
	max-width: 900px;
	margin: 0 auto;
	padding: 16px;
	border-radius: 16px;
	box-sizing: border-box;
}
.mt-app[data-fond="blanc"] { --mt-fond: #FFFFFF; }
.mt-app[data-fond="bleu"] { --mt-fond: #EAF3FB; }
.mt-app[data-fond="sombre"] { --mt-fond: #1B2238; --mt-carte: #26304D; --mt-encre: #F4F1EA; --mt-doux: #C9D2E6; --mt-bord: #3A4668; --mt-vert-clair: #1F4D3E; --mt-orange-clair: #4D3F1F; }
.mt-app *, .mt-app *::before, .mt-app *::after { box-sizing: border-box; }
.mt-app em, .mt-app i { font-style: normal; }

.mt-entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.mt-logo { font-weight: 800; font-size: 1.5em; display: flex; align-items: center; gap: 6px; }
.mt-logo-pt { display: inline-flex; align-items: center; justify-content: center; width: 1.2em; height: 1.2em; border-radius: 50%; background: var(--mt-jaune); color: #14213D; font-size: 0.85em; }
.mt-nav { display: flex; flex-wrap: wrap; gap: 4px; }
.mt-titre { font-size: 1.6em; line-height: 1.3; margin: 8px 0; }
.mt-sous-titre { font-size: 1.05em; margin: 0 0 12px; }
.mt-doux { color: var(--mt-doux); }
.mt-progres { color: var(--mt-doux); font-size: 0.9em; }
.mt-pied { margin-top: 24px; text-align: center; }

.mt-cartes { display: flex; flex-direction: column; gap: 14px; }
.mt-carte { background: var(--mt-carte); border: 1px solid var(--mt-bord); border-radius: 16px; padding: 18px; margin: 0 0 14px; }
.mt-carte h2 { font-size: 1.25em; margin: 0 0 6px; }
.mt-carte-dictee { border: 3px solid #E2603F; }
.mt-carte-test { border: 3px solid var(--mt-jaune); }
.mt-fait { opacity: 0.85; }
.mt-fait h2::before { content: "✓ "; color: var(--mt-vert); }
.mt-regle-nom { font-size: 1.15em; font-weight: 700; }

.mt-btn { min-height: 48px; padding: 8px 18px; border-radius: 12px; border: 2px solid var(--mt-bord); background: var(--mt-carte); color: var(--mt-encre); font: inherit; font-weight: 700; cursor: pointer; }
.mt-btn:hover { border-color: var(--mt-accent); }
.mt-btn:focus-visible, .mt-app a:focus-visible, .mt-app input:focus-visible, .mt-app select:focus-visible, .mt-app textarea:focus-visible { outline: 3px solid #E2603F; outline-offset: 2px; }
.mt-btn-plein { background: var(--mt-accent); border-color: var(--mt-accent); color: #FFFFFF; }
.mt-app[data-fond="sombre"] .mt-btn-plein { background: var(--mt-jaune); border-color: var(--mt-jaune); color: #14213D; }
.mt-btn-lien { border-color: transparent; background: transparent; text-decoration: underline; font-weight: 600; }
.mt-btn-voix { font-weight: 600; }
.mt-btn-petit { min-height: 44px; padding: 6px 12px; font-weight: 600; }
.mt-btn[aria-pressed="true"] { background: var(--mt-accent); border-color: var(--mt-accent); color: #FFFFFF; }
.mt-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; align-items: center; }
.mt-choix { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.mt-choix-col { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.mt-btn-choix { font-size: 1.05em; }
.mt-btn-nsp { font-weight: 600; color: var(--mt-doux); }
.mt-radio { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.mt-radio input { width: 22px; height: 22px; }

.mt-exo-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 6px; }
.mt-enonce { font-size: 1.2em; line-height: 2; margin: 8px 0; }
.mt-enonce-petit { font-size: 1.05em; margin: 0; }
.mt-consigne { font-weight: 700; margin: 4px 0; }
.mt-trous select, .mt-trous input, .mt-saisie, .mt-saisie-dictee, .mt-app textarea, .mt-app select { font: inherit; color: var(--mt-encre); background: var(--mt-carte); border: 2px solid var(--mt-accent); border-radius: 10px; padding: 4px 10px; min-height: 44px; }
.mt-saisie, .mt-saisie-dictee, .mt-app textarea { width: 100%; font-size: 1.15em; line-height: 1.8; }
.mt-champ-pas { border-color: #E2603F !important; box-shadow: 0 0 0 2px #FDE6DD; }

.mt-mots { line-height: 2.4; }
.mt-mot { min-height: 44px; padding: 2px 8px; margin: 2px 1px; border-radius: 8px; border: 2px solid transparent; background: transparent; font: inherit; color: inherit; cursor: pointer; }
.mt-mot:hover { border-color: var(--mt-bord); }
.mt-mot-trouve { background: var(--mt-vert-clair); border-color: var(--mt-vert); color: inherit; font-weight: 700; }
.mt-mot-bon { border-style: dashed; border-color: var(--mt-bord); }
.mt-mot-indice { border-color: #E2603F; border-style: dashed; }
.mt-phrase-indice { border: 3px dashed #E2603F; }

.mt-retour { margin-top: 10px; padding: 0; }
.mt-retour:not(:empty) { padding: 12px 16px; border-radius: 12px; background: #EAF3FB; }
.mt-app[data-fond="sombre"] .mt-retour:not(:empty) { background: #2E3B5C; }
.mt-retour-juste:not(:empty) { background: var(--mt-vert-clair); }
.mt-retour-pas:not(:empty), .mt-retour-cherche:not(:empty) { background: var(--mt-orange-clair); }
.mt-retour p { margin: 4px 0; }

.mt-lecon .mt-bloc { margin: 12px 0; padding: 12px 16px; border-radius: 12px; background: var(--mt-fond); }
.mt-bloc h3 { margin: 0 0 4px; font-size: 1em; }
.mt-bloc p { margin: 4px 0; }
.mt-bloc-methode { border-left: 6px solid var(--mt-jaune); }
.mt-bloc-attention { border-left: 6px solid #E2603F; }
.mt-question-regle { font-weight: 700; font-size: 1.1em; }
.mt-truc { padding: 12px 16px; border-left: 6px solid var(--mt-jaune); background: var(--mt-fond); white-space: pre-line; }
.mt-rappel-lecon { margin-top: 12px; }
.mt-rappel-lecon summary, .mt-app details summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 700; }
.mt-memo { background: var(--mt-carte); border: 1px solid var(--mt-bord); border-radius: 12px; padding: 4px 14px; margin: 6px 0; }
.mt-felicitations { border: 3px solid var(--mt-vert); }

.mt-classer { border: 1px solid var(--mt-bord); border-radius: 12px; margin: 8px 0; padding: 8px 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.mt-classer legend { font-weight: 700; padding: 0 4px; }
.mt-reglages fieldset { border: 0; padding: 0; margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.mt-reglages legend { font-weight: 700; margin-bottom: 6px; width: 100%; }

.mt-niveau { font-size: 1.15em; margin: 18px 0 6px; }
.mt-liste-regles { list-style: none; margin: 0; padding: 0; }
.mt-liste-regles li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--mt-bord); }
.mt-etat { font-size: 0.85em; font-weight: 700; padding: 2px 10px; border-radius: 12px; background: var(--mt-fond); white-space: nowrap; }
.mt-etat-acquise { background: var(--mt-vert-clair); }
.mt-etat-revoir { background: var(--mt-orange-clair); }

.mt-corrige-ligne { border-bottom: 1px solid var(--mt-bord); padding: 8px 0; }
.mt-corrige-ligne p { margin: 2px 0; }

.mt-modal-fond { position: fixed; inset: 0; background: rgba(20, 33, 61, 0.55); display: flex; align-items: center; justify-content: center; padding: 16px; z-index: 99999; }
.mt-modal { background: #FFFFFF; color: #1B2238; border-radius: 16px; padding: 20px; max-width: 520px; width: 100%; font-family: Arial, Helvetica, sans-serif; font-size: 18px; line-height: 1.6; }
.mt-modal h2 { margin: 0 0 8px; font-size: 1.3em; }
.mt-modal .mt-btn { min-height: 48px; padding: 8px 18px; border-radius: 12px; border: 2px solid #E6DFD0; background: #FFFFFF; font: inherit; font-weight: 700; cursor: pointer; }
.mt-modal .mt-btn-plein { background: #14213D; border-color: #14213D; color: #FFFFFF; }
.mt-modal textarea { width: 100%; font: inherit; border: 2px solid #14213D; border-radius: 10px; padding: 6px 10px; }

.mt-connexion form p { display: flex; flex-direction: column; gap: 4px; }
.mt-connexion input[type=text], .mt-connexion input[type=password] { font: inherit; min-height: 48px; border: 2px solid var(--mt-accent); border-radius: 10px; padding: 6px 10px; }
.mt-connexion input[type=submit] { min-height: 48px; padding: 8px 20px; border-radius: 12px; border: 0; background: var(--mt-accent); color: #FFFFFF; font: inherit; font-weight: 700; cursor: pointer; }

/* Page du référent */
.mt-referent { max-width: 1100px; }
.mt-filtres a[aria-current="true"] { font-weight: 700; }
.mt-eleve { background: var(--mt-carte); border: 1px solid var(--mt-bord); border-radius: 12px; padding: 6px 14px; margin: 8px 0; }
.mt-eleve-corps { padding: 6px 0 12px; }
.mt-dictee-rapport table { border-collapse: collapse; width: 100%; font-size: 0.95em; }
.mt-dictee-rapport th, .mt-dictee-rapport td { border: 1px solid var(--mt-bord); padding: 4px 8px; text-align: left; }

@media (max-width: 600px) {
	.mt-app { padding: 12px; border-radius: 0; }
	.mt-titre { font-size: 1.35em; }
	.mt-enonce { font-size: 1.1em; }
}

/* Dictée : les signes de ponctuation, assez grands pour être touchés. */
.mt-ponct { min-width: 44px; font-weight: 700; }

/* L'enquête */
.mt-surtitre { color: #9A3412; font-weight: 700; margin: 4px 0 0; }
.mt-app[data-fond="sombre"] .mt-surtitre { color: var(--mt-jaune); }
.mt-carte-enquete { border: 3px solid #14213D; background: #14213D; color: #F7F3E8; }
.mt-carte-enquete .mt-btn-plein { background: var(--mt-jaune); border-color: var(--mt-jaune); color: #14213D; }
.mt-suspects { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 12px 0 16px; }
.mt-suspect { position: relative; background: var(--mt-carte); border: 1px solid var(--mt-bord); border-radius: 14px; padding: 12px; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; line-height: 1.35; }
.mt-suspect-hors { opacity: 0.75; }
.mt-cadre { width: 84px; height: 104px; border: 6px solid #C9A227; outline: 2px solid #8A6D12; border-radius: 4px; background: linear-gradient(170deg, #5B4A3A, #2E241C); margin-bottom: 4px; }
.mt-oeuvre { font-size: 0.8em; color: var(--mt-doux); }
.mt-tampon { position: absolute; top: 48px; left: 50%; transform: translateX(-50%) rotate(-12deg); border: 3px solid var(--mt-vert); color: var(--mt-vert); background: rgba(255, 255, 255, 0.92); font-weight: 800; font-size: 0.85em; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.mt-indice { background: #F7F3E8; color: #14213D; border-radius: 12px; padding: 10px 14px; margin: 8px 0; border-left: 6px solid var(--mt-jaune); }
.mt-indice p { margin: 2px 0; }
.mt-indice-autre { border-left-color: #8FA3C7; }
.mt-indice-source { font-size: 0.8em; font-weight: 700; color: #9A3412; }
.mt-a-venir { font-weight: 700; }
.mt-journal { border: 2px solid #14213D; background: #FFFDF7; color: #1B2238; font-family: Georgia, "Times New Roman", serif; }
.mt-chapitre p { font-size: 1.1em; }
.mt-cartel { display: block; background: #FFFFFF; color: #1B2238; border-left: 6px solid #C9A227; padding: 10px 14px; border-radius: 4px; }
.mt-mention { font-size: 0.85em !important; color: var(--mt-doux); }

/* Fiche imprimée : la leçon seule. */
@media print {
	body * { visibility: hidden; }
	.mt-app, .mt-app * { visibility: visible; }
	.mt-app { position: absolute; left: 0; top: 0; width: 100%; background: #FFFFFF !important; font-family: Arial, Helvetica, sans-serif; font-size: 14pt; }
	.mt-entete, .mt-actions, .mt-btn-voix, .mt-exo-tete { display: none !important; }
	.mt-carte { border: 1px solid #999999; break-inside: avoid; }
}
.mt-essai { background: #FFF3D6; color: #1B2238; border: 2px dashed #C2410C; border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; }
.mt-semaine { border: 3px solid var(--mt-jaune); }
.mt-nouvelles ul { margin: 0; padding-left: 1.2em; }
.mt-nouvelles li { margin: 4px 0; }
.mt-semaine { border: 3px solid var(--mt-jaune); }
.mt-nouvelles ul { margin: 0; padding-left: 1.2em; }
.mt-nouvelles li { margin: 4px 0; }

/* Évaluations : le seul chronomètre de la plateforme. */
.mt-chrono { position: sticky; top: 0; z-index: 10; background: var(--mt-carte); border: 2px solid var(--mt-accent); border-radius: 12px; padding: 6px 14px; font-weight: 700; }
.mt-chrono-fin { border-color: #E2603F; }
.mt-carte-eval { border: 3px solid var(--mt-accent); }
.mt-mot-choisi { background: #FFF1D6; border-color: #C2410C; font-weight: 700; }
.mt-cache { position: absolute; left: -9999px; }
.mt-qr svg { width: 220px; height: 220px; background: #FFFFFF; }
.mt-vignette { width: 120px; height: 120px; object-fit: cover; border: 2px solid var(--mt-accent); border-radius: 8px; }
.mt-correction input[type=number] { width: 5em; }
.mt-retour-ok { background: #E3F2EC; padding: 8px 12px; border-radius: 10px; }

/* Enquête : carrefours et observations. */
.mt-image-zones { position: relative; max-width: 640px; margin: 8px 0; }
.mt-image-zones svg { display: block; width: 100%; height: auto; border-radius: 10px; }
.mt-zone { position: absolute; background: transparent; border: 2px dashed transparent; border-radius: 8px; cursor: pointer; padding: 0; min-width: 24px; min-height: 24px; }
.mt-zone:hover, .mt-zone:focus-visible { border-color: var(--mt-accent); outline: none; }
.mt-zone-trouvee { border: 3px solid #2F8F5B; background: rgba(47,143,91,0.12); }
.mt-indice-carnet { background: #FFF1D6; border-radius: 10px; padding: 8px 12px; margin: 10px 0; }

/* Jeux : pont des mots et memory. */
.mt-planches { display: flex; gap: 6px; margin: 10px 0 14px; padding: 10px; background: #CFE3F2; border-radius: 12px; }
.mt-planche { flex: 1; height: 26px; border: 2px dashed #8AA6BD; border-radius: 6px; }
.mt-planche-posee { background: #A9744F; border: 2px solid #6E4A30; }
.mt-message-duo { background: #EEF2FF; border-radius: 10px; padding: 6px 12px; }
.mt-memory { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 12px; }
.mt-mcarte { min-height: 110px; border: 2px solid var(--mt-accent); border-radius: 12px; background: #14213D; color: #FFFFFF; font: inherit; font-size: 1.4em; cursor: pointer; padding: 8px; }
.mt-mcarte-ouverte { background: #FFFFFF; color: #1B2238; font-size: 0.9em; text-align: left; }
.mt-mcarte-trouvee { background: #E3F2EC; color: #1B2238; border-color: #2F8F5B; font-size: 0.9em; text-align: left; }

/* Défis de l'école. */
.mt-carte-defi { border: 3px solid #2F8F5B; }
.mt-defi-ligne { display: grid; grid-template-columns: 8em 1fr 4em; align-items: center; gap: 10px; margin: 6px 0; }
.mt-defi-barre { height: 16px; background: #E6EEE9; border-radius: 8px; overflow: hidden; }
.mt-defi-barre > span { display: block; height: 100%; background: #2F8F5B; }

/* ===================== 0.4.1 : revue design et accessibilité ===================== */

/* Contours lisibles (au moins 3:1) ; focus plus contrasté. */
.mt-app { --mt-bord-btn: #8A8170; }
.mt-btn { border-color: var(--mt-bord-btn); }
.mt-btn-lien { border-color: transparent; }
.mt-btn:focus-visible, .mt-app a:focus-visible, .mt-app input:focus-visible, .mt-app select:focus-visible, .mt-app textarea:focus-visible, .mt-app summary:focus-visible { outline: 3px solid #C2410C; outline-offset: 2px; box-shadow: 0 0 0 5px #FFFFFF; }
.mt-titre:focus { outline: none; }
.mt-app[data-fond="sombre"] { --mt-accent: #FFC93C; --mt-bord: #7D89AD; --mt-bord-btn: #9AA6C8; }
.mt-app[data-fond="sombre"] .mt-btn[aria-pressed="true"] { color: #14213D; }
.mt-app[data-fond="sombre"] .mt-carte-enquete { border-color: #FFC93C; }

/* Les « details » montrent qu'ils s'ouvrent. */
.mt-app details > summary { display: list-item; list-style: none; }
.mt-app details > summary::-webkit-details-marker { display: none; }
.mt-app details > summary::before { content: "▸ "; }
.mt-app details[open] > summary::before { content: "▾ "; }
.mt-referent details.mt-eleve > summary { display: list-item; }

/* Liens hors du texte : cible confortable. */
.mt-pied a, .mt-app li > a, .mt-app a.mt-btn { display: inline-flex; align-items: center; min-height: 44px; }
a.mt-btn { text-decoration: none; }

/* Navigation : écran actif ; sur téléphone, une grille compacte. */
.mt-nav-ici { background: var(--mt-vert-clair); border-radius: 10px; text-decoration: none; }
.mt-nav { font-size: min(1em, 20px); }
.mt-pied-signaler { margin-top: 24px; text-align: center; }
.mt-pied-signaler .mt-btn-lien { font-weight: 500; color: var(--mt-doux); }

/* Frise de la séance. */
.mt-frise { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 4px 0 14px; }
.mt-frise li { display: flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px; border: 2px solid var(--mt-bord); background: var(--mt-carte); }
.mt-frise-num { display: inline-flex; align-items: center; justify-content: center; width: 1.8em; height: 1.8em; border-radius: 50%; background: var(--mt-fond); font-weight: 700; }
.mt-frise-ici { border-color: var(--mt-accent); font-weight: 700; }
.mt-frise-ici .mt-frise-num { background: var(--mt-accent); color: #FFFFFF; }
.mt-app[data-fond="sombre"] .mt-frise-ici .mt-frise-num { color: #14213D; }
.mt-frise-fait .mt-frise-num { background: var(--mt-vert-clair); color: var(--mt-vert); }
.mt-carte-enquete { background: var(--mt-carte); color: var(--mt-encre); border: 2px solid var(--mt-bord); border-left: 8px solid var(--mt-jaune); }

/* Exercices : retour lisible sans la couleur seule. */
.mt-ligne-etat { font-weight: 700; margin-left: 6px; }
.mt-champ-pas { border-width: 3px !important; }
.mt-champ-ok { border-color: var(--mt-vert) !important; background: var(--mt-vert-clair) !important; }
.mt-champ-montre { border-color: var(--mt-vert) !important; }
.mt-choix-ecarte { text-decoration: line-through; opacity: 0.7; }
.mt-mots .mt-mot { padding: 2px 4px; margin: 0; }
.mt-mot-bon { border: 2px dotted #4A5272; }
.mt-mot-corrige { background: var(--mt-vert-clair); color: inherit; }
.mt-bloc h3 { font-weight: 700; font-size: 1.05em; }

/* Voix en cours. */
.mt-voix-en-cours { background: var(--mt-orange-clair); }

/* Évaluation : chronomètre toujours visible. */
.mt-app > .mt-chrono { position: sticky; top: 8px; z-index: 20; display: inline-block; margin-bottom: 6px; }
.admin-bar .mt-app > .mt-chrono { top: 40px; }
.mt-chrono-alerte:not(:empty) { font-weight: 700; padding: 8px 12px; border-radius: 10px; background: var(--mt-orange-clair); }
.mt-cache { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Lettres et documents dans les chapitres. */
.mt-lettre { font-family: Georgia, 'Times New Roman', serif; background: #FFF8E7; color: #2B2B2B; border-left: 6px solid #C2A05A; padding: 10px 16px; margin: 0; }
.mt-lettre + .mt-lettre { padding-top: 0; }
.mt-pages-nav { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 12px; }

/* Observation : repères visibles et cibles de 44 px. */
.mt-zone { border: 2px dashed rgba(20, 33, 61, 0.35); min-width: 44px; min-height: 44px; }
.mt-zones-liste { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

/* Réglages : aperçu. */
.mt-apercu { font-size: 1.15em; padding: 14px 16px; border: 2px dashed var(--mt-bord); border-radius: 12px; background: var(--mt-carte); }

/* Jeux : memory en grille, case de disponibilité confortable. */
.mt-memory { grid-template-columns: repeat(4, 1fr); }
.mt-mcarte { min-height: 90px; font-size: 1.2em; hyphens: auto; }
.mt-mcarte-ouverte, .mt-mcarte-trouvee { font-size: 0.85em; }
#mt-dispo { width: 24px; height: 24px; vertical-align: middle; }
.mt-tampon { transform: translateX(-50%) rotate(-4deg); }

/* Référent : champs confortables, rien ne déborde. */
.mt-correction input[type=number] { min-height: 44px; width: 5em; font: inherit; border: 2px solid var(--mt-accent); border-radius: 10px; padding: 4px 8px; }
.mt-referent input[type=text], .mt-referent textarea, .mt-referent select { max-width: 100%; box-sizing: border-box; }
.mt-referent table, .mt-dictee-rapport { display: block; overflow-x: auto; }
.mt-referent { max-width: 1100px; }

/* Thème : pas de double titre ni de bouton flottant sur les pages de Maîtrise !. */
.mt-page .wp-block-post-title, .mt-page .entry-title, .mt-page .page-title { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.mt-page .sticky-bottom { display: none !important; }

/* Téléphone : moins de marges empilées, rien ne déborde. */
@media (max-width: 600px) {
	.mt-app { padding: 8px; border-radius: 0; }
	.mt-carte { padding: 12px; }
	.mt-lecon .mt-bloc { padding: 8px 10px; }
	.mt-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; width: 100%; }
	.mt-nav .mt-btn { min-height: 44px; padding: 6px 8px; font-size: 0.9em; text-align: left; }
	.mt-liste-regles li { flex-wrap: wrap; }
	.mt-etat { white-space: normal; }
	.mt-app select { max-width: 100%; }
	.mt-btn-lien { text-align: left; }
	.mt-memory { grid-template-columns: repeat(3, 1fr); }
	.mt-mcarte { min-height: 80px; font-size: 1em; padding: 4px; }
	.mt-classer .mt-btn { flex: 1 1 30%; font-size: 0.9em; }
	.mt-defi-ligne { grid-template-columns: 1fr auto; }
	.mt-defi-ligne > .mt-defi-barre { grid-column: 1 / -1; grid-row: 2; }
	.mt-observation .mt-image-zones { margin-inline: -8px; }
}
@media (prefers-reduced-motion: reduce) { .mt-app * { scroll-behavior: auto !important; transition: none !important; } }
.mt-cadre { display: flex; align-items: center; justify-content: center; }
.mt-initiales { color: #F4E3B5; font-weight: 800; font-size: 1.6em; letter-spacing: 0.05em; }
@media (max-width: 600px) { .mt-suspects { grid-template-columns: repeat(2, minmax(130px, 1fr)); } .mt-cadre { width: 60px; height: 74px; } }
/* Les mots d'une phrase restent une phrase : pas de cadre tant qu'on n'y touche pas. */
.mt-btn.mt-mot { border-color: transparent; min-height: 44px; }
.mt-btn.mt-mot:hover { border-color: var(--mt-bord-btn); }
.mt-btn.mt-mot.mt-mot-bon { border: 2px dotted #4A5272; }
.mt-btn.mt-mot.mt-mot-trouve, .mt-btn.mt-mot.mt-mot-choisi { border-color: var(--mt-vert); }
.mt-btn.mt-mot.mt-mot-indice { border: 2px dashed #C2410C; }
.mt-btn.mt-mot.mt-mot-choisi { border-color: #C2410C; }
.mt-btn.mt-mot.mt-ponct { padding: 2px 2px; }
.mt-groupe { white-space: nowrap; display: inline-block; }
.mt-suspect { overflow-wrap: anywhere; min-width: 0; }
.mt-tampon { white-space: normal; max-width: 100%; text-align: center; }
.mt-suspects { max-width: 100%; }
