/* Cursus — système visuel. La palette vient du logo : bleu profond, cyan,
   orange. Les jetons sont définis pour les trois états de thème, y compris
   celui où le navigateur n'a rien stampé. */
:root{
  --ground:#F5F7F9;--surface:#FFFFFF;--surface-2:#EDF1F5;--surface-3:#E1E8EF;
  --ink:#101722;--ink-2:#323C4A;--ink-3:#566172;
  --rule:#CFD7E0;--rule-soft:#E3E8EE;
  --accent:#0C4890;--accent-2:#1878A8;--cyan:#30B4CC;--accent-soft:#E5EDF7;
  --orange:#CC6030;--orange-soft:#FBEDE4;
  --ok:#2C6750;--ok-soft:#E2EFE9;
  --warn:#8A5A12;--warn-soft:#F6EEDD;
  --crit:#8E3320;--crit-soft:#F7E7E2;
  --ax1:#0C4890;--ax2:#2C6750;--ax3:#CC6030;--ax4:#6B3A6E;--ax5:#41566E;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="clair"]){
    --ground:#10151E;--surface:#171E29;--surface-2:#1D2530;--surface-3:#263040;
    --ink:#EDF0F5;--ink-2:#C3CBD6;--ink-3:#9CA7B5;
    --rule:#29323F;--rule-soft:#212A36;
    --accent:#6FAEE4;--accent-2:#5BB4CE;--cyan:#57C9DB;--accent-soft:#16233A;
    --orange:#E08A5A;--orange-soft:#2C1D14;
    --ok:#7FC1A3;--ok-soft:#17291F;
    --warn:#D8A860;--warn-soft:#2A2116;
    --crit:#E18A74;--crit-soft:#2C1A16;
    --ax1:#6FAEE4;--ax2:#7FC1A3;--ax3:#E08A5A;--ax4:#BC91C0;--ax5:#9FB3CA;
  }
}
:root[data-theme="sombre"]{
  --ground:#10151E;--surface:#171E29;--surface-2:#1D2530;--surface-3:#263040;
  --ink:#EDF0F5;--ink-2:#C3CBD6;--ink-3:#9CA7B5;
  --rule:#29323F;--rule-soft:#212A36;
  --accent:#6FAEE4;--accent-2:#5BB4CE;--cyan:#57C9DB;--accent-soft:#16233A;
  --orange:#E08A5A;--orange-soft:#2C1D14;
  --ok:#7FC1A3;--ok-soft:#17291F;--warn:#D8A860;--warn-soft:#2A2116;
  --crit:#E18A74;--crit-soft:#2C1A16;
  --ax1:#6FAEE4;--ax2:#7FC1A3;--ax3:#E08A5A;--ax4:#BC91C0;--ax5:#9FB3CA;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);
     font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---------------- coquille ---------------- */
.app{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}
@media (max-width:880px){.app{grid-template-columns:1fr}}
aside{background:var(--surface-2);border-right:1px solid var(--rule);
      padding:1rem 0 1.5rem;display:flex;flex-direction:column;gap:1.3rem;
      position:sticky;top:0;height:100vh;box-sizing:border-box;overflow-y:auto}
@media (max-width:880px){aside{border-right:0;border-bottom:1px solid var(--rule);padding-bottom:.6rem}}
.marque{display:flex;gap:.6rem;align-items:center;padding:0 1.1rem;text-decoration:none;color:inherit}
.marque img{width:26px;height:26px;flex:0 0 26px}
.marque b{font-family:var(--serif);font-weight:500;font-size:1.3rem;letter-spacing:-.01em;line-height:1}
.marque span{display:block;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;
             text-transform:uppercase;color:var(--ink-3);margin-top:.2rem}
nav.princ{display:flex;flex-direction:column}
@media (max-width:880px){nav.princ{flex-direction:row;overflow-x:auto;padding:0 .6rem}}
nav.princ a{display:flex;gap:.5rem;align-items:baseline;padding:.5rem 1.1rem;color:var(--ink-2);
            text-decoration:none;font-size:.9rem;border-left:3px solid transparent;white-space:nowrap}
nav.princ a .n{font-family:var(--mono);font-size:.77rem;color:var(--ink-3)}
nav.princ a:hover{background:var(--surface-3);color:var(--ink)}
nav.princ a[aria-current="page"]{background:var(--surface);color:var(--ink);font-weight:500;
            border-left-color:var(--accent)}
@media (max-width:880px){
  nav.princ a{border-left:0;border-bottom:3px solid transparent}
  nav.princ a[aria-current="page"]{border-left:0;border-bottom-color:var(--accent)}
}
.groupe{padding:0 1.1rem}
.groupe h3{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
           color:var(--ink-3);margin:0 0 .5rem;font-weight:500}
.groupe ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;
           font-size:.87rem;color:var(--ink-2)}
.groupe li{display:flex;gap:.5rem;align-items:center}
.groupe .ct{margin-left:auto;font-family:var(--mono);font-size:.77rem;color:var(--ink-3)}
.dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;background:var(--ax5)}
.ax1{background:var(--ax1)}.ax2{background:var(--ax2)}.ax3{background:var(--ax3)}
.ax4{background:var(--ax4)}.ax5{background:var(--ax5)}
.pied{margin-top:auto;padding:0 1.1rem;font-size:.87rem;color:var(--ink-3)}
.pied form{margin:.4rem 0 0}
@media (max-width:880px){
  aside{position:static;height:auto;overflow:visible}
  .groupe{display:none}
  .pied{margin-top:0;display:flex;gap:.8rem;align-items:center}
  .pied form{margin:0}
}

main{min-width:0;display:flex;flex-direction:column}
.topbar{border-bottom:1px solid var(--rule);padding:1rem 1.4rem;display:flex;flex-wrap:wrap;
        gap:.5rem 1rem;align-items:baseline;background:var(--surface)}
