/* ═══════════════════════════════════════════════════════════════════════════
   LA COQUILLE DE SOMA — l'enveloppe commune à tous les écrans.
   Bloc (99) du HANDOFF, GO Maxime du 08/09. Maquette-loi :
   mockups/SHELL-2026-09-08.html (piste B, « la carte de brique — vert SOMA »).

   RÈGLE DU TICKET : « Tu recopies, tu n'interprètes pas. » Les valeurs
   ci-dessous sont RELEVÉES DANS LA MAQUETTE, pas dans sa description — six
   d'entre elles diffèrent de ce qu'annonçait le bloc (99), et l'écart est
   consigné dans le rapport (100). Le fichier fait foi, c'est écrit au §2.

   AUCUNE COULEUR NOUVELLE : tout vient de css/global.css.
   Ce fichier ne décrit QUE l'enveloppe — bandeau, barre latérale, en-tête de
   page, pied. Il n'entre jamais dans le contenu d'un module.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
  /* Les mesures de la coquille — relevées dans la maquette-loi.
     (entre parenthèses : ce qu'annonçait le bloc (99), quand il diffère) */
  --shell-rail: 64px;          /* .W grid-template-columns */
  --shell-subnav: 236px;       /* idem — le bloc (99) disait 232 */
  --shell-bandeau: 56px;       /* .W grid-template-rows */
  --shell-marge: 32px;         /* .pg padding latéral — le bloc (99) disait 44 */
  --shell-marge-haut: 30px;    /* .pg padding-top : du bandeau au sur-titre */
  --shell-head-gap: 20px;      /* .pg-head margin-bottom — le bloc (99) disait 24 */
  --shell-h1: 28px;            /* .pg-head h1 */
  --shell-sub: 14px;           /* .pg-sub — le bloc (99) disait 15 */
  --shell-eyebrow: 10px;       /* .pg-eyebrow — le bloc (99) disait 11 */
  --shell-eyebrow-trait: 22px; /* .pg-eyebrow::before — le bloc (99) disait 24×2 */
  --shell-pied: 12px;          /* .foot padding vertical */
  --shell-rayon: 14px;         /* .card, .screen */
  --shell-signature: 4px;      /* le trait vert, UN SEUL, tout à gauche */
}

/* ── L'EN-TÊTE DE PAGE ────────────────────────────────────────────────────
   Une seule grammaire pour tous les modules : sur-titre, titre, sous-titre,
   actions à droite. Remplace .det-page-header, .cv2a-pagehead, .soma-entete. */
.pg-head {
  display: flex; align-items: flex-end; gap: 18px;
  margin-bottom: var(--shell-head-gap);
}
.pg-head h1 {
  font-size: var(--shell-h1); font-weight: 900; letter-spacing: -0.6px;
  margin: 0; line-height: 1.1; color: var(--text);
  text-wrap: balance;
}

/* Le sur-titre : gardé QUAND IL A DU TEXTE (décision 2 du bloc (99) = A).
   Le trait vert ne se dessine que sur du texte — un sur-titre vide ne laisse
   RIEN, pas même un trait orphelin. */
.pg-eyebrow {
  font-size: var(--shell-eyebrow); font-weight: 900; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--green-dark);
  margin: 0 0 6px; display: flex; align-items: center; gap: 8px;
}
.pg-eyebrow::before {
  content: ""; width: var(--shell-eyebrow-trait); height: 3px;
  border-radius: 3px; background: var(--green);
}
.pg-eyebrow:empty { display: none; }

.pg-sub {
  margin: 6px 0 0; color: var(--text2); font-size: var(--shell-sub);
  max-width: 76ch;
}
.pg-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }

/* ── LE PIED, UN SEUL, RENDU PAR LE ROUTEUR ───────────────────────────────
   Décision 3 du bloc (99). Avant : huit modules portaient leur propre pied
   « depuis 1981 », chacun avec sa classe. La baseline reste au bandeau. */
.shell-foot {
  padding: var(--shell-pied) var(--shell-marge);
  text-align: center; font-size: 11px; color: var(--muted);
  border-top: 1px solid var(--border); background: var(--card, #fff);
}
.shell-foot b { color: var(--text2); font-weight: 700; }
.shell-foot .accent { color: var(--green); }

/* (09/09) LE TRAIT DE 4 PX N'EST PAS ICI. Je l'avais posé sur #app d'après le
   bloc (99) (« un seul trait vert signature tout à gauche ») — mais le ticket
   qui tranche vraiment la barre latérale
   (tickets/A-FAIRE/TICKET-SIDEBAR-VERT-SOMA-2026-09-08.md) dit : « la barre de
   4 px sur le bord gauche du RAIL reste, en vert SOMA », rayon 0 4 4 0. Ce
   n'est pas un liseré d'application : c'est le MARQUEUR de la brique active.
   Il vit donc dans css/sidebar-v3.css, avec ce qu'il désigne. */

/* ── LA DENSITÉ — le réglage « Mon compte » qui ne servait à rien ──────────
   (09/09, Maxime : « la densité, rien ne marche, ça sert à rien ».) La
   préférence était enregistrée et jamais lue. Elle pose maintenant la classe
   .soma-dense sur <html> (js/preferences.js), et les tables la lisent — un
   seul endroit, pas un réglage recopié dans chaque module.
   « Compacte » resserre les lignes ; « Normale » ne touche à rien. */
.soma-dense .soma-sig td,
.soma-dense .bib-sig td,
.soma-dense table.soma-sig td { padding-top: 7px; padding-bottom: 7px; }
.soma-dense .soma-sig th,
.soma-dense .bib-sig th { padding-top: 8px; padding-bottom: 8px; }
.soma-dense .pg-head { margin-bottom: 14px; }
