/* nova_fields_align.css — 10_Moduli/00_Sistema/frontend/shared/nova_fields_align.css
 * Classi canoniche per allineamento celle/colonne (AI.md §3-ter MANDATORIA, rev 1.2.38).
 * Applica la classe col-<tipo> su <th> e <td> delle tabelle Nova.
 * Catalogo mattoncini: 10_Moduli/00_Sistema/standard/README.md sezione A.
 */

/* Codice / ID / P.IVA / CF / IBAN / tel / email — sinistra */
.col-codice,
th.col-codice,
td.col-codice,
label.lbl-codice,
.form-codice-value { text-align: left; }

/* Descrizione / testo lungo / ragione sociale / indirizzo / note / causali — sinistra */
.col-descrizione,
th.col-descrizione,
td.col-descrizione,
label.lbl-descrizione,
.form-descrizione-value { text-align: left; }

/* Revisione / progressivi brevi fissi — centro */
.col-rev, th.col-rev, td.col-rev,
.col-revisione, th.col-revisione, td.col-revisione { text-align: center; }

/* UM (unità di misura: PZ / KG / MT / H / €) — centro */
.col-um, th.col-um, td.col-um { text-align: center; }

/* Numeri / valuta / quantità / prezzi / importi — destra + tabular nums per allineamento cifre */
.col-num, th.col-num, td.col-num,
.col-numero, th.col-numero, td.col-numero,
.col-valuta, th.col-valuta, td.col-valuta,
.col-prezzo, th.col-prezzo, td.col-prezzo,
.col-qta, th.col-qta, td.col-qta {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Data — centro + tabular nums (GG/MM/AAAA) */
.col-data, th.col-data, td.col-data {
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* Flag / stato / checkbox / action (cestino, ecc.) — centro */
.col-flag, th.col-flag, td.col-flag,
.col-stato, th.col-stato, td.col-stato,
.col-action, th.col-action, td.col-action { text-align: center; }

/* Le videate hanno quasi tutte una regola propria `.xx-tbl thead th { text-align:left }`
 * (specificità 0,1,2) che batterebbe `th.col-num` (0,1,1): la classe col-* deve vincere
 * sempre, altrimenti l'intestazione resta a sinistra sopra una colonna di numeri.
 * Stesso peso (0,1,3) anche sulle celle, per le regole `.xx-panel td { text-align:left }`. */
table thead th.col-codice, table tbody td.col-codice, table tr td.col-codice,
table thead th.col-descrizione, table tbody td.col-descrizione, table tr td.col-descrizione { text-align: left; }
table thead th.col-num, table tbody td.col-num, table tr td.col-num,
table thead th.col-numero, table tbody td.col-numero, table tr td.col-numero,
table thead th.col-valuta, table tbody td.col-valuta, table tr td.col-valuta,
table thead th.col-prezzo, table tbody td.col-prezzo, table tr td.col-prezzo,
table thead th.col-qta, table tbody td.col-qta, table tr td.col-qta { text-align: right; }
table thead th.col-data, table tbody td.col-data, table tr td.col-data,
table thead th.col-rev, table tbody td.col-rev, table tr td.col-rev,
table thead th.col-revisione, table tbody td.col-revisione, table tr td.col-revisione,
table thead th.col-um, table tbody td.col-um, table tr td.col-um,
table thead th.col-flag, table tbody td.col-flag, table tr td.col-flag,
table thead th.col-stato, table tbody td.col-stato, table tr td.col-stato,
table thead th.col-action, table tbody td.col-action, table tr td.col-action { text-align: center; }

/* ────────────────────────────────────────────────────────────────────────────
 * 🟥 rev 3.6.4 (L305 ⑩ «TUTTI SUBITO!!» + L302 punto ②) — L'HEADER RESTA SU.
 * Il censimento L302 contava 30 videate senza `position:sticky` sul thead:
 * scorrendo una lista lunga l'intestazione scappava via e le colonne diventavano
 * numeri anonimi. Qui la regola è UNA e vale per tutta Nova (dottrina mattoncini:
 * un fix qui = tutta Nova a posto), a SPECIFICITÀ ZERO via `:where()`: qualunque
 * regola per-file (sfondo scuro, top diverso, z-index proprio) vince senza
 * saperlo. Lo sfondo di default serve perché un th trasparente farebbe scorrere
 * le righe SOTTO l'intestazione, che è peggio dell'intestazione che scappa.
 * ⚠️ Lo sticky NON funziona con `border-collapse:collapse` (trappola §Prompt E-1,
 * ripresentata 4 volte): le tabelle-lista usano `separate` + `border-spacing:0`,
 * che coi border-bottom di Nova rende identico. */
:where(.nova-window) :where(thead) th {
    position: sticky;
    top: 0;
    z-index: 4;
    background: #f8fafc;
}
