@charset "UTF-8";

@font-face {font-family: "Geist";      src: url("/condivisi/font/Geist.woff2")                        format("woff2-variations"); font-style: normal; font-weight: 100 900; font-display: swap;}
@font-face {font-family: "Geist Mono"; src: url("/condivisi/font/geist-mono-latin-wght-normal.woff2") format("woff2-variations"); font-style: normal; font-weight: 100 900; font-display: swap;}

:root {
    color-scheme: dark;
    --colore-fondo: #0c0d0b;
    --colore-fondo-profondo: #070806;
    --colore-superficie: #121310;
    --colore-superficie-alta: #191a16;
    --colore-superficie-attiva: #202119;
    --colore-testo: #f2f1eb;
    --colore-testo-secondario: #9b9b91;
    --colore-testo-tenue: #686a62;
    --colore-linea: #2a2c27;
    --colore-linea-forte: #44463f;
    --colore-accento: #e6c800;
    --colore-accento-hover: #f2d51b;
    --colore-su-accento: #11120e;
    --colore-successo: #70b980;
    --colore-errore: #d97872;

    --font-sans: "Geist", "Segoe UI", Arial, sans-serif;
    --font-mono: "Geist Mono", "Cascadia Mono", "Consolas", monospace;
    --testo-xs: .6875rem;
    --testo-sm: .8125rem;
    --testo-base: .9375rem;
    --testo-md: 1.0625rem;
    --testo-lg: 1.375rem;
    --testo-xl: clamp(2rem, 4vw, 3.75rem);
    --testo-display: clamp(3rem, 8vw, 7.5rem);

    --spazio-1: 4px;
    --spazio-2: 8px;
    --spazio-3: 12px;
    --spazio-4: 16px;
    --spazio-5: 24px;
    --spazio-6: 32px;
    --spazio-7: 48px;
    --spazio-8: 64px;
    --spazio-9: 96px;

    --raggio-sm: 6px;
    --raggio-md: 12px;
    --raggio-pillola: 999px;
    --altezza-controllo: 44px;
    --altezza-ingresso-vista: calc(var(--spazio-4) + var(--altezza-controllo) + var(--spazio-4));
    --altezza-testata: 68px;
    --larghezza-contenuto: 1240px;
    --larghezza-monitor: min(430px, 34vw);
    --transizione-rapida: 120ms ease;
    --transizione: 200ms cubic-bezier(.2, .8, .2, 1);

    font-family: var(--font-sans);
    font-synthesis: none;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; background: var(--colore-fondo); scroll-behavior: smooth; }
body { min-height: 100dvh; margin: 0; background: var(--colore-fondo); color: var(--colore-testo); font-size: var(--testo-base); line-height: 1.45; }
[hidden] { display: none !important; }
img { max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
h1, h2, h3, p { text-wrap: pretty; }

.solo-lettori { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Componenti base */
button, .tasto, .tasto-secondario, .tasto-primario {
    display: inline-flex;
    min-height: var(--altezza-controllo);
    align-items: center;
    justify-content: center;
    gap: var(--spazio-2);
    border: 1px solid var(--colore-linea);
    border-radius: var(--raggio-pillola);
    padding: 0 var(--spazio-5);
    background: transparent;
    color: var(--colore-testo);
    cursor: pointer;
    font-weight: 620;
    text-decoration: none;
    transition: border-color var(--transizione-rapida), background-color var(--transizione-rapida), color var(--transizione-rapida), opacity var(--transizione-rapida);
}
button:hover, .tasto:hover, .tasto-secondario:hover { border-color: var(--colore-linea-forte); background: var(--colore-superficie-alta); }
button:disabled { cursor: wait; opacity: .48; }
.tasto-primario { border-color: var(--colore-accento); background: var(--colore-accento); color: var(--colore-su-accento); }
.tasto-primario:hover { border-color: var(--colore-accento-hover); background: var(--colore-accento-hover); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--colore-accento); outline-offset: 3px; }

textarea, input[type="text"], input[type="password"], input[type="url"], input[type="number"], input[type="search"], select {
    width: 100%;
    min-height: var(--altezza-controllo);
    border: 1px solid var(--colore-linea);
    border-radius: var(--raggio-sm);
    padding: 11px 13px;
    background: var(--colore-fondo-profondo);
    color: var(--colore-testo);
    transition: border-color var(--transizione-rapida), background-color var(--transizione-rapida);
}
textarea:hover, input:hover, select:hover { border-color: var(--colore-linea-forte); }
textarea { min-height: 112px; resize: vertical; line-height: 1.5; }
input::placeholder, textarea::placeholder { color: var(--colore-testo-tenue); }

.pannello { border: 1px solid var(--colore-linea); border-radius: var(--raggio-md); background: var(--colore-superficie); }
.etichetta-sezione { display: block; margin-bottom: var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-xs); font-weight: 720; letter-spacing: .14em; text-transform: uppercase; }
.collegamento-testuale { color: var(--colore-accento); text-decoration: none; }
.collegamento-testuale:hover { color: var(--colore-accento-hover); }
.messaggio-interfaccia { min-height: 1.35em; margin: 0; color: var(--colore-testo-secondario); font-size: var(--testo-sm); }
.messaggio-successo { color: var(--colore-successo); }
.messaggio-errore { color: var(--colore-errore); }
.stato { display: inline-flex; min-height: 28px; align-items: center; gap: var(--spazio-2); border-radius: var(--raggio-pillola); padding: 4px 10px; background: var(--colore-superficie-alta); color: var(--colore-testo-secondario); font-size: var(--testo-xs); font-weight: 680; }
.stato::before { width: 6px; height: 6px; border-radius: 50%; background: var(--colore-testo-tenue); content: ""; }
.stato.pronto::before { background: var(--colore-successo); }
.stato.inattivo::before { background: var(--colore-errore); }
.stato.neutro::before { background: var(--colore-testo-secondario); }

/* Shell */
.testata {
    position: sticky;
    top: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    min-height: var(--altezza-testata);
    align-items: center;
    padding: 0 clamp(var(--spazio-4), 3vw, var(--spazio-6));
    border-bottom: 1px solid var(--colore-linea);
    background: rgba(12, 13, 11, .96);
    transition: margin-right var(--transizione);
}
.marchio { display: inline-flex; width: max-content; align-items: baseline; gap: var(--spazio-2); text-decoration: none; }
.marchio-logo { display: block; width: clamp(112px, 13vw, 150px); filter: invert(1); }
.marchio-descrizione { color: var(--colore-testo-secondario); font-size: var(--testo-xs); letter-spacing: .12em; text-transform: uppercase; }
.navigazione { display: flex; align-items: center; gap: var(--spazio-6); }
.navigazione a { position: relative; padding: 23px 0 20px; color: var(--colore-testo-secondario); font-size: var(--testo-sm); font-weight: 620; text-decoration: none; transition: color var(--transizione-rapida); }
.navigazione a:hover, .navigazione a[aria-current="page"] { color: var(--colore-testo); }
.navigazione a[aria-current="page"]::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--colore-accento); content: ""; }
.azioni-testata { justify-self: end; display: flex; gap: var(--spazio-2); }
.tasto-monitor-testata, .tasto-impostazioni { display: grid; width: var(--altezza-controllo); height: var(--altezza-controllo); min-width: var(--altezza-controllo); place-items: center; border: 1px solid var(--colore-linea); border-radius: 50%; padding: 0; background: transparent; text-decoration: none; }
.tasto-monitor-testata { position: relative; }
.tasto-monitor-testata span { color: var(--colore-testo-secondario); font-size: .58rem; font-weight: 760; letter-spacing: .13em; }
.tasto-monitor-testata::after { position: absolute; top: 6px; right: 6px; width: 5px; height: 5px; border-radius: 50%; background: var(--colore-accento); content: ""; }
.tasto-impostazioni svg { width: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.tasto-impostazioni.attivo { border-color: var(--colore-accento); color: var(--colore-accento); }
.contenuto { --spazio-iniziale-vista: var(--spazio-7); width: 100%; max-width: none; min-height: 0; flex: 1 1 auto; margin: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: var(--spazio-iniziale-vista) clamp(var(--spazio-4), 4vw, var(--spazio-7)) var(--spazio-9); transition: margin-right var(--transizione); }
.contenuto-home { --spazio-iniziale-vista: 0px; width: 100%; max-width: none; padding: 0; }
.testata-ingresso-vista { display: block; height: var(--altezza-ingresso-vista); margin-top: calc(var(--spazio-iniziale-vista) * -1); }
body.monitor-aperto .testata, body.monitor-aperto .contenuto { margin-right: var(--larghezza-monitor); }
.contenuto > .intestazione-pagina,
.contenuto > .griglia-impostazioni,
.contenuto > .pagina-produzione,
.contenuto > .pagina-profilo-brand { width: min(100%, var(--larghezza-contenuto)); margin-inline: auto; }
.intestazione-pagina { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 520px); gap: var(--spazio-7); align-items: end; margin-bottom: var(--spazio-7); }
.intestazione-pagina h1, .intestazione-pagina p { margin: 0; }
.intestazione-pagina h1 { font-size: var(--testo-xl); font-weight: 560; letter-spacing: -.05em; line-height: 1; }
.intestazione-pagina p { color: var(--colore-testo-secondario); line-height: 1.6; }

