@font-face{font-family:"Public Sans";src:url("../fonts/PublicSans-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/PublicSans-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/PublicSans-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("../fonts/PublicSans-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/Spectral-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/Spectral-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/Spectral-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Spectral";src:url("../fonts/Spectral-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  --encre:#1F2429;
  --encre-2:#4F5962;
  --encre-3:#7C8690;
  --papier:#F5F3EE;
  --blanc:#FFFFFF;
  --filet:#E4E0D6;
  --trait:#C8C2B5;
  --foret:#1C4A3C;
  --foret-sombre:#14382D;
  --foret-clair:#E3EDE8;
  --ocre:#A97A22;
  --ocre-sombre:#6E4E12;
  --ocre-clair:#F6EDD8;
  --brique:#9E3327;
  --brique-clair:#F6E2DE;
  --rayon:6px;
  --largeur-laterale:236px;
  --hauteur-entete:58px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.5;color:var(--encre);background:var(--papier);font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:"Spectral",Georgia,serif;font-weight:500;margin:0 0 .5rem;line-height:1.25;color:var(--encre)}
h1{font-size:26px}
h2{font-size:20px}
h3{font-size:17px}
p{margin:0 0 1rem}
a{color:var(--foret)}
strong{font-weight:600}
small{font-size:13px;color:var(--encre-2)}
img{max-width:100%}

/* Coquille */
.coquille{min-height:100vh}
.laterale{display:none}
.contenu{padding:20px 16px 96px;overflow-x:hidden;min-width:0}
.entete-mobile{display:flex;align-items:center;justify-content:space-between;height:var(--hauteur-entete);padding:0 16px;background:var(--blanc);border-bottom:1px solid var(--filet)}
.entete-mobile .qui{font-size:14px;color:var(--encre-2)}
.marque{font-family:"Spectral",Georgia,serif;font-weight:600;font-size:18px;color:var(--foret);text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.marque svg{width:22px;height:22px}
.nav-basse{position:fixed;bottom:0;left:0;right:0;background:var(--blanc);border-top:1px solid var(--filet);display:flex;justify-content:space-around;padding:6px 0 max(6px,env(safe-area-inset-bottom));z-index:20}
.nav-basse a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--encre-3);text-decoration:none;padding:4px 8px;min-width:64px}
.nav-basse a.actif{color:var(--foret)}
.nav-basse svg{width:22px;height:22px}
.nav-basse button{background:none;border:0;font:inherit}

@media (min-width:960px){
  .coquille{display:grid;grid-template-columns:var(--largeur-laterale) 1fr}
  .laterale{display:flex;flex-direction:column;background:var(--blanc);border-right:1px solid var(--filet);padding:22px 14px;position:sticky;top:0;height:100vh}
  .laterale .marque{padding:2px 10px 22px;font-size:20px}
  .laterale nav{display:flex;flex-direction:column;gap:2px}
  .laterale nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--rayon);color:var(--encre-2);text-decoration:none;font-size:15px}
  .laterale nav a:hover{background:var(--papier)}
  .laterale nav a.actif{background:var(--foret-clair);color:var(--foret);font-weight:500}
  .laterale svg{width:20px;height:20px;flex:none}
  .laterale .pied{margin-top:auto;padding:10px;font-size:13px;color:var(--encre-2);border-top:1px solid var(--filet)}
  .laterale .pied .nom{font-weight:500;color:var(--encre);display:block}
  .laterale .pied form{margin-top:8px}
  .entete-mobile,.nav-basse{display:none}
  .contenu{padding:32px 40px 48px;max-width:1280px}
}

