
.fiche{
  --marine:#152F52; --turquoise:#2BA7A0; --vert:#7BC96F; --safran:#F5B335;
  --corail:#FF7C6B; --violet:#8E7CC3; --blanc:#FFFFFF; --gris:#F5F8FA;
  --sep:#DDE7EA; --texte:#223047; --vert-voile:#EDF7EB; --safran-voile:#FDF1D6;
  --marine-voile:#EEF2F7;
  --titres:'Nunito', 'Trebuchet MS', 'Segoe UI', Arial, sans-serif;
  --corps:'Poppins', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  font-family:var(--corps); color:var(--texte); font-size:9.5pt; line-height:1.42;
  font-kerning:normal; text-rendering:optimizeLegibility;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}
.fiche h1, .fiche h2, .fiche h3{ font-family:var(--titres); color:var(--marine); margin:0; }
.fiche p{ margin:0; }
.fiche .pied{ display:none; }

/* Bandeau */
.fiche .bandeau{ border-top:4px solid var(--vert); padding-top:9pt; }
.fiche .bandeau-haut{ display:flex; justify-content:space-between; align-items:flex-start; gap:12pt; }
.fiche .nature{ font-size:8.5pt; font-weight:500; }
.fiche h1{ font-size:22pt; font-weight:800; line-height:1.1; margin:3pt 0 10pt; }
.fiche .type{ display:flex; align-items:stretch; border:1.5px solid var(--marine); border-radius:10px; overflow:hidden; flex-shrink:0; }
.fiche .type-pastille{ width:7pt; background:var(--vert); }
.fiche .type-texte{ padding:4pt 10pt 5pt 8pt; }
.fiche .type-texte small{ display:block; font-size:7.5pt; font-weight:500; line-height:1.2; }
.fiche .type-texte strong{ font-family:var(--titres); font-weight:800; font-size:13pt; color:var(--marine); line-height:1.15; }
.fiche .type-texte strong.vide{ font-size:10pt; font-weight:700; }
.fiche .meta{ display:grid; grid-template-columns:1.5fr .7fr .7fr 1.7fr; margin:0; border:1px solid var(--sep); border-radius:10px; overflow:hidden; }
.fiche .meta div{ padding:5pt 8pt 6pt; border-right:1px solid var(--sep); }
.fiche .meta div:last-child{ border-right:0; }
.fiche .meta dt{ font-size:7.5pt; font-weight:500; }
.fiche .meta dd{ margin:0; font-weight:600; font-size:9.5pt; color:var(--marine); }

/* Blocs */
.fiche .bloc{ margin-top:14pt; }
.fiche .bloc > h2{ font-size:12pt; font-weight:800; margin-bottom:5pt; display:flex; align-items:baseline; gap:6pt; }
.fiche .precision{ font-family:var(--corps); font-size:8.5pt; font-weight:400; color:var(--texte); }
.fiche .garde{ break-inside:avoid; }
.fiche .carte{ border:1px solid var(--sep); border-radius:12px; padding:7pt 10pt 8pt; margin-top:10pt; }
.fiche .carte h2{ font-size:9.5pt; font-weight:800; margin-bottom:3pt; }
.fiche .carte p + p{ margin-top:2pt; }

/* Programme */
.fiche .prog{ margin:0; border:1px solid var(--sep); border-radius:12px; overflow:hidden; }
.fiche .prog > div{ display:grid; grid-template-columns:38mm 1fr; border-bottom:1px solid var(--sep); }
.fiche .prog > div:last-child{ border-bottom:0; }
.fiche .prog dt{ background:var(--gris); font-size:8.5pt; font-weight:600; color:var(--marine); padding:4.5pt 8pt; }
.fiche .prog dd{ margin:0; padding:4.5pt 8pt; font-size:9.5pt; }
.fiche .puces{ margin:0; padding:0; list-style:none; }
.fiche .puces li{ position:relative; padding-left:10pt; }
.fiche .puces li + li{ margin-top:2pt; }
.fiche .puces li::before{ content:""; position:absolute; left:1pt; top:5.5pt; width:4pt; height:4pt; border-radius:50%; background:var(--marine); }

/* Objectif opérationnel */
.fiche .objectif{ border-left:4px solid var(--marine); background:var(--gris); border-radius:0 12px 12px 0; padding:8pt 12pt 9pt; }
.fiche .objectif h2{ font-size:9pt; font-weight:800; margin-bottom:4pt; }
.fiche .objectif-ligne{ display:grid; grid-template-columns:52pt 1fr; gap:8pt; align-items:baseline; }
.fiche .objectif-ligne + .objectif-ligne{ margin-top:3pt; }
.fiche .objectif-ligne .cle{ font-size:7.5pt; font-weight:600; border:1px solid var(--marine); border-radius:6px; text-align:center; padding:0 4pt; color:var(--marine); }
.fiche .objectif-ligne p{ font-size:10.5pt; font-weight:500; line-height:1.38; }
.fiche .objectif-ligne p b{ font-weight:700; }