/* Home */
.scelta-principale { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); min-height: calc(100dvh - var(--altezza-ingresso-vista)); }
.scelta-principale > a { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; padding: clamp(var(--spazio-6), 6vw, var(--spazio-9)); text-decoration: none; transition: background-color var(--transizione); }
.scelta-principale > a + a { border-left: 1px solid var(--colore-linea); }
.scelta-principale > a:hover { background: var(--colore-superficie); }
.monogramma-home { position: absolute; top: 50%; left: 50%; z-index: 2; width: 54px; height: 54px; border-radius: 50%; padding: 13px; background: var(--colore-accento); object-fit: contain; pointer-events: none; transform: translate(-50%, -50%); }
.scelta-indice { color: var(--colore-testo-tenue); font-family: var(--font-mono); font-size: var(--testo-xs); }
.scelta-testo h1 { max-width: 8ch; margin: 0 0 var(--spazio-5); font-size: var(--testo-display); font-weight: 520; letter-spacing: -.075em; line-height: .86; }
.scelta-testo p { max-width: 34rem; margin: 0; color: var(--colore-testo-secondario); font-size: var(--testo-md); line-height: 1.55; }

.scelta-azione {
    font-family: "Geist Mono";
    font-size: var(--testo-xs);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spazio-4);
    margin-top: var(--spazio-8);
    border-top: 1px solid var(--colore-linea);
    padding-top: var(--spazio-4);
}

.scelta-azione span:last-child { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 50%; background: var(--colore-accento); color: var(--colore-su-accento); }

/* Addestramento */
body[data-pagina="addestramento"] .contenuto { --spazio-iniziale-vista: 0px; width: 100%; max-width: none; padding: 0 clamp(var(--spazio-4), 3vw, var(--spazio-7)) var(--spazio-9); }
.ingresso-addestramento { display: grid; min-height: calc(100dvh - var(--altezza-testata) - var(--altezza-ingresso-vista)); align-content: center; padding: var(--spazio-7) 0; }
.testata-addestramento { margin: 0 auto var(--spazio-5); text-align: center; }
.testata-addestramento h1 { margin: var(--spazio-2) 0; font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 540; letter-spacing: -.06em; line-height: .95; }
.testata-addestramento p { margin: 0; color: var(--colore-testo-secondario); }
.modulo-addestramento-rapido { width: min(100%, 1400px); margin: 0 auto; }
.area-file { position: relative; display: grid; min-height: clamp(320px, 52vh, 580px); place-items: center; overflow: hidden; border-radius: var(--raggio-md); cursor: pointer; transition: border-color var(--transizione), background-color var(--transizione); }
.area-file:hover, .area-file.trascinamento { border-color: var(--colore-accento); background: var(--colore-superficie-alta); }
.area-file input { position: absolute; width: 1px; height: 1px; opacity: 0; }

.area-file-contenuto {
	padding: var(--spazio-6);
	text-align: center;
	font-size: var(--testo-display);
}