/* Structure de page */
.entete-page{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.entete-page h1{margin:0;overflow-wrap:anywhere}
.entete-page>div{min-width:0}
.entete-page p{margin:4px 0 0;color:var(--encre-2)}
.colonnes{display:grid;gap:16px;align-items:start}
@media (min-width:960px){
  .colonnes{gap:20px;grid-template-columns:1fr 1fr}
  .colonnes.large{grid-template-columns:3fr 2fr}
  .colonnes.etroite{grid-template-columns:2fr 3fr}
  .colonnes.trois{grid-template-columns:1fr 1fr 1fr}
}
.pile{display:flex;flex-direction:column;gap:16px}
.carte{background:var(--blanc);border-radius:var(--rayon);padding:20px}
.carte h2{margin-bottom:12px}
.carte h2 small{font-family:"Public Sans",sans-serif;font-weight:400;margin-left:8px}
.carte .entete{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.carte .entete h2{margin:0}

/* Listes */
.liste{list-style:none;margin:0;padding:0}
.liste li{padding:12px 0;border-bottom:1px solid var(--filet);display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.liste li:last-child{border-bottom:0}
.liste .titre{font-weight:500}
.liste .titre a{color:var(--encre);text-decoration:none}
.liste .titre a:hover{color:var(--foret)}
.liste .sous{font-size:14px;color:var(--encre-2);overflow-wrap:anywhere}
.liste .droite{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vide{color:var(--encre-2);padding:6px 0;margin:0}
.definitions{margin:0;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;font-size:15px}
.definitions dt{color:var(--encre-2)}
.definitions dd{margin:0;min-width:0;overflow-wrap:anywhere}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}

/* Pastilles */
.pastille{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--encre-2);white-space:nowrap}
.pastille::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--encre-3);flex:none}
.pastille.ok::before{background:var(--foret)}
.pastille.attente::before{background:var(--ocre)}
.pastille.refus::before{background:var(--brique)}

/* Boutons */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--foret);color:#fff;border:1px solid var(--foret);border-radius:var(--rayon);padding:10px 18px;font:inherit;font-weight:500;cursor:pointer;text-decoration:none;line-height:1.2;white-space:nowrap}
.bouton:hover{background:var(--foret-sombre);border-color:var(--foret-sombre)}
.bouton.secondaire{background:transparent;color:var(--foret)}
.bouton.secondaire:hover{background:var(--foret-clair)}
.bouton.discret{background:transparent;color:var(--encre-2);border-color:var(--trait);padding:7px 12px;font-size:14px;font-weight:400}
.bouton.discret:hover{background:var(--papier);color:var(--encre)}
.bouton.danger{background:transparent;color:var(--brique);border-color:var(--brique)}
.bouton.danger:hover{background:var(--brique-clair)}
.bouton.petit{padding:6px 12px;font-size:14px}
.bouton svg{width:18px;height:18px}
.actions{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}
@media (min-width:960px){.actions{justify-content:flex-end}}
.actions.gauche{justify-content:flex-start}
.lien-doux{background:none;border:0;padding:0;font:inherit;color:var(--encre-2);text-decoration:underline;cursor:pointer;font-size:14px}
.lien-doux:hover{color:var(--encre)}

/* Formulaires */
form{margin:0}
.champ{margin-bottom:16px}
.champ label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--encre-2)}
.champ input,.champ select,.champ textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--trait);border-radius:var(--rayon);background:var(--blanc);color:var(--encre);min-height:44px}
.champ textarea{min-height:88px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:2px solid var(--foret);outline-offset:1px;border-color:var(--foret)}
.champ input[type="file"]{padding:8px}
.champ .aide{font-size:13px;color:var(--encre-3);margin-top:4px}
.champ.erreur input,.champ.erreur select,.champ.erreur textarea{border-color:var(--brique)}
.champ .faute{font-size:13px;color:var(--brique);margin-top:4px}
.grille-champs{display:grid;gap:0 16px}
@media (min-width:720px){.grille-champs{grid-template-columns:1fr 1fr}.grille-champs .pleine{grid-column:1 / -1}}
.cases{display:grid;gap:8px;margin-top:4px}
@media (min-width:720px){.cases{grid-template-columns:1fr 1fr}}
.case{display:flex;align-items:flex-start;gap:8px;font-size:15px;font-weight:400;color:var(--encre)}
.case input{width:18px;height:18px;margin-top:3px;min-height:0;flex:none}
.lecture{background:var(--papier);border-radius:var(--rayon);padding:12px 14px;font-size:15px}
.lecture .valeur{font-weight:500}

