/* ⚠️ PIÈGE CSS QUI M'A EU LE 24/08, à ne pas refaire :
   `.a, .b thead th { }` ne veut PAS dire « .a thead th et .b thead th ».
   Ça veut dire « .a » (le tableau ENTIER) et « .b thead th ». Résultat mesuré
   au banc : toute la Bibliothèque en MAJUSCULES, les en-têtes sans padding, la
   colonne Référence écrasée de 190 px à 15 px. Le suffixe se répète, toujours.

/* ═══════════════════════════════════════════════════════════════════════
   LA LISTE SIG — LE COMPOSANT PARTAGÉ
   ───────────────────────────────────────────────────────────────────────
   Sorti de `css/bibliotheque.css` le 24/08 : il sert la Bibliothèque (7
   onglets), l'Annuaire des sociétés et les Fournisseurs. UNE source pour
   trois écrans — le ticket l'exige noir sur blanc (« NE PAS LE RECOPIER »),
   et l'histoire lui donne raison : deux sélecteurs jumeaux du dashboard
   avaient divergé, il a fallu les réparer le 22/08.

   Convention : chaque règle porte les DEUX préfixes.
     .bib-sig*   → la Bibliothèque (existant, inchangé à l'écran)
     .soma-sig*  → l'Annuaire, les Fournisseurs, et tout écran à venir
   ═══════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════
   LA LISTE SIG — décision Maxime 24/08 ; mockup-loi :
   mockups/bibliotheque-SIG-VRAIES-DONNEES-2026-08-24.html
   Modèle : l'écran Situations. Ligne 44 px à deux étages, hiérarchie par la
   GRAISSE et trois gris, UNE seule dérogation de taille (le prix), et
   ZÉRO pastille dans les cellules (DESIGN.md § 8.9).
   ⚠️ PRÉFIXE `bib-sig-` EXCLUSIF : aucune classe existante n'est touchée.
   Les pastilles des CARTES (.bib-card-badge, .bib-chip-pill, .bib-card-tag)
   restent intactes — elles servent toujours à la vue Cartes, qui ne disparaît
   pas. Une grammaire par forme, pas une grammaire qui écrase l'autre.
   ═══════════════════════════════════════════════════════════════════════ */

/* ⚠️ `soma-ligne-table` : LA BASCULE EN CARTES < 1080 px FAIT PARTIE DU
   COMPOSANT (DESIGN.md § 8.9 point 8, css/soma-ligne.css). Je l'avais écrite
   moi-même le 22/08 pour les 4 tables SIG… et oubliée ici : sans elle, ce
   tableau DÉBORDE sur un écran serré au lieu de s'empiler. Chaque `<td>` porte
   son `data-col` : c'est le libellé qui s'affiche devant la valeur en mode
   carte. Une cellule sans `data-col` est décorative (le geste). */
 /* ⚠️ DEUX classes, pas une — et ce n'est pas de la coquetterie.
   `.bib-grid` est une grille à 2 colonnes, et `css/bibliotheque.css` est
   chargée par le ROUTEUR, donc APRÈS cette feuille. À spécificité égale, la
   dernière chargée gagne : `display: grid` écrasait `display: block` et le
   tableau n'occupait qu'une colonne sur deux — il s'arrêtait au milieu de la
   page (constat Maxime, capture du 24/08 : « pourquoi c'est si court ? »).
   Deux classes = spécificité supérieure = l'ordre de chargement n'y peut rien. */
.bib-grid.bib-grid--liste { display: block; overflow-x: auto; }

.bib-sig, .soma-sig { width: 100%; border-collapse: collapse; background: var(--card); }
/* Une SEULE règle d'en-tête, aux valeurs exactes de `.comsig-table th`.
   Elle était écrite en deux fois (padding 8/14 + bordure haute, puis écrasée
   plus bas) : un empilement d'overrides, exactement ce qui produit les pièges
   documentés en tête de ce fichier. `nowrap` compris — sans lui, « Famille
   d'achats » et « CA cumulé » passent à la ligne sur une colonne à 14 %. */