.area-file-contenuto strong { display: block; font-size: clamp(1.8rem, 3.4vw, 3.5rem); font-weight: 540; letter-spacing: -.045em; }
.area-file-contenuto span { display: block; margin-top: var(--spazio-2); color: var(--colore-testo-secondario); }
.anteprime-file { display: none; width: 100%; min-height: 100%; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 2px; padding: 2px; background: var(--colore-fondo-profondo); }
.anteprime-file img, .documento-anteprima { width: 100%; min-height: 140px; height: 100%; max-height: 280px; object-fit: cover; background: var(--colore-superficie); }
.documento-anteprima { display: grid; place-items: center; color: var(--colore-testo-tenue); font-family: var(--font-mono); font-size: var(--testo-sm); letter-spacing: .14em; }
.area-file.con-anteprima { min-height: clamp(300px, 44vh, 500px); }
.area-file.con-anteprima .anteprime-file { display: grid; }
.area-file.con-anteprima .area-file-contenuto { display: none; }
.decisione-rapida { display: none; grid-template-columns: .7fr 1.45fr .8fr 1fr; gap: var(--spazio-4); align-items: end; margin-top: var(--spazio-4); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.decisione-rapida.visibile { display: grid; }
.decisione-rapida fieldset, .orientamento-reference-rapido fieldset, .gruppo-campo { display: grid; gap: var(--spazio-2); min-width: 0; margin: 0; border: 0; padding: 0; }
.decisione-rapida legend, .campo-compatto, .orientamento-reference-rapido legend, .orientamento-reference-rapido > label, .gruppo-campo > label, .gruppo-campo > legend { color: var(--colore-testo-secondario); font-size: var(--testo-xs); font-weight: 670; }
.file-in-attesa p { overflow: hidden; margin: var(--spazio-2) 0 0; text-overflow: ellipsis; white-space: nowrap; }
.campo-compatto, .orientamento-reference-rapido > label { display: grid; gap: var(--spazio-2); }
.scelta-preferenza { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spazio-1); }
.scelta-preferenza input, .scelte-risposta input { position: absolute; opacity: 0; pointer-events: none; }
.scelta-preferenza label, .scelte-risposta span { display: grid; min-height: var(--altezza-controllo); place-items: center; border: 1px solid var(--colore-linea); border-radius: var(--raggio-sm); padding: var(--spazio-2); background: var(--colore-fondo-profondo); color: var(--colore-testo-secondario); cursor: pointer; font-size: var(--testo-sm); font-weight: 620; text-align: center; transition: border-color var(--transizione-rapida), background-color var(--transizione-rapida), color var(--transizione-rapida); }
.scelta-preferenza input:checked + label, .scelte-risposta input:checked + span { border-color: var(--colore-accento); background: var(--colore-accento); color: var(--colore-su-accento); }
.azioni-caricamento { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: var(--spazio-4); }
.azioni-caricamento p { margin-right: auto; }
.dati-insieme { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(160px, 1fr)); gap: var(--spazio-4); align-items: end; border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.dati-insieme[hidden] { display: none; }
.dati-insieme p { margin: var(--spazio-1) 0 0; color: var(--colore-testo-tenue); font-size: var(--testo-xs); }
.popup-esito { width: min(520px, calc(100vw - var(--spazio-6))); max-width: none; border: 1px solid var(--colore-linea); border-radius: var(--raggio-md); padding: 0; background: var(--colore-superficie); color: var(--colore-testo); }
.popup-esito::backdrop { background: rgba(0, 0, 0, .78); backdrop-filter: blur(7px); }
.popup-esito-contenuto { display: grid; gap: var(--spazio-4); padding: var(--spazio-6); }
.popup-esito-contenuto h2, .popup-esito-contenuto p { margin: 0; }
.popup-esito-contenuto p { line-height: 1.55; }
.popup-esito-contenuto small { color: var(--colore-testo-secondario); line-height: 1.5; }
.popup-esito-contenuto button { justify-self: end; }
.popup-esito-errore { border-color: var(--colore-errore); }
.popup-esito-avviso { border-color: var(--colore-accento); }
.flusso-reference { min-height: 70vh; border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-8); scroll-margin-top: var(--altezza-testata); }
.flusso-reference > header { display: flex; align-items: end; justify-content: space-between; gap: var(--spazio-4); margin-bottom: var(--spazio-5); }
.flusso-reference h2 { margin: var(--spazio-1) 0 0; font-size: clamp(1.8rem, 3vw, 2.8rem); font-weight: 540; letter-spacing: -.045em; }
.flusso-reference > header > span, .memoria-vuota { color: var(--colore-testo-secondario); }
.ricerca-memoria-sticky { position: sticky; top: var(--altezza-testata); z-index: 20; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--spazio-2); margin: 0 calc(var(--spazio-2) * -1) var(--spazio-5); border-block: 1px solid var(--colore-linea); padding: var(--spazio-3) var(--spazio-2); background: rgba(12, 13, 11, .96); backdrop-filter: blur(14px); }
.ricerca-memoria-sticky input { border-radius: var(--raggio-pillola); padding-inline: var(--spazio-5); background: var(--colore-superficie); }
.ricerca-memoria-sticky .tasto-reset { display: grid; place-items: center; }
.mosaico-reference { width: 100%; column-width: 210px; column-count: auto; column-gap: var(--spazio-2); }
.tessera-reference { position: relative; display: block; overflow: hidden; width: 100%; min-height: 160px; break-inside: avoid; margin: 0 0 var(--spazio-2); border: 0; border-radius: var(--raggio-sm); padding: 0; background: var(--colore-superficie); text-align: left; }
.tessera-reference img { display: block; width: 100%; height: auto; filter: saturate(.82); transition: filter var(--transizione), transform var(--transizione); }
.tessera-reference:hover img { filter: saturate(1); transform: scale(1.012); }
.stato-tessera { position: absolute; right: var(--spazio-2); bottom: var(--spazio-2); border: 1px solid rgba(242, 241, 235, .16); border-radius: var(--raggio-pillola); padding: 6px 9px; background: rgba(7, 8, 6, .88); color: var(--colore-testo); font-size: .625rem; font-weight: 680; letter-spacing: .035em; line-height: 1; }
.tessera-reference.in-caricamento { cursor: progress; }
.tessera-reference.in-caricamento img, .tessera-reference.in-caricamento .documento-tessera { animation: reference-in-caricamento 1.2s ease-in-out infinite alternate; filter: grayscale(1) saturate(0); opacity: .42; }
.tessera-reference.in-caricamento .stato-tessera { border-color: var(--colore-accento); color: var(--colore-accento); }
.documento-tessera { display: grid; min-height: 220px; place-items: center; color: var(--colore-testo-tenue); font-size: var(--testo-sm); letter-spacing: .14em; }
.sentinella-memoria { min-height: 96px; padding: var(--spazio-5); color: var(--colore-testo-tenue); font-size: var(--testo-xs); text-align: center; }

