/* Contratto base condiviso: reset minimo, focus globale e numeri tabellari.
   Le viste applicative possono estendere queste regole, non neutralizzarle. */

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--color-bg);
}

a { color: var(--state-active); text-decoration: none; }
a:hover { text-decoration: underline; }

button, input, select, textarea { font: inherit; color: inherit; }

/* Il focus da tastiera è un requisito trasversale: ogni componente deve conservarne contrasto e geometria. */
:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-sm);
}

/* Tabelle, contatori e scadenze usano cifre tabellari per mantenere l'allineamento verticale. */
table, .num { font-variant-numeric: tabular-nums; }