.bib-sig thead th, .soma-sig thead th {
  text-align: left; font-size: 11px; font-weight: 900; letter-spacing: .07em;
  text-transform: uppercase; color: var(--muted); padding: 6px 12px;
  border-bottom: 1px solid var(--border); white-space: nowrap;
}
.bib-sig .c-ref, .soma-sig .c-ref { width: 190px; }
.bib-sig .c-four, .soma-sig .c-four { width: 150px; }
.bib-sig .c-prix, .soma-sig .c-prix { width: 120px; text-align: right; }
.bib-sig .c-u, .soma-sig .c-u { width: 62px; }
/* 24/08 — une colonne étroite qui reçoit deux mots casse la ligne : « texte +
   lignes » passait à 55 px au lieu de 44 (mesuré au banc). Une colonne doit
   être dimensionnée pour SON contenu réel, pas pour la moyenne des autres. */
.bib-sig .c-forme, .soma-sig .c-forme { width: 110px; white-space: nowrap; }
.bib-sig .c-vu, .soma-sig .c-vu { width: 140px; }
/* 24/08 — LA MISE EN COLONNES, pour de bon.
   Premier essai raté : j'avais posé `max-width: 0` sur les cellules sans
   largeur pour combler le trou du milieu. C'était un bricolage — il a écrasé
   tout le tableau des Consommables (colonnes empilées, texte coupé en deux,
   tableau sur la moitié de la page). Constat Maxime, capture à l'appui.
   La vraie réponse : `table-layout: fixed`. Les colonnes déclarées gardent leur
   largeur, celle qui n'en déclare pas prend TOUT le reste — un comportement
   prévisible, au lieu d'un calcul qui dépend du contenu. */
.bib-sig, .soma-sig { table-layout: fixed; }
.bib-sig-t1, .bib-sig-t2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* LA BANDE — elle porte un compte ET un fait ; c'est ce qui la rend utile */
.bib-sig-bande td { padding: 7px 14px; background: var(--grey-soft); border-bottom: 1px solid var(--border); }
.bib-sig-bande .bd-t { font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; color: var(--text2); }
.bib-sig-bande .bd-c { font-size: 11px; font-weight: 800; color: var(--muted); margin-left: 9px; }

/* LA LIGNE — 44 px, deux étages, un seul effet au survol */
.bib-sig-l { border-bottom: 1px solid rgba(0, 0, 0, .05); cursor: pointer; }
.bib-sig-l:hover { background: var(--grey-soft); }
.bib-sig-l td { padding: 0 14px; height: 44px; font-size: 12px; vertical-align: middle; }
.bib-sig-t1 { font-size: 12px; font-weight: 900; color: var(--text); line-height: 1.3; }
.bib-sig-t2 { font-size: 11px; color: var(--muted); line-height: 1.3; }
.bib-sig-date { font-weight: 700; }
.bib-sig-plaque { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; font-weight: 700; color: var(--text2); white-space: nowrap; }

/* LA dérogation de taille — une seule par ligne : le prix, ce qu'on vient
   chercher dans un catalogue (l'équivalent du « 47 j » des Situations). */
.bib-sig-mesure { font-size: 14px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--text); }
/* Ce qu'on ne sait pas s'écrit, il ne se fabrique pas (§ 8.9) */
.bib-sig-vide { font-size: 12px; color: var(--muted2, rgba(122, 148, 128, .45)); white-space: nowrap; }
/* 24/08 — LE JAUNE EST TOMBÉ (verdict design-guardian, et il a raison).
   J'avais mis « il y a 85 jours » en jaune. Or le jaune dit « attention, ça
   approche » — un état. Un prix qui vieillit est un FAIT PASSÉ, informatif,
   jamais urgent : c'est exactement l'abus du rouge sur le tag « devis » qu'on
   a retiré le matin même. Le fait reste écrit, la hiérarchie se fait par la
   GRAISSE, pas par la couleur. */
.bib-sig-t2.est-vieux { font-weight: 700; color: var(--text2); }

/* ③ CE QU'ON NE SAIT PAS EST EN `--muted2`, PARTOUT (§ 8.9 règle 8).
   « non renseigné » et « — » étaient en --muted, le même gris que le texte
   normal : l'absence se lisait comme une valeur. */
.bib-sig-t2.est-vide { color: var(--muted2, rgba(122, 148, 128, .45)); }