.topbar h1{font-size:1.1rem;font-weight:600;margin:0;letter-spacing:-.01em}
.topbar .sub{font-size:.87rem;color:var(--ink-3)}
.topbar .droite{margin-left:auto;display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.corps{padding:1.4rem;display:flex;flex-direction:column;gap:1.3rem;max-width:1080px}

/* ---------------- éléments ---------------- */
.puce{font-family:var(--mono);font-size:.77rem;padding:.16rem .45rem;border:1px solid var(--rule);
      color:var(--ink-2);background:var(--surface);white-space:nowrap}
.puce.a{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.puce.o{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}
.puce.w{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.puce.c{border-color:var(--crit);color:var(--crit);background:var(--crit-soft)}
.puce.q{border-style:dashed;color:var(--ink-3)}
.bouton{font:inherit;font-size:.91rem;padding:.38rem .8rem;border:1px solid var(--rule);
        background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:4px}
.bouton:hover{border-color:var(--accent);color:var(--accent)}
.bouton.p{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500}
.bouton.p:hover{color:#fff;filter:brightness(1.12)}
.bouton.lien{border:0;background:none;padding:.2rem 0;color:var(--accent);text-decoration:underline}
.carte{border:1px solid var(--rule);background:var(--surface);border-radius:6px}
.carte>h2{margin:0;padding:.7rem .95rem;border-bottom:1px solid var(--rule);background:var(--surface-2);
          font-family:var(--sans);font-size:.95rem;letter-spacing:0;text-transform:none;
          color:var(--ink);font-weight:600;display:flex;gap:.6rem;align-items:center}
.carte>h2 .d{font-family:var(--sans);font-size:.82rem;font-weight:400;color:var(--ink-3);letter-spacing:0;text-transform:none}
.carte>h2 .d{margin-left:auto}
.carte .pad{padding:.9rem}
.vide{padding:1.6rem .9rem;text-align:center;color:var(--ink-3);font-size:.9rem}
.alerte{border-left:3px solid var(--crit);background:var(--crit-soft);padding:.7rem .9rem;
        font-size:.91rem;border-radius:0 4px 4px 0}

/* ---------------- composeur du fil ---------------- */
.composeur{border:1px solid var(--rule);background:var(--surface);border-radius:6px;overflow:hidden}
.composeur textarea{width:100%;border:0;padding:.9rem;font:inherit;font-size:.95rem;resize:vertical;
                    min-height:78px;background:var(--surface);color:var(--ink);display:block}
.composeur textarea:focus{outline:0;background:var(--surface)}
.composeur .motif{border-top:1px solid var(--rule-soft);padding:.7rem .9rem;background:var(--accent-soft)}
.composeur .motif label{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;
                        text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem}
.composeur .motif input{width:100%;font:inherit;font-size:.9rem;padding:.4rem .5rem;
                        border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.composeur .barre{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.6rem .9rem;
                  border-top:1px solid var(--rule-soft);background:var(--surface-2)}
.types{display:flex;flex-wrap:wrap;gap:.3rem}
.types label{font-family:var(--mono);font-size:.77rem;padding:.22rem .5rem;border:1px solid var(--rule);
             border-radius:999px;color:var(--ink-3);cursor:pointer;background:var(--surface)}
.types input{position:absolute;opacity:0;width:0;height:0}
.types input:checked+span{color:var(--accent)}
.types label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);
             color:var(--accent);font-weight:500}
.types label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
.composeur .envoi{margin-left:auto;display:flex;gap:.6rem;align-items:center}
.composeur .aide{font-family:var(--mono);font-size:.77rem;color:var(--ink-3)}
kbd{font-family:var(--mono);border:1px solid var(--rule);border-bottom-width:2px;border-radius:3px;
    padding:0 .28rem;background:var(--surface);color:var(--ink-2);font-size:.77rem}

/* ---------------- le fil ---------------- */
.fil{display:flex;flex-direction:column}
.fil .e{display:grid;grid-template-columns:6.6rem minmax(0,1fr);gap:1rem;padding:.85rem 0;
        border-top:1px solid var(--rule-soft)}
.fil .e:first-child{border-top:0}
@media (max-width:620px){.fil .e{grid-template-columns:1fr;gap:.3rem}}
.fil .quand{font-family:var(--mono);font-size:.77rem;color:var(--ink-3);padding-top:.1rem;line-height:1.4}
.fil .quand i{display:block;font-style:normal;opacity:.8}
.fil .t{display:flex;gap:.5rem;align-items:baseline;margin-bottom:.2rem;flex-wrap:wrap}
.fil .t .qui{font-size:.87rem;font-weight:500}
.fil .corps{font-size:.95rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:break-word}
.fil .pourquoi{margin-top:.4rem;font-size:.91rem;color:var(--ink-2);border-left:3px solid var(--accent);
               background:var(--accent-soft);padding:.45rem .7rem;border-radius:0 4px 4px 0}
.fil .pourquoi b{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
                 color:var(--ink-3);display:block;margin-bottom:.15rem;font-weight:500}
.fil .e.decision .corps{font-family:var(--serif);font-size:1.08rem;line-height:1.4}
.fil .outils{margin-top:.35rem;display:flex;gap:.6rem;align-items:center}
.fil details summary{font-size:.87rem;color:var(--accent);cursor:pointer}
.fil .editeur{margin-top:.5rem;display:flex;flex-direction:column;gap:.4rem}
.fil .editeur textarea{font:inherit;font-size:.92rem;padding:.5rem;border:1px solid var(--rule);
                       border-radius:4px;background:var(--surface);color:var(--ink);min-height:70px}

/* ---------------- liste de projets ---------------- */
.groupeaxe{display:flex;gap:.55rem;align-items:center;padding:.5rem .9rem;background:var(--surface-2);
           border:1px solid var(--rule);border-bottom:0;font-weight:600;font-size:.91rem}
.groupeaxe .ct{margin-left:auto;font-family:var(--mono);font-size:.77rem;color:var(--ink-3);font-weight:400}
.liste{border:1px solid var(--rule);background:var(--surface)}
.liste+.groupeaxe{margin-top:.9rem}
.liste .it{display:grid;grid-template-columns:minmax(0,2fr) 8rem minmax(0,1fr);gap:1rem;
           padding:.75rem .9rem;border-bottom:1px solid var(--rule-soft);align-items:start}
.liste .it:last-child{border-bottom:0}
.liste .it:hover{background:var(--surface-2)}
@media (max-width:800px){.liste .it{grid-template-columns:1fr;gap:.35rem}}
.liste .titre{font-weight:500;font-size:.94rem;line-height:1.35}
.liste .titre a{color:inherit;text-decoration:none}
.liste .titre a:hover{color:var(--accent)}
.liste .meta{font-size:.81rem;color:var(--ink-3);margin-top:.22rem;display:flex;flex-wrap:wrap;gap:.5rem}
.liste .terme{font-family:var(--mono);font-size:.81rem;color:var(--ink-2)}
.liste .terme i{display:block;font-style:normal;font-size:.77rem;color:var(--ink-3)}

/* ---------------- tâches ---------------- */
.composeur .pourqui{border-top:1px solid var(--rule-soft);padding:.7rem .9rem;background:var(--orange-soft);
                    display:flex;flex-wrap:wrap;gap:.8rem}
.composeur .pourqui .ch{flex:1 1 150px;min-width:0}
.composeur .pourqui label{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;
                          text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem}
.composeur .pourqui .opt{font-size:.9em;letter-spacing:0;text-transform:none;opacity:.75}
.composeur .pourqui select,.composeur .pourqui input{width:100%;font:inherit;font-size:.9rem;
        padding:.4rem .45rem;border:1px solid var(--rule);border-radius:4px;
        background:var(--surface);color:var(--ink)}
.taches{list-style:none;margin:0;padding:.2rem 0}
.taches li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.8rem;align-items:center;
           padding:.55rem .9rem;border-bottom:1px solid var(--rule-soft)}
.taches li:last-child{border-bottom:0}
.taches li:hover{background:var(--surface-2)}
@media (max-width:680px){
  .taches li{grid-template-columns:auto minmax(0,1fr);row-gap:.35rem}
  .taches li .quand,.taches li .reporter{grid-column:2}
}
.coche{width:18px;height:18px;border:1.5px solid var(--rule);border-radius:50%;background:var(--surface);
       cursor:pointer;padding:0;display:block}
.coche:hover{border-color:var(--ok);background:var(--ok-soft);box-shadow:inset 0 0 0 3px var(--surface)}
.taches .quoi{min-width:0}
.taches .i{display:block;font-size:.92rem;line-height:1.35}
.taches .s{display:block;font-size:.81rem;color:var(--ink-3);margin-top:.1rem}
.taches form.fait,.taches form.reporter{margin:0;display:flex;gap:.3rem}
.bouton.mini{font-size:.77rem;padding:.15rem .4rem;border-radius:3px}
.rien{display:flex;gap:.6rem;align-items:center;padding:1rem .9rem;color:var(--ink-3);font-size:.9rem}
.cols2{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-items:start}

/* ---------------- livrables ---------------- */
.livrables{list-style:none;margin:0;padding:0}
.livrables>li{padding:.8rem .9rem;border-bottom:1px solid var(--rule-soft)}
.livrables>li:last-child{border-bottom:0}
.livrables .entete{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline}
.livrables .entete .t{font-weight:500;font-size:.95rem}
.livrables .entete .qui{font-size:.87rem;color:var(--ink-3)}
.livrables .entete .ech{margin-left:auto;font-family:var(--mono);font-size:.81rem;color:var(--ink-3)}
.versions{list-style:none;margin:.55rem 0 0;padding:0;border-left:2px solid var(--rule);
          display:flex;flex-direction:column}
.versions>li{display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:.6rem;
             padding:.4rem 0 .4rem .7rem;align-items:baseline}
.versions .n{font-family:var(--mono);font-size:.87rem;color:var(--ink-2);font-weight:500}
.versions .s{display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline;font-size:.87rem}
.versions .s .o{color:var(--ink-3);font-size:.87rem}
.versions .actions{grid-column:2;margin:.25rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem}
.versions .note{grid-column:2;margin:.3rem 0 0;font-size:.87rem;color:var(--ink-2);
                border-left:3px solid var(--rule);padding-left:.6rem}
details.depot{margin-top:.6rem}
details.depot summary{font-size:.87rem;color:var(--accent);cursor:pointer}
details.depot form{margin-top:.6rem;display:flex;flex-direction:column;gap:.5rem;
                   background:var(--surface-2);border:1px solid var(--rule);
                   border-radius:5px;padding:.8rem}
details.depot .ligne{display:flex;flex-wrap:wrap;gap:.5rem}
details.depot .ligne>*{flex:1 1 170px;min-width:0}
details.depot input[type=text],details.depot input[type=date],details.depot select,
details.depot input[type=file]{font:inherit;font-size:.91rem;padding:.4rem .45rem;
    border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
details.depot .attest{display:flex;gap:.5rem;align-items:flex-start;font-size:.87rem;color:var(--ink-2)}
details.depot button{align-self:flex-start}

/* ---------------- remarques ---------------- */
.remarques{list-style:none;margin:.5rem 0 0;padding:0;grid-column:2;
           display:flex;flex-direction:column;gap:.45rem}
.remarques>li{display:grid;grid-template-columns:2.6rem minmax(0,1fr);gap:.5rem;align-items:start}
.remarques .rep{font-family:var(--mono);font-size:.81rem;color:var(--ink-3);padding-top:.5rem}
.remarques .fond{border:1px solid var(--rule);border-radius:5px;background:var(--surface);
                 padding:.55rem .7rem}
.remarques li.a_traiter .fond{border-left:3px solid var(--crit)}
.remarques li.traitee .fond{border-left:3px solid var(--ok)}
.remarques li.ecartee .fond{border-left:3px solid var(--warn)}
.remarques .haut{display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline;margin-bottom:.3rem}
.remarques .haut .qui{font-size:.87rem;color:var(--ink-3);margin-left:auto}
.remarques .anc{margin:0 0 .25rem;font-family:var(--mono);font-size:.81rem;color:var(--ink-3)}
.remarques .quoi{margin:0;font-size:.91rem;line-height:1.45}
.remarques .reponse{margin-top:.45rem;font-size:.91rem;color:var(--ink-2);
                    border-left:3px solid var(--accent);background:var(--accent-soft);
                    padding:.4rem .6rem;border-radius:0 4px 4px 0}
.remarques .reponse b{display:block;font-family:var(--mono);font-size:.77rem;font-weight:500;
                      letter-spacing:.06em;color:var(--ink-3);margin-bottom:.15rem}
.remarques .reponse .ec{display:block;margin-top:.3rem;color:var(--warn);font-size:.87rem}
.remarques form.repondre{margin:.5rem 0 0;display:flex;flex-direction:column;gap:.4rem}
.remarques form.repondre textarea{font:inherit;font-size:.91rem;padding:.4rem .5rem;
    border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink);resize:vertical}
.remarques form.repondre .b{display:flex;gap:.35rem;flex-wrap:wrap}
.bouton.p.mini{font-size:.77rem;padding:.15rem .45rem}
details.depot textarea{font:inherit;font-size:.91rem;padding:.4rem .45rem;border:1px solid var(--rule);
    border-radius:4px;background:var(--surface);color:var(--ink);resize:vertical}

/* ---------------- écran de relecture ---------------- */
/* Deux volets qui tiennent la hauteur de la fenêtre : une barre de
   défilement par volet, aucune pour la page. Trois barres concurrentes
   rendaient l'écran impraticable. */
.corps.plein{padding:0;gap:0;max-width:none;flex:1 1 auto;min-height:0}
.relire{position:relative;display:grid;gap:1px;background:var(--rule);
        grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);flex:1 1 auto;min-height:0;
        height:calc(100vh - 62px)}
.relire.large{grid-template-columns:minmax(0,3fr) minmax(0,1fr)}
@media (max-width:1040px){
  .relire,.relire.large{grid-template-columns:1fr;height:auto}
  .voletdoc,.voletrem{max-height:70vh}
}
.voletdoc,.voletrem{background:var(--surface);display:flex;flex-direction:column;min-height:0;min-width:0}
.voletdoc>header,.voletrem>header{flex:0 0 auto;display:flex;gap:.6rem;align-items:center;
    padding:.5rem .9rem;border-bottom:1px solid var(--rule);background:var(--surface-2);
    font-size:.87rem;min-height:2.4rem}
.voletdoc>header .aide{font-family:var(--mono);font-size:.77rem;color:var(--ink-3)}
.voletdoc>header .d,.voletrem>header .d{margin-left:auto}
.voletdoc>header a.d{font-family:var(--mono);font-size:.77rem}
.voletrem>header form.d{margin:0}
.doccorps{flex:1 1 auto;overflow-y:auto;padding:1.1rem 1.4rem 3rem;font-size:.92rem;
          line-height:1.75;color:var(--ink-2)}
.doccorps h2,.doccorps h3,.doccorps h4,.doccorps h5{font-family:var(--sans);color:var(--ink);
    margin:1.4rem 0 .35rem;letter-spacing:0;text-transform:none;padding:0;border:0;background:none;
    position:static}
.doccorps h2{font-size:1.02rem;font-weight:600}
.doccorps h2::before{display:none}
.doccorps h3{font-size:.94rem;font-weight:600}
.doccorps h4,.doccorps h5{font-size:.91rem;font-weight:600;color:var(--ink-2)}
.doccorps>*:first-child{margin-top:0}
.doccorps p{margin:.45rem 0;max-width:none}
.doccorps img{max-width:100%;height:auto;display:block;margin:.6rem 0;
              border:1px solid var(--rule);border-radius:4px}
.doccorps .tw{margin:.7rem 0}
.doccorps table{min-width:0;font-size:.87rem}
.doccorps th,.doccorps td{padding:.35rem .5rem;border:1px solid var(--rule-soft);vertical-align:top}
.doccorps th{background:var(--surface-2);font-family:var(--sans);font-size:.87rem;
             text-transform:none;letter-spacing:0;color:var(--ink)}
.doccorps td p,.doccorps th p{margin:0}
/* les ancres : la couleur dit où en est la remarque */
.doccorps .anc{background:var(--warn-soft);border-bottom:1px dashed var(--warn);cursor:pointer;
               padding:0 1px;border-radius:2px}
.doccorps sup.repere,.doccorps .anc sup,.doccorps .pt sup{font-family:var(--mono);font-size:.66rem;
    color:var(--warn);margin-left:1px;font-weight:500}
.doccorps .pt{cursor:pointer;border-bottom:2px solid var(--warn);padding:0 2px}
.doccorps .anc.a_traiter{background:var(--crit-soft);border-bottom-color:var(--crit)}
.doccorps .anc.a_traiter sup{color:var(--crit)}
.doccorps .anc.repondue,.doccorps .pt.repondue{background:var(--accent-soft);border-bottom-color:var(--accent-2)}
.doccorps .anc.repondue sup{color:var(--accent-2)}
.doccorps .anc.ecartee{background:var(--warn-soft);border-bottom-color:var(--warn)}
.doccorps .anc.resolue,.doccorps .anc.acceptee,.doccorps .pt.resolue{background:var(--ok-soft);
    border-bottom:1px solid var(--ok)}
.doccorps .anc.resolue sup,.doccorps .anc.acceptee sup{color:var(--ok)}
.doccorps .anc.reportee{background:none;border-bottom:1px dotted var(--ink-3)}
.doccorps .anc.reportee sup{color:var(--ink-3)}
/* ancre héritée de la version précédente : un liseré, pas un aplat */
.doccorps .anc.herite{background:none;border-bottom-width:2px;border-bottom-style:solid}
.doccorps .anc.sel{background:var(--accent-soft);border-bottom:2px solid var(--accent)}
.doccorps .anc.sel sup{color:var(--accent)}
.doccorps .encours{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft);
                   border-bottom:2px solid var(--accent)}
/* comparaison : masquée par défaut, le texte se lit propre */
.doccorps del,.doccorps p.supprime{display:none}
.doccorps ins{text-decoration:none}
.relire.diff .doccorps del{display:inline;color:var(--crit);text-decoration:line-through;
    background:var(--crit-soft)}
.relire.diff .doccorps p.supprime{display:block;opacity:.85}
.relire.diff .doccorps ins{background:var(--ok-soft);color:var(--ok);
    box-shadow:inset 0 -1px 0 var(--ok)}
.relire.annoter .doccorps{cursor:text}
.relire.annoter .voletdoc{box-shadow:inset 0 0 0 2px var(--accent)}
.voletdoc .indice{flex:0 0 auto;margin:0;padding:.35rem .9rem;font-size:.87rem;
    background:var(--accent-soft);color:var(--accent);border-bottom:1px solid var(--rule)}
.voletdoc .indice kbd{font-family:var(--mono);font-size:.77rem;border:1px solid currentColor;
    border-radius:3px;padding:0 .25rem}
.vide{color:var(--ink-3);font-size:.91rem;padding:1rem .9rem;margin:0}

/* la frise des versions, dans la barre du haut */
.mt{display:flex;align-items:center;gap:0;font-family:var(--mono);font-size:.81rem}
.mt i{display:block;width:14px;height:1px;background:var(--rule)}
.mt a,.mt span{display:inline-flex;align-items:center;justify-content:center;min-width:1.9rem;
    height:1.55rem;padding:0 .35rem;border:1px solid var(--rule);border-radius:999px;
    color:var(--ink-2);text-decoration:none;background:var(--surface)}
