:root{color-scheme:light;--cream:#fffaf1;--paper:#fffdf9;--ink:#171619;--muted:#695f59;--green:#07875d;--green-soft:#e8f5ef;--purple:#6d27e5;--purple-soft:#f0e8ff;--yellow:#f2b700;--line:#d9cec0;--dark:#18181b;--serif:Georgia,"Times New Roman",serif;--sans:"Segoe UI",Arial,sans-serif}
.identity-sunflower{position:fixed;z-index:0;width:300px;height:300px;background:url('tournesol-line.svg') center/contain no-repeat;opacity:.34;pointer-events:none}.identity-sunflower-top{top:-112px;right:-105px;transform:rotate(17deg)}.identity-sunflower-bottom{bottom:-126px;left:-105px;transform:rotate(-22deg)}.site-header,main,footer{position:relative;z-index:1}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit}button,select,textarea,input{font:inherit}.sidebar{position:fixed;z-index:20;top:0;left:0;bottom:0;width:250px;display:flex;flex-direction:column;padding:1.6rem 1.4rem;border-right:1px solid var(--yellow);background:rgba(255,250,241,.98);overflow-y:auto}.wordmark{display:block;margin-bottom:1.8rem;font:1.7rem/1.05 var(--serif);text-decoration:none}.sidebar-links{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1.6rem}.sidebar-links a{text-decoration:none;padding:.7rem .6rem;border-left:3px solid transparent;border-radius:0 4px 4px 0;color:var(--ink)}.sidebar-links a:hover,.sidebar-links a:focus-visible,.sidebar-links a[aria-current='page']{border-color:var(--yellow);background:var(--green-soft)}.primary-action{margin-top:auto;padding:.85rem 1.1rem;border-radius:4px;background:var(--dark);color:#fff;font-weight:800;text-decoration:none;text-align:center}main,footer{margin-left:250px}.page-section{width:min(1080px,calc(100% - 2.5rem));margin:0 auto;padding:6rem 0}.eyebrow{margin:0 0 1.4rem;font-size:.76rem;font-weight:850;letter-spacing:.23em}.yellow{color:var(--yellow)}.green{color:var(--green)}.purple{color:var(--purple)}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04}h2{font-size:clamp(2.4rem,5.4vw,4.5rem)}
.hero{position:relative;overflow:hidden;text-align:center;padding-top:6.5rem;padding-bottom:2.5rem}.hero h1{margin:0;font-size:clamp(4rem,9.2vw,7.5rem);letter-spacing:-.055em}.hero h1 span{display:block}.lead-question{margin:2.2rem 0 3rem;font-size:1.38rem;font-weight:800}.hero-intro{position:relative;z-index:1;padding:2.6rem 1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:1.05rem}.hero-intro p{margin:.35rem}.hero blockquote{position:relative;z-index:1;margin:1.7rem 0 0;font:italic 1.35rem var(--serif)}
.project-doors{display:grid;grid-template-columns:1fr 1fr;gap:5rem}.founding-intro{grid-column:1/-1;max-width:900px}.founding-intro h2{margin:.4rem 0 1.5rem}.founding-intro>p:last-child{max-width:820px;color:var(--muted);font-size:1.12rem}.project-card{padding:3.5rem 3rem;border:2px solid;text-align:center;border-radius:12px}.project-card h2{margin:.9rem 0 2.2rem;font-size:3rem}.project-card a{display:flex;justify-content:space-between;margin-top:2.5rem;padding:1.25rem 1.5rem;color:#fff;text-decoration:none}.project-card a:hover{filter:brightness(.9);transform:translateY(-2px)}.trout{border-color:var(--green)}.trout a{background:var(--green)}.motivity{border-color:var(--purple)}.motivity a{background:var(--purple)}.challenge{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;background:var(--dark);color:#fff;text-decoration:none}.challenge strong{font:2rem var(--serif)}
.numbered-section{display:grid;grid-template-columns:110px 1fr;gap:1rem}.section-number{font:4rem var(--serif)}.green-section .section-number{color:var(--green)}.purple-section .section-number{color:var(--purple)}.numbered-section h2{margin:.3rem 0 2.2rem}.section-lead{font:1.35rem/1.65 var(--serif);max-width:900px}.roles{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3rem;border-top:1px solid var(--green);border-bottom:1px solid var(--green)}.roles>div{padding:1.7rem}.roles>div+div{border-left:1px solid var(--green)}.roles h3{font-size:1.55rem}.roles p{color:var(--muted)}.central-rule{margin-top:3rem;padding:2.2rem 3rem;border-left:8px solid var(--yellow);background:#fff;box-shadow:0 18px 40px rgba(57,40,17,.08)}.central-rule>p:last-child{font:1.45rem/1.5 var(--serif)}.variables{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:3rem 0}.variables article{padding:2.2rem;border:1px solid var(--purple);background:var(--purple-soft)}.variables article>strong{font:4rem var(--serif);color:var(--purple)}.variables h3{font-size:1.45rem}.variables p{color:var(--muted)}
.meeting-section{width:min(1120px,calc(100% - 2rem));margin:3rem auto;padding:5rem;background:var(--dark);color:#fff}.meeting-section h2{margin:0 0 3rem}.meeting-columns{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.meeting-columns p{padding-top:1.6rem;border-top:4px solid var(--green);font-size:1.12rem}.meeting-columns p+ p{border-color:#a26df4}
.confrontation h2{max-width:1050px;margin:.4rem 0 2rem}.narrow{max-width:860px}.approaches{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:4rem}.approaches article{display:flex;flex-direction:column;min-height:510px;padding:2rem;border:2px solid;background:#fff}.approaches article>strong:last-child{margin-top:auto}.approaches h3{font-size:2.15rem}.approaches p:not(.eyebrow){color:var(--muted)}.yellow-border{border-color:var(--yellow)!important}.green-border{border-color:var(--green)!important}.purple-border{border-color:var(--purple)!important}
.third-way{display:grid;grid-template-columns:1fr 1.6fr;gap:4rem;width:min(1160px,calc(100% - 2rem));padding:4rem;background:var(--purple);color:#fff}.third-way h2{font-size:3rem}.third-way summary{padding:1rem 0;border-top:1px solid rgba(255,255,255,.5);font-weight:800;cursor:pointer}.question{margin:1.25rem 0}.question strong,.question span{display:block}.question span{font-size:.9rem;opacity:.86}
.documents-preview h2,.references>h2{max-width:900px;margin:.4rem 0 1rem}.document-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:3rem 0}.document-card{display:flex;flex-direction:column;min-height:360px;padding:2.2rem;border:1px solid var(--line);background:#fff}.document-card h3{font-size:2rem;margin:.6rem 0}.document-card .meta{display:flex;gap:2rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.84rem}.document-card .description{color:var(--muted)}.document-actions{display:flex;gap:.7rem;margin-top:auto}.document-actions a,.document-actions button{padding:.75rem 1rem;border:1px solid var(--green);background:transparent;color:var(--green);font-weight:750;text-decoration:none;cursor:pointer}.document-actions button:disabled{cursor:not-allowed;opacity:.62}.document-actions a:last-child{background:var(--green);color:#fff}.document-missing{color:var(--muted);font-weight:750}.text-link{display:inline-block;color:var(--green);font-weight:800;text-decoration:none}.loading{color:var(--muted)}
.virtual-tree{margin:3rem 0;padding:2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.virtual-tree h2{margin:.2rem 0 1.5rem;font-size:2.2rem}.tree-node{margin:.35rem 0}.tree-node summary{cursor:pointer;font-family:var(--serif);font-size:1.12rem}.tree-node ul{margin:.5rem 0 1rem 1rem;padding-left:1.2rem;border-left:1px solid var(--line)}.tree-document{margin:.35rem 0;color:var(--muted)}
.section-links{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--line)}.section-links a{color:var(--green);font-weight:750;text-decoration:none}
.intervention{width:min(1120px,calc(100% - 2rem));padding:5rem;background:var(--dark);color:#fff}.intervention h2{margin:0 0 2rem}.intervention>p:not(.eyebrow){max-width:780px}.intervention fieldset{margin:3rem 0 2rem;padding:0;border:0}.intervention legend{font:2rem var(--serif)}.radio-grid,.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.radio-grid label{display:flex;gap:1rem;padding:1.5rem;border:1px solid #67676b}.radio-grid label:has(input:checked){border-color:var(--yellow);background:rgba(242,183,0,.12)}.radio-grid small,.field-grid small,.intervention label>small{display:block;margin:.35rem 0 1.2rem;color:#d2cbc1}.field-grid label{display:block}.intervention select,.intervention textarea{width:100%;padding:1rem;border:0;background:var(--cream)}.intervention textarea{min-height:210px;resize:vertical}.intervention button{margin-top:1rem;padding:1rem 1.4rem;border:1px solid var(--yellow);background:var(--yellow);font-weight:800;cursor:pointer}.intervention button:hover,.intervention button:focus-visible{filter:brightness(.9)}
.references{padding-bottom:7rem}.reference-item{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1.7rem .5rem;border-top:1px solid var(--line);text-decoration:none}.reference-item:last-child{border-bottom:1px solid var(--line)}.reference-item strong{font:700 1.35rem var(--serif)}.reference-item span{grid-column:1;color:var(--muted)}.reference-item b{grid-row:1/3;grid-column:2;align-self:center;font-size:1.5rem;color:var(--muted)}
/* Vérification des liens des références scientifiques : indication discrète qu'une référence
   est cliquable (flèche colorée + léger fond au survol), jamais présente sur une référence
   sans destination réelle (.reference-item-texte, ci-dessous, reste neutre). */
a.reference-item b{color:var(--green)}
a.reference-item:hover,a.reference-item:focus-visible{background:var(--green-soft)}.comparison-notes{display:grid;gap:2rem;margin-top:5rem}.comparison-notes article{padding:3rem;border:2px solid}.comparison-notes article>div{display:grid;grid-template-columns:1fr 1.5fr;gap:4rem;font:1.35rem/1.55 var(--serif)}.green-note{border-color:var(--green)!important;background:var(--green-soft)}.purple-note{border-color:var(--purple)!important;background:var(--purple-soft)}.purple-note div p:last-child{color:#5720bb}
footer{display:flex;justify-content:space-between;gap:2rem;min-height:145px;padding:2rem max(2rem,calc((100% - 1180px)/2));border-top:1px solid var(--yellow);font:italic 1rem var(--serif)}
.library-page{padding-top:4rem}.library-page h1{font:clamp(3rem,7vw,6rem)/1 var(--serif);max-width:950px}.library-list{margin-top:4rem}.notice-document{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;padding:2rem 0;border-top:1px solid var(--line)}.notice-document:last-child{border-bottom:1px solid var(--line)}.notice-document small{color:var(--green);font-weight:800;letter-spacing:.15em}.notice-document h2{margin:.5rem 0;font-size:2rem}.notice-document p{color:var(--muted)}.meta-document{font-size:.82rem;white-space:nowrap}
@media(max-width:850px){.sidebar{position:relative;width:auto;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--yellow)}.wordmark{margin-bottom:0;margin-right:1rem}.sidebar-links{flex-direction:row;flex-wrap:wrap;gap:.4rem;margin-bottom:0}.sidebar-links a{white-space:nowrap;padding:.5rem .6rem}.primary-action{margin-top:0;margin-left:auto}main,footer{margin-left:0}.page-section{padding:4rem 0}.project-doors,.approaches,.document-grid,.radio-grid,.field-grid,.variables,.meeting-columns,.comparison-notes article>div{grid-template-columns:1fr}.project-doors{gap:1.5rem}.numbered-section{grid-template-columns:1fr}.roles{grid-template-columns:1fr}.roles>div+div{border-left:0;border-top:1px solid var(--green)}.approaches article{min-height:0}.third-way{grid-template-columns:1fr;padding:2.5rem}.meeting-section,.intervention{padding:3rem 2rem}.comparison-notes article>div{gap:1rem}footer{flex-direction:column}.primary-action{font-size:.8rem}.wordmark{font-size:1.6rem}}
@media(max-width:520px){.sidebar{width:100%}.sidebar-links{font-size:.83rem}.page-section{width:calc(100% - 1.5rem)}.hero h1{font-size:3.4rem}.project-card{padding:2.5rem 1.25rem}.meeting-section,.intervention,.third-way{width:100%;padding:3rem 1.25rem}.approaches{gap:1rem}.central-rule{padding:2rem 1.4rem}.document-actions{flex-direction:column}.comparison-notes article{padding:2rem 1.25rem}}

/* Parcours de recherche : compléments de la refonte */
.future-card{grid-column:1/-1;padding:2.2rem 3rem;border:1px solid var(--line);background:transparent}.future-card h2{margin:.4rem 0 1rem;font-size:2.5rem}.future-card p:last-child{color:var(--muted)}
.intervention{border:1px solid var(--green);background:var(--green-soft);color:var(--ink)}.radio-grid label{border-color:var(--line);background:var(--paper)}.radio-grid label:has(input:checked){border-color:var(--green);background:#fff}.radio-grid small,.field-grid small,.intervention label>small{color:var(--muted)}.intervention button{border-color:var(--green);background:var(--green);color:#fff}
/* Contrat 3, « Blocage critique des contributions et correction d'interface », point 2 :
   avant cette règle, un label de formulaire (nom, courriel) n'avait aucun display:block
   propre ni son <input> stylé — strong/small/input pouvaient se retrouver visuellement
   collés. Chaque champ (nom ou pseudonyme, courriel) est désormais empilé verticalement,
   jamais côte à côte, quelle que soit la largeur de fenêtre — aucune media query requise
   puisque ce ne sont pas des éléments de grille. Sélecteurs volontairement limités aux
   labels DIRECTS de #fiche-rupture-form et #lecture-comment-form (nom, courriel, texte) —
   n'affecte jamais .radio-grid label ni .field-grid label, qui restent nichés plus
   profondément dans le formulaire et gardent leur mise en page en grille/carte propre. */
#fiche-rupture-form>label,#lecture-comment-form>label{display:block;margin:0 0 1.8rem}
#fiche-rupture-form>label:last-of-type,#lecture-comment-form>label:last-of-type{margin-bottom:1.2rem}
#fiche-rupture-form>label strong,#lecture-comment-form>label strong{display:block;margin:0 0 .35rem;font-size:1.05rem}
#fiche-rupture-form>label small,#lecture-comment-form>label small{display:block;margin:0 0 .7rem;color:var(--muted)}
#fiche-rupture-form>label input[type=text],#fiche-rupture-form>label input[type=email],
#lecture-comment-form>label input[type=text],#lecture-comment-form>label input[type=email]{
  display:block;width:100%;box-sizing:border-box;padding:.9rem 1rem;
  border:1px solid var(--line);border-radius:4px;background:#fff;font:inherit}
#fiche-rupture-form>label input[type=text]:focus,#fiche-rupture-form>label input[type=email]:focus,
#lecture-comment-form>label input[type=text]:focus,#lecture-comment-form>label input[type=email]:focus{
  outline:2px solid var(--green);outline-offset:1px}
.environment-entry{text-align:center;border-top:1px solid var(--line)}.environment-entry h2,.environment-entry p{margin-left:auto;margin-right:auto}.environment-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:2.5rem}.environment-actions a{display:inline-block;padding:1rem 1.4rem;border:1px solid var(--green);border-radius:4px;background:var(--green);color:#fff;font-weight:800;text-decoration:none;cursor:pointer}.environment-actions a:hover,.environment-actions a:focus-visible{filter:brightness(.9)}.environment-actions a:last-child{border-color:var(--purple);background:var(--purple)}

.project-card-action{margin-top:2.5rem}
.project-card-action button,.project-card-action .bouton-lecture{display:block;width:100%;box-sizing:border-box;text-align:center;padding:1.25rem 1.5rem;border:0;border-radius:4px;color:#fff;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.project-card-action button:hover,.project-card-action .bouton-lecture:hover,.project-card-action button:focus-visible,.project-card-action .bouton-lecture:focus-visible{filter:brightness(.9);transform:translateY(-2px)}
.trout .project-card-action button,.trout .project-card-action .bouton-lecture{background:var(--green)}
.motivity .project-card-action button,.motivity .project-card-action .bouton-lecture{background:var(--purple)}
.project-card-action .loading{margin-top:2.5rem;padding:1.25rem 1.5rem;color:var(--muted);font-size:.95rem}
.project-card-action .document-missing{margin-top:2.5rem;padding:1.25rem 1.5rem;background:var(--paper);border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:.95rem}
.project-card-action .action-non-definie{margin-top:2.5rem;padding:1.25rem 1.5rem;background:var(--paper);border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:.95rem}

/* Page de lecture Web : une expérience de lecture propre au site, pas un document Word affiché tel quel. */
/* Correction de l'interface de consultation des textes fondateurs, §2 et §5 : la
   colonne de navigation passe de 220px (titres coupés sur plusieurs lignes) à
   340px. La largeur totale de la page s'ajuste en conséquence (340 + espacement +
   760 de contenu) afin que le texte principal conserve sa largeur de lecture
   confortable et ses grands espaces blancs, plutôt que d'être comprimé. */
.reading-page{padding-top:4rem;width:min(1220px,calc(100% - 2.5rem));max-width:1220px}
.reading-layout{display:grid;grid-template-columns:340px 1fr;gap:3.5rem;align-items:start}
.reading-main{max-width:760px;min-width:0}
.reading-page h1{font-size:clamp(2.2rem,5vw,3.4rem);margin:.4rem 0 1rem;line-height:1.08}
.reading-meta{color:var(--muted);font-size:.9rem;margin-bottom:.5rem}
.reading-description{color:var(--muted);font-size:1.05rem;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--line)}
.reading-subtitle{font:1.3rem/1.5 var(--serif);color:var(--muted);margin:0 0 2.5rem}

/* Navigateur de document pur : bouton Retour (au-dessus, hors de cet élément) +
   table des matières uniquement. Aucun texte du document n'est jamais inséré ici
   par lecture.js — voir construireCorpsEtToc, qui alimente exclusivement
   #lecture-corps (.reading-main). */
.reading-toc{position:sticky;top:1rem;align-self:start;max-height:calc(100vh - 2rem);overflow-y:auto;margin:0;padding:1.75rem 2rem;border:1px solid var(--line);background:var(--paper);border-radius:6px}
.reading-toc p{margin:0 0 1rem;font-size:.76rem;font-weight:850;letter-spacing:.18em;color:var(--muted)}
.reading-toc ol{margin:0;padding-left:1.2rem}
.reading-toc li{margin:.45rem 0}
.reading-toc a{display:block;color:var(--green);text-decoration:none;font-weight:650;line-height:1.35;border-left:3px solid transparent;padding-left:.7rem;margin-left:-.7rem;overflow-wrap:anywhere}
.reading-toc a:hover,.reading-toc a:focus-visible{text-decoration:underline}
.reading-toc a[aria-current='true']{color:var(--ink);font-weight:850;border-left-color:var(--yellow)}

.reading-body{font-size:1.05rem}
.reading-body h1,.reading-body h2,.reading-body h3,.reading-body h4{font-family:var(--serif);font-weight:500;line-height:1.15;margin:2.6rem 0 1.1rem;scroll-margin-top:2rem}
.reading-body h1{font-size:1.9rem}
.reading-body h2{font-size:1.55rem}
.reading-body h3{font-size:1.25rem}
.reading-body h4{font-size:1.1rem}
.reading-body p{margin:0 0 1.1rem;line-height:1.75}
.reading-body ul{margin:0 0 1.4rem;padding-left:1.4rem}
.reading-body li{margin:.4rem 0;line-height:1.65}
.reading-body blockquote{margin:2rem 0;padding:.4rem 0 .4rem 1.6rem;border-left:4px solid var(--yellow);font:italic 1.15rem/1.55 var(--serif);color:var(--ink)}

.reading-network{margin-top:4rem;padding:2rem 0 2.4rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.reading-network h2{font-size:2rem;margin:.35rem 0 .7rem}
.reading-network>p.loading{margin:0 0 1.4rem;color:var(--muted)}
.reseau-groupe{margin-top:1.8rem}
.reseau-groupe h3{font-size:1.15rem;margin:0 0 .8rem}
.reseau-groupe .relations-liste{margin-bottom:0}

.reading-comments{margin-top:4rem;padding-top:3rem;border-top:1px solid var(--line)}
.reading-comments h2{font-size:2rem;margin:0 0 1rem}
.reading-comments p{color:var(--muted);margin-bottom:1.6rem}
.reading-comments .comment-origin{padding:.8rem 1rem;border-left:3px solid var(--green);background:rgba(0,128,96,.06);color:var(--ink);font-weight:750}
.reading-comments textarea{width:100%;min-height:120px;box-sizing:border-box;padding:1rem;border:1px solid var(--line);border-radius:4px;font:inherit;resize:vertical}
.reading-comments button{margin-top:1rem;padding:.9rem 1.3rem;border:0;border-radius:4px;background:var(--green);color:#fff;font-weight:800;cursor:pointer}
.reading-comments button:hover,.reading-comments button:focus-visible{filter:brightness(.9)}
.reading-comments #lecture-comment-status{margin-top:.9rem;color:var(--muted);font-size:.92rem}

@media(max-width:850px){.reading-layout{display:block}.reading-toc{position:static;max-height:none;margin:2rem 0 3rem}.reading-page{width:min(760px,calc(100% - 2.5rem));max-width:760px}}
@media(max-width:520px){.reading-toc{padding:1.2rem}}

.library-section{margin-top:3.5rem}
.library-section:first-child{margin-top:0}
.library-section-titre{font-size:.78rem;font-weight:850;letter-spacing:.2em;color:var(--yellow);text-transform:uppercase;margin:0 0 .5rem;padding-bottom:.75rem;border-bottom:2px solid var(--yellow)}
.reference-item-texte{cursor:default;color:inherit}

/* Contrat 3, point 1 — page Observations (liste + détail) */
.observation-detail{max-width:760px}
.observation-detail h2{font-size:2rem;margin:.3rem 0 1.6rem}
.observation-detail #detail-texte{font-size:1.1rem;line-height:1.75;margin-bottom:2.5rem}
.observation-detail h3{font-size:1.2rem;margin:2.2rem 0 1rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.relations-liste,.historique-liste{margin:0 0 1rem;padding-left:1.2rem}
.relations-liste li,.historique-liste li{margin:.5rem 0;line-height:1.55}
.historique-liste li{color:var(--muted);font-size:.92rem}

.category-choice{padding:2rem 0}
.category-choice-titre{font-size:.78rem;font-weight:850;letter-spacing:.2em;color:var(--yellow);text-transform:uppercase;margin:0 0 1.6rem}
.category-choice-boutons{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.category-choice-bouton{padding:2.4rem 1.5rem;border:2px solid var(--green);border-radius:12px;background:var(--green);color:#fff;font:1.6rem var(--serif);font-weight:700;cursor:pointer;text-align:center}
.category-choice-bouton:hover,.category-choice-bouton:focus-visible{filter:brightness(.92)}
@media(max-width:520px){.category-choice-boutons{grid-template-columns:1fr}}
.library-search{max-width:760px;margin:1rem 0 1.25rem}.library-search label{display:block;font-weight:800;margin-bottom:.45rem}.library-search-row{display:flex;gap:.65rem;align-items:center}.library-search input{width:100%;padding:.9rem 1rem;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;color:inherit}.library-search-clear{padding:.9rem 1rem;border:1px solid var(--green);border-radius:8px;background:transparent;color:var(--green);font-weight:800;cursor:pointer}.library-search small{display:block;margin-top:.45rem;color:var(--muted)}

.reading-retour-bouton{position:sticky;top:1rem;z-index:5;display:inline-block;margin-bottom:2rem;padding:.85rem 1.3rem;border-radius:4px;background:var(--green);color:#fff;font-weight:800;text-decoration:none;box-shadow:0 6px 16px rgba(23,22,25,.14)}
.reading-retour-bouton:hover,.reading-retour-bouton:focus-visible{filter:brightness(.9)}
.reading-retour-bouton.categorie-veille{background:var(--purple)}

.section-vide{color:var(--muted);font-style:italic}


/* Contrat 3 - accès permanent au formulaire et continuité des contributions soumises */
.comment-fab{position:fixed;right:1.25rem;top:50%;transform:translateY(-50%);z-index:50;display:inline-flex;align-items:center;justify-content:center;max-width:12rem;padding:.85rem 1rem;border-radius:4px;background:var(--green);color:#fff;text-decoration:none;font-weight:800;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.comment-fab:hover,.comment-fab:focus-visible{filter:brightness(.9);outline:3px solid rgba(0,143,97,.25);outline-offset:3px}
#commentaires{scroll-margin-top:2rem}
.contributions-recentes{margin:3rem 0 2rem;padding:1.5rem;border:1px solid var(--line);background:rgba(255,255,255,.35)}
.contributions-recentes h2{margin-top:0;font-size:1.65rem}
.contributions-recentes>p{color:var(--muted)}
.contribution-recente-card h3{margin:.3rem 0 .6rem}
.contribution-recente-origine,.observation-origine{margin:.2rem 0 .7rem;color:var(--green);font-weight:750}
@media (max-width:1100px){.comment-fab{right:1rem;top:auto;bottom:1rem;transform:none;max-width:none}}
@media (max-width:720px){.comment-fab{left:1rem;right:1rem;text-align:center}.reading-page{padding-bottom:5rem}}

.contribution-recente-type{margin:0 0 .45rem;color:var(--muted);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}

.intervention-routing-note { max-width: 860px; padding: 14px 16px; border-left: 3px solid var(--green); background: rgba(0, 142, 98, 0.06); }

/* Point 5 — problèmes E publiés et propositions S */
.solution-action{margin:1.5rem 0;padding:.9rem 1.25rem;border:0;border-radius:4px;background:var(--green);color:#fff;font-weight:800;cursor:pointer}
.solution-action:hover,.solution-action:focus-visible{filter:brightness(.9)}
#solution-form-section>form>label{display:block;margin:0 0 1.6rem}
#solution-form-section>form>label strong,#solution-form-section>form>label small{display:block;margin-bottom:.4rem}
#solution-form-section>form>label small{color:var(--muted)}
#solution-form-section input[type=text],#solution-form-section input[type=email]{width:100%;box-sizing:border-box;padding:.85rem 1rem;border:1px solid var(--line);border-radius:4px;font:inherit}

/* Point 7 — les 100+ veilles sont regroupées par premier niveau physique de
   Références théorique. Les groupes restent fermés par défaut pour éviter une
   liste interminable; la recherche conserve un affichage direct des résultats. */
.veille-groupe{border-top:1px solid var(--yellow);margin-top:.35rem}
.veille-groupe:last-child{border-bottom:1px solid var(--yellow)}
.veille-groupe>summary{cursor:pointer;list-style:none;padding:1.15rem 0;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.veille-groupe>summary::-webkit-details-marker{display:none}
.veille-groupe>summary::before{content:'▸ ';font-size:.9em}
.veille-groupe[open]>summary::before{content:'▾ '}
.veille-groupe-contenu{padding-left:1rem}
.veille-groupe-contenu .notice-document:first-child{border-top:0}

/* Point 11 — regroupement thématique des fiches du cycle E-S-R-V-C. */
.rupture-groupe{border-top:1px solid var(--yellow);margin-top:.35rem}
.rupture-groupe:last-child{border-bottom:1px solid var(--yellow)}
.rupture-groupe>summary{cursor:pointer;list-style:none;padding:1.15rem 0;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow)}
.rupture-groupe>summary::-webkit-details-marker{display:none}
.rupture-groupe>summary::before{content:'▸ ';font-size:.9em}
.rupture-groupe[open]>summary::before{content:'▾ '}
.rupture-groupe-contenu{padding-left:1rem}
.rupture-groupe-contenu .notice-document:first-child{border-top:0}

/* Point 13 — contrôle obligatoire avant toute transmission de contribution par courriel. */
.avant-envoi-ouvert { overflow: hidden; }
.avant-envoi-overlay {
  position: fixed; inset: 0; z-index: 10000; padding: 1.5rem;
  background: rgba(20, 17, 16, .58); display: grid; place-items: center;
}
.avant-envoi-overlay[hidden] { display: none; }
.avant-envoi-dialogue {
  width: min(760px, 100%); max-height: calc(100vh - 3rem); overflow: auto;
  background: var(--cream, #fff9ef); color: var(--ink, #171313);
  border: 1px solid #d9cbbd; padding: clamp(1.4rem, 4vw, 2.4rem);
  box-shadow: 0 20px 60px rgba(0,0,0,.24);
}
.avant-envoi-dialogue h2 { margin-top: 0; }
.avant-envoi-confirmation {
  display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start;
  margin: 1.5rem 0; padding: 1rem; border: 1px solid #d9cbbd; background: #fff;
}
.avant-envoi-confirmation input { width: 1.2rem; height: 1.2rem; margin-top: .15rem; }
.avant-envoi-actions { display: flex; gap: .8rem; flex-wrap: wrap; }
.avant-envoi-actions button:disabled { opacity: .45; cursor: not-allowed; }
.avant-envoi-actions .secondary-action { background: transparent; color: inherit; border: 1px solid currentColor; }

/* Consultations Q — chaque réponse est saisie directement sous la question. */
.consultation-form { margin-top: 1.5rem; }
.consultation-question { margin: 1.5rem 0; }
.consultation-question > p { font-size: 1.08rem; margin-bottom: .55rem; }
.consultation-question textarea { width: 100%; min-height: 8rem; resize: vertical; }
.consultation-identite { display:grid; grid-template-columns:1fr; gap:1.35rem; margin:2rem 0 1.25rem; }
.consultation-identite label{display:block;margin:0}
.consultation-identite label strong{display:block;margin:0 0 .35rem;font-size:1.05rem}
.consultation-identite label small{display:block;margin:0 0 .7rem;color:var(--muted);line-height:1.45}
.consultation-identite input[type=text],.consultation-identite input[type=email]{
  display:block;width:100%;box-sizing:border-box;padding:.9rem 1rem;
  border:1px solid var(--line);border-radius:4px;background:#fff;font:inherit;color:var(--ink)
}
.consultation-identite input[type=text]:focus,.consultation-identite input[type=email]:focus{
  outline:2px solid var(--green);outline-offset:1px
}
.consultation-status { margin-top: 1rem; }

/* Point 15 — lorsqu'un document n'a pas de table des matières (notamment les Q),
   le corps occupe toute la largeur de lecture au lieu de rester coincé dans la
   colonne de 340 px réservée au navigateur de sections. */
.reading-toc[hidden] + .reading-main { grid-column: 1 / -1; max-width: 900px; width: 100%; }

/* Pièces jointes facultatives sur toutes les contributions publiques. */
#fiche-rupture-form input[type=file],
#lecture-comment-form input[type=file],
#solution-form input[type=file],
.consultation-form input[type=file]{
  display:block;width:100%;margin-top:.55rem;padding:.72rem .85rem;
  border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)
}
.consultation-piece-jointe{display:block;margin:1.5rem 0}
.consultation-piece-jointe strong,.consultation-piece-jointe small{display:block;margin-bottom:.4rem}
.consultation-piece-jointe small{color:var(--muted)}

/* Point 17 — présentation homogène et professionnelle du formulaire Q. */
.consultation-question textarea{
  box-sizing:border-box;padding:.95rem 1rem;border:1px solid var(--line);
  border-radius:4px;background:#fff;font:inherit;color:var(--ink);line-height:1.5
}
.consultation-question textarea:focus{outline:2px solid var(--green);outline-offset:1px}
.consultation-form>button[type=submit]{
  display:inline-block;margin-top:.9rem;padding:1rem 1.35rem;border:1px solid var(--green);
  border-radius:4px;background:var(--green);color:#fff;font:inherit;font-weight:800;cursor:pointer
}
.consultation-form>button[type=submit]:hover,.consultation-form>button[type=submit]:focus-visible{filter:brightness(.9)}
.consultation-form>button[type=submit]:disabled{opacity:.55;cursor:not-allowed}

/* Point 22 — retour immédiat et uniforme sur les pièces jointes. */
.piece-jointe-etat{
  display:block;margin-top:.45rem;color:var(--muted);font-size:.88rem;line-height:1.4
}
.piece-jointe-etat-ok{color:var(--green);font-weight:700}
.piece-jointe-etat-erreur{color:#8b1e1e;font-weight:800}

/* Point 27 — Truite publique et générateur personnalisé. */
.truite-builder{max-width:1050px}.truite-choices{margin:2rem 0}.truite-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.truite-choice-grid article{padding:1.5rem;border:1px solid var(--line);background:#fff}.truite-choice-grid h3{margin-top:0}.truite-choice-grid button,.truite-panel button,.button-link{display:inline-block;padding:.9rem 1.15rem;border:1px solid var(--green);border-radius:4px;background:var(--green);color:#fff;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}.truite-panel{max-width:900px}.truite-panel fieldset{margin:1.5rem 0;padding:1.4rem;border:1px solid var(--line)}.truite-panel legend{padding:0 .5rem;font-weight:850;font-size:1.15rem}.truite-panel label{display:block;margin:1rem 0}.truite-panel label strong{display:block;margin-bottom:.4rem}.truite-panel input[type=text],.truite-panel select,.truite-panel textarea{width:100%;box-sizing:border-box;padding:.8rem .9rem;border:1px solid var(--line);border-radius:4px;background:#fff;font:inherit}.truite-panel textarea{min-height:6rem}.truite-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}.truite-check-grid label,.choice-line{display:flex!important;align-items:flex-start;gap:.6rem;margin:.45rem 0!important}.truite-check-grid input,.choice-line input{margin-top:.2rem}.truite-preview{padding:1.5rem;border-left:4px solid var(--green);background:#fff;line-height:1.65}.truite-preview h4{margin-bottom:.35rem}.truite-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.25rem 0}.truite-actions .secondary-action{background:transparent;color:var(--green)}.truite-note,.conversation-invite,.truite-consent-final{margin:1.4rem 0;padding:1.25rem;border:1px solid var(--yellow);background:rgba(243,165,20,.08)}.truite-generated{white-space:pre-wrap;font:inherit;line-height:1.55}.truite-consent-final{border-color:var(--green)}@media(max-width:780px){.truite-choice-grid{grid-template-columns:1fr}.truite-check-grid{grid-template-columns:1fr}}

/* Point 28 — Truites enfant / enseignant */
.truite-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.truite-recherche-note{margin:1.2rem 0;padding:1rem 1.15rem;border-left:4px solid var(--yellow);background:rgba(243,165,20,.08)}
.truite-reception{margin:1.4rem 0;padding:1.25rem;border:1px solid var(--green);background:#fff}
.truite-reception input[type=email],.truite-modal input[type=email]{width:100%;box-sizing:border-box;padding:.8rem .9rem;border:1px solid var(--line);border-radius:4px;background:#fff;font:inherit}
.format-grid{max-width:520px}
.truite-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(20,28,28,.58);display:flex;align-items:center;justify-content:center;padding:1rem}
.truite-modal-overlay[hidden]{display:none}
.truite-modal{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;padding:1.6rem;border-radius:8px;box-shadow:0 18px 60px rgba(0,0,0,.28)}
.truite-modal h2{margin-top:0}
@media(max-width:780px){.truite-choice-grid{grid-template-columns:1fr}}


/* Point 33 - espacement des actions Truite et choix multiples */
.truite-enfant-ligne .retirer-enfant { margin-top: 1rem; margin-bottom: 1.25rem; }
#ajouter-enfant { margin-top: 1.25rem; }
.tout-cocher { margin: .35rem 0 1rem; }
#retour-aux-truites.secondary-action { background: transparent; color: var(--green); }
