/* =========================================================================
   Onglet Remplacements : fiches, diaporamas plein écran, bibliothèque, plans de travail.
   Toutes les classes sont préfixées par « rp- ».
   Diapos : les tailles dépendent de --u (1 % de la largeur utile) et de --echelle
   (réduite automatiquement quand le contenu déborde) ; --t = --u × --echelle.
   Impressions (cahier journal, mot, plans de travail) : noir et blanc, sans fond.
   ========================================================================= */

/* ---------- Mise en page de l'onglet ---------- */
.rp-tete { margin-bottom: 6px; }
.rp-tete .entete-page { margin-bottom: 10px; }
.rp-sous-onglets { margin-bottom: 16px; }
.rp-h2 { margin: 22px 0 10px; font-size: 1.25rem; }
.rp-grille { --min: 280px; }
.rp-fil { display: flex; gap: 6px; flex-wrap: wrap; margin: -6px 0 6px; }
.rp-h1-date { display: block; margin-top: 4px; font-family: var(--police); font-style: normal; font-size: .95rem; font-weight: 500; color: var(--texte-doux); }
.rp-pre { white-space: pre-line; }
.rp-mono { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace !important; letter-spacing: .18em; }

.rp-carte { display: flex; flex-direction: column; gap: 10px; }
.rp-carte h3 { margin: 0; }
.rp-carte-pied { margin-top: auto; padding-top: 4px; }
.rp-carte-fiche { cursor: pointer; border-top: 4px solid var(--rose); }
.rp-carte-date { font-size: .82rem; font-weight: 600; color: var(--rose-fonce); }
.rp-carte-apercu { cursor: pointer; }
.rp-pastilles { gap: 6px; }

.rp-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.rp-stat { display: flex; align-items: baseline; gap: 8px; padding: 8px 16px; background: var(--surface); border: 1px solid var(--ligne); border-radius: var(--rayon); }
.rp-stat b { font-family: var(--police-titre); font-style: italic; font-size: 1.6rem; color: var(--rose-fonce); }

.rp-accueil { max-width: 760px; padding: 28px; display: flex; flex-direction: column; gap: 12px; }

