@font-face {
  font-family: Manrope; src: url("fonts/Manrope.ttf") format("truetype");
  font-style: normal; font-weight: 200 800; font-display: swap;
}
:root {
  --testo: #202c28; --sfondo: #f4f6f5; --carta: #fff; --accento: #315e50;
  --accento-scuro: #25483d; --accento-tenue: #eaf1ed; --bordo: #dce3df;
  --secondario: #5c6962; --errore: #a12737; --avviso: #855919; --fuoco: #ad7022;
  font-family: Manrope, system-ui, sans-serif; font-size: 16px;
  color: var(--testo); background: var(--sfondo); letter-spacing: 0;
}
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.65; }
a { color: var(--accento); text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
a:hover { color: var(--accento-scuro); }
::selection { background: #d4e5da; color: #172d22; }
:focus-visible { outline: 3px solid var(--fuoco); outline-offset: 4px; }
[hidden] { display: none !important; }
main:focus { outline: none; }
.salta { position: fixed; top: -8rem; left: 1rem; z-index: 20; padding: 0.75rem 1rem; background: #fff; }
.salta:focus { top: 1rem; }
.icona { display: inline-block; vertical-align: middle; flex-shrink: 0; object-fit: contain; }
.marchio { display: inline-flex; align-items: center; gap: 0.75rem; color: var(--accento); font-size: 1.7rem; font-weight: 800; line-height: 1; text-decoration: none; }
.marchio-segno { display: grid; place-items: center; width: 2.35rem; height: 2.6rem; border: 1px solid currentColor; font-size: 1.55rem; border-radius: 0 0 0.7rem 0; }
.laterale { position: fixed; inset: 0 auto 0 0; width: 228px; padding: 2rem 1.25rem 1.5rem; background: var(--carta); border-right: 1px solid var(--bordo); display: flex; flex-direction: column; z-index: 5; }
.laterale > .marchio { margin-left: 0.6rem; }
.menu-studio { display: flex; flex-direction: column; gap: 0.45rem; margin-top: 3.5rem; }
.menu-studio a { display: flex; align-items: center; gap: 0.8rem; padding: 0.85rem 1rem; border-radius: 5px; font-size: 0.9rem; font-weight: 600; color: #53645b; text-decoration: none; transition: background-color 160ms ease; }
.menu-studio a:hover { background: #f4f6f5; }
.menu-studio a[aria-current] { background: var(--accento-tenue); color: var(--accento-scuro); }
.firma-laterale { display: grid; gap: 0.3rem; margin-top: auto; padding: 1rem 0.65rem 0; border-top: 1px solid var(--bordo); font-size: 0.75rem; color: var(--secondario); }
.firma-laterale span:last-child { color: #64736a; }
.barra { margin-left: 228px; min-height: 76px; padding: 0.75rem 2.5rem; background: #fff; border-bottom: 1px solid var(--bordo); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.contesto-barra { font-size: 0.8rem; color: var(--secondario); }
.separatore { margin: 0 0.9rem; color: #7a887f; }
.sessione { display: flex; align-items: center; gap: 0.75rem; min-width: 0; }
.avatar { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; background: #eaf1ed; border-radius: 50%; color: var(--accento); font-size: 0.9rem; font-weight: 700; flex-shrink: 0; }
.chi { display: grid; line-height: 1.4; font-size: 0.8rem; }
.chi strong { font-weight: 650; max-width: 16rem; overflow-wrap: anywhere; }
.chi > span { color: var(--secondario); font-size: 0.7rem; }
.in-linea { display: inline; margin: 0; }
.barra .esci { margin: 0 0 0 0.6rem; padding: 0.5rem; min-width: 44px; min-height: 44px; color: var(--secondario); background: transparent; font-size: 0.75rem; }
.esci .icona { filter: none; }
.esci span { display: none; }
.marchio-mobile { display: none; }
.app-shell main { margin: 0 0 0 228px; padding: 2.8rem 3rem 2rem; max-width: 1600px; min-height: calc(100dvh - 132px); }
.app-shell .piede { margin-left: 228px; }
.piede { display: flex; align-items: center; justify-content: center; gap: 0.7rem; min-height: 56px; font-size: 0.7rem; color: #64736a; }
.barra-pubblica { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 4rem; min-height: 88px; background: #fff; }
.accesso-etichetta { color: var(--secondario); font-size: 0.8rem; }
.public-shell main { max-width: 100%; margin: 0; padding: 0; }
.ingresso { position: relative; min-height: min(780px, calc(100dvh - 144px)); display: grid; align-items: center; background: #183d2f url("atelier.jpg") center / cover no-repeat; isolation: isolate; color: #fff; }
.ingresso::before { content: ""; position: absolute; inset: 0; background: rgba(9, 32, 24, 0.72); z-index: -1; }
.ingresso-interno { width: 100%; max-width: 1300px; padding: 4.5rem 4rem; margin: auto; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,0.9fr); gap: 5rem; align-items: center; }
.ingresso-marchio h1 { font-size: 5.5rem; font-weight: 650; line-height: 1.08; margin: 0; }
.ingresso-marchio p { font-size: 1.3rem; margin: 1.2rem 0 0; color: #e0ece4; }
.punto-marchio { color: #a7c6b4; }
.accesso-modulo { padding: 0.5rem 0 0.75rem 3.5rem; border-left: 1px solid rgba(225,239,230,0.3); }
.accesso-modulo h2 { font-size: 1.6rem; color: #fff; font-weight: 600; margin: 0 0 1.5rem; }
.accesso-modulo label { color: #eff5f0; font-size: 0.8rem; }
.accesso-modulo input { background: rgba(255,255,255,0.96); border-color: #fff; min-height: 48px; }
.accesso-modulo button { justify-content: space-between; width: 100%; margin-top: 1.75rem; background: #fff; color: #244536; font-weight: 750; }
.accesso-modulo button .icona { filter: none; }
.accesso-modulo button:hover { background: #dfebe3; color: #244536; }
.accesso-modulo .errore { padding: 0.75rem 1rem; background: #fff1f1; color: #85232f; }
.aiuto-accesso { color: #eff5f0; font-size: 0.8rem; margin: 0.6rem 0 0; }
.avviso-demo { padding: 0.45rem 1.2rem; background: #f3eadb; color: #70501f; font-size: 0.7rem; text-align: center; }
.app-shell .avviso-demo { margin-left: 228px; }
.accesso-demo { font-size: 0.8rem; margin: 1.2rem 0 0; }
.accesso-demo a { color: #eff5f0; }
.accesso-demo .icona { filter: brightness(0) invert(1); }
h1 { font-size: 1.9rem; font-weight: 700; line-height: 1.3; margin: 0 0 0.75rem; overflow-wrap: anywhere; }
h2 { font-size: 1.15rem; font-weight: 700; line-height: 1.4; margin: 0 0 1rem; }
h3 { font-size: 1rem; margin: 1.5rem 0 0.5rem; }
p { max-width: 75ch; }
.intestazione { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.8rem; }
.intestazione h1 { margin-bottom: 0.3rem; }
.intestazione p { margin: 0; }
.scheda { padding: 1.6rem 0 2rem; margin: 0 0 1.6rem; border-bottom: 1px solid var(--bordo); }
article.scheda:first-child { padding-top: 0; }
.scheda:last-child { margin-bottom: 0; }
.stretta { max-width: 34rem; margin: 3rem auto; padding: 2rem; }
.scheda > form { max-width: 65rem; }
label { display: block; margin: 1rem 0 0.4rem; font-size: 0.85rem; font-weight: 650; }
input, select, textarea { width: 100%; max-width: 100%; font: inherit; font-size: 1rem; color: var(--testo); background: #fff; border: 1px solid #becbc2; border-radius: 5px; padding: 0.7rem 0.8rem; min-height: 46px; caret-color: var(--accento); }
input[type="checkbox"] { width: 1.15rem; height: 1.15rem; min-height: 0; padding: 0; margin-right: 0.4rem; accent-color: var(--accento); vertical-align: middle; }
input[type="file"] { padding: 0.55rem; font-size: 0.85rem; }
input[type="file"]::file-selector-button { border: 0; border-radius: 3px; padding: 0.4rem 0.7rem; margin-right: 0.7rem; background: var(--accento-tenue); color: var(--accento-scuro); cursor: pointer; font: inherit; }
input::placeholder, textarea::placeholder { color: #65736a; }
textarea { min-height: 7rem; resize: vertical; line-height: 1.65; }
button, .pulsante { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; min-height: 44px; max-width: 100%; padding: 0.7rem 1.1rem; margin-top: 1.1rem; border: 1px solid transparent; border-radius: 5px; background: var(--accento); color: #fff; font: inherit; font-size: 0.85rem; font-weight: 650; line-height: 1.45; text-decoration: none; cursor: pointer; text-align: center; transition: background-color 160ms ease, border-color 160ms ease; }
button:hover, .pulsante:hover { background: var(--accento-scuro); color: #fff; }
button:active, .pulsante:active { background: #173c2b; }
button:disabled { color: #64736a; background: #e2e8e3; border-color: #d0d9d2; cursor: not-allowed; }
button .icona, .pulsante .icona { filter: brightness(0) invert(1); }
button.secondario, .pulsante.secondario { margin-top: 0; color: var(--accento); background: #fff; border-color: var(--bordo); }
.secondario .icona { filter: none; }
.secondario:hover { background: var(--accento-tenue); border-color: #b5c7ba; color: var(--accento-scuro); }
.intestazione > .pulsante { margin-top: 0; }
.azioni { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem; margin: 1.2rem 0; }
.azioni button, .azioni .pulsante { margin-top: 0; }
.dati { display: grid; grid-template-columns: minmax(7rem,max-content) minmax(0,1fr); gap: 0.75rem 2rem; font-size: 0.85rem; margin: 1.5rem 0; }
.dati dt { color: var(--secondario); font-weight: 500; }
.dati dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.dati-fascicolo { grid-template-columns: minmax(6rem,max-content) minmax(0,1fr) minmax(6rem,max-content) minmax(0,1fr); }
code { font-family: ui-monospace, monospace; font-size: 0.8em; overflow-wrap: anywhere; }
.errore, .campo-errore { color: var(--errore); font-weight: 600; }
.nota { color: var(--secondario); font-size: 0.8rem; }
.riepilogo { margin: 0.5rem 0 1rem; }
.descrizione, .testo-informativa { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 75ch; }
.testo { white-space: pre-wrap; overflow-wrap: anywhere; font-family: Manrope, system-ui, sans-serif; font-size: 0.9rem; line-height: 1.9; max-width: 80ch; margin: 1.2rem 0; }
.avvisi li { color: var(--errore); margin-bottom: 0.5rem; }
.storia { padding-left: 1.3rem; font-size: 0.85rem; }
.storia > li { padding: 0.6rem 0 0.9rem 0.5rem; }
.storia time { color: var(--secondario); font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.materia { color: var(--secondario); font-size: 0.75rem; }
table { width: 100%; border-collapse: collapse; background: #fff; font-size: 0.85rem; text-align: left; border: 1px solid var(--bordo); }
th { padding: 0.9rem 1.1rem; background: #edf1ee; font-size: 0.75rem; font-weight: 650; color: #506257; white-space: nowrap; }
td { padding: 1.15rem 1.1rem; border-bottom: 1px solid var(--bordo); vertical-align: top; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #f7faf8; }
td a { font-weight: 650; }
td form { margin: 0; }
td button { margin-top: 0; min-height: 44px; padding: 0.4rem 0.7rem; font-size: 0.8rem; }
.tabella-contenitore { overflow: auto; width: 100%; border-radius: 5px; }
.tabella-contenitore table { min-width: 600px; }
.stato { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.3rem 0.55rem; background: #edf1ee; color: #4b5e52; border-radius: 4px; font-size: 0.7rem; font-weight: 650; white-space: nowrap; }
.stato::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.stato-in_studio { background: #e7eff1; color: #34616c; }
.stato-deciso { background: #f5eddf; color: #805b20; }
.stato-chiuso { background: #eceeef; color: #606b70; }
.strumenti-fascicoli { display: flex; align-items: end; gap: 1rem; margin: 0 0 1.2rem; }
.strumenti-fascicoli label { font-size: 0.75rem; margin-top: 0; }
.campo-ricerca { flex: 1; position: relative; min-width: 12rem; }
.campo-ricerca input { padding-left: 2.6rem; }
.campo-ricerca .icona { position: absolute; bottom: 14px; left: 14px; width: 18px; height: 18px; }
.campo-filtro { width: 12rem; }
.conteggio-fascicoli { font-size: 0.75rem; color: var(--secondario); margin: 1rem 0; }
.vuoto { padding: 3.5rem 1rem; text-align: center; border-top: 1px solid var(--bordo); }
.vuoto .icona { width: 36px; height: 36px; margin-bottom: 0.8rem; opacity: 0.65; }
.vuoto p { margin: 0.5rem auto; }
.informativa { padding: 1.5rem 0 2rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--bordo); scroll-margin-top: 2rem; }
.informativa p { font-size: 0.85rem; }
.conferma-informativa { display: flex; align-items: start; gap: 0.65rem; max-width: 75ch; }
.conferma-informativa input { flex-shrink: 0; margin-top: 0.25rem; }
.data-informativa { max-width: 20rem; }
summary { cursor: pointer; color: var(--accento); font-weight: 600; font-size: 0.85rem; padding: 0.5rem 0; }
.navigazione-fascicolo { display: flex; gap: 1.5rem; border-bottom: 1px solid var(--bordo); overflow-x: auto; margin: 1rem 0 0; padding: 0 0 0.8rem; font-size: 0.8rem; }
.navigazione-fascicolo a { white-space: nowrap; text-decoration: none; }
.form-griglia { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0.2rem 1.5rem; }
.form-griglia .larga { grid-column: 1 / -1; }
.form-griglia .azioni { margin-bottom: 0; }
.fascicolo-titolo { max-width: 32ch; }
.fascicolo-titolo .codice-titolo { display: block; color: var(--secondario); font-size: 0.8rem; font-weight: 550; margin-bottom: 0.5rem; }
.intestazione-fascicolo { align-items: start; }
.sezione-riga { display: flex; align-items: center; gap: 0.7rem; }
.sezione-riga .icona { opacity: 0.7; }
.prossimo-passo { max-width: 75ch; padding: 1.25rem 0; margin: 0.75rem 0; border-block: 1px solid var(--bordo); }
.prossimo-passo h2 { font-size: 1.05rem; margin-bottom: 0.5rem; }
.prossimo-passo p { margin: 0 0 0.5rem; font-size: 0.9rem; }
.percorso-lavoro ol { padding-left: 1.4rem; max-width: 75ch; }
.percorso-lavoro li { padding: 0.8rem 0; }
.percorso-lavoro li p { margin: 0.35rem 0 0; font-size: 0.85rem; }
.stato-invio { color: var(--accento-scuro); font-weight: 650; font-size: 0.9rem; margin: 1rem 0; }
.scelta-spunto { padding: 1rem; border: 1px solid var(--bordo); margin-top: 1rem; }
.scelta-spunto legend { font-size: 0.85rem; font-weight: 650; }
.scelta-spunto label { margin: 0.5rem 0; }
input[type="radio"] { width: 1.15rem; height: 1.15rem; min-height: 0; margin-right: 0.4rem; accent-color: var(--accento); vertical-align: middle; }
.prerequisiti-bozze section { border-bottom: 1px solid var(--bordo); padding: 1rem 0; }
.prerequisiti-bozze h2 { font-size: 1rem; margin: 0 0 0.5rem; }
.prerequisiti-bozze p, .prerequisiti-bozze li { font-size: 0.85rem; }
.prerequisiti-bozze ul { padding-left: 1.25rem; margin: 0.5rem 0; }
section[id] { scroll-margin-top: 1.5rem; }
@media (min-width: 1440px) { .app-shell main { padding-left: 4rem; padding-right: 4rem; } }
@media (max-width: 1050px) {
  .contesto-barra { display: none; } .barra { justify-content: flex-end; padding-inline: 2rem; }
  .app-shell main { padding: 2rem; } .ingresso-interno { gap: 2.5rem; padding-inline: 3rem; }
  .ingresso-marchio h1 { font-size: 4.5rem; } .accesso-modulo { padding-left: 2rem; }
}
@media (max-width: 760px) {
  html { scroll-padding-block-end: calc(90px + env(safe-area-inset-bottom)); }
  a, button, input, select, textarea, summary { scroll-margin-block-end: calc(90px + env(safe-area-inset-bottom)); }
  .laterale { position: fixed; inset: auto 0 0; width: 100%; height: calc(70px + env(safe-area-inset-bottom)); padding: 0 0 env(safe-area-inset-bottom); border: 0; border-top: 1px solid var(--bordo); }
  .laterale > .marchio, .firma-laterale { display: none; }
  .menu-studio { flex-direction: row; align-items: stretch; justify-content: space-around; gap: 0; margin: 0; height: 70px; }
  .menu-studio a { flex: 1; flex-direction: column; justify-content: center; gap: 0.25rem; font-size: 0.65rem; padding: 0.6rem; border-radius: 0; }
  .menu-studio .icona { width: 22px; height: 22px; }
  .barra { margin: 0; padding: 0.85rem 1.2rem; min-height: 70px; justify-content: space-between; }
  .marchio-mobile { display: inline-flex; font-size: 1.45rem; }
  .sessione { gap: 0.6rem; } .avatar { display: none; }
  .chi strong { max-width: 11rem; font-size: 0.7rem; } .chi > span { font-size: 0.65rem; }
  .app-shell main { margin: 0; padding: 1.75rem 1.2rem 1rem; min-height: calc(100dvh - 196px); }
  .app-shell .avviso-demo { margin-left: 0; }
  .app-shell .piede { margin: 0 0 calc(70px + env(safe-area-inset-bottom)); }
  h1 { font-size: 1.6rem; } h2 { font-size: 1.1rem; }
  .barra-pubblica { min-height: 74px; padding: 1rem 1.2rem; }
  .barra-pubblica .marchio { font-size: 1.4rem; gap: 0.5rem; }
  .marchio-segno { width: 1.9rem; height: 2.1rem; font-size: 1.3rem; }
  .accesso-etichetta { font-size: 0.65rem; max-width: 8rem; text-align: right; }
  .ingresso { min-height: calc(100dvh - 130px); background-position: 45% center; }
  .ingresso-interno { grid-template-columns: minmax(0,1fr); padding: 2.5rem 1.5rem; gap: 2.5rem; max-width: 34rem; }
  .ingresso-marchio h1 { font-size: 3.4rem; } .ingresso-marchio p { font-size: 1rem; margin-top: 0.7rem; }
  .accesso-modulo { padding: 0; border-left: 0; }
  .accesso-modulo h2 { font-size: 1.25rem; margin-bottom: 1rem; }
  .accesso-modulo button { margin-top: 1.4rem; }
  .dati { grid-template-columns: minmax(0,6.3rem) minmax(0,1fr); gap: 0.65rem 1rem; font-size: 0.8rem; }
  .strumenti-fascicoli { flex-wrap: wrap; gap: 0.65rem; } .campo-filtro { width: 100%; }
  .tabella-contenitore { border-radius: 0; }
  .scheda table { display: block; max-width: 100%; overflow-x: auto; }
  th, td { padding: 0.85rem; } .form-griglia { grid-template-columns: minmax(0,1fr); gap: 0; }
  .intestazione > .pulsante { width: 100%; } .navigazione-fascicolo { gap: 1.2rem; }
  .azioni .pulsante { flex: 1; } .stretta { margin: 1.5rem 1.2rem; padding: 1.2rem 0; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
@media print {
  .laterale, .barra, .piede, .salta, .strumenti-fascicoli { display: none !important; }
  .app-shell main { margin: 0; padding: 0; } body { background: #fff; } .scheda { break-inside: avoid; }
}
/* Percorso operativo del fascicolo, nella griglia editoriale esistente. */
.profili-collegati { border: 1px solid var(--bordo, #dce3df); padding: 1rem; margin: 0; }
.profili-collegati label { display: inline-flex; gap: .5rem; align-items: center; margin: .4rem 1.2rem .4rem 0; }
.traccia-settore { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; margin-top: 1.5rem; }
.traccia-settore h3 { font-size: 1rem; }
@media (max-width: 700px) { .traccia-settore { grid-template-columns: minmax(0, 1fr); } }

/* Google Drive estende i moduli e gli elenchi dell'archivio. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.drive-identita, .drive-archivio strong { overflow-wrap: anywhere; }
#titolo-importa-drive { scroll-margin-top: 1.5rem; }
.drive-elenco { list-style: none; padding: 0; }
.drive-elenco > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--bordo); }
.drive-elenco > li > div { min-width: 0; flex: 1 1 20rem; overflow-wrap: anywhere; }
.drive-elenco form { margin: 0; }
