/* suivi_v2.css — page « Suivis et réunions » (espace secrétariat), charte v2
   thème rouge admin. Réf. zip « Suivis CEE-ENSA - révisé ». Rendu pleine
   largeur (detailsmain). Édition sur place légère. */

.sv2-page {
  --rouge: #BF0C2B;
  --rouge-fonce: #8E0A20;
  --orange: #E48E68;
  max-width: 1320px;
  margin: 0 auto;
  padding: 32px 28px 72px;
  color: var(--marine, #001C31);
  font-family: var(--texte, 'Public Sans'), system-ui, sans-serif;
}

.sv2-page * {
  box-sizing: border-box;
}

.sv2-page a {
  color: var(--rouge);
  text-decoration: none;
}

.sv2-page a:hover {
  color: var(--marine, #001C31);
}

/* neutralise les styles globaux form{} (fond blanc + ombre, style.css)
   et button{} (fond vert, button.css) — les .sv2-* ci-dessous sont
   préfixés .sv2-page pour repasser devant ce reset */
.sv2-page form {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  box-shadow: none;
  border-radius: 0;
}

.sv2-page button {
  margin: 0;
}

/* en-tête */
.sv2-tete {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: flex-end;
  z-index: 5;
  justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--marine, #001C31);
}

.sv2-surtitre {
  display: block;
  font: 500 11px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--rouge);
  margin-bottom: 10px;
}

.sv2-tete h1 {
  font: 600 30px/1.15 var(--titre, 'Space Grotesk'), sans-serif;
  color: var(--marine, #001C31);
  margin: 0 0 8px;
}

.sv2-tete p {
  font: 400 14.5px/1.6 var(--texte, 'Public Sans'), sans-serif;
  color: var(--ardoise, #516B8F);
  margin: 0;
  max-width: 46em;
}

.sv2-bouton {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--rouge);
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 12px 18px;
  font: 600 13.5px/1 var(--texte, 'Public Sans'), sans-serif;
  white-space: nowrap;
  cursor: pointer;
}

.sv2-bouton:hover {
  background: var(--marine, #001C31);
  color: #fff;
}

.sv2-bouton .p {
  font: 500 16px/1 var(--donnee, 'JetBrains Mono'), monospace;
}

/* bandeau de statistiques */
.sv2-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  border: 1px solid var(--filet, #E8E0DC);
  border-top: none;
  background: #fff;
}

.sv2-stat {
  padding: 16px 20px;
  border-right: 1px solid var(--filet, #E8E0DC);
}

.sv2-stat:last-child {
  border-right: none;
}

.sv2-stat span {
  display: block;
  font: 500 10.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ardoise, #516B8F);
  margin-bottom: 8px;
}

.sv2-stat strong {
  font: 500 24px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--marine, #001C31);
}

.sv2-stat strong.txt {
  font-size: 16px;
  line-height: 1.2;
}

.sv2-stat em {
  font-style: normal;
  font: 400 13px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--ardoise, #516B8F);
}

/* barre de tri / filtres, collante */
.sv2-barre {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: center;
  justify-content: space-between;
  background: var(--BGadmin, #FFE4DF);
  padding: 14px 0;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--filet, #E8E0DC);
}

.sv2-barre-groupe {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.sv2-barre-lib {
  font: 500 10.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ardoise, #516B8F);
  margin-right: 2px;
}

.sv2-chip {
  border: 1px solid var(--filet, #E8E0DC);
  background: #fff;
  color: var(--marine, #001C31);
  border-radius: 3px;
  padding: 8px 13px;
  cursor: pointer;
  font: 500 12.5px/1 var(--texte, 'Public Sans'), sans-serif;
  text-decoration: none;
}

.sv2-chip:hover {
  border-color: var(--rouge);
  color: var(--marine, #001C31);
}

.sv2-chip.actif {
  background: var(--rouge);
  border-color: var(--rouge);
  color: #fff;
}

.sv2-barre select {
  border: 1px solid var(--bord-champ, #C9C2B4);
  border-radius: 3px;
  padding: 8px 10px;
  font: 500 12.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--marine, #001C31);
  background: #fff;
}

.sv2-barre-sep {
  width: 1px;
  height: 20px;
  background: var(--filet, #E8E0DC);
  margin: 0 4px;
}

.sv2-densite {
  background: none;
  border: none;
  padding: 0 4px;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  font: 400 13px/1 var(--texte, 'Public Sans'), sans-serif;
  color: var(--rouge);
}

.sv2-densite:hover {
  color: var(--marine, #001C31);
}

/* grille des écoles — compacte par défaut, .sv2--aere = plus large / aéré */
.sv2-grille {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 12px;
  align-items: start;
  margin-top: 16px;
}

.sv2--aere .sv2-grille {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr));
  gap: 20px;
}

.sv2-carte {
  background: #fff;
  border: 1px solid var(--filet, #E8E0DC);
  border-top: 2px solid var(--marine, #001C31);
  min-width: 0;
}

.sv2-carte-tete {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  align-items: baseline;
  justify-content: space-between;
  padding: 11px 13px 9px;
  border-bottom: 1px solid var(--filet, #E8E0DC);
}

.sv2--aere .sv2-carte-tete {
  padding: 16px 20px 13px;
}

.sv2-carte-tete h2 {
  font-size: 15.5px;
}

.sv2--aere .sv2-carte-tete h2 {
  font-size: 18px;
}

.sv2--aere .sv2-entree {
  padding: 13px 18px;
}

.sv2--aere .sv2-entree-h {
  grid-template-columns: 72px minmax(0, 1fr) auto;
}

.sv2-carte-tete h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  min-width: 0;
  font: 600 17px/1.25 var(--titre, 'Space Grotesk'), sans-serif;
  color: var(--marine, #001C31);
}

.sv2-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  font: 500 11px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--ardoise, #516B8F);
  white-space: nowrap;
}

.sv2-meta .sep {
  width: 1px;
  height: 11px;
  background: var(--filet, #E8E0DC);
}

.sv2-puce {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
}

.sv2-puce.r {
  background: var(--rouge);
}

.sv2-puce.o {
  background: var(--orange);
}

.sv2-puce.g {
  background: var(--bord-champ, #C9C2B4);
}

/* badge référent */
.sv2-ref {
  flex: none;
  border: none;
  border-radius: 3px;
  padding: 4px 6px;
  cursor: pointer;
  font: 500 10.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .04em;
  background: var(--rouge);
  color: #fff;
}

.sv2-ref:hover {
  background: var(--marine, #001C31);
}

.sv2-ref.vide {
  background: #fff;
  color: var(--ardoise, #516B8F);
  border: 1px dashed var(--bord-champ, #C9C2B4);
}

.sv2-ref.vide:hover {
  border-color: var(--rouge);
  color: var(--rouge);
}

.sv2-mini {
  background: #fff;
  border: 1px solid var(--filet, #E8E0DC);
  border-radius: 3px;
  color: var(--rouge);
  font: 500 13px/1 var(--donnee, 'JetBrains Mono'), monospace;
  padding: 5px 9px;
  cursor: pointer;
}

.sv2-mini:hover {
  border-color: var(--rouge);
  background: var(--BGadmin, #FFE4DF);
}

/* réunions à venir */
.sv2-avenir {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 18px 0;
}

.sv2-avenir a {
  display: inline-block;
  background: var(--BGadmin, #FFE4DF);
  color: var(--rouge-fonce, #8E0A20);
  border-radius: 3px;
  padding: 6px 9px;
  font: 500 11px/1.2 var(--donnee, 'JetBrains Mono'), monospace;
}

.sv2-avenir a:hover {
  background: var(--rouge);
  color: #fff;
}

/* entrées */
.sv2-liste {
  display: block;
}

.sv2-entree {
  border-bottom: 1px solid #F5F0EE;
  padding: 8px 13px;
}

.sv2-entree:last-child {
  border-bottom: none;
}

.sv2-entree-h {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 10px;
}

.sv2-date {
  font: 500 13px/1.15 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--marine, #001C31);
  padding-top: 2px;
}

.sv2-date span {
  display: block;
  font-size: 10.5px;
  color: var(--ardoise, #516B8F);
}

.sv2-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  margin-bottom: 5px;
}

.sv2-tag {
  font: 500 10.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-radius: 3px;
  padding: 4px 7px;
}

.sv2-tag.reu {
  color: var(--rouge-fonce, #8E0A20);
  background: var(--BGadmin, #FFE4DF);
}

.sv2-tag.note {
  color: var(--ardoise, #516B8F);
  background: var(--aplat, #F7F6F3);
  border: 1px solid var(--filet, #E8E0DC);
}

.sv2-cr {
  font: 400 13.5px/1.55 var(--texte, 'Public Sans'), sans-serif;
  color: var(--marine, #001C31);
  position: relative;
  overflow: hidden;
}

.sv2-cr.court {
  max-height: 84px;
}

.sv2-cr.court::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 26px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
}

.sv2-cr p {
  margin: 0 0 3px;
}

.sv2-cr :is(ul, ol) {
  margin: 4px 0;
  padding-left: 18px;
}

.sv2-vide {
  font: italic 400 13px/1.5 var(--texte, 'Public Sans'), sans-serif;
  color: var(--ardoise, #516B8F);
  margin: 0;
}

.sv2-toggle-cr {
  background: none;
  border: none;
  padding: 4px 0 0;
  cursor: pointer;
  font: 500 11.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--rouge);
}

.sv2-toggle-cr:hover {
  color: var(--marine, #001C31);
  text-decoration: underline;
}

.sv2-entree-actions {
  display: flex;
  gap: 6px;
  align-items: flex-start;
}

.sv2-entree-actions a,
.sv2-entree-actions button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--filet, #E8E0DC);
  border-radius: 3px;
  background: #fff;
  color: var(--rouge);
  font-size: 11px;
  cursor: pointer;
  padding: 0;
}

.sv2-entree-actions form {
  margin: 0;
  padding: 0;
  background: none;
  box-shadow: none;
  border-radius: 0;
}

.sv2-entree-actions .del {
  color: var(--ardoise, #516B8F);
}

.sv2-entree-actions a:hover,
.sv2-entree-actions button:hover {
  border-color: var(--rouge);
  background: var(--BGadmin, #FFE4DF);
}

/* formulaires en place */
.sv2-page .sv2-form {
  background: #FFF9F8;
  border-left: 3px solid var(--rouge);
  padding: 14px 18px;
  display: grid;
  gap: 10px;
  border-bottom: 1px solid var(--filet, #E8E0DC);
}

.sv2-page .sv2-form.hero {
  border: 1px solid var(--rouge);
  border-top: none;
}

.sv2-form-lib {
  font: 500 10px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rouge);
}

.sv2-form-grille {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.sv2-form label {
  display: grid;
  gap: 5px;
  font: 500 10px/1 var(--donnee, 'JetBrains Mono'), monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ardoise, #516B8F);
}

.sv2-form input,
.sv2-form select,
.sv2-form textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--bord-champ, #C9C2B4);
  border-radius: 3px;
  padding: 8px 10px;
  font: 400 13.5px/1.5 var(--texte, 'Public Sans'), sans-serif;
  color: var(--marine, #001C31);
  background: #fff;
}

.sv2-form textarea {
  resize: vertical;
  min-height: 90px;
}

.sv2-form :is(input, select, textarea):focus {
  outline: 2px solid var(--rouge);
  outline-offset: -1px;
  border-color: var(--rouge);
}

.sv2-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  align-items: center;
}

.sv2-form-actions button {
  border-radius: 3px;
  font: 600 12.5px/1 var(--texte, 'Public Sans'), sans-serif;
  padding: 9px 15px;
  border: 1px solid transparent;
  cursor: pointer;
}

.sv2-form-actions button[type=submit] {
  background: var(--rouge);
  color: #fff;
}

.sv2-form-actions button[type=submit]:hover {
  background: var(--marine, #001C31);
}

.sv2-form-actions .g {
  background: #fff;
  border-color: var(--bord-champ, #C9C2B4);
  color: var(--ardoise, #516B8F);
}

.sv2-form-actions .g:hover {
  border-color: var(--marine, #001C31);
  color: var(--marine, #001C31);
}

.sv2-form-actions .aide {
  font: 400 11.5px/1.4 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--ardoise, #516B8F);
}

.sv2-pastilles {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.sv2-pastille {
  border: 1px solid var(--filet, #E8E0DC);
  background: #fff;
  color: var(--marine, #001C31);
  border-radius: 3px;
  padding: 6px 9px;
  cursor: pointer;
  font: 500 12px/1 var(--donnee, 'JetBrains Mono'), monospace;
}

.sv2-pastille:hover,
.sv2-pastille.actif {
  border-color: var(--rouge);
  background: var(--rouge);
  color: #fff;
}

.sv2-plus {
  display: block;
  width: 100%;
  background: var(--aplat, #F7F6F3);
  border: none;
  border-top: 1px solid var(--filet, #E8E0DC);
  border-radius: 0;
  margin: 0;
  padding: 11px 14px;
  text-align: left;
  cursor: pointer;
  font: 500 12.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--rouge);
}

.sv2-plus:hover {
  background: var(--BGadmin, #FFE4DF);
  color: var(--rouge-fonce, #8E0A20);
}

/* autres écoles */
.sv2-autres {
  margin-top: 36px;
  padding-top: 22px;
  border-top: 1px solid var(--marine, #001C31);
}

.sv2-autres-tete {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 14px;
}

.sv2-autres-tete h2 {
  font: 600 17px/1.3 var(--titre, 'Space Grotesk'), sans-serif;
  color: var(--marine, #001C31);
  margin: 0;
}

.sv2-autres-tete span {
  font: 500 11.5px/1 var(--donnee, 'JetBrains Mono'), monospace;
  color: var(--ardoise, #516B8F);
}

.sv2-tags-ecoles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sv2-ecole-vide {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #fff;
  border: 1px solid var(--filet, #E8E0DC);
  border-radius: 3px;
  padding: 6px 8px 6px 12px;
}

.sv2-ecole-vide>button.nom {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font: 400 13.5px/1 var(--texte, 'Public Sans'), sans-serif;
  color: var(--marine, #001C31);
}

.sv2-ecole-vide>button.nom:hover {
  color: var(--rouge);
  text-decoration: underline;
}

[hidden] {
  display: none !important;
}