.mt a:hover{border-color:var(--accent);color:var(--accent)}
.mt a[aria-current="page"]{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:500}
.mt a.validee{border-color:var(--ok);color:var(--ok)}
.mt a.rt{min-width:1.4rem;border-style:dashed;color:var(--ink-3)}
.mt span{border-style:dashed;color:var(--ink-3)}
/* page du livrable : la frise des versions, sur sa propre ligne */
.frise-v{flex-basis:100%;list-style:none;margin:.35rem 0 -.2rem;padding:0;display:flex;
    overflow-x:auto;scrollbar-width:thin}
.frise-v li{position:relative;flex:0 0 auto;min-width:9.5rem;padding:0 1.4rem .3rem 0;
    display:flex;flex-direction:column;gap:.15rem;--c:var(--ink-3);--fond:var(--surface)}
/* le trait qui relie une version à la suivante */
.frise-v li:not(:last-child)::after{content:"";position:absolute;left:2.3rem;right:.2rem;top:1.05rem;
    height:2px;background:var(--rule)}
.frise-v li.a_corriger{--c:var(--warn)}
.frise-v li.en_relecture,.frise-v li.relue{--c:var(--accent-2)}
.frise-v li.validee{--c:var(--ok)}
.frise-v li.deposee{--c:var(--ink-2)}
.frise-v li.passee{--c:var(--ink-3)}
.frise-v li:not(:last-child).passee::after,.frise-v li.a_corriger:not(.passee)::after{background:var(--c)}
.frise-v .noeud{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.5rem;
    align-self:flex-start;padding:.2rem .7rem .2rem .25rem;border-radius:999px;
    background:var(--surface);text-decoration:none;color:var(--ink-2)}
.frise-v .noeud b{display:inline-flex;align-items:center;justify-content:center;
    min-width:2.2rem;height:1.75rem;padding:0 .4rem;border-radius:999px;
    font-family:var(--mono);font-size:.87rem;font-weight:600;
    border:2px solid var(--c);color:var(--c);background:var(--fond)}
.frise-v .etat{font-size:.84rem;font-weight:500;color:var(--c)}
.frise-v a.noeud:hover b{box-shadow:0 0 0 3px var(--accent-soft)}
.frise-v a.noeud:hover .etat{text-decoration:underline}
.frise-v li.ici .noeud{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.frise-v li.ici .noeud b{background:var(--c);color:var(--surface)}
.frise-v .meta{padding-left:.35rem;font-size:.8rem;color:var(--ink-3);white-space:nowrap}
.frise-v .meta em{font-style:normal;color:var(--crit);font-weight:500}
.frise-v .rt{padding-left:.35rem;font-size:.8rem;color:var(--accent);text-decoration:none;align-self:flex-start}
.frise-v .rt:hover{text-decoration:underline}
.frise-v li.attendue .noeud b{border-style:dashed;border-color:var(--rule);color:var(--ink-3)}
.frise-v li.attendue .etat{color:var(--ink-3);font-weight:400}
.seg{display:inline-flex;border:1px solid var(--rule);border-radius:5px;overflow:hidden}
.seg button{font:inherit;font-size:.87rem;padding:.3rem .65rem;border:0;background:var(--surface);
    color:var(--ink-3);cursor:pointer}
.seg button+button{border-left:1px solid var(--rule)}
.seg button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);font-weight:500}
#bDiff[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}