/* Dettaglio rapido */
.dettaglio-reference-rapido { width: min(1380px, calc(100vw - var(--spazio-7))); height: min(880px, calc(100dvh - var(--spazio-7))); max-width: none; max-height: none; overflow: auto; grid-template-columns: minmax(0, 1.72fr) minmax(360px, .86fr); border: 1px solid var(--colore-linea); border-radius: var(--raggio-md); padding: 0; background: var(--colore-fondo); color: var(--colore-testo); opacity: 0; transform: translateY(14px) scale(.985); }
.dettaglio-reference-rapido:not([open]) { display: none; }
.dettaglio-reference-rapido[open] { display: grid; animation: popup-reference-entra .32s cubic-bezier(.2, .75, .25, 1) forwards; }
.dettaglio-reference-rapido::backdrop { background: rgba(0, 0, 0, 0); backdrop-filter: blur(0); transition: background-color .32s ease, backdrop-filter .32s ease; }
.dettaglio-reference-rapido[open]::backdrop { background: rgba(0, 0, 0, .78); backdrop-filter: blur(8px); }
.chiudi-reference { position: absolute; top: var(--spazio-4); right: var(--spazio-4); z-index: 2; width: var(--altezza-controllo); min-width: var(--altezza-controllo); padding: 0; background: rgba(12, 13, 11, .92); font-size: 1.3rem; }
.media-reference-rapida { display: grid; min-width: 0; min-height: 0; place-items: center; overflow: auto; background: var(--colore-fondo-profondo); }
.media-reference-rapida img { display: block; width: auto; max-width: 100%; height: auto; max-height: 100%; object-fit: contain; animation: immagine-reference-entra .42s ease-out both; }
.controlli-reference-rapida { overflow: auto; border-left: 1px solid var(--colore-linea); padding: var(--spazio-7) var(--spazio-6) var(--spazio-6); }
.controlli-reference-rapida h2 { overflow-wrap: anywhere; margin: var(--spazio-1) 0 0; font-size: var(--testo-lg); font-weight: 570; }
.stato-reference-rapida { margin: var(--spazio-5) 0; border-block: 1px solid var(--colore-linea); padding: var(--spazio-4) 0; color: var(--colore-testo-secondario); }
.orientamento-reference-rapido, .conferma-deduzione { display: grid; gap: var(--spazio-4); }
.dettaglio-reference-rapido [data-nuovo-giudizio] { margin-top: var(--spazio-2); }
.orientamento-reference-rapido:not([hidden]) { animation: giudizio-reference-apri .24s ease-out both; }
.storico-reference-rapida { margin-top: var(--spazio-7); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-6); }
.storico-reference-rapida h3 { margin: var(--spazio-2) 0 var(--spazio-4); font-size: var(--testo-md); font-weight: 570; }
.consolidato-reference { margin-bottom: var(--spazio-4); border: 1px solid var(--colore-accento); border-radius: var(--raggio-sm); padding: var(--spazio-3); background: var(--colore-superficie); }
.consolidato-reference p { margin: var(--spazio-2) 0 0; color: var(--colore-testo-secondario); line-height: 1.5; }
.lista-storico-reference { display: grid; gap: var(--spazio-2); }
.evento-storico-reference { border-left: 2px solid var(--colore-linea); padding: var(--spazio-2) var(--spazio-3); }
.evento-storico-reference header { display: flex; justify-content: space-between; gap: var(--spazio-3); }
.evento-storico-reference small { color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.evento-storico-reference p { margin: var(--spazio-2) 0 0; color: var(--colore-testo-secondario); line-height: 1.45; white-space: pre-wrap; }
.evento-raw { opacity: .72; }
.orientamento-reference-rapido > button { justify-self: end; }
.deduzione-reference-rapida { margin-top: var(--spazio-6); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-6); }
.deduzione-reference-rapida p { margin: var(--spazio-3) 0; font-size: var(--testo-md); line-height: 1.55; }
.deduzione-reference-rapida small, .deduzione-indisponibile { color: var(--colore-testo-secondario); }
.conferma-deduzione { margin-top: var(--spazio-5); }
.conferma-deduzione label { display: grid; gap: var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-xs); font-weight: 670; }
.azioni-deduzione { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spazio-2); }
.controlli-reference-rapida > .collegamento-testuale { display: inline-block; margin-top: var(--spazio-5); }
@keyframes popup-reference-entra { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes immagine-reference-entra { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: scale(1); } }
@keyframes giudizio-reference-apri { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

/* Memoria */
.ricerca-memoria { display: grid; grid-template-columns: 1fr auto auto; gap: var(--spazio-2); margin-bottom: var(--spazio-5); }
.ricerca-memoria input { border-radius: var(--raggio-pillola); padding-inline: var(--spazio-5); background: var(--colore-superficie); }
.ricerca-memoria .tasto-reset { display: grid; place-items: center; }
.avviso-memoria { margin: calc(var(--spazio-3) * -1) 0 var(--spazio-5); border-left: 2px solid var(--colore-successo); padding: var(--spazio-3) var(--spazio-4); background: var(--colore-superficie); color: var(--colore-testo-secondario); }
.avviso-memoria.avviso { border-color: var(--colore-accento); }
.avviso-memoria.errore { border-color: var(--colore-errore); }
.layout-memoria { display: grid; grid-template-columns: minmax(290px, .7fr) minmax(0, 1.3fr); gap: var(--spazio-5); align-items: start; }
.elenco-memoria { display: grid; gap: var(--spazio-2); }
.titolo-elenco-memoria { display: flex; justify-content: space-between; padding: 0 var(--spazio-1) var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-sm); }
.titolo-elenco-memoria a { color: var(--colore-accento); text-decoration: none; }
.ricordo { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; gap: var(--spazio-3); border: 1px solid transparent; border-bottom-color: var(--colore-linea); padding: var(--spazio-2) var(--spazio-1) var(--spazio-3); color: var(--colore-testo); text-decoration: none; transition: border-color var(--transizione-rapida), background-color var(--transizione-rapida); }
.ricordo:hover, .ricordo.selezionato { border-color: var(--colore-linea-forte); border-radius: var(--raggio-sm); background: var(--colore-superficie); }
.miniatura-ricordo { display: grid; width: 68px; height: 68px; place-items: center; overflow: hidden; border-radius: var(--raggio-sm); background: var(--colore-fondo-profondo); color: var(--colore-testo-tenue); font-size: var(--testo-xs); font-weight: 720; }
.miniatura-ricordo img { width: 100%; height: 100%; object-fit: cover; }
.corpo-ricordo { display: flex; min-width: 0; flex-direction: column; gap: var(--spazio-1); }
.corpo-ricordo strong, .corpo-ricordo > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.corpo-ricordo small, .conteggi-ricordo, .corpo-ricordo > span:last-child { color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.reazione-ricordo { width: max-content; margin-top: var(--spazio-1); color: var(--colore-accento); font-size: var(--testo-xs); font-weight: 680; }
.conteggi-ricordo { display: flex; align-items: flex-end; flex-direction: column; gap: var(--spazio-1); }
.dettaglio-memoria { position: sticky; top: calc(var(--altezza-testata) + var(--spazio-4)); min-height: 480px; overflow: hidden; }
.invito-dettaglio, .vuoto-memoria { display: grid; min-height: 240px; place-content: center; padding: var(--spazio-6); text-align: center; }
.invito-dettaglio > span { margin-bottom: var(--spazio-3); color: var(--colore-accento); font-size: 2rem; }
.invito-dettaglio p, .vuoto-memoria p, .testata-dettaglio p, .nota-vuota { color: var(--colore-testo-secondario); line-height: 1.55; }
.testata-dettaglio { display: flex; justify-content: space-between; gap: var(--spazio-5); padding: var(--spazio-5); }
.testata-dettaglio h2, .testata-dettaglio p { margin: 0; }
.testata-dettaglio h2 { overflow-wrap: anywhere; font-size: clamp(1.3rem, 3vw, 2rem); font-weight: 560; }
.testata-dettaglio p { margin-top: var(--spazio-2); font-size: var(--testo-sm); }
.chiudi-dettaglio { display: grid; width: 38px; height: 38px; flex: 0 0 auto; place-items: center; border: 1px solid var(--colore-linea); border-radius: 50%; text-decoration: none; font-size: 1.3rem; }
.originale-memoria { position: relative; min-height: 260px; border-block: 1px solid var(--colore-linea); background: var(--colore-fondo-profondo); }
.originale-memoria img { display: block; width: 100%; max-height: 500px; object-fit: contain; }
.originale-memoria > a { position: absolute; right: var(--spazio-3); bottom: var(--spazio-3); border: 1px solid var(--colore-linea); border-radius: var(--raggio-pillola); padding: 7px 11px; background: rgba(12, 13, 11, .92); text-decoration: none; font-size: var(--testo-xs); }
.documento-memoria { display: grid; min-height: 260px; place-content: center; text-align: center; }
.documento-memoria strong { font-size: 3rem; }
.documento-memoria span { color: var(--colore-testo-secondario); }
.sezioni-dettaglio { display: grid; }
.sezioni-dettaglio > section, .dati-tecnici-memoria { border-bottom: 1px solid var(--colore-linea); padding: var(--spazio-5); }
.griglia-valutazione { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spazio-2); }
.griglia-valutazione > div { display: grid; gap: var(--spazio-1); border-left: 1px solid var(--colore-linea); padding-left: var(--spazio-3); }
.griglia-valutazione small, .lettura-curatore footer { color: var(--colore-testo-secondario); }
.sezioni-dettaglio blockquote { margin: 0; border-left: 2px solid var(--colore-accento); padding-left: var(--spazio-4); line-height: 1.55; }
.sezioni-dettaglio blockquote + blockquote { margin-top: var(--spazio-4); }
.sezioni-dettaglio blockquote footer { margin-top: var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.deduzioni-curatore { background: var(--colore-superficie-alta); }
.lettura-curatore, .proposta-revisione { border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-5); }
.lettura-curatore + .lettura-curatore { margin-top: var(--spazio-5); }
.testata-lettura { display: flex; align-items: center; justify-content: space-between; gap: var(--spazio-3); }
.testata-lettura small, .lettura-curatore > footer, .proposta-revisione > footer { color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.sintesi-lettura { margin-top: var(--spazio-5); }
.sintesi-curatore, .lettura-aggiornata { margin: var(--spazio-2) 0 0; font-size: var(--testo-md); line-height: 1.6; }
.gruppo-lettura { margin-top: var(--spazio-4); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.gruppo-lettura ul { display: grid; gap: var(--spazio-2); margin: var(--spazio-3) 0 0; padding: 0; list-style: none; }
.gruppo-lettura li { color: var(--colore-testo-secondario); }
.gruppo-lettura li > span { display: inline-block; margin-right: var(--spazio-2); color: var(--colore-testo); font-size: var(--testo-xs); font-weight: 680; text-transform: uppercase; }
.gruppo-lettura li > small { display: block; margin-top: var(--spazio-1); color: var(--colore-testo-tenue); }
.lettura-curatore > footer { display: block; margin-top: var(--spazio-5); }
.domanda-curatore { display: grid; grid-template-columns: auto 1fr; gap: var(--spazio-3); margin-top: var(--spazio-5); border-top: 1px solid var(--colore-accento); padding-top: var(--spazio-5); }
.domanda-curatore > span { color: var(--colore-accento); font-size: var(--testo-lg); }
.domanda-curatore h3 { margin: var(--spazio-1) 0 var(--spazio-2); font-size: var(--testo-md); }
.domanda-curatore p, .domanda-curatore small { margin: 0; color: var(--colore-testo-secondario); }
.modulo-risposta-curatore, .risposta-registrata, .ripeti-revisione { grid-column: 2; display: grid; gap: var(--spazio-3); margin-top: var(--spazio-2); }
.scelte-risposta { display: flex; flex-wrap: wrap; gap: var(--spazio-1); }
.risposta-registrata, .decisione-registrata { border-left: 2px solid var(--colore-successo); padding-left: var(--spazio-3); }
.risposta-registrata span, .decisione-registrata small { color: var(--colore-testo-secondario); }
.ripeti-revisione { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.proposta-revisione { grid-column: 1 / -1; margin-top: var(--spazio-5); }
.proposta-revisione > header { display: flex; gap: var(--spazio-3); }
.proposta-revisione h3 { margin: 0; }
.esiti-revisione { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spazio-4); margin-top: var(--spazio-5); }
.esito-revisione { border-top: 2px solid var(--colore-linea); padding-top: var(--spazio-3); }
.esito-revisione.confermato { border-color: var(--colore-successo); }
.esito-revisione.corretto { border-color: var(--colore-accento); }
.esito-revisione.smentito { border-color: var(--colore-errore); }
.esito-revisione ul { margin: var(--spazio-2) 0 0; padding-left: 18px; }
.esito-revisione li { margin-top: var(--spazio-2); color: var(--colore-testo-secondario); }
.esito-revisione del, .esito-revisione li > span, .esito-revisione li > small { display: block; }
.esito-revisione li > span { color: var(--colore-testo); }
.nota-prudenza { display: grid; gap: var(--spazio-1); margin-top: var(--spazio-5); border-left: 1px solid var(--colore-linea-forte); padding-left: var(--spazio-3); color: var(--colore-testo-secondario); }
.modulo-decisione-revisione { display: grid; gap: var(--spazio-3); margin-top: var(--spazio-5); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.modulo-decisione-revisione button, .modulo-risposta-curatore button { justify-self: end; }
.decisione-registrata { margin-top: var(--spazio-5); }
.dati-tecnici-memoria summary { cursor: pointer; font-weight: 620; }
.dati-tecnici-memoria dl { display: grid; gap: var(--spazio-3); margin: var(--spazio-4) 0 0; }
.dati-tecnici-memoria dl div { display: grid; grid-template-columns: minmax(120px, .35fr) 1fr; gap: var(--spazio-4); }
.dati-tecnici-memoria dt { color: var(--colore-testo-secondario); }
.dati-tecnici-memoria dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }

/* Produzione */
.pagina-produzione { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: calc(100dvh - var(--altezza-ingresso-vista)); }
body[data-pagina="produzione"] .contenuto { padding-bottom: 0; }
.testata-chat { display: flex; align-items: end; justify-content: space-between; gap: var(--spazio-5); border-bottom: 1px solid var(--colore-linea); padding-bottom: var(--spazio-5); }
.testata-chat h1, .testata-chat p { margin: 0; }
.testata-chat h1 { font-size: var(--testo-xl); font-weight: 560; letter-spacing: -.05em; }
.testata-chat p { max-width: 500px; color: var(--colore-testo-secondario); }
.conversazione { display: flex; min-height: 380px; flex-direction: column; gap: var(--spazio-4); overflow-y: auto; padding: var(--spazio-6) 0; }
.vuoto-chat { display: grid; flex: 1; place-content: center; color: var(--colore-testo-secondario); text-align: center; }
.messaggio-chat { max-width: min(76%, 740px); border-left: 2px solid var(--colore-linea-forte); padding: var(--spazio-3) var(--spazio-4); line-height: 1.6; white-space: pre-wrap; }
.messaggio-chat.utente { align-self: flex-end; border-right: 2px solid var(--colore-accento); border-left: 0; }
.messaggio-chat.sistema { align-self: flex-start; }
.compositore { position: sticky; right: 0; bottom: 0; left: 0; z-index: 3; width: 100vw; margin-left: calc(50% - 50vw); padding: var(--spazio-4) clamp(var(--spazio-4), 4vw, var(--spazio-7)) calc(var(--spazio-4) + env(safe-area-inset-bottom)); background: linear-gradient(to bottom, transparent, var(--colore-fondo) var(--spazio-4)); }
.compositore-campo { display: grid; grid-template-areas: "allega testo invia" ". file ."; grid-template-columns: 48px minmax(0, 1fr) 48px; align-items: end; width: 100%; min-height: 56px; border: 1px solid var(--colore-linea-forte); border-radius: var(--raggio-pillola); padding: 0 var(--spazio-1); background: var(--colore-superficie-alta); transition: border-color var(--transizione-rapida), background-color var(--transizione-rapida); }
.compositore-campo:focus-within { border-color: var(--colore-testo-tenue); background: #24251f; }
.compositore textarea { grid-area: testo; min-height: 54px; max-height: 70dvh; border: 0; border-radius: 0; padding: 16px var(--spazio-2) 14px; background: transparent; resize: none; overflow-y: hidden; box-shadow: none; }
.compositore textarea:focus { outline: 0; }
.tasto-allegato { grid-area: allega; display: grid; width: 44px; min-width: 44px; min-height: 54px; place-items: center; border: 0; border-radius: 50%; padding: 0; background: transparent; color: var(--colore-testo-secondario); font-size: 1.4rem; }
.tasto-allegato:hover { background: var(--colore-superficie); color: var(--colore-testo); }
.tasto-invio { grid-area: invia; width: 40px; min-width: 40px; height: 40px; margin: 0 2px 7px 0; border-radius: 50%; padding: 0; }
.tasto-allegato input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.file-chat { grid-area: file; min-height: 0; padding: 0 0 var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.file-chat:empty { display: none; }

/* Impostazioni */
.griglia-impostazioni { display: grid; gap: var(--spazio-4); }
.sezione-impostazioni { display: grid; grid-template-columns: minmax(180px, .38fr) 1fr; gap: var(--spazio-7); padding: var(--spazio-6); }
.sezione-impostazioni + .sezione-impostazioni { border-top: 1px solid var(--colore-linea); }
.sezione-impostazioni h2 { margin: 0 0 var(--spazio-2); font-size: var(--testo-lg); font-weight: 560; }
.sezione-impostazioni header p { margin: 0; color: var(--colore-testo-secondario); }
.campi-impostazioni { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--spazio-4); }
.campi-impostazioni label { display: grid; gap: var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-sm); }
.campo-largo, .riga-stato, .nota-sicurezza, .diagnostica { grid-column: 1 / -1; }
.riga-stato { display: flex; align-items: center; justify-content: space-between; gap: var(--spazio-4); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.nota-sicurezza { border-left: 2px solid var(--colore-accento); padding-left: var(--spazio-3); color: var(--colore-testo-secondario); }
.diagnostica { display: grid; gap: 0; border-top: 1px solid var(--colore-linea); }
.voce-diagnostica { display: grid; grid-template-columns: minmax(130px, .3fr) 1fr auto; gap: var(--spazio-4); padding: var(--spazio-3) 0; border-bottom: 1px solid var(--colore-linea); }
.voce-diagnostica span, .voce-diagnostica small { color: var(--colore-testo-secondario); }
.campo-modello { align-content: start; }
.campo-modello { grid-column: 1 / -1; }
.stato-modello { display: flex; align-items: center; gap: var(--spazio-2); margin-top: var(--spazio-2); font-size: var(--testo-xs); }
.pallino-stato { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: currentColor; }
.stato-modello-ok { color: var(--colore-successo); }
.stato-modello-errore, .errore-modello { color: var(--colore-errore); }
.errore-modello { display: block; margin-top: var(--spazio-1); line-height: 1.4; }

/* Monitor */
.monitor-motore { position: fixed; z-index: 50; font-family: var(--font-mono); }
.console-monitor { position: fixed; top: var(--altezza-testata); right: 0; bottom: 0; width: var(--larghezza-monitor); border-left: 1px solid var(--colore-linea); background: var(--colore-fondo-profondo); transform: translateX(102%); transition: transform var(--transizione); }
.monitor-motore[data-monitor-stato="aperto"] .console-monitor { transform: translateX(0); }
.console-monitor-testata { display: flex; min-height: 58px; align-items: center; justify-content: space-between; gap: var(--spazio-3); border-bottom: 1px solid var(--colore-linea); padding: var(--spazio-3) var(--spazio-4); }
.console-monitor-testata strong, .console-monitor-testata span { display: block; }
.console-monitor-testata strong { margin-top: var(--spazio-1); font-size: var(--testo-sm); font-weight: 540; }
.prompt-monitor { color: var(--colore-successo); font-size: var(--testo-xs); }
.azioni-monitor button { width: 34px; min-width: 34px; min-height: 34px; padding: 0; }
.output-monitor { height: calc(100% - 58px); overflow: auto; padding: var(--spazio-4); }
.riga-monitor { display: block; color: var(--colore-testo-secondario); font-size: var(--testo-xs); font-weight: 400; }
.livello-successo > summary code, .riga-monitor.livello-successo { color: var(--colore-successo); }
.livello-avviso > summary code, .riga-monitor.livello-avviso { color: var(--colore-accento); }
.livello-errore > summary code, .riga-monitor.livello-errore { color: var(--colore-errore); }
.blocco-ciclo-monitor { margin-bottom: var(--spazio-5); }
.intestazione-ciclo-monitor { display: flex; justify-content: space-between; gap: var(--spazio-3); border-bottom: 1px solid var(--colore-linea); padding-bottom: var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.evento-console { padding: var(--spazio-2) 0 0 var(--spazio-2); }
.evento-console summary { cursor: pointer; }
.evento-console summary code { font-size: var(--testo-xs); font-weight: 400; white-space: normal; }
.evento-console pre { margin: var(--spazio-2) 0; border-left: 1px solid var(--colore-linea); padding: var(--spazio-2); color: var(--colore-testo-secondario); font-size: .65rem; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 900px) {
    :root { --altezza-testata: 62px; }
    body.monitor-aperto .testata, body.monitor-aperto .contenuto { margin-right: 0; }
    .testata { grid-template-columns: 1fr auto; padding: 0 var(--spazio-3); }
    .marchio-descrizione { display: none; }
    .azioni-testata { grid-column: 2; }
    .navigazione { position: fixed; right: var(--spazio-3); bottom: var(--spazio-3); left: var(--spazio-3); z-index: 40; gap: 0; border: 1px solid var(--colore-linea); border-radius: var(--raggio-pillola); padding: var(--spazio-1); background: rgba(18, 19, 16, .96); }
    .navigazione a { flex: 1; padding: 10px var(--spazio-2); text-align: center; }
    .navigazione a[aria-current="page"] { border-radius: var(--raggio-pillola); background: var(--colore-superficie-attiva); }
    .navigazione a[aria-current="page"]::after { display: none; }
    .contenuto:not(.contenuto-home) { --spazio-iniziale-vista: var(--spazio-5); padding: var(--spazio-iniziale-vista) var(--spazio-4) var(--spazio-9); }
    .intestazione-pagina { grid-template-columns: 1fr; gap: var(--spazio-4); }
    .scelta-principale { grid-template-columns: 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); min-height: calc(100dvh - var(--altezza-ingresso-vista)); }
    .scelta-principale > a { min-height: calc((100dvh - var(--altezza-ingresso-vista)) / 2); padding: var(--spazio-6) var(--spazio-5); }
    .scelta-principale > a + a { border-top: 1px solid var(--colore-linea); border-left: 0; }
    .monogramma-home { width: 46px; height: 46px; padding: 11px; }
    .scelta-testo h1 { font-size: clamp(3rem, 15vw, 5.5rem); }
    body[data-pagina="addestramento"] .contenuto { padding: 0 var(--spazio-3) var(--spazio-9); }
    .ricerca-memoria-sticky { grid-template-columns: minmax(0, 1fr) auto; }
    .ricerca-memoria-sticky .tasto-reset { grid-column: 1 / -1; }
    .ingresso-addestramento { min-height: calc(100dvh - var(--altezza-testata) - var(--altezza-ingresso-vista)); padding: var(--spazio-5) 0; }
    .testata-addestramento h1 { font-size: clamp(2.1rem, 10vw, 3.4rem); }
    .testata-addestramento p { max-width: 32rem; margin-inline: auto; font-size: var(--testo-sm); }
    .area-file { min-height: 55dvh; }
    .decisione-rapida { grid-template-columns: 1fr; }
    .dati-insieme { grid-column: auto; grid-template-columns: 1fr; }
    .azioni-caricamento { grid-column: auto; align-items: stretch; flex-direction: column; }
    .azioni-caricamento button { width: 100%; }
    .mosaico-reference { column-width: 170px; column-count: auto; }
    .dettaglio-reference-rapido[open] { width: 100vw; height: 100dvh; max-height: 100dvh; display: block; overflow-y: auto; overscroll-behavior: contain; border: 0; border-radius: 0; }
    .media-reference-rapida { min-height: 0; max-height: none; padding: var(--spazio-8) var(--spazio-4); }
    .media-reference-rapida img { width: 100%; max-width: 100%; height: auto; max-height: none; }
    .controlli-reference-rapida { max-height: none; border-top: 1px solid var(--colore-linea); border-left: 0; padding: var(--spazio-6) var(--spazio-4) var(--spazio-9); }
    .ricerca-memoria { grid-template-columns: 1fr auto; }
    .ricerca-memoria .tasto-reset { grid-column: 1 / -1; }
    .layout-memoria { grid-template-columns: 1fr; }
    .dettaglio-memoria { position: static; grid-row: 1; }
    .dettaglio-memoria:has(.invito-dettaglio) { display: none; }
    .ricordo { grid-template-columns: 60px 1fr; }
    .miniatura-ricordo { width: 60px; height: 60px; }
    .conteggi-ricordo { display: none; }
    .griglia-valutazione, .esiti-revisione { grid-template-columns: 1fr; }
    .pagina-produzione { min-height: calc(100dvh - var(--altezza-testata) - 114px); }
    .testata-chat { align-items: start; flex-direction: column; }
    .sezione-impostazioni { grid-template-columns: 1fr; gap: var(--spazio-5); padding: var(--spazio-5); }
    .campi-impostazioni { grid-template-columns: 1fr; }
    .campo-largo, .riga-stato, .nota-sicurezza, .diagnostica { grid-column: auto; }
    .voce-diagnostica { grid-template-columns: 1fr auto; }
    .voce-diagnostica small { grid-column: 1 / -1; }
    .console-monitor { top: 0; width: 100vw; }
}

@media (max-width: 520px) {
    .marchio-logo { width: 104px; }
    .tasto-monitor-testata, .tasto-impostazioni { width: 40px; height: 40px; min-width: 40px; }
    .testata-addestramento h1 { font-size: 2.3rem; }
    .area-file { min-height: 58dvh; }
    .scelta-preferenza { grid-template-columns: 1fr; }
    .mosaico-reference { column-width: 130px; column-count: auto; }
    .intestazione-memoria { display: block; }
    .intestazione-memoria p { margin-top: var(--spazio-3); }
    .testata-dettaglio, .sezioni-dettaglio > section, .dati-tecnici-memoria { padding: var(--spazio-4); }
    .modulo-risposta-curatore, .risposta-registrata, .ripeti-revisione { grid-column: 1 / -1; }
    .domanda-curatore { grid-template-columns: 1fr; }
    .compositore { grid-template-columns: auto 1fr auto; }
    .messaggio-chat { max-width: 92%; }
}

/* Menu compatto: la navigazione nasce dall'icona R, su ogni viewport. */
.testata { display: flex; align-items: center; }
.menu-principale { position: relative; z-index: 31; width: var(--altezza-controllo); height: var(--altezza-controllo); overflow: hidden; border: 1px solid var(--colore-linea); border-radius: 50%; background: var(--colore-fondo-profondo); transition: width var(--transizione), height var(--transizione), border-radius var(--transizione), border-color var(--transizione-rapida); }
.menu-principale[data-menu-stato="aperto"] { width: min(270px, calc(100vw - (var(--spazio-4) * 2))); height: 318px; border-radius: var(--raggio-md); border-color: var(--colore-linea-forte); }
.tasto-menu-principale { position: absolute; top: 0; left: 0; z-index: 1; display: grid; width: var(--altezza-controllo); height: var(--altezza-controllo); min-height: 0; place-items: center; border: 0; border-radius: 50%; padding: 0; background: transparent; }
.tasto-menu-principale img { width: 28px; height: 33px; object-fit: contain; filter: invert(1); mix-blend-mode: difference; }
.tasto-menu-principale:hover { background: var(--colore-superficie-alta); }
.navigazione { position: static; display: grid; gap: var(--spazio-1); margin: calc(var(--altezza-controllo) + var(--spazio-2)) var(--spazio-2) var(--spazio-2); border: 0; border-radius: 0; padding: 0; background: transparent; opacity: 0; pointer-events: none; transform: translateY(-8px); transition: opacity var(--transizione-rapida), transform var(--transizione); }
.menu-principale[data-menu-stato="aperto"] .navigazione { opacity: 1; pointer-events: auto; transform: translateY(0); }
.navigazione a, .navigazione button { display: flex; min-height: 38px; align-items: center; justify-content: flex-start; border: 0; border-radius: var(--raggio-sm); padding: 0 var(--spazio-3); background: transparent; color: var(--colore-testo-secondario); font-size: var(--testo-sm); font-weight: 620; text-align: left; text-decoration: none; }
.navigazione a:hover, .navigazione button:hover, .navigazione a[aria-current="page"] { background: var(--colore-superficie-alta); color: var(--colore-testo); }
.navigazione a[aria-current="page"] { color: var(--colore-accento); }
@media (max-width: 900px) { .testata { padding: 0 var(--spazio-3); } }
@media (max-width: 520px) { .menu-principale { width: 40px; height: 40px; } .menu-principale[data-menu-stato="aperto"] { height: 304px; } .tasto-menu-principale { width: 40px; height: 40px; } .tasto-menu-principale img { width: 22px; height: 27px; } }

/* La shell non occupa più la viewport: resta fissato soltanto il menu R. */
:root { --altezza-testata: 0px; }
.testata { position: static; min-height: 0; height: 0; padding: 0; border: 0; background: transparent; transition: none; }
.menu-principale { position: fixed; top: var(--spazio-4); left: clamp(var(--spazio-3), 3vw, var(--spazio-6)); z-index: 90; }
.contenuto { min-height: 100dvh; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
}

@keyframes reference-in-caricamento {
    from { opacity: .28; }
    to { opacity: .58; }
}

/* Shell SPA pubblicabile: mantiene il sistema visivo locale e cambia soltanto
   navigazione, stato distribuito e comportamento installabile. */
body { overflow-x: hidden; }
body::before { position: fixed; inset: 0; z-index: -1; background: var(--colore-fondo); content: ""; }
.app[hidden], .schermata-accesso[hidden], .monitor-app[hidden], .toast[hidden] { display: none !important; }

.schermata-accesso { display: grid; min-height: 100dvh; grid-template-columns: 1fr minmax(320px, 520px); background: var(--colore-fondo); }
.accesso-marchio { display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--colore-linea); padding: clamp(32px, 6vw, 96px); background: var(--colore-fondo-profondo); }
.accesso-marchio img { width: min(420px, 70%); filter: invert(1); }
.accesso-marchio span { color: var(--colore-testo-tenue); font-family: var(--font-mono); letter-spacing: .16em; text-transform: uppercase; }
.modulo-accesso { display: grid; width: min(100%, 420px); align-content: center; gap: var(--spazio-4); padding: var(--spazio-7); }
.modulo-accesso h1 { margin: 0 0 var(--spazio-5); font-size: clamp(2.4rem, 5vw, 4.5rem); font-weight: 520; letter-spacing: -.06em; line-height: .92; }
.modulo-accesso label { display: grid; gap: var(--spazio-2); color: var(--colore-testo-secondario); font-size: var(--testo-sm); }
.modulo-accesso .scelta-accesso-persistente { display: flex; align-items: center; gap: var(--spazio-3); cursor: pointer; }
.scelta-accesso-persistente input { width: 18px; height: 18px; margin: 0; accent-color: var(--colore-accento); }
.avviso-configurazione { border-left: 2px solid var(--colore-accento); padding-left: var(--spazio-4); color: var(--colore-testo-secondario); }

.azioni-dispositivo { display: flex; flex-wrap: wrap; gap: var(--spazio-2); }
.nota-dispositivo { max-width: 64ch; color: var(--colore-testo-secondario); font-size: var(--testo-sm); line-height: 1.5; }

.app { display: flex; height: 100dvh; min-height: 0; flex-direction: column; overflow: hidden; isolation: isolate; }
.app .testata { flex: 0 0 auto; }
.stato-pc { width: auto; min-width: 44px; padding: 0 var(--spazio-3); border-radius: var(--raggio-pillola); color: var(--colore-testo-secondario); font-size: var(--testo-xs); }
.pallino-connessione { width: 7px; height: 7px; border-radius: 50%; background: var(--colore-errore); }
.stato-pc.online .pallino-connessione { background: var(--colore-successo); }
.tasto-testata { display: grid; width: var(--altezza-controllo); height: var(--altezza-controllo); place-items: center; border: 1px solid var(--colore-linea); border-radius: 50%; color: var(--colore-testo-secondario); font-family: var(--font-mono); font-size: .58rem; font-weight: 760; text-decoration: none; }
.tasto-testata[aria-current="page"] { border-color: var(--colore-accento); color: var(--colore-accento); }

.vista-pannello {
    position: fixed;
    top: var(--altezza-testata);
    bottom: 0;
    left: 50%;
    z-index: 20;
    margin: 0;
    overflow: auto;
    overscroll-behavior: contain;
    background: var(--colore-fondo);
    box-shadow: 0 28px 80px rgba(0, 0, 0, .32);
    will-change: transform;
    transition: transform .68s cubic-bezier(.2, .78, .16, 1);
}
.vista-pannello.vista-in-arrivo {
    z-index: 21;
    pointer-events: none;
    transform: translate3d(calc(-50% + var(--pannello-ingresso-x, 0%)), var(--pannello-ingresso-y, 0%), 0) scale(.965);
}
.vista-pannello.vista-in-arrivo.vista-pannello-attivo {
    pointer-events: auto;
    transform: translate3d(-50%, 0, 0) scale(1);
}
.vista-pannello.vista-in-uscita { pointer-events: none; transform: translate3d(-50%, 0, 0) scale(1); }
.vista-pannello.vista-in-uscita.vista-pannello-esce {
    transform: translate3d(calc(-50% + var(--pannello-uscita-x, 0%)), var(--pannello-uscita-y, 0%), 0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
    .vista-pannello { transition: none; }
}

.pagina-stato { display: flex; align-items: center; gap: var(--spazio-3); color: var(--colore-testo-secondario); font-size: var(--testo-sm); }
.pagina-stato .pallino-connessione { flex: 0 0 auto; }
.pagina-stato.online .pallino-connessione { background: var(--colore-successo); }
.azioni-pagina { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--spazio-2); }
.caricamento-vista { display: grid; min-height: 54vh; place-content: center; color: var(--colore-testo-secondario); }

.scelta-principale-spa { min-height: calc(100dvh - var(--altezza-ingresso-vista)); }
.scelta-principale-spa .scelta-testo small { display: block; margin-top: var(--spazio-3); color: var(--colore-testo-secondario); font-family: var(--font-mono); font-size: var(--testo-xs); font-weight: 400; letter-spacing: .03em; }
.scelta-principale-spa .scelta-azione span:first-child { max-width: 44ch; }

.pagina-addestramento-spa .ingresso-addestramento { min-height: auto; padding-top: 0; }

@media (max-width: 520px) { :root { --altezza-ingresso-vista: 72px; } }
.pagina-addestramento-spa .testata-addestramento { display: flex; align-items: end; justify-content: space-between; gap: var(--spazio-5); width: min(100%, 1400px); text-align: left; }
.pagina-addestramento-spa .testata-addestramento h1 { max-width: 900px; }
.pagina-addestramento-spa .area-file { border: 1px dashed var(--colore-linea-forte); }
.pagina-addestramento-spa .flusso-reference { margin-top: var(--spazio-8); }
.anteprime-file:empty { display: none !important; }
.anteprime-file:not(:empty) { display: grid; }
.area-file.con-anteprima .area-file-contenuto { display: none; }
.memoria-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--spazio-4); margin-bottom: var(--spazio-5); }
.memoria-toolbar h2 { margin: 0; }
.tessera-reference { cursor: pointer; }
.tessera-reference.senza-immagine { display: grid; min-height: 240px; place-items: center; padding: var(--spazio-5); color: var(--colore-testo-tenue); font-family: var(--font-mono); }
.tessera-reference .placeholder-reference { text-align: center; }

