/* Feuille historique de la plateforme : les pages et composants d'avant la charte UC
   (vœux, Jour J, recherche, corpus, administration…). Les règles sans usage en ont été
   retirées le 14/10/2026 ; les pages refaites ont chacune leur feuille. */

/* ===== Identité graphique (héritée de Paris au centre, à personnaliser) =====
   sélecteur aligné sur celui de Pico pour gagner la spécificité */
:root, :root:not([data-theme=dark]), [data-theme=light] {
  --pac-nuit: #091057;      /* bleu nuit — marque, titres */
  --pac-bleu: #0a4bd6;      /* bleu vif — actions, liens */
  --pac-bleu-fonce: #0940b8;
  --pac-bleu-pale: #e8eefc;
  --pac-orange: #ff6900;    /* accent */
  --pac-orange-pale: #fff0e5;
  --pac-orange-fonce: #c25400;
  --pac-fond: #f6f7fb;
  --pac-bordure: #e3e6ee;

  --pico-font-size: 100%;
  --pico-border-radius: 6px;
  --pico-primary: var(--pac-bleu);
  --pico-primary-background: var(--pac-bleu);
  --pico-primary-border: var(--pac-bleu);
  --pico-primary-hover: var(--pac-bleu-fonce);
  --pico-primary-hover-background: var(--pac-bleu-fonce);
  --pico-primary-hover-border: var(--pac-bleu-fonce);
  --pico-primary-focus: rgba(10, 75, 214, .25);
  --pico-primary-underline: rgba(10, 75, 214, .4);
  --pico-background-color: var(--pac-fond);
  --pico-card-background-color: #ffffff;
  --pico-muted-border-color: var(--pac-bordure);
  --pico-h1-color: var(--pac-nuit);
  --pico-h2-color: var(--pac-nuit);
  --pico-h3-color: var(--pac-nuit);
  --pico-h4-color: var(--pac-nuit);
}
html, body { background: var(--pac-fond); }
main.container { max-width: 1100px; padding-top: 1.2rem; }
h2, h3 { letter-spacing: -.01em; }

/* boutons : largeur au contenu (sauf opt-in .pleine-largeur) */
button, button[type="submit"], input[type="submit"], [role="button"] { width: auto; }
button.pleine-largeur, .pleine-largeur { width: 100%; }
input[type="file"] { width: 100%; }

.filigrane-test { position: fixed; inset: 0; z-index: 900; pointer-events: none;
                  display: flex; align-items: center; justify-content: center; overflow: hidden; }
.filigrane-test span { font-size: 9vw; font-weight: 800; text-transform: uppercase;
                       letter-spacing: .08em; color: rgba(255,105,0,.10); white-space: nowrap;
                       transform: rotate(-24deg); user-select: none; }
/* version d'essai : ce qui tourne, et la dernière poussée refusée */
.bandeau-essai { background: #fff6d6; border-bottom: 1px solid #e8d48a; color: #4d4000;
                 font-size: .85rem; padding: .4rem 1rem; }