/* colonne des remarques */
.remliste{flex:1 1 auto;overflow-y:auto;min-height:0}
.remliste .grp{position:sticky;top:0;z-index:2;display:flex;align-items:baseline;gap:.5rem;
    padding:.45rem .9rem;background:var(--surface-2);border-bottom:1px solid var(--rule);
    font-size:.77rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.remliste .grp .d{margin-left:auto;font-family:var(--mono);font-weight:400;letter-spacing:0;
    text-transform:none;color:var(--ink-3)}
.rc{padding:.6rem .9rem .65rem;border-bottom:1px solid var(--rule-soft);cursor:pointer;
    box-shadow:inset 3px 0 0 var(--rule)}
.rc:hover{background:var(--surface-2)}
.rc:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rc.a_traiter{box-shadow:inset 3px 0 0 var(--crit)}
.rc.repondue{box-shadow:inset 3px 0 0 var(--accent-2)}
.rc.ecartee{box-shadow:inset 3px 0 0 var(--warn)}
.rc.resolue,.rc.acceptee{box-shadow:inset 3px 0 0 var(--ok)}
.rc.reportee{box-shadow:inset 3px 0 0 var(--ink-3)}
.rc.resolue .quoi,.rc.acceptee .quoi,.rc.reportee .quoi{color:var(--ink-3)}
.rc.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.rc .tete{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-bottom:.25rem}
.rc .rep{font-family:var(--mono);font-size:.87rem;color:var(--ink);font-weight:500;margin-right:.1rem}
.rc .cit{margin:0 0 .2rem;font-family:var(--mono);font-size:.77rem;color:var(--ink-3);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc .quoi{margin:0;font-size:.91rem;line-height:1.45}
.rc .reponse{margin-top:.4rem;font-size:.87rem;color:var(--ink-2);
    border-left:3px solid var(--accent-2);background:var(--accent-soft);padding:.35rem .55rem;
    border-radius:0 4px 4px 0}
.rc .reponse b{display:block;font-family:var(--mono);font-size:.72rem;font-weight:500;
    letter-spacing:.04em;color:var(--ink-3);margin-bottom:.1rem}
.rc form.act{margin:.45rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.rc form.act .fait{font-size:.87rem;color:var(--ok)}
.rc details.act{margin-top:.4rem}
.rc details.act summary{font-size:.87rem;color:var(--accent);cursor:pointer}
.rc details.act form{margin:.4rem 0 0;display:flex;flex-direction:column;gap:.35rem}
.rc .attente{margin:.35rem 0 0;font-size:.81rem;color:var(--ink-3)}
.bouton.ok{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}
.lien{font:inherit;border:0;background:none;color:var(--ink-3);text-decoration:underline;cursor:pointer;padding:0}
.rc textarea,.bulle textarea{font:inherit;font-size:.91rem;
    padding:.4rem .5rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);
    color:var(--ink);resize:vertical;width:100%}
.rc .b,.bulle .b,.cloture .b{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}
.cloture{flex:0 0 auto;border-top:1px solid var(--rule);background:var(--surface-2);
    padding:.65rem .9rem;display:flex;flex-direction:column;gap:.45rem}
.cloture form{margin:0}
.cloture .msg{margin:0;font-size:.87rem;color:var(--crit)}
.cloture .msg.ok{color:var(--ok)}
.cloture .regle{margin:0;font-size:.87rem;color:var(--ink-2);line-height:1.45}
.cloture .prog{height:4px;background:var(--rule-soft);border-radius:2px;overflow:hidden}
.cloture .prog i{display:block;height:100%;background:var(--ok)}
.bouton[disabled]{opacity:.5;cursor:not-allowed}
.relire .plus{position:absolute;z-index:15;left:1rem;bottom:1rem;box-shadow:0 8px 20px -10px rgba(10,20,35,.5)}
.relire:not(.annoter) .plus{display:none}

/* la bulle : la remarque se crée à l'endroit du surlignage */
.bulle{position:absolute;z-index:20;width:min(330px,90vw);background:var(--surface);
       border:1px solid var(--accent);border-radius:6px;
       box-shadow:0 10px 28px -12px rgba(10,20,35,.4);padding:.6rem .7rem;
       display:flex;flex-direction:column;gap:.4rem}
.bulle .cible{margin:0;font-family:var(--mono);font-size:.77rem;color:var(--ink-3);
              overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bulle .sev{display:flex;gap:.25rem}
.bulle .sev label{font-family:var(--mono);font-size:.77rem;padding:.15rem .4rem;
    border:1px solid var(--rule);border-radius:999px;color:var(--ink-3);cursor:pointer;
    background:var(--surface)}
.bulle .sev input{position:absolute;opacity:0;width:0;height:0}
.bulle .sev label:has(input:checked){border-color:var(--accent);background:var(--accent-soft);
    color:var(--accent);font-weight:500}
.topbar h1 .retour{text-decoration:none;color:var(--ink-3);margin-right:.3rem}
.topbar h1 .retour:hover{color:var(--accent)}
.topbar h1 .ver{font-family:var(--mono);font-size:.9rem;color:var(--ink-3);font-weight:400}
.seg a.segl{font:inherit;font-size:.87rem;padding:.3rem .6rem;color:var(--ink-3);
            text-decoration:none;border-right:1px solid var(--rule);background:var(--surface)}
.seg a.segl:last-child{border-right:0}
.seg a.segl[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:500}
.versions .ouvrir{grid-column:2;margin:.35rem 0 .1rem}
.versions .ouvrir .bouton{display:inline-block;text-decoration:none;font-size:.87rem}
/* suivi d'un livrable sur la page du projet */
.livrables .suivi{display:flex;flex-wrap:wrap;gap:.5rem .8rem;align-items:center;margin:.6rem 0 .2rem}
.livrables .suivi .mt{flex:0 0 100%}
.livrables .suivi .etat{margin:0;font-size:.91rem;color:var(--ink-2)}
.livrables .suivi .etat.ok{color:var(--ok)}
.livrables .suivi .bouton{text-decoration:none}
.depot .regle{margin:0;font-size:.87rem;color:var(--ink-2);border-left:3px solid var(--cyan);
    padding:.3rem .55rem;background:var(--accent-soft)}

/* ---------------- classeur (.xlsx) ---------------- */
.doccorps.genre-xlsx{padding:0;font-size:.87rem;line-height:1.3}
.classeur .onglets{position:sticky;top:0;z-index:4;display:flex;gap:2px;flex-wrap:wrap;
    padding:.4rem .6rem 0;background:var(--surface-2);border-bottom:1px solid var(--rule)}
.classeur .onglets a{font-family:var(--mono);font-size:.77rem;padding:.3rem .7rem;text-decoration:none;
    color:var(--ink-3);border:1px solid transparent;border-bottom:0;border-radius:4px 4px 0 0}
.classeur .onglets a[aria-current="true"]{background:var(--surface);color:var(--ink);border-color:var(--rule);
    margin-bottom:-1px}
.classeur .onglets .n{color:var(--warn);font-weight:500}
.classeur .bandeau{margin:0;padding:.35rem .8rem;font-family:var(--mono);font-size:.77rem;color:var(--ink-3);
    border-bottom:1px solid var(--rule-soft)}
.classeur .bandeau .diffseul{display:none}
.relire.diff .classeur .bandeau .diffseul{display:inline;color:var(--accent)}
.classeur .tw{margin:0;overflow:auto}
.doccorps .grille{border-collapse:collapse;font-variant-numeric:tabular-nums;min-width:0;width:auto}
.doccorps .grille th,.doccorps .grille td{border:1px solid var(--rule-soft);padding:.18rem .45rem;
    white-space:nowrap;max-width:22rem;overflow:hidden;text-overflow:ellipsis;vertical-align:top;
    position:relative;font-size:.81rem}
.doccorps .grille thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);color:var(--ink-3);
    font-family:var(--mono);font-weight:400;text-align:center;font-size:.77rem}
.doccorps .grille tbody th{position:sticky;left:0;z-index:1;background:var(--surface-2);color:var(--ink-3);
    font-family:var(--mono);font-weight:400;text-align:right;font-size:.77rem}
.doccorps .grille thead th.coin{left:0;z-index:3}
.doccorps .grille td.anc{border-bottom:1px solid var(--rule-soft);border-radius:0;padding:.18rem .45rem;cursor:pointer}
.doccorps .grille td.anc.a_traiter{--liseré:var(--crit)}
.doccorps .grille td.anc.repondue{--liseré:var(--accent-2)}
.doccorps .grille td.anc.resolue,.doccorps .grille td.anc.acceptee{--liseré:var(--ok)}
.doccorps .grille td.anc.reportee{--liseré:var(--ink-3)}
.doccorps .grille td.anc.sel{--liseré:var(--accent);background:var(--accent-soft)}
.doccorps .grille td.anc{box-shadow:
    inset 0 calc(var(--t,0) * 2px) 0 var(--liseré,var(--warn)),
    inset 0 calc(var(--b,0) * -2px) 0 var(--liseré,var(--warn)),
    inset calc(var(--l,0) * 2px) 0 0 var(--liseré,var(--warn)),
    inset calc(var(--r,0) * -2px) 0 0 var(--liseré,var(--warn))}
.doccorps .grille td.bt{--t:1}.doccorps .grille td.bb{--b:1}
.doccorps .grille td.bl{--l:1}.doccorps .grille td.br{--r:1}
.doccorps .grille td sup.repere{position:absolute;top:1px;right:2px;font-size:.66rem;margin:0}
.doccorps .grille td.encours{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.relire.annoter .doccorps .grille td{cursor:cell;user-select:none}
.relire.diff .doccorps .grille td.mod{background:var(--warn-soft)}
.relire.diff .doccorps .grille td.mod del{display:inline;margin-right:.35rem;font-size:.77rem}
.relire.diff .doccorps .grille .ajout,.relire.diff .doccorps .grille tr.ajout td{background:var(--ok-soft)}
/* le classeur défile dans sa propre grille : en-têtes de lignes et de colonnes restent visibles */
.doccorps.genre-xlsx{overflow:hidden;display:flex;flex-direction:column}
.classeur{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.classeur .feuille{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.classeur .feuille[hidden]{display:none}
.classeur .tw{flex:1 1 auto;min-height:0}

/* ---------------- présentation (.pptx) ---------------- */
.voletdoc .indice.avert{background:var(--warn-soft);color:var(--warn)}
.doccorps.genre-pptx{background:var(--surface-2)}
.diaporama{display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:.9rem;align-items:start}
.diaporama>.bandeau{grid-column:1/-1;margin:0;font-family:var(--mono);font-size:.77rem;color:var(--ink-3)}
.diaporama .diffseul{display:none}
.relire.diff .diaporama .diffseul{display:inline-flex}
.relire.diff .diaporama>.bandeau.diffseul{display:block}
.diapo{background:var(--surface);border:1px solid var(--rule);border-radius:6px;overflow:hidden;
    font-size:.87rem;line-height:1.45;cursor:pointer}
.diapo>header{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;padding:.4rem .6rem;
    border-bottom:1px solid var(--rule-soft)}
.diapo .rang{font-family:var(--mono);font-size:.77rem;color:var(--ink-3);min-width:1.2rem}
.diapo>header b{font-weight:600;color:var(--ink);font-size:.87rem;flex:1 1 8rem}
.diapo>header i{color:var(--ink-3);font-weight:400}
.diapo sup.repere{font-family:var(--mono);font-size:.72rem;padding:0 .25rem;border-radius:3px;
    background:var(--warn-soft);color:var(--warn)}
.diapo .vignette img{display:block;width:100%;height:auto;margin:0;border:0;border-radius:0;
    border-bottom:1px solid var(--rule-soft)}
.diapo .texte{padding:.35rem .6rem .5rem;color:var(--ink-2)}
.diapo .texte p{margin:.15rem 0}
.diapo .notes{padding:0 .6rem .45rem;font-size:.81rem;color:var(--ink-3)}
.diapo .notes summary{cursor:pointer}
.diapo.vise{box-shadow:0 0 0 2px var(--warn)}
.diapo.vise.a_traiter{box-shadow:0 0 0 2px var(--crit)}
.diapo.vise.repondue{box-shadow:0 0 0 2px var(--accent-2)}
.diapo.vise.resolue,.diapo.vise.acceptee{box-shadow:0 0 0 2px var(--ok)}
.diapo.vise.reportee{box-shadow:0 0 0 1px var(--ink-3)}
.diapo.vise.sel,.diapo.sel{box-shadow:0 0 0 3px var(--accent)}
.diapo.encours{box-shadow:0 0 0 3px var(--accent);background:var(--accent-soft)}
.relire.annoter .diapo:hover{box-shadow:0 0 0 2px var(--accent)}
.relire.diff .diapo.ajoutee{border-color:var(--ok)}
.relire.diff .diapo.modifiee{border-color:var(--warn)}

/* ---------------- script R ---------------- */
.doccorps.genre-r{padding:.6rem 0 3rem;font-size:.87rem;line-height:1.55}
.script{font-family:var(--mono);counter-reset:none;min-width:max-content}
.script .l{white-space:pre;padding:0 1rem 0 4.2rem;position:relative;min-height:1.55em;color:var(--ink)}
.script .l::before{content:attr(data-n);position:absolute;left:0;width:3.2rem;text-align:right;
    color:var(--ink-3);font-size:.77rem;user-select:none;padding-top:.1em}
.script .l.prose{font-family:var(--sans);color:var(--ink-2);white-space:pre-wrap}
.script .l.cloture{color:var(--ink-3)}
.script .l.code{background:var(--surface-2)}
.script .l.supprime{display:none}
.relire.diff .script .l.supprime{display:block;background:var(--crit-soft)}
.relire.diff .script .l.inseree{background:var(--ok-soft)}
.doccorps.genre-r{overflow:auto}
/* avec la vignette, le texte ne sert qu'à la comparaison */
.diapo:has(.vignette) .texte{display:none}
.relire.diff .diapo:has(.vignette) .texte{display:block}

/* ---------------- réunion ---------------- */
.presents{margin:0;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.87rem;color:var(--ink-3)}
.reunion{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:1000px){.reunion{grid-template-columns:1fr}}
.reunion .principal,.reunion .lateral{display:flex;flex-direction:column;gap:1rem;min-width:0}
.reunion .carte>h2 .d{font-weight:400}
.odj{list-style:none;margin:0;padding:.3rem .9rem .5rem}
.odj li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.1rem .6rem;align-items:baseline;
    padding:.45rem 0;border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.odj li:last-child{border-bottom:0}
.odj li .o{grid-column:2;font-size:.81rem;color:var(--ink-3)}
.odj li.traite .t{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--rule)}
.odj li.vide{display:block;color:var(--ink-3)}
.odj .coche-point{margin:0}
.coche.faite{background:var(--ok);border-color:var(--ok)}
.reunion form.ajout,.reunion form.nouvelle{display:flex;gap:.4rem;padding:.6rem .9rem .8rem;flex-wrap:wrap;
    border-top:1px solid var(--rule-soft)}
.reunion form.nouvelle{flex-direction:column}
.reunion form.nouvelle.ligne{flex-direction:row}
.reunion form.nouvelle.ligne input[type=text]{flex:1 1 14rem}
.reunion input[type=text],.reunion input[type=date],.reunion select,.reunion textarea{font:inherit;font-size:.91rem;
    padding:.38rem .5rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.reunion form.ajout input[type=text]{flex:1 1 auto}
.reunion textarea{width:100%;resize:vertical;line-height:1.5}
.reunion .seance{display:flex;flex-direction:column;gap:.45rem;padding:.6rem .9rem .8rem}
.reunion .seance textarea[name=notes]{font-family:var(--mono);font-size:.87rem}
.reunion .b{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.reunion .prochaine{margin-left:auto;font-size:.87rem;color:var(--ink-3);display:flex;gap:.4rem;align-items:center}
.decisions,.releve{list-style:none;margin:0;padding:.2rem .9rem .4rem}
.decisions>li,.releve>li{display:grid;grid-template-columns:1.8rem minmax(0,1fr);gap:.6rem;padding:.65rem 0;
    border-bottom:1px solid var(--rule-soft)}
.decisions>li:last-child,.releve>li:last-child{border-bottom:0}
.decisions .n,.releve .n{font-family:var(--mono);font-size:.95rem;color:var(--accent);font-weight:500}
.decisions .i,.releve .i{margin:0;font-size:.93rem;line-height:1.45;color:var(--ink)}
.decisions .m,.releve .m{margin:.25rem 0 0;font-size:.87rem;color:var(--ink-2)}
.decisions .m b,.releve .m b{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
    color:var(--ink-3);font-weight:500;margin-right:.35rem}
.decisions .m.manque{color:var(--crit)}
.reunion details.edit{margin-top:.3rem}
.reunion details.edit summary{font-size:.81rem;color:var(--accent);cursor:pointer}
.reunion details.edit form{display:flex;flex-direction:column;gap:.35rem;margin-top:.4rem}
.releve>li.scellee .i{color:var(--ink)}
.releve>li.scellee{background:linear-gradient(90deg,var(--ok-soft),transparent 40%)}
.releve .etat{margin:.4rem 0 0;font-size:.81rem;color:var(--ink-3);display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.releve .gestes{display:flex;gap:.6rem;align-items:flex-start;flex-wrap:wrap;margin-top:.45rem}
.releve .gestes form{margin:0}
.releve .amendements{margin:.35rem 0 0;padding-left:1rem;font-size:.81rem;color:var(--warn)}
.tout-signer{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:0;padding:.6rem .9rem;
    background:var(--accent-soft);border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.taches-seance{list-style:none;margin:0;padding:.2rem .9rem .5rem}
.taches-seance li{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;padding:.4rem 0;
    border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.taches-seance li:last-child{border-bottom:0}
.taches-seance .o{font-size:.81rem;color:var(--ink-3)}
.taches-seance form{margin:0 0 0 auto}
.cloture-reunion{border-color:var(--accent);position:sticky;top:1rem}
.cloture-reunion .bilan{list-style:none;margin:0;padding:.6rem .9rem 0;font-size:.91rem;display:flex;flex-direction:column;gap:.25rem}
.cloture-reunion .bilan b{font-family:var(--mono);color:var(--accent)}
.cloture-reunion .manque{color:var(--crit)}
.cloture-reunion p{margin:0;padding:.5rem .9rem;font-size:.87rem;color:var(--ink-3)}
.cloture-reunion form{margin:0;padding:0 .9rem .9rem}
.reunion form.nouvelle>.bouton{align-self:flex-start}
.signatures table{width:100%;border-collapse:collapse;font-size:.87rem}
.signatures td{padding:.5rem .6rem;border-bottom:1px solid var(--rule-soft);vertical-align:top}
.signatures td.n{font-family:var(--mono);color:var(--accent);width:1.6rem}
.signatures td .o{display:block;font-size:.77rem;color:var(--ink-3);margin-top:.15rem}
.signatures tr.ok td:first-child{box-shadow:inset 3px 0 0 var(--ok)}
.signatures td form{margin:0}
.reunion .aide{margin:0;padding:.5rem .9rem .7rem;font-size:.81rem;color:var(--ink-3);line-height:1.45}
.notes-lues{margin:.2rem .9rem .9rem;padding:.6rem .7rem;background:var(--surface-2);border-radius:4px;
    font-family:var(--mono);font-size:.81rem;white-space:pre-wrap}
.reunions-liste{list-style:none;margin:0;padding:0}
.reunions-liste li{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;padding:.55rem .9rem;
    border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.reunions-liste li:last-child{border-bottom:0}
.reunions-liste .o{font-size:.81rem;color:var(--ink-3)}
.reunions-liste .d{margin-left:auto}
.participants-choix{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.87rem}
.reunion summary.titre-repli{padding:.7rem .9rem;cursor:pointer;font-size:.77rem;font-weight:600;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-2);display:flex;gap:.5rem;align-items:baseline}
.reunion summary.titre-repli .d{margin-left:auto;font-family:var(--mono);font-weight:400;color:var(--ink-3)}
.etat-notes{font-family:var(--mono);font-size:.77rem;color:var(--ink-3);margin-right:auto}
.etat-notes.erreur{color:var(--crit)}
.reunion form.envoi{display:flex;flex-direction:column;gap:.4rem;margin:0 .9rem .9rem;padding:.7rem .8rem;
    border:1px solid var(--accent);border-radius:6px;background:var(--accent-soft)}
.reunion form.envoi .titre{margin:0;font-size:.77rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.nouvelle-reunion{max-width:34rem;display:flex;flex-direction:column;gap:.9rem;padding-bottom:1rem}
.nouvelle-reunion .champ{display:flex;flex-direction:column;gap:.35rem;margin:0 .9rem;border:0;padding:0;font-size:.91rem;color:var(--ink-2)}
.nouvelle-reunion .champ legend{padding:0;margin-bottom:.35rem}
.nouvelle-reunion input[type=date]{font:inherit;padding:.4rem .5rem;border:1px solid var(--rule);border-radius:4px;
    background:var(--surface);color:var(--ink);max-width:12rem}
.nouvelle-reunion .case{display:flex;gap:.45rem;align-items:center;color:var(--ink)}
.nouvelle-reunion .aide{font-size:.81rem;color:var(--ink-3)}
.nouvelle-reunion .b{display:flex;gap:.5rem;margin:0 .9rem}

/* ---------------- sous-navigation du projet, éléments clés, notes ---------------- */
.sousnav{position:sticky;top:0;z-index:5;display:flex;gap:.2rem;flex-wrap:wrap;margin:-.2rem 0 0;padding:.35rem;
    background:var(--surface);border:1px solid var(--rule);border-radius:6px}
.sousnav a{font-size:.87rem;padding:.3rem .65rem;border-radius:4px;color:var(--ink-2);text-decoration:none}
.sousnav a:hover{background:var(--accent-soft);color:var(--accent)}
[id]{scroll-margin-top:3.2rem}
.elements{margin:0;padding:.2rem .9rem .6rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:0 1.2rem}
.element{padding:.65rem 0;border-bottom:1px solid var(--rule-soft);min-width:0}
.element dt{font-size:.77rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);
    display:flex;gap:.4rem;align-items:center}
.element dd{margin:.25rem 0 0}
.element .valeur{margin:0;font-size:.9rem;line-height:1.45;white-space:pre-wrap;color:var(--ink)}
.element .valeur.absent{color:var(--ink-3);font-style:italic}
.element .source{margin:.25rem 0 0;font-size:.77rem;color:var(--ink-3)}
.element.verrou .valeur{border-left:3px solid var(--accent);padding-left:.5rem}
.element details.edit summary,.epingler summary{font-size:.81rem;color:var(--accent);cursor:pointer}
.element details.edit form{display:flex;flex-direction:column;gap:.35rem;margin-top:.35rem}
.element textarea,.element input[type=text],.note-nouvelle textarea,.note-nouvelle select,.notes-privees textarea,
.epingler select{font:inherit;font-size:.91rem;padding:.35rem .5rem;border:1px solid var(--rule);border-radius:4px;
    background:var(--surface);color:var(--ink);width:100%}
.epingler select{width:auto}
.element .b,.note-nouvelle .b{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.element .histo{display:inline}
.element .histo ul{margin:.3rem 0 0;padding-left:1rem}
.epingler{margin-top:.3rem}
.epingler form{display:flex;gap:.4rem;margin-top:.3rem;flex-wrap:wrap}
.note-nouvelle{display:flex;flex-direction:column;gap:.4rem;padding:.7rem .9rem;border-bottom:1px solid var(--rule-soft)}
.note-nouvelle select{width:auto}
.notes-privees{list-style:none;margin:0;padding:0 .9rem .6rem}
.notes-privees li{padding:.6rem 0;border-bottom:1px solid var(--rule-soft)}
.notes-privees li:last-child{border-bottom:0}
.notes-privees .corps{margin:0;font-size:.91rem;white-space:pre-wrap}
.notes-privees .o{margin:.25rem 0 0;font-size:.77rem;color:var(--ink-3)}
.notes-privees details form{display:flex;flex-direction:column;gap:.35rem;margin-top:.35rem}

/* ---------------- timeline ---------------- */
.tl{border:1px solid var(--rule);border-radius:8px;background:var(--surface);overflow:hidden;min-height:8rem}
.tl-defil{overflow-x:auto;overflow-y:hidden;position:relative}
.tl-toile{position:relative}
.tl-ligne{display:flex;min-height:56px;border-bottom:1px solid var(--rule-soft)}
.tl-ligne:last-of-type{border-bottom:0}
.tl-nom{position:sticky;left:0;z-index:6;flex:0 0 230px;width:230px;box-sizing:border-box;padding:.5rem .7rem;
    background:var(--surface);border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:.1rem;
    justify-content:center;min-width:0}
.tl-nom b{font-size:.87rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-nom span{font-size:.77rem;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-nom .puce{align-self:flex-start;font-size:.72rem}
.tl-voie{position:relative;flex:1 1 auto}
.tl-axe{min-height:30px;position:sticky;top:0;z-index:7;background:var(--surface-2)}
.tl-axe .tl-nom{background:var(--surface-2)}
.tl-mois{position:absolute;top:0;bottom:0;border-left:1px solid var(--rule);padding:.45rem 0 0 .3rem;
    font-family:var(--mono);font-size:.72rem;color:var(--ink-3);white-space:nowrap}
.tl-mois.annee{border-left-color:var(--ink-3);color:var(--ink-2);font-weight:500}
.tl-jour,.tl-terminus{position:absolute;top:0;bottom:0;width:0;border-left:2px solid var(--cyan);z-index:4;pointer-events:none}
.tl-jour span,.tl-terminus span{position:absolute;bottom:4px;left:4px;font-family:var(--mono);font-size:.72rem;
    color:var(--accent-2);white-space:nowrap;background:var(--surface-2);padding:0 .2rem}
.tl-terminus{border-left:2px dashed var(--orange,#CC6030)}
.tl-terminus span{color:#CC6030;left:auto;right:4px;font-weight:600}
.tl-couloir.termine .tl-nom b{color:var(--ink-3)}
.tl-barre{position:absolute;top:19px;height:18px;border-radius:4px;background:var(--accent);opacity:.85;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);touch-action:none}
.tl-barre.estime{background:repeating-linear-gradient(90deg,var(--accent) 0 10px,transparent 10px 14px),var(--accent-soft)}
.tl-barre.termine{background:var(--ok);opacity:.55}
.tl-barre.retard{background:var(--accent)}
.tl-depasse{position:absolute;top:19px;height:18px;background:repeating-linear-gradient(135deg,var(--crit-soft) 0 5px,var(--crit) 5px 7px);
    border-radius:0 4px 4px 0;opacity:.8;pointer-events:none}
.tl-barre[tabindex]{cursor:grab}
.tl-barre[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.tl-barre.glisse{cursor:grabbing;opacity:1;box-shadow:0 0 0 2px var(--cyan)}
.tl-barre.glisse::after{content:attr(data-apercu);position:absolute;top:-19px;left:0;white-space:nowrap;
    font-family:var(--mono);font-size:.72rem;color:var(--ink);background:var(--surface);padding:0 .25rem;border-radius:3px}
.tl-barre .poignee{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize}
.tl-barre .poignee.debut{left:-3px}.tl-barre .poignee.fin{right:-3px}
.tl-sans-fin{position:absolute;top:17px;font:inherit;font-size:.77rem;color:var(--ink-3);border:1px dashed var(--rule);
    background:var(--surface);border-radius:4px;padding:.1rem .45rem;cursor:pointer;white-space:nowrap}
span.tl-sans-fin{cursor:default}
.tl-version{position:absolute;top:40px;width:0;height:0;pointer-events:auto}
.tl-version::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;transform:rotate(45deg);
    background:var(--surface);border:1.5px solid var(--accent-2)}
.tl-version i{position:absolute;top:4px;left:-8px;font-style:normal;font-family:var(--mono);font-size:.66rem;color:var(--accent-2)}
.tl-evt{position:absolute;top:28px;width:0;height:0;border:0;padding:0;background:none;font:inherit;cursor:default;touch-action:none}
button.tl-evt{cursor:grab}
.tl-evt::before{content:"";position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;
    background:var(--warn);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--warn)}
.tl-evt.aca::before{background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.tl-evt.reg::before{background:var(--crit);box-shadow:0 0 0 1px var(--crit)}
.tl-evt.sci::before{background:var(--cyan);box-shadow:0 0 0 1px var(--accent-2)}
.tl-evt.mat::before{background:var(--ink-3);box-shadow:0 0 0 1px var(--ink-3)}
.tl-evt i{position:absolute;left:8px;font-style:normal;font-size:.77rem;color:var(--ink-2);white-space:nowrap;
    background:color-mix(in srgb,var(--surface) 85%,transparent);padding:0 .2rem;border-radius:3px}
.tl-evt.haut i{top:-24px}.tl-evt.bas i{top:9px}
.tl-couloir .tl-evt{top:28px}
.tl-evt.glisse::before{box-shadow:0 0 0 3px var(--cyan)}
.tl-evt:focus-visible{outline:none}
.tl-evt:focus-visible::before{box-shadow:0 0 0 3px var(--ink)}
.tl-projet{min-height:64px;background:var(--surface-2)}
.tl-projet .tl-nom{background:var(--surface-2)}
.tl-projet .tl-evt{top:32px}
.tl-prep{position:absolute;top:26px;height:4px;background:var(--warn-soft);border-top:1px dashed var(--warn);pointer-events:none}
.tl-prep.retard{background:var(--crit-soft);border-top-color:var(--crit)}
.tl-liens{position:absolute;left:0;top:0;pointer-events:none;z-index:3;color:var(--ink-3)}
.tl-liens path{fill:none;stroke:currentColor;stroke-width:1.4}
.tl-liens path.risque{stroke:var(--crit);color:var(--crit);stroke-dasharray:4 3}
.tl-legende{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;margin:0;font-size:.77rem;color:var(--ink-3)}
.tl-legende span{display:inline-flex;align-items:center;gap:.35rem}
.tl-legende i{display:inline-block}
.l-barre{width:22px;height:8px;border-radius:2px;background:var(--accent)}
.l-barre.retard{background:repeating-linear-gradient(135deg,var(--crit-soft) 0 3px,var(--crit) 3px 5px)}
.l-version{width:7px;height:7px;transform:rotate(45deg);border:1.5px solid var(--accent-2)}
.l-evt{width:9px;height:9px;border-radius:50%;background:var(--warn)}
.l-prep{width:22px;height:3px;border-top:1px dashed var(--warn);background:var(--warn-soft)}
.l-dep{width:22px;border-top:1.5px solid var(--ink-3)}
.l-dep.risque{border-top:1.5px dashed var(--crit)}
.tl-legende .aide{margin-left:auto}
.tl-dialogue{border:1px solid var(--rule);border-radius:8px;padding:0;background:var(--surface);color:var(--ink);
    min-width:min(24rem,90vw);box-shadow:0 20px 50px -20px rgba(10,20,35,.5)}
.tl-dialogue::backdrop{background:rgba(12,25,45,.3)}
.tl-dialogue form{display:flex;flex-direction:column;gap:.6rem;padding:1rem 1.1rem}
.tl-dialogue .titre{margin:0;font-weight:600}
.tl-dialogue .texte{margin:0;font-size:.91rem;color:var(--ink-2)}
.tl-dialogue .champs{display:flex;gap:.8rem;flex-wrap:wrap}
.tl-dialogue label{display:flex;flex-direction:column;gap:.2rem;font-size:.81rem;color:var(--ink-3)}
.tl-dialogue input,.plan input,.plan select,.ajout-evt input,.ajout-evt select,.evts input,.evts select{font:inherit;font-size:.87rem;
    padding:.3rem .45rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.tl-dialogue .b{display:flex;gap:.5rem;justify-content:flex-end}
#planifier h3{margin:1rem .9rem .3rem;font-size:.81rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2)}
#planifier h3 .o{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-3)}
.plan{width:100%;border-collapse:collapse;font-size:.91rem}
.plan th{text-align:left;font-size:.77rem;font-weight:500;color:var(--ink-3);padding:.5rem .9rem;border-bottom:1px solid var(--rule)}
.plan td{padding:.45rem .9rem;border-bottom:1px solid var(--rule-soft);vertical-align:middle}
.plan .o,.evts .o{font-size:.81rem;color:var(--ink-3)}
.ligne-plan{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin:0}
.evts{list-style:none;margin:0;padding:0 .9rem}
.evts>li{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;padding:.45rem 0;border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.evts .date{font-family:var(--mono);font-size:.81rem;color:var(--ink-2);min-width:6.5rem}
.evts details.edit{flex-basis:100%}
.evts details.edit summary{font-size:.81rem;color:var(--accent);cursor:pointer}
.evts details form{margin-top:.35rem}
.ajout-evt{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;padding:.7rem .9rem .9rem}

/* ---------------- formulaires de mise en service ---------------- */
.formulaire{display:flex;flex-direction:column;gap:.85rem;padding-bottom:1rem;max-width:46rem}
.formulaire>p{margin:0 .9rem;font-size:.91rem;color:var(--ink-2);line-height:1.5}
.formulaire .champ{display:flex;flex-direction:column;gap:.3rem;margin:0 .9rem;border:0;padding:0;font-size:.87rem;color:var(--ink-2);min-width:0}
.formulaire .champ legend{padding:0;margin-bottom:.4rem}
.formulaire input[type=text],.formulaire input[type=date],.formulaire input[type=email],.formulaire input[type=password],
.formulaire select,.formulaire textarea,.formulaire-court input,.formulaire-court textarea,.invitation-form input,
.invitation-form select,.reglages-projet select,.axes-reglages input,.axes-reglages select,.lien-copie input,.ajout input{
    font:inherit;font-size:.91rem;padding:.42rem .55rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.formulaire .deux{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin:0}
@media (max-width:640px){.formulaire .deux{grid-template-columns:1fr}}
.formulaire .deux .champ{margin:0 .9rem}
.formulaire .deux .champ:first-child{margin-right:0}.formulaire .deux .champ:last-child{margin-left:0}
.formulaire .case{display:flex;gap:.5rem;align-items:flex-start;margin:0 .9rem;font-size:.91rem;color:var(--ink)}
.formulaire .b{display:flex;gap:.5rem;margin:0 .9rem;flex-wrap:wrap}
.formulaire .aide{margin:0 .9rem;font-size:.81rem;color:var(--ink-3)}
.formulaire .choix-types{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.45rem}
.formulaire .choix-types legend{grid-column:1/-1;float:left;width:100%}
.choix-type{display:block;cursor:pointer;position:relative}
.choix-type input{position:absolute;opacity:0;pointer-events:none}
.choix-type span{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .7rem;border:1px solid var(--rule);border-radius:6px;
    background:var(--surface);height:100%;box-sizing:border-box}
.choix-type span b{font-family:var(--sans);font-weight:600;color:var(--ink);font-size:.91rem}
.choix-type span i{font-family:var(--sans);font-style:normal;font-size:.77rem;color:var(--ink-3)}
.choix-type input:checked+span{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.choix-type input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.apercu{margin:0 .9rem;padding:.6rem .8rem;border:1px dashed var(--accent-2);border-radius:6px;background:var(--surface-2)}
.apercu .titre{margin:0 0 .3rem;font-size:.77rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-2);font-weight:600}
.apercu ul{margin:0;padding-left:1.1rem;font-size:.87rem;color:var(--ink-2);display:flex;flex-direction:column;gap:.15rem}
.apercu li.evt{list-style:circle;color:var(--warn)}
.lien-copie{display:flex;gap:.5rem;margin:0 .9rem}
.lien-copie input{flex:1 1 auto;font-family:var(--mono);font-size:.81rem}
.info{border-left:3px solid var(--ok);background:var(--ok-soft);padding:.6rem .9rem;border-radius:0 4px 4px 0;margin:0;font-size:.91rem}
.seg-radio{display:inline-flex;border:1px solid var(--rule);border-radius:5px;overflow:hidden;align-self:flex-start}
.seg-radio label{cursor:pointer}
.seg-radio input{position:absolute;opacity:0}
.seg-radio span{display:block;padding:.35rem .7rem;font-size:.87rem;color:var(--ink-3);background:var(--surface)}
.seg-radio label+label span{border-left:1px solid var(--rule)}
.seg-radio input:checked+span{background:var(--accent-soft);color:var(--accent);font-weight:500}
.seg-radio input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}
.axes-reglages{list-style:none;margin:0;padding:.3rem .9rem}
.axes-reglages li{display:flex;gap:.6rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--rule-soft)}
.axes-reglages li.archive{opacity:.55}
.ligne-axe{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin:0;flex:1}
.ligne-axe input[type=text]{flex:1 1 12rem}
#axes form.ajout{display:flex;gap:.4rem;padding:.6rem .9rem .9rem}
#axes form.ajout input{flex:1 1 auto}
.equipe{list-style:none;margin:0;padding:.3rem .9rem}
.equipe li{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap;padding:.4rem 0;border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.equipe li:last-child{border-bottom:0}
.equipe .o{font-size:.81rem;color:var(--ink-3)}
.equipe form.d{margin:0 0 0 auto;display:flex;gap:.6rem}
.sous-titre{margin:.6rem .9rem 0;font-size:.77rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.invitation-form{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;padding:.7rem .9rem .3rem;border-top:1px solid var(--rule-soft)}
.invitation-form input[type=email]{flex:1 1 14rem}
.reglages-projet{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-start;padding:.6rem .9rem .9rem;border-top:1px solid var(--rule-soft)}
.reglages-projet form.ligne{margin:0}
.reglages-projet details{flex:1 1 20rem}
.reglages-projet summary{font-size:.87rem;color:var(--accent);cursor:pointer}
.formulaire-court{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}
.formulaire-court .champ{display:flex;flex-direction:column;gap:.25rem;font-size:.87rem;color:var(--ink-2)}
.nouveau-projet{margin:.2rem 1rem .8rem;text-align:center;text-decoration:none}

/* ---------------- Aujourd'hui ---------------- */
.premier{background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:8px;
    padding:1.1rem 1.3rem 1.2rem;display:flex;flex-direction:column;gap:.35rem}
.premier.critique{border-left-color:var(--crit)}
.premier.calme{border-left-color:var(--ok)}
.premier .motif{margin:0;font-size:.87rem;color:var(--ink-3)}
.premier.critique .motif{color:var(--crit);font-weight:500}
.premier h2{margin:0;font-family:var(--serif);font-weight:500;font-size:1.45rem;line-height:1.25;letter-spacing:-.01em;
    text-transform:none;color:var(--ink);background:none;border:0;padding:0;text-wrap:balance}
.premier .contexte{margin:0;font-size:.87rem;color:var(--ink-2)}
.premier .contexte a{color:inherit}
.premier .gestes{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}
.premier .gestes form{margin:0}
.reporter-form{display:inline-flex;gap:.35rem;margin:0}
.file{list-style:none;margin:0;padding:0}
.file li{display:grid;grid-template-columns:4.2rem minmax(0,1fr) auto;gap:.8rem;align-items:center;
    padding:.6rem .9rem;border-bottom:1px solid var(--rule-soft)}
.file li:last-child{border-bottom:0}
.file li.critique{box-shadow:inset 3px 0 0 var(--crit)}
.file .duree{font-family:var(--mono);font-size:.77rem;color:var(--ink-2);text-align:right;white-space:nowrap}
.file .quoi{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.file .t{font-size:.92rem;color:var(--ink);text-decoration:none;line-height:1.35}
.file a.t:hover{color:var(--accent)}
.file .m{font-size:.81rem;color:var(--ink-3)}
.file .m a{color:inherit}
.file li.critique .m{color:var(--crit)}
.file li.critique .m a{color:var(--ink-3)}
.file .gestes{display:flex;gap:.4rem;align-items:center}
.file .gestes form{margin:0}
.plus-tard{position:relative}
.plus-tard summary{font-size:.81rem;color:var(--ink-3);cursor:pointer;list-style:none;padding:.2rem .4rem;border-radius:4px}
.plus-tard summary::-webkit-details-marker{display:none}
.plus-tard summary:hover{color:var(--accent)}
.plus-tard[open] .reporter-form{position:absolute;right:0;top:1.7rem;z-index:10;background:var(--surface);
    border:1px solid var(--rule);border-radius:6px;padding:.4rem;box-shadow:0 8px 20px -12px rgba(10,20,35,.4)}
@media (max-width:700px){.file li{grid-template-columns:3.4rem minmax(0,1fr)}.file .gestes{grid-column:2}}
.silence{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.7rem 1rem;border-radius:8px;
    background:var(--crit-soft);border:1px solid color-mix(in srgb,var(--crit) 30%,transparent)}
.silence p{margin:0;flex:1 1 24rem;font-size:.91rem;color:var(--ink)}
.silence .gestes{display:flex;gap:.4rem}
.silence form{margin:0}
.horizon .bande{position:relative;padding:.4rem .9rem 1rem}
.horizon .mois{position:relative;height:1.1rem;border-bottom:1px solid var(--rule)}
.horizon .mois span{position:absolute;top:0;font-family:var(--mono);font-size:.72rem;color:var(--ink-3);padding-left:.25rem;
    border-left:1px solid var(--rule);height:100%}
.horizon .piste{position:relative;height:4.4rem}
.horizon .jalon{position:absolute;top:.6rem;width:0;height:3.2rem;border-left:2px solid var(--accent-2);text-decoration:none}
.horizon .jalon.terminus{border-left-color:#CC6030;border-left-width:3px}
.horizon .jalon.livrable{border-left-style:dashed;border-left-color:var(--ink-3)}
.horizon .jalon i{position:absolute;left:4px;top:0;font-style:normal;font-size:.72rem;color:var(--ink-2);white-space:nowrap;
    background:var(--surface);padding:0 .2rem}
.horizon .jalon:nth-child(even) i{top:1.5rem}
.horizon .jalon.terminus i{color:#CC6030;font-weight:600}
.horizon .collision{margin:0 .9rem .8rem;padding:.45rem .7rem;border-radius:5px;background:var(--warn-soft);color:var(--warn);font-size:.87rem}
.file.attend li{grid-template-columns:4.2rem minmax(0,1fr)}

/* ---------------- Vue d'ensemble ---------------- */
.compteurs{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem}
.compteurs>div{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:.6rem .8rem;
    display:flex;flex-direction:column;gap:.1rem}
.compteurs b{font-family:var(--serif);font-weight:500;font-size:1.6rem;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.compteurs span{font-size:.81rem;color:var(--ink-3)}
.compteurs .c b{color:var(--crit)}.compteurs .a b{color:var(--accent)}.compteurs .w b{color:var(--warn)}
.legende-signaux{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;margin:0;font-size:.77rem;color:var(--ink-3)}
.legende-signaux span{display:inline-flex;gap:.35rem;align-items:center}
.legende-signaux .aide{margin-left:auto}
.sl{display:inline-flex;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;border-radius:4px;
    font-style:normal;font-family:var(--mono);font-size:.72rem;font-weight:500;color:var(--rule);
    border:1px dashed var(--rule);background:var(--surface)}
.sl.on{color:var(--surface);background:var(--accent);border:1px solid var(--accent)}
.sl.on.c{background:var(--crit);border-color:var(--crit)}
.sl.on.w{background:var(--warn);border-color:var(--warn)}
.creneaux{display:inline-flex;gap:.2rem}
.creneaux .sl:nth-child(2n+3){margin-left:.35rem}
.groupe-projets>h2 .dot{margin-right:.4rem}
.ligne-projet{display:grid;grid-template-columns:minmax(0,2.2fr) auto 6.5rem minmax(0,1.3fr) minmax(0,1.3fr);gap:.9rem;
    align-items:center;padding:.65rem .9rem;border-bottom:1px solid var(--rule-soft)}
.ligne-projet:last-child{border-bottom:0}
.ligne-projet.dort{opacity:.8}
.ligne-projet .p{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.ligne-projet .titre{font-size:.92rem;color:var(--ink);text-decoration:none;line-height:1.3}
.ligne-projet .titre:hover{color:var(--accent)}
.ligne-projet .meta{font-size:.81rem;color:var(--ink-3);display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}
.ligne-projet .terme{font-family:var(--mono);font-size:.81rem;color:var(--ink-2);display:flex;flex-direction:column}
.ligne-projet .terme i{font-style:normal;color:var(--ink-3);font-size:.77rem}
.ligne-projet .attente{font-size:.87rem;color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis}
.ligne-projet .attente b{display:block;font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;
    text-transform:uppercase;color:var(--ink-3)}
.ligne-projet .attente.vous a{color:var(--accent)}
@media (max-width:1100px){.ligne-projet{grid-template-columns:minmax(0,1fr) auto}.ligne-projet .terme,.ligne-projet .attente{grid-column:1/-1}}
.vide-axe{opacity:.7}

/* ---------------- plan de charge ---------------- */
.transverse .tw{overflow-x:auto}
.grille-plan{min-width:760px;padding:.4rem .9rem .2rem}
.grille-plan .entete,.ligne-plan-projet{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:.8rem;align-items:center}
.grille-plan .entete{height:1.4rem;border-bottom:1px solid var(--rule)}
.axe-mois{position:relative;height:100%}
.axe-mois i{position:absolute;top:.2rem;font-style:normal;font-family:var(--mono);font-size:.72rem;color:var(--ink-3);
    border-left:1px solid var(--rule);padding-left:.2rem;height:1.2rem}
.ligne-plan-projet{min-height:2.6rem;border-bottom:1px solid var(--rule-soft)}
.ligne-plan-projet .nom{display:flex;flex-direction:column;text-decoration:none;min-width:0}
.ligne-plan-projet .nom b{font-weight:500;font-size:.87rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ligne-plan-projet .nom span{font-size:.77rem;color:var(--ink-3)}
.ligne-plan-projet .piste{position:relative;height:2.2rem}
.ligne-plan-projet .barre{position:absolute;top:.8rem;height:.6rem;border-radius:3px;opacity:.85}
.ligne-plan-projet.dort .barre,.ligne-plan-projet.avenir .barre{opacity:.35}
.ligne-plan-projet .jalon{position:absolute;top:.35rem;width:0;height:1.5rem;border-left:2px solid #CC6030}
.ligne-plan-projet .jalon em{position:absolute;left:3px;top:-.1rem;font-style:normal;font-size:.72rem;color:#CC6030;white-space:nowrap;
    background:var(--surface);padding:0 .15rem}
.ligne-plan-projet .jour{position:absolute;top:0;bottom:0;border-left:1.5px solid var(--cyan)}
.transverse>.aide,.histo .aide{margin:.3rem .9rem .6rem;font-size:.77rem;color:var(--ink-3)}
.histo{border-top:1px solid var(--rule-soft);padding:.6rem .9rem 0}
.titre-histo{margin:0 0 .4rem;font-size:.77rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.titre-histo span{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-3)}
.barres{display:grid;grid-template-columns:repeat(12,1fr);gap:.4rem;height:8rem;align-items:end}
.barres .col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.barres .col i{display:block;width:70%;background:var(--accent-2);opacity:.6;border-radius:3px 3px 0 0;min-height:1px}
.barres .col i.pic{background:var(--accent);opacity:1}
.barres .v{font-family:var(--mono);font-size:.72rem;color:var(--ink-2)}
.barres .m{font-family:var(--mono);font-size:.72rem;color:var(--ink-3);margin-top:.2rem}
.barres .soum{position:absolute;top:0;right:12%;font-family:var(--mono);font-size:.66rem;color:#fff;background:#CC6030;border-radius:50%;
    width:1rem;height:1rem;display:grid;place-items:center;font-weight:500}
.colonne-plan{list-style:none;margin:0;padding:.2rem .9rem .5rem}
.colonne-plan li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.6rem;align-items:baseline;padding:.45rem 0;
    border-bottom:1px solid var(--rule-soft);font-size:.91rem}
.colonne-plan li:last-child{border-bottom:0}
.colonne-plan li .puce{justify-self:start}
.colonne-plan li a{color:var(--ink);text-decoration:none}
.colonne-plan li a:hover{color:var(--accent)}
.colonne-plan .o{display:block;font-size:.77rem;color:var(--ink-3)}
.colonne-plan li.vide{display:block}
.axe-objectifs{padding:.6rem .9rem .8rem;border-bottom:1px solid var(--rule-soft)}
.axe-objectifs:last-child{border-bottom:0}
.axe-titre{margin:0 0 .4rem;display:flex;gap:.45rem;align-items:center;font-size:.9rem}
.axe-titre .o,.objectif .o{font-size:.81rem;color:var(--ink-3)}
.objectif{margin:.35rem 0 .5rem 1.1rem}
.entete-obj{display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}
.entete-obj .t{font-size:.91rem;color:var(--ink)}
.entete-obj .compte{font-family:var(--mono);font-size:.87rem;color:var(--accent);margin-left:auto}
.entete-obj .compte.atteint{color:var(--ok)}
.jauge{height:5px;background:var(--rule-soft);border-radius:3px;overflow:hidden;margin:.3rem 0}
.jauge i{display:block;height:100%;background:var(--accent)}
.objectif .o{margin:0}
.sans-objectif{margin:.2rem 0 .3rem 1.1rem;padding:.4rem .6rem;border-radius:4px;background:var(--warn-soft);color:var(--warn);font-size:.87rem}
.axe-objectifs details.edit{margin-left:1.1rem}
.axe-objectifs details.edit summary{font-size:.81rem;color:var(--accent);cursor:pointer}
.axe-objectifs details.edit form{margin-top:.35rem}
.axe-objectifs input,.axe-objectifs select,.revue-lignes input[type=text]{font:inherit;font-size:.87rem;padding:.3rem .45rem;border:1px solid var(--rule);
    border-radius:4px;background:var(--surface);color:var(--ink)}
.revue-bloc.due{border-color:var(--warn)}
.pad-revue{padding:.6rem .9rem .9rem;display:flex;flex-direction:column;gap:.4rem}
.pad-revue p{margin:0;font-size:.91rem;color:var(--ink-2)}
.pad-revue .o{font-size:.81rem;color:var(--ink-3)}
.pad-revue .b{display:flex;gap:.5rem}
.pad-revue form{margin:0}
.revue-lignes{list-style:none;margin:0;padding:0}
.revue-lignes li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1rem;align-items:center;padding:.65rem .9rem;
    border-bottom:1px solid var(--rule-soft)}
.revue-lignes li.continuer{box-shadow:inset 3px 0 0 var(--ok)}
.revue-lignes li.pause{box-shadow:inset 3px 0 0 var(--warn)}
.revue-lignes li.arreter{box-shadow:inset 3px 0 0 var(--crit)}
.revue-lignes .p{display:flex;flex-direction:column;min-width:0}
.revue-lignes .p a{color:var(--ink);text-decoration:none;font-size:.9rem}
.revue-lignes .o{font-size:.81rem;color:var(--ink-3)}
.revue-lignes .verdict{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;margin:0}
.revue-lignes .verdict input[type=text]{flex:1 1 12rem}
@media (max-width:900px){.revue-lignes li{grid-template-columns:1fr}}
.cloture-revue{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:.8rem .9rem;margin:0;border-top:1px solid var(--rule)}
.cloture-revue p{margin:0;flex:1 1 18rem;font-size:.87rem;color:var(--ink-3)}
.dossier-projet{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;padding:.6rem .9rem;border-top:1px solid var(--rule-soft)}
.dossier-projet .o{font-size:.81rem;color:var(--ink-3)}
.dossier-projet form{margin:0}

/* ---------------- fiches ---------------- */
.filtre-fiches{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin:0}
.filtre-fiches input[type=search]{flex:1 1 18rem;font:inherit;font-size:.91rem;padding:.42rem .6rem;border:1px solid var(--rule);
    border-radius:5px;background:var(--surface);color:var(--ink)}
.liste-fiches{list-style:none;margin:0;padding:.2rem .9rem .5rem}
.liste-fiches li{padding:.55rem 0;border-bottom:1px solid var(--rule-soft);display:flex;gap:.5rem;flex-wrap:wrap;align-items:baseline}
.liste-fiches li:last-child{border-bottom:0}
.liste-fiches a{color:var(--ink);text-decoration:none;font-size:.9rem}
.liste-fiches a:hover{color:var(--accent)}
.liste-fiches .o{font-size:.81rem;color:var(--ink-3)}
.liste-fiches .extrait{flex-basis:100%;margin:.1rem 0 0;font-size:.87rem;color:var(--ink-2)}
.fiche-lue{padding:1.2rem 1.4rem;max-width:48rem}
.contenu-fiche{font-size:.95rem;line-height:1.65;color:var(--ink)}
.contenu-fiche h3,.contenu-fiche h4,.contenu-fiche h5{font-family:var(--serif);font-weight:500;margin:1rem 0 .3rem;text-transform:none;
    letter-spacing:0;background:none;border:0;padding:0;color:var(--ink)}
.contenu-fiche h3{font-size:1.25rem}.contenu-fiche h4{font-size:1.08rem}
.contenu-fiche p{margin:.5rem 0}
.contenu-fiche code{font-family:var(--mono);font-size:.85em;background:var(--surface-2);padding:.05rem .25rem;border-radius:3px}
.fiche-lue>.o{margin:1rem 0 0;font-size:.81rem;color:var(--ink-3)}
.rc .fiche-jointe{margin:.35rem 0 0;font-size:.87rem;display:flex;gap:.5rem;align-items:center}
.rc .fiche-jointe a{color:var(--accent-2)}
.rc form.inline{display:inline;margin:0}
.rc .joindre-fiche{margin-top:.3rem}
.rc .joindre-fiche summary{font-size:.77rem;color:var(--ink-3);cursor:pointer}
.rc .joindre-fiche form{display:flex;gap:.35rem;margin-top:.3rem;flex-wrap:wrap}
.rc .joindre-fiche select{font:inherit;font-size:.87rem;padding:.25rem .35rem;border:1px solid var(--rule);border-radius:4px;
    background:var(--surface);color:var(--ink);max-width:100%}
.rc .redite{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.4rem 0 0;padding:.35rem .5rem;border-radius:4px;
    background:var(--warn-soft);font-size:.81rem;color:var(--warn)}
.taches .fiche-tache{display:block;font-size:.81rem;color:var(--accent-2);margin-top:.15rem}
.taches .joindre-fiche summary{font-size:.77rem;color:var(--ink-3);cursor:pointer}
.taches .joindre-fiche form{display:flex;gap:.3rem;margin-top:.25rem;flex-wrap:wrap}
.taches .joindre-fiche select{font:inherit;font-size:.81rem;padding:.2rem .3rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.plan-enc{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.2rem 1.2rem;margin:0;padding:.5rem .9rem}
.plan-enc div{padding:.35rem 0}
.plan-enc .large{grid-column:1/-1}
.plan-enc dt{font-size:.77rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.plan-enc dd{margin:.15rem 0 0;font-size:.91rem;color:var(--ink);white-space:pre-wrap}
.plan-enc .o{display:block;font-size:.77rem;color:var(--ink-3)}
.acceptations{margin:0;padding:0 .9rem .5rem;font-size:.81rem;color:var(--ink-3)}
.pad-plan{padding:0 .9rem .8rem;margin:0}
.pad-plan summary{font-size:.87rem;color:var(--accent);cursor:pointer}
.formulaire-court input[type=number]{width:6rem}
.apercus-recap{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem;padding:.7rem .9rem .9rem}
.apercus-recap>div{border:1px dashed var(--rule);border-radius:6px;padding:.6rem .7rem}
.apercus-recap .t{margin:0 0 .3rem;font-size:.87rem;font-weight:600;color:var(--ink)}
.apercus-recap ul{margin:0;padding-left:1rem;font-size:.87rem;color:var(--ink-2)}
.apercus-recap .o{margin:0;font-size:.81rem;color:var(--ink-3)}
.partage-invites{display:flex;flex-direction:column;gap:.35rem;padding:.6rem .9rem .8rem;margin:0;font-size:.91rem}
.partage-invites .o{font-size:.77rem;color:var(--ink-3)}
.partage-invites .bouton{align-self:flex-start;margin-top:.2rem}
.qr{margin:0 .9rem}.qr svg{width:180px;height:auto;display:block;background:#fff;border-radius:6px}
.formulaire code{font-family:var(--mono);font-size:.87rem;background:var(--surface-2);padding:.1rem .3rem;border-radius:3px;word-break:break-all}
.securite-plus{margin:0 .9rem;padding-top:.7rem;border-top:1px solid var(--rule-soft);font-size:.91rem}
.securite-plus p{margin:.25rem 0}
.securite-plus .o{font-size:.81rem;color:var(--ink-3)}
.sessions{margin:.2rem 0 .4rem;padding-left:1rem;font-size:.87rem;color:var(--ink-2)}
.fermer-sessions{margin:-.4rem 0 0;padding:0 .9rem}
.notice{max-width:52rem}
.notice h2+p{margin-top:.4rem}
.politique{margin:0 .9rem;padding-left:1.1rem;font-size:.91rem;color:var(--ink-2);display:flex;flex-direction:column;gap:.35rem}
.purge summary{font-size:.81rem;color:var(--crit);cursor:pointer}
.purge form{margin-top:.35rem}
.gerer-livrable{margin:0 0 0 .3rem;display:inline}
.groupe-elements{padding:.2rem 0 .4rem;border-bottom:1px solid var(--rule-soft)}
.groupe-elements:last-of-type{border-bottom:0}
.groupe-elements h3{margin:.6rem .9rem .1rem;font-size:.87rem;font-weight:600;color:var(--ink);display:flex;gap:.4rem;align-items:baseline}
.groupe-elements h3 .o{font-weight:400;font-size:.77rem;color:var(--ink-3)}
.ajout-element{margin:.2rem .9rem .5rem}
.ajout-element summary{font-size:.81rem;color:var(--accent);cursor:pointer}
.form-element{display:flex;flex-direction:column;gap:.35rem;margin-top:.4rem;max-width:40rem}
.form-element select,.form-element input,.form-element textarea{font:inherit;font-size:.91rem;padding:.35rem .5rem;border:1px solid var(--rule);
    border-radius:4px;background:var(--surface);color:var(--ink)}
.autonomie{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}
.autonomie legend{font-size:.87rem;color:var(--ink-2);margin-bottom:.3rem}
.autonomie label{display:flex;gap:.5rem;align-items:flex-start;padding:.4rem .5rem;border:1px solid var(--rule-soft);border-radius:5px;cursor:pointer}
.autonomie label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.autonomie span{display:flex;flex-direction:column;gap:.1rem}
.autonomie b{font-size:.87rem;font-weight:600;color:var(--ink)}
.autonomie i{font-style:normal;font-size:.81rem;color:var(--ink-3);line-height:1.4}
.aide-bouton{background:#CC6030;border-color:#CC6030;color:#fff;text-decoration:none}
.aide-bouton:hover{background:#b3522a;border-color:#b3522a;color:#fff}
.besoin-aide{margin:0 1rem;text-align:center}
.choix-sujet{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:.35rem}
.choix-sujet legend{width:100%;margin-bottom:.35rem}
.choix-sujet label{cursor:pointer}
.choix-sujet input{position:absolute;opacity:0}
.choix-sujet span{display:block;padding:.35rem .7rem;border:1px solid var(--rule);border-radius:999px;font-size:.87rem;background:var(--surface)}
.choix-sujet input:checked+span{border-color:#CC6030;background:#fbeee7;color:#9a4520;font-weight:500}
.choix-sujet input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.aide-lue{padding:1rem 1.2rem;max-width:46rem}
.aide-lue .message{margin:.4rem 0;font-size:.95rem;white-space:pre-wrap;line-height:1.55}
.aide-lue .o{margin:0;font-size:.81rem;color:var(--ink-3)}
.reponse-aide{margin-top:.8rem;padding:.6rem .8rem;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 5px 5px 0}
.aide-carte{border-color:#CC6030}

/* ---------------- réglages : lisibilité ---------------- */
.formulaire .intro{margin:0 .9rem;font-size:.87rem;color:var(--ink-3);line-height:1.45;max-width:42rem}
.carte>.intro{margin:.5rem .9rem .2rem;font-size:.87rem;color:var(--ink-3);line-height:1.45;max-width:46rem}
.sous-section{margin:.8rem .9rem 0;padding-top:.7rem;border-top:1px solid var(--rule-soft);font-size:.77rem;
    font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.bloc-reglage{display:flex;flex-direction:column;gap:.6rem;padding:.7rem .9rem;border-top:1px solid var(--rule-soft)}
.bloc-reglage .champ,.bloc-reglage .deux{margin:0}
.bloc-reglage .deux .champ{margin:0}
.bloc-reglage .b{margin:0}
.ligne-reglage{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:0;font-size:.91rem}
.ligne-reglage b{font-weight:600;color:var(--ink)}
.ligne-reglage select{font:inherit;font-size:.91rem;padding:.3rem .45rem;border:1px solid var(--rule);border-radius:4px;
    background:var(--surface);color:var(--ink)}
.sessions-repli summary{font-size:.87rem;color:var(--accent);cursor:pointer}
.sessions-repli form{margin:.4rem 0 0}
.sessions{margin:.4rem 0;padding-left:1rem;font-size:.87rem;color:var(--ink-2);display:flex;flex-direction:column;gap:.25rem}
.sessions .o{color:var(--ink-3);font-size:.77rem}
.puce{white-space:nowrap}
.carte>h2{flex-wrap:wrap;row-gap:.25rem}

/* ---------------- onglets de la page projet ---------------- */
.onglets-projet{position:sticky;top:0;z-index:5;display:flex;gap:.15rem;flex-wrap:wrap;align-items:center;
    margin:-.2rem 0 0;padding:.3rem .35rem;background:var(--surface);border:1px solid var(--rule);border-radius:8px}
.onglets-projet a{font-size:.91rem;padding:.42rem .8rem;border-radius:5px;color:var(--ink-2);text-decoration:none}
.onglets-projet a:hover{background:var(--surface-2);color:var(--ink)}
.onglets-projet a[aria-current="page"]{background:var(--accent);color:var(--surface);font-weight:500}
.onglets-projet .lien-timeline{margin-left:auto;border:1px solid var(--accent);color:var(--accent);font-weight:500}
.onglets-projet .lien-timeline:hover{background:var(--accent-soft);color:var(--accent)}
@media (max-width:700px){.onglets-projet a{font-size:.87rem;padding:.35rem .55rem}.onglets-projet .lien-timeline{margin-left:0}}
.carte>.intro{margin:.55rem .9rem .1rem}
.axes-vides{margin:0;font-size:.87rem;color:var(--ink-3);display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.axes-vides span{display:inline-flex;gap:.3rem;align-items:center}

/* ---------------- onglets, timeline, appels à créer ---------------- */
.onglets-projet{padding:.35rem;gap:.3rem;border-color:var(--rule);box-shadow:0 2px 8px -6px rgba(12,30,60,.35)}
.onglets-projet a{font-size:.95rem;font-weight:500;padding:.55rem 1rem;color:var(--ink);border:1px solid transparent;border-radius:6px}
.onglets-projet a:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}
.onglets-projet a[aria-current="page"]{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
.onglets-projet .lien-timeline{margin-left:auto;background:var(--orange);border-color:var(--orange);color:#fff;font-weight:600;
    display:inline-flex;gap:.45rem;align-items:center;box-shadow:0 2px 6px -3px rgba(204,96,48,.6)}
.onglets-projet .lien-timeline:hover{background:#b3522a;border-color:#b3522a;color:#fff}
.quand-reunion{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;padding:.5rem .9rem;border-top:1px solid var(--rule-soft);background:var(--accent-soft)}
.quand-reunion .ch{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}
.quand-reunion input{font:inherit;padding:.35rem .5rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.quand-reunion .aide{margin:0;flex:1 1 18rem;font-size:.82rem;color:var(--ink-2)}
.lien-objet{display:inline-block;margin-top:.3rem;font-size:.87rem;font-weight:500}
.appel-creer{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap;padding:.8rem .95rem;border-bottom:1px solid var(--rule-soft);background:var(--accent-soft)}
.appel-creer span{font-size:.87rem;color:var(--ink-2)}
.bouton.grand{font-size:.95rem;padding:.55rem 1.1rem;text-decoration:none}
.nouveau-projet{display:block;margin:.2rem 1rem .8rem;text-align:center;text-decoration:none;
    background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;font-size:.92rem;padding:.55rem .8rem;border-radius:6px}
.nouveau-projet:hover{filter:brightness(1.12);color:#fff}
.envoyer{display:inline-flex;gap:.4rem;align-items:center}
.envoyer .aide{font-size:.82rem;color:var(--ink-3)}
.envoi-decision,.envoi-tache{font-weight:600;border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.envoi-decision:hover,.envoi-tache:hover{background:var(--accent);color:#fff}
.quand-reunion .aide{font-family:var(--sans)}
.cloture .etape-titre{margin:0;font-weight:600;font-size:.95rem;color:var(--ink)}
.cloture .etape-titre.ok{color:var(--ok)}
.cloture .etape-texte{margin:0;font-size:.87rem;color:var(--ink-2);line-height:1.45}
.cloture .issue{display:flex;flex-direction:column;gap:.35rem;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:6px;background:var(--surface)}
.cloture .issue-titre{margin:0;font-weight:600;font-size:.9rem;color:var(--ink)}
.cloture .issue-texte{margin:0;font-size:.85rem;color:var(--ink-2);line-height:1.4}
.cloture .issue-bloque{margin:0;font-size:.84rem;color:var(--crit)}
.cloture .issue .case{display:flex;gap:.45rem;align-items:flex-start;font-size:.84rem;color:var(--ink)}
.cloture .issue .bouton{align-self:flex-start}
.cloture{max-height:55vh;overflow-y:auto}
.voletdoc>header .telecharger{text-decoration:none}
.voletdoc>header .o{font-size:.82rem;color:var(--ink-3)}
.reunions-resume{list-style:none;margin:0;padding:0}
.reunions-resume>li{padding:.75rem .95rem;border-bottom:1px solid var(--rule-soft)}
.reunions-resume>li:last-child{border-bottom:0}
.entete-reunion{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.titre-reunion{font-weight:600;font-size:.95rem}
.entete-reunion .o{margin-left:auto;font-size:.84rem;color:var(--ink-3)}
.corps-reunion{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:.4rem 1.4rem;margin-top:.5rem}
.corps-reunion .bloc-titre{margin:0 0 .2rem;font-size:.8rem;font-weight:600;color:var(--ink-2)}
.corps-reunion ol,.corps-reunion ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}
.corps-reunion li{font-size:.9rem;color:var(--ink)}
.corps-reunion li .t{margin-right:.35rem}
.corps-reunion li .qui{display:block;font-size:.83rem;color:var(--ink-2)}
.corps-reunion li .puce{margin-left:.1rem}
.bulle{width:min(400px,92vw)}
.bulle .reecrire{display:flex;gap:.4rem;align-items:baseline;font-size:.86rem;color:var(--ink);cursor:pointer}
.bulle .reecrire .aide{font-size:.8rem;color:var(--ink-3)}
.zone-reecriture{display:flex;flex-direction:column;gap:.25rem}
.zone-reecriture label{font-size:.82rem;font-weight:600;color:var(--ok)}
.zone-reecriture textarea{border-color:var(--ok)!important;background:var(--ok-soft)!important}
.bulle>.aide{margin:0;font-size:.8rem;color:var(--ink-3)}
.rc .proposition{margin:.35rem 0;padding:.4rem .55rem;border-radius:5px;background:var(--surface-2);font-size:.88rem;line-height:1.5}
.rc .proposition .lib{display:block;font-size:.77rem;font-weight:600;color:var(--ink-2);margin-bottom:.15rem}
.rc .proposition del{color:var(--crit);background:var(--crit-soft);text-decoration:line-through;margin-right:.3rem}
.rc .proposition ins{color:var(--ok);background:var(--ok-soft);text-decoration:none}
.rc form.sur-place{margin-top:.35rem}
.rc form.sur-place .aide{font-size:.82rem;color:var(--ink-3)}
.cloture .issue-bloque a{color:var(--crit);font-weight:500}

/* ---------------- administration ---------------- */
.compte-admin{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;height:1.3rem;
    padding:0 .35rem;margin-left:.35rem;border-radius:999px;background:var(--crit);color:var(--surface);
    font-family:var(--mono);font-size:.74rem;font-weight:600}
.admin-attente{box-shadow:inset 3px 0 0 var(--warn)}
.admin-liste{list-style:none;margin:0 0 .8rem;padding:0;display:flex;flex-direction:column}
.admin-liste li{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;
    padding:.6rem 0;border-bottom:1px solid var(--rule-soft)}
.admin-liste li:last-child{border-bottom:0}
.admin-liste .actions{display:flex;gap:.4rem;margin:0}
.admin-liste .o,.admin-table .o{color:var(--ink-3);font-size:.87rem}
.alerte-ligne .puce{margin:0 .2rem .25rem 0}
.defile{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:.93rem}
.admin-table th{text-align:left;font-size:.8rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;
    letter-spacing:.04em;padding:.4rem .6rem;border-bottom:1px solid var(--rule)}
.admin-table td{padding:.55rem .6rem;border-bottom:1px solid var(--rule-soft);vertical-align:top}
.admin-table .n{font-variant-numeric:tabular-nums;white-space:nowrap}
.admin-table th.n,.admin-table td.n:not(:first-child){text-align:right}
.admin-table .actions{text-align:right}
.admin-table .actions form{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem;margin:0}
.admin-table td:first-child{min-width:12rem}
.admin-table tr.suspendu td{opacity:.7}
.admin-table .crit{color:var(--crit)}
.admin-table.journal tr.signale td{background:var(--warn-soft)}
.admin-table.journal .puce{margin-right:.2rem}
.bouton.danger{color:var(--crit);border-color:var(--crit)}
.filtres{display:flex;flex-wrap:wrap;gap:.35rem}

/* ---------------- pages seules (mot de passe oublié) ---------------- */
.page-seule{display:grid;place-items:center;min-height:100vh;padding:1.5rem}
.boite-seule{width:100%;max-width:420px;display:flex;flex-direction:column;gap:.2rem}
.boite-seule .logo{margin:0 auto .8rem}
.boite-seule h1{font-family:var(--serif);font-weight:500;font-size:1.7rem;text-align:center;margin:0 0 .6rem}
.boite-seule .champ{margin-bottom:.9rem}
.boite-seule .champ label{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.3rem}
.boite-seule .champ input{width:100%;font:inherit;padding:.55rem .65rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink)}
.boite-seule form .bouton{width:100%}
.boite-seule .o{color:var(--ink-3);font-size:.92rem}
.lien-oubli{display:block;text-align:center;margin-top:1rem;font-size:.92rem}

/* ---------------- ouverture : le logo apparaît, puis le formulaire ---------------- */
@keyframes cursus-logo-ouverture{from{opacity:0;transform:scale(.86) rotate(-8deg)}to{opacity:1;transform:none}}
@keyframes cursus-entree{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.logo.ouverture{animation:cursus-logo-ouverture .7s cubic-bezier(.2,.8,.2,1) both}
.entree > :not(.logo){animation:cursus-entree .5s ease-out .35s both}
@media (prefers-reduced-motion:reduce){.logo.ouverture,.entree > :not(.logo){animation:none}}