/* ═══════════════════════════════════════════════════════════════════════
   LES COLONNES DE L'ANNUAIRE ET DES FOURNISSEURS (24/08)
   `table-layout: fixed` : chaque colonne déclarée garde sa largeur, celle qui
   n'en déclare pas (Société / Fournisseur) prend tout le reste — c'est elle
   qu'on lit en premier, elle mérite la place.
   ═══════════════════════════════════════════════════════════════════════ */

/* LE SIGNALEMENT — ambre, et JAMAIS rouge.
   Règle ratifiée par Maxime le 24/08 : « rouge = ça réclame · jaune =
   attention · vert = c'est bon ». Deux fiches qui portent le même nom ne
   réclament rien dans la seconde : elles demandent un COUP D'ŒIL. Le rouge
   ici, c'est l'abus qu'on venait de retirer au tag « devis » le matin même. */
.soma-sig-signal { font-size: 11px; font-weight: 900; color: var(--yellow); white-space: nowrap; }

/* La grille de l'annuaire cesse d'être une grille de vignettes quand elle
   porte un tableau — sinon les colonnes se font écraser par le grid parent. */
.ann-vignettes.ann-vignettes--liste { display: block; overflow-x: auto; }

/* L'ÉTAT — la couleur dit un ÉTAT, jamais une catégorie (règle Maxime 24/08).
   Rouge = ça réclame · ambre = attention · vert = c'est bon. Rendu en TEXTE
   et non en pastille : § 8.9 interdit la pastille dans une cellule, et Maxime
   a fait retirer les pilules des lignes de la Bibliothèque le 24/08. Même
   information, grammaire de l'écran. */
.soma-sig-etat { font-size: 11px; font-weight: 900; white-space: nowrap; }
.soma-sig-etat.est-rouge { color: var(--red); }
.soma-sig-etat.est-ambre { color: var(--yellow); }
.soma-sig-etat.est-vert  { color: var(--green-dark); }


/* ═══════════════════════════════════════════════════════════════════════
   HOMOGÉNÉISATION AVEC LE VRAI SIG — constat Maxime du 24/08, captures à
   l'appui : « ça va pas, pas du tout homogénéisé avec SIG ».
   Il avait raison sur trois points, relevés en comparant à la source
   (`css/commercial.css` l. 1088-1122, la grammaire `.comsig-*` de l'écran
   Situations — CELLE qu'il me montrait en photo) :

     ① le tableau était NU, posé sur le fond. Le SIG vit dans une CARTE
       (fond `--card`, bordure, radius 22, overflow-x). C'est ce qui le fait
       lire comme un objet et non comme un listing brut.
     ② les paddings et les filets ne correspondaient pas : j'avais th 8/14 et
       une bordure haute+basse, une hauteur forcée à 44 px et une ZÉBRURE une
       ligne sur deux. Le SIG : th 6/12 filet bas seul, td 6/10 filet bas,
       aucune zébrure, et le dernier filet retiré.
     ③ les nombres étaient collés à GAUCHE. Dans le SIG tout ce qui se compare
       est aligné à droite (`th.r`) — c'est ce qui rend une colonne de
       chiffres lisible d'un coup d'œil.

   La hauteur de 44 px n'est plus forcée : elle NAÎT des paddings 6/10 sur une
   cellule à deux étages, exactement comme dans le SIG. Remesurée au banc.
   ═══════════════════════════════════════════════════════════════════════ */

/* ⚠️ CARRÉ, PAS ARRONDI — constat Maxime du 24/08, capture du vrai SIG à
   l'appui : « sur SIG c'est carré, j'ai pas d'arrondi ». J'avais repris le
   radius 22 des cartes de SOMA. Or une LISTE n'est pas une carte : la carte
   est un objet qu'on prend dans la main, la liste est une surface qu'on
   parcourt. Le coin droit dit « ça continue », le coin rond dit « ça s'arrête
   là ». C'est pour ça que SIG, Excel et Linear ont tous des tableaux carrés. */
.soma-sig-carte {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 0; overflow-x: auto; margin-bottom: 14px;
}