/* Messages */
.message{padding:12px 16px;border-radius:var(--rayon);margin-bottom:16px;font-size:15px}
.message.ok{background:var(--foret-clair);color:var(--foret-sombre)}
.message.erreur{background:var(--brique-clair);color:var(--brique)}
.message.attente{background:var(--ocre-clair);color:var(--ocre-sombre)}

/* Pliables : le formulaire prend la place de la liste */
.pliable{display:none}
.pliable.ouvert{display:block}
.masque{display:none}

/* Tableaux */
.tableau-defilant{overflow-x:auto}
.tableau{width:100%;border-collapse:collapse;font-size:15px}
.tableau th{text-align:left;font-weight:500;color:var(--encre-2);font-size:13px;padding:8px 10px;border-bottom:1px solid var(--filet);white-space:nowrap}
.tableau td{padding:10px;border-bottom:1px solid var(--filet);vertical-align:top}
.tableau tr:last-child td{border-bottom:0}
.tableau .mono{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:13px;color:var(--encre-2)}
.tableau .date{white-space:nowrap;color:var(--encre-2);font-size:14px}

/* Chiffres */
.chiffres{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (min-width:960px){.chiffres{grid-template-columns:repeat(4,1fr)}}
.chiffre{background:var(--blanc);border-radius:var(--rayon);padding:16px 18px}
.chiffre .valeur{font-family:"Spectral",Georgia,serif;font-size:30px;font-weight:500;line-height:1.1}
.chiffre .libelle{font-size:13px;color:var(--encre-2);margin-top:4px}

/* Pagination */
.pagination{display:flex;gap:6px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.pagination a,.pagination span{padding:6px 12px;border-radius:var(--rayon);border:1px solid var(--filet);text-decoration:none;color:var(--encre-2);font-size:14px;background:var(--blanc)}
.pagination .courante{background:var(--foret);color:#fff;border-color:var(--foret)}

/* Pages publiques */
.page-publique{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 16px 24px}
.page-publique .marque{font-size:24px;margin-bottom:28px}
.page-publique .marque svg{width:28px;height:28px}
.boite{background:var(--blanc);border-radius:var(--rayon);padding:28px 24px;width:100%;max-width:440px}
.boite h1{font-size:22px}
.boite .intro{color:var(--encre-2);margin-bottom:20px}
.boite .actions{margin-top:20px}
.pied-public{margin-top:auto;font-size:13px;color:var(--encre-3);padding-top:28px;text-align:center}
.pied-public a{color:var(--encre-2)}

/* Code PIN */
.champ-pin input{text-align:center;letter-spacing:10px;font-size:22px;font-weight:500}
.pin-points{display:flex;justify-content:center;gap:14px;margin:6px 0 16px}
.pin-points span{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--trait);display:block}
.pin-points span.plein{background:var(--encre);border-color:var(--encre)}
.clavier{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:270px;margin:0 auto}
.clavier button{font:inherit;font-size:21px;padding:10px 0;border:1px solid var(--filet);background:var(--blanc);border-radius:var(--rayon);cursor:pointer;color:var(--encre);min-height:46px}
.clavier button:active{background:var(--papier)}
.clavier .creux{border:0;background:transparent}
.clavier .efface{font-size:15px;color:var(--encre-2)}
.clavier-actif .champ-pin input{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;min-height:0}
.clavier-actif .champ-pin label{text-align:center}

/* Divers */
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.logo-institution{width:56px;height:56px;object-fit:contain;border-radius:var(--rayon);background:var(--papier);padding:4px}
.rangee{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.filtre{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filtre select{font:inherit;padding:8px 10px;border:1px solid var(--trait);border-radius:var(--rayon);background:var(--blanc);min-height:40px}
.modale{border:0;border-radius:var(--rayon);padding:24px;max-width:420px;width:calc(100% - 32px);background:var(--blanc);color:var(--encre)}
.modale::backdrop{background:rgba(31,36,41,.45)}
.modale p{margin-bottom:18px}
.modale .actions{margin-top:0}

/* Espacements et petits utilitaires */
.marge-bas{margin-bottom:16px}
.marge-bas-20{margin-bottom:20px}
.marge-haut{margin-top:16px}
.marge-haut-8{margin-top:8px}
.marge-haut-20{margin-top:20px}
.centre{text-align:center}
.haut{align-items:flex-start}
.min-zero{min-width:0}
.texte-brut{white-space:pre-wrap;word-break:break-word}
.brique{color:var(--brique)}
.note{margin-top:12px;font-size:13px;color:var(--encre-3)}
.etiquette{font-size:14px;color:var(--encre-2)}
.fil{font-size:14px;color:var(--encre-2);text-decoration:none}
.fil:hover{color:var(--foret);text-decoration:underline}

/* Tableaux empilés sur téléphone : une carte par ligne */
@media (max-width:719px){
  .tableau.empilable thead{display:none}
  .tableau.empilable,.tableau.empilable tbody,.tableau.empilable tr,.tableau.empilable td{display:block;width:100%}
  .tableau.empilable tr{padding:10px 0;border-bottom:1px solid var(--filet)}
  .tableau.empilable tr:last-child{border-bottom:0}
  .tableau.empilable td{border:0;padding:2px 0;display:flex;gap:10px;white-space:normal}
  .tableau.empilable td:empty{display:none}
  .tableau.empilable td::before{content:attr(data-libelle);flex:0 0 88px;font-size:13px;color:var(--encre-3)}
}

/* Actes et signature */
.onglets{display:flex;gap:4px;border-bottom:1px solid var(--filet);margin:0 0 16px}
.onglets a{padding:10px 14px;text-decoration:none;color:var(--encre-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.onglets a.actif{color:var(--foret);border-color:var(--foret);font-weight:500}
.onglets small{color:var(--encre-3);margin-left:4px}
.liste li .rang{flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:var(--foret-clair);color:var(--foret);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:500}
.liste li input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--foret)}
.liste.signataires li{align-items:center}
.liste.signataires label{cursor:pointer;flex:1}
.liste.signataires select{width:auto;padding:6px 8px;font-size:14px}
.liste.serree li{padding:8px 0}
.entete-page.serre{margin-bottom:10px}
.entete-page.serre p{margin:2px 0 0;font-size:13px}
h1.petit{font-size:19px;margin:0}
.code-confiance{flex:0 0 auto;background:var(--ocre-clair);color:var(--ocre-sombre);border:1px solid var(--ocre);border-radius:var(--rayon);padding:6px 10px;font-weight:600;letter-spacing:.06em;font-size:14px}
.ecran-fixe{display:flex;flex-direction:column;min-height:calc(100dvh - 150px)}
.ecran-fixe.centre{justify-content:center;align-items:center;text-align:center}
.visionneuse{flex:1;min-height:0;overflow:auto;background:var(--filet);border:1px solid var(--trait);border-radius:var(--rayon);padding:8px;display:flex;flex-direction:column;gap:8px;align-items:center;max-height:calc(100dvh - 250px)}
.visionneuse img{width:100%;max-width:640px;height:auto;background:#fff;box-shadow:0 1px 3px rgba(31,36,41,.15)}
.barre-actions{display:flex;gap:10px;justify-content:flex-end;padding:12px 0 0;flex-wrap:wrap;align-items:center}
.barre-actions .bouton{min-width:120px}
.barre-actions .bouton.discret{min-width:0}
.ecran-fixe.lecture{height:calc(100dvh - 150px);min-height:0}
.ecran-fixe.lecture .visionneuse{flex:1;min-height:0;max-height:none}
.ecran-fixe.plein{position:fixed;inset:0;z-index:60;height:auto;min-height:0;background:var(--papier);padding:8px 8px 0;margin:0}
.ecran-fixe.plein .entete-page,.ecran-fixe.plein #refus{display:none}
.ecran-fixe.plein .visionneuse{flex:1;max-height:none;border-radius:0}
.ecran-fixe.plein .barre-actions{position:static;margin:0;padding:8px 0 max(8px,env(safe-area-inset-bottom));background:var(--papier)}
.trace{position:relative;background:#fff;border:1px solid var(--trait);border-radius:var(--rayon);height:190px;overflow:hidden;touch-action:none;margin:0 0 14px}
.trace.erreur{border-color:var(--brique)}
.trace canvas{display:block;width:100%;height:100%;touch-action:none}
.trace .ligne-guide{position:absolute;left:24px;right:24px;bottom:44px;border-top:1px dashed var(--trait);pointer-events:none}
.trace .effacer,.trace .reprendre{position:absolute;top:8px;background:var(--papier);border:1px solid var(--filet);border-radius:var(--rayon);padding:5px 10px;font:inherit;font-size:13px;color:var(--encre-2);cursor:pointer}
.trace .effacer{right:8px}
.trace .reprendre{left:8px;display:inline-flex;align-items:center;gap:6px}
.trace .reprendre img{height:22px;width:auto}
.trace.reprise canvas{opacity:.35}
.apercu-geste{height:34px;width:auto;vertical-align:middle;margin-left:8px}
.apercu-cachet{height:64px;width:auto;margin-top:8px;display:block}
.verdict{text-align:center;padding:24px 16px 8px}
.verdict svg{width:56px;height:56px;color:var(--foret)}
.verdict.attente svg{color:var(--ocre)}
.verdict.refus svg{color:var(--brique)}
.verdict h1{margin:8px 0 6px}
.verdict p{margin:2px 0}
.verdict .sous{color:var(--encre-3);font-size:14px}
.actions.centre{justify-content:center}
@media (max-width:719px){
  .trace{height:140px}
  .ecran-fixe .clavier{gap:6px}
  .ecran-fixe .clavier button{min-height:42px;padding:8px 0;font-size:19px}
  .ecran-fixe .champ-pin{margin-bottom:8px}
  .ecran-fixe .entete-page.serre{align-items:flex-start;margin-bottom:8px}
  .ecran-fixe .entete-page.serre p{font-size:12px}
  .ecran-fixe h1.petit{font-size:17px}
  .code-confiance{padding:4px 8px;font-size:13px}
  .etiquette-zone{margin-bottom:4px}
  .signature-grille{gap:10px}
  .carte.serre{padding:10px 12px}
  .barre-actions{position:sticky;bottom:64px;z-index:5;background:var(--blanc);border-top:1px solid var(--filet);margin:8px -16px 0;padding:10px 16px;flex-wrap:nowrap;justify-content:stretch}
  .barre-actions .bouton{min-width:0;flex:1;padding:12px 8px}
  .barre-actions .bouton.discret{flex:0 0 auto;padding:12px 14px}
  .ecran-fixe.lecture{height:calc(100dvh - 140px)}
  .ecran-fixe.plein .barre-actions{margin:0}
}
  .clavier-actif .pin-points{margin:4px 0}
  .ecran-fixe .champ-pin{margin-bottom:8px}
}
@media (min-width:720px){
  .ecran-fixe{min-height:calc(100dvh - 120px)}
  .visionneuse{max-height:calc(100dvh - 210px)}
  .trace{height:240px;max-width:720px}
  .ecran-fixe form[data-signature]{max-width:720px}
}

/* Écran de signature */
.signature-grille{display:grid;gap:14px}
.etiquette-zone{font-size:13px;font-weight:500;color:var(--encre-2);margin:0 0 6px}
.carte.serre{padding:12px 14px}
.carte.serre .champ-pin{margin:0}
.clavier-actif .pin-points{margin:8px 0}
.trace{cursor:crosshair}
.champ-pin input{text-align:center;letter-spacing:.4em}
@media (min-width:720px){
  .signature-grille{grid-template-columns:minmax(0,1fr) 320px;align-items:start;max-width:960px}
  .ecran-fixe form[data-signature]{max-width:none}
  .trace{max-width:none;height:260px}
  .barre-actions{max-width:960px}
}

/* Signature en deux temps sur téléphone : le tracé prend l'écran, puis le code PIN */
.ecran-fixe.signature form[data-signature]{display:flex;flex-direction:column;flex:1;min-height:0}
.ecran-fixe.signature .signature-grille{flex:1;min-height:0}
.etape-trace{display:flex;flex-direction:column;min-height:0}
.apercu-trace{display:block;max-height:64px;width:auto;max-width:100%;margin:0 auto 6px;border:1px dashed var(--filet);border-radius:var(--rayon);padding:4px 8px}
[data-modifier],[data-continuer]{display:none}
@media (max-width:719px){
  .ecran-fixe.signature .trace{flex:1;height:auto;min-height:220px;margin-bottom:0}
  .ecran-fixe.signature .etape-trace{flex:1}
  form[data-signature].etape-1 .etape-pin{display:none}
  form[data-signature].etape-1 [data-continuer]{display:inline-flex}
  form[data-signature].etape-1 [data-apposer]{display:none}
  form[data-signature].etape-2 .etape-trace{display:none}
  form[data-signature].etape-2 [data-modifier]{display:inline-flex}
  form[data-signature].etape-2 [data-apposer]{display:none}
  form[data-signature].etape-2 .etape-pin{flex:1}
}

/* Aide à la lecture */
.lecture-assistee .resume,.lecture-assistee .reponse{background:var(--papier);border-radius:var(--rayon);padding:12px 14px;line-height:1.55;margin:0 0 12px}
.lecture-assistee .resume ul,.lecture-assistee .reponse ul{margin:6px 0 0;padding-left:20px}
.lecture-assistee .resume li,.lecture-assistee .reponse li{margin:0 0 6px}
.lecture-assistee .resume p,.lecture-assistee .reponse p{margin:0 0 6px}
.lecture-assistee .reponse{background:var(--foret-clair)}
.pliable .lecture-assistee{margin-bottom:10px}
.ecran-fixe.lecture .pliable.ouvert{flex:1;min-height:0;overflow:auto}

/* Barre du haut des pages publiques */
.entete-publique{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:960px;margin:0 auto 20px;padding:0 4px}
.entete-publique .marque{margin:0}
.entete-publique nav{display:flex;align-items:center;gap:14px;font-size:14px}
.entete-publique nav a{color:var(--encre-2);text-decoration:none;white-space:nowrap}
.entete-publique nav a.actif{color:var(--foret);font-weight:500}
.entete-publique nav a.bouton{padding:6px 12px}
@media (max-width:719px){
  .entete-publique{flex-wrap:wrap;justify-content:center;margin-bottom:12px}
  .entete-publique nav{width:100%;justify-content:center;gap:10px}
}

/* Portail développeur et clés */
.doc{max-width:820px}
.doc h2{margin:26px 0 8px}
.doc pre{background:var(--blanc);border:1px solid var(--filet);border-radius:var(--rayon);padding:12px 14px;overflow:auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre}
.page-publique .doc pre{text-align:left}
.cle-neuve{border:1px solid var(--ocre);background:var(--ocre-clair)}
.cle-neuve .mono{word-break:break-all}

pre.code{background:var(--blanc);border:1px solid var(--filet);border-radius:var(--rayon);padding:12px 14px;overflow:auto;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0 0 12px;max-height:420px}

/* Reprise de la mise en page téléphone : les écrans de lecture et de signature occupent exactement l'espace entre l'en-tête et le menu */
@media (max-width:719px){
  .entete-publique{flex-direction:column;gap:8px}
  .entete-publique nav{flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:14px}
  .entete-publique nav a.bouton{margin-top:2px}
  .ecran-fixe.lecture,.ecran-fixe.signature{position:fixed;top:var(--hauteur-entete);left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));height:auto;min-height:0;padding:10px 16px 0;background:var(--papier);z-index:5;display:flex;flex-direction:column;overflow:hidden}
  .ecran-fixe.lecture .entete-page.serre,.ecran-fixe.signature .entete-page.serre{margin-bottom:8px;flex:0 0 auto}
  .ecran-fixe.lecture h1.petit,.ecran-fixe.signature h1.petit{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ecran-fixe.lecture .visionneuse{flex:1;min-height:0;max-height:none}
  .ecran-fixe.lecture .barre-actions,.ecran-fixe.signature .barre-actions{position:static;flex:0 0 auto;margin:8px -16px 0;padding:10px 16px max(10px,env(safe-area-inset-bottom));display:flex;background:var(--blanc);border-top:1px solid var(--filet)}
  .ecran-fixe.lecture .barre-actions .bouton{flex:1;min-width:0;padding:12px 6px;font-size:15px}
  .ecran-fixe.signature form[data-signature]{flex:1;min-height:0;display:flex;flex-direction:column}
  .ecran-fixe.signature .signature-grille{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
  .ecran-fixe.signature .etape-trace{flex:1;min-height:200px}
  .ecran-fixe.signature .trace{flex:1;height:auto;min-height:180px}
  .ecran-fixe.signature .etape-pin{padding:10px 12px}
  .ecran-fixe.signature .apercu-trace{max-height:44px;margin-bottom:4px}
  .ecran-fixe.signature .clavier button{min-height:40px;padding:6px 0;font-size:18px}
  .ecran-fixe.signature .pin-points{margin:4px 0}
  form[data-signature].etape-2 .barre-actions a.bouton.discret{display:none}
  form[data-signature] .barre-actions .bouton{flex:1;min-width:0}
  .ecran-fixe.plein{top:0;bottom:0;padding:8px 8px 0}
}
/* Page publique d'un acte, sur ordinateur comme sur téléphone : une carte centrée */
.verdict-page{max-width:640px;margin:0 auto}
.verdict-page .liste{margin-top:8px}
/* Panneau Comprendre le document */
.panneau-lecture{position:fixed;inset:0;z-index:80;background:var(--papier);overflow:auto;padding:16px;display:none}
.panneau-lecture.ouvert{display:block}
.panneau-lecture .lecture-assistee{max-width:720px;margin:0 auto 12px}
.panneau-lecture .actions.centre{max-width:720px;margin:0 auto}

.panneau-lecture{z-index:90;padding:0 16px 96px}
.panneau-tete{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--papier);padding:12px 0;margin:0 0 8px;border-bottom:1px solid var(--filet);max-width:720px;margin-left:auto;margin-right:auto}
.lecture-assistee textarea{width:100%;min-height:84px;font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--trait);border-radius:var(--rayon);resize:vertical}
@media (max-width:719px){
  .ecran-fixe.lecture .barre-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .ecran-fixe.lecture .barre-actions .bouton{padding:11px 6px;font-size:15px;white-space:nowrap}
  .ecran-fixe.lecture .barre-actions .bouton.discret,.ecran-fixe.lecture .barre-actions .bouton.secondaire{flex:none}
}

/* Pages publiques sur ordinateur : la largeur suit le contenu, pas la colonne du téléphone */
.page-publique .boite.moyenne{max-width:720px}
.page-publique .boite.large{max-width:960px}
.page-publique .boite.large .doc,.page-publique .boite.moyenne .doc{max-width:none}
.page-publique .boite.large h1{margin-top:0}
.page-publique .boite.moyenne .verdict-page{max-width:none}
@media (min-width:720px){
  .page-publique .boite.large{padding:32px 40px}
  .page-publique .boite.moyenne{padding:28px 32px}
  .doc pre{font-size:13.5px}
}

@media (min-width:720px){
  .ecran-fixe.lecture .visionneuse{max-width:900px}
  .ecran-fixe.lecture .visionneuse img{max-width:800px}
  .ecran-fixe.lecture .barre-actions{max-width:900px}
}
textarea.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;width:100%;border:1px solid var(--trait);border-radius:var(--rayon);padding:8px 10px;resize:vertical}

/* Menu Plus sur téléphone */
.menu-plus{padding-bottom:40px}
.liste-menu{list-style:none;margin:0 auto;padding:0;max-width:520px}
.liste-menu li a{display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid var(--filet);color:var(--encre);text-decoration:none;font-size:16px}
.liste-menu li a.actif{color:var(--foret);font-weight:500}
.liste-menu svg{width:22px;height:22px;color:var(--encre-3)}
.menu-plus .actions{margin-top:20px}
@media (min-width:720px){.menu-plus{display:none}}
