/* calendrier_v2.css — calendrier des instances révisé (agenda + grille + volet détail) */
@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500&display=swap");

.c2 { --bleu: #001C31; --vert: #09A38C; --vert-txt: #067264; --rouge: #BF0C2B; --vert-pale: #C5FCEE;
  --bleu-clair: #869ECE; --texte-doux: #516B8F; --trait: #E8E0DC; --fond-doux: #fbfaf8;
  font-family: 'Public Sans', system-ui, sans-serif; color: var(--bleu); }
.c2 * { box-sizing: border-box; }
.c2 p { margin: 0; }
.c2 button { font-family: inherit; cursor: pointer; }
.c2 .mono { font-family: 'JetBrains Mono', monospace; }

/* Couleurs par catégorie */
.c2 .cat-ecole    { --cat: var(--vert);  --cat-tint: #eefaf7; --cat-encre: var(--bleu); }
.c2 .cat-national { --cat: var(--rouge); --cat-tint: #f9eaed; --cat-encre: #fff; }
.c2 .cat-autre    { --cat: var(--bleu);  --cat-tint: #eef2f5; --cat-encre: #fff; }
/* Séance passée : on GARDE la couleur du type (classe cat-* toujours posée)
   et un texte lisible — seule une légère atténuation la fait reculer. */

/* En-tête */
.c2-tete { display: flex; align-items: flex-end; justify-content: space-between;
  gap: 24px; padding: 30px 32px 20px; flex-wrap: wrap; }
.c2-eyebrow { font: 500 11.5px/1 'JetBrains Mono', monospace; letter-spacing: .12em;
  text-transform: uppercase; color: var(--vert-txt); margin-bottom: 10px; }
.c2-tete h1 { font: 700 32px/1.1 'Space Grotesk', sans-serif; margin: 0; }
.c2-tete h1 span { color: var(--bleu-clair); font-weight: 400; }
.c2-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.c2-nav-groupe { border: 1px solid var(--trait); border-radius: 4px; display: flex; overflow: hidden; }
.c2-nav-groupe a { padding: 10px 14px; font: 600 13px/1 'Public Sans', sans-serif;
  color: var(--texte-doux); text-decoration: none; border-right: 1px solid var(--trait); background: #fff; }
.c2-nav-groupe a:last-child { border-right: none; }
.c2-nav-groupe a:hover { background: var(--fond-doux); color: var(--bleu); }
.c2-creer { background: var(--vert); color: var(--bleu); font: 600 13px/1 'Public Sans', sans-serif;
  padding: 12px 16px; border-radius: 4px; text-decoration: none; }

/* Barre de filtres */
.c2-barre { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 14px 32px; border-top: 1px solid var(--trait); border-bottom: 1px solid var(--trait);
  background: var(--fond-doux); }
.c2-barre-titre { font: 500 11px/1 'JetBrains Mono', monospace; letter-spacing: .08em;
  text-transform: uppercase; color: #7d7669; margin-right: 4px; }
.c2-puce { border: 1px solid var(--trait); background: #fff; color: var(--texte-doux);
  font: 500 12.5px/1 'Public Sans', sans-serif; padding: 8px 13px; border-radius: 20px; }
.c2-puce[aria-pressed="true"] { background: var(--bleu); border-color: var(--bleu); color: #fff; font-weight: 600; }
.c2-vues { margin-left: auto; display: flex; border: 1px solid var(--trait); border-radius: 4px; overflow: hidden; }
.c2-vues button { border: none; background: #fff; color: var(--texte-doux);
  font: 500 12.5px/1 'Public Sans', sans-serif; padding: 9px 14px; }
.c2-vues button[aria-pressed="true"] { background: var(--vert); color: var(--bleu); font-weight: 600; }

/* Coque deux colonnes */
.c2-coque { display: grid; grid-template-columns: minmax(0, 1fr) 340px; }
.c2-volet { border-left: 1px solid var(--trait); background: var(--fond-doux); min-width: 0; }

/* Agenda */
.c2-agenda { padding: 8px 32px 32px; }
.c2-section { display: flex; align-items: center; gap: 12px; padding: 24px 0 10px; }
.c2-section span { font: 600 11px/1 'JetBrains Mono', monospace; letter-spacing: .1em;
  text-transform: uppercase; color: var(--vert-txt); }
.c2-section.passees span { color: #7d7669; }
.c2-section i { flex: 1; height: 1px; background: var(--trait); }
.c2-jour { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 20px;
  padding: 14px 0; border-top: 1px solid var(--trait); }
.c2-jour-date { text-align: center; }
.c2-jour-date .j { font: 500 11px/1 'JetBrains Mono', monospace; color: #7d7669; text-transform: uppercase; }
.c2-jour-date .n { font: 700 26px/1.1 'Space Grotesk', sans-serif; margin-top: 2px; }
.c2-jour.auj .c2-jour-date .j, .c2-jour.auj .c2-jour-date .n { color: var(--vert); }
.c2-ev { display: block; width: 100%; text-align: left; background: #fff;
  border: 1px solid var(--trait); border-left: 4px solid var(--cat); padding: 14px 16px; }
.c2-ev + .c2-ev { margin-top: 10px; }
.c2-ev[aria-current="true"] { background: var(--cat-tint); border-color: var(--cat); }
.c2-ev-haut { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; flex-wrap: wrap; }
.c2-badge { font: 600 11px/1 'JetBrains Mono', monospace; background: var(--cat);
  color: var(--cat-encre); padding: 5px 8px; border-radius: 3px; }
.c2-heure { font: 500 12.5px/1 'JetBrains Mono', monospace; color: var(--texte-doux); }
.c2-ev-titre { font: 600 16px/1.3 'Public Sans', sans-serif; margin-bottom: 4px; color: var(--bleu); }
.c2-ev.passe .c2-ev-titre { color: #33445a; }
.c2-ev-meta { font: 400 13.5px/1.45 'Public Sans', sans-serif; color: var(--texte-doux); }
.c2-ev.passe { background: #faf9f7; }

/* Grille */
.c2-grille-zone { padding: 20px 32px 32px; }
.c2-grille { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--trait); }
.c2-grille .entete { padding: 11px 12px; background: var(--fond-doux); border-bottom: 1px solid var(--trait);
  border-right: 1px solid var(--trait); font: 500 11px/1 'JetBrains Mono', monospace;
  letter-spacing: .06em; text-transform: uppercase; color: var(--texte-doux); }
.c2-grille .entete:nth-child(7) { border-right: none; }
.c2-case { min-height: 106px; padding: 9px 10px; border-right: 1px solid var(--trait);
  border-bottom: 1px solid var(--trait); background: #fff; }
.c2-case:nth-child(7n) { border-right: none; }
.c2-case.hors { background: #faf9f6; }
.c2-case.auj { background: #f2fbf8; outline: 2px solid var(--vert); outline-offset: -2px; }
.c2-case-num { font: 500 12.5px/1 'JetBrains Mono', monospace; color: var(--texte-doux); margin-bottom: 7px; }
.c2-case.auj .c2-case-num { font-weight: 700; color: var(--vert); }
.c2-pastille { display: block; width: 100%; text-align: left; background: var(--cat-tint);
  border: none; border-left: 3px solid var(--cat); padding: 6px 8px; margin-bottom: 5px; }
.c2-pastille.cat-national { background: var(--rouge); }
.c2-pastille.cat-autre { background: var(--bleu); }
.c2-pastille.cat-national .t, .c2-pastille.cat-autre .t { color: #fff; }
.c2-pastille.cat-national .h, .c2-pastille.cat-autre .h { color: #e6dede; }
.c2-pastille.passe { opacity: .78; }
.c2-pastille[aria-current="true"] { outline: 2px solid var(--cat); outline-offset: -2px; }
.c2-pastille .t { font: 600 11.5px/1.2 'Public Sans', sans-serif; overflow-wrap: anywhere; }
.c2-pastille .h { font: 500 10.5px/1.2 'JetBrains Mono', monospace; color: var(--texte-doux); margin-top: 3px; }
.c2-reste { border: none; background: transparent; padding: 2px 0 0;
  font: 600 11px/1.2 'Public Sans', sans-serif; color: var(--vert-txt); }
.c2-note { font: 400 13px/1.5 'Public Sans', sans-serif; color: var(--texte-doux); margin-top: 14px; }

/* Volet droit — aperçu */
.c2-apercu { padding: 26px 22px; display: grid; gap: 26px; align-content: start; }
.c2-apercu h2 { font: 600 11px/1 'JetBrains Mono', monospace; letter-spacing: .1em;
  color: var(--vert-txt); margin: 0 0 12px; }
.c2-mini { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.c2-mini .jl { font: 500 10px/1 'JetBrains Mono', monospace; color: #7d7669; padding-bottom: 4px; }
.c2-mini .d { padding: 5px 0 4px; font: 500 11.5px/1 'JetBrains Mono', monospace; color: var(--texte-doux); }
.c2-mini .d.hors { color: #c9c3b9; }
.c2-mini .d.avec { color: var(--bleu); font-weight: 700; }
.c2-mini .d.auj { background: var(--vert); color: var(--bleu); border-radius: 3px; font-weight: 700; }
.c2-mini .points { display: flex; gap: 2px; justify-content: center; height: 4px; margin-top: 3px; }
.c2-mini .points i { width: 4px; height: 4px; border-radius: 50%; background: var(--cat); display: block; }
.c2-mini .points i.passe { opacity: .4; }
.c2-legende { display: grid; gap: 9px; font: 400 13px/1.35 'Public Sans', sans-serif; color: var(--texte-doux); }
.c2-legende div { display: flex; align-items: center; gap: 9px; }
.c2-legende span { width: 12px; height: 12px; flex: none; }
.c2-aide { background: var(--vert-pale); padding: 16px 18px; }
.c2-aide strong { display: block; font: 600 14.5px/1.35 'Public Sans', sans-serif; margin-bottom: 6px; }
.c2-aide p { font: 400 13px/1.5 'Public Sans', sans-serif; color: #00544a; }

/* Volet droit — détail */
.c2-detail { display: none; }
.c2-detail.ouvert { display: block; }
.c2-detail-tete { padding: 22px; background: var(--cat); }
.c2-detail-tete .haut { display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 12px; }
.c2-detail-tete .badge { font: 600 11px/1 'JetBrains Mono', monospace; background: #fff;
  color: var(--bleu); padding: 6px 9px; border-radius: 3px; }
.c2-detail.cat-national .c2-detail-tete .badge,
.c2-detail.cat-autre .c2-detail-tete .badge { background: var(--vert); }
.c2-detail-tete .fermer { border: none; background: transparent; font: 500 18px/1 'Public Sans', sans-serif;
  color: #c9d6df; padding: 2px 4px; }
.c2-detail-tete h3 { font: 600 19px/1.3 'Public Sans', sans-serif; color: #fff; margin: 0 0 6px; }
.c2-detail-tete p { font: 400 13.5px/1.5 'Public Sans', sans-serif; color: #c9d6df; }
.c2-detail-corps { padding: 20px 22px; display: grid; gap: 20px; align-content: start; }
.c2-ligne { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 12px;
  font: 400 13.5px/1.45 'Public Sans', sans-serif; }
.c2-ligne dt { font: 500 11px/1.45 'JetBrains Mono', monospace; color: #7d7669; text-transform: uppercase; }
.c2-ligne dd { margin: 0; }
.c2-bloc h4 { font: 600 11px/1 'JetBrains Mono', monospace; letter-spacing: .1em;
  text-transform: uppercase; color: var(--vert-txt); margin: 0 0 10px; }
.c2-odj { font: 400 13.5px/1.6 'Public Sans', sans-serif; color: var(--bleu);
  margin: 0; padding-left: 20px; }
.c2-resume { font: 400 13.5px/1.6 'Public Sans', sans-serif; color: var(--texte-doux); }
.c2-docs { display: grid; gap: 7px; }
.c2-docs a { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  background: #fff; border: 1px solid var(--trait); padding: 11px 13px;
  font: 500 13.5px/1.3 'Public Sans', sans-serif; color: var(--bleu); text-decoration: none; }
.c2-docs a span { font: 500 10.5px/1 'JetBrains Mono', monospace; color: #7d7669; text-transform: uppercase; }
.c2-part { display: flex; flex-wrap: wrap; gap: 6px; }
.c2-part span { font: 500 12px/1 'Public Sans', sans-serif; background: #fff;
  border: 1px solid var(--trait); color: var(--texte-doux); padding: 7px 10px; border-radius: 20px; }
.c2-actions { display: grid; gap: 8px; border-top: 1px solid var(--trait); padding-top: 16px; }
.c2-actions a { display: block; text-align: center; border: 1px solid var(--trait); background: #fff;
  font: 600 13.5px/1 'Public Sans', sans-serif; color: var(--bleu); padding: 12px;
  border-radius: 4px; text-decoration: none; }
.c2-actions a.visio { background: var(--vert); border-color: var(--vert); color: var(--bleu); }

/* Bascule de vue */
.c2[data-vue="agenda"] .c2-grille-zone { display: none; }
.c2[data-vue="grille"] .c2-agenda { display: none; }

/* Sous 1040 px : agenda obligatoire, volet sous le calendrier */
@media screen and (max-width: 1040px) {
  .c2-coque { grid-template-columns: minmax(0, 1fr); }
  .c2-volet { border-left: none; border-top: 1px solid var(--trait); }
  .c2-vues { display: none; }
  .c2 .c2-grille-zone { display: none; }
  .c2 .c2-agenda { display: block; }
}
@media screen and (max-width: 700px) {
  .c2-tete, .c2-barre, .c2-agenda { padding-left: 18px; padding-right: 18px; }
  .c2-tete h1 { font-size: 26px; }
  .c2-jour { grid-template-columns: 56px minmax(0, 1fr); gap: 14px; }
}
