/* Font dell'applicazione, serviti da noi.
 *
 * PERCHE' NON DA GOOGLE. Caricarli dai server di Google significa mandare l'indirizzo IP
 * di ogni utente a Google LLC a ogni caricamento di pagina, login compreso: un
 * trasferimento verso un paese terzo, su ogni istanza, che il DPA consegnato al cliente
 * dichiarava esplicitamente inesistente. E' anche l'ultimo host esterno rimasto nella
 * CSP, dopo la vendorizzazione di ECharts e GridStack.
 *
 * SOLO latin e latin-ext: un CRM italiano non ha bisogno di cirillico, greco e
 * vietnamita, e caricarli sarebbe peso su ogni pagina per zero utenti. Se un giorno
 * servisse un altro alfabeto, si rigenera questo file aggiungendolo a SOTTOINSIEMI.
 *
 * Licenze: Inter e Bricolage Grotesque sono SIL Open Font License 1.1; Material Symbols
 * Outlined e' Apache License 2.0. Tutte e tre consentono esplicitamente di ospitare i
 * file in proprio e di ridistribuirli dentro un artefatto di rilascio.
 *
 * UN FILE PER SOTTOINSIEME, non uno per peso: Inter e Bricolage Grotesque sono font
 * VARIABILI, e Google serve lo stesso identico file per tutti i pesi richiesti. Salvarne
 * cinque copie identiche costava mezzo megabyte per niente. Verificato per impronta.
 *
 * Generato, non scritto a mano. Per rigenerarlo: vedi client/vendor/README.md.
 */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(bricolage-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Material Symbols Outlined: le icone di tutto il prodotto (336 usi).
 *
 * ERA STATO DIMENTICATO. La vendorizzazione dei font ha portato via i tre <link> a
 * Google e ne ha rimessi due: Inter e Bricolage. Material Symbols no. Per tre giorni
 * al posto delle icone si sono lette le PAROLE, perche' le Material Symbols funzionano
 * per LEGATURA: il testo dentro l'elemento (`visibility_off`) e' il nome dell'icona, e
 * senza il font giusto il browser lo compone con Inter e lo mostra com'e' scritto.
 * Nella pagina di accesso si leggeva `visibility_off` dentro il campo password.
 *
 * PERCHE' QUESTA VARIANTE E NON QUELLA COMPLETA. Il font variabile intero ha quattro
 * assi (opsz, wght, FILL, GRAD) e pesa 3,96 MB: troppo, per un file che ogni visitatore
 * scarica prima ancora di aver fatto il login. Qui c'e' l'istanza con il SOLO asse FILL
 * (opsz 24, wght 400, GRAD 0 fissati): 457 KB, un nono.
 *
 * FILL e' l'unico asse che il prodotto muove davvero, ed e' informazione, non decoro:
 * la stella piena dice quale vista di colonne e' quella predefinita
 * (js/module-view-presets.js) e l'icona piena dice quale modulo e' quello aperto
 * (.fill-icon, js/components/sidebar-groups.js). Con un'istanza statica quelle due
 * distinzioni sparirebbero in silenzio, per risparmiare 137 KB.
 * L'asse wght invece non lo muove nessuno tranne `.fill-icon`, che chiede 500 invece di
 * 400: a 18-20 px la differenza di spessore non si vede, e tenerlo costava altri 669 KB.
 * Se un giorno servisse davvero, si rigenera con FILL@0..1 piu' l'asse voluto: vedi
 * client/vendor/README.md.
 *
 * font-display: BLOCK, non swap come i font di testo. Con `swap` il browser mostra il
 * testo di ripiego mentre scarica, e per un font a legature quel testo di ripiego e'
 * esattamente il difetto che stiamo correggendo: la parola `visibility_off` che lampeggia
 * dentro il campo password. Con `block` lo spazio resta vuoto per ~3 s e poi compare
 * l'icona; se il file non arriva proprio, la parola torna, che e' il ripiego giusto.
 *
 * Nessun unicode-range: e' un file solo e serve tutto l'insieme, comprese le lettere
 * latine, che sono gli INGRESSI delle legature (senza `v`, `i`, `s`... niente `visibility`).
 */
@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(material-symbols-outlined.woff2) format('woff2');
}
