/* ============ PALETTE (modifiez les couleurs ici) ============ */
:root{
  --encre:#33333d;
  --c-objectifs:#fdf3d8;  --b-objectifs:#e2b100;  --t-objectifs:#8a6d00;
  --c-rituel:#efe6ff;     --b-rituel:#8a5bd8;      --t-rituel:#6a44b8;
  --c-vocab:#ffe8d9;      --b-vocab:#e0782f;       --t-vocab:#b35c1d;
  --c-lecture:#dfeeff;    --b-lecture:#3d7fd8;     --t-lecture:#2b5fa8;
  --c-entrain:#dbf2e5;    --b-entrain:#2f9e63;     --t-entrain:#218050;
  --c-jeu:#ffdfec;        --b-jeu:#df5a95;         --t-jeu:#b23d75;
}

*{box-sizing:border-box;margin:0;padding:0}

body{
  font-family:"Segoe UI","Nunito","Helvetica Neue",Arial,sans-serif;
  background:#eceef3;color:var(--encre);
  display:flex;justify-content:center;padding:28px 12px;
  print-color-adjust:exact;-webkit-print-color-adjust:exact;
}

.feuille{
  width:100%;max-width:840px;background:#fff;
  border-radius:16px;overflow:hidden;
  box-shadow:0 12px 32px rgba(25,35,70,.18);
}

/* ---------------- EN-TÊTE (dates FR + AR) ---------------- */
.entete{
  background:linear-gradient(135deg,#5b6ee1 0%,#8a5bd8 100%);
  color:#fff;text-align:center;padding:24px 22px;
}
.entete .meta{
  display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;
  font-size:.85rem;margin-bottom:14px;opacity:.95;
}
.entete h1{font-size:1.85rem;font-weight:800;letter-spacing:.5px}
.entete .date-ar{
  margin-top:4px;font-size:1.15rem;font-weight:700;direction:rtl;
  font-family:"Amiri","Sakkal Majalla","Segoe UI",Arial,serif;
}
.entete .niveau{
  margin-top:12px;display:inline-block;padding:4px 18px;
  border-radius:999px;font-size:.8rem;letter-spacing:1.5px;
  text-transform:uppercase;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.45);
}

/* ---------------- BLOC OBJECTIFS ---------------- */
.objectifs{
  background:var(--c-objectifs);
  border-bottom:4px solid var(--b-objectifs);
  padding:18px 26px;
}
.objectifs h2{
  display:flex;align-items:center;gap:8px;margin-bottom:10px;
  color:var(--t-objectifs);font-size:1.05rem;
  text-transform:uppercase;letter-spacing:1px;
}
.objectifs li{margin:5px 0 5px 22px;line-height:1.5}

/* ---------------- TABLEAU DES MODULES ---------------- */
table.programme{width:100%;border-collapse:collapse}
.programme th{
  background:#f3f4f9;color:#5a5a6a;text-align:left;
  font-size:.72rem;text-transform:uppercase;letter-spacing:1.5px;
  padding:11px 18px;border-bottom:2px solid #d9dbe6;
}
.programme td{padding:16px 18px;vertical-align:top;border-bottom:1px solid #e7e9f0}
td.module{width:210px}
td.duree{width:115px}

.module-nom{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1rem}
.module-ico{
  width:38px;height:38px;border-radius:10px;flex:none;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
}
.contenu p{margin-bottom:6px;line-height:1.45}
.contenu p:last-child{margin-bottom:0}
.contenu .detail{color:#77777f;font-size:.88rem}
.contenu strong{color:#14141c}

.badge{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:5px 12px;border-radius:999px;font-weight:800;font-size:.85rem;
}

/* couleur de chaque ligne */
tr.rituel   td.module{background:var(--c-rituel);box-shadow:inset 5px 0 0 var(--b-rituel)}
tr.rituel   .module-ico{background:var(--b-rituel)}
tr.rituel   .badge{background:var(--c-rituel);border:1.5px solid var(--b-rituel);color:var(--t-rituel)}

tr.vocab    td.module{background:var(--c-vocab);box-shadow:inset 5px 0 0 var(--b-vocab)}
tr.vocab    .module-ico{background:var(--b-vocab)}
tr.vocab    .badge{background:var(--c-vocab);border:1.5px solid var(--b-vocab);color:var(--t-vocab)}

tr.lecture  td.module{background:var(--c-lecture);box-shadow:inset 5px 0 0 var(--b-lecture)}
tr.lecture  .module-ico{background:var(--b-lecture)}
tr.lecture  .badge{background:var(--c-lecture);border:1.5px solid var(--b-lecture);color:var(--t-lecture)}

tr.entrain  td.module{background:var(--c-entrain);box-shadow:inset 5px 0 0 var(--b-entrain)}
tr.entrain  .module-ico{background:var(--b-entrain)}
tr.entrain  .badge{background:var(--c-entrain);border:1.5px solid var(--b-entrain);color:var(--t-entrain)}

tr.jeu      td.module{background:var(--c-jeu);box-shadow:inset 5px 0 0 var(--b-jeu)}
tr.jeu      .module-ico{background:var(--b-jeu)}
tr.jeu      .badge{background:var(--c-jeu);border:1.5px solid var(--b-jeu);color:var(--t-jeu)}

/* ---------------- PIED DE PAGE ---------------- */
.pied{
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  flex-wrap:wrap;padding:18px 26px;background:#f7f8fc;
}
.total{font-weight:800;display:flex;align-items:center;gap:8px}
.obs{flex:1;min-width:230px;color:#9a9aa5;font-size:.85rem}
.obs .lignes{border-bottom:2px dotted #c9cbd6;height:17px;margin-top:6px}

/* ---------------- RESPONSIVE ---------------- */
@media (max-width:640px){
  .programme thead{display:none}
  .programme tr{display:block;border-bottom:1px solid #e7e9f0}
  .programme td{display:block;width:100%!important;border-bottom:none;padding:8px 18px}
  td.module{padding-top:14px}
}

/* ---------------- IMPRESSION ---------------- */
@media print{
  body{background:#fff;padding:0;display:block}
  .feuille{max-width:none;box-shadow:none;border-radius:0}
  .programme tr{break-inside:avoid}
}