.bandeau-essai code { font-size: .8125rem; }
.bandeau-essai-echec { color: #8a1c00; margin-top: .2rem; }
.bandeau-essai-bilan { margin-top: .2rem; }
/* l'essai fait tourner exactement le site de la production : rien à mettre en production */
.bandeau-essai-identique { background: #e3f4e8; border-bottom-color: #a6d8b5; color: #1d5b2f; }
.bandeau-essai-bilan a { color: inherit; font-weight: 600; }
/* rapport des contrôles et de l'audit IA de la version d'essai (/essai/rapport) */
.essai-rapport { max-width: 60rem; }
.essai-rapport table { width: 100%; border-collapse: collapse; margin: .5rem 0 1.5rem; font-size: .875rem; }
.essai-rapport th, .essai-rapport td { text-align: left; vertical-align: top; padding: .4rem .5rem;
  border-bottom: 1px solid var(--pac-bordure); }
.essai-rapport .verdict { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-weight: 600;
  font-size: .8125rem; white-space: nowrap; }
.essai-rapport .v-prendre { background: #e3f4e8; color: #1d5b2f; }
.essai-rapport .v-reprendre { background: #fff1d6; color: #6b4300; }
.essai-rapport .v-ecarter, .essai-rapport .g-critique { background: #fde4df; color: #8a1c00; }
.essai-rapport .g-importante { background: #fff1d6; color: #6b4300; }
.essai-rapport .g-mineure { background: #eef1f6; color: #33415c; }
.essai-rapport .pour-milan { background: #f5f7fb; border-left: 4px solid #4385bb; padding: .75rem 1rem;
  white-space: pre-line; }
.essai-rapport .discret { color: #5a6275; font-size: .8125rem; }
.rch-menu { position: absolute; top: 2.4rem; left: 0; min-width: 24rem; max-width: 34rem; z-index: 60;
  max-height: 70vh; overflow-y: auto;
  background: #fff; color: var(--pac-nuit); border: 1px solid var(--pac-bordure); border-radius: 12px;
  box-shadow: 0 12px 32px rgba(20,26,60,.18); padding: .3rem; }
.rch-menu a { display: block; padding: .45rem .6rem; border-radius: 8px; text-decoration: none; color: var(--pac-nuit);
  font-size: .88rem; opacity: 1; }
.rch-menu a:hover, .rch-menu a.actif { background: #eef0f4; text-decoration: none; }
.rch-menu .t { font-size: .8125rem; text-transform: uppercase; letter-spacing: .04em; color: #6b7180; font-weight: 700;
  margin-right: .4rem; }
.rch-menu .n { font-weight: 700; color: #38405a; margin-right: .3rem; }
.rch-menu .x { display: block; color: #5a6072; font-size: .82rem; margin-top: .1rem; }
.rch-menu mark { background: #ffe58a; color: inherit; padding: 0 .06em; border-radius: .2em; }
.rch-menu .pied { display: block; padding: .4rem .6rem; font-size: .82rem; color: #5a6072; border-top: 1px solid var(--pac-bordure);
  margin-top: .2rem; }
.rch-menu .pied b { color: var(--pac-nuit); }

/* liste : le succinct est lu de tous, le détaillé se déplie, la fiche est au bout */
.lire-suite { display: inline-block; margin-top: .5rem; font-size: .86rem; font-weight: 600;
              color: var(--pac-bleu); text-decoration: none; }
.lire-suite:hover { text-decoration: underline; text-underline-offset: .25em; }
/* fiche : les repères cadrent la lecture, donc ils précèdent le résumé */
.reperes { background: var(--pac-fond); border: 1px solid var(--pac-bordure); border-radius: 8px;
           padding: .6rem .8rem; margin-bottom: .8rem; font-size: .92rem; line-height: 1.7; }

/* retoucher un texte est une action rare : elle ne doit pas peser à l'écran */
/* le bloc du résumé n'a pas de titre de section : l'action se range à droite */
#resume > .section-tete { justify-content: flex-end; margin-bottom: -.2rem; }
#resume.carte-section { border: 0; background: none; padding: 0; }
/* pointages : deux cases à cocher, pas un formulaire de rédaction */
/* Pointages : deux cases à cocher au fil du texte, pas un formulaire. Ils ne
   méritent ni cadre ni fond — seulement d'être trouvables quand on les cherche. */

/* Enchaîner les rapports d'une séance sans repasser par la liste.
   Les flèches du clavier sont pilotées par le gestionnaire historique, qui
   s'appuie sur rel="prev" / rel="next" et gère aussi le balayage tactile. */
.fratrie { display: grid; grid-template-columns: 1fr auto 1fr; align-items: start;
           gap: .8rem; margin: .2rem 0 1rem; font-size: .84rem; }
.fratrie a { text-decoration: none; color: #6b7180; border-radius: 8px; padding: .3rem .5rem; }
.fratrie a:hover { background: var(--pac-bleu-pale); color: var(--pac-bleu); }
@media (max-width: 760px) { .fratrie { grid-template-columns: 1fr 1fr; }
}

.reperes .terr { margin: 0; }
.reperes .rep-objet { margin: 0; }
.reperes-liste { margin: .4rem 0 0; font-size: .9rem; }
.rep-plus { display: inline; background: none; border: 0; padding: 0 0 0 .35rem; margin: 0;
            font: inherit; font-size: .82rem; font-weight: 600; color: var(--pac-bleu);
            cursor: pointer; width: auto; }
.rep-plus::after { content: " ▸"; }
.rep-plus:hover { text-decoration: underline; text-underline-offset: .25em; }
.rep-plus[hidden] { display: none; }
.rep-reste { margin-top: .3rem; color: #5a6072; }
.rep-reste[hidden] { display: none; }
/* « développer » vit DANS la phrase : Pico transforme tout <details> en accordéon
   pleine largeur, ce qui donnait l'impression que le bloc entier allait s'ouvrir. */
.terr-plus { display: inline; background: none; border: 0; padding: 0 0 0 .35rem;
             margin: 0; font: inherit; font-size: .82rem; font-weight: 600;
             color: var(--pac-bleu); cursor: pointer; width: auto; }
.terr-plus::after { content: " ▸"; }
/* sans cela, « display: inline » l'emporte sur [hidden] et le bouton reste visible */
.terr-plus[hidden], .terr-detail[hidden] { display: none; }
.terr-plus:hover { text-decoration: underline; text-underline-offset: .25em; }
.terr-detail { color: #5a6072; }

/* Confirmation avant d'effacer un travail humain : on montre ce qu'on va perdre. */
.voile-conf { position: fixed; inset: 0; z-index: 1200; background: rgba(9,16,87,.55);
          display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.conf-boite { background: #fff; border-radius: 14px; width: min(46rem, 96vw);
          max-height: 86vh; overflow-y: auto; padding: 1.4rem 1.6rem;
          box-shadow: 0 20px 56px rgba(0,0,0,.32); }
.conf-boite h3 { color: var(--pac-nuit); margin: 0 0 .3rem; font-size: 1.2rem; }
.conf-avert { background: var(--pac-orange-pale); color: var(--pac-orange-fonce);
          border-radius: 8px; padding: .6rem .8rem; font-size: .92rem; line-height: 1.55;
          margin: .5rem 0 1rem; }
.conf-cote { margin-bottom: 1rem; }
.conf-titre { font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em;
          font-weight: 700; color: #8b90a0; margin-bottom: .3rem; }
.conf-texte { border: 1px solid var(--pac-bordure); border-radius: 8px; padding: .6rem .8rem;
          font-size: .9rem; line-height: 1.55; white-space: pre-wrap; color: #38405a;
          max-height: 15rem; overflow-y: auto; }
.conf-texte.humain { border-color: #9fd3b4; background: #f2fbf5; }
.conf-texte ins { background: #cdeed9; text-decoration: none; border-radius: 3px;
          padding: 0 .1rem; }
.conf-texte del { background: #fbdcd8; color: #8a3129; border-radius: 3px; padding: 0 .1rem; }
.conf-actions { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap;
          padding-top: .4rem; border-top: 1px solid var(--pac-bordure); }
.conf-actions .danger { background: var(--pac-orange); border-color: var(--pac-orange); }
/* seul sous les repères, le développement n'a plus besoin de titre ni de filet */
/* état des analyses IA : celui qui vient de déposer doit savoir si ça travaille */
.bandeau-ia { display: flex; align-items: flex-start; gap: .7rem; border-radius: 10px;
              padding: .7rem .9rem; margin: .8rem 0 0; font-size: .92rem; line-height: 1.55; }
.bandeau-ia.en-cours { background: var(--pac-bleu-pale); color: #24314f; }
.bandeau-ia.fini { background: #e7f5ec; color: #1b6b3a; }
.bandeau-ia b { color: inherit; }
.pastille-ia { flex: none; width: 1.15rem; height: 1.15rem; border-radius: 50%;
               background: var(--pac-bleu); margin-top: .15rem;
               animation: ia-pulse 1.3s ease-in-out infinite; }
.pastille-ia.ok, .pastille-ia.manque { animation: none; color: #fff; font-weight: 800;
               font-size: .8125rem; display: flex; align-items: center; justify-content: center; }
.pastille-ia.ok { background: #1b6b3a; }
.pastille-ia.manque { background: var(--pac-orange); }
@keyframes ia-pulse { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
.badge.travaille { background: #e7f5ec; color: #1b6b3a; font-weight: 600; }

/* ===== Accueil « le hall » : 4 portes ===== */
.portes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; }
@media (max-width: 820px) { .portes { grid-template-columns: 1fr; }
}
.porte { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 16px;
         padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.commissions { display: flex; flex-wrap: wrap; gap: .4rem; }
.commissions a { background: #f1f3f9; border: 1px solid var(--pac-bordure); border-radius: 2rem;
                 padding: .26rem .7rem; font-size: .85rem; color: #38405a; text-decoration: none; }
.commissions a:hover { border-color: var(--pac-bleu); color: var(--pac-bleu); }
.commissions a b { color: var(--pac-nuit); }
/* rubriques dépliables de l'accueil */   /* Pico ajoute son propre chevron : doublon avec .chev */
.attente { color: #5a6072; font-size: .93rem; font-style: italic; padding: .4rem 0; }
.publie { background: #f6f8fd; border: 1px solid var(--pac-bordure); border-radius: 10px;
          padding: .7rem .9rem; margin-top: .6rem; font-size: .92rem; } .publie b { color: var(--pac-nuit); }
.publie .liens { margin-top: .3rem; display: flex; gap: 1rem; }

/* ===== Fiche commune ===== */
.stats-commune { display: grid; grid-template-columns: repeat(4, 1fr); gap: .9rem; margin-bottom: 1.1rem; }
@media (max-width: 700px) { .stats-commune { grid-template-columns: 1fr 1fr; }
}
.stats-commune .stat { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 12px; padding: .9rem 1rem; }
.stats-commune .stat .n { color: var(--pac-nuit); font-size: 1.35rem; font-weight: 700; }
.stats-commune .stat .l { color: #5a6072; font-size: .82rem; }
.bloc-commune { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 12px; padding: 1.1rem 1.3rem; }
.bloc-commune td.montant { font-weight: 600; color: var(--pac-nuit); white-space: nowrap; text-align: right; }
.bloc-commune .disp { color: #5a6072; font-size: .82rem; }
.bloc-commune tfoot td { border-top: 2px solid var(--pac-bordure); font-weight: 700; color: var(--pac-nuit); }
.cour { display: inline-block; font-size: .8125rem; font-weight: 600; border-radius: 1rem; padding: .05rem .55rem; white-space: nowrap; }
.cour.env { background: #e7f6ec; color: #136c2e; }
.cour.red { background: var(--pac-bleu-pale); color: var(--pac-bleu); }
.cour.gen { background: var(--pac-orange-pale); color: var(--pac-orange-fonce); }

/* ===== Fenêtre d'une commission (bannière) ===== */
.comm-entete { background: var(--pac-nuit); color: #fff; border-radius: 14px; padding: 1.1rem 1.3rem;
               margin: .2rem 0 1rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.comm-entete .ico { font-size: 2rem; }
.comm-entete h1 { color: #fff; margin: 0; font-size: 1.5rem; }
.comm-entete .sur { color: rgba(255,255,255,.72); font-size: .88rem; margin-top: .15rem; }
.comm-entete .droite2 { margin-left: auto; display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.comm-entete select { border-radius: 8px; border: 0; padding: .4rem .6rem; font: inherit; font-size: .9rem; margin: 0; width: auto; }
.comm-entete label { color: #fff; font-size: .85rem; display: inline-flex; align-items: center; gap: .4rem; margin: 0; }
.comm-entete a.toutes { color: #fff !important; background: rgba(255,255,255,.16);
                        border: 1px solid rgba(255,255,255,.3); border-radius: 2rem; padding: .35rem .9rem;
                        font-size: .88rem; font-weight: 600; text-decoration: none; }
.comm-entete a.toutes:hover { background: rgba(255,255,255,.28); text-decoration: none; }

/* ===== Liste CR / CP par commission ===== */
/* le choix de séance (« Commission permanente du 24 septembre 2026 ») dépassait l'écran d'un
   téléphone : la page entière se mettait à défiler de côté */
.fil { font-size: .9rem; color: #5a6072; margin: .2rem 0 .9rem; }
.fil a { color: var(--pac-bleu); }
.filtre-ri { display: inline-flex; align-items: center; gap: .4rem; background: #fff;
             border: 1px solid var(--pac-bordure); border-radius: 2rem; padding: .25rem .85rem;
             font-size: .88rem; color: #4a5064; text-decoration: none; }
.filtre-ri:hover { border-color: var(--pac-orange); text-decoration: none; }
.filtre-ri.actif { background: var(--pac-orange-pale); border-color: #f0d29a; color: var(--pac-orange-fonce); font-weight: 600; }
details.secteur { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 12px;
                  margin-bottom: .9rem; }
details.secteur > summary { list-style: none; cursor: pointer; display: flex; align-items: center;
                            gap: .6rem; padding: .85rem 1.2rem; font-weight: 700; color: var(--pac-nuit);
                            font-size: 1.06rem; }
details.secteur > summary::-webkit-details-marker { display: none; }
details.secteur > summary::after { display: none; }
details.secteur > summary::before { content: "▸"; color: #b8bdd0; font-size: .85rem; }
details.secteur[open] > summary::before { content: "▾"; }
details.secteur > summary .sect-compte { margin-left: auto; display: inline-flex; gap: .4rem;
                                         align-items: center; font-weight: 400; }
.secteur-corps { padding: 0 1.2rem .4rem; }
.rapport { border-top: 1px solid var(--pac-bordure); padding: .85rem 0; }
.rapport.ri { border-left: 3px solid var(--pac-orange); margin-left: -1.2rem; padding-left: 1.2rem; }
.rapport-tete { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.num-lien { font-weight: 700; color: #5a6072; text-decoration: none; font-size: .9rem; }
.num-lien:hover { color: var(--pac-bleu); }
.titre-lien { display: inline-block; margin: .3rem 0 .15rem; color: var(--pac-bleu); font-weight: 600;
              text-decoration: none; font-size: 1rem; line-height: 1.4; }
.titre-lien:hover { text-decoration: underline; text-underline-offset: .2em; }
.titre-lien .fleche { color: #b8bdd0; }
.prise { margin-left: auto; color: #5a6072; font-size: .84rem; white-space: nowrap; }
details.resume-d > summary { list-style: none; cursor: pointer; color: var(--pac-bleu); font-weight: 600;
                             font-size: .86rem; display: inline-block; }
details.resume-d > summary::-webkit-details-marker { display: none; }
.rapport .commentaire { background: var(--pac-orange-pale); border: 1px solid #f5d9c0; border-radius: 8px;
                        padding: .45rem .7rem; margin: .4rem 0 .1rem; font-size: .9rem; }
.rapport .commentaire .lab { font-size: .8125rem; text-transform: uppercase; letter-spacing: .04em;
                             color: var(--pac-orange-fonce); font-weight: 700; display: block; }

/* ===== Badges ===== */
.badge { display: inline-block; font-size: .8125rem; font-weight: 600; line-height: 1.5;
         padding: .05rem .55rem; border-radius: 1rem;
         background: var(--pac-bleu-pale); color: var(--pac-bleu); }
.badge.gris { background: #eef0f4; color: #4a5064; font-weight: 500; }
.badge.orange { background: var(--pac-orange-pale); color: var(--pac-orange-fonce); }
.badge.nuit { background: var(--pac-nuit); color: #fff; }
.badge.vert { background: #e7f6ec; color: #136c2e; }
.badge.rouge { background: #fdeaea; color: #a51111; }
.badge.ambre { background: #fff4e0; color: #9a4300; }
a.badge { text-decoration: none; }
a.badge:hover { filter: brightness(.92); }
.prepa { display: flex; gap: .25rem; margin-top: .3rem; flex-wrap: wrap; }

/* ===== Pointage des votes ===== */
.vote { display: flex; flex-direction: column; gap: .45rem; }
.vote-groupe { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.vote-label { font-size: .8125rem; text-transform: uppercase; letter-spacing: .04em;
              color: #7a8095; min-width: 5.2rem; }
.vote-opt { border: 1px solid var(--pac-bordure); background: #fff; color: #4a5064;
            border-radius: 2rem; padding: .1rem .6rem; font-size: .8125rem; cursor: pointer;
            width: auto; margin: 0; line-height: 1.5; }
.vote-opt:hover { border-color: var(--pac-bleu); }
.vote-opt.choisi { font-weight: 600; }
.vote-opt.choisi[data-val="adopte"], .vote-opt.choisi[data-val="pour"] {
  background: #e7f6ec; border-color: #1a7f37; color: #136c2e; }
.vote-opt.choisi[data-val="rejete"], .vote-opt.choisi[data-val="contre"] {
  background: #fdeaea; border-color: #c92a2a; color: #a51111; }
.vote-opt.choisi[data-val="abstention"] { background: #fef9c3; border-color: #e0c000; color: #7a5b00; }
.vote-opt.choisi[data-val="retire"], .vote-opt.choisi[data-val="non_examine"],
.vote-opt.choisi[data-val="nppv"] { background: #eef0f4; border-color: #8a90a2; color: #40465a; }
.carte-vote .carte-lat-titre { margin-bottom: .5rem; }

/* ===== Onglets de vue (Propositions / Vœux) ===== */
.onglets-vue { display: flex; gap: .2rem; margin: 1rem 0 0; border-bottom: 2px solid var(--pac-bordure); }
.onglets-vue a { padding: .45rem .9rem; margin-bottom: -2px; border-bottom: 2px solid transparent;
                 text-decoration: none; color: #5a6072; font-size: .95rem; }
.onglets-vue a:hover { color: var(--pac-bleu); }
.onglets-vue a.actif { color: var(--pac-bleu); border-bottom-color: var(--pac-bleu); font-weight: 700; }
.onglets-vue .compteur { font-size: .8125rem; background: #eef0f4; color: #4a5064;
                         border-radius: 1rem; padding: .02rem .45rem; margin-left: .25rem; }
.onglets-vue a.actif .compteur { background: var(--pac-bleu-pale); color: var(--pac-bleu); }

/* ===== Équipe (bulles d'assignation) ===== */
.equipe { position: relative; display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; }

/* ===== Barre de filtres (liste) ===== */
.filtres { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 8px;
           padding: .7rem .9rem; margin: .9rem 0 1.1rem; }
.filtres-ligne { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.filtres select { width: auto; margin: 0; padding-top: .35rem; padding-bottom: .35rem; font-size: .9rem; }
.filtres input[type="search"] { flex: 1 1 12rem; margin: 0; padding-top: .35rem; padding-bottom: .35rem; font-size: .9rem; }
.filtres button { margin: 0; padding: .35rem .9rem; font-size: .9rem; }
.filtres-options { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center;
                   margin-top: .55rem; font-size: .9rem; color: #4a5064; }
.filtres-options label { margin: 0; display: inline-flex; align-items: center; gap: .35rem; }
.filtres-options input { margin: 0; }
.action-masse { margin: -.4rem 0 1rem; }
.action-masse button { font-size: .85rem; padding: .3rem .8rem; margin: 0; }
.grille-2 { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
@media (max-width: 500px) { .grille-2 { grid-template-columns: 1fr; }
}

/* ===== Sujets suivis (tags) ===== */
/* sujets/marqueurs NON appliqués = boutons « ajouter » (pointillés + « + »), pour ne pas
   les confondre avec des étiquettes réellement posées sur le projet */
.carte-lat-aide { font-size: .8125rem; color: #7a8095; margin: 0 0 .5rem; }

/* ===== Accueil ===== */

/* ===== Vue Séance (déroulé effectif) ===== */
/* aperçu déplié d'un point (vue Séance) */
.apercu { margin-top: .4rem; padding: .55rem .8rem; background: var(--pac-fond);
          border: 1px solid var(--pac-bordure); border-radius: 6px; }
.apercu .resume-ia { background: #fff; }

/* ===== Bouton d'action flottant (suit le défilement) ===== */

/* ===== Chronologie de séance (volet gauche des fiches) ===== */
.rail { position: fixed; left: 0; top: 0; bottom: 0; width: min(320px, 85vw); z-index: 970;
        background: #fff; box-shadow: 4px 0 24px rgba(9,16,87,.2); display: flex; flex-direction: column; }

/* ===== Tableaux ===== */
table { font-size: .95rem; }
table td { vertical-align: top; }
table thead th { color: #5a6072; font-size: .8125rem; text-transform: uppercase;
                 letter-spacing: .04em; border-bottom-width: 2px; }
.liste-projets tbody tr { transition: background .12s; }
.liste-projets tbody tr:hover { background: #eef2fb; }

/* ===== Cartes / résumé ===== */
.resume-ia { background: #fff; border: 1px solid var(--pac-bordure);
             border-left: 3px solid var(--pac-bleu);
             border-radius: 6px; padding: 1rem 1.25rem; }
/* le texte rédigé (synthèses, notes, analyses) : paragraphes et listes collées
   depuis Word ou un PDF gardent leur retrait, sans marge en trop aux extrémités */
.resume-ia p, .lecture-texte p, .rep-reste p { margin: 0 0 .7rem; line-height: 1.6; }
.resume-ia > :last-child, .lecture-texte > :last-child, .rep-reste > :last-child,
.resume-detaille > :last-child { margin-bottom: 0; }
.resume-ia ul, .resume-ia ol, .lecture-texte ul, .lecture-texte ol,
.rep-reste ul, .rep-reste ol, .resume-detaille ol { margin: .2rem 0 .7rem 1.1rem; padding-left: .9rem; }
.resume-ia li, .lecture-texte li, .rep-reste li, .resume-detaille li { margin-bottom: .25rem; line-height: 1.55; }
.mention-ia { font-size: .8125rem; color: #7a8095; }

/* ===== Modale PDF ===== */
#pdf-overlay { display: none; position: fixed; inset: 0; z-index: 1000; background: rgba(9,16,87,.55); }
#pdf-overlay.ouvert { display: flex; flex-direction: column; }
#pdf-barre { display: flex; justify-content: space-between; align-items: center;
             gap: 1rem; padding: .5rem 1rem; background: var(--pac-nuit); color: #fff; }
#pdf-barre strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; }
#pdf-onglet { color: #fff !important; font-size: .85rem; }
#pdf-fermer { cursor: pointer; background: rgba(255,255,255,.12); border: 0; color: #fff;
              padding: .3rem .8rem; }
#pdf-fermer:hover { background: rgba(255,255,255,.25); }
#pdf-frame { flex: 1; width: 100%; border: 0; background: #fff; }

/* ===== Fiche projet (tableau de bord) ===== */
.fiche-grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.4rem; align-items: start; }
@media (min-width: 920px) {
  .fiche-grille { grid-template-columns: minmax(0, 1fr) 300px; }
  .fiche-lateral { position: sticky; top: 1rem; }
}
.fiche-lateral { display: flex; flex-direction: column; gap: 1rem; }
.carte-lat { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 8px;
             padding: .9rem 1rem; }
.carte-lat-titre { font-weight: 700; color: var(--pac-nuit); margin-bottom: .55rem; font-size: .95rem; }
/* espace de travail : sections empilées, édition sur place */
.carte-section { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 8px;
                 padding: .8rem 1rem; margin-bottom: .8rem; scroll-margin-top: 1rem; }
.carte-section.vide { background: transparent; border-style: dashed; padding: .45rem 1rem; }
.section-tete { display: flex; justify-content: space-between; align-items: center; gap: .8rem; }
.section-tete strong { color: var(--pac-nuit); font-size: 1.02rem; }
.ajouter { background: none; border: 0; color: var(--pac-bleu); font-weight: 600;
           font-size: .92rem; padding: .15rem 0; margin: 0; cursor: pointer; text-align: left; }
.ajouter:hover { text-decoration: underline; text-underline-offset: .25em; }
.fiche-nav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.fiche-nav ul { margin: 0; }
.nav-seance { display: flex; align-items: center; gap: .5rem; }
.nav-seance a, .nav-seance span { display: inline-block; border: 1px solid var(--pac-bordure);
             background: #fff; border-radius: 2rem; padding: .15rem .8rem; font-size: .85rem;
             text-decoration: none; }
.nav-seance span.inactif { color: #b6bac8; }
.nav-seance a:hover { border-color: var(--pac-bleu); background: var(--pac-bleu-pale); }
.nav-seance small { color: #7a8095; white-space: nowrap; }
.fiche-entete { margin: .6rem 0 .9rem; }
.fiche-entete h2 { margin-bottom: .25rem; color: var(--pac-nuit); }
.titre-projet { font-size: 1.12rem; line-height: 1.45; margin-bottom: .5rem; color: #2a2f45; }
.meta { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; }
.pieces { margin: 0; padding-left: 1.1rem; }
.pieces li { margin-bottom: .15rem; }

/* vœux / amendements rattachés */
.carte-voeu { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 6px;
              border-left: 3px solid var(--pac-bleu); padding: .6rem .9rem; margin: .5rem 0; }
.carte-voeu.amendement { border-left-color: var(--pac-orange); }
.carte-voeu p { margin: .3rem 0 0; font-size: .92rem; }

/* ===== Onglets espace de travail ===== */
.travail { margin-top: 1.6rem; }
.onglets { display: flex; flex-wrap: wrap; gap: .1rem; border-bottom: 2px solid var(--pac-bordure); }
.onglet { background: none; border: 0; border-bottom: 2px solid transparent; width: auto;
          margin: 0 0 -2px; padding: .5rem .85rem; cursor: pointer; color: #5a6072;
          font-size: .92rem; border-radius: 0; transition: color .12s; }
.onglet:hover { color: var(--pac-bleu); }
.onglet.actif { color: var(--pac-bleu); border-bottom-color: var(--pac-bleu); font-weight: 700; }
.toast-ok { color: #1a7f37; font-size: .88rem; font-weight: 600; }

/* ===== Mobile ===== */
@media (max-width: 600px) {
  .liste-projets thead { display: none; }
  .liste-projets, .liste-projets tbody, .liste-projets tr, .liste-projets td { display: block; width: auto; }
  .liste-projets tr { background: #fff; border: 1px solid var(--pac-bordure); border-radius: 8px;
                      padding: .7rem .9rem; margin-bottom: .8rem; }
  .liste-projets td { border: 0; padding: .2rem 0; }
  .liste-projets td[data-label]::before { content: attr(data-label); color: #7a8095;
                                          font-size: .8125rem; text-transform: uppercase;
                                          letter-spacing: .04em; display: block; }
  .fiche-nav { flex-wrap: wrap; }
}
/* ===== Mini-récap historique des subventions ===== */
/* ===== Historique imbriqué par mandature / année ===== */
details.histo-mand > summary { cursor: pointer; padding: .4rem 0; display: flex; gap: .5rem; align-items: center;
  border-top: 1px solid var(--pac-bordure); }
details.histo-annee > summary { cursor: pointer; padding: .2rem 0; color: var(--pac-bleu); font-size: .9rem; }
/* ===== Vue Jour J ===== */
/* sur téléphone, le tableau défile dans son cadre : la page garde sa largeur */
.jourj-cadre { overflow-x: auto; }
.jourj-cadre > table.jourj { min-width: 620px; }
table.jourj td { vertical-align: top; padding: .45rem .5rem; }
table.jourj tr.pointee { background: #f4faf5; }
table.jourj .vote-groupe { gap: .2rem; }
table.jourj .vote-opt { font-size: .8125rem; padding: .05rem .45rem; }
table.jourj .note-amdt { width: 100%; font-size: .82rem; margin: 0; min-height: 2.1rem; }
table.jourj .note-amdt.sauvee { border-color: #1a7f37; }
/* ===== Cycles CR → CP ===== */
/* ===== Suivi du groupe (colonnes du tableau) sur la fiche ===== */
.toast-ok { color: #136c2e; font-weight: 600; font-size: .85rem; }
/* ===== Échéancier réglementaire (accueil) ===== */
.jalons { list-style: none; margin: 0; padding: 0; }
.jalons li { display: grid; grid-template-columns: 3.2rem 12rem 1fr; gap: .6rem; align-items: baseline;
  padding: .35rem 0; border-top: 1px solid var(--pac-bordure); }
.jalons li:first-child { border-top: 0; }
.jalons li.passe { opacity: .5; }
@media (max-width: 640px) { .jalons li { grid-template-columns: 3rem 1fr; }
  .jalons li small { grid-column: 1 / -1; }
}

/* page Nouveautés (/admin/versions) : une version par bloc, la production mise en avant */
.versions { max-width: 52rem; }
.version { padding: .9rem 0; border-top: 1px solid var(--pac-bordure); }
.version h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
.version h2 small { font-weight: 400; color: #5a6275; font-size: .8125rem; margin-left: .4rem; }
.version ul { margin: 0; padding-left: 1.2rem; }
.version-en-ligne h2::after { content: "en production"; margin-left: .5rem; font-size: .75rem; font-weight: 600;
  padding: .1rem .5rem; border-radius: 999px; background: #e3f4e8; color: #1d5b2f; vertical-align: middle; }
