/* ATELIER ÉPHÉMÈRE — /design/lignes (piste « ligne fantôme » du tableau de lignes de
   document ; page : src/routes/design/lignes.js, câblage : app/atelier-lignes.js).
   Scope .atl-* strict : rien ne fuit dans l'app ; la feuille disparaît avec l'atelier
   (CLAUDE_DESIGN/CLAUDE.md § Trancher une famille). L'habillage de table (bandeau,
   zébrage, survol) vient de .table-wrap (07-tables.css) — ici seulement la piste. */

/* Largeurs de colonnes — LA vérité, à régler ici. table-layout:fixed les applique
   telles quelles (un col > un th : les width:1% des classes de nature ne mordent
   pas) ; « Article » n'a pas de width → il absorbe tout le reste, et encaisse seul
   le rétrécissement : JAMAIS de min-width de table, le tableau tient sa carte sans
   scrollbar latérale (décision atelier). */
.atl-table table {
  table-layout: fixed;
  width: 100%;
}
.atl-table col.atl-c-nature {
  width: 100px;
}
.atl-table col.atl-c-qty {
  width: 72px;
}
.atl-table col.atl-c-pu {
  width: 112px;
}
.atl-table col.atl-c-remise {
  width: 118px;
}
.atl-table col.atl-c-tva {
  width: 84px;
}
.atl-table col.atl-c-total {
  width: 108px;
}
.atl-table col.atl-c-err {
  width: 76px;
}
.atl-table col.atl-c-act {
  /* ✓ + × (58px) + padding de cellule : plus étroit, le contenu déborderait du
     wrapper en layout fixed = scrollbar latérale fantôme. */
  width: 78px;
}

/* Champ fantôme : la cellule se lit comme du texte (aucun puits de saisie — ni fond,
   ni filet, ni chevron), mais TOUT reste un vrai contrôle. Le survol révèle
   l'éditable (fond chip), le focus rallume le puits blanc + l'anneau de marque.
   Encre : donnée grise au repos (le tableau reste une colonne de données), encre
   pleine en saisie (règle CHAMPS « la valeur saisie est de l'encre »). */
.atl-row :where(input, select) {
  background: none;
  border-color: transparent;
  box-shadow: none;
  height: var(--control-h);
  padding: 2px 6px;
  width: 100%;
  color: var(--data-ink);
  border-radius: var(--radius);
}
.atl-row select {
  background-image: none;
  cursor: pointer;
}
/* Chevron du chemin ::picker (Chromium base-select) masqué au repos, comme le
   chevron background : le select se lit « texte seul ». */
.atl-row select::picker-icon {
  display: none;
}
.atl-row :where(input, select):hover {
  background-color: var(--chip);
}
.atl-row :where(input, select):focus {
  background-color: var(--panel);
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--focus-ring);
  color: var(--ink);
}
.atl-row select:disabled {
  cursor: default;
  background-color: transparent;
  opacity: 1;
}
/* Spinners masqués : une colonne de nombres à toupies ne se lit plus comme du texte. */
.atl-row input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
.atl-row input[type="number"]::-webkit-outer-spin-button,
.atl-row input[type="number"]::-webkit-inner-spin-button {
  display: none;
}

/* Alignement par nature de colonne, cellule ET saisie (le td n'aligne que le texte
   nu — Total HT, pastilles — le contrôle doit suivre de lui-même) : toute colonne
   à montant € (Prix UHT, Remise, Total HT) à droite ; Nature/Qté/TVA/Erreurs au
   centre (text-align-last : un <select> fermé ignore text-align seul). */
.atl-table td.atl-right {
  text-align: right;
}
.atl-table td.atl-center {
  text-align: center;
}
.atl-right :where(input, .combo-input) {
  text-align: right;
}
.atl-center :where(input, select) {
  text-align: center;
  text-align-last: center;
}
.atl-row .combo {
  width: 100%;
}

/* Remise : paire valeur + unité serrée dans sa colonne fixe (l'unité hugge, la
   valeur absorbe). */
.atl-row .discount-input {
  display: flex;
  gap: 0;
  width: 100%;
}
.atl-row .discount-input input {
  flex: 1 1 auto;
  min-width: 0;
}
.atl-row .discount-input select {
  width: 38px;
  flex: 0 0 auto;
  padding-left: 2px;
  padding-right: 2px;
}

/* Colonne « Erreurs » : les pastilles centralisées, côte à côte. */
.atl-errcell {
  white-space: nowrap;
}

/* ✓/× côte à côte dans la colonne d'action figée (même règle que .line-edit-row). */
.atl-row .col-actions {
  flex-wrap: nowrap;
}

/* Ligne d'ajout (queue vide, pas encore .atl-live) : ses ✓/× n'existent pas encore —
   elle n'est une ligne réelle qu'une fois remplie (app/atelier-lignes.js la promeut). */
.atl-row:not(.atl-live) .col-actions {
  visibility: hidden;
}
