/* Surfaces de travail du portail : mêmes blancs, contours fins et typographie. */
.espace { padding-block: var(--e-8) var(--e-16); }
/* D14 : un jeton, et un palier à 960 px — la même décision que pour les titres
   de dossier. Mesuré avant : 43,2 px à 1440 px, qui n'est aucun jeton. */
.espace h1 { font-size: var(--t-27); }
@media (min-width: 960px) { .espace h1 { font-size: var(--t-44); } }
.espace h2 { font-size: var(--t-21); }
.espace h3 { font-size: var(--t-21); }
.espace__entete,.rangee { display:flex; align-items:center; justify-content:space-between; gap: var(--e-4); flex-wrap:wrap; }
.espace__entete { margin-bottom: var(--e-6); }
.discret { color:var(--texte-doux); font-size: var(--t-15); }
.onglets { display:flex; gap: var(--e-4); border-bottom:1px solid var(--trait); margin-bottom: var(--e-6); flex-wrap:wrap; }
.onglets a { padding: var(--e-3) 0; text-decoration:none; color:var(--texte-doux); font-size: var(--t-15); border-bottom:1px solid transparent; }
.onglets a[aria-current] { color:var(--texte); border-bottom:2px solid var(--action); font-weight:600; }
.message { padding: var(--e-3) 0; font-size: var(--t-15); margin-bottom: var(--e-4); }
.message--erreur { color:var(--erreur); }
.atelier { display:grid; grid-template-columns:minmax(240px,310px) minmax(0,1fr); gap: var(--e-8); }
.file { min-width:0; }
.file__liste { display:grid; gap: 0; margin-top: var(--e-4); max-height:74vh; overflow:auto; }
.file__fiche { font:inherit; text-align:left; background:white; border:0; border-bottom:1px solid var(--trait); padding: var(--e-4) var(--e-1); cursor:pointer; color:var(--texte); width:100%; }
.file__fiche strong { display:block; font-size: var(--t-15); font-weight:500; line-height:1.45; margin: var(--e-1) 0; }
.file__fiche[aria-current] strong { text-decoration:underline; text-underline-offset:4px; font-weight:600; }
.file__fiche span { display:block; font-size: var(--t-13); color:var(--texte-doux); }
.fiche-revue { min-width:0; }
.fiche-revue h2 { margin: var(--e-3) 0; line-height:1.35; }
.pile { display:grid; gap: var(--e-4); }
.champs { display:grid; grid-template-columns:1fr 1fr; gap: var(--e-4); }
.champ-espace { display:grid; gap: var(--e-2); font-size: var(--t-15); color:var(--texte); min-width:0; }
.champ-espace input,.champ-espace textarea,.champ-espace select,select.controle { width:100%; min-width:0; border:1px solid var(--controle); border-radius:var(--r-m); padding: var(--e-2) var(--e-3); background:#fff; color:var(--texte); font:inherit; font-size: var(--t-17); }
.champ-espace textarea { min-height:110px; resize:vertical; line-height:1.5; }
.case { display:flex; align-items:flex-start; gap: var(--e-2); font-size: var(--t-15); }
.case input { margin-top: var(--e-1); flex-shrink:0; }
.separation { border-top:1px solid var(--trait); padding-top: var(--e-4); margin-top: var(--e-6); }
.informations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap: var(--e-3); margin: var(--e-4) 0 var(--e-6); }
.informations div { font-size: var(--t-15); }
.informations dt { color:var(--texte-doux); font-size: var(--t-13); }
.informations dd { margin: var(--e-1) 0 0; }
.comparaison { display:grid; grid-template-columns:1fr 1fr; gap: var(--e-4); padding-top: var(--e-3); font-size: var(--t-15); }
.comparaison p { white-space:pre-wrap; }
/* Action principale : violet d'action Polideo (nom de classe historique conservé). */
.bouton--noir { background:var(--action); color:white; }
.bouton--noir:hover { background:var(--action-survol); color:white; }
.actions { display:flex; align-items:center; gap: var(--e-2); flex-wrap:wrap; }
.vide { padding: var(--e-8) 0; }
.vide p { color:var(--texte-doux); font-size: var(--t-17); margin-top: var(--e-2); }
.sujet { display:block; border-top:1px solid var(--trait); padding: var(--e-6) 0; color:var(--texte); text-decoration:none; }
.sujet:hover { color:var(--texte); }
.sujet h2 { font-size: var(--t-21); margin: var(--e-2) 0; }
.sujet:hover h2 { text-decoration:underline; text-underline-offset:4px; }
.contenu-message { white-space:pre-wrap; overflow-wrap:anywhere; font-size: var(--t-17); line-height:1.65; margin: var(--e-4) 0; }
/*
 * Une colonne de lecture s'aligne à gauche sur le reste de la page ; elle ne se recentre
 * pas. Recentrée, elle créait un troisième bord gauche — 160, 192, puis 330 px sur la
 * même page —, et l'alignement est le seul signal gratuit qu'une page ait été composée.
 */
/*
 * Un seul bord gauche.
 *
 * « .lecture » portait un max-width de 780 px sur le conteneur lui-même, que le
 * centrage de l'enveloppe plaçait alors à 330 px du bord — un troisième bord gauche sur
 * la même page, après 160 et 192. L'alignement est le seul signal gratuit qu'une page
 * ait été composée ; trois bords se lisent comme trois auteurs.
 *
 * Le conteneur garde donc la largeur de la page, et c'est son **texte** qui tient la
 * colonne de lecture. Le décentrer l'aurait au contraire collé au bord de l'écran.
 */
.lecture { max-width: var(--l-page); }
.lecture > * { max-width: var(--l-texte); }
.reponse { border-top:1px solid var(--trait); padding: var(--e-6) 0; }
.filtre-forum { display:flex; align-items:end; gap: var(--e-3); flex-wrap:wrap; margin: var(--e-6) 0; }
.filtre-forum .champ-espace:first-child { flex:1; min-width:200px; }
.compte { max-width:460px; }
.mini { font-size: var(--t-13); color:var(--texte-doux); }
.tableau { width:100%; border-collapse:collapse; font-size: var(--t-15); }
.tableau td,.tableau th { text-align:left; padding: var(--e-3) var(--e-2); border-bottom:1px solid var(--trait); vertical-align:top; }
.edition { border-top:1px solid var(--trait); padding-top: var(--e-4); margin-top: var(--e-4); }
.edition ul { padding-left: var(--e-6); }
.edition li { margin: var(--e-3) 0; }
/* Détail d'un retour bêta dans l'administration : question puis réponse, sans marges de lecture longue. */
.retour-reponse { margin-top: var(--e-4); }
.retour-reponse h3 { margin: 0 0 var(--e-1); font-size: var(--t-17); }
.retour-reponse p, .retour-reponse .contenu-message { margin: 0; font-size: var(--t-17); }
[hidden] { display:none!important; }
@media(max-width:760px) {
  .atelier { grid-template-columns:1fr; gap: var(--e-6); }
  .file__liste { max-height:270px; }
  .champs,.comparaison { grid-template-columns:1fr; }
  .informations { grid-template-columns:1fr 1fr; }
  .espace__entete { align-items:flex-start; }
}
@media(max-width:380px) { .informations { grid-template-columns:1fr; } }