/* Pastilles de niveau (interface) */
.rp-niv { display: inline-flex; align-items: center; justify-content: center; padding: 2px 9px; border-radius: 8px; background: var(--n); color: #fff; font-weight: 700; font-size: .85rem; letter-spacing: .02em; line-height: 1.4; white-space: nowrap; }
.rp-niv.petit { padding: 0 7px; border-radius: 6px; font-size: .72rem; }

/* Niveaux à cocher */
.rp-choix-niveaux { display: flex; gap: 8px; flex-wrap: wrap; }
.rp-puce-niveau { min-height: var(--cible); min-width: 64px; padding: 0 14px; border-radius: 999px; border: 2px solid var(--n); background: var(--surface); color: var(--n); font-weight: 700; cursor: pointer; touch-action: manipulation; }
.rp-puce-niveau[aria-pressed='true'] { background: var(--n); color: #fff; }

/* Fiche d'un remplacement */
.rp-fiche { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 16px; align-items: start; }
@media (max-width: 900px) { .rp-fiche { grid-template-columns: 1fr; } }
.rp-dates { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.rp-date { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rp-date input[type='date'] { width: auto; }
.rp-diaporama-lie { display: flex; gap: 14px; align-items: center; }
.rp-diaporama-lie-apercu { width: 190px; flex: none; cursor: pointer; }
@media (max-width: 520px) { .rp-diaporama-lie { flex-direction: column; align-items: flex-start; } .rp-diaporama-lie-apercu { width: 100%; } }
.rp-plans-fiche { gap: 2px; }
.rp-plans-fiche > .etiquette, .rp-editeur-apercu > .etiquette, .rp-plan-apercu > .etiquette { font-size: .8rem; font-weight: 600; color: var(--texte-doux); }
.rp-plan-ligne { justify-content: space-between; padding: 2px 0; border-bottom: 1px solid var(--ligne); }
.rp-plan-ligne:last-child { border-bottom: 0; }
.rp-plan-ligne-titre { font-size: .92rem; }

/* Filtres */
.rp-filtres { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.rp-filtres select, .rp-filtres input[type='search'] { width: auto; flex: 1 1 170px; min-width: 150px; max-width: 280px; }

/* Cartes de la bibliothèque */
.rp-carte-activite { gap: 8px; border-top: 4px solid var(--d); }
.rp-carte-activite-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.rp-domaine { font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--d); }
.rp-resume { margin: 0; font-size: .88rem; color: var(--texte-doux); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Listes ordonnables (diapos d'un diaporama, exercices d'un plan) */
.rp-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.rp-ligne { display: flex; align-items: center; gap: 4px; padding: 3px 6px; background: var(--surface); border: 1px solid var(--ligne); border-left: 4px solid var(--d, var(--rose)); border-radius: 12px; }
.rp-ligne.section { background: var(--rose-clair); }
.rp-ligne.masquee { opacity: .55; }
.rp-ligne.masquee .rp-ligne-titre > span:not(.rp-niv) { text-decoration: line-through; }
.rp-ligne.introuvable { border-left-color: var(--rouge); }
.rp-ligne-num { flex: none; width: 28px; text-align: center; font-size: .8rem; color: var(--texte-pale); font-variant-numeric: tabular-nums; }
.rp-ligne-info { flex: 1; min-width: 0; padding: 4px 0; cursor: pointer; }
.rp-ligne-titre { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-weight: 500; }
.rp-ligne-resume { font-size: .78rem; color: var(--texte-doux); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rp-masquee { color: var(--texte-pale); }
.rp-partagee { color: var(--texte-pale); font-size: .9rem; }

.rp-editeur-diaporama { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 900px) { .rp-editeur-diaporama { grid-template-columns: 1fr; } }
.rp-totaux { display: flex; flex-wrap: wrap; gap: 6px; }
.rp-totaux span { padding: 3px 10px; border-radius: 999px; background: var(--surface-2); border: 1px solid var(--ligne); font-size: .8rem; }
.rp-titre-input { flex: 1 1 280px; margin-right: auto; padding-left: 6px; font-family: var(--police-titre) !important; font-style: italic; font-weight: 600; font-size: 1.5rem !important; border-color: transparent !important; background: transparent !important; }
.rp-titre-input:hover { border-color: var(--ligne-forte) !important; }
.rp-titre-input:focus { border-color: var(--rose) !important; background: var(--surface) !important; }

/* Aperçu réduit d'une diapo (16/10) */
.rp-apercu { position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--ligne), var(--ombre); }
.rp-apercu > .rp-diapo { position: absolute; inset: 0; }
.rp-apercu-modale { display: flex; flex-direction: column; gap: 12px; }

/* Fenêtres : choix d'activités, de diaporama, journée */
.rp-choix-activites { display: flex; flex-direction: column; gap: 6px; max-height: 58vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.rp-choix-activite { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border: 1px solid var(--ligne); border-left: 4px solid var(--d); border-radius: 12px; }
.rp-choix-diaporama { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: 52px; padding: 8px 14px; border: 1px solid var(--ligne); border-radius: 14px; background: var(--surface); text-align: left; cursor: pointer; }
.rp-choix-diaporama:hover, .rp-choix-diaporama:focus { border-color: var(--rose); }
.rp-resume-journee { margin: 0; font-weight: 600; color: var(--rose-fonce); }

/* Formulaires d'activité et d'exercice (fenêtre pleine) */
.rp-editeur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.rp-editeur-apercu { position: sticky; top: 0; }
@media (max-width: 900px) {
  .rp-editeur { grid-template-columns: 1fr; }
  .rp-editeur-apercu { position: static; order: -1; }
}
.rp-blocs h3 { margin: 0; }
.rp-bloc { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border: 1px solid var(--ligne); border-radius: 14px; background: var(--surface-2); }
.rp-bloc-tete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.rp-bloc-type { font-size: .85rem; font-weight: 600; color: var(--rose-fonce); }
.rp-colonne-edit { display: flex; flex-direction: column; gap: 6px; padding-left: 10px; border-left: 4px solid var(--n); }
.rp-colonne-edit select { width: auto; flex: none; }
.rp-avertissement { margin: 0; padding: 8px 12px; border-radius: 12px; background: var(--jaune-clair); border: 1px solid #F4E4BC; font-size: .88rem; }

/* Plans de travail (interface) */
.rp-titre-cursive { font-family: var(--police-cursive); font-style: normal; font-weight: 400; font-size: 1.3rem; line-height: 1.7; cursor: pointer; }
h1.rp-titre-cursive { margin-right: auto; font-size: 1.6rem; cursor: default; }
.rp-plan-sommaire { margin: 0; padding-left: 20px; font-size: .85rem; color: var(--texte-doux); }
.rp-plan-mise { display: grid; grid-template-columns: minmax(280px, 380px) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 980px) { .rp-plan-mise { grid-template-columns: 1fr; } }
.rp-papier-cadre { position: relative; width: 100%; overflow: hidden; border-radius: 6px; background: #fff; box-shadow: 0 0 0 1px var(--ligne), var(--ombre); }
.rp-papier { position: absolute; top: 0; left: 0; box-sizing: border-box; background: #fff; color: #000; transform-origin: 0 0; }

/* =========================================================================
   Diapo
   ========================================================================= */
.rp-diapo {
  --u: 10px;
  --echelle: 1;
  --t: calc(var(--u) * var(--echelle));
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: calc(var(--t) * 2);
  padding: calc(var(--u) * 3) calc(var(--u) * 4) calc(var(--u) * 3);
  overflow: hidden;
  background: #FFFDFC;
  border-top: calc(var(--u) * .9) solid var(--d-moyen);
  color: var(--texte);
  font-family: var(--police);
  font-size: calc(var(--t) * 3.1);
  line-height: 1.38;
  text-align: left;
  -webkit-user-select: none;
  user-select: none;
}
.rp-diapo p { margin: 0; }
.rp-diapo strong { font-weight: 700; }
.rp-diapo u { text-decoration-thickness: calc(var(--t) * .3); text-underline-offset: calc(var(--t) * .5); text-decoration-color: var(--d); }

.rp-diapo-tete { display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--t) * 1.6); flex: none; }
.rp-diapo-niveaux { display: flex; gap: calc(var(--t) * .8); flex: none; }
.rp-diapo .rp-niv { padding: calc(var(--t) * .3) calc(var(--t) * 1.2); border-radius: calc(var(--t) * .9); font-size: calc(var(--t) * 2.5); line-height: 1.25; }
.rp-diapo-titre { font-family: var(--police-titre); font-style: italic; font-weight: 700; font-size: calc(var(--t) * 4.6); line-height: 1.1; color: var(--d-fonce); }
.rp-diapo-corps { flex: 1 0 auto; display: flex; flex-direction: column; justify-content: center; gap: calc(var(--t) * 2.2); }

/* Titres et intercalaires (fond décoratif) */
.rp-diapo-couverture, .rp-diapo-intercalaire { justify-content: center; align-items: center; text-align: center; border-top: 0; background: linear-gradient(160deg, #FFFFFF 0%, var(--d-clair) 100%); }
.rp-diapo-centre { display: flex; flex-direction: column; align-items: center; gap: calc(var(--t) * 2); padding: calc(var(--t) * 4) calc(var(--t) * 7); border-radius: calc(var(--t) * 4); background: rgba(255, 255, 255, .86); box-shadow: 0 calc(var(--t) * .6) calc(var(--t) * 3) rgba(90, 50, 70, .1); }
.rp-diapo-grand-titre { font-family: var(--police-titre); font-style: italic; font-weight: 700; font-size: calc(var(--t) * 11); line-height: 1.05; color: var(--d-fonce); }
.rp-diapo-couverture .rp-diapo-grand-titre { font-size: calc(var(--t) * 8); }
.rp-diapo-sous-titre { font-size: calc(var(--t) * 3.6); color: var(--texte-doux); white-space: pre-wrap; }

/* Blocs */
.rp-b-texte { display: flex; flex-direction: column; gap: calc(var(--t) * 1); font-size: calc(var(--t) * 3.1); line-height: 1.5; }
.rp-b-consigne { display: flex; align-items: baseline; gap: calc(var(--t) * 1.2); font-style: italic; color: var(--d-fonce); }
.rp-b-consigne .ico { width: calc(var(--t) * 3); height: calc(var(--t) * 3); flex: none; transform: translateY(calc(var(--t) * .4)); }

.rp-b-encadre { padding: calc(var(--t) * 2) calc(var(--t) * 3); border-radius: calc(var(--t) * 2); background: var(--d-clair); border: calc(var(--t) * .25) solid var(--d-moyen); font-size: calc(var(--t) * 3.5); font-weight: 500; line-height: 1.45; }
.rp-b-encadre p + p { margin-top: calc(var(--t) * .8); }
.rp-b-cursive { margin-top: calc(var(--t) * 1.4) !important; padding-bottom: calc(var(--t) * .4); font-family: var(--police-cursive); font-weight: 400; font-size: calc(var(--t) * 3.8); line-height: 2; border-bottom: calc(var(--t) * .2) solid var(--d-moyen); }

.rp-b-liste-titre { margin-bottom: calc(var(--t) * 1.2) !important; font-weight: 600; }
.rp-numerotee, .rp-puces { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: calc(var(--t) * 1.2); }
.rp-numerotee li, .rp-puces li { display: flex; align-items: baseline; gap: calc(var(--t) * 1.4); }
.rp-num { flex: none; display: inline-grid; place-items: center; width: calc(var(--t) * 4.2); height: calc(var(--t) * 4.2); border-radius: 50%; background: var(--d-clair); color: var(--d-fonce); font-weight: 700; font-size: calc(var(--t) * 2.5); }
.rp-puces .rp-num { width: calc(var(--t) * 1.5); height: calc(var(--t) * 1.5); background: var(--d); align-self: flex-start; margin-top: calc(var(--t) * 1.6); }

.rp-b-etiquettes { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--t) * 1.6); }
.rp-etiquette { padding: calc(var(--t) * 1) calc(var(--t) * 2.4); border-radius: calc(var(--t) * 1.6); background: #fff; border: calc(var(--t) * .3) solid var(--d-moyen); box-shadow: 0 calc(var(--t) * .4) 0 var(--d-clair); font-size: calc(var(--t) * 4.2); font-weight: 600; }

.rp-b-ligne { display: flex; align-items: baseline; gap: calc(var(--t) * 1.2); font-size: calc(var(--t) * 3.6); }
.rp-pointilles { flex: 1; min-width: calc(var(--t) * 20); height: 1px; border-bottom: calc(var(--t) * .35) dotted var(--texte-pale); }

.rp-b-grille { padding: calc(var(--t) * 1.6) calc(var(--t) * 2.4); border: calc(var(--t) * .3) dashed var(--d-moyen); border-radius: calc(var(--t) * 2); background: #fff; font-size: calc(var(--t) * 2.8); }
.rp-b-grille-titre { margin-bottom: calc(var(--t) * 1) !important; font-weight: 700; color: var(--d-fonce); }
.rp-b-grille ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: calc(var(--t) * .8); }
.rp-b-grille li { display: flex; align-items: baseline; gap: calc(var(--t) * 1.2); }
.rp-case { flex: none; width: calc(var(--t) * 2.6); height: calc(var(--t) * 2.6); border: calc(var(--t) * .3) solid var(--d); border-radius: calc(var(--t) * .6); transform: translateY(calc(var(--t) * .3)); }

.rp-b-aide { display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--t) * 1.2); font-size: calc(var(--t) * 3); }
.rp-b-aide-titre { font-style: italic; color: var(--texte-doux); }
.rp-mot-aide { padding: calc(var(--t) * .5) calc(var(--t) * 2); border-radius: 999px; background: var(--d-clair); font-weight: 500; }

.rp-b-regles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(calc(var(--t) * 26), 1fr)); gap: calc(var(--t) * 2.4); }
.rp-b-regles li { display: flex; flex-direction: column; align-items: center; gap: calc(var(--t) * 1.4); padding: calc(var(--t) * 2.4); border-radius: calc(var(--t) * 2.4); background: var(--d-clair); text-align: center; font-size: calc(var(--t) * 3.2); font-weight: 500; }
.rp-regle-num { display: grid; place-items: center; width: calc(var(--t) * 7); height: calc(var(--t) * 7); border-radius: 50%; background: var(--d); color: #fff; font-family: var(--police-titre); font-style: italic; font-weight: 700; font-size: calc(var(--t) * 4.4); }

.rp-b-colonnes { display: grid; grid-template-columns: repeat(var(--nb, 1), minmax(0, 1fr)); gap: calc(var(--t) * 2); align-items: stretch; }
.rp-colonne { overflow: hidden; border-radius: calc(var(--t) * 2); background: var(--n-clair); border: calc(var(--t) * .25) solid var(--n); }
.rp-colonne-tete { padding: calc(var(--t) * .7) calc(var(--t) * 2); background: var(--n); color: #fff; font-weight: 700; font-size: calc(var(--t) * 2.8); text-align: center; letter-spacing: .03em; }
.rp-colonne-corps { display: flex; flex-direction: column; gap: calc(var(--t) * .8); padding: calc(var(--t) * 1.6) calc(var(--t) * 2); font-size: calc(var(--t) * 2.6); }
.rp-colonne-calculs .rp-colonne-corps { align-items: center; font-size: calc(var(--t) * 3.4); font-weight: 500; }
.rp-col-titre { font-weight: 700; color: var(--n); }
.rp-b-lignes { display: flex; flex-direction: column; gap: calc(var(--t) * 1.4); }
.rp-ligne-niveau { display: flex; align-items: center; gap: calc(var(--t) * 2); padding: calc(var(--t) * 1.2) calc(var(--t) * 2); border-radius: calc(var(--t) * 1.6); background: #fff; border-left: calc(var(--t) * .7) solid var(--n); box-shadow: 0 0 0 calc(var(--t) * .15) var(--ligne); font-size: calc(var(--t) * 3.1); }
.rp-ligne-contenu { display: flex; flex-direction: column; gap: calc(var(--t) * .5); }
.rp-ligne-niveau .rp-col-titre { font-size: calc(var(--t) * 2.6); }

.rp-b-calculs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(var(--t) * 2) calc(var(--t) * 3); font-size: calc(var(--t) * 4.4); font-weight: 500; }
.rp-calcul { padding: calc(var(--t) * 1.2); border-radius: calc(var(--t) * 1.6); background: var(--d-clair); text-align: center; white-space: nowrap; }
.rp-resultat { color: #B83D74; font-weight: 700; }

.rp-b-operations { display: grid; grid-template-columns: repeat(auto-fit, minmax(calc(var(--t) * 24), 1fr)); gap: calc(var(--t) * 3); justify-items: center; }
.rp-operation { display: inline-flex; flex-direction: column; min-width: calc(var(--t) * 18); padding: calc(var(--t) * 1.6) calc(var(--t) * 2.6); border-radius: calc(var(--t) * 1.6); background: #fff; border: calc(var(--t) * .25) solid var(--d-clair); font-size: calc(var(--t) * 4.8); font-weight: 500; font-variant-numeric: tabular-nums; line-height: 1.25; }
.rp-op-ligne { display: flex; justify-content: space-between; gap: calc(var(--t) * 1.6); }
.rp-op-signe { flex: none; width: 1em; text-align: left; }
.rp-op-nombre { flex: 1; text-align: right; white-space: nowrap; }
.rp-op-barre { margin: calc(var(--t) * .4) 0; border-top: calc(var(--t) * .35) solid var(--texte); }
.rp-op-resultat { color: #B83D74; font-weight: 700; }
.rp-fantome { visibility: hidden; }

.rp-b-ranger { display: flex; flex-direction: column; align-items: center; gap: calc(var(--t) * 1.6); text-align: center; }
.rp-ranger-consigne { font-size: calc(var(--t) * 3.8); font-weight: 600; }
.rp-ranger-precision { font-size: calc(var(--t) * 3); font-style: italic; color: var(--texte-doux); }
.rp-ranger-nombres { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(var(--t) * 2.4); margin: calc(var(--t) * 1.6) 0 !important; font-size: calc(var(--t) * 7); font-weight: 700; color: var(--d-fonce); font-variant-numeric: tabular-nums; }
.rp-ranger-barre { color: var(--texte-pale); font-weight: 400; }
.rp-ranger-cases { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: calc(var(--t) * 1.4); }
.rp-ranger-case { display: inline-grid; place-items: center; min-width: calc(var(--t) * 15); height: calc(var(--t) * 8); padding: 0 calc(var(--t) * 1); border-bottom: calc(var(--t) * .4) dotted var(--texte-doux); font-size: calc(var(--t) * 4.6); font-weight: 700; color: #B83D74; white-space: nowrap; }
.rp-ranger-signe { font-size: calc(var(--t) * 5); font-weight: 700; color: var(--d); }

.rp-b-couleurs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: calc(var(--t) * 2.6) calc(var(--t) * 2); justify-items: center; }
.rp-couleur { display: flex; flex-direction: column; align-items: center; gap: calc(var(--t) * 1); padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; touch-action: manipulation; }
div.rp-couleur { cursor: default; }
.rp-couleur-rond { display: grid; place-items: center; width: calc(var(--t) * 13); height: calc(var(--t) * 13); border-radius: 50%; border: calc(var(--t) * .3) solid rgba(0, 0, 0, .14); }
.rp-couleur-num { display: grid; place-items: center; width: calc(var(--t) * 5); height: calc(var(--t) * 5); border-radius: 50%; background: rgba(255, 255, 255, .9); color: var(--texte); font-weight: 700; font-size: calc(var(--t) * 3); }
.rp-couleur-nom { min-height: 1.3em; font-size: calc(var(--t) * 3.2); font-weight: 600; visibility: hidden; }
.rp-couleur.revelee .rp-couleur-nom { visibility: visible; }

.rp-b-vocabulaire { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(var(--t) * 1.4) calc(var(--t) * 3); }
.rp-voc { display: flex; justify-content: space-between; align-items: baseline; gap: calc(var(--t) * 2); padding: calc(var(--t) * 1) calc(var(--t) * 2); border-radius: calc(var(--t) * 1.4); background: var(--d-clair); }
.rp-voc-en { font-size: calc(var(--t) * 3.4); font-weight: 700; color: var(--d-fonce); }
.rp-voc-fr { font-size: calc(var(--t) * 2.8); color: var(--texte-doux); text-align: right; }

.rp-b-date { display: flex; flex-direction: column; gap: calc(var(--t) * 1.8); }
.rp-date-ligne { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 calc(var(--t) * 1); font-size: calc(var(--t) * 3.6); }
.rp-date-principale { font-size: calc(var(--t) * 4.4); }
.rp-date-ligne strong { color: var(--d-fonce); }
.rp-date-ligne .rp-pointilles { min-width: calc(var(--t) * 30); }

.rp-b-meteo { display: flex; flex-wrap: wrap; align-items: center; gap: calc(var(--t) * 1.6); }
.rp-meteo-titre { font-size: calc(var(--t) * 3); font-weight: 600; }
.rp-meteo-choix { display: flex; flex-wrap: wrap; gap: calc(var(--t) * 1.4); }
.rp-meteo { display: inline-flex; align-items: center; gap: calc(var(--t) * 1); padding: calc(var(--t) * 1) calc(var(--t) * 2.2); border-radius: 999px; border: calc(var(--t) * .25) solid var(--ligne-forte); background: #fff; color: inherit; font-family: inherit; font-size: calc(var(--t) * 2.9); cursor: pointer; touch-action: manipulation; }
span.rp-meteo { cursor: default; }
.rp-meteo-emoji { font-size: 1.2em; line-height: 1; }
.rp-meteo.choisie { background: var(--d-clair); border-color: var(--d); font-weight: 700; box-shadow: 0 0 0 calc(var(--t) * .4) var(--d-clair); }

.rp-diapo-reponse { padding: calc(var(--t) * 1.4) calc(var(--t) * 2.4); border-radius: calc(var(--t) * 2); background: #FFF6D6; border: calc(var(--t) * .3) dashed #E0B43A; font-size: calc(var(--t) * 3); }
.rp-diapo-reponse-titre { display: block; margin-bottom: calc(var(--t) * .4); font-size: calc(var(--t) * 2.1); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8F6A0B; }
.rp-diapo-reponse p + p { margin-top: calc(var(--t) * .5); }

/* =========================================================================
   Lecteur plein écran
   ========================================================================= */
body.rp-lecteur-ouvert { overflow: hidden; }
.rp-lecteur { position: fixed; inset: 0; z-index: 150; background: #2F2A2C; outline: none; }
.rp-lecteur-scene { position: absolute; inset: 0; touch-action: pan-y; }
.rp-lecteur .rp-diapo { --u: min(1vw, 1.7778vh); padding-bottom: calc(var(--u) * 2.5 + 64px + env(safe-area-inset-bottom, 0px)); padding-top: calc(var(--u) * 3 + env(safe-area-inset-top, 0px)); }
.rp-lecteur .rp-diapo-couverture, .rp-lecteur .rp-diapo-intercalaire { padding-bottom: calc(var(--u) * 3 + 64px); }
.rp-lecteur-barre {
  position: absolute; left: 50%; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); z-index: 2;
  display: flex; align-items: center; gap: 4px; padding: 5px;
  border-radius: 999px; background: rgba(255, 255, 255, .85); box-shadow: 0 4px 18px rgba(40, 20, 30, .18);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transform: translateX(-50%); opacity: .6; transition: opacity .2s;
}
.rp-lecteur-barre:hover, .rp-lecteur-barre:focus-within, .rp-lecteur-barre:active { opacity: 1; }
.rp-lecteur-btn { border-color: transparent; background: transparent; }
.rp-lecteur-btn.actif { background: var(--rose-clair); border-color: var(--rose); }
.rp-lecteur-reponse span { font-size: .9rem; }
.rp-lecteur-compteur { min-width: 78px; min-height: var(--cible); padding: 0 10px; border: 0; border-radius: 999px; background: transparent; font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; }
.rp-lecteur-compteur:hover { background: var(--rose-clair); }
@media (max-width: 520px) { .rp-lecteur-reponse span { display: none; } }

/* Sommaire */
.rp-sommaire { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.rp-sommaire-ligne { display: flex; align-items: center; gap: 10px; width: 100%; min-height: var(--cible); padding: 4px 10px; border: 0; border-radius: 10px; background: none; text-align: left; cursor: pointer; }
.rp-sommaire-ligne:hover { background: var(--surface-2); }
.rp-sommaire-ligne.courante { box-shadow: inset 0 0 0 2px var(--rose); }
.rp-sommaire-section { margin-top: 6px; background: var(--rose-clair); font-family: var(--police-titre); font-style: italic; font-weight: 600; }
.rp-sommaire-num { width: 26px; text-align: right; font-size: .8rem; color: var(--texte-pale); font-variant-numeric: tabular-nums; flex: none; }
.rp-sommaire-niv { display: inline-flex; gap: 4px; flex: none; }

/* =========================================================================
   Plans de travail (aperçu à l'écran et impression : mêmes règles, en mm)
   ========================================================================= */
.rp-pdt { color: #000; font-family: var(--police); font-size: 10pt; line-height: 1.35; text-align: left; }
.rp-pdt-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1mm 6mm; margin-bottom: 4mm; padding-bottom: 2mm; border-bottom: .6pt solid #000; }
.rp-pdt-titre { font-family: var(--police-cursive); font-size: 19pt; line-height: 1.35; }
.rp-pdt-champs { display: flex; gap: 6mm; font-size: 10pt; white-space: nowrap; }
.rp-pdt-periode { font-style: italic; color: #444; }
.rp-pdt-grille { column-count: var(--pdt-colonnes, 3); column-gap: 4mm; }
.rp-pdt-ex { display: block; margin: 0 0 3.5mm; padding: 2.5mm 3mm; border: .6pt solid #333; border-radius: 3mm; background: #fff; break-inside: avoid; page-break-inside: avoid; -webkit-column-break-inside: avoid; }
.rp-pdt-pleine { column-span: all; -webkit-column-span: all; }
.rp-pdt-consigne { display: flex; align-items: flex-start; gap: 2mm; margin-bottom: 2mm; font-size: 10pt; font-weight: 600; }
.rp-pdt-enonce { font-weight: 400; }
.rp-pdt-num { flex: none; display: inline-grid; place-items: center; width: 5.2mm; height: 5.2mm; border: .6pt solid #000; border-radius: 50%; font-size: 8.5pt; font-weight: 700; }
.rp-pdt-niv { flex: none; margin-left: auto; padding: 0 1.5mm; border: .5pt solid #000; border-radius: 1.5mm; font-size: 7.5pt; font-weight: 600; }
.rp-pdt-items { display: grid; grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr)); gap: 2.2mm 4mm; }
.rp-pdt-items p { margin: 0; line-height: 1.5; }
.rp-pdt-calculs p { font-size: 11pt; }
.rp-pdt-modele { grid-column: 1 / -1; }
.rp-pdt-mots, .rp-pdt-a-placer { display: flex; flex-wrap: wrap; gap: 2mm; margin: 1mm 0 1.5mm; }
.rp-pdt-mot { padding: .6mm 2mm; border: .5pt solid #000; border-radius: 1.5mm; font-size: 10.5pt; }
.rp-pdt-ordre-phrase + .rp-pdt-ordre-phrase { margin-top: 2mm; }
.rp-pdt .imp-seyes { display: block; margin: 1.5mm 0 0; }
.rp-pdt-pixel svg, .rp-pdt-mots-meles svg { display: block; margin: 0 auto; }
.rp-pdt-droite svg, .rp-pdt-segments svg { display: block; }
.rp-pdt-legende { display: flex; flex-wrap: wrap; gap: 1mm 4mm; margin-top: 1.5mm; font-size: 9pt; }
.rp-pdt-tableau { margin-top: 2mm; border-collapse: collapse; font-size: 9pt; }
.rp-pdt-tableau th, .rp-pdt-tableau td { padding: 1mm 2mm; border: .5pt solid #000; text-align: center; }
.rp-pdt-suites { display: flex; flex-direction: column; gap: 2mm; }
.rp-pdt-suite { display: flex; flex-wrap: wrap; gap: 1.2mm; }
.rp-pdt-case { display: inline-grid; place-items: center; min-width: 11mm; height: 7.5mm; padding: 0 1mm; border: .5pt solid #000; font-size: 10pt; }
.rp-pdt-case.signe { width: 7mm; min-width: 7mm; }
.rp-pdt-fractions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 4mm; }
.rp-pdt-fraction { display: flex; flex-direction: column; align-items: center; gap: 1.5mm; }
.rp-pdt-frac-rep { display: inline-flex; flex-direction: column; align-items: center; gap: .8mm; }
.rp-pdt-frac-rep .boite { width: 7mm; height: 5.5mm; border: .5pt solid #000; }
.rp-pdt-frac-rep .barre { width: 9mm; border-top: .9pt solid #000; }
.rp-pdt-comparer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3mm; }
.rp-pdt-comparaison { display: flex; align-items: center; justify-content: center; gap: 2.5mm; }
.rp-pdt-frac { display: inline-flex; flex-direction: column; align-items: center; font-size: 11pt; line-height: 1.1; }
.rp-pdt-frac span:first-child { padding: 0 1mm; border-bottom: .8pt solid #000; }
.rp-pdt-nombre { font-size: 11pt; }
.rp-pdt-relier { display: grid; grid-template-columns: auto minmax(12mm, 1fr) auto; row-gap: 3mm; align-items: center; }
.rp-pdt-relier-g { display: flex; justify-content: flex-end; align-items: center; gap: 2mm; }
.rp-pdt-relier-d { display: flex; align-items: center; gap: 2mm; }
.rp-pdt-point { display: inline-block; width: 0; height: 0; border: 1.1mm solid #000; border-radius: 50%; }
.rp-pdt-liste-mots { display: flex; flex-wrap: wrap; justify-content: center; gap: 1mm 3mm; margin-top: 2mm; font-size: 9.5pt; }

/* =========================================================================
   Impressions : cahier journal et mot pour l'enseignant (noir et blanc)
   ========================================================================= */
@media print {
  .rp-centre { text-align: center; }
  .rp-cj-infos { margin-bottom: 3mm; }
  .rp-cj-infos th { font-size: 7.5pt; }
  .rp-cj-table .rp-cj-heure { width: 13mm; white-space: nowrap; }
  .rp-cj-table .rp-cj-duree { width: 14mm; white-space: nowrap; }
  .rp-cj-table .rp-cj-materiel { width: 36mm; }
  .rp-cj-table .rp-cj-fait { width: 9mm; text-align: center; }
  .rp-cj-section td { padding-top: 2mm; font-family: 'Lora', Georgia, serif; font-style: italic; font-size: 11pt; }
  .rp-cj-section td span { font-family: 'Poppins', sans-serif; font-style: normal; font-size: 8.5pt; }
  .rp-cj-pause td { font-size: 8.5pt; font-style: italic; }
  .rp-cj-creneau { break-inside: avoid; page-break-inside: avoid; }
  .rp-cj-activite + .rp-cj-activite { margin-top: 1.2mm; padding-top: 1.2mm; border-top: .4pt dotted #777; }
  .rp-cj-objectif { font-style: italic; }
  .rp-cj-total { margin: 2mm 0 4mm; }
  .rp-lignes-vides { margin: 1mm 0 3mm; }
  .rp-ligne-vide { height: 7mm; border-bottom: .5pt solid #888; }
  .rp-mot-texte { margin: 4mm 0 5mm; font-size: 11pt; line-height: 1.6; }
  .rp-mot-activites { columns: 2; column-gap: 8mm; font-size: 9.5pt; }
  .rp-mot-signature { margin-top: 10mm; text-align: right; font-family: 'Lora', Georgia, serif; font-style: italic; font-size: 12pt; }
  .rp-pdt-ex { background: transparent; }
}
