/* Override del pannello AI Underscore: nero ink e viola del marchio (come underscore.sm) */
:root {
  --admin-scuro:   #0E1113;      /* ink */
  --admin-scuro-2: #1b2024;
  --ambra:         #9B7BFF;      /* nome storico: ora è il viola chiaro, leggibile su fondo scuro */
  --viola:         #7448FF;
  --viola-forte:   #5f34e6;
}

.sidebar { background: var(--admin-scuro); border-right: none; }
.sidebar .logo { color: #fff; }
.sidebar .logo small { color: #9a9a9a; }
.nav-sezione { color: #7d7d7d; }
.nav-voce { color: #c4c4c4; }
.nav-voce svg { opacity: .65; }
.nav-voce:hover { background: var(--admin-scuro-2); color: #fff; }
.nav-voce.attiva { background: var(--admin-scuro-2); color: var(--ambra); }
.nav-voce.sotto { padding-left: 40px; font-size: 13px; position: relative; }
.nav-voce.sotto::before { content: ''; position: absolute; left: 22px; top: 0; bottom: 0; width: 1px; background: rgba(255, 255, 255, .12); }
.nav-voce.sotto svg { width: 15px; height: 15px; }
.cedimp-tab input { padding: 5px 8px; font-size: 13px; width: 100%; }
.cedimp-tab td { vertical-align: middle; }
.sidebar .fondo { color: #7d7d7d; border-top-color: rgba(255, 255, 255, .08); }

.topbar { border-bottom: 2px solid var(--viola); }
.badge-admin {
  font-size: 11px; font-weight: 800; letter-spacing: .06em;
  background: var(--viola); color: #fff;
  padding: 3px 10px; border-radius: 3px; font-family: var(--font-titoli); font-weight: 500; letter-spacing: 2px;
}
.schermo-accesso {
  background:
    radial-gradient(62% 72% at 16% 24%, rgba(116, 72, 255, .42) 0%, rgba(116, 72, 255, 0) 62%),
    radial-gradient(58% 62% at 82% 78%, rgba(34, 82, 164, .34) 0%, rgba(34, 82, 164, 0) 66%),
    #0E1113;
}
.pannello-accesso .logo-grande { color: var(--admin-scuro); }

.permessi-griglia { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; margin: 6px 0 12px; }
.permessi-griglia label { display: flex; align-items: center; gap: 8px; font-weight: 500; font-size: 13.5px; color: var(--testo); }
.permessi-griglia input { width: auto; }
.permessi-livelli { display: grid; grid-template-columns: 1fr; gap: 4px; margin: 0 0 12px; }
.permessi-livelli .campo { margin-bottom: 4px; }
.permesso-riga { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--testo-2); margin-right: 8px; white-space: nowrap; }

/* ---------- 2FA ---------- */
.qr-2fa { width: 196px; height: 196px; margin: 0 auto 12px; padding: 10px; background: #fff; border: 1px solid var(--bordo); border-radius: 12px; box-sizing: content-box; }
.qr-2fa svg { display: block; width: 100%; height: 100%; }
.segreto-2fa {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 17px; letter-spacing: .08em;
  background: var(--sfondo); border: 1px dashed var(--bordo); border-radius: 10px; padding: 12px 14px;
  text-align: center; cursor: pointer; user-select: all; word-break: break-all;
}
.codici-recupero { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; margin: 12px 0 4px; }
.codici-recupero code { font-size: 15px; background: var(--sfondo); padding: 6px 10px; border-radius: 7px; text-align: center; }

/* ---------- servizi / salute ---------- */
.servizi { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.servizio { border: 1px solid var(--bordo); border-radius: 10px; padding: 10px 12px; background: var(--superficie); }
.servizio .nome { font-size: 12px; font-weight: 700; color: var(--testo-2); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }

/* ============================================================
   Sezione Corsi (js/modules/corsi*.js)
   ============================================================ */
.briciole { font-size: 13px; color: var(--testo-3); margin: -4px 0 12px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.briciole a { color: var(--testo-2); }
.btn svg { width: 15px; height: 15px; flex: 0 0 auto; }
.btn.icona { padding: 5px 7px; }
.btn.disabilitato, a.btn.disabilitato { opacity: .45; pointer-events: none; }
.mini-tasto {
  background: none; border: 1px solid transparent; border-radius: 6px; cursor: pointer; color: var(--testo-3);
  font: inherit; font-size: 14px; line-height: 1; padding: 3px 6px; display: inline-flex; align-items: center;
}
.mini-tasto:hover { background: var(--griglia); color: var(--testo); }
.mini-tasto svg { width: 15px; height: 15px; }
.stato-salvataggio { font-size: 12px; color: var(--testo-3); white-space: nowrap; }
.stato-salvataggio.ok { color: var(--ok); }
.stato-salvataggio.err { color: var(--errore); font-weight: 600; }

/* tipologia scenetta */
.badge-tipo {
  display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  font-size: 11.5px; font-weight: 700; padding: 2.5px 9px 2.5px 7px; border-radius: 20px;
  background: color-mix(in srgb, var(--tipo) 13%, white); color: color-mix(in srgb, var(--tipo) 78%, black);
}
.badge-tipo svg { width: 13px; height: 13px; }
.legenda-tipi { display: flex; flex-wrap: wrap; gap: 6px; }

/* preparazione */
.barra-prep { flex: 1; height: 7px; border-radius: 10px; background: var(--griglia); overflow: hidden; min-width: 60px; }
.barra-prep > div { height: 100%; border-radius: 10px; transition: width .3s ease; }
.barra-prep.verde > div { background: var(--ok); }
.barra-prep.giallo > div { background: #e0a21e; }
.barra-prep.rosso > div { background: #e0677a; }
.prep-voci { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.prep-voce { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; padding: 2px 8px; border-radius: 6px; background: var(--sfondo); color: var(--testo-2); }
.prep-voce b { font-variant-numeric: tabular-nums; }
.prep-voce.ok { background: var(--ok-bg); color: var(--ok); }
.prep-voce.parziale { background: var(--attenzione-bg); color: var(--attenzione); }
.prep-voce.vuoto { background: var(--errore-bg); color: var(--errore); }
.prep-grande { display: flex; flex-direction: column; gap: 5px; margin-bottom: 4px; }
.prep-grande b { font-size: 26px; line-height: 1; }

/* scheda corso */
.corso-testata h1 { font-size: 23px; }
.corso-testata-riga { align-items: flex-start; flex-wrap: wrap; }
.select-stato { width: auto; font-weight: 650; font-size: 13px; border-radius: 20px; padding: 5px 12px; }
.select-stato.stato-in_preparazione { background: var(--attenzione-bg); color: var(--attenzione); border-color: transparent; }
.select-stato.stato-pronto { background: var(--ok-bg); color: var(--ok); border-color: transparent; }
.select-stato.stato-bozza, .select-stato.stato-archiviato { background: #eef1f5; color: var(--testo-2); border-color: transparent; }
.corso-corpo { display: grid; grid-template-columns: 1fr 250px; gap: 20px; margin-top: 14px; }
.corso-corpo .dettaglio-griglia { grid-template-columns: 1fr 1fr; margin: 0; align-content: start; }
.corso-numeri { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: var(--sfondo); border-radius: 10px; padding: 12px 14px; align-content: start; }
.corso-numeri .k { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--testo-3); font-weight: 700; }
.corso-numeri .v { font-size: 20px; font-weight: 750; }
.corso-prep { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 4px; }
@media (max-width: 860px) { .corso-corpo, .corso-corpo .dettaglio-griglia { grid-template-columns: 1fr; } }

.giornate-lista { display: flex; flex-direction: column; gap: 10px; }
.giornata-card {
  display: grid; grid-template-columns: auto 40px 1fr 110px 170px auto; align-items: center; gap: 14px;
  padding: 14px 16px; cursor: pointer; transition: border-color .12s;
}
.giornata-card:hover { border-color: #c9d6e6; }
.giornata-num {
  width: 36px; height: 36px; border-radius: 10px; background: var(--admin-scuro); color: var(--ambra);
  display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 16px;
}
.giornata-num.grande { width: 46px; height: 46px; font-size: 21px; border-radius: 12px; flex: 0 0 auto; }
.giornata-titolo { font-weight: 700; font-size: 15.5px; }
.giornata-desc { margin-top: 2px; }
.giornata-durata { text-align: right; font-variant-numeric: tabular-nums; }
.giornata-durata b { font-size: 20px; }
.giornata-durata span { color: var(--testo-3); font-size: 12.5px; margin-left: 3px; }
.giornata-durata.oltre b { color: var(--errore); }
.giornata-azioni { display: flex; gap: 6px; }
@media (max-width: 980px) {
  .giornata-card { grid-template-columns: auto 40px 1fr auto; }
  .giornata-durata, .giornata-prep { grid-column: 3; text-align: left; }
}

/* editor giornata: testata */
.giornata-testata-riga { align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.titolo-inline {
  font: inherit; font-size: 22px; font-weight: 750; border: 1px solid transparent !important; background: transparent !important;
  padding: 2px 6px !important; margin-left: -6px; border-radius: 8px; width: 100%;
}
.titolo-inline:hover { border-color: var(--bordo) !important; }
.titolo-inline:focus { border-color: var(--accento) !important; background: var(--superficie) !important; }
.titolo-inline.grande { font-size: 20px; margin: 0 0 8px -6px; }
.desc-inline {
  border: 1px solid transparent !important; background: transparent !important; resize: none; overflow: hidden;
  padding: 2px 6px !important; margin-left: -6px; color: var(--testo-2); line-height: 1.45; min-height: 26px;
}
.desc-inline:hover { border-color: var(--bordo) !important; }
.desc-inline:focus { border-color: var(--accento) !important; background: var(--superficie) !important; }
.giornata-comandi { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.naviga-giornate { display: inline-flex; align-items: center; gap: 4px; }
.durata-riga { display: flex; align-items: baseline; gap: 14px; margin: 14px 0 8px; flex-wrap: wrap; }
.durata-testo { font-size: 15px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.durata-testo b { font-size: 17px; font-variant-numeric: tabular-nums; }
.durata-testo.oltre b { color: var(--errore); }
.durata-testo.giusta b { color: var(--ok); }
.chip-oltre { background: var(--errore); color: #fff; font-weight: 700; font-size: 12.5px; padding: 2px 10px; border-radius: 20px; }
.chip-ok { background: var(--ok-bg); color: var(--ok); font-weight: 700; font-size: 12.5px; padding: 2px 10px; border-radius: 20px; }
.durata-prevista { font-size: 12.5px; color: var(--testo-3); display: inline-flex; align-items: center; gap: 5px; margin-left: auto; }
.durata-prevista input { width: 66px; padding: 3px 6px; text-align: right; }

.ritmo-striscia {
  position: relative; display: flex; height: 22px; border-radius: 7px; overflow: visible; background: var(--griglia); gap: 2px;
}
.ritmo-striscia .seg { background: var(--tipo); height: 100%; cursor: pointer; transition: filter .1s; min-width: 3px; }
.ritmo-striscia .seg:first-child { border-radius: 7px 0 0 7px; }
.ritmo-striscia .seg:hover { filter: brightness(1.15); }
.ritmo-striscia .seg.oltre { background: repeating-linear-gradient(135deg, var(--tipo) 0 5px, color-mix(in srgb, var(--tipo) 45%, white) 5px 9px); }
.ritmo-striscia .seg.vuoto { background: repeating-linear-gradient(135deg, var(--griglia) 0 5px, #fff 5px 9px); cursor: default; border-radius: 0 7px 7px 0; }
.ritmo-striscia .marcatore { position: absolute; top: -5px; bottom: -5px; width: 2px; background: var(--admin-scuro); margin-left: -1px; border-radius: 2px; }
.avvisi-ritmo { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.avvisi-ritmo:empty { display: none; }
.avviso-chip { font-size: 12.5px; padding: 4px 10px; border-radius: 8px; font-weight: 550; }
.avviso-chip.err { background: var(--errore-bg); color: var(--errore); }
.avviso-chip.warn { background: var(--attenzione-bg); color: var(--attenzione); }
.avviso-chip.info { background: var(--blu-chiaro); color: var(--blu-forte); }

/* editor giornata: timeline */
.giornata-griglia { display: grid; grid-template-columns: 1fr 290px; gap: 16px; margin-top: 16px; align-items: start; }
.giornata-lato { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 70px; }
@media (max-width: 1100px) { .giornata-griglia { grid-template-columns: 1fr; } .giornata-lato { position: static; } }
.timeline-card { padding: 14px 14px 8px 6px; }
.scena { display: grid; grid-template-columns: 58px 34px 1fr; min-height: var(--altezza); }
.scena-orario { text-align: right; padding-top: 10px; font-variant-numeric: tabular-nums; line-height: 1.25; }
.scena-orario b { display: block; font-size: 14px; }
.scena-orario span { font-size: 11.5px; color: var(--testo-3); }
.scena-asse { position: relative; display: flex; justify-content: center; }
.scena-asse::before { content: ''; position: absolute; top: 0; bottom: 0; width: 3px; background: color-mix(in srgb, var(--tipo) 35%, white); }
.scena:first-child .scena-asse::before { top: 12px; }
.scena-pallino {
  position: relative; margin-top: 8px; width: 26px; height: 26px; border-radius: 50%; background: var(--tipo); color: #fff;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 3px var(--superficie);
}
.scena-pallino svg { width: 14px; height: 14px; }
.scena-card {
  margin: 3px 0 6px 6px; padding: 9px 12px 10px; border-radius: 10px; border: 1px solid var(--bordo);
  border-left: 4px solid var(--tipo); background: var(--superficie); cursor: pointer; min-width: 0;
  transition: border-color .12s, box-shadow .12s, background .12s;
}
.scena-card:hover { box-shadow: var(--ombra); border-color: color-mix(in srgb, var(--tipo) 45%, var(--bordo)); border-left-color: var(--tipo); }
.scena.aperta .scena-card { background: color-mix(in srgb, var(--tipo) 7%, white); box-shadow: 0 0 0 2px color-mix(in srgb, var(--tipo) 45%, white); }
.scena.lampeggia .scena-card { animation: lampeggia 1.1s ease; }
@keyframes lampeggia { 30% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--tipo) 45%, white); } }
.scena.natura-pausa .scena-card { background: #fafbfc; border-style: dashed; border-left-style: solid; }
.scena.oltre .scena-orario b { color: var(--errore); }
.scena.oltre .scena-card { background: repeating-linear-gradient(135deg, #fff 0 10px, #fdf5f6 10px 20px); }
.scena-riga { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.scena-riga .spazio { flex: 1; }
.scena-num {
  min-width: 22px; height: 22px; border-radius: 6px; background: var(--admin-scuro); color: #fff; font-size: 12px; font-weight: 750;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 4px;
}
.scena-durata { display: inline-flex; align-items: center; gap: 2px; font-size: 12.5px; color: var(--testo-2); font-variant-numeric: tabular-nums; }
.scena-durata .mini-tasto { opacity: 0; padding: 1px 5px; }
.scena-card:hover .scena-durata .mini-tasto { opacity: 1; }
.scena-indicatori { display: inline-flex; gap: 4px; }
.ind { display: inline-flex; align-items: center; gap: 2px; font-size: 11px; font-weight: 700; padding: 1px 5px; border-radius: 5px; }
.ind svg { width: 12px; height: 12px; }
.ind.si { color: var(--ok); background: var(--ok-bg); }
.ind.no { color: var(--testo-3); background: var(--griglia); }
.ind.attenzione { color: var(--attenzione); background: var(--attenzione-bg); }
.scena-titolo { font-weight: 700; font-size: 15px; margin-top: 5px; }
.scena-desc { font-size: 13px; color: var(--testo-2); margin-top: 1px; }
.scena-messaggio { font-size: 12.5px; color: var(--testo-3); margin-top: 3px; font-style: italic; }
.fine-prevista { display: grid; grid-template-columns: 58px 34px 1fr; margin: 2px 0 6px; }
.fine-prevista span {
  grid-column: 2 / -1; font-size: 12px; font-weight: 700; color: var(--errore); padding: 4px 10px;
  border-top: 2px dashed var(--errore); background: var(--errore-bg); border-radius: 0 0 8px 8px;
}
.aggiungi-scena { display: flex; gap: 8px; align-items: center; margin: 8px 0 4px 92px; padding: 8px; border: 1px dashed var(--bordo); border-radius: 10px; flex-wrap: wrap; }
.aggiungi-scena input[name=titolo] { flex: 1; min-width: 180px; }
.aggiungi-scena select { width: auto; }
.aggiungi-scena input[name=durata] { width: 64px; }
.aggiungi-piu { color: var(--testo-3); font-size: 20px; line-height: 1; padding: 0 2px; }
.distr-riga { display: grid; grid-template-columns: 96px 1fr 36px; gap: 8px; align-items: center; font-size: 12.5px; margin: 6px 0; }
.distr-riga b { text-align: right; font-variant-numeric: tabular-nums; }
.distr-barra { height: 8px; background: var(--griglia); border-radius: 8px; overflow: hidden; }
.distr-barra > div { height: 100%; border-radius: 8px; }
@media (max-width: 700px) {
  .scena, .fine-prevista { grid-template-columns: 44px 26px 1fr; }
  .scena-orario b { font-size: 12.5px; }
  .scena-orario span { font-size: 10.5px; }
  .scena-pallino { width: 22px; height: 22px; }
  .aggiungi-scena { margin-left: 0; }
}

/* drawer scenetta */
.drawer-testata { border-top: 4px solid var(--tipo, var(--blu)); }
.drawer-orario { font-weight: 650; font-variant-numeric: tabular-nums; }
.drawer-tabs { margin-bottom: 14px; }
.tab-conta { font-size: 11px; background: var(--griglia); color: var(--testo-2); border-radius: 10px; padding: 0 6px; margin-left: 2px; }
.tab-conta:empty { display: none; }
.tab-segno svg { width: 13px; height: 13px; color: var(--ok); vertical-align: -2px; }
.campo-messaggio input { border-color: #f0d49a; background: #fffaf0; font-weight: 600; }
.materiali-lista { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.materiale { border: 1px solid var(--bordo); border-radius: 10px; padding: 8px 10px; background: var(--superficie); }
.materiale-testa { display: flex; gap: 8px; align-items: center; }
.materiale-testa select { width: 140px; flex: 0 0 auto; }
.materiale-testa input { font-weight: 600; }
.materiale-icona { display: inline-flex; color: var(--blu); }
.materiale-icona svg { width: 18px; height: 18px; }
.materiale-corpo { margin: 8px 0 0 30px; display: flex; flex-direction: column; gap: 6px; }
.materiale-corpo input, .materiale-corpo textarea { font-size: 13px; padding: 5px 8px; }
.materiale-sorgente { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.materiale-sorgente > input { flex: 1; min-width: 200px; }
.materiale-sorgente.colonna { flex-direction: column; align-items: stretch; }
.materiale-sorgente.colonna .btn { align-self: flex-start; }
.materiale-file { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; background: var(--sfondo); border-radius: 7px; padding: 3px 4px 3px 9px; }
.slide-layout { display: grid; grid-template-columns: 170px 1fr; gap: 16px; align-items: start; }
.slide-elenco { display: flex; flex-direction: column; gap: 8px; }
.slide-voce { position: relative; border: 2px solid transparent; border-radius: 9px; cursor: pointer; padding: 2px; }
.slide-voce.selezionata { border-color: var(--accento); }
.slide-voce .maniglia { position: absolute; right: 4px; top: 4px; z-index: 2; background: rgba(255, 255, 255, .85); }
.slide-n { position: absolute; left: 6px; top: 5px; z-index: 2; font-size: 10.5px; font-weight: 800; color: var(--testo-3); }
.slide-grande { margin-bottom: 14px; }
@media (max-width: 700px) { .slide-layout { grid-template-columns: 1fr; } .slide-elenco { flex-direction: row; overflow-x: auto; } .slide-voce { width: 150px; flex: 0 0 auto; } }

/* anteprima slide 16:9 — i testi scalano con la larghezza (unità cqw) */
.slide-anteprima {
  container-type: inline-size; aspect-ratio: 16 / 9; position: relative; overflow: hidden;
  background: #fff; border: 1px solid var(--bordo); border-radius: 8px; display: grid; grid-template-columns: 1fr;
  box-shadow: 0 2px 8px rgba(10, 25, 45, .06);
}
.slide-anteprima.con-immagine { grid-template-columns: 1.25fr 1fr; }
.slide-anteprima::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 1.4cqw; background: var(--admin-scuro); }
.slide-testo { padding: 7cqw 6cqw 6cqw 8cqw; min-width: 0; }
.slide-titolo { font-size: 5.2cqw; font-weight: 800; color: var(--admin-scuro); line-height: 1.12; }
.slide-titolo::after { content: ''; display: block; width: 9cqw; height: .8cqw; background: var(--viola); margin-top: 2cqw; }
.slide-sottotitolo { font-size: 2.8cqw; color: var(--testo-2); margin-top: 2cqw; }
.slide-anteprima ul { margin: 3cqw 0 0; padding-left: 3.2cqw; font-size: 2.6cqw; line-height: 1.45; color: var(--testo); }
.slide-immagine { display: flex; align-items: center; justify-content: center; background: var(--sfondo); }
.slide-immagine img { width: 100%; height: 100%; object-fit: cover; }
.slide-marchio { position: absolute; right: 3cqw; bottom: 2.2cqw; font-size: 1.8cqw; font-weight: 800; color: var(--testo-3); letter-spacing: .04em; }
.slide-anteprima.piccola { border-radius: 6px; }

/* risultati AI */
.ai-esito { margin-top: 6px; }
.ai-attesa { display: flex; align-items: center; gap: 10px; color: var(--testo-2); padding: 20px 4px; }
.rotella { width: 18px; height: 18px; border-radius: 50%; border: 2.5px solid var(--griglia); border-top-color: var(--accento); animation: gira .8s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.ai-testo { max-height: 52vh; overflow-y: auto; background: var(--sfondo); border-radius: 10px; padding: 14px 16px; }
.ai-azioni { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.ai-scenette { display: flex; flex-direction: column; gap: 6px; max-height: 52vh; overflow-y: auto; }
.ai-scenetta { display: flex; gap: 8px; align-items: flex-start; padding: 8px; border: 1px solid var(--bordo); border-radius: 9px; }
.ai-slide { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }

/* Assistente AI: scelta del motore */
.ai-richiesta { grid-template-columns: 1fr 300px; }
@media (max-width: 700px) { .ai-richiesta { grid-template-columns: 1fr; } }
.ai-provenienza { font-size: 12px; color: var(--testo-3); margin-top: 8px; }
.ai-motori { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
table.ai-funzioni tr.ai-sezione td { background: #fafbfd; }
table.ai-funzioni td.ai-funzione { padding-left: 26px; }
table.ai-funzioni select { padding: 5px 8px; font-size: 13px; }

/* Gioco «Quale l'ha fatta l'AI?» (slide quiz_ai) */
.slide-anteprima.quiz .slide-testo { padding: 5cqw 5cqw 5cqw 6.5cqw; display: flex; flex-direction: column; }
.slide-anteprima.quiz .slide-titolo { font-size: 4.2cqw; }
.quiz-testi { display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 2cqw; margin-top: 3cqw; flex: 1; min-height: 0; }
.quiz-testo {
  position: relative; border: .25cqw solid var(--bordo); border-radius: 1.2cqw; padding: 3.2cqw 1.8cqw 1.8cqw;
  background: #fafbfd; display: flex; flex-direction: column; min-height: 0; overflow: hidden;
  transition: border-color .3s, background .3s;
}
.quiz-lettera {
  position: absolute; top: -.1cqw; left: 1.6cqw; background: var(--admin-scuro); color: var(--ambra); font-weight: 800;
  font-size: 1.9cqw; padding: .3cqw 1.2cqw; border-radius: 0 0 .8cqw .8cqw;
}
.quiz-corpo { font-size: 1.75cqw; line-height: 1.45; color: var(--testo); white-space: pre-line; overflow: hidden; }
.quiz-corpo.in-scrittura::after { content: '▍'; color: var(--accento); animation: pulsa .8s steps(2) infinite; }
.quiz-esito { margin-top: auto; padding-top: 1.2cqw; font-size: 1.4cqw; display: flex; flex-direction: column; gap: .3cqw; }
.quiz-esito:empty { display: none; }
.quiz-esito span { color: var(--testo-3); font-size: 1.2cqw; }
.quiz-testo.umano { border-color: var(--ok); background: #f3fbf6; }
.quiz-testo.umano .quiz-esito b { color: var(--ok); }
.quiz-testo.ai { border-color: #8b5cf6; background: #f6f2ff; box-shadow: 0 0 0 .5cqw rgba(139, 92, 246, .15); }
.quiz-testo.ai .quiz-esito b { color: #6d28d9; }
.slide-anteprima.duello .quiz-corpo { font-size: 1.55cqw; }
/* demo dal vivo: una chat sul proiettore */
.slide-anteprima.demo { background: #0E1113; color: #ececec; display: flex; flex-direction: column; padding: 2.4cqw 3.2cqw 2cqw; }
.slide-anteprima.demo::before { display: none; }
.demo-testa { display: flex; align-items: center; gap: 1.2cqw; flex-wrap: wrap; margin-bottom: 1cqw; }
.demo-titolo { font-family: var(--font-titoli); font-weight: 600; text-transform: uppercase; font-size: 2.8cqw; color: #fff; letter-spacing: .05cqw; }
.demo-chip { font-size: 1.2cqw; padding: .35cqw 1cqw; border-radius: 2cqw; background: rgba(155, 123, 255, .18); color: #c8b6ff; font-weight: 700; }
/* il prompt resta in alto, sempre visibile; la risposta sotto prende lo spazio che resta e non spinge mai fuori il prompt */
.demo-chat { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-start; gap: .9cqw; }
.demo-msg { display: flex; gap: .9cqw; align-items: flex-start; max-width: 96cqw; flex: 0 0 auto; }
.demo-msg.io { align-self: flex-end; flex-direction: row-reverse; }
.demo-msg.io .demo-testo { font-size: 1.5cqw; max-height: 9cqw; overflow: hidden; padding: .8cqw 1.3cqw; }
.demo-msg.io.lungo .demo-testo { font-size: 1.2cqw; max-height: 26cqw; line-height: 1.3; }   /* prompt lungo (il vocale): si legge tutto, la risposta prende il resto */
.demo-msg.ai { flex: 0 1 auto; min-height: 0; width: 100%; }
.demo-msg.ai .demo-testo { font-size: 1.75cqw; line-height: 1.3; max-height: 100%; overflow: hidden; padding: .9cqw 1.4cqw; flex: 1; }
.demo-msg.ai.medio .demo-testo { font-size: 1.5cqw; line-height: 1.25; }
.demo-msg.ai.lungo .demo-testo { font-size: 1.25cqw; line-height: 1.22; }
.demo-msg.vecchio { display: none; }
.demo-msg.bozza.vuota { display: none; }                      /* la domanda successiva, mentre la si scrive: compare al primo carattere */
.demo-msg.bozza .demo-testo { opacity: .85; }                          /* gli scambi precedenti della stessa chat restano nello storico, non in sala */
.demo-msg.vecchio.io + .demo-msg.vecchio.ai + .demo-msg.io::before { content: ''; }
.demo-chi { flex: 0 0 auto; width: 3.2cqw; height: 3.2cqw; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-titoli); font-size: 1.2cqw; font-weight: 600; background: #2a2f34; color: #d9d9d9; }
.demo-msg.ai .demo-chi { background: linear-gradient(135deg, #7448FF, #2252A4); color: #fff; }
.demo-testo { padding: 1.1cqw 1.6cqw; border-radius: 1.2cqw; font-size: 1.9cqw; line-height: 1.4; white-space: pre-line; }
.demo-msg.io .demo-testo { background: #7448FF; color: #fff; border-top-right-radius: .3cqw; }
/* demo con la foto: la foto a sinistra, grande, la chat a destra */
.slide-anteprima.demo.con-foto { display: grid; grid-template-columns: 36cqw 1fr; grid-template-rows: auto 1fr; column-gap: 2.4cqw; }
.slide-anteprima.demo.con-foto .demo-testa { grid-column: 1 / -1; }
.slide-anteprima.demo.con-foto .demo-lato { grid-row: 2; min-height: 0; display: flex; align-items: flex-start; }
.slide-anteprima.demo.con-foto .demo-chat { grid-row: 2; }
.demo-foto { display: block; width: 100%; max-height: 44cqw; border-radius: .8cqw; object-fit: contain; background: #000; box-shadow: 0 1cqw 3cqw rgba(0, 0, 0, .5); }
.slide-anteprima.demo .demo-msg.io { max-width: 76cqw; margin-right: 15cqw; }   /* la domanda non finisce sotto il logo in alto a destra */
.demo-allegato { display: inline-block; background: rgba(255, 255, 255, .18); border-radius: .4cqw; padding: .2cqw .7cqw; font-size: .85em; margin-right: .6cqw; }
.demo-msg.ai .demo-testo { background: #1b2024; color: #f0f0f0; border-top-left-radius: .3cqw; min-width: 10cqw; }
.demo-msg.ai .demo-testo .in-scrittura::after, .demo-cursore::after { content: '▍'; color: #9B7BFF; animation: pulsa .8s steps(2) infinite; }
.demo-attesa { color: #9a9a9a; font-style: italic; animation: pulsa 1.6s ease-in-out infinite; }
.demo-attesa.lenta { color: var(--g-ambra, #f5b73b); font-style: normal; animation: none; }
/* risposta in chat formattata: righe, elenchi numerati e puntati, etichette in grassetto */
/* misure in em: se il carattere cala per far entrare una risposta lunga, calano anche numeri, puntini e spazi */
.demo-testo .rg { display: flex; gap: .55em; align-items: flex-start; margin: 0 0 .28em; }
.demo-testo .rg:last-child { margin-bottom: 0; }
.demo-testo .rg.num .n { flex: 0 0 auto; min-width: 1.5em; height: 1.5em; padding: 0 .3em; border-radius: .75em; background: rgba(155, 123, 255, .22); color: #c8b6ff; font-family: var(--font-titoli); font-size: .8em; display: flex; align-items: center; justify-content: center; margin-top: .15em; }
.demo-testo .rg.pt i { flex: 0 0 auto; width: .42em; height: .42em; border-radius: 50%; background: #9B7BFF; margin-top: .55em; }
.demo-testo .rg b { color: #fff; }
.slide-anteprima.demo .slide-marchio { background-image: url('../img/underscore-logo-bianco.svg'); opacity: .6; }
.slide-anteprima.demo .demo-titolo { padding-right: 15cqw; }

/* «[schede]»: più documenti in card, su una griglia */
.demo-schede { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.demo-schede .doc-corpo.schede { flex: 1 1 auto; min-height: 0; overflow: hidden; font-size: 1.35cqw; line-height: 1.3; }
.doc-corpo.schede > span { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2cqw; align-content: start; }
.doc-corpo.schede .scheda { background: #fff; color: #1d1d1d; border-radius: .5cqw; padding: .9cqw 1.2cqw 1cqw; box-shadow: 0 .8cqw 2.4cqw rgba(0, 0, 0, .5); border-top: .35cqw solid #7448FF; min-width: 0; }
.doc-corpo.schede .scheda h4 { margin: 0 0 .5cqw; font-family: var(--font-titoli); text-transform: uppercase; letter-spacing: .1cqw; font-size: .95em; color: #5f34e6; }
.doc-corpo.schede .scheda .riga { display: grid; grid-template-columns: 7.5cqw 1fr; gap: .6cqw; padding: .18cqw 0; border-bottom: 1px solid #eee; }
.doc-corpo.schede .scheda .riga b { color: #666; font-weight: 600; font-size: .85em; text-transform: uppercase; letter-spacing: .05cqw; padding-top: .1em; }
.doc-corpo.schede .scheda .voce { padding-left: 1.1cqw; position: relative; margin: .15cqw 0; }
.doc-corpo.schede .scheda .voce::before { content: ''; position: absolute; left: .1cqw; top: .55em; width: .45cqw; height: .45cqw; border-radius: 50%; background: #7448FF; }
.doc-corpo.schede .scheda p { margin: 0 0 .35cqw; }
.doc-corpo.schede .scheda:nth-child(3) { background: #e7fbe4; border-top-color: #25d366; }   /* il messaggio WhatsApp al cliente */
/* la risposta della demo come un foglio di carta (preventivo, scheda) o come un post social */
.slide-anteprima.demo.con-doc .demo-testa { margin-bottom: .4cqw; }
.slide-anteprima.demo.con-doc .demo-titolo { font-size: 2.2cqw; }
.slide-anteprima.demo.con-doc .demo-msg.io .demo-testo { font-size: 1.25cqw; padding: .5cqw 1cqw; max-height: 7.6cqw; line-height: 1.35; }
.slide-anteprima.demo.con-doc .demo-msg.io .demo-chi { width: 2.4cqw; height: 2.4cqw; font-size: 1cqw; }
.demo-doc.documento { width: 92cqw; flex: 1 1 auto; border-radius: .3cqw; box-shadow: 0 1.5cqw 4cqw rgba(0, 0, 0, .6), 0 0 0 .1cqw rgba(255, 255, 255, .08); }
.demo-doc.documento .doc-testa { padding: 1.1cqw 2.4cqw .9cqw; border-bottom: .22cqw solid #7448FF; align-items: center; }
.demo-doc .doc-marchio { width: 3cqw; height: 3cqw; border-radius: .5cqw; background: linear-gradient(135deg, #7448FF, #2252A4); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-titoli); font-weight: 600; font-size: 1.9cqw; margin-right: 1cqw; flex: 0 0 auto; }
.demo-doc.documento .doc-nome { flex: 1; font-size: 2.1cqw; letter-spacing: .05cqw; }
.demo-doc .doc-corpo.impaginato { white-space: normal; padding: 1cqw 2.4cqw .6cqw; font-size: 1.55cqw; line-height: 1.3; flex: 1 1 auto; }
.slide-anteprima.demo.con-doc .demo-msg.io { max-width: 78cqw; margin-right: 17.5cqw; }
.demo-doc.medio .doc-corpo.impaginato { font-size: 1.4cqw; } .demo-doc.lungo .doc-corpo.impaginato { font-size: 1.2cqw; line-height: 1.22; }
.doc-corpo.impaginato > * { break-inside: avoid; }
.doc-corpo.impaginato p { margin: 0 0 .5cqw; }
.doc-corpo.impaginato .doc-numero { font-family: var(--font-titoli); text-transform: uppercase; letter-spacing: .1cqw; font-size: 1.2cqw; color: #666; margin: 0 0 .6cqw; }
.doc-corpo.impaginato .doc-numero b { color: #0E1113; }
.doc-corpo.impaginato h4 { font-family: var(--font-titoli); text-transform: uppercase; letter-spacing: .12cqw; font-size: 1.2cqw; color: #7448FF; margin: .9cqw 0 .4cqw; padding-bottom: .2cqw; border-bottom: .1cqw solid #e6e1ff; }
.doc-corpo.impaginato .doc-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(22cqw, 1fr)); gap: .35cqw 2cqw; margin: 0 0 .7cqw; }
.doc-corpo.impaginato .doc-meta div { display: flex; flex-direction: column; }
.doc-corpo.impaginato .doc-meta dt { font-family: var(--font-testo); font-size: 1cqw; text-transform: uppercase; letter-spacing: .08cqw; color: #8a8a8a; }
.doc-corpo.impaginato .doc-meta dd { margin: 0; font-weight: 700; color: #1d1d1d; }
.doc-corpo.impaginato ul { margin: 0 0 .6cqw; padding-left: 1.6cqw; font-size: inherit; line-height: inherit; color: inherit; }   /* non la misura degli elenchi delle slide normali */
.doc-corpo.impaginato li { margin: 0 0 .25cqw; }
.doc-corpo.impaginato .doc-tab { width: 100%; border-collapse: collapse; margin: 0 0 .7cqw; }
.doc-corpo.impaginato .doc-tab td { padding: .35cqw .4cqw; border-bottom: .08cqw solid #ececec; vertical-align: top; }
.doc-corpo.impaginato .doc-tab td.n { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; width: 1%; font-weight: 600; }
.doc-corpo.impaginato .doc-tab tr.totale td { font-weight: 700; border-top: .12cqw solid #bbb; }
.doc-corpo.impaginato .doc-tab tr.finale td { font-weight: 700; background: #f1edff; color: #2a1a66; font-size: 1.15em; border-bottom: none; }
.doc-corpo.impaginato .doc-saluti { margin: .8cqw 0 0; font-style: italic; color: #444; text-align: right; }
.doc-corpo.impaginato .doc-firma { font-weight: 700; margin: 0; font-family: 'Brush Script MT', 'Segoe Script', cursive; font-size: 1.5em; color: #2a1a66; text-align: right; }
.doc-corpo.impaginato .doc-firma + .doc-firma { font-family: inherit; font-size: inherit; font-weight: 400; color: #555; }
.demo-doc { flex: 0 1 auto; min-height: 0; overflow: hidden; display: flex; flex-direction: column; align-self: center; width: 80cqw; background: #fff; color: #1d1d1d; border-radius: .5cqw; box-shadow: 0 1.2cqw 3cqw rgba(0, 0, 0, .5); }
.demo-doc.documento { font-family: Georgia, 'Times New Roman', serif; }
.demo-doc .doc-testa { display: flex; justify-content: space-between; align-items: baseline; gap: 2cqw; padding: 1.3cqw 2.4cqw .9cqw; border-bottom: .15cqw solid #e2e2e2; }
.demo-doc .doc-nome { font-family: var(--font-titoli); font-weight: 600; text-transform: uppercase; letter-spacing: .08cqw; font-size: 1.9cqw; color: #0E1113; }
.demo-doc .doc-data { font-size: 1.3cqw; color: #777; white-space: nowrap; }
.demo-doc .doc-corpo { flex: 0 1 auto; min-height: 0; overflow: hidden; padding: 1.2cqw 2.4cqw; font-size: 1.7cqw; line-height: 1.35; white-space: pre-line; }
.demo-doc.medio .doc-corpo { font-size: 1.45cqw; line-height: 1.28; }
.demo-doc.lungo .doc-corpo { font-size: 1.2cqw; line-height: 1.22; }
.demo-doc .doc-piede { padding: .7cqw 2.4cqw 1cqw; border-top: .15cqw solid #e2e2e2; font-size: 1.1cqw; color: #999; display: flex; gap: 2cqw; }
.demo-doc.post { width: 72cqw; flex: 1 1 auto; font-family: var(--font-testo); border-radius: 1cqw; box-shadow: 0 1.5cqw 4cqw rgba(0, 0, 0, .6), 0 0 0 .1cqw rgba(255, 255, 255, .08); }
.demo-doc.post .doc-corpo { flex: 1 1 auto; }
.demo-doc.post .doc-testa { border-bottom: none; padding-bottom: .3cqw; }
.demo-doc.post .doc-nome { text-transform: none; letter-spacing: 0; font-family: var(--font-testo); font-weight: 700; font-size: 1.7cqw; }
.demo-doc.post .doc-nome::before { content: ''; display: inline-block; width: 2.6cqw; height: 2.6cqw; border-radius: 50%; background: linear-gradient(135deg, #7448FF, #2252A4); vertical-align: middle; margin-right: .9cqw; }
.demo-doc.post .doc-corpo { font-size: 2cqw; line-height: 1.4; }
.demo-doc.post .doc-piede { color: #555; font-weight: 600; justify-content: space-around; }
.demo-doc .demo-cursore::after { color: #7448FF; }
.slide-anteprima.demo.con-doc .demo-chat { gap: 1.2cqw; }

/* riassunto del gioco: una riga per testo, chi l'ha scritto e i voti */
.riassunto-righe { display: flex; flex-direction: column; gap: 1.4cqw; margin-top: 3cqw; }
.riassunto-riga { display: grid; grid-template-columns: 5cqw 1fr 30cqw; gap: 2cqw; align-items: center; padding: 1.4cqw 2cqw; border: .25cqw solid var(--griglia); border-radius: 1cqw; background: #fafafa; }
.riassunto-riga.ai, .riassunto-riga.locale { border-color: #8b5cf6; background: #f6f2ff; }
.riassunto-riga.umano { border-color: var(--ok); background: #f3fbf6; }
.riassunto-riga.cloud { border-color: #2a78d6; background: #eef5fd; }
.riassunto-lettera { font-family: var(--font-titoli); font-weight: 500; font-size: 2.6cqw; line-height: 1; background: var(--admin-scuro); color: #fff; border-radius: .5cqw; width: 4.4cqw; height: 4.4cqw; display: flex; align-items: center; justify-content: center; }
.riassunto-chi { font-size: 2cqw; font-weight: 700; color: var(--testo); min-width: 0; }
.riassunto-riga.giusto .riassunto-chi::after { content: ' ✓'; color: var(--ok); }
.riassunto-voti { display: flex; flex-direction: column; gap: .5cqw; font-size: 1.6cqw; color: var(--testo-2); font-weight: 700; }
.riassunto-voti .quiz-voti-barra { height: 1.6cqw; margin: 0; }
.quiz-testo.cloud { border-color: #2a78d6; background: #eef5fd; }
.quiz-testo.cloud .quiz-esito b { color: #1d5fb0; }
.quiz-testo.locale { border-color: var(--ok); background: #f3fbf6; box-shadow: 0 0 0 .5cqw rgba(27, 175, 122, .15); }
.quiz-testo.locale .quiz-esito b { color: var(--ok); }
.slide-anteprima.piccola .quiz-corpo { font-size: 1.6cqw; }
.quiz-editor { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.quiz-editor-testo { border: 1px solid var(--bordo); border-radius: 10px; padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; }
.quiz-editor-testo.ai { border-color: #c9b6fb; background: #faf7ff; }
.quiz-editor-testo textarea, .quiz-editor-testo input[type=text] { font-size: 13px; padding: 5px 8px; }

/* Voto dal telefono: QR accanto alla slide del gioco (schermo sala) e barre dei voti */
.pres-qr { flex: 0 0 auto; width: min(22vw, 36vh); background: #fff; color: var(--testo); border-radius: 18px; padding: 1.6vw; text-align: center; cursor: default; }
.pres-qr-titolo { font-weight: 800; font-size: clamp(14px, 1.5vw, 24px); color: var(--admin-scuro); }
.pres-qr-codice svg { width: 100%; height: auto; display: block; margin: 1vw 0; }
.pres-qr-url { font-size: clamp(12px, 1.2vw, 20px); color: var(--testo-2); word-break: break-all; }
.pres-qr-url b { color: var(--admin-scuro); letter-spacing: .08em; }
.pres-qr-totale { margin-top: .8vw; font-size: clamp(14px, 1.4vw, 22px); color: var(--testo-2); }
.pres-qr-totale b { font-size: 1.6em; color: #6d28d9; }
.quiz-voti { margin-top: 1cqw; font-size: 1.3cqw; color: var(--testo-2); font-weight: 700; }
.quiz-voti-barra { height: .9cqw; background: var(--griglia); border-radius: 1cqw; overflow: hidden; margin-bottom: .4cqw; }
.quiz-voti-barra div { height: 100%; background: var(--viola); border-radius: 1cqw; transition: width .5s ease; }
.quiz-testo > .quiz-voti { margin-top: auto; }
.quiz-voti + .quiz-esito { margin-top: 0; }
/* Foglio in diretta (banco tecnico) */
.foglio-finestra { width: 100%; height: 100%; min-height: 0; background: #fff; color: var(--testo); border-radius: 10px; display: flex; flex-direction: column; overflow: hidden; }
.foglio-barra { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #107c41; color: #fff; flex-wrap: wrap; }
.foglio-barra .banco-tasto { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .25); color: #fff; }
.foglio-barra .banco-tasto:hover { background: rgba(255, 255, 255, .26); }
.foglio-barra .banco-tasto.acceso { background: rgba(255, 255, 255, .3); color: #fff; }
.foglio-titolo { font-weight: 800; font-size: 18px; }
.foglio-stato { font-size: 12.5px; opacity: .85; }
.foglio-barra .spazio { flex: 1; }
.foglio-griglia { flex: 1; overflow: auto; background: #f8f9fa; }
table.foglio { border-collapse: collapse; font-size: clamp(14px, 1.25vw, 20px); min-width: 100%; background: #fff; }
table.foglio th { background: #eef1f4; color: #5f6b77; font-weight: 600; border: 1px solid #d6dbe0; padding: 4px 8px; position: sticky; top: 0; z-index: 1; font-size: .8em; }
table.foglio tbody th { position: sticky; left: 0; width: 44px; text-align: center; }
table.foglio td { border: 1px solid #dfe3e7; padding: 0; min-width: 150px; }
table.foglio input { border: none; border-radius: 0; width: 100%; padding: 7px 9px; font: inherit; background: transparent; box-shadow: none !important; }
table.foglio input:focus { outline: 2px solid #107c41; outline-offset: -2px; background: #fff; }
table.foglio tr.intestazioni input { font-weight: 700; background: #f3f7f4; }
table.foglio tr.nuova td { animation: foglio-nuova 1.6s ease; }
@keyframes foglio-nuova { 0% { background: #fff3c4; } 100% { background: #fff; } }
.foglio-piede { padding: 8px 14px; font-size: 13px; color: var(--testo-3); border-top: 1px solid var(--griglia); }

/* ============================================================
   Marchio Underscore: tipografia e dettagli (come underscore.sm)
   ============================================================ */
.sidebar .logo { padding: 20px 18px 14px; }
.sidebar .logo img { width: 150px; height: auto; display: block; }
.sidebar .logo small { font-family: var(--font-titoli); font-weight: 500; text-transform: uppercase; letter-spacing: 2.4px; font-size: 10.5px; margin-top: 6px; color: #9a9a9a; }
.nav-voce { border-radius: 3px; }
.nav-voce.attiva { box-shadow: inset 3px 0 0 var(--viola); }
.pannello-accesso { border-radius: 6px; }
.pannello-accesso .logo-grande img { width: 190px; height: auto; }
.giornata-num, .scena-num, .quiz-lettera { font-family: var(--font-titoli); font-weight: 500; }
.giornata-num { border-radius: 4px; }
.giornata-titolo, .scena-titolo { font-family: var(--font-titoli); font-weight: 500; text-transform: uppercase; letter-spacing: .3px; }
.giornata-titolo { font-size: 17px; }
.scena-titolo { font-size: 15.5px; }
.titolo-inline { font-family: var(--font-titoli); font-weight: 500; text-transform: uppercase; letter-spacing: .3px; }
.badge-tipo, .prep-voce b { font-family: var(--font-testo); }
/* slide: titoli in Oswald, logo del marchio */
.slide-titolo { font-family: var(--font-titoli); font-weight: 600; text-transform: uppercase; letter-spacing: .2px; }
/* logo in alto a destra, allineato al titolo: non si sovrappone mai al contenuto (punti, immagini, card del gioco) */
.slide-marchio { font-size: 0; right: 4cqw; top: 5.2cqw; bottom: auto; width: 13cqw; height: 2cqw;
  background: url('../img/underscore-logo-scuro.svg') no-repeat right center / contain; opacity: .85; }
.slide-anteprima.quiz .slide-marchio { top: 4.4cqw; }
.slide-anteprima.con-immagine .slide-marchio { display: none; }   /* con l'immagine a destra il logo la coprirebbe */
.slide-titolo { padding-right: 15cqw; }
.pres-qr-titolo { font-family: var(--font-titoli); font-weight: 600; text-transform: uppercase; }
.link-sala { background: var(--sfondo); border: 1px dashed var(--bordo); border-radius: 4px; padding: 12px 14px; margin: 10px 0; word-break: break-all; }
.link-sala code { font-size: 15px; }

.gobbo-qr { width: 190px; margin: 10px auto; background: #fff; padding: 8px; border: 1px solid var(--bordo); }
.gobbo-qr svg { width: 100%; height: auto; display: block; }

/* slide di benvenuto: copertina scura del marchio con il QR dei telefoni */
.slide-anteprima.benvenuto { display: flex; flex-direction: column; padding: 5cqw 6cqw 4.5cqw; color: #fff; border-color: #0E1113;
  background: radial-gradient(ellipse 70% 80% at 8% 0%, rgba(116, 72, 255, .55), transparent 60%),
              radial-gradient(ellipse 60% 70% at 100% 100%, rgba(34, 82, 164, .6), transparent 60%), #0E1113; }
.slide-anteprima.benvenuto::before { display: none; }
.slide-anteprima.benvenuto::after { content: ''; position: absolute; right: -8cqw; top: -10cqw; width: 42cqw; height: 42cqw; border-radius: 50%;
  border: .25cqw solid rgba(155, 123, 255, .18); box-shadow: 0 0 0 5cqw rgba(155, 123, 255, .025), 0 0 0 10cqw rgba(155, 123, 255, .015); pointer-events: none; }
.benvenuto-logo { width: 15cqw; position: relative; z-index: 1; }
.benvenuto-centro { margin: auto 0; position: relative; z-index: 1; }
.benvenuto-sopra { font-family: var(--font-titoli); text-transform: uppercase; letter-spacing: .5cqw; font-size: 1.8cqw; color: #b9a4ff; }
.benvenuto-titolo { font-family: var(--font-titoli); font-weight: 600; text-transform: uppercase; font-size: 11.5cqw; line-height: .95; margin-top: 1.2cqw; letter-spacing: .1cqw; }
.benvenuto-titolo::after { content: ''; display: block; width: 12cqw; height: .9cqw; background: var(--viola); margin-top: 2.2cqw; }
.benvenuto-titolo .ai { background: linear-gradient(90deg, #9B7BFF, #6f9bff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.benvenuto-piede { display: flex; align-items: flex-end; gap: 3cqw; position: relative; z-index: 1; }
.benvenuto-righe { display: flex; flex-wrap: wrap; gap: 1cqw; flex: 1; }
.benvenuto-righe span { border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .05); border-radius: .5cqw; padding: .7cqw 1.4cqw; font-size: 1.7cqw; color: #e8e8e8; }
.benvenuto-qr { display: flex; align-items: flex-end; gap: 1.6cqw; }
.benvenuto-qr-testo { text-align: right; font-size: 1.5cqw; color: #bdbdbd; line-height: 1.35; }
.benvenuto-qr-testo b { display: block; color: #fff; font-family: var(--font-titoli); letter-spacing: .15cqw; font-size: 1.6cqw; margin-top: .5cqw; font-weight: 500; }
.benvenuto-qr-codice { width: 13cqw; background: #fff; border-radius: .8cqw; padding: .6cqw; line-height: 0; }
.benvenuto-qr-codice svg { width: 100%; height: auto; }
.benvenuto-qr-finto { aspect-ratio: 1; display: grid; place-items: center; color: #0E1113; font-family: var(--font-titoli); font-size: 2.4cqw; line-height: 1;
  background: repeating-linear-gradient(45deg, #fff 0 .6cqw, #e7e7e7 .6cqw 1.2cqw); }

/* «completa la frase»: una frase alla volta, poi la parola più probabile e le probabilità delle altre */
.slide-anteprima.frasi { display: flex; flex-direction: column; padding: 5cqw 6cqw 4.5cqw 7cqw; color: #fff; border-color: #0E1113;
  background: radial-gradient(ellipse 60% 70% at 0% 0%, rgba(116, 72, 255, .45), transparent 60%), radial-gradient(ellipse 60% 70% at 100% 100%, rgba(34, 82, 164, .5), transparent 60%), #0E1113; }
.slide-anteprima.frasi::before { display: none; }
.slide-anteprima.frasi .slide-marchio { background-image: url('../img/underscore-logo-bianco.svg'); opacity: .9; }
.frasi-intro { margin: auto 0; }
.frasi-sopra { font-family: var(--font-titoli); text-transform: uppercase; letter-spacing: .4cqw; font-size: 1.8cqw; color: #b9a4ff; }
.frasi-titolo { font-family: var(--font-titoli); font-weight: 600; text-transform: uppercase; font-size: 9cqw; line-height: .95; margin: 1.2cqw 0 2cqw; }
.frasi-titolo .ai { background: linear-gradient(90deg, #9B7BFF, #6f9bff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.frasi-regola { font-size: 2.4cqw; color: #d8d8d8; }
.frasi-contatore { display: inline-flex; gap: .8cqw; margin-top: 3cqw; }
.frasi-contatore i { width: 3.4cqw; height: .6cqw; border-radius: .3cqw; background: rgba(255, 255, 255, .18); }
.frasi-contatore i.fatta { background: #5f4bb0; } .frasi-contatore i.ora { background: #9B7BFF; }
.frasi-testa { display: flex; align-items: center; gap: 2cqw; font-family: var(--font-titoli); text-transform: uppercase; letter-spacing: .4cqw; font-size: 1.7cqw; color: #b9a4ff; }
.frasi-testa .frasi-contatore { margin-top: 0; }
.frasi-frase { font-family: var(--font-titoli); font-weight: 500; font-size: 7.4cqw; line-height: 1.08; margin: auto 0 0; padding-top: 3cqw; }
/* nel gioco delle frasi il testo sta fermo: stessa altezza prima e dopo la rivelazione (le barre arrivano sotto, non spingono) */
.slide-anteprima.frasi .frasi-frase { margin: 0; padding-top: 9cqw; }
.slide-anteprima.frasi .frasi-barre { margin-bottom: 0; }
.slide-anteprima.frasi .frasi-attesa { margin-top: 3.5cqw; }
.slide-anteprima.sondaggio:not(.svelata) .frasi-frase { margin-bottom: auto; }
.frasi-cursore { display: inline-block; width: .7cqw; height: 6.4cqw; background: #9B7BFF; margin-left: 1cqw; vertical-align: -0.6cqw; animation: frasi-lampeggia 1s steps(1) infinite; }
@keyframes frasi-lampeggia { 50% { opacity: 0; } }
.frasi-parola { color: #b9a4ff; animation: frasi-entra .6s ease-out both; }
@keyframes frasi-entra { from { opacity: 0; filter: blur(.6cqw); } }
.frasi-attesa { font-size: 2.2cqw; color: #9a9a9a; }
.frasi-barre { margin: 3.5cqw 0 auto; display: flex; flex-direction: column; gap: 1cqw; max-width: 72cqw; }
.frasi-barre-titolo { font-size: 1.6cqw; color: #9a9a9a; text-transform: uppercase; letter-spacing: .3cqw; margin-bottom: .4cqw; }
.frasi-barra { display: grid; grid-template-columns: 26cqw 1fr 6cqw; gap: 1.6cqw; align-items: center; font-size: 2.1cqw; color: #cfcfcf; }
.frasi-barra .t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.frasi-barra .b { height: 2cqw; background: rgba(255, 255, 255, .07); border-radius: .4cqw; overflow: hidden; }
.frasi-barra .b i { display: block; height: 100%; width: var(--w); background: rgba(155, 123, 255, .45); border-radius: .4cqw; animation: frasi-cresce .9s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i) * .12s + .2s); }
.frasi-barra.prima { color: #fff; font-weight: 700; } .frasi-barra.prima .b i { background: linear-gradient(90deg, #7448FF, #9B7BFF); }
.frasi-barra .p { text-align: right; font-variant-numeric: tabular-nums; }
@keyframes frasi-cresce { from { width: 0; } }
/* quiz a domande dal telefono */
.sond-domanda { font-size: 5.6cqw; margin-bottom: auto; }
.sond-opzioni { display: grid; grid-template-columns: repeat(var(--n), 1fr); gap: 2cqw; margin: 3cqw 0 2cqw; }
.sond-opzione { background: rgba(255, 255, 255, .06); border: .25cqw solid rgba(255, 255, 255, .12); border-radius: 1cqw; padding: 1.6cqw 1.8cqw; }
.sond-opzione.giusta { border-color: #1baf7a; background: rgba(27, 175, 122, .18); }
.sond-opzione.sbagliata { opacity: .55; }
.sond-nome { font-family: var(--font-titoli); font-weight: 500; text-transform: uppercase; font-size: 2.8cqw; color: #fff; }
.sond-opzione.giusta .sond-nome::after { content: ' ✓'; color: #5fe0a9; }
.sond-barra { height: 1.4cqw; background: rgba(255, 255, 255, .08); border-radius: .5cqw; overflow: hidden; margin: 1cqw 0 .6cqw; }
.sond-barra i { display: block; height: 100%; background: linear-gradient(90deg, #7448FF, #9B7BFF); transition: width .6s ease; }
.sond-opzione.giusta .sond-barra i { background: #1baf7a; }
.sond-voti { font-size: 1.7cqw; color: #bdbdbd; font-weight: 700; margin-top: .6cqw; }
.slide-anteprima.sondaggio .frasi-attesa { margin-bottom: auto; }

/* riassunto del gioco: una riga per frase */
.frasi-riassunto { margin: 2.6cqw 0 auto; display: flex; flex-direction: column; gap: 1.1cqw; }
.frasi-riga { display: grid; grid-template-columns: 30cqw 24cqw 6cqw 1fr; gap: 1.4cqw; align-items: baseline; padding: 1.1cqw 1.6cqw; background: rgba(255, 255, 255, .05); border-radius: .5cqw; font-size: 2.2cqw; animation: frasi-entra .5s ease-out both; }
.frasi-riga .inizio { font-family: var(--font-titoli); font-weight: 500; font-size: 2.7cqw; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.frasi-riga .parola { color: #b9a4ff; font-weight: 700; font-size: 2.5cqw; }
.frasi-riga .p { text-align: right; font-variant-numeric: tabular-nums; color: #fff; font-weight: 700; }
.frasi-riga .altre { color: #9a9a9a; font-size: 1.7cqw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.frasi-morale { font-size: 2.1cqw; color: #d8d8d8; padding: 1.6cqw 0 0; border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 2cqw; }

/* benvenuto: titolo lungo su due righe e percorso con le icone (mani → cervello → robot) */
.benvenuto-titolo.lungo { font-size: 8.6cqw; }
.benvenuto-titolo.lungo::after { margin-top: 1.8cqw; }
.benvenuto-percorso { display: flex; align-items: center; gap: 1.4cqw; margin-top: 2.6cqw; }
.benvenuto-percorso .tappa { display: flex; align-items: center; gap: 1.2cqw; }
.benvenuto-percorso .cerchio { width: 5.6cqw; height: 5.6cqw; border-radius: 50%; display: grid; place-items: center; color: #fff;
  background: rgba(116, 72, 255, .22); border: .18cqw solid rgba(155, 123, 255, .55); }
.benvenuto-percorso .tappa:last-child .cerchio { background: linear-gradient(135deg, #7448FF, #2252A4); border-color: transparent; }
.benvenuto-percorso .cerchio svg { width: 3.2cqw; height: 3.2cqw; }
.benvenuto-percorso b { display: block; font-family: var(--font-titoli); font-weight: 500; text-transform: uppercase; letter-spacing: .15cqw; font-size: 1.9cqw; }
.benvenuto-percorso small { display: block; font-size: 1.45cqw; color: #bdbdbd; }
.benvenuto-percorso .freccia { width: 4cqw; height: .2cqw; background: linear-gradient(90deg, rgba(155, 123, 255, .2), #9B7BFF); position: relative; }
.benvenuto-percorso .freccia::after { content: ''; position: absolute; right: -.1cqw; top: -.55cqw; border: .65cqw solid transparent; border-left: .9cqw solid #9B7BFF; border-right: 0; }