.pagina-produzione-spa { min-height: calc(100dvh - var(--altezza-testata) - var(--spazio-9)); }
.pagina-produzione-spa .compositore { grid-template-columns: minmax(0, 1fr) auto; }
.messaggio-chat small { display: block; margin-top: var(--spazio-2); color: var(--colore-testo-tenue); font-family: var(--font-mono); font-size: var(--testo-xs); }
.messaggio-chat.errore { border-color: var(--colore-errore); color: var(--colore-errore); }

.pagina-profilo-spa .sezione-profilo-brand { padding: var(--spazio-6); }
.pagina-profilo-spa .griglia-profilo-brand { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spazio-6); margin-top: var(--spazio-6); }
.pagina-profilo-spa .griglia-profilo-brand section { border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.pagina-profilo-spa .griglia-profilo-brand h2 { font-size: var(--testo-md); }
.pagina-profilo-spa .griglia-profilo-brand li { margin-bottom: var(--spazio-2); color: var(--colore-testo-secondario); }
.profilo-sintesi { max-width: 70ch; font-size: var(--testo-lg); line-height: 1.55; }

.monitor-app { position: fixed; top: var(--altezza-testata); right: 0; bottom: 0; z-index: 80; width: min(430px, 100vw); overflow: auto; border-left: 1px solid var(--colore-linea); padding: var(--spazio-5); background: var(--colore-fondo-profondo); box-shadow: -24px 0 80px rgba(0,0,0,.34); animation: monitor-entra var(--transizione) both; }
.monitor-app > header { display: flex; align-items: center; justify-content: space-between; gap: var(--spazio-4); border-bottom: 1px solid var(--colore-linea); padding-bottom: var(--spazio-4); }
.monitor-app h2 { margin: 0; font-size: var(--testo-lg); }
.monitor-app > header button { width: 40px; min-width: 40px; padding: 0; }
.registro-app { display: grid; gap: 0; margin-top: var(--spazio-4); }
.evento-app { border-bottom: 1px solid var(--colore-linea); padding: var(--spazio-4) 0; }
.evento-app strong, .evento-app small { display: block; }
.evento-app small { margin-top: var(--spazio-1); color: var(--colore-testo-secondario); }
@keyframes monitor-entra { from { transform: translateX(100%); } }

.dettaglio-reference { width: min(1180px, calc(100vw - var(--spazio-7))); max-width: none; max-height: calc(100dvh - var(--spazio-7)); overflow: auto; border: 1px solid var(--colore-linea); border-radius: var(--raggio-md); padding: 0; background: var(--colore-fondo); color: var(--colore-testo); }
.dettaglio-reference::backdrop { background: rgba(0,0,0,.8); backdrop-filter: blur(7px); }
.dettaglio-reference .chiudi-reference { position: sticky; top: var(--spazio-3); z-index: 5; float: right; margin: var(--spazio-3); }
.corpo-dettaglio { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, .8fr); min-height: 640px; }
.media-dettaglio { display: grid; min-height: 520px; place-items: center; background: var(--colore-fondo-profondo); }
.media-dettaglio img { width: 100%; height: 100%; max-height: 82dvh; object-fit: contain; }
.testo-dettaglio { overflow: auto; border-left: 1px solid var(--colore-linea); padding: var(--spazio-6); }
.testo-dettaglio h2 { margin: 0; overflow-wrap: anywhere; }
.testo-dettaglio section { margin-top: var(--spazio-6); border-top: 1px solid var(--colore-linea); padding-top: var(--spazio-4); }
.testo-dettaglio form { display: grid; gap: var(--spazio-3); }
.timeline-dettaglio { display: grid; gap: var(--spazio-3); }
.timeline-dettaglio article { border-left: 1px solid var(--colore-linea-forte); padding-left: var(--spazio-3); }
.timeline-dettaglio small { color: var(--colore-testo-tenue); }

