/* =============================================================================
   MATHÉSCIENCES — FICHES ÉLÈVES
   Complément de programme.css : planches de cartes à découper, fiches A4,
   affiches à agrandir. Même charte navy/or, mêmes polices, même pagination A4.
   ============================================================================= */

:root{
  --cut:#a9b0ba;          /* traits de coupe */
  --fold:#c9cfd7;         /* traits de pliage */
  --write:#dfe4ea;        /* lignes d'écriture */
}

/* Marges de page plus courtes que le classeur pédagogique : les planches
   de cartes ont besoin de largeur. 190 mm × 279 mm de zone utile. */
@page{
  size:A4; margin:10mm 10mm 8mm;
  @bottom-left{content:"Mathésciences — Fiches élèves, programme informatique cycle 3";
    font-family:"Inter",sans-serif;font-size:7.6pt;color:#a2a9b4}
  @bottom-right{content:counter(page);font-family:"Inter",sans-serif;font-size:7.6pt;color:#a2a9b4}
}
.pg{padding:10mm 10mm 8mm}
@media print{
  /* les marges viennent de @page : la page ne doit pas les doubler */
  .pg{padding:0}
  .pg.cover{margin:-10mm -10mm -8mm;padding:24mm 20mm}
  .part{min-height:270mm;height:auto}
}

/* ------------------------------------------------------------ tête de doc */
.dhead{display:flex;align-items:center;gap:3.5mm;margin:0 0 4mm;
  padding-bottom:2.4mm;border-bottom:2px solid var(--navy)}
.dnum{flex:0 0 auto;width:11mm;height:11mm;border-radius:2.6mm;background:var(--navy);
  color:var(--gold);font-family:"Anton",sans-serif;font-size:12.5pt;line-height:1;
  display:flex;align-items:center;justify-content:center}
.dhead .dt{flex:1 1 auto;min-width:0}
.dhead .dt b{display:block;font-family:"Anton",sans-serif;font-weight:400;font-size:14pt;
  line-height:1.08;color:var(--navy);text-transform:uppercase;letter-spacing:.01em}
.dhead .dt span{display:block;font-size:7.8pt;color:var(--muted);font-weight:600;margin-top:.6mm}
.dtag{flex:0 0 auto;font-size:7pt;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  border-radius:10mm;padding:1.3mm 3.4mm;white-space:nowrap}
.dtag.plast{background:var(--navy);color:var(--gold)}
.dtag.conso{background:var(--gold);color:var(--navy)}
.dtir{flex:0 0 auto;font-size:7.6pt;font-weight:700;color:var(--deep);white-space:nowrap;
  border:1px solid var(--hair);border-radius:10mm;padding:1.2mm 3mm;background:var(--cream)}

.dcons{background:var(--cream);border:1px solid var(--hair);border-radius:2.6mm;
  padding:2.2mm 3.4mm;font-size:8.2pt;line-height:1.42;margin:0 0 3.5mm}
.dcons b{color:var(--deep)}
.dcons.verso{background:var(--navy);color:#dbe3ee;border-color:var(--navy)}
.dcons.verso b{color:var(--gold)}

/* ------------------------------------------------------- planches à couper */
.coupewrap{position:relative}
.cm{position:absolute;width:5mm;height:5mm;pointer-events:none}
.cm-tl{left:-3mm;top:-3mm;border-left:.5px solid var(--navy);border-top:.5px solid var(--navy)}
.cm-tr{right:-3mm;top:-3mm;border-right:.5px solid var(--navy);border-top:.5px solid var(--navy)}
.cm-bl{left:-3mm;bottom:-3mm;border-left:.5px solid var(--navy);border-bottom:.5px solid var(--navy)}
.cm-br{right:-3mm;bottom:-3mm;border-right:.5px solid var(--navy);border-bottom:.5px solid var(--navy)}

.planche{display:grid;gap:0;border-left:.5px dashed var(--cut);border-top:.5px dashed var(--cut)}
.planche > *{border-right:.5px dashed var(--cut);border-bottom:.5px dashed var(--cut);
  overflow:hidden;position:relative}

.carte{padding:3mm 3.2mm;display:flex;flex-direction:column;background:var(--white)}
.carte .cnum{position:absolute;right:2mm;top:1.4mm;font-size:6.4pt;font-weight:800;
  color:#b9c0c9;letter-spacing:.06em}
.carte .cico{margin:1mm auto 1.6mm;color:var(--navy)}
.carte .cico svg{display:block;width:15mm;height:15mm}
.carte .clab{font-size:9pt;font-weight:700;line-height:1.25;color:var(--ink-strong);text-align:center}
.carte .csub{font-size:7.2pt;line-height:1.3;color:var(--muted);text-align:center;margin-top:1mm}
.carte .ctxt{font-size:8.6pt;line-height:1.36;color:var(--ink-strong)}
.carte .cfoot{margin-top:auto;font-size:6.8pt;color:var(--muted);font-weight:600;
  letter-spacing:.05em;text-transform:uppercase}
.carte.mid{justify-content:center}
.carte.vide{background:var(--soft)}
.carte.vide .clab{color:var(--muted);font-weight:600}

/* verso d'autocorrection */
.carte.rep{background:var(--soft);justify-content:center;text-align:center}
.carte.rep .rlab{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;
  font-size:12.5pt;line-height:1.05;color:var(--navy)}
.carte.rep .rwhy{font-size:7.4pt;line-height:1.32;color:var(--ink);margin-top:1.6mm}
.carte.rep .rnum{position:absolute;left:2mm;top:1.4mm;font-size:6.4pt;font-weight:800;color:#b9c0c9}

/* pastilles de catégorie */
.pastille{display:inline-block;font-size:6.6pt;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;border-radius:10mm;padding:.7mm 2.4mm;margin:0 auto 1.4mm}
.pa-e{background:var(--navy);color:var(--gold)}
.pa-t{background:var(--deep);color:var(--white)}
.pa-s{background:var(--gold);color:var(--navy)}
.pa-n{background:#e7ebf0;color:var(--ink-strong)}

/* étiquettes plates */
.etq{padding:2.4mm 3.4mm;display:flex;align-items:center;gap:2.6mm;background:var(--white)}
.etq .eico{color:var(--deep)}
.etq .eico svg{display:block;width:8mm;height:8mm}
.etq .etx{flex:1 1 auto;min-width:0;font-size:9.2pt;font-weight:700;color:var(--ink-strong);
  line-height:1.25;font-family:"Inter",monospace}
.etq .ehint{font-size:7pt;color:var(--muted);font-weight:600;display:block;margin-top:.6mm}
.etq.creux{background:var(--soft)}
.etq.creux .etx{color:var(--muted);font-weight:600}

/* ------------------------------------------------------------ blocs fiche */
.bloc{margin:0 0 4mm}
.bloc:last-child{margin-bottom:0}
.bloc > h3{font-size:8.6pt;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--deep);margin:0 0 2mm}
.consigne{background:var(--navy);color:#dbe3ee;border-radius:3mm;padding:3mm 4mm;
  font-size:8.8pt;line-height:1.45;margin:0 0 4mm}
.consigne b{color:var(--gold)}

.ident{display:flex;gap:4mm;margin:0 0 4mm;font-size:8.4pt;font-weight:700;color:var(--navy)}
.ident > div{flex:1 1 0;border-bottom:1.2px solid var(--navy);padding-bottom:1.4mm}
.ident span{color:var(--muted);font-weight:600}

.lignes{border-bottom:1px solid var(--write);
  background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--h) - 1px),
    var(--write) calc(var(--h) - 1px),var(--write) var(--h));
  background-size:100% var(--h)}
.zone{border:1.2px dashed var(--navy);border-radius:2.6mm;position:relative;background:var(--white)}
.zone > .zl{position:absolute;left:3mm;top:2mm;font-size:7.2pt;font-weight:800;
  letter-spacing:.09em;text-transform:uppercase;color:var(--deep)}
.zone.plein{border-style:solid;border-color:var(--hair)}

.cadre{border:1.4px solid var(--navy);border-radius:3mm;padding:3.4mm 4mm;background:var(--white)}
.cadre.doux{background:var(--soft);border-color:var(--hair);border-width:1px}
.cadre.or{background:var(--cream);border-color:var(--deep)}

table.fiche{width:100%;border-collapse:collapse}
table.fiche th{background:var(--navy);color:var(--white);font-size:7.6pt;padding:2mm 2.6mm;
  text-transform:uppercase;letter-spacing:.06em;text-align:left}
table.fiche td{border:.8px solid var(--hair);padding:2mm 2.6mm;font-size:8.4pt;vertical-align:top}
table.fiche td.vd{background:var(--white)}
table.fiche tr:nth-child(even) td{background:var(--soft)}
table.fiche tr:nth-child(even) td.vd{background:var(--white)}
table.fiche td.c{text-align:center}
table.fiche td.n{font-family:"Anton",sans-serif;color:var(--deep);text-align:center;
  width:8mm;font-size:11pt}
.coche{display:inline-block;width:4.4mm;height:4.4mm;border:1.1px solid var(--navy);
  border-radius:1mm;background:var(--white);vertical-align:middle}

/* quadrillages */
.quad{display:grid;gap:0;border-left:1.1px solid var(--navy);border-top:1.1px solid var(--navy);
  width:fit-content;margin:0 auto}
.quad > div{border-right:1.1px solid var(--navy);border-bottom:1.1px solid var(--navy);
  display:flex;align-items:center;justify-content:center;font-size:8pt;font-weight:800;
  color:var(--navy);position:relative}
.quad > div.dep{background:var(--gold)}
.quad > div.cib{background:var(--navy);color:var(--gold)}
.quad > div.obs{background:repeating-linear-gradient(45deg,#e7ebf0 0 2mm,#cfd6de 2mm 4mm)}
.quad.fin > div{border-color:var(--hair);border-width:.7px}

/* bandes de cases (binaire) */
.bande{display:flex;gap:0;margin:0 0 2.4mm;align-items:center}
.bande .blab{width:12mm;flex:0 0 auto;font-size:9pt;font-weight:800;color:var(--deep);
  font-family:"Anton",sans-serif;font-size:13pt}
.bande .bcases{display:flex}
.bande .bcases i{display:block;width:9mm;height:9mm;border:1px solid var(--navy);
  border-left-width:0;font-style:normal}
.bande .bcases i:first-child{border-left-width:1px}
.bande .bcases i.un{background:var(--navy)}

/* planche d'affiche (à agrandir en A3) */
.affiche{border:2.4px solid var(--navy);border-radius:5mm;padding:9mm 10mm;background:var(--white);
  display:flex;flex-direction:column;gap:6mm;min-height:228mm;justify-content:space-between}
.affiche h2{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;
  font-size:26pt;line-height:1.02;color:var(--navy);margin:0}
.affiche .gros{font-size:15pt;line-height:1.35;color:var(--ink-strong)}
.affiche .interdit{background:#fdecea;border:1.8px solid var(--ko);border-radius:3.5mm;
  padding:5mm 6mm;font-size:14pt;line-height:1.3;font-weight:800;color:#a33a28}
.affiche .permis{background:#eaf6f0;border:1.8px solid var(--ok);border-radius:3.5mm;
  padding:5mm 6mm;font-size:14pt;line-height:1.3;font-weight:800;color:#1f6f4b}
.affiche ol{margin:0;padding-left:7mm;font-size:14pt;line-height:1.45}
.affiche ol li{margin-bottom:3mm}
.a3note{font-size:7.4pt;color:var(--muted);font-weight:600;text-align:right;margin:2.4mm 0 0}

/* paires A5 : deux exemplaires par A4, séparés par un trait de coupe */
.paire > div:first-child{border-bottom:.5px dashed var(--cut);
  margin-bottom:3mm;padding-bottom:3mm}
.a5{border:1px solid var(--hair);border-radius:3mm;padding:4mm 5mm;background:var(--white);
  height:100%;display:flex;flex-direction:column}
.a5 h3{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;font-size:12.5pt;
  color:var(--navy);margin:0 0 2mm;line-height:1.05}
.a5 .k{font-size:7pt;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--deep);margin:0 0 1.4mm}
.a5 p{font-size:8.4pt;line-height:1.42}
.a5 .sig{margin-top:auto;font-size:7.6pt;color:var(--muted);border-top:1px solid var(--hair);
  padding-top:2mm}

/* colonnes */
.c2{display:grid;grid-template-columns:1fr 1fr;gap:4mm}
.c3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4mm}
.c21{display:grid;grid-template-columns:2fr 1fr;gap:4mm}
.c12{display:grid;grid-template-columns:1fr 2fr;gap:4mm}

/* page de résultats de recherche (reconstitution) */
.serp{border:1.2px solid var(--hair);border-radius:3mm;overflow:hidden;background:var(--white)}
.serp .sbar{background:var(--soft);border-bottom:1px solid var(--hair);padding:3mm 4mm;
  display:flex;align-items:center;gap:3mm}
.serp .sbar .lo{font-family:"Anton",sans-serif;font-size:12pt;color:var(--navy)}
.serp .sbar .q{flex:1 1 auto;background:var(--white);border:1px solid var(--hair);
  border-radius:10mm;padding:1.8mm 4mm;font-size:9pt;color:var(--ink-strong)}
.serp .res{padding:3mm 4mm;border-bottom:1px solid var(--hair)}
.serp .res:last-child{border-bottom:0}
.serp .res .u{font-size:7.6pt;color:#3b7a4f}
.serp .res .t{font-size:10.4pt;color:#1a4b8c;font-weight:600;line-height:1.25;margin:.6mm 0}
.serp .res .d{font-size:8.2pt;line-height:1.4;color:var(--ink)}
.serp .res.pub{background:#fffaf0}
.serp .res .pubmark{display:inline-block;font-size:6.6pt;font-weight:800;border:1px solid var(--deep);
  color:var(--deep);border-radius:1.4mm;padding:.3mm 1.6mm;margin-right:2mm;vertical-align:1px}

/* article / message */
.art{border:1px solid var(--hair);border-radius:3mm;background:var(--white);overflow:hidden}
.art .ah{background:var(--soft);padding:2.6mm 3.4mm;border-bottom:1px solid var(--hair)}
.art .ah b{display:block;font-size:10pt;color:var(--navy);line-height:1.2}
.art .ah span{font-size:7.4pt;color:var(--muted);font-weight:600}
.art .ab{padding:3mm 3.4mm;font-size:8.4pt;line-height:1.45}
.msg{border:1.2px solid var(--hair);border-radius:3mm;background:var(--soft);padding:3mm 3.6mm;
  font-size:9pt;line-height:1.4;font-family:"Inter",sans-serif}
.msg b{color:var(--ko)}

/* enveloppe à plier */
.env{position:relative;border:1.2px solid var(--navy);border-radius:1mm;background:var(--white)}
.env .rabat{border-bottom:1px dashed var(--fold);text-align:center;font-size:7.2pt;
  color:var(--muted);padding:2mm;font-weight:600}
.env .corps{padding:4mm;font-size:8.4pt}
.env .colle{border-top:1px dashed var(--fold);font-size:7pt;color:var(--muted);
  text-align:center;padding:2mm;font-weight:600}

/* passeport */
.pass{border:2px solid var(--navy);border-radius:4mm;overflow:hidden}
.pass .ph{background:var(--navy);color:var(--cream);padding:4mm 5mm;display:flex;
  align-items:center;gap:4mm}
.pass .ph b{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;
  font-size:16pt;color:var(--gold);line-height:1}
.pass .ph span{font-size:8pt;color:#b9c4d3}
.pass .pb{padding:4mm 5mm}

/* disque des 24 heures */
.disque{display:block;margin:0 auto;width:172mm;height:172mm}
.legende{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2mm 4mm;font-size:8.2pt}
.legende i{display:inline-block;width:4mm;height:4mm;border-radius:1mm;border:1px solid var(--navy);
  margin-right:2mm;vertical-align:-.5mm;font-style:normal}

/* sommaire / inventaire */
table.inv{width:100%;border-collapse:collapse;font-size:7.8pt}
table.inv th{background:var(--navy);color:var(--white);padding:1.8mm 2.2mm;font-size:7pt;
  text-transform:uppercase;letter-spacing:.06em;text-align:left}
table.inv td{border-bottom:.7px solid var(--hair);padding:1.5mm 2.2mm;vertical-align:top;line-height:1.3}
table.inv tr:nth-child(even) td{background:var(--soft)}
table.inv td.n{font-family:"Anton",sans-serif;color:var(--deep);text-align:center;width:7mm}
table.inv td.q{width:26mm;color:var(--ink-strong);font-weight:600}
table.inv td.s{width:22mm}
table.inv td.p{width:12mm;text-align:right;color:var(--muted);font-weight:700}
.sq{display:inline-block;font-size:6.4pt;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  border-radius:10mm;padding:.5mm 2.2mm;white-space:nowrap}
.sq.plast{background:var(--navy);color:var(--gold)}
.sq.conso{background:var(--gold);color:var(--navy)}
.sq.renvoi{background:#e7ebf0;color:var(--ink-strong)}

/* intercalaire de partie */
.part{background:var(--navy);color:var(--cream);display:flex;flex-direction:column;
  justify-content:center;min-height:274mm}
.part h1{font-family:"Anton",sans-serif;font-weight:400;text-transform:uppercase;font-size:40pt;
  line-height:.98;color:var(--white);margin:0 0 6mm}
.part h1 em{font-style:normal;color:var(--gold)}
.part .lead{font-size:12pt;line-height:1.6;color:#cfd8e4;max-width:135mm}
.part .facts{display:flex;gap:4mm;margin:10mm 0 0}
.part .fact{background:var(--navy-soft);border-radius:4mm;padding:4.5mm 5mm;flex:1 1 0}
.part .fact b{display:block;font-family:"Anton",sans-serif;font-weight:400;font-size:21pt;
  color:var(--gold);line-height:1;margin-bottom:2mm}
.part .fact span{font-size:8.4pt;color:#b9c4d3;line-height:1.35;display:block}

@media screen and (max-width:800px){
  .c2,.c3,.c21,.c12{grid-template-columns:1fr}
}