/* Tableaux */
.fiche table{ width:100%; border-collapse:separate; border-spacing:0; }
.fiche th{ text-align:left; font-weight:600; font-size:8.5pt; color:var(--marine); background:var(--vert-voile); padding:5pt 6pt; border-bottom:1.5px solid var(--marine); vertical-align:bottom; }
.fiche td{ padding:5pt 6pt; vertical-align:top; border-bottom:1px solid var(--sep); }
.fiche table.cadre{ border:1px solid var(--sep); border-radius:12px; }
.fiche table.cadre thead tr:first-child th:first-child{ border-top-left-radius:11px; }
.fiche table.cadre thead tr:first-child th:last-child{ border-top-right-radius:11px; }
.fiche table.cadre > tbody:last-of-type > tr:last-child > td{ border-bottom:0; }
.fiche .materiel{ table-layout:fixed; }
.fiche .materiel col.c-mat{ width:41%; } .fiche .materiel col.c-qte{ width:36%; }
.fiche .materiel col.c-pho{ width:15%; } .fiche .materiel col.c-pha{ width:8%; }
.fiche .materiel td:nth-child(3), .fiche .materiel th:nth-child(3){ white-space:nowrap; }
.fiche .materiel td:nth-child(4), .fiche .materiel th:nth-child(4){ text-align:center; }
.fiche .photocopie{ font-weight:600; }
.fiche .photocopie::before{ content:""; display:inline-block; width:7pt; height:7pt; border:1.2px solid var(--marine); border-radius:2px; margin-right:4pt; vertical-align:-.5pt; }

