/* F2 — caratteri: Source Serif 4 per i titoli, Source Sans 3 per il testo (SIL Open Font License,
 * licenze in assets/fonts/). File salvati nell'app: funzionano offline e non chiamano server esterni.
 * Caricato su tutte le pagine da auth.js. Per tornare al carattere di sistema basta togliere
 * 'omni-fonts.css' dall'elenco in auth.js. */
@font-face { font-family: 'Source Sans 3'; src: url('assets/fonts/source-sans-3-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Source Sans 3'; src: url('assets/fonts/source-sans-3-latin-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Source Sans 3'; src: url('assets/fonts/source-sans-3-latin-600-normal.woff2') format('woff2'); font-weight: 500 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Source Sans 3'; src: url('assets/fonts/source-sans-3-latin-700-normal.woff2') format('woff2'); font-weight: 700 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Source Serif 4'; src: url('assets/fonts/source-serif-4-latin-600-normal.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Source Serif 4'; src: url('assets/fonts/source-serif-4-latin-700-normal.woff2') format('woff2'); font-weight: 700 900; font-style: normal; font-display: swap; }

/* Testo: Source Sans 3. font-size-adjust porta l'altezza delle minuscole a quella del carattere di
 * sistema, così le dimensioni scelte nelle pagine restano le stesse a colpo d'occhio. */
html body,
html body :is(button, input, select, textarea) {
  font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif !important;
  font-size-adjust: .53;
}
/* Titoli: Source Serif 4 */
html body :is(h1, h2, h3, .mod-title, .n1-title, .qz-domanda, .val-section-title, .tbl-card-title) {
  font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif !important;
  letter-spacing: 0;
}
/* Restano come sono: codici a spaziatura fissa */
html body :is(code, pre, kbd, samp, .badge-atc) { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; font-size-adjust: none; }
/* Barra di navigazione N1: etichette e nome dell'app con gli stessi caratteri */
html body :is(.n1-top, .n1-dock) :is(span, a, button):not(.badge-atc) { font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif !important; }
html body .n1-brand { font-family: 'Source Serif 4', Georgia, serif !important; }
/* Finestre in sovrimpressione (consenso, cookie, avviso di aggiornamento): stesso testo del resto */
html body :is(#omn-consent-overlay, #omn-cookie-banner, #omn-cookie-prefs, .onu-card) { font-family: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif !important; }

/* Testo giustificato (23/09/2026, richiesta dell'autore) — solo nei testi lunghi da leggere:
 * teoria, schede rapide, spiegazioni dei quiz. Le righe arrivano fino al bordo del riquadro
 * (l'ultima riga di ogni paragrafo resta a sinistra). Niente sillabazione, per scelta dell'autore.
 * Titoli, pulsanti, card ed elementi centrati restano come sono. Per tornare all'allineamento
 * a sinistra: togliere questo blocco. */
html body :is(
  .teoria-accordion-body > p, .teoria-accordion-body > ul > li, .teoria-accordion-body > ol > li,
  .teoria-accordion-body blockquote p, .teoria-accordion-body .kb-b p, .teoria-accordion-body .kb-b li,
  .teoria-section-header > p,
  .rapida-acc-body .sez-testo, .rapida-note li, .rapida-note p,
  .qz-spiegazione
) {
  text-align: justify;
  text-align-last: left;
  -webkit-hyphens: manual;
  hyphens: manual;
}
