/* ==========================================================================
   AREA UNIVERSITÀ — /universita
   Un'identità sua, sobria, per chi insegna all'università: carta chiara, inchiostro, un solo
   accento (blu d'archivio). Serif per i titoli e per il testo delle domande — si leggono come su
   un compito stampato — sans per l'interfaccia.

   Il template base carica Tailwind dal CDN, con il suo reset globale (titoli senza dimensione,
   elenchi senza pallini, pulsanti senza sfondo). Tutto qui sta sotto .uni e dichiara ogni cosa:
   i selettori .uni h1 vincono sul reset, che usa solo selettori di elemento.
   ========================================================================== */

.uni {
  --carta: #F7F7F4;
  --superficie: #FFFFFF;
  --inchiostro: #15171B;
  --tenue: #5B6068;
  --lieve: #8A8F97;
  --riga: #E3E1DB;
  --riga-forte: #CBC8C0;
  --accento: #1F3F76;
  --accento-scuro: #152E57;
  --accento-tenue: #E9EEF7;
  --verde: #1B6B45;
  --verde-tenue: #E6F2EB;
  --ambra: #8A5300;
  --ambra-tenue: #FBF1DE;
  --rosso: #A8261C;
  --rosso-tenue: #FBE9E7;

  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans: "Source Sans 3", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --r: 10px;
  --r-piccolo: 7px;

  background: var(--carta);
  color: var(--inchiostro);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  min-height: 70vh;
  -webkit-font-smoothing: antialiased;
}
.uni *, .uni *::before, .uni *::after { box-sizing: border-box; }
.uni .contenitore { max-width: 1060px; margin: 0 auto; padding: 0 24px; }
.uni .stretto { max-width: 760px; }

/* ---------- tipografia ---------- */
.uni h1, .uni h2, .uni h3 { font-family: var(--serif); color: var(--inchiostro); margin: 0; text-wrap: balance; }
.uni h1 { font-size: 34px; line-height: 1.15; font-weight: 600; letter-spacing: -0.01em; }
.uni h2 { font-size: 23px; line-height: 1.25; font-weight: 600; }
.uni h3 { font-size: 18px; line-height: 1.3; font-weight: 600; }
.uni p { margin: 0; }
.uni a { color: var(--accento); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.uni a:hover { color: var(--accento-scuro); }
.uni .etichetta { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tenue); }
.uni .tenue { color: var(--tenue); }
.uni .piccolo { font-size: 14px; }
.uni ul, .uni ol { margin: 0; padding: 0; }
.uni strong { font-weight: 650; }