.toast { position: fixed; right: var(--spazio-5); bottom: var(--spazio-5); z-index: 100; max-width: min(420px, calc(100vw - var(--spazio-6))); border: 1px solid var(--colore-linea-forte); border-radius: var(--raggio-md); padding: var(--spazio-4) var(--spazio-5); background: var(--colore-superficie-alta); box-shadow: 0 18px 60px rgba(0,0,0,.35); }
.toast.errore { border-color: var(--colore-errore); }

@media (max-width: 900px) {
    .schermata-accesso { grid-template-columns: 1fr; }
    .accesso-marchio { min-height: 32vh; border-right: 0; border-bottom: 1px solid var(--colore-linea); padding: var(--spazio-6); }
    .accesso-marchio img { width: 180px; }
    .modulo-accesso { justify-self: center; padding: var(--spazio-6) var(--spazio-5) calc(var(--spazio-8) + env(safe-area-inset-bottom)); }
    .stato-pc { padding-inline: var(--spazio-3); }
    .stato-pc span:last-child { display: none; }
    .tasto-testata { width: 40px; height: 40px; }
    .pagina-addestramento-spa .testata-addestramento { align-items: stretch; flex-direction: column; }
    .pagina-addestramento-spa .area-file { min-height: 48dvh; }
    .pagina-profilo-spa .griglia-profilo-brand { grid-template-columns: 1fr; }
    .monitor-app { top: 0; padding-top: calc(var(--spazio-5) + env(safe-area-inset-top)); }
    .corpo-dettaglio { display: block; }
    .dettaglio-reference { width: 100vw; height: 100dvh; max-height: none; border: 0; border-radius: 0; }
    .media-dettaglio { min-height: 45dvh; }
    .testo-dettaglio { border-top: 1px solid var(--colore-linea); border-left: 0; padding: var(--spazio-5) var(--spazio-4) calc(var(--spazio-9) + env(safe-area-inset-bottom)); }
    .toast { right: var(--spazio-3); bottom: calc(78px + env(safe-area-inset-bottom)); left: var(--spazio-3); }
}

@media (max-width: 520px) {
    .scelta-principale-spa .scelta-azione span:first-child { font-size: .64rem; }
    .memoria-toolbar { align-items: stretch; flex-direction: column; }
    .pagina-addestramento-spa .testata-addestramento h1 { font-size: 2.25rem; }
}
