/* ============================================================================
   UTILITÀ — classi minute, di una riga, da appoggiare direttamente nelle viste.
   Volutamente poche: quando una combinazione ricorre più di tre volte diventa
   un componente, non un'altra utilità.
   ============================================================================ */

/* Testo */
.testo-tenue    { color: var(--testo-tenue); }
.testo-piccolo  { font-size: var(--testo-piccolo); }
.testo-minuto   { font-size: var(--testo-minuto); }
.testo-ok       { color: var(--ok); }
.testo-errore   { color: var(--errore); }
.testo-allerta  { color: var(--allerta); }
.testo-attesa   { color: var(--attesa); }
.testo-destra   { text-align: right; }
.testo-centro   { text-align: center; }
.testo-forte    { font-weight: 600; }
.maiuscolo      { text-transform: uppercase; }
.capitalizzato  { text-transform: capitalize; }
/* Testo inserito dagli utenti: gli a capo che hanno scritto restano visibili. */
.testo-libero   { white-space: pre-line; }

/* Numeri: incolonnati, perché un importo si legge confrontandolo */
.numero-grande { font-size: 1.3rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.monospazio    { font-family: var(--carattere-numeri); font-size: .82rem; }
.incolonnato   { font-variant-numeric: tabular-nums; }

/* Disposizione */
.pieno       { width: 100%; }
.in-linea    { display: inline; }
.in-linea-blocco { display: inline-block; }
.a-destra    { justify-content: flex-end; }
.riga        { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.riga--fine  { justify-content: flex-end; }
.riga--spazi { justify-content: space-between; }
.colonna     { display: flex; flex-direction: column; gap: 8px; }
.spinta      { margin-left: auto; }

/* Spaziature: solo i pochi passi che servono davvero */
.senza-margine  { margin: 0; }
.stacco-sopra   { margin-top: var(--spazio); }
.stacco-sotto   { margin-bottom: var(--spazio); }

.separatore { height: 1px; background: var(--bordo); margin: 12px 0; border: none; }

/* Elenchi puntati dentro un avviso o un riquadro: rientro senza doppio margine. */
.elenco-note { margin: 6px 0 0 18px; padding: 0; }

/* Visibile solo alle tecnologie assistive: il testo resta nel documento,
   sparisce dallo schermo. */
.solo-lettori {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.nascosto { display: none !important; }