/* ---------- intestazione dell'area ---------- */
.uni-testa { position: sticky; top: 0; z-index: 60; background: rgba(255,255,255,0.96); backdrop-filter: blur(6px);
  border-bottom: 1px solid #E3E1DB; font-family: "Source Sans 3", -apple-system, "Segoe UI", sans-serif; }
.uni-testa-dentro { max-width: 1060px; margin: 0 auto; padding: 0 24px; height: 60px; display: flex; align-items: center; gap: 28px; }
.uni-marchio { display: flex; align-items: baseline; gap: 8px; color: #15171B; text-decoration: none; white-space: nowrap; }
.uni-marchio:hover { color: #15171B; }
.uni-marchio b { font-family: "Source Serif 4", Georgia, serif; font-size: 20px; font-weight: 700; letter-spacing: -0.01em; }
.uni-marchio span { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #1F3F76; }
.uni-testa nav { display: flex; gap: 22px; flex: 1; }
.uni-testa nav a { color: #5B6068; font-size: 15px; font-weight: 500; text-decoration: none; padding: 18px 0; border-bottom: 2px solid transparent; }
.uni-testa nav a:hover, .uni-testa nav a[aria-current="page"] { color: #15171B; border-bottom-color: #1F3F76; }
.uni-account { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #5B6068; white-space: nowrap; }
.uni-account button { font: inherit; background: none; border: 0; color: #1F3F76; cursor: pointer; padding: 6px 2px; text-decoration: underline; text-underline-offset: 2px; }
/* Il pulsante Accedi sta nell'intestazione, fuori da .uni: ha bisogno dei suoi colori. */
.uni-account .uni-btn { text-decoration: none; font-family: "Source Sans 3", sans-serif; font-size: 14px; font-weight: 600; line-height: 1;
  padding: 8px 14px; border-radius: 6px; border: 1px solid #1F3F76; background: #1F3F76; color: #fff; }
.uni-account .uni-btn:hover { background: #16305B; border-color: #16305B; }
/* hidden vince sempre: senza, le regole display di pulsanti e griglie lo scavalcano. */
.uni [hidden], .uni-dialogo [hidden], .uni-testa [hidden] { display: none !important; }
/* Il piè di pagina resta in fondo anche quando la pagina è corta. */
.uni { min-height: 60vh; }

/* ---------- pulsanti e campi ---------- */
.uni .uni-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--sans);
  font-size: 15px; font-weight: 600; line-height: 1; padding: 12px 18px; border-radius: var(--r-piccolo);
  border: 1px solid var(--accento); background: var(--accento); color: #fff; cursor: pointer; text-decoration: none;
  transition: background .15s, border-color .15s, color .15s; white-space: nowrap; }
.uni .uni-btn:hover { background: var(--accento-scuro); border-color: var(--accento-scuro); color: #fff; }
.uni .uni-btn[disabled] { opacity: .5; cursor: not-allowed; }
.uni .uni-btn.secondario { background: var(--superficie); color: var(--inchiostro); border-color: var(--riga-forte); }
.uni .uni-btn.secondario:hover { background: var(--carta); border-color: var(--inchiostro); color: var(--inchiostro); }
.uni .uni-btn.piccolo { font-size: 14px; padding: 8px 12px; }
.uni .uni-btn.pericolo { background: var(--superficie); color: var(--rosso); border-color: var(--riga-forte); }
.uni .uni-btn.pericolo:hover { border-color: var(--rosso); background: var(--rosso-tenue); }
.uni .uni-link { font: inherit; font-size: 14px; background: none; border: 0; padding: 4px 0; color: var(--accento); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.uni .uni-link.pericolo { color: var(--rosso); }
.uni .uni-link[disabled] { opacity: .35; cursor: default; text-decoration: none; }
.uni button:focus-visible, .uni a:focus-visible, .uni input:focus-visible, .uni select:focus-visible, .uni textarea:focus-visible,
.uni-testa a:focus-visible, .uni-testa button:focus-visible { outline: 2px solid var(--accento, #1F3F76); outline-offset: 2px; }

.uni label { display: block; font-size: 14px; font-weight: 600; margin: 0 0 6px; color: var(--inchiostro); }
.uni .aiuto { font-size: 13px; color: var(--tenue); font-weight: 400; margin-top: 4px; }
.uni input[type="text"], .uni input[type="date"], .uni input[type="datetime-local"], .uni input[type="number"], .uni select, .uni textarea {
  width: 100%; font-family: var(--sans); font-size: 15px; color: var(--inchiostro); background: var(--superficie);
  border: 1px solid var(--riga-forte); border-radius: var(--r-piccolo); padding: 10px 12px; line-height: 1.4; }
.uni textarea { font-family: var(--serif); font-size: 16px; line-height: 1.5; resize: vertical; min-height: 80px; }
.uni input:focus, .uni select:focus, .uni textarea:focus { border-color: var(--accento); outline: none; box-shadow: 0 0 0 3px var(--accento-tenue); }
.uni .griglia-campi { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }

/* ---------- superfici ---------- */
.uni .uni-carta { background: var(--superficie); border: 1px solid var(--riga); border-radius: var(--r); }
.uni .uni-carta.imbottita { padding: 24px; }
.uni .sezione { padding: 40px 0 64px; }
.uni .intestazione-pagina { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 28px; }
.uni .briciole { font-size: 14px; color: var(--tenue); margin-bottom: 10px; }
.uni .briciole a { color: var(--tenue); }
.uni .sottotitolo { color: var(--tenue); margin-top: 6px; }

/* ---------- avvisi di pagina e messaggi ---------- */
.uni .nota { border-radius: var(--r-piccolo); padding: 12px 14px; font-size: 14px; line-height: 1.5; }
.uni .nota.info { background: var(--accento-tenue); color: var(--accento-scuro); }
.uni .nota.attenzione { background: var(--ambra-tenue); color: #5B3A00; }
.uni .nota.errore { background: var(--rosso-tenue); color: #7A1B14; }
.uni-avviso { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); z-index: 300;
  background: #15171B; color: #fff; font-family: "Source Sans 3", sans-serif; font-size: 15px; padding: 12px 18px;
  border-radius: 8px; max-width: min(560px, calc(100vw - 32px)); opacity: 0; transition: opacity .2s, transform .2s; pointer-events: none; }
.uni-avviso.visibile { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.uni-avviso.errore { background: #7A1B14; }
.uni-avviso a { color: #fff; }

/* ---------- vuoto e caricamento ---------- */
.uni .vuoto { text-align: left; padding: 36px; }
.uni .vuoto h2 { margin-bottom: 8px; }
.uni .caricamento { color: var(--tenue); padding: 40px 0; font-size: 15px; }
.uni .scheletro { background: linear-gradient(90deg, #EFEEEA, #F6F5F2, #EFEEEA); background-size: 200% 100%; animation: uni-luce 1.4s infinite; border-radius: var(--r); height: 108px; }
@keyframes uni-luce { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* ---------- corsi ---------- */
.uni .anno { margin-top: 36px; }
.uni .anno:first-child { margin-top: 0; }
.uni .anno h2 { font-size: 19px; margin-bottom: 14px; display: flex; align-items: baseline; gap: 10px; }
.uni .anno h2 small { font-family: var(--sans); font-size: 14px; font-weight: 400; color: var(--tenue); }
.uni .corsi { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.uni .corso-scheda { display: flex; flex-direction: column; gap: 14px; padding: 20px; text-decoration: none; color: inherit;
  transition: border-color .15s, box-shadow .15s; min-height: 150px; }
.uni .corso-scheda:hover { border-color: var(--accento); box-shadow: 0 1px 0 var(--accento); color: inherit; }
.uni .corso-scheda h3 { font-size: 19px; }
.uni .corso-scheda .cdl { font-size: 14px; color: var(--tenue); margin-top: 3px; }
.uni .numeri { display: flex; gap: 18px; flex-wrap: wrap; margin-top: auto; font-size: 14px; color: var(--tenue); }
.uni .numeri b { color: var(--inchiostro); font-weight: 650; font-variant-numeric: tabular-nums; }

/* ---------- schede di navigazione del corso ---------- */
.uni .schede { display: flex; gap: 4px; border-bottom: 1px solid var(--riga); margin-bottom: 28px; overflow-x: auto; }
.uni .schede button { font-family: var(--sans); font-size: 15px; font-weight: 600; color: var(--tenue); background: none; border: 0;
  border-bottom: 2px solid transparent; padding: 12px 14px; margin-bottom: -1px; cursor: pointer; white-space: nowrap; }
.uni .schede button:hover { color: var(--inchiostro); }
.uni .schede button[aria-selected="true"] { color: var(--inchiostro); border-bottom-color: var(--accento); }
.uni .schede .conta { font-weight: 400; color: var(--lieve); margin-left: 4px; font-variant-numeric: tabular-nums; }

/* ---------- materiale ---------- */
.uni .carica { border: 1.5px dashed var(--riga-forte); border-radius: var(--r); background: var(--superficie); padding: 28px;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap; transition: border-color .15s, background .15s; }
.uni .carica.sopra { border-color: var(--accento); background: var(--accento-tenue); }
.uni .carica .testo-carica { flex: 1; min-width: 220px; }
.uni .carica h3 { margin-bottom: 4px; }
.uni .materiali { margin-top: 18px; display: grid; gap: 8px; }
.uni .materiale { display: flex; align-items: center; gap: 14px; padding: 14px 16px; }
.uni .materiale .formato { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--accento);
  background: var(--accento-tenue); border-radius: 5px; padding: 4px 7px; min-width: 44px; text-align: center; }
.uni .materiale .nome { font-weight: 600; word-break: break-word; }
.uni .materiale .dettagli { font-size: 14px; color: var(--tenue); }
.uni .materiale .azioni { margin-left: auto; }
.uni .materiale.in-corso .formato { background: var(--carta); color: var(--tenue); }
.uni .programma { margin-top: 28px; }
.uni .programma ol { list-style: none; counter-reset: arg; display: grid; gap: 0; margin-top: 12px; }
.uni .programma li { counter-increment: arg; display: grid; grid-template-columns: 34px 1fr auto; gap: 8px; padding: 10px 0; border-top: 1px solid var(--riga); font-size: 15px; }
.uni .programma li::before { content: counter(arg); color: var(--lieve); font-variant-numeric: tabular-nums; }
.uni .programma .peso { font-size: 13px; color: var(--tenue); white-space: nowrap; }

/* ---------- generazione ---------- */
.uni .genera { padding: 24px; }
.uni .genera .opzioni-genera { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; margin: 18px 0 20px; }
.uni .scelte { display: flex; flex-wrap: wrap; gap: 6px; }
.uni .scelte button { font-family: var(--sans); font-size: 14px; font-weight: 600; background: var(--superficie); color: var(--inchiostro);
  border: 1px solid var(--riga-forte); border-radius: 999px; padding: 7px 13px; cursor: pointer; }
.uni .scelte button[aria-pressed="true"] { background: var(--inchiostro); border-color: var(--inchiostro); color: #fff; }
.uni .scelte button[disabled] { opacity: .45; cursor: not-allowed; }
.uni .spunta { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; font-size: 15px; cursor: pointer; }
.uni .spunta input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--accento); }
.uni .avanzamento { padding: 22px 24px; }
.uni .barra { height: 6px; background: var(--riga); border-radius: 99px; overflow: hidden; margin: 14px 0 10px; }
.uni .barra i { display: block; height: 100%; width: 0; background: var(--accento); border-radius: 99px; transition: width .6s ease; }
.uni .avanzamento .messaggio { font-size: 15px; }

/* ---------- barra degli strumenti della banca ---------- */
.uni .strumenti { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 24px 0 16px; }
.uni .filtri { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.uni .filtri select { width: auto; padding: 7px 10px; font-size: 14px; }

/* ---------- la domanda ---------- */
.uni .domande { display: grid; gap: 12px; }
.uni .domanda { padding: 20px 22px; border-left: 3px solid transparent; }
.uni .domanda.approvato { border-left-color: var(--verde); }
.uni .domanda.scartato { opacity: .55; }
.uni .domanda .testata { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; font-size: 13px; color: var(--tenue); }
.uni .segno { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--inchiostro); background: var(--carta);
  border: 1px solid var(--riga); border-radius: 5px; padding: 2px 7px; }
.uni .argomento { color: var(--tenue); }
.uni .fonte { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; border-radius: 5px; padding: 2px 8px;
  border: 0; cursor: pointer; font-family: var(--sans); }
.uni .fonte.verificata { background: var(--verde-tenue); color: var(--verde); }
.uni .fonte.quasi { background: var(--ambra-tenue); color: var(--ambra); }
.uni .fonte.no { background: var(--rosso-tenue); color: var(--rosso); }
/* Nella pagina della prova il badge è solo un'etichetta: niente manina che promette un clic. */
.uni span.fonte { cursor: default; }
.uni .fonte svg { width: 13px; height: 13px; }
.uni .domanda .testo-domanda { font-family: var(--serif); font-size: 17px; line-height: 1.5; color: var(--inchiostro); }
.uni .domanda .opzioni-domanda { list-style: none; margin: 12px 0 0; display: grid; gap: 6px; }
.uni .domanda .opzioni-domanda li { display: grid; grid-template-columns: 26px 1fr; gap: 4px; font-family: var(--serif); font-size: 16px; line-height: 1.45;
  padding: 7px 10px; border-radius: 6px; }
.uni .domanda .opzioni-domanda li .l { font-family: var(--sans); font-weight: 700; color: var(--tenue); }
.uni .domanda .opzioni-domanda li.giusta { background: var(--verde-tenue); }
.uni .domanda .opzioni-domanda li.giusta .l { color: var(--verde); }
/* tipi nuovi: numerica, abbinamento, completamento */
.uni .lacuna { background: var(--verde-tenue); color: var(--verde); font-family: var(--sans); font-size: .92em; font-weight: 650; border-radius: 4px; padding: 0 6px; border-bottom: 1.5px solid var(--verde); }
.uni .risposta-num { margin-top: 12px; font-size: 15px; }
.uni .risposta-num b { background: var(--verde-tenue); color: var(--verde); padding: 1px 8px; border-radius: 4px; font-variant-numeric: tabular-nums; }
.uni .coppie { list-style: none; margin: 12px 0 0; display: grid; gap: 6px; }
.uni .coppie li { display: grid; grid-template-columns: 1fr 22px 1fr; gap: 6px; align-items: baseline; font-family: var(--serif); font-size: 16px; line-height: 1.45; padding: 6px 10px; border-radius: 7px; background: var(--carta); }
.uni .coppie .freccia { color: var(--verde); font-family: var(--sans); font-weight: 700; text-align: center; }
.uni .riga-coppia { display: grid; grid-template-columns: 1fr 18px 1fr; gap: 8px; align-items: center; margin-bottom: 8px; }
.uni .domanda .perche { display: block; font-family: var(--sans); font-size: 13px; color: var(--tenue); margin-top: 2px; }
.uni .domanda .traccia { margin-top: 12px; padding: 12px 14px; background: var(--carta); border-radius: 7px; font-size: 15px; }
.uni .domanda .traccia ul { list-style: disc; padding-left: 20px; margin-top: 6px; }
.uni .domanda .traccia li { margin: 2px 0; }
.uni .domanda .citazione { margin-top: 12px; padding: 10px 14px; border-left: 2px solid var(--riga-forte); font-family: var(--serif); font-style: italic; color: var(--tenue); font-size: 15px; }
.uni .domanda .citazione .dove { display: block; font-family: var(--sans); font-style: normal; font-size: 13px; margin-top: 4px; }
.uni .domanda .avvisi { margin-top: 12px; }
.uni .domanda .avvisi .nota { padding: 8px 12px; }
.uni .domanda .azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.uni .domanda .azioni .spazio { flex: 1; }
.uni .domanda .riscrivi { margin-top: 12px; padding: 14px; background: var(--carta); border-radius: 8px; }
.uni .domanda .riscrivi .suggerimenti { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 10px; }
.uni .domanda .modifica textarea { margin-bottom: 8px; }
.uni .domanda .modifica .riga-opzione { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; margin-bottom: 8px; }
.uni .domanda .modifica .riga-opzione input[type="radio"] { width: 18px; height: 18px; accent-color: var(--verde); }
.uni .domanda.in-lavoro { opacity: .6; pointer-events: none; }

/* ---------- prove ---------- */
.uni .prove { display: grid; gap: 10px; }
.uni .prova-riga { display: flex; align-items: center; gap: 16px; padding: 16px 20px; text-decoration: none; color: inherit; }
.uni .prova-riga:hover { border-color: var(--accento); color: inherit; }
.uni .prova-riga h3 { font-size: 17px; }
.uni .prova-riga .dettagli { font-size: 14px; color: var(--tenue); }
.uni .prova-riga .freccia { margin-left: auto; color: var(--tenue); }
/* I file in alto (sono il motivo per cui si apre la pagina), le impostazioni di lato, le domande
   sotto. Su telefono: file, impostazioni, domande. */
.uni .impaginazione-prova { display: grid; grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "scarica impostazioni" "online impostazioni" "domande impostazioni";
  grid-template-rows: auto auto 1fr; gap: 24px 28px; align-items: start; }
.uni .impaginazione-prova .scarica { grid-area: scarica; }
.uni .impaginazione-prova .online { grid-area: online; padding: 22px; display: grid; gap: 10px; }
.uni .consegne-prova { display: grid; gap: 8px; margin-top: 6px; }
.uni .consegna-riga { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--riga); border-radius: 8px;
  text-decoration: none; color: inherit; font-size: 14px; }
.uni .consegna-riga:hover { border-color: var(--accento); color: inherit; }
.uni .consegna-riga .dettagli { color: var(--tenue); flex: 1; min-width: 0; }
.uni .consegna-riga .dettagli b { color: var(--inchiostro); font-weight: 650; }
.uni .consegna-riga .freccia { color: var(--tenue); }
.uni .codice-piccolo { font-weight: 700; letter-spacing: .08em; font-variant-numeric: tabular-nums; background: var(--accento-tenue); color: var(--accento-scuro);
  border-radius: 6px; padding: 5px 9px; white-space: nowrap; }
.uni .impaginazione-prova .impostazioni { grid-area: impostazioni; }
.uni .impaginazione-prova .zona-domande { grid-area: domande; min-width: 0; }
.uni .impostazioni { padding: 22px; display: grid; gap: 14px; position: sticky; top: 132px; }
.uni .titoletto { font-size: 19px; }
.uni .griglia-campi.stretta { grid-template-columns: 1fr 1fr; gap: 12px; }
.uni .salvataggio { font-size: 13px; color: var(--tenue); min-height: 18px; }
.uni .scarica { padding: 22px; }
.uni .scarica .gruppo { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid var(--riga); }
.uni .scarica .gruppo:first-of-type { border-top: 0; padding-top: 6px; }
.uni .scarica .gruppo p { font-size: 14px; color: var(--tenue); }
.uni .scarica .pulsanti { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.uni .scarica h3 { font-family: var(--sans); font-size: 16px; font-weight: 650; margin-bottom: 2px; }
.uni .scarica .varianti { display: grid; gap: 6px; }
.uni .scarica .variante { display: flex; align-items: center; justify-content: flex-end; gap: 12px; font-size: 14px; font-weight: 600; }
.uni .scarica details.come { margin-top: 6px; font-size: 14px; }
.uni .scarica details.come summary { cursor: pointer; color: var(--accento); font-weight: 600; }
.uni .scarica details.come ol { margin: 8px 0 0 18px; display: grid; gap: 4px; color: var(--tenue); }
.uni .elenco-prova .parte { font-family: var(--sans); font-size: 13px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--tenue); margin: 10px 0 2px; }
.uni .elenco-prova .domanda .testata .numero { font-size: 15px; color: var(--inchiostro); }
.uni .elenco-aggiungi { display: grid; gap: 0; max-height: 60vh; overflow: auto; }
.uni .riga-aggiungi { display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-top: 1px solid var(--riga); }
.uni .riga-aggiungi:first-child { border-top: 0; }
.uni .elenco-prova .domanda { padding: 16px 18px; }
.uni .elenco-prova .numero { font-family: var(--sans); font-weight: 700; color: var(--tenue); margin-right: 6px; }
.uni .elenco-prova .punti-campo { width: 70px; display: inline-block; padding: 5px 8px; font-size: 14px; }

/* ---------- prova online: la pagina del docente ---------- */
.uni .co-azioni-testa { display: flex; align-items: center; gap: 14px; }
.uni .co-alto { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 18px; margin-bottom: 28px; align-items: start; }
.uni .co-condividi, .uni .co-numeri { padding: 22px; display: grid; gap: 12px; }
.uni .co-codice { font-family: var(--sans); font-size: 46px; font-weight: 700; letter-spacing: .12em; line-height: 1; color: var(--accento-scuro);
  font-variant-numeric: tabular-nums; }
.uni .co-link { display: flex; gap: 8px; }
.uni .co-link input { flex: 1; min-width: 0; font-size: 14px; color: var(--tenue); background: var(--carta); }
.uni .co-pulsanti { display: flex; gap: 8px; flex-wrap: wrap; }
.uni .co-classi ul { list-style: none; display: grid; gap: 4px; margin-top: 4px; font-size: 14px; }
.uni .co-classe { padding: 14px; background: var(--carta); border-radius: 8px; }
.uni .co-cifre { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin: 0; }
.uni .co-cifre div { border-top: 1px solid var(--riga); padding-top: 10px; }
.uni .co-cifre dt { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tenue); }
.uni .co-cifre dd { margin: 2px 0 0; font-family: var(--serif); font-size: 32px; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.uni .co-cifre p { font-size: 13px; color: var(--tenue); }
.uni .co-impostazioni { font-size: 14px; border-top: 1px solid var(--riga); padding-top: 10px; }
.uni .co-impostazioni summary { cursor: pointer; color: var(--accento); font-weight: 600; }
.uni .co-impostazioni[open] { display: grid; gap: 12px; }
.uni .co-impostazioni[open] summary { margin-bottom: 4px; }

.uni .co-peggiori { margin-bottom: 14px; }
.uni .co-distribuzione { padding: 20px 22px; margin-bottom: 14px; display: grid; gap: 10px; }
.uni .co-distribuzione h3 { font-family: var(--sans); font-size: 16px; font-weight: 650; }
.uni .co-barre { display: grid; grid-template-columns: repeat(10, 1fr); gap: 6px; height: 120px; align-items: end; }
.uni .co-colonna { display: grid; grid-template-rows: 18px 1fr 18px; height: 100%; text-align: center; font-size: 12px; color: var(--tenue); font-variant-numeric: tabular-nums; }
.uni .co-colonna i { align-self: end; display: block; background: var(--accento); border-radius: 3px 3px 0 0; min-height: 0; }
.uni .co-colonna .co-n { align-self: end; font-weight: 600; color: var(--inchiostro); }

.uni .co-stat .testata { gap: 8px; }
.uni .co-facilita { font-size: 12px; font-weight: 700; border-radius: 5px; padding: 2px 8px; font-variant-numeric: tabular-nums; }
.uni .co-facilita.alta { background: var(--verde-tenue); color: var(--verde); }
.uni .co-facilita.media { background: var(--ambra-tenue); color: var(--ambra); }
.uni .co-facilita.bassa { background: var(--rosso-tenue); color: var(--rosso); }
.uni .co-discr { font-size: 12px; font-weight: 600; border-radius: 5px; padding: 2px 8px; background: var(--carta); color: var(--tenue); border: 1px solid var(--riga); }
.uni .co-discr.buona { color: var(--verde); }
.uni .co-discr.negativa { background: var(--rosso-tenue); color: var(--rosso); border-color: transparent; }
.uni .co-opzioni { list-style: none; display: grid; gap: 6px; margin-top: 12px; }
.uni .co-opzioni li { display: grid; grid-template-columns: 22px minmax(0, 1fr) 140px 74px; gap: 10px; align-items: center; padding: 6px 8px; border-radius: 6px;
  font-family: var(--serif); font-size: 15px; line-height: 1.4; }
.uni .co-opzioni li.giusta { background: var(--verde-tenue); }
.uni .co-opzioni li.morta .co-opz-testo { color: var(--tenue); }
.uni .co-l { font-family: var(--sans); font-weight: 700; color: var(--tenue); }
.uni .co-ok { font-family: var(--sans); font-size: 12px; color: var(--verde); }
.uni .co-no { color: var(--rosso); }
.uni .co-avviso { display: block; font-family: var(--sans); font-style: normal; font-size: 12px; font-weight: 600; color: var(--ambra); margin-top: 2px; }
.uni .co-bar { height: 8px; background: var(--riga); border-radius: 99px; overflow: hidden; }
.uni .co-bar i { display: block; height: 100%; background: var(--tenue); border-radius: 99px; }
.uni .co-opzioni li.giusta .co-bar i { background: var(--verde); }
.uni .co-q { font-family: var(--sans); font-size: 14px; font-weight: 650; text-align: right; font-variant-numeric: tabular-nums; }
.uni .co-q small { font-weight: 400; color: var(--tenue); }
.uni .co-q-in { font-family: var(--sans); font-size: 13px; color: var(--accento); margin-left: 6px; }
.uni .co-lacune { list-style: none; display: grid; gap: 4px; margin-top: 10px; font-size: 15px; }
.uni .co-conti { margin-top: 12px; font-size: 13px; color: var(--tenue); }

.uni .co-tabella-contenitore { overflow-x: auto; }
.uni .co-tabella { width: 100%; border-collapse: collapse; font-size: 15px; }
.uni .co-tabella th, .uni .co-tabella td { text-align: left; padding: 11px 14px; border-top: 1px solid var(--riga); vertical-align: top; }
.uni .co-tabella thead th { border-top: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tenue); }
.uni .co-tabella tbody th { font-weight: 650; }
.uni .co-tabella .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.uni .co-riga { cursor: pointer; }
.uni .co-riga:hover, .uni .co-riga.aperta { background: var(--accento-tenue); }
.uni .co-dettaglio td { background: var(--carta); padding: 16px; }
.uni .co-segno { display: inline-block; font-size: 12px; font-weight: 600; border-radius: 5px; padding: 1px 7px; background: var(--carta); color: var(--tenue);
  border: 1px solid var(--riga); white-space: nowrap; }
.uni .co-segno.in-corso { background: var(--accento-tenue); color: var(--accento); border-color: transparent; }
.uni .co-segno.attesa { background: var(--ambra-tenue); color: var(--ambra); border-color: transparent; }
.uni .co-segno.ai { background: var(--accento-tenue); color: var(--accento); border-color: transparent; }
.uni .co-risposte { display: grid; gap: 10px; }
.uni .co-risposta { background: var(--superficie); border: 1px solid var(--riga); border-left: 3px solid var(--riga-forte); border-radius: 8px; padding: 12px 14px; }
.uni .co-risposta.giusta { border-left-color: var(--verde); }
.uni .co-risposta.sbagliata { border-left-color: var(--rosso); }
.uni .co-risposta.parziale, .uni .co-risposta.da_correggere { border-left-color: var(--ambra); }
.uni .co-r-testa { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.uni .co-stato { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; border-radius: 4px; padding: 1px 6px; background: var(--carta); color: var(--tenue); }
.uni .co-stato.giusta { background: var(--verde-tenue); color: var(--verde); }
.uni .co-stato.sbagliata { background: var(--rosso-tenue); color: var(--rosso); }
.uni .co-stato.parziale, .uni .co-stato.da_correggere { background: var(--ambra-tenue); color: var(--ambra); }
.uni .co-r-domanda { font-family: var(--serif); font-size: 15px; color: var(--tenue); margin-top: 6px; }
.uni .co-r-data { margin-top: 6px; font-size: 15px; }
.uni .co-giusta { color: var(--verde); font-size: 14px; }
.uni .co-mini { list-style: none; display: grid; gap: 2px; font-size: 14px; }
.uni .co-mini li.ok::before { content: "✓ "; color: var(--verde); font-weight: 700; }
.uni .co-mini li.no::before { content: "✗ "; color: var(--rosso); font-weight: 700; }
.uni .co-testo-aperta { font-family: var(--serif); font-size: 16px; line-height: 1.55; white-space: pre-line; background: var(--carta); border-radius: 7px; padding: 10px 12px; margin-top: 6px; }
.uni .co-correggi { display: grid; gap: 8px; margin-top: 10px; }
.uni .co-correggi-riga { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.uni .co-correggi-riga label { display: flex; align-items: center; gap: 8px; margin: 0; }
.uni .co-correggi-riga input { width: 90px; }
.uni .co-commento { margin: 0; font-weight: 600; }
.uni .co-commento textarea { margin-top: 4px; font-family: var(--sans); font-size: 15px; min-height: 60px; }
.uni .co-scelta-aperta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.uni .co-scelta-aperta button { font-family: var(--sans); font-size: 14px; font-weight: 600; background: var(--superficie); border: 1px solid var(--riga-forte); border-radius: 999px;
  padding: 7px 14px; cursor: pointer; color: var(--inchiostro); }
.uni .co-scelta-aperta button.attiva { background: var(--inchiostro); border-color: var(--inchiostro); color: #fff; }
.uni .co-scelta-aperta .conta { font-weight: 700; color: var(--ambra); margin-left: 2px; }
.uni .co-scelta-aperta button.attiva .conta { color: #F5D08A; }
.uni .co-traccia { padding: 20px 22px; display: grid; gap: 10px; margin-bottom: 14px; }
.uni .co-traccia details { font-size: 15px; }
.uni .co-traccia summary { cursor: pointer; font-weight: 650; }
.uni .co-traccia details p { margin-top: 6px; color: var(--tenue); }
.uni .co-traccia ol { margin: 6px 0 0 20px; list-style: decimal; color: var(--tenue); display: grid; gap: 2px; }
.uni .co-ai { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--riga); }
.uni .po-rotella-mini { display: inline-block; width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
  vertical-align: -1px; animation: po-gira-uni .8s linear infinite; }
@keyframes po-gira-uni { to { transform: rotate(360deg); } }
.uni .co-aperte { display: grid; gap: 10px; }
.uni .co-aperta { padding: 16px 18px; }

/* a tutto schermo, per il proiettore: fuori da .uni, colori dichiarati */
.uni-dialogo.co-proiezione { max-width: none; width: 100vw; height: 100vh; max-height: none; margin: 0; inset: 0; border-radius: 0; background: #FFFFFF; }
.uni-dialogo.co-proiezione .dentro { height: 100%; display: grid; place-items: center; padding: 24px; }
.co-pr { display: grid; justify-items: center; gap: 10px; text-align: center; font-family: "Source Sans 3", -apple-system, "Segoe UI", sans-serif; color: #15171B; }
.co-pr-titolo { font-family: "Source Serif 4", Georgia, serif; font-size: clamp(22px, 3vw, 36px); font-weight: 600; margin: 0; }
.co-pr-vai { font-size: clamp(20px, 2.6vw, 32px); color: #5B6068; margin: 0; }
.co-pr-vai b { color: #15171B; }
.co-pr-codice { font-size: clamp(64px, 13vw, 190px); font-weight: 700; letter-spacing: .1em; line-height: 1; color: #152E57; margin: 4px 0; font-variant-numeric: tabular-nums; }
.co-pr-qr { width: min(34vh, 320px); }
.co-pr-qr svg { width: 100%; height: auto; display: block; }
.co-pr-nota { font-size: 18px; color: #5B6068; margin: 0; }
.co-pr-chiudi { margin-top: 10px; font: inherit; font-size: 16px; font-weight: 600; background: #fff; color: #15171B; border: 1px solid #CBC8C0; border-radius: 8px; padding: 10px 18px; cursor: pointer; }

@media (max-width: 860px) {
  .uni .co-alto { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .uni .co-codice { font-size: 38px; }
  .uni .co-opzioni li { grid-template-columns: 20px minmax(0, 1fr) 64px; }
  .uni .co-opzioni li .co-bar { display: none; }
  .uni .co-cifre dd { font-size: 26px; }
}

/* ---------- la finestra del premium ---------- */
.uni-premium h2 { font-size: 24px; }
.uni-premium .uni-premium-cosa { list-style: none; display: grid; gap: 6px; margin: 4px 0 0; padding: 0; font-size: 15px; }
.uni-premium .uni-premium-cosa li { padding-left: 22px; position: relative; }
.uni-premium .uni-premium-cosa li::before { content: "✓"; position: absolute; left: 0; color: var(--verde); font-weight: 700; }
.uni-premium .uni-premium-prezzo { font-size: 15px; background: var(--accento-tenue); color: var(--accento-scuro); border-radius: 8px; padding: 10px 12px; }

/* ---------- dialogo ---------- */
.uni-dialogo { border: 0; border-radius: 12px; padding: 0; max-width: min(560px, calc(100vw - 32px)); width: 100%;
  box-shadow: 0 20px 60px rgba(21,23,27,.25); }
.uni-dialogo::backdrop { background: rgba(21,23,27,.45); }
/* Il reset del sito (* { margin: 0 }) toglie il margin:auto dei dialoghi: senza, stanno in alto a sinistra. */
.uni-dialogo { margin: auto; }
.uni-dialogo .piede-dialogo { flex-wrap: wrap; }
.uni .schede, .uni .co-stat { scroll-margin-top: 130px; }
.uni-dialogo .dentro { padding: 26px; display: grid; gap: 16px; }
.uni-dialogo .piede-dialogo { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }
.uni-dialogo .elenco-scelta { max-height: 50vh; overflow: auto; display: grid; gap: 6px; }
.uni-dialogo .elenco-scelta label { display: grid; grid-template-columns: auto 1fr; gap: 10px; font-weight: 400; font-family: "Source Serif 4", Georgia, serif;
  font-size: 15px; padding: 10px; border: 1px solid #E3E1DB; border-radius: 7px; cursor: pointer; }

/* ---------- vetrina ---------- */
.uni .eroe { padding: 72px 0 56px; border-bottom: 1px solid var(--riga); background: var(--superficie); }
.uni .eroe .contenitore { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; }
.uni .eroe h1 { font-size: 46px; line-height: 1.08; letter-spacing: -0.02em; }
.uni .eroe .sotto { font-size: 19px; color: var(--tenue); margin: 20px 0 28px; max-width: 34em; }
.uni .eroe .inviti { display: flex; gap: 10px; flex-wrap: wrap; }
.uni .eroe .inviti .uni-btn { padding: 14px 22px; font-size: 16px; }
.uni .esempio { padding: 22px; box-shadow: 0 18px 50px rgba(21,23,27,.08); }
.uni .esempio .domanda { padding: 0; border-left: 0; }
.uni .blocco { padding: 64px 0; border-bottom: 1px solid var(--riga); }
.uni .blocco h2 { font-size: 30px; max-width: 22em; }
.uni .blocco .guida { color: var(--tenue); font-size: 17px; max-width: 40em; margin-top: 10px; }
.uni .passi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 36px; list-style: none; counter-reset: passo; }
.uni .passi li { counter-increment: passo; border-top: 2px solid var(--inchiostro); padding-top: 16px; }
.uni .passi li::before { content: counter(passo); font-family: var(--serif); font-size: 15px; font-weight: 700; color: var(--accento); display: block; margin-bottom: 6px; }
.uni .passi h3 { margin-bottom: 6px; }
.uni .passi p { color: var(--tenue); font-size: 15px; }
.uni .cosa { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; margin-top: 30px; }
.uni .cosa div { padding: 18px 0; border-top: 1px solid var(--riga); }
.uni .cosa h3 { font-family: var(--sans); font-size: 16px; font-weight: 650; margin-bottom: 4px; }
.uni .cosa p { color: var(--tenue); font-size: 15px; }
.uni .confronto { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 30px; }
.uni .confronto .uni-carta { padding: 22px; }
.uni .confronto h3 { font-family: var(--sans); font-size: 16px; font-weight: 650; margin-bottom: 8px; }
.uni .confronto p { color: var(--tenue); font-size: 15px; }
.uni .prezzo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 30px; }
.uni .prezzo .uni-carta { padding: 24px; }
.uni .prezzo ul { list-style: none; display: grid; gap: 8px; margin-top: 12px; font-size: 15px; }
.uni .prezzo li { padding-left: 20px; position: relative; }
.uni .prezzo li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--accento); }
.uni .domande-frequenti { margin-top: 24px; display: grid; gap: 0; }
.uni .domande-frequenti details { border-top: 1px solid var(--riga); padding: 16px 0; }
.uni .domande-frequenti summary { cursor: pointer; font-weight: 650; font-size: 16px; list-style: none; }
.uni .domande-frequenti summary::-webkit-details-marker { display: none; }
.uni .domande-frequenti summary::after { content: "+"; float: right; color: var(--tenue); font-weight: 400; }
.uni .domande-frequenti details[open] summary::after { content: "−"; }
.uni .domande-frequenti p { color: var(--tenue); margin-top: 8px; font-size: 15px; max-width: 46em; }
.uni .finale { padding: 64px 0 80px; }

/* ---------- piè di pagina ---------- */
.uni-piede { background: #FFFFFF; border-top: 1px solid #E3E1DB; font-family: "Source Sans 3", sans-serif; font-size: 14px; color: #5B6068; }
.uni-piede .dentro { max-width: 1060px; margin: 0 auto; padding: 22px 24px; display: flex; gap: 18px; flex-wrap: wrap; justify-content: space-between; }
.uni-piede a { color: #5B6068; }

/* ---------- formule ---------- */
.uni .katex { font-size: 1.02em; }

/* ---------- schermi stretti ---------- */
@media (max-width: 860px) {
  .uni .eroe .contenitore { grid-template-columns: 1fr; }
  .uni .eroe h1 { font-size: 36px; }
  .uni .passi, .uni .cosa, .uni .confronto, .uni .prezzo { grid-template-columns: 1fr; }
  .uni .impaginazione-prova { grid-template-columns: minmax(0, 1fr); grid-template-areas: "scarica" "online" "impostazioni" "domande"; grid-template-rows: none; }
  .uni .impostazioni { position: static; }
}
@media (max-width: 600px) {
  .uni .contenitore, .uni-testa-dentro, .uni-piede .dentro { padding-left: 16px; padding-right: 16px; }
  .uni h1 { font-size: 28px; }
  .uni .eroe { padding: 44px 0 36px; }
  .uni .eroe h1 { font-size: 31px; }
  .uni .blocco { padding: 44px 0; }
  .uni .blocco h2 { font-size: 24px; }
  .uni-testa-dentro { gap: 14px; }
  .uni-testa nav { gap: 0; }
  .uni-testa nav a + a { display: none; }
  .uni-testa nav a { font-size: 14px; }
  .uni-marchio b { font-size: 18px; }
  .uni-marchio span { font-size: 11px; }
  .uni-account > span { display: none; }
  .uni .domanda { padding: 16px; }
  .uni .materiale { flex-wrap: wrap; }
  .uni .materiale .azioni { margin-left: 0; }
  .uni .scarica .gruppo { grid-template-columns: 1fr; }
  .uni .scarica .pulsanti { justify-content: flex-start; }
  .uni .scarica .variante { justify-content: space-between; }
  .uni .riga-aggiungi { grid-template-columns: 1fr; gap: 6px; }
  .uni .carica { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .uni *, .uni-avviso { transition: none !important; animation: none !important; }
}