/* Déroulé : un bloc insécable par phase, qui porte sa propre ligne d'en-tête */
.fiche .deroule{ --cols:16mm 32mm 1fr 36mm; }
.fiche .phase{ break-inside:avoid; border-left:1px solid var(--sep); border-right:1px solid var(--sep); border-bottom:1px solid var(--sep); }
.fiche .phase.haut-de-page{ border-top:1px solid var(--sep); border-radius:12px 12px 0 0; }
.fiche .phase.bas-de-page{ border-radius:0 0 12px 12px; }
.fiche .phase.haut-de-page.bas-de-page{ border-radius:12px; }
.fiche .phase.masque-entete .d-entete, .fiche .phase.masque-entete .d-suite{ display:none; }
.fiche .d-titre, .fiche .d-suite{ display:flex; justify-content:space-between; align-items:center; gap:10pt; flex-wrap:wrap; padding:7pt 8pt 6pt; border-bottom:1px solid var(--sep); }
.fiche .t-titre{ font-family:var(--titres); font-weight:800; font-size:12pt; color:var(--marine); }
.fiche .d-titre .precision{ margin-left:5pt; }
.fiche .legende{ display:flex; align-items:center; gap:9pt; font-size:7.5pt; font-weight:500; color:var(--texte); }
.fiche .legende > span{ display:inline-flex; align-items:center; gap:3pt; }
.fiche .legende .etiq{ font-size:6.5pt; padding:0 3pt; }
.fiche .legende svg{ width:10pt; height:10pt; }
.fiche .d-entete, .fiche .d-ligne{ display:grid; grid-template-columns:var(--cols); }
.fiche .d-entete{ background:var(--vert-voile); border-bottom:1.5px solid var(--marine); }
.fiche .d-entete span{ font-size:8pt; font-weight:600; color:var(--marine); padding:5pt 5pt; align-self:end; }
.fiche .d-entete span:nth-child(1), .fiche .d-entete span:nth-child(2){ text-align:center; }
.fiche .d-ligne > div{ padding:6pt 5pt 7pt; min-width:0; }
.fiche .d-ligne .minutage{ display:flex; align-items:center; justify-content:center; text-align:center; }
.fiche .d-ligne .phase-col{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.fiche .minutage b{ display:block; font-size:10pt; font-weight:600; color:var(--marine); white-space:nowrap; }
.fiche .phase-num{ display:inline-flex; width:15pt; height:15pt; border-radius:50%; border:1.2px solid var(--marine); background:var(--vert-voile); align-items:center; justify-content:center; font-family:var(--titres); font-weight:800; font-size:8.5pt; color:var(--marine); margin-bottom:3pt; }
.fiche .phase-nom{ font-family:var(--titres); font-weight:800; font-size:9pt; color:var(--marine); line-height:1.2; display:block; hyphens:auto; -webkit-hyphens:auto; overflow-wrap:anywhere; }
.fiche .phase-nom em{ font-style:normal; font-weight:700; display:block; font-size:8.5pt; }
.fiche .phase-orga{ display:inline-block; margin-top:4pt; font-size:7.5pt; font-weight:500; color:var(--texte); border:1px solid #9AAAB8; border-radius:6px; padding:0 4pt; line-height:1.5; }
.fiche .diff p + p{ margin-top:3pt; }
.fiche .diff b{ font-weight:600; }

/* Étapes : Professeur = étiquette pleine ; Élèves = étiquette en pointillés ;
   Je dis = encadré à filet épais ; Matériel = ligne à pictogramme de boîte */
.fiche .flux{ display:block; }
.fiche .flux > * + *{ margin-top:4.5pt; }
.fiche .temps{ display:grid; grid-template-columns:19mm 1fr; column-gap:6pt; align-items:start; }
.fiche .etiq{ display:inline-block; font-size:7pt; font-weight:600; line-height:1.4; border-radius:5px; text-align:center; padding:0.5pt 3pt; border:1.2px solid var(--marine); }
.fiche .temps .etiq{ display:block; margin-top:1pt; }
.fiche .etiq-prof{ background:var(--marine); color:#FFFFFF; }
.fiche .etiq-eleves{ background:#FFFFFF; color:var(--marine); border-style:dashed; }
.fiche .temps-prof p{ font-weight:500; }
.fiche .temps p + p{ margin-top:2pt; }
.fiche .phase-mat{ display:grid; grid-template-columns:19mm 1fr; column-gap:6pt; align-items:start; padding-bottom:4.5pt; border-bottom:1px dotted #9AAAB8; }
.fiche .mat-label{ display:flex; align-items:center; gap:3pt; font-size:7.5pt; font-weight:700; color:var(--marine); padding-top:1pt; }
.fiche .mat-label svg{ width:10pt; height:10pt; flex-shrink:0; }
.fiche .phase-mat p{ font-size:8.5pt; }
.fiche .phase-mat p + p{ margin-top:3pt; }
.fiche .oral{ border:1.2px solid var(--marine); border-left:5px solid var(--marine); background:var(--marine-voile); border-radius:0 10px 10px 0; padding:5pt 9pt 6pt 8pt; }
.fiche .oral-tete{ display:flex; align-items:center; gap:5pt; font-size:7.5pt; font-weight:600; color:var(--marine); margin-bottom:2pt; }
.fiche .oral-tete svg{ width:12pt; height:12pt; flex-shrink:0; }
.fiche .oral-texte{ font-size:10pt; font-weight:500; color:var(--texte); line-height:1.4; }
.fiche .oral-texte + .oral-texte{ margin-top:2pt; }
.fiche .oral-reponses{ display:flex; gap:5pt; margin-top:3pt; padding-top:3pt; border-top:1px dashed #9AAAB8; font-size:9pt; }
.fiche .oral-reponses svg{ width:10pt; height:10pt; flex-shrink:0; margin-top:1.5pt; }
.fiche .oral-reponses b{ font-weight:600; white-space:nowrap; }

/* Marqueurs de statut de l'information */
.fiche .m-statut{ font-weight:700; background:var(--safran-voile); border-radius:3px; padding:0 2pt; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.fiche .m-amorce{ font-weight:700; }

/* Clôture */
.fiche .criteres{ list-style:none; margin:0; padding:0; }
.fiche .criteres li{ display:flex; gap:7pt; padding:3pt 0; font-size:10pt; }
.fiche .criteres li::before{ content:""; flex-shrink:0; width:9pt; height:9pt; border:1.3px solid var(--marine); border-radius:3px; margin-top:2.5pt; }

/* Bilan : une demi-page (≈ 128 mm sur 257 mm utiles) */
.fiche .bilan{ border:1.5px solid var(--marine); border-radius:12px; padding:8pt 11pt 9pt; break-inside:avoid; min-height:128mm; box-sizing:border-box; }
.fiche .bilan h2{ font-size:12pt; font-weight:800; }
.fiche .bilan h3{ font-size:9.5pt; font-weight:800; margin:10pt 0 0; }
.fiche .lignes{ line-height:7mm; min-height:56mm; font-size:10pt;
  background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAA4CAYAAADaSVmoAAAAG0lEQVR4nGNgGAWjYBQMLsA4a9WO/8gCTOgqAGFAAv+WZdR1AAAAAElFTkSuQmCC"); background-size:100% 7mm; background-repeat:repeat; }
.fiche .lignes p{ margin:0; }
.fiche .besoins{ margin-top:4pt; table-layout:fixed; border:1px solid #9AAAB8; border-radius:8px; }
.fiche .besoins col.c-dom{ width:36%; } .fiche .besoins col.c-bes{ width:38%; } .fiche .besoins col.c-ele{ width:26%; }
.fiche .besoins th{ background:var(--gris); border-bottom:1px solid var(--marine); font-size:8pt; padding:4pt 6pt; }
.fiche .besoins th + th, .fiche .besoins td + td{ border-left:1px solid #C9D3DB; }
.fiche .besoins thead tr:first-child th:first-child{ border-top-left-radius:7px; }
.fiche .besoins thead tr:first-child th:last-child{ border-top-right-radius:7px; }
.fiche .besoins td{ height:8mm; padding:2pt 6pt; border-bottom:1px solid #C9D3DB; font-size:9pt; }
.fiche .besoins tr:last-child td{ border-bottom:0; }
.fiche .vide-note{ font-size:9pt; color:#5B6B7C; }

/* ====== Séquence ====== */
.fiche .periode strong{ font-size:15pt; }
.fiche .prog .ref dd{ font-size:9pt; }
.fiche .problematique{ border-left:4px solid var(--marine); background:var(--gris); border-radius:0 12px 12px 0; padding:8pt 12pt 9pt; }
.fiche .problematique h2{ font-size:9pt; font-weight:800; margin-bottom:3pt; }
.fiche .problematique p{ font-size:10.5pt; font-weight:500; line-height:1.38; }
.fiche .objectifs-generaux .amorce{ font-weight:700; margin-bottom:2pt; }
.fiche .cca{ display:grid; grid-template-columns:repeat(3, 1fr); gap:8pt; margin-top:10pt; }
.fiche .cca .carte{ margin-top:0; }
.fiche .cca .carte h2{ display:flex; align-items:center; gap:5pt; }
.fiche .cca .lettre{ display:inline-flex; width:13pt; height:13pt; border-radius:4px; border:1.2px solid var(--marine); align-items:center; justify-content:center; font-size:7.5pt; font-weight:800; }
.fiche .seances{ --cols-s: 8mm 33mm 1fr 1fr 1fr 14mm; }
.fiche .seance-bloc{ break-inside:avoid; border-left:1px solid var(--sep); border-right:1px solid var(--sep); border-bottom:1px solid var(--sep); }
.fiche .seance-bloc.haut-de-page{ border-top:1px solid var(--sep); border-radius:12px 12px 0 0; }
.fiche .seance-bloc.bas-de-page{ border-radius:0 0 12px 12px; }
.fiche .seance-bloc.haut-de-page.bas-de-page{ border-radius:12px; }
.fiche .seance-bloc.masque-entete .d-entete, .fiche .seance-bloc.masque-entete .d-suite{ display:none; }
.fiche .seances .d-entete, .fiche .seances .s-ligne{ display:grid; grid-template-columns:var(--cols-s); }
.fiche .seances .d-entete span:nth-child(1), .fiche .seances .d-entete span:nth-child(6){ text-align:center; }
.fiche .s-ligne > div{ padding:6pt 5pt 7pt; min-width:0; }
.fiche .s-num{ display:flex; align-items:center; justify-content:center; }
.fiche .s-titre{ font-family:var(--titres); font-weight:800; font-size:9.5pt; color:var(--marine); line-height:1.2; display:block; }
.fiche .s-infos{ display:flex; flex-wrap:wrap; gap:3pt 5pt; margin-top:4pt; align-items:center; }
.fiche .s-type{ font-size:7.5pt; font-weight:600; border:1px solid var(--marine); border-radius:6px; padding:0 4pt; line-height:1.5; color:var(--marine); }
.fiche .s-duree{ font-size:8pt; font-weight:600; }
.fiche .s-ligne .col-texte{ font-size:9pt; }
.fiche .s-lien{ display:flex; align-items:center; justify-content:center; text-align:center; }
.fiche .lien{ display:inline-flex; flex-direction:column; align-items:center; gap:1pt; font-size:7pt; font-weight:700; line-height:1.2; border-radius:6px; padding:2pt 3pt; }
.fiche .lien.en-ligne{ flex-direction:row; padding:0 3pt; }
.fiche .lien svg{ width:10pt; height:10pt; }
.fiche .lien.lie{ border:1.3px solid var(--marine); color:var(--marine); background:var(--vert-voile); }
.fiche .lien.non-lie{ border:1.3px dashed #7F8C99; color:#4A5868; font-weight:600; }
.fiche .evaluation{ margin:0; border:1px solid var(--sep); border-radius:12px; overflow:hidden; }
.fiche .evaluation > div{ display:grid; grid-template-columns:30mm 1fr; border-bottom:1px solid var(--sep); }
.fiche .evaluation > div:last-child{ border-bottom:0; }
.fiche .evaluation dt{ background:var(--gris); font-size:8.5pt; font-weight:600; color:var(--marine); padding:4.5pt 8pt; }
.fiche .evaluation dd{ margin:0; padding:4.5pt 8pt; }
.fiche .bilan.bilan-seq{ min-height:0; }
.fiche .bilan-seq .lignes{ min-height:56mm; }

/* ====== Cahier journal ====== */
.fiche.journal .creneau-journal{ margin-top:14pt; }
.fiche .creneau-bandeau{ display:flex; align-items:baseline; gap:8pt; border-bottom:2px solid var(--vert); padding-bottom:3pt; margin-bottom:6pt; break-after:avoid; }
.fiche .creneau-horaire{ font-family:var(--corps); font-weight:700; font-size:9pt; color:#fff; background:var(--marine); border-radius:6px; padding:1pt 5pt; }
.fiche .creneau-titre{ font-family:var(--titres); font-weight:800; font-size:13pt; color:var(--marine); }
.fiche .creneau-matiere{ font-size:8.5pt; margin-left:auto; }
.fiche .creneau-texte{ font-size:10pt; }
.fiche .fiche-corps.compacte h1{ font-size:15pt; margin-bottom:6pt; }
.fiche .fiche-corps.compacte .bandeau{ border-top:2px solid var(--vert); padding-top:5pt; }
.fiche .fiche-corps.compacte .bloc{ margin-top:9pt; }
.fiche .fiche-corps.compacte .bilan{ min-height:70mm; }
.fiche .fiche-corps.compacte .lignes{ min-height:35mm; }

/* ====== Organisation en groupes ou ateliers ====== */
.fiche .groupes{ border:1px solid var(--sep); border-left:3px solid var(--violet); border-radius:10px; padding:6pt 8pt; margin-bottom:6pt; break-inside:avoid; }
.fiche .groupes-tete{ font-family:var(--titres); font-weight:800; font-size:8.5pt; color:var(--marine); display:flex; align-items:baseline; gap:6pt; margin-bottom:4pt; }
.fiche .groupes-grille{ display:grid; grid-template-columns:repeat(auto-fit, minmax(38mm, 1fr)); gap:5pt; }
.fiche .groupe{ border:1px solid var(--sep); border-radius:8px; padding:4pt 5pt; }
.fiche .groupe-tete{ display:flex; justify-content:space-between; align-items:baseline; gap:4pt; }
.fiche .groupe-nom{ font-family:var(--titres); font-weight:800; font-size:8.5pt; color:var(--marine); }
.fiche .groupe-acc{ font-size:7pt; font-weight:600; border:1px solid var(--marine); border-radius:5px; padding:0 3pt; color:var(--marine); }
.fiche .groupe-eff{ font-size:8pt; margin:2pt 0 0; }
.fiche .groupe-mat{ font-size:8pt; margin:2pt 0 0; display:flex; gap:3pt; align-items:flex-start; }
.fiche .groupe-mat img, .fiche .groupe-mat svg{ width:8pt; height:8pt; flex:0 0 auto; }
.fiche .groupe-noms{ margin-top:3pt; display:flex; flex-direction:column; gap:4.5pt; }
.fiche .ligne-nom{ display:block; height:9pt; border-bottom:.6pt solid var(--ligne); }
.fiche .temps-titre{ font-family:var(--titres); font-weight:800; font-size:8pt; color:var(--violet); text-transform:uppercase;
  letter-spacing:.03em; margin:5pt 0 2pt; border-bottom:1px dotted var(--sep); padding-bottom:1.5pt; }

/* ====== Pièces jointes dans le document ====== */
.fiche .pieces-jointes{ display:flex; flex-direction:column; gap:5pt; margin-bottom:6pt; }
.fiche .pj-image{ margin:0; break-inside:avoid; }
.fiche .pj-image img{ display:block; max-width:100%; max-height:95mm; border:1px solid var(--sep); border-radius:6px; }
.fiche .pj-image figcaption{ font-size:7.5pt; color:var(--doux, #5B6B7C); margin-top:2pt; }
.fiche .pj-lien{ font-size:8.5pt; font-weight:600; margin:0; }

/* ====== Emploi du temps (document) : tableau A4 paysage ====== */
.fiche.edt .bandeau{ padding-top:5pt; }
.fiche.edt h1{ font-size:17pt; margin:1pt 0 5pt; }
.fiche.edt .edt-tableau{ width:100%; table-layout:fixed; border-collapse:separate; border-spacing:1.2mm 0.5mm; margin:0 -1.2mm; width:calc(100% + 2.4mm); }
.fiche.edt .edt-tableau col.edt-col-h{ width:23mm; }
.fiche.edt .edt-tableau thead th{ font-family:var(--titres); font-weight:800; font-size:10pt; color:#fff; background:var(--marine); text-align:center;
  padding:1.6mm 0; border:0; border-radius:4px; vertical-align:middle; }
.fiche.edt .edt-tableau thead th.edt-h{ background:transparent; }
.fiche.edt .edt-tableau tbody th.edt-h{ background:transparent; border:0; border-top:1px solid var(--sep); padding:0 1.5mm 0 0; font-size:7pt; font-weight:700;
  color:var(--marine); text-align:right; vertical-align:top; white-space:nowrap; line-height:1.15; font-variant-numeric:tabular-nums; }
.fiche.edt .edt-tableau tbody th.edt-h span{ font-weight:500; color:#5B6B7C; }
.fiche.edt .edt-tableau td{ padding:0; border:0; vertical-align:middle; }
.fiche.edt .edt-vide{ background:repeating-linear-gradient(135deg, #F5F8FA 0 2mm, #fff 2mm 4mm); border-radius:4px; }
.fiche.edt .edt-case{ background:var(--c-voile); border-left:2.2mm solid var(--c) !important; border-radius:4px; overflow:hidden; }
.fiche.edt .edt-case > div{ padding:0.5mm 2mm; display:flex; flex-direction:column; justify-content:center; overflow:hidden; line-height:1.12; }
.fiche.edt .edt-case b{ font-family:var(--titres); font-weight:800; font-size:9pt; color:#152F52; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fiche.edt .edt-case em{ font-size:7.8pt; font-style:italic; color:#152F52; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fiche.edt .edt-case .edt-heure{ font-size:6.8pt; font-weight:600; color:#4A5868; font-variant-numeric:tabular-nums; }
.fiche.edt .edt-case.moyen > div{ flex-direction:row; align-items:baseline; gap:2mm; }
.fiche.edt .edt-case.moyen em{ flex:1 1 auto; }
.fiche.edt .edt-case.moyen .edt-heure{ margin-left:auto; flex:0 0 auto; }
.fiche.edt .edt-case.petit > div{ flex-direction:row; align-items:baseline; gap:1.5mm; padding-top:0; padding-bottom:0; }
.fiche.edt .edt-case.petit b{ font-size:8pt; }
.fiche.edt .edt-case.petit em{ font-size:7pt; }
.fiche.edt .edt-case.petit .edt-heure{ display:none; }
.fiche.edt .edt-tableau.serre .edt-case b{ font-size:7pt; }
.fiche.edt .edt-tableau.serre .edt-case em, .fiche.edt .edt-tableau.serre tbody th.edt-h{ font-size:6pt; }
.fiche.edt .edt-volumes{ display:flex; flex-wrap:wrap; align-items:center; gap:1.2mm 4.5mm; margin-top:3mm; padding-top:2mm; border-top:1.5px solid var(--marine);
  font-size:7.8pt; color:var(--texte); }
.fiche.edt .edt-volumes b{ font-family:var(--titres); font-weight:800; color:var(--marine); margin-right:1mm; }
.fiche.edt .edt-volumes i{ display:inline-block; width:2.6mm; height:2.6mm; border-radius:1mm; background:var(--c); margin-right:1.2mm; vertical-align:-0.3mm; }
.fiche.edt .edt-volumes .edt-total{ margin-left:auto; font-weight:700; color:var(--marine); }

/* Tableau de l'emploi du temps affiché dans l'application */
.fiche.edt.ecran{ font-size:9.5pt; }
.fiche.edt.ecran .edt-tableau thead th.aujourdhui{ background:#2BA7A0; }
.fiche.edt.compacte .edt-tableau col.edt-col-h{ width:17mm; }
.fiche.edt.compacte .edt-tableau tbody th.edt-h span{ display:none; }
.fiche.edt.compacte .edt-tableau thead th{ font-size:9pt; padding:1.2mm 0; }
.fiche.edt.compacte .edt-case b{ font-size:8pt; }
.fiche.edt.compacte .edt-case em{ font-size:7pt; }
.fiche.edt.compacte .edt-case .edt-heure{ display:none; }
.fiche.edt.compacte .edt-case > div{ padding-left:1.4mm; padding-right:1mm; }
.fiche.edt.compacte .edt-case{ border-left-width:1.6mm !important; }
.fiche.edt.compacte .edt-tableau{ border-spacing:0.8mm 0.5mm; }
.fiche.edt.ecran .edt-case{ cursor:default; }
.fiche.edt.ecran .edt-case:hover{ filter:brightness(.97); }
/* Alignement unique : texte toujours calé à gauche, contre la bande de couleur */
.fiche.edt .edt-case > div{ align-items:flex-start; text-align:left; }
.fiche.edt .edt-case.moyen > div, .fiche.edt .edt-case.petit > div{ justify-content:flex-start; align-items:baseline; }
.fiche.edt .edt-case b, .fiche.edt .edt-case em{ max-width:100%; }
/* Même typographie pour tous les créneaux : matière puis précision sur la même ligne si la place manque,
   horaire en dessous seulement quand le créneau est assez haut (sinon il se lit dans la colonne des heures) */
.fiche.edt .edt-case.petit b, .fiche.edt .edt-case.moyen b{ font-size:9pt; }
.fiche.edt .edt-case.petit em, .fiche.edt .edt-case.moyen em{ font-size:7.8pt; flex:0 1 auto; }
.fiche.edt .edt-case.moyen .edt-heure{ display:none; }
.fiche.edt.compacte .edt-case b{ font-size:8pt !important; }
.fiche.edt.compacte .edt-case em{ font-size:7pt !important; }
.fiche.edt .edt-tableau.serre .edt-case b{ font-size:7pt !important; }
.fiche.edt .edt-tableau.serre .edt-case em{ font-size:6pt !important; }

/* ====== V7.11 : cases de l'emploi du temps — texte qui passe à la ligne, rien de coupé ====== */
.fiche.edt .bandeau{ padding-top:4pt; }
.fiche.edt h1{ font-size:16pt; margin:0 0 4pt; }
.fiche.edt .edt-case > div{ display:flex !important; flex-direction:column !important; justify-content:center !important; align-items:stretch !important;
  gap:0.3mm; padding:0.35mm 1.7mm !important; overflow:hidden; }
.fiche.edt .edt-txt{ margin:0; line-height:1.12; font-size:calc(9pt * var(--f, 1)); color:#152F52; overflow-wrap:anywhere; }
.fiche.edt .edt-txt b{ font-family:var(--titres); font-weight:800; font-size:1em !important; white-space:normal !important; overflow:visible !important; display:inline !important; }
.fiche.edt .edt-txt em{ font-family:var(--corps); font-style:italic; font-weight:500; font-size:0.87em !important; white-space:normal !important; overflow:visible !important;
  display:inline !important; color:#2B3F5C; margin-left:0.8mm; }
.fiche.edt .edt-case .edt-heure{ display:block !important; font-size:calc(6.8pt * var(--f, 1)) !important; margin:0 !important; }
.fiche.edt .edt-tableau tbody th.edt-h{ font-size:calc(7pt * var(--f, 1)); }

/* ====== Verso : répartition horaire ====== */
.fiche.edt .edt-verso{ break-before:page; page-break-before:always; }
.fiche.edt .rep-intro{ font-size:8.5pt; color:#4A5868; margin:0 0 4mm; }
.fiche.edt .rep-corps{ display:grid; grid-template-columns:1fr 72mm; gap:8mm; align-items:start; }
.fiche.edt .rep-tableau{ width:100%; border-collapse:collapse; font-size:8.5pt; font-variant-numeric:tabular-nums; }
.fiche.edt .rep-tableau th, .fiche.edt .rep-tableau td{ padding:1.5mm 2mm; text-align:center; border-bottom:1px solid #E3EAEF; white-space:nowrap; background:none; vertical-align:middle; }
.fiche.edt .rep-tableau thead th{ background:var(--marine); color:#fff; font-family:var(--titres); font-weight:800; font-size:8.5pt; border:0; }
.fiche.edt .rep-tableau thead th:first-child{ text-align:left; border-radius:4px 0 0 0; }
.fiche.edt .rep-tableau thead th:last-child{ border-radius:0 4px 0 0; }
.fiche.edt .rep-tableau tbody th, .fiche.edt .rep-tableau tfoot th{ text-align:left; font-weight:600; color:var(--marine); font-size:8.5pt; }
.fiche.edt .rep-tableau i{ display:inline-block; width:2.8mm; height:2.8mm; border-radius:0.8mm; background:var(--c); margin-right:2mm; vertical-align:-0.4mm; }
.fiche.edt .rep-tableau .section td{ text-align:left; font-family:var(--titres); font-weight:800; font-size:7.5pt; letter-spacing:.05em; text-transform:uppercase;
  color:#1E7F79; background:#F3F7F9; padding:1.2mm 2mm; }
.fiche.edt .rep-tableau .detail th{ font-weight:500; padding-left:8mm; color:#4A5868; font-size:8pt; }
.fiche.edt .rep-tableau .detail td{ color:#4A5868; font-size:8pt; }
.fiche.edt .rep-tableau .sem{ font-weight:700; color:var(--marine); }
.fiche.edt .rep-tableau .part{ font-weight:600; color:#4A5868; }
.fiche.edt .rep-tableau .sous-total th, .fiche.edt .rep-tableau .sous-total td{ font-weight:700; background:#EAF6F5; color:var(--marine); }
.fiche.edt .rep-tableau tfoot th, .fiche.edt .rep-tableau tfoot td{ font-weight:800; background:#E6ECF2; color:var(--marine); border-bottom:0; }
.fiche.edt .rep-tableau .rien{ color:#B3C0CC; }
.fiche.edt .rep-camembert{ margin:0; text-align:center; }
.fiche.edt .rep-camembert svg{ width:62mm; height:62mm; }
.fiche.edt .rep-camembert path, .fiche.edt .rep-camembert circle{ stroke:#fff; stroke-width:1.2; }
.fiche.edt .rep-camembert text{ font-family:var(--titres); font-size:10px; font-weight:800; text-anchor:middle; dominant-baseline:central; }
.fiche.edt .rep-camembert figcaption{ font-size:8pt; color:#4A5868; margin:2mm 0 3mm; }
.fiche.edt .rep-camembert ul{ list-style:none; margin:0; padding:0; text-align:left; font-size:8pt; display:grid; gap:1.2mm; }
.fiche.edt .rep-camembert li{ display:flex; align-items:center; gap:2mm; }
.fiche.edt .rep-camembert li span{ flex:1; }
.fiche.edt .rep-camembert li b{ color:var(--marine); }
.fiche.edt .rep-camembert i{ display:inline-block; width:2.8mm; height:2.8mm; border-radius:0.8mm; background:var(--c); }
/* Cases vides : totalement blanches (plus de hachures qui ressemblent à un bloc) */
.fiche.edt .edt-vide{ background:none !important; }

/* Déroulé coupé entre deux pages : chaque partie garde sa colonne, même quand
   la suite de la phase ne contient plus le minutage ni le nom de la phase */
.fiche .d-ligne > .minutage{ grid-column:1; grid-row:1; }
.fiche .d-ligne > .phase-col{ grid-column:2; grid-row:1; }
.fiche .d-ligne > .flux{ grid-column:3; grid-row:1; }
.fiche .d-ligne > .diff{ grid-column:4; grid-row:1; }
.fiche .d-ligne > .diff, .fiche .d-ligne > .flux{ align-self:start; }

/* Texte enrichi du cahier journal : un paragraphe par ligne, lignes vides conservées */
.fiche .creneau-texte p.riche{ margin:0; }
.fiche .creneau-texte p.ligne-vide{ height:1.42em; }
.fiche .creneau-texte u{ text-decoration:underline; text-underline-offset:1.5pt; }

/* ====== V7.16 : déroulé en deux colonnes, blocs professeur / élèves / différenciation ====== */
.fiche .deroule{ --cols:31mm 1fr; }
.fiche .phase{ border-left:1.2px solid #8FA0B2; border-right:1.2px solid #8FA0B2; border-bottom:1.2px solid #8FA0B2; }
.fiche .phase.haut-de-page{ border-top:1.2px solid #8FA0B2; }
.fiche .d-entete{ background:var(--marine); border-bottom:0; }
.fiche .d-entete span{ color:#FFFFFF; font-family:var(--titres); font-weight:800; font-size:8.5pt; padding:4pt 6pt; text-align:left !important; }
.fiche .d-entete span:first-child{ border-right:1.2px solid #8FA0B2; }
.fiche .d-ligne{ grid-template-columns:var(--cols); }
.fiche .d-ligne > .phase-col{ grid-column:1; grid-row:1; align-self:stretch; display:block; text-align:left; background:var(--vert-voile);
  border-right:1.2px solid #8FA0B2; padding:7pt 6pt 8pt; }
.fiche .d-ligne > .flux{ grid-column:2; grid-row:1; align-self:start; padding:7pt 8pt 8pt; }
.fiche .d-ligne > .minutage, .fiche .d-ligne > .diff{ display:none; }
.fiche .phase-col p{ margin:0; }
.fiche .phase-numero{ display:flex; align-items:center; gap:4pt; margin-bottom:4pt !important; }
.fiche .phase-num{ display:inline-block; width:15pt; height:15pt; line-height:13pt; border-radius:50%; border:1.2px solid var(--marine); background:#FFFFFF;
  text-align:center; font-family:var(--titres); font-weight:800; font-size:8.5pt; color:var(--marine); margin:0; box-sizing:border-box; flex:0 0 auto; }
.fiche .phase-mot{ font-size:7pt; font-weight:600; color:#4A5868; text-transform:uppercase; letter-spacing:.04em; }
.fiche .phase-nom{ font-family:var(--titres); font-weight:800; font-size:9.5pt; line-height:1.25; color:var(--marine); display:block; hyphens:manual; -webkit-hyphens:manual; overflow-wrap:break-word; }
.fiche .phase-precision{ font-size:8pt; font-weight:600; line-height:1.25; color:var(--marine); margin-top:2pt !important; }
.fiche .phase-duree{ display:inline-block; margin-top:5pt !important; font-weight:700; font-size:9pt; color:#FFFFFF; background:var(--marine); border-radius:5px; padding:0.5pt 5pt; line-height:1.4; }
.fiche .phase-orga{ display:block; margin-top:5pt !important; font-size:7.5pt; font-weight:500; line-height:1.3; color:var(--texte); border:1px solid #9AAAB8; border-radius:5px; padding:1pt 4pt; }
.fiche .phase-suite{ display:none; font-size:7.5pt; font-style:italic; color:#4A5868; margin-top:4pt !important; }
.fiche .phase-col.suite .phase-suite{ display:block; }

/* Matériel de la phase, en tête de la colonne Déroulé */
.fiche .flux > * + *{ margin-top:5pt; }
.fiche .phase-mat{ display:block; padding:0 0 5pt; border-bottom:1px dotted #9AAAB8; }
.fiche .phase-mat .mat-label{ display:flex; align-items:center; gap:3pt; font-size:7.5pt; font-weight:700; color:var(--marine); text-transform:uppercase; letter-spacing:.04em; margin:0 0 2pt; padding:0; }
.fiche .phase-mat ul{ margin:0; padding-left:12pt; font-size:8.5pt; }
.fiche .phase-mat li + li{ margin-top:1pt; }

/* Blocs : un titre explicite + une forme propre à chaque rôle (lisible aussi en noir et blanc)
   Professeur : filet plein marine ; Le professeur dit : fond bleuté + filet épais ;
   Élèves : filet en tirets turquoise, décalé à droite ; Les élèves disent : fond vert pâle, décalé ;
   Différenciation : cadre en pointillés safran */
.fiche .blk{ break-inside:avoid; border-radius:0 6px 6px 0; padding:3pt 7pt 4pt; }
.fiche .blk-tete{ display:flex; align-items:center; gap:3.5pt; margin:0 0 1.5pt; font-size:7pt; font-weight:800; text-transform:uppercase; letter-spacing:.05em; font-family:var(--titres); }
.fiche .blk-tete svg{ width:10pt; height:10pt; flex:0 0 auto; }
.fiche .blk-texte{ margin:0; font-size:9.5pt; line-height:1.38; color:var(--texte); }
.fiche .blk-texte + .blk-texte{ margin-top:2pt; }
.fiche .blk-texte.cite{ font-weight:500; }
.fiche .blk-prof{ border-left:3pt solid var(--marine); }
.fiche .blk-prof .blk-tete{ color:var(--marine); }
.fiche .blk-oral{ border-left:3pt solid var(--marine); background:var(--marine-voile); }
.fiche .blk-oral .blk-tete{ color:var(--marine); }
.fiche .blk-eleves{ margin-left:10mm; border-left:3pt dashed #1E7F79; }
.fiche .blk-eleves .blk-tete{ color:#1E7F79; }
.fiche .blk-dit{ margin-left:10mm; border-left:3pt solid #4E9A43; background:#EDF7EB; }
.fiche .blk-dit .blk-tete{ color:#2F6E28; }
.fiche .blk-diff{ border:1.2px dashed #C98A12; border-left:3pt dotted #C98A12; background:#FDF6E6; border-radius:6px; }
.fiche .blk-diff .blk-tete{ color:#8A5A00; }
.fiche .blk-diff b{ font-weight:700; }

/* Légende */
.fiche .legende .lg{ display:inline-block; font-size:7pt; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:0.5pt 4pt; border-radius:3px; }
.fiche .legende .lg-prof{ border-left:3pt solid var(--marine); color:var(--marine); }
.fiche .legende .lg-eleves{ border-left:3pt dashed #1E7F79; color:#1E7F79; }
.fiche .legende .lg-diff{ border:1px dashed #C98A12; color:#8A5A00; background:#FDF6E6; }

/* Fiche insérée dans le cahier journal (format compact) */
.fiche .fiche-corps.compacte .deroule{ --cols:26mm 1fr; }
.fiche .fiche-corps.compacte .blk-texte{ font-size:9pt; }
.fiche .fiche-corps.compacte .blk-eleves, .fiche .fiche-corps.compacte .blk-dit{ margin-left:7mm; }
.fiche .phase.suite-de-page .d-entete{ display:grid !important; }
/* Activité des élèves : fond turquoise très clair pour qu'elle ressorte autant que les autres blocs */
.fiche .blk-eleves{ background:#E8F6F5; }

/* ====== V7.18 : consigne mise en évidence ====== */
.fiche .blk-consigne{ border:2pt solid var(--marine); border-left:6pt solid var(--marine); border-radius:6px; background:#FFF1CC; padding:0 8pt 5pt 0; }
.fiche .blk-consigne .blk-tete{ display:inline-flex; background:var(--marine); color:#FFFFFF; font-size:8pt; letter-spacing:.08em; padding:2pt 7pt 2pt 5pt;
  border-radius:0 0 6px 0; margin:0 0 3pt; }
.fiche .blk-consigne .blk-tete svg{ width:11pt; height:11pt; }
.fiche .blk-consigne .blk-texte{ padding-left:7pt; font-size:10.5pt; font-weight:700; color:#152F52; line-height:1.4; }
.fiche .legende .lg-consigne{ background:var(--marine); color:#FFFFFF; }
/* Bandeau « CONSIGNE » sur toute la largeur (rendu fiable dans le PDF téléchargé) */
.fiche .blk-consigne{ padding:0 0 5pt 0; border-radius:4px; }
.fiche .blk-consigne .blk-tete{ display:flex; width:auto; border-radius:0; margin:0 0 4pt; padding:2.5pt 7pt; background:var(--marine); color:#FFFFFF; }
.fiche .blk-consigne .blk-tete span{ color:#FFFFFF; }
.fiche .blk-consigne .blk-texte{ padding:0 8pt; }

/* ====== V7.19 : le déroulé s'enchaîne sans saut de page inutile ======
   Une phase ou un bloc peut se couper entre deux pages ; seuls les titres restent collés à ce qui suit. */
.fiche .deroule .phase{ break-inside:auto; }
.fiche .deroule .blk{ break-inside:auto; }
.fiche .deroule .blk-tete, .fiche .deroule .d-titre, .fiche .deroule .d-suite, .fiche .deroule .d-entete,
.fiche .deroule .mat-label, .fiche .deroule .temps-titre{ break-after:avoid; }
.fiche .deroule .blk-texte{ orphans:2; widows:2; }
.fiche .phase.suite-de-page .d-suite{ display:flex !important; }
/* La page de présentation reste seule : le déroulé commence en haut de la page suivante (fiche seule, pas dans le cahier journal) */
.fiche > .deroule{ break-before:page; }
/* En-tête des pages de suite, posé dans la marge du haut juste au-dessus du contenu */
.entete-suite{ position:absolute; left:0; right:0; bottom:100%; }
.entete-suite .phase{ border-bottom:0 !important; border-radius:12px 12px 0 0; }
.entete-suite .d-suite{ display:flex !important; }
.entete-suite .d-entete{ display:grid !important; }
.fiche .phase.sous-entete{ border-top:0 !important; border-radius:0 !important; }
/* Colonne « Phase » recopiée sur une page de suite : elle n'agrandit pas la ligne (aucun décalage du contenu) */
.fiche .d-ligne{ position:relative; }
.fiche .d-ligne > .phase-col.suite{ position:absolute; top:0; bottom:0; left:0; width:31mm; box-sizing:border-box; overflow:hidden; }
.fiche .fiche-corps.compacte .d-ligne > .phase-col.suite{ width:26mm; }
.fiche .d-ligne > .phase-col.suite .phase-orga, .fiche .d-ligne > .phase-col.suite .phase-precision{ display:none; }
/* Intitulés longs (ex. « Institutionnalisation ») : coupure avec trait d'union plutôt que débordement */
.fiche .phase-nom{ hyphens:auto; -webkit-hyphens:auto; overflow-wrap:anywhere; }