/* ① les filets : bas seulement, et le dernier retiré (comme .comsig-table) */
/* ⚠️ `height` SUR UN `td` AGIT COMME UN MINIMUM, pas comme une contrainte.
   En passant à `height: auto` pour adopter les paddings du SIG, j'ai perdu
   l'uniformité : 42 px sur une ligne à deux étages, 31 px sur une ligne sans
   sous-titre, 28 px sur la dernière (mesuré au banc). Le SIG paraît régulier
   parce que TOUTES ses lignes ont deux étages ; les nôtres n'en ont pas
   toujours. Le plancher à 44 px rétablit le rythme sans écraser le contenu :
   deux étages font ~41 px, ils tiennent dedans. */
.bib-sig-l td, .soma-sig .bib-sig-l td { border-bottom: 1px solid var(--border); padding: 6px 10px; height: 44px; }
.bib-sig-l:last-child td, .soma-sig .bib-sig-l:last-child td { border-bottom: none; }
.bib-sig-l { border-bottom: none; }

/* ② AUCUNE ZÉBRURE — le SIG n'en a pas. Une ligne sur deux grisée ajoute un
   rythme visuel que la bande de groupe porte déjà mieux. La règle qui la
   posait a été SUPPRIMÉE plutôt que neutralisée ici : une règle morte annulée
   plus bas dans le fichier ne tient que par l'ordre d'écriture. */

/* ③ la bande : le compte part à DROITE (float, comme .comsig-bande td span) */
.bib-sig-bande td { padding: 7px 18px; cursor: default; }
.bib-sig-bande .bd-c { float: right; margin-left: 0; text-transform: none; letter-spacing: 0; }

/* ④ ce qui se COMPARE s'aligne à droite */
.soma-sig .c-nb, .soma-sig .c-ca,
.soma-sig thead .c-nb, .soma-sig thead .c-ca { text-align: right; }

/* ⑤ LES LARGEURS EN POURCENTAGE, et non en pixels.
   Avec `table-layout: fixed`, la colonne SANS largeur déclarée avale tout le
   reste : sur un écran de 1950 px, le nom du fournisseur prenait ~1500 px et
   laissait un VIDE énorme avant les trois autres colonnes (capture Maxime).
   En pourcentage, les colonnes se répartissent quelle que soit la largeur. */
.soma-sig .c-type { width: 16%; }
.soma-sig .c-nb   { width: 10%; }
.soma-sig .c-ca   { width: 16%; }
.soma-sig .c-sig  { width: 14%; }
.soma-sig .c-fam  { width: 18%; }
/* L'adresse de commande : large, parce qu'un mail tronqué ne sert à rien —
   on vient CHERCHER cette adresse, elle doit se lire en entier. */
.soma-sig .c-cmd  { width: 24%; }
/* (10/09) LA TABLE DES FOURNISSEURS, remise d'aplomb. Les cinq colonnes
   déclarées totalisaient 94 % : le NOM, seul sans largeur, héritait des 6 %
   qui restaient — 83 px pour un en-tête qui en demande 96, d'où le
   chevauchement « FOURNISSEURFAMILLE D'ACHATS » vu par Maxime.
   Les six font maintenant 100 % pile, et la colonne qu'on vient chercher est
   la plus large : 20 (nom) + 18 (famille) + 24 (commande) + 14 (prix vus)
   + 10 (contacts) + 14 (signal). */
.soma-sig .c-nomf    { width: 20%; }
.soma-sig .c-prixvus { width: 14%; }


/* ═══════════════════════════════════════════════════════════════════════
   UNE SEULE GRAISSE 900 PAR LIGNE — § 8.9, appliqué le 24/08
   ───────────────────────────────────────────────────────────────────────
   Le nom porte le 900 : c'est ce qu'on cherche. Tout le reste de la ligne
   est un COMPLÉMENT, et se lit en graphite, graisse 700. J'avais mis quatre
   `.bib-sig-t1` par ligne dans l'Annuaire comme dans les Fournisseurs :
   quand tout est en gras, plus rien ne ressort et l'oeil ne sait plus où se
   poser. C'est le même travers que la couleur employée pour tout dire.
   ═══════════════════════════════════════════════════════════════════════ */
.soma-sig-txt { font-size: 12px; font-weight: 700; color: var(--text2); line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Un nombre se compare : chiffres à chasse fixe, pour que les colonnes
   s'alignent verticalement à l'oeil. */
.soma-sig-nb { font-size: 12px; font-weight: 700; color: var(--text2);
  font-variant-numeric: tabular-nums; }
