/* VDS laboratorio — allineato a viridis.care (site) + brand Viridis Care */

:root {
  /* Palette sito viridis.care */
  --ink: #1a2419;
  --forest: #2d4a34;
  --forest-deep: #1e3524;
  --linen: #f4f0e8;
  --linen-deep: #ebe5d7;
  --brass: #a8843f;
  --brass-soft: #c9a664;
  --moss: #5a6b4a;

  /* Accenti funzionali (brand skill) */
  --accento: #40916c;
  --accento-scuro: #2d6a4f;
  --errore: #e76f51;
  --ok: #2d6a4f;

  --font-titolo: "Fraunces", Georgia, serif;
  --font-corpo: "Inter Tight", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;

  --fondo: var(--linen);
  --veste-fondo: #F2F2F7;
  --veste-verde: #2d4a34;
  --veste-colonna: min(390px, calc(100vw - 24px));
  --veste-testa: 56px;
  --veste-piede: 64px;
  --superficie: #fffdf8;
  --bordo: #d4ccbc;
  --testo: var(--ink);
  --muto: #5c6b5a;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  font-family: var(--font-corpo);
  color: var(--testo);
  background:
    radial-gradient(ellipse at top right, #ebe5d7 0%, transparent 50%),
    linear-gradient(180deg, var(--linen) 0%, var(--linen-deep) 100%);
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
}

.testata {
  padding: 0.7rem 1.25rem 0.6rem;
  border-bottom: 1px solid var(--bordo);
  background: color-mix(in srgb, var(--forest-deep) 96%, black);
  color: #fff;
}

.marchio,
.testata-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.08rem;
}
.sigla {
  font-family: var(--font-titolo);
  font-size: 0.98rem;
  letter-spacing: 0.03em;
  color: #fff;
  font-weight: 700;
}
.nome {
  font-size: 0.62rem;
  color: #c5d0c4;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.3;
}
.nome strong { font-weight: 700; color: inherit; }
.sottotitolo { margin: 0.4rem 0 0; color: #9aab9a; font-size: 0.88rem; }

.nazioni-etichetta {
  margin: 0.75rem 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-soft);
}
.nazioni-ue {
  margin-top: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  max-width: 100%;
}
.nazioni-ue .bandiera {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-width: 2.6rem;
  padding: 0.28rem 0.22rem 0.2rem;
  border: 1px solid #4a6550;
  background: rgba(255, 255, 255, 0.06);
  text-decoration: none;
  border-radius: 3px;
  line-height: 1;
  opacity: 0.72;
  transition: opacity 0.15s ease, border-color 0.15s ease, transform 0.15s ease, background 0.15s ease;
}
.nazioni-ue .bandiera img {
  display: block;
  width: 40px;
  height: auto;
  border-radius: 1px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25);
}
.nazioni-ue .bandiera .codice {
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  color: #d5e0d4;
  font-weight: 500;
}
.nazioni-ue .bandiera.pronta {
  opacity: 1;
  border-color: var(--brass);
  background: rgba(201, 166, 100, 0.12);
}
.nazioni-ue .bandiera:hover {
  border-color: var(--brass-soft);
  opacity: 1;
  transform: translateY(-1px);
  background: rgba(255, 255, 255, 0.12);
}
.nazioni-ue .bandiera.attiva {
  border-color: var(--brass-soft);
  box-shadow: 0 0 0 2px var(--brass);
  opacity: 1;
}
.avvisi .avviso {
  background: color-mix(in srgb, var(--brass) 18%, white);
  border-left: 3px solid var(--brass);
  color: var(--forest-deep);
}


/* Striscia bandiere: fondo chiaro così si vedono subito */
.testata .nazioni-etichetta,
.testata .nazioni-ue {
  /* restano nella testata ma su fascia chiara via wrapper look */
}
.fascia-nazioni {
  margin: 0.85rem -2rem -1rem;
  padding: 0.75rem 2rem 0.9rem;
  background: var(--linen);
  border-top: 1px solid #3d5542;
}
.fascia-nazioni .nazioni-etichetta {
  margin: 0 0 0.45rem;
  color: var(--forest);
  font-weight: 600;
}
.fascia-nazioni .nazioni-ue .bandiera {
  background: #fff;
  border-color: var(--bordo);
  opacity: 0.9;
}
.fascia-nazioni .nazioni-ue .bandiera .codice {
  color: var(--forest-deep);
}
.fascia-nazioni .nazioni-ue .bandiera.pronta {
  border-color: var(--brass);
  background: #fffaf0;
  opacity: 1;
}
.fascia-nazioni .nazioni-ue .bandiera.attiva {
  box-shadow: 0 0 0 2px var(--brass);
}
.fascia-nazioni .nazioni-ue .bandiera img {
  width: 48px;
}

main { max-width: 760px; margin: 0 auto; padding: 2rem 1.25rem 4rem; }

.pannello {
  background: var(--superficie);
  border: 1px solid var(--bordo);
  padding: 1.75rem 1.5rem;
  box-shadow: 0 1px 0 rgba(26, 36, 25, 0.04);
}

h1, h2 {
  font-family: var(--font-titolo);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--forest-deep);
}
h1 { font-size: 1.85rem; margin: 0 0 0.75rem; }
h2 { font-size: 1.25rem; margin: 2rem 0 0.75rem; }

.lead { color: var(--muto); line-height: 1.6; margin: 0 0 1.25rem; }

.modulo { display: flex; flex-direction: column; gap: 1rem; }
.modulo label { display: flex; flex-direction: column; gap: 0.35rem; font-size: 0.9rem; position: relative; }
.modulo input, .modulo textarea, .modulo select {
  font: inherit;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--bordo);
  background: #fff;
  color: var(--testo);
  border-radius: 2px;
}
.modulo fieldset {
  border: 1px solid var(--bordo);
  padding: 1rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  background: color-mix(in srgb, var(--linen) 55%, white);
}
#blocco-nuovo-cliente[hidden] { display: none !important; }
.pagina-anamnesi [hidden] { display: none !important; }
.modulo legend {
  padding: 0 0.4rem;
  color: var(--forest);
  font-family: var(--font-titolo);
  font-size: 0.95rem;
}
.check { flex-direction: row !important; align-items: center; gap: 0.5rem !important; }

.btn {
  display: inline-block;
  padding: 0.7rem 1.2rem;
  border: 1px solid var(--forest);
  color: var(--forest-deep);
  text-decoration: none;
  background: transparent;
  font: inherit;
  cursor: pointer;
  border-radius: 2px;
}
.btn.primario {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
}
.btn.primario:hover {
  background: var(--forest-deep);
}
.azioni { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }

.sequenza { color: var(--muto); line-height: 1.7; }
.avvisi { list-style: none; margin: 0; padding: 0.75rem 1.25rem; }
.avvisi li {
  padding: 0.75rem 1rem;
  margin: 0.35rem 1.25rem;
  border: 1px solid var(--bordo);
  font-size: 1rem;
}
.fase2-assistenza-operatore .fase2-assistenza-riga--esito .fase2-assistenza-testo {
  color: #1c1c1e;
}
.fase2-assistenza-operatore:not(.fase2-assistenza-operatore--compatta) .fase2-assistenza-riga--esito.fase2-assistenza-riga--errore .fase2-assistenza-testo {
  color: #8b1a1a;
}
.avvisi .errore {
  color: #fff;
  background: #8a3a2a;
  border-color: var(--errore);
}
.avvisi .ok {
  color: #fff;
  background: var(--forest);
  border-color: var(--forest);
}
.pagina-anamnesi .scatto-azioni .btn.scelto {
  background: var(--forest);
  color: #f7f4ec;
  border: 3px solid var(--forest);
}
.pagina-anamnesi .scatto-azioni .btn.scelto::after {
  content: " \2713";
}
.aiuto-lab {
  background: var(--linen);
  border: 1px dashed var(--bordo);
  padding: 0.75rem 1rem;
  color: var(--muto);
  font-size: 0.95rem;
}

.scheda { display: grid; grid-template-columns: 8rem 1fr; gap: 0.4rem 1rem; }
.scheda dt { color: var(--muto); }
.scheda dd { margin: 0; }

.tabella { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.tabella th, .tabella td {
  border-bottom: 1px solid var(--bordo);
  text-align: left;
  padding: 0.55rem 0.4rem;
}
.muto { color: var(--muto); }

.contatore {
  background: color-mix(in srgb, var(--linen) 70%, white);
  border: 1px solid var(--brass);
  padding: 1rem 1.1rem;
  margin: 0 0 1.25rem;
}
.contatore-numero { margin: 0 0 0.35rem; font-size: 1.15rem; color: var(--forest-deep); }
.avviso-posti {
  background: #f7efe0;
  border: 1px solid var(--brass);
  padding: 0.9rem 1rem;
  color: #5a4520;
}
.prossimo-passo {
  background: var(--superficie);
  border: 1px solid var(--bordo);
  padding: 1.1rem 1.2rem;
  margin: 0 0 1.5rem;
  border-radius: 1.15rem;
}
.prossimo-passo h2 { margin-top: 0; }
.chiusura-cancello {
  margin: 1.8rem 0 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.atto-determinazione {
  padding: 1.6rem 1.4rem 1.35rem;
  background: var(--superficie);
  border-radius: 1.35rem;
  box-shadow: 0 18px 48px rgba(30, 53, 36, 0.1);
}
.atto-kicker {
  margin: 0 0 0.45rem;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 600;
}
.nome-dichiarato {
  margin: 0 0 1rem;
  font-family: var(--font-titolo);
  font-size: clamp(1.7rem, 5vw, 2.35rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--forest-deep);
}
.nome-dichiarato em { font-style: italic; font-weight: 500; }
.atto-firme {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 1rem;
}
.atto-firme .pill {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: var(--linen);
  color: var(--forest-deep);
  font-size: 0.82rem;
  font-weight: 600;
}
.censimento-chip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1.35rem;
  padding: 0;
  list-style: none;
}
.censimento-chip li {
  padding: 0.32rem 0.7rem;
  border-radius: 999px;
  border: 1px solid var(--bordo);
  font-size: 0.78rem;
  color: var(--muto);
}
.btn-avanti {
  display: block;
  width: 100%;
  text-align: center;
  border-radius: 0.95rem;
  padding: 0.95rem 1.2rem;
  font-weight: 600;
}
.atto-blocco {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--forest-deep);
}
.elenco-mancanti {
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.elenco-mancanti a,
.vai-rilievo {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--forest);
  background: #fff;
  color: var(--forest-deep);
  text-decoration: none;
  font-weight: 650;
}
.vai-rilievo:hover {
  background: var(--linen);
  border-color: var(--brass);
}
.vai-rilievo-azione {
  font-weight: 500;
  color: var(--brass);
  font-size: 0.88rem;
}

.elenco-operatori {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.scheda-operatore {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--bordo);
  color: var(--testo);
  text-decoration: none;
  background: #fff;
}
.scheda-operatore:hover {
  border-color: var(--brass);
  background: var(--linen);
}
.scheda-operatore span { color: var(--muto); font-size: 0.9rem; }

.suggerimenti {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  position: absolute;
  left: 0;
  right: 0;
  z-index: 20;
  background: #fff;
  border: 1px solid var(--brass);
  max-height: 12rem;
  overflow: auto;
}
.suggerimenti li {
  padding: 0.55rem 0.75rem;
  cursor: pointer;
  border-bottom: 1px solid var(--bordo);
}
.suggerimenti li:hover { background: var(--linen); }

.codice-mono {
  font-family: var(--font-mono);
  font-size: 0.95rem;
}

.piede {
  border-top: 1px solid var(--bordo);
  padding: 1.25rem 2rem;
  color: var(--muto);
  font-size: 0.85rem;
  background: color-mix(in srgb, var(--linen-deep) 80%, white);
}
.piede .nota { margin: 0.25rem 0 0; opacity: 0.85; }


/* —— Ingresso Blocco 0: splash → lingua → canale (wow) —— */
.corpo-splash {
  overflow: hidden;
  background: #1e3524 !important;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.corpo-ingresso {
  background:
    radial-gradient(ellipse at top right, #ebe5d7 0%, transparent 45%),
    linear-gradient(180deg, #f7f3eb 0%, var(--linen-deep) 100%);
}
.main-splash {
  max-width: none;
  margin: 0;
  padding: 0;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
}
.main-ingresso {
  max-width: 820px;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 3rem;
}

.splash {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  background:
    radial-gradient(ellipse at 50% 28%, #355a3f 0%, transparent 52%),
    linear-gradient(165deg, #1e3524 0%, #152019 50%, #243528 100%);
  color: #fff;
  text-align: center;
  padding: 1.5rem 1.5rem 1rem;
  overflow: hidden;
  animation: splash-in 0.85s ease-out;
}
.splash-atmosfera {
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at 20% 80%, rgba(168, 132, 63, 0.12) 0%, transparent 40%),
    radial-gradient(circle at 85% 15%, rgba(64, 145, 108, 0.15) 0%, transparent 35%);
  pointer-events: none;
}
@keyframes splash-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.splash-logo {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  animation: logo-up 1.15s ease-out;
}
@keyframes logo-up {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.splash-sigla {
  font-family: var(--font-titolo);
  font-size: clamp(3.2rem, 10vw, 4.6rem);
  letter-spacing: 0.1em;
  color: var(--brass-soft);
  font-weight: 500;
  line-height: 1;
  text-shadow: 0 0 40px rgba(201, 166, 100, 0.25);
}
.splash-app-nome {
  font-family: var(--font-titolo);
  font-size: clamp(1rem, 3.2vw, 1.15rem);
  color: #e8efe6;
  font-weight: 500;
  letter-spacing: 0.02em;
  max-width: 20rem;
  line-height: 1.35;
}
.splash-linea {
  display: block;
  width: 3.5rem;
  height: 1px;
  background: var(--brass);
  margin: 0.6rem 0;
  animation: linea 1.25s ease-out 0.35s both;
}
@keyframes linea {
  from { width: 0; opacity: 0; }
  to { width: 3.5rem; opacity: 1; }
}
.splash-sotto {
  font-size: 0.82rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #9aab9a;
}
.splash-motto {
  position: relative;
  z-index: 1;
  max-width: 22rem;
  margin: 0.75rem 0 0;
  font-size: 0.88rem;
  line-height: 1.5;
  color: #c5d0c4;
  opacity: 0;
  animation: motto-in 0.8s ease-out 0.7s forwards;
}
@keyframes motto-in {
  to { opacity: 1; }
}
.splash-carica {
  position: relative;
  z-index: 1;
  margin: 0.5rem 0 0;
  font-size: 0.86rem;
  color: #b8c6b6;
  opacity: 0.85;
}
.splash-barra {
  position: relative;
  z-index: 1;
  width: 8rem;
  height: 2px;
  background: rgba(255,255,255,0.12);
  border-radius: 1px;
  overflow: hidden;
  margin-top: 0.35rem;
}
.splash-barra span {
  display: block;
  height: 100%;
  width: 0;
  background: var(--brass-soft);
  animation: barra 2.6s ease-in-out forwards;
}
@keyframes barra {
  to { width: 100%; }
}
.splash-continua {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 22rem);
  min-height: 50px;
  margin-top: 1.25rem;
  padding: 0 1.25rem;
  border: 0;
  border-radius: 18px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  text-decoration: none;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 46%, rgba(0, 0, 0, 0.14) 100%),
    rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 8px 18px rgba(45, 74, 52, 0.28);
  opacity: 0;
  animation: motto-in 0.6s ease-out 0.6s forwards;
  transition: transform 200ms ease;
}
.splash-continua:active { transform: scale(0.98); }

.corpo-splash .cornice-piede-nascosta {
  display: none !important;
}

.testata-compatta {
  padding: 0.85rem 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
}
.testata-ingresso {
  background: transparent;
  border-bottom: none;
  color: var(--forest-deep);
  padding-bottom: 0;
}
.testata-ingresso .sigla { color: var(--forest); }
.testata-ingresso .nome { color: var(--muto); }
.testata-compatta .sottotitolo { margin: 0; flex: 1; }
.mini-lingua { margin-left: auto; }
.mini-bandiera {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  gap: 0.4rem;
  padding: 0.25rem 0.45rem;
  border: 1px solid #4a6550;
  border-radius: 3px;
  text-decoration: none;
  color: #d5e0d4;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}
.mini-bandiera img {
  display: block;
  width: 28px;
  height: 19px;
  border-radius: 1px;
}
.img-qr-lab {
  display: block;
  width: min(280px, 100%);
  margin: 0 auto;
  aspect-ratio: 1;
  height: auto;
}
.mini-bandiera:hover { border-color: var(--brass); color: #fff; }

.ingresso-wow { animation: none; opacity: 1 !important; }
@keyframes passo-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.ingresso-testata-passo { margin-bottom: 0.5rem; }
.ingresso-lingua,
.ingresso-canale {
  background: #fffdf8;
  border: 2px solid var(--forest);
  padding: 1.75rem 1.4rem 1.5rem;
  box-shadow: 0 12px 40px rgba(26, 36, 25, 0.1);
  color: var(--ink);
}
.ingresso-lingua h1,
.ingresso-canale h1 {
  color: var(--forest-deep) !important;
  opacity: 1 !important;
}
.ingresso-azioni .btn.primario {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  min-width: 0;
  margin: 0;
  padding: 0 1.25rem;
  border: 0;
  border-radius: 18px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #fff !important;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 46%, rgba(0, 0, 0, 0.14) 100%),
    rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 8px 18px rgba(45, 74, 52, 0.22);
  transition: transform 200ms ease;
}
.ingresso-azioni .btn.primario:active { transform: scale(0.98); }
.passo-num {
  margin: 0 0 0.55rem;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 600;
}
.ingresso-testata-passo h1 {
  font-size: clamp(1.55rem, 4vw, 1.95rem);
  margin-bottom: 0.5rem;
}
.legenda-bandiere {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1.25rem;
  margin: 1rem 0 0.85rem;
  font-size: 0.78rem;
  color: var(--muto);
}
.legenda-bandiere .leg-pronta,
.legenda-bandiere .leg-attesa {
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  margin-right: 0.35rem;
  vertical-align: middle;
  border: 1px solid var(--bordo);
}
.legenda-bandiere .leg-pronta {
  background: #fffaf0;
  border-color: var(--brass);
}
.legenda-bandiere .leg-attesa {
  background: #fff;
  opacity: 0.7;
}

.nazioni-ingresso {
  margin-top: 0.25rem;
  max-width: 100%;
  gap: 0.4rem;
}
.nazioni-ingresso .bandiera {
  min-width: 2rem;
  padding: 0.18rem 0.12rem 0.12rem;
  background: #fff;
  border-color: var(--bordo);
  opacity: 1;
}
@keyframes bandiera-in {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 0.88; transform: translateY(0); }
}
.nazioni-ingresso .bandiera.pronta {
  opacity: 1;
  border-color: var(--brass);
  background: #fffaf0;
}
@keyframes bandiera-pronta {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}
.nazioni-ingresso .bandiera img {
  width: 26px;
  height: auto;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
}
.nazioni-ingresso .bandiera .codice {
  font-size: 0.55rem;
  color: var(--muto);
}
.nazioni-ingresso .bandiera:hover {
  transform: translateY(-2px);
  opacity: 1 !important;
}

.canali-griglia {
  display: grid;
  gap: 0.9rem;
  margin-top: 1.35rem;
}
@media (min-width: 700px) {
  .canali-wow {
    grid-template-columns: 1fr 1.25fr 1fr;
    align-items: stretch;
  }
}
.scheda-canale {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 1.25rem 1.1rem;
  border: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 255, 255, 0.35) 100%),
    rgba(255, 255, 255, 0.55);
  -webkit-backdrop-filter: blur(18px) saturate(1.4);
  backdrop-filter: blur(18px) saturate(1.4);
  text-decoration: none;
  color: inherit;
  border-radius: 20px;
  min-height: 10rem;
  position: relative;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 8px 20px rgba(30, 53, 36, 0.08);
}
.scheda-canale .lettera {
  font-family: var(--font-titolo);
  font-size: 1.75rem;
  color: var(--brass);
  line-height: 1;
  letter-spacing: 0.04em;
}

.campo-password-con-toggle {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}
.campo-password-con-toggle input[type="password"],
.campo-password-con-toggle input[type="text"] {
  width: 100%;
  padding-right: 2.85rem;
}
.campo-password-toggle {
  position: absolute;
  right: 0.15rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(60, 60, 67, 0.72);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.campo-password-toggle:focus-visible {
  outline: 2px solid #2d4a34;
  outline-offset: 2px;
}
.campo-password-toggle:active {
  opacity: 0.65;
}

.scheda-canale h2 {
  margin: 0;
  font-size: 1.02rem;
}
.scheda-canale p {
  margin: 0;
  flex: 1;
  font-size: 0.86rem;
}
.canale-dettaglio {
  margin: 0;
  flex: 1;
  display: grid;
  gap: 0.35rem 0.5rem;
  font-size: 0.84rem;
  line-height: 1.45;
}
.canale-dettaglio dt {
  margin: 0.35rem 0 0;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(60, 60, 67, 0.72);
}
.canale-dettaglio dt:first-child {
  margin-top: 0;
}
.canale-dettaglio dd {
  margin: 0;
  color: #1c1c1e;
}
.canali-porte .scheda-canale {
  gap: 0.65rem;
}
.scheda-canale p.legacy-lead {
  margin: 0;
  flex: 1;
  font-size: 0.86rem;
  color: var(--muto);
  line-height: 1.45;
}
.scheda-canale .badge {
  align-self: flex-start;
  font-size: 0.68rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.3rem 0.55rem;
  border: 1px solid var(--bordo);
  color: var(--muto);
}
.scheda-canale .badge.primario {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
}
.scheda-canale.vivo {
  box-shadow:
    0 0 0 1.5px #2d4a34,
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 12px 28px rgba(45, 74, 52, 0.18);
  transform: scale(1.02);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.scheda-canale.vivo:active {
  transform: scale(0.99);
}
.scheda-canale.vivo .lettera { color: #2d4a34; }
.scheda-canale.secondario .badge.primario {
  background: rgba(120, 120, 128, 0.22);
  border-color: transparent;
  color: #1c1c1e;
}
.scheda-canale.spento {
  opacity: 0.55;
}

.piede-splash {
  position: relative;
  flex: 0 0 auto;
  margin-top: 0;
  background: #152019;
  border: none;
  border-top: 1px solid #2d4a34;
  color: #c5d4c3;
  text-align: center;
  padding: 0.85rem 1.25rem 1.15rem;
  z-index: 5;
}
.piede-splash .piede-sistema,
.piede-splash .piede-brand,
.piede-splash .nota { color: #c5d4c3; }
/* Piede: prima il brand del sistema (Viridis Care), poi la riga del modulo VDS */
.piede-brand {
  margin: 0 0 0.45rem;
  max-width: 42rem;
  font-size: 0.88rem;
  font-weight: 500;
  line-height: 1.5;
}
.piede-sistema {
  margin: 0 0 0.25rem;
  font-size: 0.76rem;
  letter-spacing: 0.04em;
  opacity: 0.72;
}
.piede-splash .piede-brand {
  color: #e8efe6;
  margin-left: auto;
  margin-right: auto;
  font-size: 0.8rem;
  line-height: 1.45;
  max-width: 36rem;
}
.piede-splash .piede-sistema {
  color: #a8b8a6;
  opacity: 1;
}
.piede-splash .nota {
  color: #8fa08c;
  font-size: 0.72rem;
}

.piede { position: relative; z-index: 1; }

body.corpo-ingresso .ingresso-lingua .nav-indietro,
body.corpo-ingresso .ingresso-canale .nav-indietro {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0 0 12px;
  padding: 4px 0;
  font-size: 17px;
  font-weight: 500;
  color: #2d4a34;
}

body.pagina-casi .casi-testa-fissa .nav-indietro {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0 0 8px;
  font-weight: 500;
}

.ingresso-lingua, .ingresso-canale { position: relative; z-index: 2; }
.ingresso-azioni { margin-top: 1.5rem; position: relative; z-index: 3; }
.ingresso-aiuto { font-size: 0.9rem !important; margin-top: 0.5rem !important; }
.nazioni-ingresso { position: relative; z-index: 3; }

/* Gerarchia di marca: Viridis Care = SISTEMA (eroe), VDS = modulo sotto */
.splash-ruolo {
  font-family: var(--font-corpo);
  font-size: 0.72rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--brass-soft);
  margin-bottom: 0.35rem;
  font-weight: 500;
}
.splash-brand {
  font-family: var(--font-titolo);
  font-size: clamp(3.2rem, 10vw, 4.8rem);
  color: #ffffff;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.05;
  text-shadow: 0 2px 28px rgba(0, 0, 0, 0.35);
}
.splash .splash-sigla {
  font-size: clamp(1.05rem, 3vw, 1.35rem) !important;
  letter-spacing: 0.28em;
  margin-top: 0.15rem;
  color: #c9d4c7 !important;
  text-shadow: none !important;
  font-weight: 500;
}
.splash .splash-sotto {
  margin-top: 0.2rem;
  letter-spacing: 0.14em;
  font-size: 0.72rem;
  color: #8fa08c;
}
.splash-linea {
  width: 4.5rem;
  margin: 0.85rem 0 0.7rem;
}
.testata .sigla {
  font-size: 1.15rem;
  letter-spacing: 0.03em;
  font-weight: 700;
}
.testata .nome {
  font-size: 0.78rem;
  letter-spacing: 0.01em;
  text-transform: none;
  opacity: 0.9;
  font-weight: 400;
}

.protocollo-scatti {
  border-radius: 1.25rem;
  border: 0;
  box-shadow: 0 10px 36px rgba(30, 53, 36, 0.07);
  padding: 1.6rem 1.35rem 1.8rem;
}
.nota-clinica {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  background: color-mix(in srgb, var(--forest) 7%, white);
  border-left: 3px solid var(--forest);
  color: var(--forest-deep);
  font-size: 0.92rem;
  line-height: 1.55;
}
.fase-operatore {
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 8px 28px rgba(30, 53, 36, 0.08);
}
.fase-operatore-titolo {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(60, 60, 67, 0.6);
}
.fase-operatore-testo {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.5;
  color: var(--forest-deep);
}
.testa-indietro,
.nav-indietro {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  margin: 0 0 0.35rem;
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  color: #2d4a34;
  text-decoration: none;
}
.testa-indietro span,
.nav-indietro span {
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 300;
}
.nav-filo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.45rem;
  margin: 0 0 1.1rem;
  font-size: 0.82rem;
  line-height: 1.35;
  color: rgba(60, 60, 67, 0.6);
}
.nav-filo a {
  color: #2d4a34;
  font-weight: 600;
  text-decoration: none;
}
.nav-filo [aria-current="page"] {
  color: #000;
  font-weight: 600;
}
.nav-sep {
  color: rgba(60, 60, 67, 0.35);
}
body.pagina-passport:has(.testa-indietro) main,
body.pagina-passport:has(.nav-indietro) main {
  top: 124px;
}
body.pagina-cancello0 .cornice-piede {
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}
.fase-operatore-raccoglie_foto .fase-operatore-testo { color: #1c1c1e; }
.fase-operatore-determina .fase-operatore-testo { color: var(--forest); }
.fase-operatore-certificata {
  background: color-mix(in srgb, var(--forest) 9%, white);
}
.fase-operatore-certificata .fase-operatore-testo { color: var(--forest-deep); font-weight: 600; }
.riga-caso-volgare {
  display: block;
  font-size: 0.92rem;
  color: rgba(60, 60, 67, 0.65);
  margin-top: 0.15rem;
}
.elenco-scatti { display: flex; flex-direction: column; gap: 0.85rem; }
.carta-scatto {
  display: grid;
  grid-template-columns: 11rem 1fr;
  gap: 1rem;
  padding: 1.05rem 1rem 1.1rem;
  border: 1px solid var(--bordo);
  background: #fff;
  align-items: start;
  scroll-margin-top: 4.5rem;
  border-radius: 1.05rem;
}
.carta-scatto.chiusa { border-color: var(--accento); }
.scatto-confronto {
  display: flex;
  flex-direction: column;
  width: 11rem;
}
.quadro-scatto {
  width: 11rem;
  height: 13.1rem;
  box-sizing: border-box;
  overflow: hidden;
  background: var(--linen);
  border: 1px solid var(--bordo);
}
.etichetta-rilievo {
  margin: 0;
  padding: 0.35rem 0.2rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 650;
  color: var(--brass);
  text-align: center;
}
.scatto-esempio {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.disegno-clinico,
.anteprima-scatto {
  width: 11rem;
  height: 13.1rem;
  display: block;
}
.anteprima-scatto { object-fit: cover; }
.posto-vuoto {
  margin: 0;
  height: 13.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muto);
  font-size: 0.85rem;
}
.verdetto-scatto {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.35;
}
.verdetto-scatto.esaustivo,
.verdetto-scatto.esaustiva { color: var(--ok); }
.verdetto-scatto.non_esaustivo,
.verdetto-scatto.non_esaustiva,
.verdetto-scatto.manca,
.verdetto-scatto.illeggibile,
.verdetto-scatto.troppo_piccola { color: var(--brass); }
.verdetto-scatto.non_dovuta { color: var(--forest); }
.scatto-punto {
  margin: 0 0 0.35rem;
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--forest-deep);
  line-height: 1.4;
}
.carta-scatto h2 {
  font-size: 1.15rem;
  margin: 0 0 0.15rem;
}
.scatto-num {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 600;
}
.scatto-organo {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  color: var(--forest);
  font-weight: 500;
}
.scatto-come {
  margin: 0 0 0.7rem;
  font-size: 0.9rem;
  color: var(--muto);
  line-height: 1.5;
}
.scatto-stato { margin: 0 0 0.65rem; font-size: 0.85rem; font-weight: 600; }
.ok-scatto { color: var(--ok); }
.na-scatto { color: var(--forest); }
.attesa-scatto { color: var(--brass); }
.anteprima-scatto { margin: 0; border: 0; }
.protocollo-scatti .btn {
  border-radius: 0.85rem;
}
.btn-file { position: relative; overflow: hidden; }
.btn-file input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  font-size: 0;
  width: 100%;
  height: 100%;
}
@media (max-width: 560px) {
  .carta-scatto { grid-template-columns: 1fr; }
  .scatto-confronto,
  .quadro-scatto,
  .disegno-clinico,
  .anteprima-scatto { width: 100%; max-width: 11rem; }
}

/* —— Cancello 0: atto nella pagina dopo gli scatti; azienda solo nel piede —— */
.testata-compatta {
  position: relative;
  z-index: 40;
  flex: 0 0 auto;
}
body.pagina-cancello0 {
  min-height: 100vh;
  min-height: 100dvh;
}
body.pagina-cancello0 main {
  padding-bottom: 2rem;
}
body.pagina-cancello0 .chiusura-cancello {
  margin: 2rem 0 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.pagina-cancello0 .elenco-mancanti {
  margin: 0.55rem 0 0;
  font-size: 1rem;
}
.pagina-cancello0 .nota-rilievi-mancanti {
  margin: 2rem 0 0;
  padding: 1.25rem 1.35rem;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06);
}
.pagina-cancello0 .nota-rilievi-titolo {
  margin: 0 0 0.75rem;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.45;
  color: #1c1c1e;
}
.pagina-cancello0 .nota-rilievi-elenco {
  margin: 0 0 0.85rem;
  padding-left: 1.15rem;
  font-size: 1.0625rem;
  line-height: 1.5;
  color: rgba(60, 60, 67, 0.85);
}
.pagina-cancello0 .nota-rilievi-piede {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: rgba(60, 60, 67, 0.6);
}
.pagina-cancello0 .atto-determinazione {
  padding: 1.6rem 0 0.5rem;
  margin: 0;
  box-shadow: none;
  background: transparent;
  border-radius: 0;
  border-top: 1px solid var(--bordo);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
}
.pagina-cancello0 .nome-dichiarato {
  margin: 0;
  font-size: clamp(1.7rem, 4.5vw, 2.2rem);
  line-height: 1.2;
}
.pagina-cancello0 .atto-firme {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.pagina-cancello0 .atto-firme .pill {
  padding: 0.42rem 0.9rem;
  font-size: 1rem;
}
.pagina-cancello0 .censimento-chip {
  display: none;
}
.pagina-cancello0 .atto-chiuso {
  margin: 0;
  font-size: 1.08rem;
  color: var(--forest-deep);
  font-weight: 600;
}
.pagina-cancello0 .atto-fork {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.7rem 1rem;
  margin: 0.1rem 0 0;
  width: 100%;
}
.pagina-cancello0 .atto-domanda {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--forest-deep);
}
.pagina-cancello0 .atto-scelta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
}
.pagina-cancello0 .atto-scelta .btn {
  min-width: 4.6rem;
  padding: 0.5rem 1.1rem;
  font-size: 1.05rem;
}
.pagina-cancello0 .atto-blocco {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
}
.firma-proprieta p { margin: 0; }
.firma-marchio {
  font-family: var(--font-titolo);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--forest-deep);
}
.firma-marchio strong {
  font-weight: 700;
}
.firma-resto {
  margin-top: 0.18rem;
  font-size: 0.62rem;
  line-height: 1.35;
  color: var(--muto);
}
.firma-resto p { margin: 0; }
.piede-brand .firma-marchio { font-size: 0.85rem; }

.pagina-anamnesi .carta-scatto {
  grid-template-columns: 1fr;
}
.pagina-anamnesi .scatto-corpo { min-width: 0; }
.pagina-anamnesi .scatto-azioni {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin: 0.35rem 0 0;
}
.pagina-anamnesi .scatto-azioni form { margin: 0; }
.pagina-anamnesi .nav-prove {
  display: flex;
  gap: 0.8rem;
  margin: 1.6rem 0 2.2rem;
}
.pagina-anamnesi .nav-prove .btn {
  flex: 1;
  min-height: 3rem;
}
.pagina-anamnesi .modulo { gap: 0.8rem; margin: 0.15rem 0 0; }
.pagina-anamnesi .nome-dichiarato { margin-bottom: 0.85rem; }

.pagina-anamnesi .an-sezione {
  margin: 1.6rem 0 0.85rem;
  padding: 0.85rem 1rem;
  background: color-mix(in srgb, var(--forest) 7%, white);
  border-left: 3px solid var(--forest);
  border-radius: 0 0.9rem 0.9rem 0;
}
.pagina-anamnesi .an-sezione .passo-num { margin: 0 0 0.2rem; }
.pagina-anamnesi .an-sezione .muto { margin: 0; font-size: 0.92rem; }
.pagina-anamnesi .carta-scatto h2 { font-size: 1.22rem; }
.pagina-anamnesi .scatto-punto { margin-top: 0.85rem; }
.pagina-anamnesi input[type="date"] { min-height: 2.6rem; }

.pagina-quadro .scheda-quadro {
  margin: 0.7rem 0 0;
  grid-template-columns: minmax(7rem, 11rem) 1fr;
}
.pagina-quadro .scheda-quadro dt {
  font-size: 0.82rem;
  padding-top: 0.15rem;
}
.pagina-quadro .scheda-quadro dd {
  font-size: 1.02rem;
  color: var(--forest-deep);
  font-weight: 550;
}
.pagina-quadro .atto-determinazione,
.pagina-anamnesi .atto-determinazione {
  margin: 1.15rem 0 0;
  padding: 1.1rem 1.15rem;
  border: 1px solid var(--accento);
  border-radius: 1.05rem;
  background: #fff;
}
.pagina-quadro .atto-determinazione h2 {
  margin: 0.2rem 0 0;
  font-size: 1.45rem;
}
.pagina-quadro .atto-determinazione .scatto-azioni { margin-top: 1rem; }
.pagina-quadro .galleria-rilievi {
  margin: 0.4rem 0 1.1rem;
}
.pagina-quadro .galleria-rilievi .carta-scatto {
  grid-template-columns: 10rem 1fr;
}

.pagina-quadro .relazione {
  margin: 0.55rem 0 0;
  font-size: 1.02rem;
  line-height: 1.55;
  color: var(--forest-deep);
}
.pagina-quadro .relazione-lista {
  margin: 0.55rem 0 0;
  padding-left: 1.15rem;
  color: var(--forest-deep);
  font-size: 1.02rem;
  line-height: 1.5;
}
.pagina-quadro .relazione-lista li { margin: 0.35rem 0; }
.pagina-quadro .carta-responsabile .relazione-lista li {
  padding-left: 0.1rem;
}
.pagina-quadro .carta-scatto.chiusa h2 { color: var(--forest-deep); }
.pagina-quadro .carta-responsabile {
  border-color: var(--accento);
  background: color-mix(in srgb, var(--forest) 6%, white);
}
.pagina-quadro .carta-responsabile h2 { font-size: 1.35rem; }
.pagina-quadro .elenco-esperti {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 1.25rem 0 1.5rem;
}
.pagina-quadro .carta-esperto h2 { font-size: 1.15rem; }
.pagina-quadro .carta-esperto .relazione { font-size: 0.95rem; }
.pagina-quadro .verdetto-esperto {
  display: inline-block;
  margin: 0.35rem 0 0.5rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  font-size: 0.75rem;
  color: var(--forest);
}
.pagina-quadro .titolo-referto {
  font-family: var(--font-titolo);
  font-size: 1.15rem;
  margin: 1.1rem 0 0.4rem;
  color: var(--forest-deep);
}
.pagina-quadro .carta-responsabile .relazione {
  white-space: normal;
}

/* —— Layout tatto · direttive Ro 21/09/2026: pulito, pollice, contrasto, un verde —— */
:root {
  --muto: #3a4638;
  --bordo: #b7ad9a;
  --tocco: 3rem;
}

main {
  padding: 1.35rem 1.15rem 6.25rem;
}

.pannello {
  padding: 1.5rem 1.2rem 1.7rem;
}

.lead {
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 34em;
  margin: 0 0 1.4rem;
}

.modulo {
  gap: 1.15rem;
}

.modulo input,
.modulo textarea,
.modulo select {
  min-height: 2.85rem;
  font-size: 1.05rem;
  border: 1.5px solid #8f8674;
  border-radius: 0.7rem;
  padding: 0.75rem 0.9rem;
}

.modulo input:focus,
.modulo textarea:focus,
.modulo select:focus {
  outline: 3px solid var(--forest);
  outline-offset: 1px;
  border-color: var(--forest);
}

.check {
  min-height: var(--tocco);
  padding: 0.4rem 0.15rem;
  font-size: 1.02rem;
}

.btn,
.btn-file,
label.btn {
  min-height: var(--tocco);
  min-width: var(--tocco);
  padding: 0.85rem 1.2rem;
  font-size: 1.05rem;
  font-weight: 600;
  border-radius: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.modulo > .btn.primario,
form.modulo > button.btn.primario {
  width: 100%;
}

.scheda-operatore,
.scheda-canale,
.elenco-mancanti a,
.vai-rilievo {
  min-height: var(--tocco);
  border-width: 2px;
  border-radius: 0.85rem;
}

.scheda-operatore {
  padding: 1.2rem 1.25rem;
}

.splash-continua {
  min-height: var(--tocco);
  padding: 0.95rem 1.5rem;
  font-size: 1.08rem;
  font-weight: 650;
  border-radius: 0.95rem;
}

.nazioni-ue .bandiera {
  min-width: var(--tocco);
  min-height: var(--tocco);
}

@media (max-width: 820px) {
  main {
    padding-bottom: 7.5rem;
  }

  form.modulo {
    padding-bottom: 5.25rem;
  }

  .modulo > .btn.primario,
  form.modulo > button.btn.primario,
  .ingresso-azioni .btn.primario,
  .prossimo-passo .btn.primario {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 35;
    width: 100%;
    border-radius: 0;
    padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -10px 28px rgba(30, 53, 36, 0.22);
  }

  /* Anamnesi: il verde resta sotto il campo. Il piede aziendale non si copre. */
  body.pagina-anamnesi:not(.pagina-quadro) main {
    padding-bottom: 0;
  }
  body.pagina-anamnesi:not(.pagina-quadro) form.modulo {
    padding-bottom: 0;
  }
  body.pagina-anamnesi:not(.pagina-quadro) form.modulo > button.btn.primario {
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    z-index: auto;
    width: 100%;
    border-radius: 0.85rem;
    box-shadow: none;
    padding: 0.85rem 1.2rem;
  }

  .splash-continua {
    width: 100%;
    box-shadow: 0 10px 28px rgba(30, 53, 36, 0.28);
  }

  .pannello {
    border: 0;
    box-shadow: none;
    background: transparent;
    padding: 0.85rem 0.35rem 1.2rem;
  }

  h1 { font-size: 1.5rem; }
}

@media (min-width: 821px) {
  main { padding-bottom: 4rem; }
}

/* Un fondo solo. Niente riquadri nello riquadro. */
.pannello,
.protocollo-scatti,
.prossimo-passo,
.atto-determinazione,
.pagina-quadro .atto-determinazione,
.pagina-anamnesi .atto-determinazione,
.pagina-quadro .carta-responsabile,
.pagina-anamnesi .an-sezione,
.nota-clinica,
.carta-scatto,
.carta-scatto.chiusa,
.contatore,
.ingresso-lingua,
.ingresso-canale {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.quadro-scatto {
  background: transparent;
  border: 0;
}

.modulo fieldset {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--bordo);
  padding: 1.1rem 0 0.2rem;
}

.nota-clinica {
  padding: 0;
  border-left: 0 !important;
}

/* —— Cosa fare ora: proposta grafica app (un fondo, foto-oggetto, titolo eroe) —— */
body.pagina-quadro main {
  max-width: 26.5rem;
  padding: 1.5rem 1.35rem 6.5rem;
}
.pagina-quadro .schermo-quadro {
  background: transparent;
}
.pagina-quadro .eroe-quadro {
  margin: 0 0 1.75rem;
}
.pagina-quadro .eroe-quadro .passo-num {
  color: var(--brass);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  margin: 0 0 0.65rem;
}
.pagina-quadro .eroe-quadro h1 {
  font-size: clamp(1.85rem, 7vw, 2.4rem);
  line-height: 1.12;
  margin: 0;
  letter-spacing: -0.03em;
}
.pagina-quadro .eroe-quadro h1 em {
  font-style: italic;
  font-weight: 500;
}
.pagina-quadro .eroe-quadro .lead {
  font-size: 1.05rem;
  color: var(--muto);
  margin: 0 0 0.85rem;
  max-width: 22em;
}
.pagina-quadro .nome-dichiarato {
  font-family: var(--font-titolo);
  font-size: clamp(1.35rem, 4.5vw, 1.7rem);
  font-weight: 400;
  margin: 0;
  color: var(--forest-deep);
}
.pagina-quadro .galleria-rilievi {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 0.65rem;
  margin: 1.15rem 0 1.5rem;
}
.pagina-quadro .galleria-rilievi .carta-scatto {
  display: block;
  padding: 0;
}
.pagina-quadro .galleria-rilievi .scatto-confronto,
.pagina-quadro .galleria-rilievi .quadro-scatto {
  width: 100%;
  height: auto;
  overflow: hidden;
  border-radius: 1.15rem;
}
.pagina-quadro .galleria-rilievi .anteprima-scatto {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
  border-radius: 0.75rem;
}
.pagina-quadro .galleria-rilievi .scatto-corpo {
  padding: 0.55rem 0.1rem 0;
}
.pagina-quadro .galleria-rilievi .scatto-num {
  display: none;
}
.pagina-quadro .galleria-rilievi h2 {
  font-family: var(--font-corpo);
  font-size: 0.95rem;
  font-weight: 650;
  margin: 0;
  color: var(--ink);
  line-height: 1.25;
}
.pagina-quadro .sezione-quadro {
  font-family: var(--font-corpo);
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 700;
  margin: 0.4rem 0 0.2rem;
}
.pagina-quadro .tendina-riga {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.55rem;
}
.pagina-quadro .verdetto-esperto {
  flex: 0 0 auto;
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--forest-deep);
  text-align: right;
}
.pagina-quadro .esito-diagnosi {
  margin: 0.35rem 0 0;
  font-size: 1.2rem;
  font-weight: 650;
  line-height: 1.35;
  color: var(--ink);
}
.pagina-quadro .carta-responsabile {
  margin-top: 1.5rem;
}
.pagina-quadro .elenco-esperti {
  gap: 0.85rem;
}
.pagina-quadro .tendina-esperto {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0.15rem 0 0.35rem;
}
.pagina-quadro .tendina-esperto summary {
  list-style: none;
  cursor: pointer;
  min-height: 3rem;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.85rem;
  padding: 0.75rem 1.6rem 0.75rem 0;
  position: relative;
}
.pagina-quadro .tendina-icona {
  flex: 0 0 auto;
  width: 2.4rem;
  height: 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--forest);
}
.pagina-quadro .tendina-icona svg {
  width: 1.55rem;
  height: 1.55rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pagina-quadro .tendina-testo {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.pagina-quadro .tendina-esperto summary::-webkit-details-marker { display: none; }
.pagina-quadro .tendina-esperto summary::after {
  content: "";
  position: absolute;
  right: 0.15rem;
  top: 1.15rem;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid var(--forest);
  border-bottom: 2px solid var(--forest);
  transform: rotate(45deg);
}
.pagina-quadro .tendina-esperto[open] summary::after {
  transform: rotate(-135deg);
  top: 1.35rem;
}
.pagina-quadro .tendina-meta {
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 650;
}
.pagina-quadro .tendina-nome {
  font-family: var(--font-titolo);
  font-size: 1.2rem;
  color: var(--forest-deep);
}
.pagina-quadro .tendina-esperto .relazione {
  margin: 0 0 0.9rem;
  padding-right: 0.4rem;
}
.pagina-quadro .carta-responsabile h2 {
  font-size: clamp(1.7rem, 5vw, 2.1rem);
}

/* Diagnosi: una famiglia sola. Inter Tight, peso pieno — si legge al sole. */
body.pagina-quadro,
body.pagina-quadro .sigla,
body.pagina-quadro .nome,
body.pagina-quadro h1,
body.pagina-quadro h2,
body.pagina-quadro h3,
body.pagina-quadro .nome-dichiarato,
body.pagina-quadro .titolo-referto,
body.pagina-quadro .tendina-nome,
body.pagina-quadro .eroe-quadro h1,
body.pagina-quadro .eroe-quadro h1 em,
body.pagina-quadro .galleria-rilievi h2,
body.pagina-quadro .sezione-quadro,
body.pagina-quadro .carta-responsabile h2,
body.pagina-quadro .verdetto-esperto,
body.pagina-quadro .esito-diagnosi,
body.pagina-quadro .relazione,
body.pagina-quadro .relazione-lista {
  font-family: "Inter Tight", system-ui, sans-serif;
}
body.pagina-quadro {
  font-size: 1.0625rem;
  font-weight: 500;
}
body.pagina-quadro .sigla {
  font-weight: 600;
  font-size: 0.98rem;
  color: #fff;
}
body.pagina-quadro .nome {
  font-size: 0.85rem;
  font-weight: 500;
  color: #e4ebe3;
}
body.pagina-quadro .eroe-quadro h1,
body.pagina-quadro .eroe-quadro h1 em,
body.pagina-quadro .tendina-nome,
body.pagina-quadro .carta-responsabile h2,
body.pagina-quadro .titolo-referto,
body.pagina-quadro .galleria-rilievi h2,
body.pagina-quadro .esito-diagnosi,
body.pagina-quadro .verdetto-esperto {
  font-weight: 600;
}
body.pagina-quadro .eroe-quadro h1 em {
  font-style: italic;
}
body.pagina-quadro .eroe-quadro .passo-num,
body.pagina-quadro .sezione-quadro,
body.pagina-quadro .tendina-meta {
  font-family: "Inter Tight", system-ui, sans-serif;
  color: var(--forest-deep);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.06em;
}
body.pagina-quadro .relazione,
body.pagina-quadro .relazione-lista,
body.pagina-quadro .relazione-lista li {
  font-size: 1.0625rem;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.45;
}
body.pagina-quadro .tendina-diagnosi {
  margin-top: 1.75rem;
  padding: 1.15rem 0 0.4rem;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  border-top: 2px solid var(--forest);
}
body.pagina-quadro .tendina-diagnosi summary {
  background: transparent;
  color: var(--forest-deep);
  border-radius: 0;
  min-height: 0;
  padding: 0.35rem 1.6rem 0.2rem 0;
}
body.pagina-quadro .tendina-diagnosi .tendina-icona {
  color: var(--forest);
}
body.pagina-quadro .tendina-diagnosi .tendina-meta {
  color: var(--forest);
}
body.pagina-quadro .tendina-diagnosi .tendina-nome {
  color: var(--forest-deep);
  font-size: 1.65rem;
  font-weight: 600;
  line-height: 1.15;
}
body.pagina-quadro .tendina-diagnosi summary::after {
  border-right-color: var(--forest);
  border-bottom-color: var(--forest);
  right: 0.15rem;
}
.pagina-quadro .tendina-diagnosi .tendina-testo {
  gap: 0.2rem;
}
.pagina-quadro .tendina-diagnosi .tendina-nome {
  display: block;
}
.pagina-quadro .tendina-diagnosi .verdetto-diagnosi {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  margin: 0.55rem 0 0;
  font-family: "Inter Tight", system-ui, sans-serif;
  text-align: left;
}
.pagina-quadro .tendina-diagnosi .voce-diagnosi {
  display: block;
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ink);
}
body.pagina-cancello0 {
  height: 100dvh;
  overflow: hidden;
}
body.pagina-cancello0 .testata-compatta {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  max-width: none;
  margin: 0;
}
body.pagina-cancello0 main {
  position: fixed;
  top: 3.35rem;
  right: 0;
  left: 0;
  bottom: 6.6rem;
  max-width: 26.5rem;
  margin: 0 auto;
  overflow-y: auto;
  padding: 1.15rem 1.15rem 1.4rem;
}
body.pagina-cancello0 .cornice-piede {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 40;
  background: var(--linen);
  border-top: 1px solid var(--bordo);
}
body.pagina-cancello0 .piede {
  position: static;
  max-width: 26.5rem;
  margin: 0 auto;
  padding: 0.15rem 1rem 0.45rem;
  border: 0;
  background: transparent;
}
body.pagina-cancello0 .piede-sistema,
body.pagina-cancello0 .piede .nota,
body.pagina-cancello0 .firma-sede {
  display: none;
}
body.pagina-cancello0 .piede-brand {
  margin: 0;
  text-align: center;
}
body.pagina-cancello0 .firma-marchio {
  font-size: 0.72rem;
}
body.pagina-cancello0 .firma-resto {
  font-size: 0.68rem;
}
.passo-app {
  position: static;
  display: flex;
  width: 100%;
  max-width: 26.5rem;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  transform: none;
}
.passo-app .btn {
  flex: 1;
  min-height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 0.6rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--forest-deep);
  font-size: 1rem;
  font-weight: 600;
}
.passo-app .btn.primario,
.passo-app .btn:only-child {
  flex: 1;
  background: transparent;
  color: var(--forest);
}
.pagina-referto .voce-referto {
  margin: 0 0 1.15rem;
}
.pagina-referto .voce-referto h2 {
  font-family: "Inter Tight", system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--forest);
  margin: 0 0 0.3rem;
}
.pagina-referto .voce-referto p {
  margin: 0.15rem 0;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--ink);
}
.pagina-referto .voce-referto em {
  font-style: italic;
  font-weight: 600;
}
.pagina-quadro .tendina-diagnosi .esito-diagnosi,
.pagina-quadro .tendina-diagnosi .titolo-referto,
.pagina-quadro .tendina-diagnosi .relazione,
.pagina-quadro .tendina-diagnosi .relazione-lista {
  margin-left: 3.25rem;
}

/* Referto · definitivo — misure copiate da Figma, nodo 6:2. Niente blur. */
body.pagina-cancello0 {
  background: #F7F6F3;
}
body.pagina-cancello0 .testata,
body.pagina-cancello0 .testata-compatta {
  height: 40px;
  min-height: 40px;
  padding: 0 16px;
  background: #F7F6F3;
  color: #1E3524;
  border-bottom: 1px solid #E6E1D6;
  box-shadow: none;
  backdrop-filter: none;
  align-items: center;
  flex-wrap: nowrap;
}
body.pagina-cancello0 .marchio,
.testata-brand {
  flex-direction: row;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
body.pagina-cancello0 .sigla {
  color: #1E3524;
  font-size: 15px;
  font-weight: 600;
}
body.pagina-cancello0 .nome {
  display: inline;
  color: #5C6B5A;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.pagina-cancello0 .mini-bandiera {
  color: #1E3524;
  border-color: #E6E1D6;
  background: #FFFFFF;
  border-radius: 8px;
  box-shadow: none;
}
body.pagina-cancello0 main {
  top: 40px;
  bottom: 52px;
  max-width: var(--veste-colonna);
  padding: 20px;
  background: #F7F6F3;
}
body.pagina-quadro .eroe-quadro {
  margin: 0 0 24px;
}
body.pagina-quadro .eroe-quadro .passo-num {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #1E3524;
  margin: 0 0 8px;
}
body.pagina-quadro .eroe-quadro h1 {
  font-size: 28px;
  line-height: 34px;
  font-weight: 600;
  color: #1A2419;
}
body.pagina-quadro .eroe-quadro .relazione {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 22px;
  font-weight: 400;
  color: #5C6B5A;
}
body.pagina-quadro .galleria-rilievi {
  grid-template-columns: 1fr;
  gap: 20px;
  margin: 0;
}
body.pagina-quadro .galleria-rilievi .carta-scatto {
  background: #FFFFFF !important;
  border-radius: 20px !important;
  box-shadow: 0 8px 24px rgba(30, 53, 36, 0.08) !important;
  overflow: hidden;
  padding: 0 !important;
}
body.pagina-quadro .galleria-rilievi .quadro-scatto,
body.pagina-quadro .galleria-rilievi .scatto-confronto {
  border-radius: 20px 20px 0 0;
  overflow: hidden;
}
body.pagina-quadro .galleria-rilievi .anteprima-scatto {
  width: 100%;
  height: 240px;
  aspect-ratio: auto;
  object-fit: cover;
  border-radius: 0;
}
body.pagina-referto .galleria-rilievi .carta-scatto:first-child .anteprima-scatto {
  height: 420px;
}
body.pagina-quadro .galleria-rilievi .scatto-corpo {
  padding: 14px 16px;
}
body.pagina-quadro .galleria-rilievi h2 {
  font-size: 16px;
  font-weight: 600;
  color: #1A2419;
}
body.pagina-quadro .tendina-esperto {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none;
  padding: 0.35rem 0;
  margin: 0;
}
body.pagina-cancello0 .cornice-piede {
  height: 52px;
  background: #FFFFFF;
  border-top: 1px solid #E6E1D6;
  box-shadow: none;
  padding: 0;
  pointer-events: auto;
}
body.pagina-cancello0 .piede {
  display: none;
}
body.pagina-cancello0 .passo-app {
  width: min(var(--veste-colonna), 100%);
  height: 52px;
  min-height: 52px;
  padding: 0 16px;
  background: #FFFFFF;
  backdrop-filter: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  justify-content: space-between;
}
body.pagina-cancello0 .passo-app .btn {
  flex: 0 0 auto;
  min-height: 48px;
  font-size: 16px;
  font-weight: 600;
  color: #1E3524;
  background: transparent;
}
body.pagina-cancello0 .passo-app .btn.primario {
  min-width: 132px;
  padding: 0 22px;
  color: #FFFFFF;
  background: #1E3524;
  border-radius: 14px;
}
.riga-fonte {
  display: block;
}
.btn-fonte {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  min-height: 28px;
  padding: 0 8px;
  border-radius: 6px;
  background: #1E3524;
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  vertical-align: middle;
}
body.pagina-quadro .eroe-quadro h1 {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 36px;
  line-height: 1.15;
  font-weight: 600;
}
.marca-diagnosi {
  display: flex;
  flex: 0 0 auto;
}
.marca-diagnosi-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}
.marca-diagnosi-icon circle,
.marca-diagnosi-icon path {
  fill: none;
  stroke: #1e3524;
  stroke-width: 2;
}
svg.freccia-riga {
  flex: 0 0 auto;
  width: 8px;
  height: 14px;
}
svg.freccia-riga path {
  stroke: rgba(60, 60, 67, 0.3);
  stroke-width: 1.5;
}
body.pagina-quadro.pagina-referto .voce-referto h2 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #1E3524;
  margin: 0 0 10px;
}
body.pagina-quadro .voce-referto h3,
body.pagina-quadro .titolo-referto {
  font-size: 22px;
  line-height: 1.25;
  font-weight: 600;
  color: #1A2419;
  margin: 22px 0 8px;
}
body.pagina-quadro .voce-referto p,
body.pagina-quadro .voce-referto li,
body.pagina-quadro .esito-diagnosi,
body.pagina-quadro .relazione {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
}
body.pagina-quadro .esito-diagnosi {
  font-size: 20px;
  font-weight: 600;
}
body.pagina-quadro .voce-referto ul {
  margin: 0;
  padding: 0 0 0 1.2rem;
}
body.pagina-quadro .voce-referto li {
  margin: 0 0 10px;
}
body.pagina-quadro .voce-referto li.riga-fonte {
  display: list-item;
}
body.pagina-piano:not(.guscio-bus) {
  background: #F2F2F7;
  font-family: -apple-system, "SF Pro Text", "SF Pro", system-ui, sans-serif;
}
body.pagina-piano main {
  top: 40px;
  bottom: 96px;
  max-width: var(--veste-colonna);
  padding: 20px 16px 24px;
  background: #F2F2F7;
}
body.pagina-piano .foglio-piano {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
body.pagina-piano:not(.guscio-bus) .titolo-piano h1 {
  display: block;
  margin: 0;
  font-family: -apple-system, "SF Pro Display", "SF Pro", system-ui, sans-serif;
  font-size: 34px;
  font-weight: 700;
  font-style: normal;
  line-height: 41px;
  letter-spacing: 0;
  color: #000;
}
body.pagina-piano .titolo-piano p {
  margin: 4px 0 0;
  font-size: 17px;
  font-weight: 400;
  font-style: italic;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-piano .giorni-piano {
  background: #fff;
  border-radius: 26px;
  overflow: hidden;
}
body.pagina-caso .giorni-piano {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}
body.pagina-caso .giorni-piano hr {
  display: none;
}
body.pagina-piano .giorni-piano hr {
  margin: 0;
  border: 0;
  height: 1px;
  background: #C6C6C8;
}
body.pagina-piano .giorni-piano article {
  display: block;
  padding: 14px 16px;
}
body.pagina-piano a.giorno-riga {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  text-decoration: none;
  color: inherit;
}
body.pagina-piano a.giorno-riga .giorno-testo {
  flex: 1;
  min-width: 0;
}
body.pagina-piano a.giorno-riga svg {
  flex: none;
  width: 8px;
  height: 14px;
}
body.pagina-piano a.giorno-riga:active {
  background: #E5E5EA;
}
body.pagina-piano .giorni-piano h2 {
  margin: 0;
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 0;
  text-transform: none;
  color: #000;
}
body.pagina-piano .giorni-piano p {
  margin: 2px 0 0;
  font-size: 17px;
  font-weight: 400;
  font-style: normal;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
  white-space: normal;
  overflow-wrap: break-word;
}
body.pagina-piano .avviso-piano {
  margin: 0;
  font-size: 15px;
  font-weight: 400;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-piano .blocco-calendario {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.pagina-piano .blocco-calendario > p {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-piano .istruzione-sistema {
  margin: 0;
  text-align: center;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-piano .cornice-piede {
  height: auto;
  min-height: 86px;
  background: #F2F2F7;
  border: 0;
}
body.pagina-piano .piede {
  display: block;
  padding: 0 16px 8px;
  text-align: center;
  background: transparent;
}
body.pagina-piano .firma-proprieta {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 6px;
}
body.pagina-piano .firma-marchio {
  font-size: 12px;
  color: #1E3524;
}
body.pagina-piano .firma-di {
  display: inline;
  font-size: 11px;
  line-height: 14px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-piano .firma-resto {
  display: inline;
}
body.pagina-piano #file-calendario {
  position: absolute;
  width: 0;
  height: 0;
  border: 0;
}
body.pagina-piano .passo-app {
  height: auto;
  min-height: 0;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  padding: 6px 16px 4px;
  background: transparent;
}
body.pagina-piano .passo-app .btn.primario {
  flex: 1 1 auto;
  width: 100%;
  height: 50px;
  min-height: 50px;
  border-radius: 25px;
  background: #1E3524;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
}
body.pagina-piano .voce-referto {
  margin: 0 0 32px;
}
body.pagina-piano .passo-app .btn.primario {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 50px;
  padding: 12px 18px;
  white-space: normal;
  border: 0;
  border-radius: 25px;
}
body.pagina-piano .btn.piano-no {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  background: transparent;
  color: rgba(60, 60, 67, 0.6);
  font-size: 17px;
  font-weight: 400;
  text-decoration: none;
}
body.pagina-piano.calendario-chiuso main {
  bottom: 0;
}
body.pagina-piano.calendario-chiuso .cornice-piede {
  display: none;
}
body.pagina-piano .mini-cal {
  background: #fff;
  border-radius: 26px;
  padding: 16px;
}
body.pagina-piano .mini-cal-testa {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
body.pagina-piano .mini-cal-testa p {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
}
body.pagina-piano .mini-cal-testa button {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 22px;
  background: #F2F2F7;
  font-size: 22px;
  line-height: 1;
}
body.pagina-piano .mini-cal-giorni {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
body.pagina-piano .mini-cal-giorni button {
  height: 40px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  font-size: 17px;
}
body.pagina-piano .mini-cal-giorni button.oggi {
  box-shadow: inset 0 0 0 1.5px #1E3524;
}
body.pagina-piano .mini-cal-giorni button.scelto {
  background: #1E3524;
  color: #fff;
  box-shadow: none;
}
body.pagina-piano .passo-app .btn.primario:disabled {
  background: #E5E5EA;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-piano button.apri-cal {
  width: 100%;
  border: 0;
  background: #fff;
  border-radius: 26px;
  text-align: left;
}
body.pagina-piano button.giorno-riga {
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
body.pagina-piano button.giorno-riga:active {
  background: #E5E5EA;
}
body.pagina-piano .voce-referto ul.piano-voci {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
}
body.pagina-piano .riga-segno {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  column-gap: 12px;
  align-items: start;
}
body.pagina-piano h3.riga-segno {
  margin-bottom: 10px;
}
body.pagina-piano .riga-segno svg {
  width: 28px;
  height: 28px;
  margin-top: 1px;
  fill: none;
  stroke: #1E3524;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.pagina-piano .riga-segno span {
  min-width: 0;
}
body.pagina-piano .testo-intervento {
  margin: 4px 0 28px 40px;
}
body.pagina-piano .piano-voci li {
  margin: 0 0 10px;
}
body.pagina-piano .voci-corte {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.pagina-piano .voci-corte li {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
}
body.pagina-piano .giorno-tendina {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(30, 53, 36, 0.08);
  margin: 0 0 12px;
  padding: 12px 16px;
}
body.pagina-piano .giorno-tendina summary {
  list-style: none;
  cursor: pointer;
  min-height: 48px;
}
body.pagina-piano .giorno-tendina summary::-webkit-details-marker {
  display: none;
}
body.pagina-piano .chi-piano {
  display: block;
  margin: 4px 0 0 40px;
  font-size: 15px;
  font-weight: 600;
  color: #1E3524;
}
body.pagina-piano .giorno-tendina .testo-intervento {
  margin: 12px 0 4px 40px;
}
body.pagina-piano .avviso-piano {
  margin: 8px 0 0;
  font-size: 17px;
  font-weight: 600;
}
body.pagina-passport {
  background: #F2F2F7;
}
body.pagina-passport .testata-compatta,
body.pagina-passport main,
body.pagina-passport .cornice-piede {
  width: min(var(--veste-colonna), 100vw);
  max-width: min(var(--veste-colonna), 100vw);
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  transform: none;
  background: #F2F2F7;
  border: 0;
}
body.pagina-passport .testata-compatta {
  height: 44px;
  min-height: 44px;
}
body.pagina-passport .testata-compatta:has(.testa-esemplare) {
  height: auto;
  min-height: 0;
  align-items: flex-start;
  padding: 8px 16px 8px;
}
body.pagina-passport .testata-compatta:has(.testa-esemplare) .mini-lingua {
  position: absolute;
  top: 14px;
  right: 16px;
  margin: 0;
}
body.pagina-passport .testa-esemplare {
  width: 100%;
  min-width: 0;
}
body.pagina-passport:has(.testa-esemplare) main {
  top: auto;
}
body.pagina-passport .testa-passport,
body.pagina-passport .testa-cliente,
body.pagina-passport .testa-codice {
  margin: 0;
}
body.pagina-passport .testa-passport {
  padding-right: 72px;
  font-size: 34px;
  font-weight: 700;
  line-height: 41px;
  color: #000;
}
body.pagina-passport .testa-cliente {
  margin-top: 2px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-passport .testa-codice {
  margin-top: 2px;
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-passport .testa-codice em {
  font-style: italic;
}
body.pagina-passport main {
  top: 44px;
  padding: 8px 16px 16px;
}
body.pagina-passport.pagina-casi main,
body.pagina-passport.pagina-diagnosi main {
  padding-bottom: 88px;
}
body.pagina-passport .titolo-piano .nome-cliente {
  margin: 4px 0 0;
  font-size: 17px;
  font-weight: 600;
  font-style: normal;
  line-height: 22px;
  color: #000;
}
body.pagina-passport .codice-passport {
  margin: 2px 0 0;
  font-size: 17px;
  font-weight: 400;
  font-style: normal;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-passport .foto-passport {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 240px;
  margin: 0 auto;
  border-radius: 16px;
}
body.pagina-caso ol.pipeline {
  list-style: none;
  margin: 0;
  padding: 0;
  background: transparent;
  overflow: visible;
}
body.pagina-caso li.nodo {
  position: relative;
  margin: 0;
  padding: 0 0 16px 32px;
}
body.pagina-caso li.nodo:last-child {
  padding-bottom: 0;
}
body.pagina-caso li.nodo::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 0;
  bottom: 0;
  width: 1px;
  background: #C9A664;
}
body.pagina-caso li.nodo:first-child::before {
  top: 30px;
}
body.pagina-caso li.nodo:last-child::before {
  bottom: auto;
  height: 30px;
}
body.pagina-caso li.nodo:first-child:last-child::before {
  height: 0;
}
body.pagina-eventi .corpo-tendina a {
  display: block;
  min-height: 48px;
  padding: 12px 0;
  color: #000;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  text-decoration: none;
}
body.pagina-caso li.nodo::after {
  content: "";
  position: absolute;
  left: 0;
  top: 25px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #F2F2F7;
  border: 1.5px solid #000;
  box-sizing: border-box;
  box-shadow: 0 0 0 4px #F2F2F7;
}
body.pagina-caso li.nodo.completato::after {
  background: #000;
  border-color: #000;
}
body.pagina-caso .tendina {
  display: block;
  border: 0;
  border-radius: 25px;
  overflow: hidden;
  text-decoration: none;
  color: #1c1c1e;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 22%, rgba(0, 0, 0, 0.04) 100%),
    #F2F2F7;
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 10px 24px rgba(60, 60, 67, 0.16);
}
body.pagina-caso a.tendina,
body.pagina-caso div.tendina {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 16px;
}
body.pagina-caso a.tendina .voce-corso {
  flex: 1;
}
body.pagina-caso a.tendina::after,
body.pagina-caso a.giorno-riga::after {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  margin-left: auto;
  border-right: 1.5px solid rgba(60, 60, 67, 0.3);
  border-bottom: 1.5px solid rgba(60, 60, 67, 0.3);
  transform: rotate(-45deg);
}
body.pagina-caso .giorni-piano hr {
  height: 0.5px;
  margin-left: 16px;
  background: rgba(60, 60, 67, 0.29);
}
body.pagina-caso .dove-ruolo,
body.pagina-caso .titolo-dove {
  font-style: normal;
}
body.pagina-caso .titolo-dove {
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
}
body.pagina-caso .titolo-piano .dove-ruolo {
  margin: 2px 0 0;
  font-size: 17px;
  font-weight: 600;
  font-style: normal;
  line-height: 22px;
  color: #000;
}

/* Casi in cura — elenco + ricerca (no pipeline) */
body.pagina-casi .foglio-casi {
  gap: 12px;
}
body.pagina-casi .cerca-casi {
  margin: 0;
}
body.pagina-casi .campo-cerca-casi {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 14px 16px;
  border: 0;
  border-radius: 20px;
  font-size: 17px;
  line-height: 22px;
  color: #000;
  background: #fff;
  box-shadow: 0 2px 12px rgba(60, 60, 67, 0.08);
  -webkit-appearance: none;
  appearance: none;
}
body.pagina-casi .campo-cerca-casi::placeholder {
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-casi .conteggio-casi {
  margin: 0 0 12px;
  font-size: 15px;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-casi .elenco-casi-giorni hr,
body.pagina-diagnosi .elenco-esemplari-giorni hr {
  height: 0.5px;
  margin: 0;
  border: 0;
  background: rgba(60, 60, 67, 0.29);
}
body.pagina-censimento-voce .passo-app .btn.primario:disabled {
  opacity: 0.35;
  pointer-events: none;
}
body.pagina-casi .casi-filtro-vuoto {
  margin: 16px 0 0;
}
body.pagina-casi .nascosto {
  display: none !important;
}
body.pagina-casi .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.vds-shell.guscio-bus.pagina-casi > main {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding-bottom: 0;
}

body.pagina-casi .casi-portafoglio {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

body.pagina-casi .casi-testa-fissa {
  flex: 0 0 auto;
  position: sticky;
  top: 0;
  z-index: 6;
  margin: 0 -24px;
  padding: 0 24px 12px;
  background: var(--veste-fondo, #f2f2f7);
}

body.pagina-casi .casi-elenco-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

/* Casi: scroll interno — annulla padding 320px delle altre maschere Fase 2 */
body.vds-shell.pagina-fase2-archify.pagina-casi .fase1-archify.casi-portafoglio {
  padding-bottom: 0;
  height: 100%;
  min-height: 0;
}

body.pagina-fase1-archify .nav-indietro,
body.pagina-fase2-archify .nav-indietro {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 44px;
  font-weight: 500;
}

body.pagina-fase1-archify .nav-indietro-segno,
body.pagina-fase2-archify .nav-indietro-segno {
  font-size: 28px;
  line-height: 1;
  font-weight: 400;
}

body.pagina-fase1-archify .nav-indietro-testo,
body.pagina-fase2-archify .nav-indietro-testo {
  font-size: 17px;
  line-height: 22px;
}

body.pagina-diagnosi .campo-riga select,
body.pagina-diagnosi .campo-riga input[type="file"] {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-radius: 20px;
  font-size: 17px;
  line-height: 22px;
  color: #000;
  background: #fff;
  box-shadow: 0 2px 12px rgba(60, 60, 67, 0.08);
  box-sizing: border-box;
}

body.pagina-diagnosi .campo-riga {
  position: relative;
}

body.pagina-diagnosi .suggerimenti {
  border-radius: 16px;
  margin-top: 4px;
}

/* Diagnosi — elenco esemplari (righe Marcolongo) */
body.pagina-diagnosi .foglio-diagnosi {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
body.pagina-diagnosi .fase-operatore {
  margin: 0;
  padding: 12px 16px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(60, 60, 67, 0.08);
}
body.pagina-diagnosi .fase-operatore-titolo {
  margin: 0 0 4px;
  font-family: var(--font-corpo);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-diagnosi .fase-operatore-testo {
  margin: 0;
  font-family: var(--font-corpo);
  font-size: 17px;
  line-height: 22px;
  color: #1c1c1e;
}
body.pagina-passport.pagina-diagnosi.pagina-solo-elenco .cornice-piede {
  display: none;
}
body.pagina-passport.pagina-diagnosi.pagina-solo-elenco .cornice-piede:has(.ux-piede-azione) {
  display: flex;
}
body.pagina-passport.pagina-diagnosi.pagina-solo-elenco main {
  bottom: env(safe-area-inset-bottom, 0px);
  padding-bottom: 24px;
}
body.pagina-diagnosi .giorno-testo h2 {
  font-family: var(--font-corpo);
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #1c1c1e;
}
body.pagina-diagnosi .titolo-secondario {
  margin-top: 32px;
}
body.pagina-diagnosi .titolo-secondario h2 {
  font-family: var(--font-corpo);
}
body.pagina-diagnosi .titolo-secondario h2 {
  margin: 0;
  font-size: 22px;
  font-weight: 600;
  line-height: 28px;
}
body.pagina-diagnosi .modulo-esemplare {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 16px;
}
body.pagina-diagnosi .campo-riga {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
body.pagina-diagnosi .campo-etichetta {
  font-size: 15px;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-diagnosi .campo-riga input,
body.pagina-diagnosi .campo-riga textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-radius: 20px;
  font-size: 17px;
  line-height: 22px;
  color: #000;
  background: #fff;
  box-shadow: 0 2px 12px rgba(60, 60, 67, 0.08);
}
body.pagina-diagnosi .campo-riga textarea {
  min-height: 72px;
  resize: vertical;
}

body.pagina-eventi main {
  bottom: 108px;
}
body.pagina-eventi .checkin {
  margin: 0 0 32px;
  padding: 20px 20px 22px;
  border-radius: 26px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 22%, rgba(0, 0, 0, 0.04) 100%),
    #F2F2F7;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 10px 24px rgba(60, 60, 67, 0.16);
}
body.pagina-eventi .checkin-capo,
body.pagina-rami .checkin-capo {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
}
body.pagina-eventi .checkin-etichetta,
body.pagina-eventi .checkin-date,
body.pagina-rami .checkin-etichetta {
  margin: 0;
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-eventi .checkin-data,
body.pagina-rami .checkin-data {
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-eventi .checkin-esito {
  margin: 6px 0 0;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: #000;
}
body.pagina-eventi .checkin-date {
  margin-top: 8px;
}
body.pagina-eventi .checkin-prec {
  margin: 16px 0 0;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  color: #000;
}
body.pagina-eventi .diagnosi-nuova,
body.pagina-rami .diagnosi-nuova {
  margin: 0 0 40px;
}
body.pagina-rami .cura-natura {
  margin: 8px 0 24px;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.02em;
  color: #000;
}
body.pagina-eventi .testo-diagnosi p,
body.pagina-rami .testo-diagnosi p,
body.pagina-eventi .testo-cura p {
  margin: 0 0 16px;
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  color: #000;
}
body.pagina-eventi .testo-diagnosi p:first-child,
body.pagina-rami .testo-diagnosi p:first-child {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -0.02em;
}
body.pagina-eventi .testo-cura {
  margin-top: 32px;
}
body.pagina-eventi .testo-cura .checkin-etichetta {
  margin-bottom: 8px;
}
body.pagina-eventi .attori,
body.pagina-rami .attori {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body.pagina-eventi .attori li,
body.pagina-rami .attori li {
  margin: 0;
  padding: 0;
}
body.pagina-eventi .attore {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 10px;
  padding: 14px 16px;
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 22%, rgba(0, 0, 0, 0.04) 100%),
    #F2F2F7;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 10px 24px rgba(60, 60, 67, 0.16);
}
body.pagina-eventi .attore-nome {
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-eventi .attore-esito {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  color: #000;
}
body.pagina-eventi .attore-vuoto {
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-eventi .checkin-segue {
  margin: 0 0 16px;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.5;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-caso .tendina .voce-corso {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
body.pagina-caso .tendina .data-corso {
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  letter-spacing: -0.02em;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-caso .tendina .genere {
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-lunardi .censimento {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 24px 0 0;
}
body.pagina-lunardi .censimento label {
  font-size: 17px;
  line-height: 22px;
  font-weight: 600;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-lunardi .censimento input {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-radius: 16px;
  background: rgba(120, 120, 128, 0.16);
  color: #000;
  font-size: 17px;
  line-height: 22px;
}
body.pagina-lunardi .rilievo-aperto h1 {
  margin: 8px 0 16px;
  font-size: 34px;
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: -0.02em;
}
body.pagina-lunardi .rilievo-aperto p {
  margin: 0 0 12px;
  font-size: 17px;
  line-height: 22px;
}
body.pagina-lunardi .rilievo-import {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
body.pagina-lunardi .rilievo-import img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
body.pagina-lunardi .archivio-import-breve {
  margin-top: 16px;
}
body.pagina-lunardi .passo-app .btn.primario,
body.pagina-lunardi .passo-app .btn-file {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 25px;
  background: #2d4a34;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
}
body.pagina-lunardi .btn-file {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
body.pagina-lunardi .btn-file input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  font-size: 48px;
}
body.pagina-caso .proposta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 8px 16px 16px;
}
body.pagina-caso .proposta .btn.primario {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 25px;
  background: #2d4a34;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
}
body.pagina-caso .proposta .btn.piano-no {
  width: 100%;
  min-height: 48px;
  border: 0;
  background: transparent;
  color: rgba(60, 60, 67, 0.6);
  font-size: 17px;
  font-weight: 600;
}
body.pagina-caso .proposta .giorno-riga {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: #000;
  text-align: left;
  text-decoration: none;
  font: inherit;
}
body.pagina-caso .proposta .giorno-riga h2 {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
}
body.pagina-caso .proposta .giorno-riga p {
  margin: 0;
  font-size: 17px;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-caso .proposta-esito {
  margin: 0;
  font-size: 17px;
  line-height: 22px;
  font-weight: 600;
}
body.pagina-caso .nota-genere {
  margin: 0;
  padding: 14px 16px 4px;
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-caso .tendina .fatto {
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-caso details.tendina:not(:has(.corpo-tendina)) summary::after {
  display: none;
}
body.pagina-caso details.tendina summary {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 16px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: -0.02em;
  color: #000;
  cursor: pointer;
  list-style: none;
  -webkit-tap-highlight-color: transparent;
}
body.pagina-caso details.tendina summary::-webkit-details-marker {
  display: none;
}
body.pagina-caso details.tendina summary::marker {
  content: "";
}
body.pagina-caso details.tendina summary::after {
  content: "";
  flex: none;
  width: 7px;
  height: 7px;
  margin-left: auto;
  border-right: 1.5px solid rgba(60, 60, 67, 0.3);
  border-bottom: 1.5px solid rgba(60, 60, 67, 0.3);
  transform: rotate(-45deg);
  transition: transform 200ms ease;
}
body.pagina-caso details.tendina[open] summary::after {
  transform: rotate(45deg);
}
body.pagina-caso details.tendina summary:active {
  background: transparent;
}
body.pagina-caso details.tendina .corpo-tendina {
  padding: 0 16px 18px;
}
body.pagina-caso details.tendina .corpo-tendina p {
  margin: 0;
  font-size: 17px;
  font-weight: 400;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.85);
}
body.pagina-caso .foto-caso {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: 16px;
}
body.pagina-caso .domanda-si-no a.giorno-riga {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 14px 16px;
  text-decoration: none;
  color: #1c1c1e;
  background: #fff;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 8px 20px rgba(60, 60, 67, 0.08);
  border-radius: 26px;
}
body.pagina-caso .domanda-si-no a.giorno-riga::after {
  content: none;
}
body.pagina-caso .domanda-si-no a.giorno-riga .giorno-testo {
  flex: 1;
  min-width: 0;
}
body.pagina-caso .domanda-si-no a.giorno-riga svg {
  flex: none;
  width: 8px;
  height: 14px;
  margin-left: auto;
}
body.pagina-caso .domanda-si-no h2 {
  margin: 0;
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  color: #000;
}
body.pagina-caso a.giorno-riga {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 14px 16px;
  border-radius: 25px;
  text-decoration: none;
  color: #1c1c1e;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 22%, rgba(0, 0, 0, 0.04) 100%),
    #F2F2F7;
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 10px 24px rgba(60, 60, 67, 0.16);
  transition: transform 200ms ease;
}
body.pagina-caso a.giorno-riga .giorno-testo {
  flex: 1;
  min-width: 0;
}
body.pagina-caso a.giorno-riga:has(svg)::after {
  content: none;
}
body.pagina-caso .giorni-piano h2 {
  margin: 0;
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  color: #1c1c1e;
}
body.pagina-caso .giorni-piano p {
  margin: 2px 0 0;
  font-size: 17px;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-caso a.giorno-riga:active,
body.pagina-caso .tendina:active {
  transform: scale(0.98);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0.04) 22%, rgba(0, 0, 0, 0.06) 100%),
    #F2F2F7;
}
body.pagina-caso .giorni-piano h2,
body.pagina-caso details.tendina summary {
  color: #1c1c1e;
}
body.pagina-caso .tendina .fatto {
  color: #000;
}
body.pagina-caso details.tendina summary {
  background: transparent;
}
body.pagina-caso details.tendina summary:active {
  background: transparent;
}
body.pagina-caso details.tendina .corpo-tendina p {
  color: rgba(60, 60, 67, 0.85);
}
body.pagina-caso a.tendina::after,
body.pagina-caso a.giorno-riga::after,
body.pagina-caso details.tendina summary::after {
  border-right-color: rgba(60, 60, 67, 0.55);
  border-bottom-color: rgba(60, 60, 67, 0.55);
}
body.pagina-data a.torna {
  display: inline-block;
  margin: 0 0 8px;
  color: #000;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  text-decoration: none;
}
body.pagina-data a.giorno-riga {
  flex-direction: row;
  align-items: center;
  padding: 0 12px 0 0;
  overflow: visible;
}
body.pagina-data .giorni-piano h2 {
  margin: 0;
  padding: 14px 16px;
}
body.pagina-rami .tendina,
body.pagina-rami .tendina:active,
body.pagina-data a.giorno-riga,
body.pagina-data a.giorno-riga:active,
body.pagina-eventi .tendina,
body.pagina-eventi .tendina:active {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 22%, rgba(0, 0, 0, 0.04) 100%),
    #F2F2F7;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 10px 24px rgba(60, 60, 67, 0.16);
}
body.pagina-rami main {
  bottom: 128px;
}
body.pagina-data main {
  bottom: 128px;
}
body.pagina-data .titolo-piano {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
body.pagina-data .testo-data {
  min-width: 0;
}
body.pagina-data .frecce-data {
  display: flex;
  flex: none;
  gap: 8px;
}
body.pagina-data .freccia {
  width: 44px;
  height: 44px;
  border-radius: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42) 0%, rgba(255, 255, 255, 0.06) 22%, rgba(0, 0, 0, 0.04) 100%),
    #F2F2F7;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 8px 16px rgba(60, 60, 67, 0.12);
}
body.pagina-data .freccia::before {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid #1c1c1e;
  border-bottom: 2px solid #1c1c1e;
  transform: rotate(135deg);
}
body.pagina-data .freccia.dopo::before {
  transform: rotate(-45deg);
}
body.pagina-data .freccia.spenta {
  opacity: 0.35;
}
body.pagina-data a.freccia:active {
  transform: scale(0.98);
}
body.pagina-rami .titolo-piano h1 {
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
}
body.pagina-rami .foglio-piano {
  gap: 12px;
}
body.pagina-rami .scelta-archivio,
body.pagina-eventi .scelta-archivio {
  display: flex;
  gap: 8px;
  width: 100%;
}
body.pagina-rami .scelta-archivio a,
body.pagina-eventi .scelta-archivio a {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 50px;
  padding: 12px 10px;
  border: 0;
  border-radius: 18px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  text-align: center;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 46%, rgba(0, 0, 0, 0.14) 100%),
    rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 8px 18px rgba(45, 74, 52, 0.22);
  transition: transform 200ms ease;
}
body.pagina-rami .scelta-archivio a.novita,
body.pagina-eventi .scelta-archivio a.novita {
  color: #ff3b30;
}
body.pagina-rami .scelta-archivio a.qui,
body.pagina-eventi .scelta-archivio a.qui {
  box-shadow:
    0 0 0 3px #fff,
    inset 0 1px 0 rgba(255, 255, 255, 0.7),
    0 8px 18px rgba(45, 74, 52, 0.28);
}
body.pagina-rami .scelta-archivio a:active,
body.pagina-eventi .scelta-archivio a:active {
  transform: scale(0.98);
}
body.pagina-eventi .scelta-archivio .reg-invio {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 50px;
  margin: 0;
  padding: 12px 10px;
  border: 0;
  border-radius: 18px;
  color: #fff;
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  cursor: pointer;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 46%, rgba(0, 0, 0, 0.14) 100%),
    rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 8px 18px rgba(45, 74, 52, 0.22);
  transition: transform 200ms ease;
}
body.pagina-eventi .scelta-archivio .reg-invio:active,
body.pagina-eventi .scelta-archivio a.reg-invio:active {
  transform: scale(0.98);
}
body.pagina-eventi .scelta-archivio a.reg-invio {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 50px;
  padding: 12px 10px;
  border: 0;
  border-radius: 18px;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 46%, rgba(0, 0, 0, 0.14) 100%),
    rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 8px 18px rgba(45, 74, 52, 0.22);
  transition: transform 200ms ease;
}
body.pagina-passport .pannello,
body.pagina-passport .schermo-quadro,
body.pagina-passport .foglio-piano.protocollo-scatti {
  background: transparent;
  box-shadow: none;
  border: 0;
  padding: 0;
  max-width: none;
}
body.pagina-passport .pannello h1,
body.pagina-passport .schermo-quadro h1 {
  font-size: 34px;
  font-weight: 700;
  line-height: 1.15;
  color: #000;
}
body.pagina-passport .pannello .lead,
body.pagina-passport .pannello p,
body.pagina-passport .schermo-quadro p {
  color: #000;
}
body.pagina-caso .archivi {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
body.pagina-caso .passo-app .btn.primario,
body.pagina-caso .archivi .btn.liquido {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  height: auto;
  padding: 14px 18px;
  border: 0;
  border-radius: 25px;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.08) 46%, rgba(0, 0, 0, 0.14) 100%),
    rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 10px 24px rgba(45, 74, 52, 0.22);
  transition: transform 200ms ease;
}
body.pagina-caso .passo-app .btn.primario:active,
body.pagina-caso .archivi .btn.liquido:active {
  transform: scale(0.98);
}
body.pagina-caso .passo-app .btn.primario.btn-passport,
body.pagina-caso .passo-app .btn.primario.btn-basso {
  min-height: 50px;
  height: 50px;
  padding: 0 14px;
  border-radius: 18px;
  font-size: 17px;
  line-height: 22px;
}
@media (prefers-reduced-transparency: reduce) {
  body.pagina-caso .passo-app .btn.primario,
  body.pagina-caso .archivi .btn.liquido,
  body.pagina-rami .scelta-archivio a,
  body.pagina-eventi .scelta-archivio a {
    background: #2d4a34;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body.pagina-caso .tendina,
  body.pagina-caso a.giorno-riga,
  body.pagina-rami .tendina,
  body.pagina-data a.giorno-riga,
  body.pagina-eventi .tendina {
    background: #F2F2F7;
    color: #1c1c1e;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* Sigillo Modulo 3 · stesso guscio del Passport (Output C) */
body.pagina-passport.pagina-caso,
body.pagina-passport.pagina-caso main,
body.pagina-passport.pagina-caso .testata-compatta,
body.pagina-passport.pagina-caso .cornice-piede {
  background: #F2F2F7;
  border-color: transparent;
  box-shadow: none;
}
body.pagina-passport.pagina-caso .testata-compatta,
body.pagina-passport.pagina-caso main,
body.pagina-passport.pagina-caso .cornice-piede {
  position: relative;
  left: auto !important;
  right: auto !important;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
  width: min(var(--veste-colonna), 100vw);
  max-width: min(var(--veste-colonna), 100vw);
  flex: 0 0 auto;
}
body.pagina-passport.pagina-caso .passo-app {
  background: transparent;
}
body.pagina-passport.pagina-caso {
  display: flex;
  flex-direction: column;
  height: 100dvh;
  overflow: hidden;
  background: #F2F2F7;
}
body.pagina-passport.pagina-caso .testata-compatta {
  top: auto;
  z-index: 40;
  flex: 0 0 auto;
}
body.pagina-passport.pagina-caso main {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  top: auto;
  bottom: auto;
  box-sizing: border-box;
  max-width: min(var(--veste-colonna), 100vw) !important;
  padding: 8px 16px 16px;
}
body.pagina-passport.pagina-caso .cornice-piede {
  bottom: 0;
  z-index: 40;
}
body.pagina-passport.pagina-caso.pagina-cancello0:not(:has(.scelta-archivio)) .cornice-piede {
  height: 52px;
  min-height: 52px;
  background: #F2F2F7;
  border-top: 1px solid #e6e1d6;
  box-shadow: none;
  padding: 0;
}
body.pagina-passport.pagina-caso.pagina-cancello0:not(:has(.scelta-archivio)) .piede {
  display: none;
}
body.pagina-passport.pagina-caso.pagina-cancello0:not(:has(.scelta-archivio)) main {
  bottom: auto;
}
/* Passport Marcolongo — tre archivi + tasto (mai 52px) */
body.pagina-passport.pagina-caso:has(.scelta-archivio) .cornice-piede {
  height: auto;
  min-height: 0;
  padding: 8px 16px calc(8px + env(safe-area-inset-bottom, 0px));
  background: #F2F2F7;
  border-top: 1px solid #e6e1d6;
  box-shadow: none;
}
body.pagina-passport.pagina-caso:has(.scelta-archivio) .passo-app {
  width: 100%;
  height: auto;
  min-height: 0;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding: 0;
  background: transparent;
}
body.pagina-passport.pagina-caso:has(.scelta-archivio) .piede {
  display: none;
}
body.pagina-passport.pagina-caso:has(.scelta-archivio) main {
  bottom: auto;
}
body.pagina-cancello0:has(.scelta-archivio) .cornice-piede {
  height: auto;
  min-height: 0;
}
body.pagina-cancello0:has(.scelta-archivio) .passo-app {
  height: auto;
  min-height: 0;
}
body.pagina-passport.pagina-caso .titolo-piano h1 {
  margin: 0;
  font-family: var(--font-corpo);
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 0;
  color: #1c1c1e;
}
body.pagina-passport.pagina-caso .titolo-piano p,
body.pagina-passport.pagina-caso .titolo-piano .lead {
  margin: 2px 0 0;
  font-family: var(--font-corpo);
  font-size: 17px;
  font-weight: 400;
  font-style: normal;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-passport.pagina-caso:has(.testa-esemplare) .testata-compatta {
  height: auto;
  min-height: 3.5rem;
  padding: 8px 16px 10px;
}
body.pagina-passport.pagina-caso:has(.testa-indietro) main,
body.pagina-passport.pagina-caso:has(.nav-indietro) main,
body.pagina-casi:has(.testa-esemplare) main,
body.pagina-diagnosi:has(.testa-esemplare) main {
  top: auto;
}
body.pagina-passport.pagina-casi .foglio-piano,
body.pagina-passport.pagina-diagnosi .foglio-piano {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
body.pagina-passport.pagina-casi .nav-filo,
body.pagina-passport.pagina-diagnosi .nav-filo {
  font-size: 0.78rem;
}
/* Registrazione · stesso details.tendina del Passport Marcolongo */
body.pagina-caso form.modulo-registrazione {
  margin: 0;
}
body.pagina-caso form.modulo-registrazione .corpo-tendina {
  padding: 4px 16px 16px;
}
body.pagina-caso form.modulo-registrazione .corpo-tendina input:not([type="checkbox"]):not([type="radio"]) {
  display: block;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  border: 0;
  border-radius: 12px;
  font-size: 17px;
  line-height: 22px;
  color: #000;
  background: #fff;
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
  appearance: none;
  -webkit-appearance: none;
}
body.pagina-caso form.modulo-registrazione .corpo-tendina input::placeholder {
  color: rgba(60, 60, 67, 0.45);
}
body.pagina-caso form.modulo-registrazione .corpo-tendina input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset;
  -webkit-text-fill-color: #000;
}
body.pagina-caso form.modulo-registrazione .corpo-tendina input:not([type="checkbox"]):not([type="radio"]):focus,
body.pagina-caso form.modulo-registrazione .corpo-tendina input:not([type="checkbox"]):not([type="radio"]):focus-visible {
  outline: none;
  border: 0;
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
  -webkit-tap-highlight-color: transparent;
}
body.pagina-caso form.modulo-registrazione details.tendina[open] .corpo-tendina input:not([type="checkbox"]):not([type="radio"]) {
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
}
body.pagina-caso form.modulo-registrazione .corpo-tendina label.check-reg {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  margin: 0 0 8px;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 17px;
  line-height: 22px;
  font-weight: 600;
  color: #000;
  background: #fff;
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
}
body.pagina-caso form.modulo-registrazione .corpo-tendina label.check-reg:has(input:checked) {
  box-shadow: inset 0 0 0 2px #2d4a34;
  background: rgba(45, 74, 52, 0.08);
}
body.pagina-caso form.modulo-registrazione .corpo-tendina label.check-reg input[type="radio"],
body.pagina-caso form.modulo-registrazione .corpo-tendina label.check-reg input[type="checkbox"] {
  flex: none;
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: #2d4a34;
  appearance: auto;
  -webkit-appearance: auto;
}
body.pagina-caso a.giorno-riga svg {
  flex: none;
  width: 8px;
  height: 14px;
  margin-left: auto;
  display: block;
}
body.pagina-caso .scelta-archivio .reg-invio[hidden],
body.pagina-eventi .scelta-archivio .reg-invio[hidden],
body.pagina-passport .scelta-archivio .reg-invio[hidden] {
  display: none !important;
}
body.pagina-caso .scelta-archivio .reg-invio-secondo,
body.pagina-eventi .scelta-archivio .reg-invio-secondo {
  flex: 0 1 auto;
  min-width: 0;
  min-height: 44px;
  font-size: 15px;
  font-weight: 500;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 46%, rgba(0, 0, 0, 0.06) 100%),
    rgba(120, 120, 128, 0.28);
  color: #1c1c1e;
}
body.pagina-caso form.modulo-registrazione li.nodo.completato .fatto {
  color: #000;
}
body.pagina-caso .nota-reg {
  margin: 8px 0 0 32px;
  font-size: 15px;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-eventi form.modulo-registrazione ~ .nota-reg,
body.pagina-eventi .modulo-registrazione .nota-reg {
  margin-left: 32px;
}

/* Conferma dati · assistente vocale (Blocco 1) — stesso guscio registrazione */
body.pagina-conferma-dati .nota-conferma {
  margin: 24px 0 8px;
  font-size: 22px;
  line-height: 28px;
  font-weight: 600;
  color: #000;
}
body.pagina-conferma-dati .campo-voce-conferma {
  margin-top: 12px;
}
body.pagina-conferma-dati .campo-voce-conferma input {
  min-height: 48px;
  font-size: 17px;
}
body.pagina-conferma-dati .link-ascolta,
body.pagina-conferma-dati .link-correggi {
  display: inline-block;
  margin: 8px 0 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 17px;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
  text-decoration: underline;
  cursor: pointer;
}
body.pagina-conferma-dati .correggi-scelta {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body.pagina-conferma-dati .correggi-scelta[hidden] {
  display: none !important;
}
body.pagina-conferma-dati .correggi-scelta .btn {
  width: 100%;
  min-height: 48px;
}
body.pagina-conferma-dati .scelta-archivio {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
body.pagina-conferma-dati .reg-invio-secondo {
  background: rgba(255, 255, 255, 0.72);
  color: #000;
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
}

/* Censimento · maschera + guida vocale */
body.pagina-censimento-voce .titolo-test-censimento {
  margin: 24px 0 8px;
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-censimento-voce .titolo-test-censimento:first-of-type {
  margin-top: 8px;
}
body.pagina-censimento-voce .corpo-tendina .campo-censimento-vuoto {
  margin-top: 4px;
}
body.pagina-censimento-voce li.campo-voce-corrente > .tendina {
  box-shadow: 0 0 0 1px #2d4a34;
}
body.pagina-censimento-voce .campo-unico {
  margin: 8px 0 24px;
}
body.pagina-censimento-voce .campo-censimento-vuoto {
  display: block;
  width: 100%;
  min-height: 52px;
  margin: 0;
  padding: 14px 16px;
  border: 0;
  border-radius: 12px;
  font-size: 17px;
  line-height: 22px;
  color: #000;
  background: #fff;
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
  appearance: none;
  -webkit-appearance: none;
}
body.pagina-censimento-voce .campo-censimento-vuoto::placeholder {
  color: rgba(60, 60, 67, 0.45);
  font-weight: 600;
}
body.pagina-censimento-voce .campo-censimento-vuoto:focus,
body.pagina-censimento-voce .campo-censimento-vuoto:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 1px #2d4a34;
}
body.pagina-censimento-voce .nome-campo-box {
  margin: 0 0 12px;
  font-size: 17px;
  line-height: 22px;
  font-weight: 600;
  color: #000;
}
body.pagina-censimento-voce .scelta-campo {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
body.pagina-censimento-voce .scelta-campo form {
  margin: 0;
}
body.pagina-censimento-voce .scelta-campo .btn {
  width: 100%;
  min-height: 48px;
}
body.pagina-censimento-voce .avanzamento-leggero {
  margin: 0;
  font-size: 15px;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
  text-align: center;
}
body.pagina-censimento-voce .scelta-archivio .reg-invio-secondo {
  background: rgba(255, 255, 255, 0.72);
  color: #000;
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
}
body.pagina-censimento-voce .nota-scelta-piede {
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
  text-align: center;
}
/* Censimento vocale · piede alto, tasti pollice (non 52px cancello0) */
body.pagina-censimento-voce.pagina-cancello0 .cornice-piede {
  height: auto;
  min-height: 0;
  z-index: 50;
  pointer-events: auto;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background: #F2F2F7;
  border-top: 0.5px solid rgba(60, 60, 67, 0.29);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.06);
}
body.pagina-censimento-voce.pagina-cancello0 .piede {
  display: none;
}
body.pagina-censimento-voce.pagina-cancello0 main {
  bottom: 168px;
  padding-bottom: 24px;
}
body.pagina-censimento-voce .passo-app {
  height: auto;
  min-height: 0;
  max-width: none;
  padding: 0;
}
body.pagina-censimento-voce .scelta-archivio {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
body.pagina-censimento-voce .scelta-archivio .reg-invio {
  flex: none;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 18px;
  border: 0;
  border-radius: 25px;
  font-family: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  cursor: pointer;
  color: #fff;
  background: #2d4a34;
  box-shadow: 0 4px 14px rgba(45, 74, 52, 0.22);
  -webkit-tap-highlight-color: transparent;
}
body.pagina-censimento-voce .scelta-archivio .reg-invio:disabled {
  opacity: 0.35;
  pointer-events: none;
}
body.pagina-censimento-voce .scelta-archivio .reg-invio-secondo {
  color: #000;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
}
body.pagina-censimento-voce .scelta-archivio .reg-invio[hidden] {
  display: none !important;
}
body.pagina-censimento-voce .scelta-archivio a.reg-invio {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-sizing: border-box;
}

/* Fase 1 Archify — Standard Apple, 12 passi */
body.pagina-fase1-archify,
body.pagina-fase2-archify {
  background: var(--veste-fondo);
}

body.pagina-fase1-archify .fase1-archify > .nav-indietro,
body.pagina-fase2-archify .fase1-archify > .nav-indietro {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0 0 8px;
  padding: 4px 0;
  font-size: 17px;
  font-weight: 400;
  color: #2d4a34;
  text-decoration: none;
}

body.vds-shell.pagina-fase1-archify .fase1-archify > .nav-indietro {
  position: sticky;
  top: 0;
  z-index: 6;
  margin: 0 -24px 8px;
  padding: 8px 24px;
  background: #f2f2f7;
}

body.vds-shell.pagina-fase1-archify .fase1-archify {
  padding-bottom: calc(128px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.pagina-fase2-archify .fase1-archify {
  padding-bottom: calc(128px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.pagina-fase2-archify.fase2-passo-altra .fase1-archify {
  padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.pagina-fase2-archify .fase2-guscio-testa {
  position: sticky;
  top: 0;
  z-index: 8;
  margin: 0 -24px 12px;
  padding: 4px 24px 8px;
  background: var(--veste-fondo, #f2f2f7);
}

body.vds-shell.pagina-fase2-archify .fase2-guscio-testa .nav-indietro {
  margin: 0 0 4px;
  padding: 4px 0;
  background: transparent;
}

body.pagina-fase2-archify .giorno-riga {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 16px 20px;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
}

body.pagina-fase2-archify .fase1-riga-titolo {
  margin: 0 0 4px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
  color: #000;
}

body.pagina-fase2-archify .fase1-riga-sotto {
  margin: 0;
  font-size: 15px;
  line-height: 1.4;
  color: rgba(60, 60, 67, 0.6);
}

body.pagina-passport.pagina-fase1-archify .testata-compatta,
body.pagina-passport.pagina-fase1-archify main,
body.pagina-passport.pagina-fase1-archify .cornice-piede {
  transform: none;
  left: auto;
  width: auto;
  background: var(--veste-fondo);
}
body.pagina-fase1-archify:not(.vds-shell) main {
  padding-bottom: 200px;
}
body.pagina-fase1-archify:not(.vds-shell):has(.ux-piede-azione) main {
  padding-bottom: 300px;
}
body.pagina-fase1-archify .fase1-archify {
  padding: 8px 24px 32px;
  max-width: var(--veste-colonna);
  margin: 0 auto;
}
body.pagina-fase1-archify .passo-num-archify {
  margin: 0 0 8px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase1-archify .fase1-titolo {
  margin: 0 0 8px;
  font-size: 34px;
  font-weight: 600;
  line-height: 1.15;
  color: #000;
}
body.pagina-fase1-archify .fase1-lead {
  margin: 0 0 24px;
  font-size: 17px;
  line-height: 1.5;
  color: rgba(60, 60, 67, 0.85);
}
body.pagina-fase1-archify .elenco-fase1 {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #fff;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
body.pagina-fase1-archify .elenco-fase1-testo {
  padding: 20px;
  font-size: 17px;
  line-height: 1.5;
}
body.pagina-fase1-archify .elenco-fase1-testo p {
  margin: 0 0 16px;
}
body.pagina-fase1-archify .elenco-fase1-testo p:last-child {
  margin-bottom: 0;
}
body.pagina-fase1-archify .sep-fase1 {
  margin: 0;
  border: 0;
  border-top: 0.5px solid rgba(60, 60, 67, 0.29);
  margin-left: 16px;
}
body.pagina-fase1-archify .campo-fase1 {
  padding: 16px 20px;
}
body.pagina-fase1-archify .campo-fase1 label {
  display: block;
  margin-bottom: 8px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.pagina-fase1-archify .campo-fase1 input[type="text"],
body.pagina-fase1-archify .campo-fase1 input[type="email"],
body.pagina-fase1-archify .campo-fase1 input[type="password"],
body.pagina-fase1-archify .campo-fase1 input[type="date"] {
  width: 100%;
  box-sizing: border-box;
  border: 0;
  padding: 0;
  font-size: 17px;
  line-height: 22px;
  background: transparent;
  color: #000;
}
body.pagina-fase1-archify .check-fase1 {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 17px;
  line-height: 1.5;
  cursor: pointer;
}
body.pagina-fase1-archify .check-fase1 input {
  margin-top: 4px;
  flex-shrink: 0;
}
body.pagina-fase1-archify .riga-fase1 {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 16px 20px;
  text-decoration: none;
  color: #000;
}
body.pagina-fase1-archify button.riga-fase1,
body.pagina-fase1-archify label.riga-fase1 {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
body.pagina-fase1-archify label.riga-fase1 {
  position: relative;
}
body.pagina-fase1-archify label.riga-fase1 input.campo-guida {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
}
body.pagina-fase1-archify .riga-fase1-segno {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid rgba(60, 60, 67, 0.28);
  flex-shrink: 0;
  box-sizing: border-box;
}
body.pagina-fase1-archify .riga-fase1.is-scelta {
  background: rgba(45, 74, 52, 0.06);
}
body.pagina-fase1-archify .riga-fase1.is-scelta .riga-fase1-segno {
  border-color: #2d4a34;
  background: #2d4a34;
  box-shadow: inset 0 0 0 4px #fff;
}
body.pagina-fase1-archify .elenco-fase1.elenco-fase1-attesa {
  box-shadow: 0 0 0 2px #2d4a34;
}
body.pagina-fase1-archify .riga-fase1 > svg {
  width: 8px;
  height: 14px;
  flex-shrink: 0;
  margin-left: 12px;
}
body.pagina-fase1-archify .riga-fase1:active {
  background: rgba(60, 60, 67, 0.08);
}
body.pagina-fase1-archify .riga-fase1-static {
  padding: 16px 20px;
}
body.pagina-fase1-archify .riga-fase1-testo {
  flex: 1;
  font-size: 17px;
  line-height: 1.45;
}
body.pagina-fase1-archify .riga-fase1-testo strong,
body.pagina-fase2-archify .riga-fase1-testo strong {
  display: block;
  font-weight: 600;
  margin-bottom: 4px;
}
body.pagina-fase1-archify .fase2-specie-censita,
body.pagina-fase2-archify .fase2-specie-censita,
body.pagina-fase1-archify h1.fase2-specie-censita,
body.pagina-fase2-archify h1.fase2-specie-censita,
body.pagina-fase1-archify span.fase2-specie-censita,
body.pagina-fase2-archify span.fase2-specie-censita,
body.pagina-fase1-archify .fase2-specie-botanica,
body.pagina-fase2-archify .fase2-specie-botanica,
body.pagina-fase1-archify h1.fase2-specie-botanica,
body.pagina-fase2-archify h1.fase2-specie-botanica {
  color: var(--forest);
  font-weight: 700;
  letter-spacing: -0.01em;
}
body.pagina-fase1-archify .fase2-specie-non-censita,
body.pagina-fase2-archify .fase2-specie-non-censita,
body.pagina-fase1-archify h1.fase2-specie-non-censita,
body.pagina-fase2-archify h1.fase2-specie-non-censita,
body.pagina-fase1-archify span.fase2-specie-non-censita,
body.pagina-fase2-archify span.fase2-specie-non-censita {
  color: #dc2626;
  font-weight: 700;
  letter-spacing: -0.01em;
}
body.pagina-fase1-archify h1.fase2-specie-censita,
body.pagina-fase2-archify h1.fase2-specie-censita,
body.pagina-fase1-archify h1.fase2-specie-botanica,
body.pagina-fase2-archify h1.fase2-specie-botanica,
body.pagina-fase1-archify h1.fase2-specie-non-censita,
body.pagina-fase2-archify h1.fase2-specie-non-censita {
  font-size: 26px;
  line-height: 1.2;
}
body.pagina-fase1-archify .riga-fase1-testo strong.fase2-specie-censita,
body.pagina-fase2-archify .riga-fase1-testo strong.fase2-specie-censita,
body.pagina-fase1-archify .riga-fase1-testo span.fase2-specie-censita,
body.pagina-fase2-archify .riga-fase1-testo span.fase2-specie-censita,
body.pagina-fase1-archify .riga-fase1-testo strong.fase2-specie-botanica,
body.pagina-fase2-archify .riga-fase1-testo strong.fase2-specie-botanica {
  color: var(--forest);
  -webkit-text-fill-color: var(--forest);
  font-size: 19px;
  line-height: 1.25;
  word-break: break-word;
  font-weight: 700;
}
body.pagina-fase1-archify .riga-fase1-testo strong.fase2-specie-non-censita,
body.pagina-fase2-archify .riga-fase1-testo strong.fase2-specie-non-censita {
  color: #1c1c1e;
  -webkit-text-fill-color: #1c1c1e;
  font-size: 19px;
  line-height: 1.25;
  word-break: break-word;
  font-weight: 600;
}
body.pagina-fase1-archify .riga-fase1-testo span.fase2-specie-non-censita,
body.pagina-fase2-archify .riga-fase1-testo span.fase2-specie-non-censita {
  color: rgba(60, 60, 67, 0.6);
  -webkit-text-fill-color: rgba(60, 60, 67, 0.6);
  font-size: 15px;
  line-height: 1.25;
  word-break: break-word;
  font-weight: 400;
}
body.pagina-fase1-archify .fase2-azioni-visita,
body.pagina-fase2-archify .fase2-azioni-visita {
  margin-top: 8px;
}
body.pagina-fase1-archify .fase2-nota-chiusura,
body.pagina-fase2-archify .fase2-nota-chiusura {
  margin: 12px 4px 0;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(220, 38, 38, 0.08);
  color: #b91c1c;
  font-size: 15px;
  line-height: 1.45;
  font-weight: 600;
}
body.pagina-fase1-archify .fase2-item-pianta,
body.pagina-fase2-archify .fase2-item-pianta {
  list-style: none;
}
body.pagina-fase1-archify .fase2-riga-pianta-wrap,
body.pagina-fase2-archify .fase2-riga-pianta-wrap {
  display: flex;
  align-items: center;
  min-height: 48px;
}
body.pagina-fase1-archify .fase2-riga-pianta-link,
body.pagina-fase2-archify .fase2-riga-pianta-link {
  flex: 1 1 auto;
  min-width: 0;
  padding-right: 4px;
}
body.pagina-fase1-archify .fase2-riga-pianta-segno,
body.pagina-fase2-archify .fase2-riga-pianta-segno {
  position: relative;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body.pagina-fase1-archify .fase2-aiuto-pianta-ico,
body.pagina-fase2-archify .fase2-aiuto-pianta-ico {
  width: 11px;
  height: 11px;
  display: block;
}
body.pagina-fase1-archify .fase2-aiuto-pianta,
body.pagina-fase2-archify .fase2-aiuto-pianta {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(60, 60, 67, 0.55);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
body.pagina-fase1-archify .fase2-item-pianta--prossima .fase2-aiuto-pianta,
body.pagina-fase2-archify .fase2-item-pianta--prossima .fase2-aiuto-pianta {
  color: #2d4a34;
}
body.pagina-fase1-archify .fase2-aiuto-pianta:active,
body.pagina-fase2-archify .fase2-aiuto-pianta:active {
  opacity: 0.65;
}
body.pagina-fase1-archify .fase2-aiuto-pianta-ico,
body.pagina-fase2-archify .fase2-aiuto-pianta-ico {
  display: block;
}
body.pagina-fase1-archify .fase2-aiuto-bolla,
body.pagina-fase2-archify .fase2-aiuto-bolla {
  margin: 2px 16px 10px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1), 0 0 0 0.5px rgba(0, 0, 0, 0.04);
}
body.pagina-fase1-archify .fase2-aiuto-bolla p,
body.pagina-fase2-archify .fase2-aiuto-bolla p {
  margin: 0;
  font-size: 15px;
  line-height: 1.45;
  color: #1c1c1e;
  font-weight: 400;
}
body.pagina-fase1-archify .fase2-sheet-chiusura,
body.pagina-fase2-archify .fase2-sheet-chiusura {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
body.pagina-fase1-archify .fase2-sheet-chiusura[hidden],
body.pagina-fase2-archify .fase2-sheet-chiusura[hidden] {
  display: none;
}
body.pagina-fase1-archify .fase2-sheet-chiusura-scrim {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  background: rgba(0, 0, 0, 0.35);
  cursor: pointer;
}
body.pagina-fase1-archify .fase2-sheet-chiusura-pannello {
  position: relative;
  width: min(100%, var(--veste-colonna));
  margin: 0 auto;
  padding: 20px 20px calc(20px + env(safe-area-inset-bottom, 0px));
  border-radius: 26px 26px 0 0;
  background: #f2f2f7;
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12);
}
body.pagina-fase1-archify .fase2-sheet-chiusura-titolo {
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.25;
  font-weight: 700;
  color: #000;
  letter-spacing: -0.02em;
}
body.pagina-fase1-archify .fase2-sheet-chiusura-riepilogo {
  margin: 0 0 8px;
  font-size: 17px;
  line-height: 1.4;
  color: #1c1c1e;
  font-weight: 600;
}
body.pagina-fase1-archify .fase2-sheet-chiusura-nota {
  margin: 0 0 18px;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.72);
}
body.pagina-fase1-archify .fase2-sheet-chiusura-pannello .btn-primary-dynamic {
  width: 100%;
  margin-bottom: 10px;
}
body.pagina-fase1-archify .fase2-sheet-chiusura-annulla {
  display: block;
  width: 100%;
  min-height: 44px;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 17px;
  font-weight: 600;
  color: #2d4a34;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
body.fase2-sheet-aperta {
  overflow: hidden;
}
body.fase2-sheet-aperta .cornice-piede.apple-bottom-sheet > .ux-piede-azione,
body.fase2-sheet-aperta .cornice-piede.apple-bottom-sheet > nav.ux-piede-azione,
body.fase2-sheet-aperta .cornice-piede.apple-bottom-sheet #piede-foto-censimento,
body.fase2-sheet-aperta .cornice-piede.apple-bottom-sheet .fase2-piede-foto {
  display: none !important;
}
body.pagina-fase2-archify .fase2-sheet-guida-rilievo {
  z-index: 10050;
}
body.pagina-fase2-archify .fase2-hint-salva-foto {
  margin: 14px 4px 0;
  padding: 0 4px;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.72);
}
body.pagina-fase2-archify .fase2-hint-salva-foto[hidden] {
  display: none !important;
}

body.pagina-fase1-archify .fase2-galleria-foto {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 16px 0 20px;
  padding: 0 4px;
}
body.pagina-fase1-archify .fase2-foto-carta {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
body.pagina-fase1-archify .fase2-foto-carta:active {
  opacity: 0.92;
}
body.pagina-fase1-archify .fase2-foto-anteprima {
  display: block;
  width: 100%;
  height: auto;
  min-height: 180px;
  max-height: 320px;
  object-fit: cover;
  border-radius: 20px 20px 0 0;
}
body.pagina-fase1-archify .fase2-foto-etichetta {
  display: block;
  padding: 12px 16px 14px;
  font-size: 15px;
  font-weight: 600;
  color: #2d4a34;
}
body.pagina-fase1-archify .fase2-altre-piante {
  margin-top: 8px;
}
.fase2-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  background: #000;
  width: 100vw;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
}
.fase2-lightbox[hidden] {
  display: none !important;
}
.fase2-lightbox-testa {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: calc(8px + env(safe-area-inset-top, 0px)) 12px 8px;
  background: rgba(0, 0, 0, 0.85);
}
.fase2-lightbox-chiudi-alto {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  margin: 0;
  padding: 0 14px;
  border: 0;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
}
.fase2-lightbox-indietro-segno {
  font-size: 28px;
  line-height: 1;
  margin-top: -2px;
}
.fase2-lightbox-contenuto {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  min-height: 0;
  overflow: hidden;
}
.fase2-lightbox-immagine {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.fase2-lightbox-piede {
  flex: 0 0 auto;
  padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px));
  background: rgba(255, 255, 255, 0.98);
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -6px 28px rgba(0, 0, 0, 0.25);
}
.fase2-lightbox-chiudi-basso {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 0 20px;
  border: 0;
  border-radius: 25px;
  background: #2d4a34;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  cursor: pointer;
}
body.fase2-lightbox-aperta {
  overflow: hidden;
}
body.fase2-lightbox-aperta > main {
  overflow: hidden !important;
}
body.fase2-lightbox-aperta .cornice-piede,
body.fase2-lightbox-aperta .assistente-vocale-fab,
body.fase2-lightbox-aperta .assistente-vocale-fallback,
body.fase2-lightbox-aperta .assistente-vocale-stato {
  visibility: hidden;
  pointer-events: none;
}
body.pagina-fase1-archify .riga-fase1-testo span {
  display: block;
  color: rgba(60, 60, 67, 0.6);
  font-size: 15px;
}
body.pagina-fase1-archify .fase1-nota {
  margin: 16px 4px 0;
  font-size: 15px;
  color: rgba(60, 60, 67, 0.75);
}
body.pagina-fase1-archify .cornice-piede .reg-invio {
  background: #2d4a34;
  color: #fff;
  min-height: 48px;
  border-radius: 25px;
  font-size: 17px;
  font-weight: 600;
}
body.pagina-fase1-archify .testata-compatta {
  position: sticky;
  top: 0;
  z-index: 15;
  background: var(--veste-fondo);
  color: #000;
  justify-content: flex-end;
  min-height: var(--veste-testa);
}
body.pagina-fase1-archify .fase1-step-angolo {
  margin: 0;
  text-align: right;
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase1-archify .fase1-step-angolo small {
  display: block;
  font-size: 12px;
  font-weight: 400;
}
body.pagina-fase1-archify .mini-lingua {
  margin-left: 12px;
}
body.pagina-fase1-archify .testata-compatta .marchio {
  display: flex;
}
body.pagina-fase1-archify .piede {
  display: block;
  min-height: var(--veste-piede);
  background: var(--veste-fondo);
  border-top: 0.5px solid rgba(60, 60, 67, 0.29);
}
body.pagina-fase1-archify .cornice-piede.apple-bottom-sheet:not(:has(.ux-piede-azione)) {
  background: var(--veste-fondo);
  padding-top: 0;
  box-shadow: none;
}
body.pagina-fase1-archify
  .cornice-piede.apple-bottom-sheet:not(:has(.ux-piede-azione))
  .apple-bottom-sheet-handle {
  display: none;
}
body.pagina-fase1-archify:not(.vds-shell) .cornice-piede {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 20;
  padding: 12px 24px calc(12px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, rgba(242, 242, 247, 0) 0%, #F2F2F7 28%);
}
body.pagina-fase1-archify .ux-piede-azione .btn-primary-dynamic--validato {
  color: #fff;
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(255, 255, 255, 0.06) 100%
    ),
    #2d4a34;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.28) inset,
    0 8px 20px rgba(45, 74, 52, 0.28);
  backdrop-filter: saturate(1.2);
  -webkit-backdrop-filter: saturate(1.2);
}
body.pagina-fase1-archify .ux-piede-azione .btn-primary-dynamic--validato:active {
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.18) 0%,
      rgba(255, 255, 255, 0.04) 100%
    ),
    #243d2a;
  transform: scale(0.985);
}
body.pagina-fase1-archify .passo-app {
  margin: 0;
  max-width: var(--veste-colonna);
  margin-left: auto;
  margin-right: auto;
}
body.pagina-fase1-archify .scelta-archivio {
  display: block;
  width: 100%;
  max-width: 100%;
}
body.pagina-fase1-archify .scelta-archivio .reg-invio {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3rem;
  margin: 0;
  padding: 14px 20px;
  border: 0.5px solid rgba(255, 255, 255, 0.28);
  border-radius: 14px;
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(255, 255, 255, 0.06) 100%
    ),
    #2d4a34;
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(45, 74, 52, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
  backdrop-filter: saturate(1.2);
  -webkit-backdrop-filter: saturate(1.2);
  text-decoration: none;
  box-sizing: border-box;
}
body.pagina-fase1-archify .scelta-archivio .reg-invio:active {
  transform: scale(0.98);
}
body.pagina-fase1-archify .mini-bandiera {
  border: 0.5px solid rgba(60, 60, 67, 0.29);
  color: #000;
  background: #fff;
  border-radius: 10px;
}
body.pagina-fase1-archify .mini-bandiera:hover {
  border-color: rgba(60, 60, 67, 0.45);
  color: #000;
}
body.pagina-fase1-archify .campo-fase1-solo input {
  min-height: 48px;
  padding: 14px 20px;
  font-size: 17px;
}
body.pagina-fase1-archify .fase1-gia {
  margin: 20px 4px 0;
  font-size: 15px;
  text-align: center;
}
body.pagina-fase1-archify .fase1-gia a {
  color: #2d4a34;
  font-weight: 600;
  text-decoration: none;
}
body.pagina-fase2-archify .fase2-rientro-elenco {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 22px;
  margin-bottom: 8px;
}
body.pagina-fase2-archify .fase2-rientro-elenco > a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}
body.pagina-fase2-archify .fase2-rientro-elenco-nota {
  display: block;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.35;
  color: rgba(60, 60, 67, 0.55);
}

/* =============================================================================
   GUSCIO BUS — Canale B operativo · standard Apple · colonna 390 verticale
   Maschere (pixel): fondo · colonna · testa · indietro · titolo · riga · tendina
   · combo grigia · btn verde grande · btn verde piccolo · passo-app · frecce data
   ============================================================================= */
body.guscio-bus {
  --bus-fondo: #F2F2F7;
  --bus-verde: #2d4a34;
  --bus-colonna: var(--veste-colonna);
  /* Il carattere dell'iPhone PRIMA di tutto (Code 13/10, ordine di Ro sugli
     standard Apple). Prima veniva "Inter Tight", un carattere scaricato da
     Google: sul telefono l'app non usava il carattere di sistema e si vedeva.
     Inter Tight resta come ripiego per chi non ha un Apple. */
  --bus-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
    system-ui, "Inter Tight", "Segoe UI", Roboto, sans-serif;
  --font-titolo: var(--bus-font);
  --font-corpo: var(--bus-font);
  --bus-testa: 56px;
  --bus-piede: 64px;
  --bus-riga-min: 50px;
  --bus-riga-pad-y: 14px;
  --bus-riga-pad-x: 16px;
  --bus-riga-raggio: 26px;
  --bus-btn-grande-min: 50px;
  --bus-btn-grande-raggio: 25px;
  --bus-btn-piccolo-min: 50px;
  --bus-btn-piccolo-raggio: 18px;
  --bus-testo: 17px;
  --bus-interlinea: 22px;
  --bus-titolo: 34px;
  --bus-blur: 18px;
  --bus-liquido-chiaro: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.42) 0%,
    rgba(255, 255, 255, 0.06) 22%,
    rgba(0, 0, 0, 0.04) 100%
  );
  --bus-liquido-verde: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.34) 0%,
    rgba(255, 255, 255, 0.08) 46%,
    rgba(0, 0, 0, 0.14) 100%
  );
  --bus-ombra-riga: 0 1px 3px rgba(60, 60, 67, 0.12);
  --bus-ombra-verde:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 10px 24px rgba(45, 74, 52, 0.22);
  background: var(--bus-fondo);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.guscio-bus,
body.guscio-bus :where(
  h1, h2, h3, h4, h5, h6, p, a, button, input, select, textarea, label, legend,
  summary, span, li, dt, dd, small, strong, em, .testa-passport, .testa-cliente,
  .testa-codice, .btn, .giorno-riga, .passo-app, .fase1-titolo, .fase1-lead,
  .voce-corso, .checkin-esito, .modulo legend, .titolo-piano h1, .titolo-piano h2
) {
  font-family: var(--bus-font);
  font-style: normal;
}

body.guscio-bus .btn {
  border: 0;
  border-radius: var(--bus-btn-grande-raggio);
}

body.guscio-bus .testata-compatta,
body.guscio-bus main,
body.guscio-bus .cornice-piede {
  width: min(var(--bus-colonna), 100vw);
  max-width: min(var(--bus-colonna), 100vw);
  margin-left: auto;
  margin-right: auto;
  left: 0;
  right: 0;
  transform: none;
  background: var(--bus-fondo);
}

/* vds-shell: piede = liquid sheet (mandato layout) — non fondo piatto guscio-bus */
body.vds-shell.guscio-bus .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  background: rgba(255, 255, 255, 0.72);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  backdrop-filter: blur(18px) saturate(1.6);
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -6px 28px rgba(0, 0, 0, 0.1);
  padding: 0 20px calc(12px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.guscio-bus .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione)
  .apple-bottom-sheet-handle {
  display: block;
}

body.guscio-bus .testa-indietro {
  display: inline-block;
  margin: 0 0 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000;
  font-size: var(--bus-testo);
  font-weight: 600;
  line-height: var(--bus-interlinea);
  text-decoration: none;
}

body.guscio-bus .testa-indietro span {
  font-weight: 600;
}

body.guscio-bus .testa-passport {
  font-size: var(--bus-titolo);
  font-weight: 700;
  line-height: 41px;
}

body.guscio-bus a.giorno-riga,
body.guscio-bus button.giorno-riga,
body.guscio-bus .tendina,
body.guscio-bus details.tendina > summary {
  min-height: var(--bus-riga-min);
  padding: var(--bus-riga-pad-y) var(--bus-riga-pad-x);
  border-radius: var(--bus-riga-raggio);
  border: 0;
  color: #1c1c1e;
  background: #fff;
  box-shadow: var(--bus-ombra-riga);
  transition: transform 200ms ease;
}

body.guscio-bus select.campo-censimento,
body.guscio-bus select.campo-censimento-vuoto,
body.guscio-bus .campo-cerca-casi,
body.guscio-bus .modulo-esemplare input,
body.guscio-bus .modulo-esemplare textarea {
  width: 100%;
  min-height: var(--bus-riga-min);
  padding: var(--bus-riga-pad-y) var(--bus-riga-pad-x);
  border: 0;
  border-radius: var(--bus-riga-raggio);
  color: #000;
  font-size: var(--bus-testo);
  line-height: var(--bus-interlinea);
  background: rgba(255, 255, 255, 0.82);
  -webkit-backdrop-filter: blur(var(--bus-blur)) saturate(1.4);
  backdrop-filter: blur(var(--bus-blur)) saturate(1.4);
  box-shadow: inset 0 0 0 0.5px rgba(60, 60, 67, 0.29);
}

body.guscio-bus .passo-app .btn.primario,
body.guscio-bus .passo-app .btn-file,
body.guscio-bus .passo-app .reg-invio,
body.guscio-bus .btn.liquido-verde-grande {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: var(--bus-btn-grande-min);
  padding: var(--bus-riga-pad-y) 18px;
  border: 0;
  border-radius: var(--bus-btn-grande-raggio);
  color: #fff;
  font-size: var(--bus-testo);
  font-weight: 600;
  line-height: var(--bus-interlinea);
  text-decoration: none;
  cursor: pointer;
  background: var(--bus-liquido-verde), rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(var(--bus-blur)) saturate(1.6);
  backdrop-filter: blur(var(--bus-blur)) saturate(1.6);
  box-shadow: var(--bus-ombra-verde);
  transition: transform 200ms ease;
}

body.guscio-bus .scelta-archivio a,
body.guscio-bus .scelta-archivio .reg-invio,
body.guscio-bus .btn.liquido-verde-piccolo {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: var(--bus-btn-piccolo-min);
  padding: 12px 10px;
  border: 0;
  border-radius: var(--bus-btn-piccolo-raggio);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  text-align: center;
  text-decoration: none;
  background: var(--bus-liquido-verde), rgba(45, 74, 52, 0.92);
  -webkit-backdrop-filter: blur(var(--bus-blur)) saturate(1.6);
  backdrop-filter: blur(var(--bus-blur)) saturate(1.6);
  box-shadow: var(--bus-ombra-verde);
  transition: transform 200ms ease;
}

body.guscio-bus .scelta-archivio {
  display: flex;
  gap: 8px;
  width: 100%;
}

body.guscio-bus .passo-app {
  width: 100%;
  gap: 8px;
}

body.guscio-bus a.giorno-riga:active,
body.guscio-bus button.giorno-riga:active,
body.guscio-bus .passo-app .btn.primario:active,
body.guscio-bus .scelta-archivio a:active,
body.guscio-bus .scelta-archivio .reg-invio:active {
  transform: scale(0.98);
}

body.guscio-bus.pagina-data .titolo-piano,
body.guscio-bus .titolo-data-sticky {
  position: sticky;
  top: 0;
  z-index: 12;
  padding-bottom: 8px;
  background: var(--bus-fondo);
}

body.guscio-bus .frecce-data {
  position: sticky;
  top: 0;
  z-index: 13;
  flex: none;
}

@media (max-width: 820px) {
  body.guscio-bus .modulo > .btn.primario,
  body.guscio-bus form.modulo > button.btn.primario,
  body.guscio-bus .ingresso-azioni .btn.primario,
  body.guscio-bus .prossimo-passo .btn.primario,
  body.guscio-bus .passo-app .btn.primario {
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    z-index: auto;
    width: 100%;
    border-radius: var(--bus-btn-grande-raggio);
    box-shadow: var(--bus-ombra-verde);
    padding: var(--bus-riga-pad-y) 18px;
  }
}

@media (min-width: 821px) {
  body.guscio-bus .testata-compatta,
  body.guscio-bus main,
  body.guscio-bus .cornice-piede {
    width: min(var(--bus-colonna), 100vw);
    max-width: min(var(--bus-colonna), 100vw);
  }
}

@media (prefers-reduced-transparency: reduce) {
  body.guscio-bus a.giorno-riga,
  body.guscio-bus button.giorno-riga,
  body.guscio-bus .passo-app .btn.primario,
  body.guscio-bus .scelta-archivio a,
  body.guscio-bus .scelta-archivio .reg-invio {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: var(--bus-verde);
  }
  body.guscio-bus a.giorno-riga,
  body.guscio-bus button.giorno-riga {
    background: #fff;
    box-shadow: var(--bus-ombra-riga);
  }
}

/* Fase 1 + splash: colonna responsive (--veste-colonna) */
body.guscio-bus.pagina-fase1-archify .testata-compatta,
body.guscio-bus.pagina-fase1-archify main,
body.guscio-bus.pagina-fase1-archify .cornice-piede,
body.guscio-bus.corpo-splash .testata-compatta,
body.guscio-bus.corpo-ingresso main {
  width: min(var(--bus-colonna), 100vw);
  max-width: min(var(--bus-colonna), 100vw);
  margin-left: auto;
  margin-right: auto;
  left: 0;
  right: 0;
  transform: none;
  background: var(--bus-fondo);
}

body.guscio-bus .fase1-archify,
body.guscio-bus .ingresso-passo {
  max-width: var(--bus-colonna);
  margin-left: auto;
  margin-right: auto;
}

body.guscio-bus .elenco-fase1,
body.guscio-bus .ingresso-wow {
  border-radius: 26px;
  box-shadow: var(--bus-ombra-riga);
}

body.guscio-bus .galleria-rilievi .quadro-scatto,
body.guscio-bus .galleria-rilievi .scatto-confronto {
  width: 100%;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
}
body.guscio-bus .galleria-rilievi .anteprima-scatto {
  width: 100%;
  height: 240px;
  object-fit: cover;
  display: block;
  border-radius: 0;
}
body.guscio-bus.pagina-referto .galleria-rilievi .carta-scatto:first-child .anteprima-scatto {
  height: 420px;
}
body.guscio-bus .galleria-rilievi .scatto-corpo {
  padding: 14px 16px;
}
body.guscio-bus .galleria-rilievi h2 {
  font-size: 16px;
  font-weight: 600;
  color: #1a2419;
}

body.guscio-bus .cornice-piede .reg-invio,
body.guscio-bus .scelta-archivio .reg-invio {
  background: var(--bus-liquido-verde), rgba(45, 74, 52, 0.92);
  border-radius: var(--bus-btn-grande-raggio);
  min-height: var(--bus-btn-grande-min);
}
body.guscio-bus.pagina-fase1-archify .scelta-archivio {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
body.guscio-bus.pagina-fase1-archify .scelta-archivio .reg-invio {
  flex: none;
  width: 100%;
  min-width: 0;
  min-height: 3rem;
  font-size: 17px;
  line-height: 22px;
}
body.pagina-fase1-archify .scelta-archivio .reg-invio-secondo {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 14px 20px;
  border: 0;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 500;
  line-height: 22px;
  cursor: pointer;
  box-sizing: border-box;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0.12) 46%, rgba(0, 0, 0, 0.06) 100%),
    rgba(120, 120, 128, 0.28);
  color: #1c1c1e;
}
body.pagina-fase1-archify .scelta-archivio .reg-invio-secondo[hidden] {
  display: none !important;
}

/* Assistente vocale globale — FAB Apple Intelligence */
.assistente-vocale-fab {
  position: fixed;
  z-index: 40;
  right: max(16px, calc((100vw - var(--bus-colonna, 390px)) / 2 + 16px));
  bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  width: 56px;
  height: 56px;
  padding: 0;
  border: 0.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #fff;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28) 0%, rgba(255, 255, 255, 0.06) 48%, rgba(0, 0, 0, 0.08) 100%),
    #2d4a34;
  box-shadow:
    0 4px 20px rgba(45, 74, 52, 0.45),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  -webkit-backdrop-filter: blur(12px) saturate(1.4);
  backdrop-filter: blur(12px) saturate(1.4);
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.assistente-vocale-fab:active {
  transform: scale(0.96);
}
.assistente-vocale-fab--attivo {
  box-shadow:
    0 0 0 3px rgba(45, 74, 52, 0.25),
    0 6px 24px rgba(45, 74, 52, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.assistente-vocale-fab-anello {
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(45, 74, 52, 0.35);
  opacity: 0;
  transition: opacity 200ms ease;
  pointer-events: none;
}
.assistente-vocale-fab--attivo .assistente-vocale-fab-anello {
  opacity: 1;
}
.assistente-vocale-fab-icon {
  width: 18px;
  height: 22px;
  border-radius: 9px 9px 4px 4px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: inset 0 -3px 0 rgba(45, 74, 52, 0.35);
}
.assistente-vocale-fab-testo {
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
}
.assistente-vocale-stato {
  position: fixed;
  z-index: 39;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(140px + env(safe-area-inset-bottom, 0px));
  width: min(calc(var(--bus-colonna, 390px) - 32px), calc(100vw - 32px));
  margin: 0;
  padding: 10px 14px;
  border-radius: 14px;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 500;
  text-align: center;
  color: #1c1c1e;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  backdrop-filter: blur(16px) saturate(1.5);
  pointer-events: none;
}
.assistente-vocale-stato[hidden] {
  display: none !important;
}
.assistente-vocale-fallback {
  position: fixed;
  z-index: 45;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  width: min(calc(var(--bus-colonna, 390px) - 16px), calc(100vw - 16px));
  display: flex;
  gap: 8px;
  align-items: stretch;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.14);
}
.assistente-vocale-fallback[hidden] {
  display: none !important;
}
.assistente-vocale-fallback-input {
  flex: 1;
  min-width: 0;
  min-height: 48px;
  padding: 12px 14px;
  border: 0.5px solid rgba(60, 60, 67, 0.29);
  border-radius: 14px;
  font-size: 17px;
  line-height: 1.35;
  color: #000;
  background: #fff;
}
.assistente-vocale-fallback-invia {
  flex: 0 0 auto;
  min-width: 88px;
  min-height: 48px;
  margin: 0;
  border-radius: 14px;
}
li.campo-voce-corrente > .tendina,
li.campo-voce-corrente.campo-riga,
.campo-fase1.campo-voce-corrente .campo-riga {
  box-shadow: inset 0 0 0 2px #2d4a34;
  border-radius: 14px;
}
@media (prefers-reduced-transparency: reduce) {
  .assistente-vocale-fab,
  .assistente-vocale-stato {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* =============================================================================
   UX PARLANTE · sistema · header/footer 390px
   Stepper Apple · check validazione · bottone dinamico
   ============================================================================= */
body.guscio-bus {
  --ux-apple-blue: #007AFF;
  --ux-apple-blue-pressed: #0062cc;
  --ux-check-green: #2d4a34;
}

body.guscio-bus .testata-compatta .apple-stepper {
  width: 100%;
  margin: 4px 0 0;
  padding: 0 4px 10px;
}

.apple-stepper-track {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.apple-stepper-step {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-width: 0;
  text-align: center;
}

.apple-stepper-dot {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(60, 60, 67, 0.18);
  box-shadow: 0 0 0 3px #F2F2F7;
  transition: background 220ms ease, transform 220ms ease, box-shadow 220ms ease;
}

.apple-stepper-step--done .apple-stepper-dot {
  background: var(--ux-apple-blue);
  transform: scale(1.05);
}

.apple-stepper-step--current .apple-stepper-dot {
  background: var(--ux-apple-blue);
  box-shadow: 0 0 0 4px rgba(0, 122, 255, 0.22);
  transform: scale(1.15);
}

.apple-stepper-label {
  font-size: 11px;
  line-height: 13px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: rgba(60, 60, 67, 0.45);
  transition: color 220ms ease;
}

.apple-stepper-step--done .apple-stepper-label,
.apple-stepper-step--current .apple-stepper-label {
  color: #000;
}

.apple-stepper-bar {
  position: relative;
  height: 2px;
  margin: 8px 12px 0;
  border-radius: 999px;
  background: rgba(60, 60, 67, 0.12);
  overflow: hidden;
}

.apple-stepper-bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--ux-apple-blue);
  transition: width 280ms cubic-bezier(0.25, 0.1, 0.25, 1);
}

.campo-riga.input-valid-check {
  position: relative;
}

.campo-riga.input-valid-check .campo-input-wrap,
.campo-riga.input-valid-check > input,
.campo-riga.input-valid-check > select,
.campo-riga.input-valid-check > textarea {
  width: 100%;
}

.campo-riga.input-valid-check > input,
.campo-riga.input-valid-check > select,
.campo-riga.input-valid-check > textarea,
.campo-riga.input-valid-check .campo-input-wrap > input,
.campo-riga.input-valid-check .campo-input-wrap > select,
.campo-riga.input-valid-check .campo-input-wrap > textarea {
  padding-right: 44px;
  transition: box-shadow 220ms ease, border-color 220ms ease;
}

.campo-riga.input-valid-check.is-valid > input,
.campo-riga.input-valid-check.is-valid > select,
.campo-riga.input-valid-check.is-valid > textarea,
.campo-riga.input-valid-check.is-valid .campo-input-wrap > input,
.campo-riga.input-valid-check.is-valid .campo-input-wrap > select,
.campo-riga.input-valid-check.is-valid .campo-input-wrap > textarea {
  box-shadow: inset 0 0 0 1px rgba(52, 199, 89, 0.35);
}

.input-valid-check-icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%) scale(0.72);
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease, transform 220ms cubic-bezier(0.25, 0.1, 0.25, 1.2);
}

.campo-riga.input-valid-check .campo-etichetta + input,
.campo-riga.input-valid-check .campo-etichetta + select,
.campo-riga.input-valid-check .campo-etichetta + textarea {
  margin-top: 6px;
}

.campo-riga.input-valid-check .campo-etichetta ~ .input-valid-check-icon {
  top: calc(50% + 12px);
}

.campo-riga.input-valid-check.is-valid .input-valid-check-icon {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

.ux-piede-azione {
  width: 100%;
  padding: 8px 16px calc(8px + env(safe-area-inset-bottom, 0px));
  box-sizing: border-box;
}

.btn-primary-dynamic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  margin: 0;
  padding: 14px 20px;
  border: 0;
  border-radius: 14px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition:
    background 200ms ease,
    color 200ms ease,
    opacity 200ms ease,
    transform 120ms ease,
    box-shadow 200ms ease;
}

.btn-primary-dynamic.btn-primary-dynamic--incompleto {
  color: #1c1c1e;
  background: #e5e5ea;
  border: 0.5px solid rgba(0, 0, 0, 0.04);
  border-radius: 25px;
  box-shadow: none;
}

.btn-primary-dynamic.btn-primary-dynamic--incompleto:active {
  color: #000;
  background: #d8d8de;
  transform: scale(0.98);
}

.btn-primary-dynamic.btn-primary-dynamic--validato {
  color: #fff;
  border: 0.5px solid rgba(255, 255, 255, 0.28);
  border-radius: 25px;
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(255, 255, 255, 0.06) 100%
    ),
    #2d4a34;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.28) inset,
    0 8px 20px rgba(45, 74, 52, 0.28);
}

.btn-primary-dynamic.btn-primary-dynamic--validato:active {
  transform: scale(0.985);
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.18) 0%,
      rgba(255, 255, 255, 0.04) 100%
    ),
    #243d2a;
}

.btn-primary-dynamic:disabled {
  opacity: 0.78;
  cursor: wait;
  transform: none;
}

.cornice-piede:has(.ux-piede-azione) .passo-app {
  display: none !important;
}

body.guscio-bus .campo-clinico-vuoto,
body.pagina-anamnesi .campo-clinico-vuoto {
  background: rgba(255, 255, 255, 0.72);
  border-radius: 12px;
}

body.pagina-anamnesi .campo-clinico-vuoto:focus,
body.pagina-anamnesi .campo-clinico-vuoto:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.28);
}

/* ── Apple Liquid Bottom Sheet (footer globale) ── */
body {
  background: #F2F2F7;
}

body.guscio-bus {
  background: #F2F2F7;
}

body.guscio-bus main {
  background: #F2F2F7;
}

body.guscio-bus .foglio-piano,
body.guscio-bus .giorni-piano,
body.guscio-bus a.giorno-riga,
body.guscio-bus button.giorno-riga {
  background: #fff;
  border-radius: 26px;
}

.cornice-piede.apple-bottom-sheet {
  position: relative;
  background: #fff;
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08);
  padding-top: 2px;
  overflow: hidden;
}

body.guscio-bus .cornice-piede.apple-bottom-sheet {
  background: #fff;
}

.apple-bottom-sheet-handle {
  display: block;
  width: 36px;
  height: 5px;
  margin: 8px auto 4px;
  border: 0;
  border-radius: 999px;
  background: #C7C7CC;
  flex-shrink: 0;
}

.cornice-piede.apple-bottom-sheet .piede {
  background: transparent;
  box-shadow: none;
}

.cornice-piede.apple-bottom-sheet .ux-piede-azione {
  padding-top: 4px;
}

/* =============================================================================
   VDS SHELL — Prova zero · testa fissa · main scroll · piede liquido · iPhone
   ============================================================================= */
body.vds-shell {
  display: flex;
  flex-direction: column;
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  background: var(--veste-fondo, #f2f2f7);
  background-image: none;
  padding: env(safe-area-inset-top, 0px) 0 0;
  color: #000;
}

body.vds-shell > .testata-compatta {
  flex: 0 0 auto;
  position: sticky;
  top: 0;
  z-index: 30;
  width: min(var(--bus-colonna, 390px), 100vw);
  max-width: min(var(--bus-colonna, 390px), 100vw);
  margin: 0 auto;
}

body.vds-shell > main {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  width: min(var(--bus-colonna, 390px), 100vw);
  max-width: min(var(--bus-colonna, 390px), 100vw);
  margin: 0 auto;
  padding-bottom: 16px;
}

body.vds-shell > .cornice-piede {
  flex: 0 0 auto;
  position: relative;
  left: auto;
  right: auto;
  bottom: auto;
  z-index: 40;
  width: min(var(--bus-colonna, 390px), 100vw);
  max-width: min(var(--bus-colonna, 390px), 100vw);
  margin: 0 auto;
  padding: 0 20px calc(8px + env(safe-area-inset-bottom, 0px));
  background: transparent;
  box-shadow: none;
}

body.vds-shell .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  background: rgba(255, 255, 255, 0.94);
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -6px 28px rgba(0, 0, 0, 0.1);
  padding: 0 20px calc(12px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) .apple-bottom-sheet-handle {
  display: block;
}

body.vds-shell .cornice-piede.apple-bottom-sheet:not(:has(.ux-piede-azione)) {
  padding-top: 0;
}

body.vds-shell .cornice-piede.apple-bottom-sheet:not(:has(.ux-piede-azione)) .apple-bottom-sheet-handle {
  display: none;
}

body.vds-shell .ux-piede-azione {
  width: 100%;
  padding: 8px 0 4px;
}

body.vds-shell .ux-piede-azione .btn-primary-dynamic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 14px 20px;
  border: 0.5px solid rgba(255, 255, 255, 0.28);
  border-radius: 25px;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  cursor: pointer;
  box-sizing: border-box;
}

body.vds-shell .ux-piede-azione .btn-primary-dynamic--incompleto {
  color: #1c1c1e;
  background: #e5e5ea;
  border: 0.5px solid rgba(0, 0, 0, 0.04);
  box-shadow: none;
}

body.vds-shell .ux-piede-azione .btn-primary-dynamic--validato {
  color: #fff;
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.22) 0%,
      rgba(255, 255, 255, 0.06) 100%
    ),
    #2d4a34;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.28) inset,
    0 8px 20px rgba(45, 74, 52, 0.28);
}

body.vds-shell .ux-piede-azione .btn-primary-dynamic--validato:active {
  transform: scale(0.985);
  background: linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.18) 0%,
      rgba(255, 255, 255, 0.04) 100%
    ),
    #243d2a;
}

body.vds-shell .cornice-piede .piede {
  padding: 6px 0 2px;
  min-height: 0;
  border-top: 0;
  background: transparent;
  font-size: 10px;
  line-height: 1.35;
  color: rgba(60, 60, 67, 0.55);
  text-align: center;
}

body.vds-shell .cornice-piede .piede-brand,
body.vds-shell .cornice-piede .piede-sistema,
body.vds-shell .cornice-piede .nota {
  margin: 0;
  font-size: 10px;
}

/* Bus Fase 1–2 · liquid bottom · niente piede legale · tasto non coperto */
body.vds-shell.guscio-bus .cornice-piede .piede {
  display: none !important;
}

body.vds-shell.guscio-bus .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(18px) saturate(1.6);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  border-top: 0.5px solid rgba(60, 60, 67, 0.12);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
  padding: 0 20px calc(12px + env(safe-area-inset-bottom, 0px));
}

/* Fase 2 elenco piante (MA-2 · fase2-altra): stesso liquid sheet del nodo 1 —
   vietato spegnere blur/maniglia (Code 12/10 08:02 — selettore più specifico). */
body.vds-shell.guscio-bus.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-altra"])
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(18px) saturate(1.6);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  border-top: 0.5px solid rgba(60, 60, 67, 0.12);
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
  border-radius: 26px 26px 0 0;
  padding: 0 20px calc(12px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.guscio-bus.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-altra"])
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione)
  .apple-bottom-sheet-handle {
  display: block;
}

body.fase2-passo-altra > .cornice-piede:not(:has(.ux-piede-azione)) {
  display: none !important;
}

body.pagina-fase2-archify .fase2-chiudi-in-elenco {
  list-style: none;
  padding: 16px;
}

body.pagina-fase2-archify .fase2-chiudi-in-elenco .btn-primary-dynamic {
  width: 100%;
  min-height: 50px;
  border-radius: 25px;
}

/* Multidevice · smartphone (390) · tablet · desktop nativo (no simulazione telefono) */
@media (min-width: 768px) and (max-width: 1023px) {
  :root {
    --veste-colonna: min(560px, calc(100vw - 40px));
  }

  body.vds-shell.guscio-bus {
    background: var(--veste-fondo);
    padding: 0;
  }

  body.vds-shell.guscio-bus > .testata-compatta,
  body.vds-shell.guscio-bus > main,
  body.vds-shell.guscio-bus > .cornice-piede {
    border-radius: 0;
    box-shadow: none;
  }
}

@media (min-width: 1024px) {
  :root {
    --veste-colonna: min(920px, calc(100vw - 96px));
  }

  /* Desktop: interfaccia web piena — non cornice telefono */
  body.vds-shell.guscio-bus {
    display: block;
    min-height: 100vh;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    background: var(--veste-fondo);
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  body.vds-shell.guscio-bus > .testata-compatta {
    position: sticky;
    top: 0;
    z-index: 40;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 18px clamp(32px, 6vw, 64px) 14px;
    background: rgba(242, 242, 247, 0.88);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 0.5px solid rgba(60, 60, 67, 0.14);
    box-shadow: none;
    border-radius: 0;
  }

  body.vds-shell.guscio-bus > main {
    width: min(var(--veste-colonna), calc(100vw - 96px));
    max-width: min(var(--veste-colonna), calc(100vw - 96px));
    margin: 0 auto;
    padding: 28px clamp(24px, 4vw, 40px) 56px;
    overflow: visible;
    min-height: auto;
  }

  body.vds-shell.guscio-bus > .cornice-piede:not(.cornice-piede-nascosta) {
    width: min(var(--veste-colonna), calc(100vw - 96px));
    max-width: min(var(--veste-colonna), calc(100vw - 96px));
    margin: 0 auto;
    padding: 0 clamp(24px, 4vw, 40px) 40px;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  body.vds-shell.guscio-bus .fase1-archify,
  body.vds-shell.guscio-bus .ingresso-passo {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  body.vds-shell.pagina-fase1-archify .fase1-archify,
  body.vds-shell.pagina-fase2-archify .fase1-archify {
    padding-bottom: 40px;
  }

  body.vds-shell.pagina-fase2-archify.fase2-passo-altra .fase1-archify {
    padding-bottom: 24px;
  }

  body.vds-shell.pagina-fase1-archify .fase1-archify > .nav-indietro,
  body.vds-shell.pagina-fase2-archify .fase1-archify > .nav-indietro {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    background: transparent;
  }

  body.guscio-bus .fase1-titolo,
  body.pagina-fase2-archify h1.fase2-specie-censita {
    font-size: clamp(34px, 2.6vw, 44px);
    letter-spacing: -0.025em;
  }

  body.guscio-bus .fase1-lead {
    font-size: 19px;
    line-height: 1.45;
    max-width: 52rem;
  }

  body.guscio-bus .elenco-fase1,
  body.pagina-fase2-archify .elenco-fase1,
  body.pagina-fase1-archify .elenco-fase1 {
    border-radius: 22px;
    box-shadow:
      0 0 0 0.5px rgba(0, 0, 0, 0.05),
      0 10px 40px rgba(0, 0, 0, 0.06);
  }

  body.guscio-bus .fase2-stepper {
    margin-bottom: 20px;
  }

  body.guscio-bus .fase2-stepper .apple-stepper-label {
    font-size: 11px;
    line-height: 13px;
  }

  body.guscio-bus .fase2-stepper .apple-stepper-dot {
    width: 9px;
    height: 9px;
  }

  body.pagina-fase2-archify .fase2-chiudi-in-elenco {
    padding: 28px 32px;
  }

  body.pagina-fase2-archify .fase2-chiudi-in-elenco .fase2-sheet-chiusura-riepilogo {
    font-size: 19px;
    margin-bottom: 16px;
  }

  body.pagina-fase2-archify .fase2-chiudi-in-elenco .btn-primary-dynamic {
    max-width: 360px;
  }

  body.vds-shell.guscio-bus .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-top: 0;
    box-shadow: none;
    padding-top: 0;
  }

  body.vds-shell.guscio-bus .ux-piede-azione .btn-primary-dynamic {
    max-width: 360px;
    margin: 0 auto;
  }
}

body.vds-shell.guscio-bus .ux-piede-azione {
  padding: 10px 0 6px;
  padding-bottom: 6px;
}

body.vds-shell.guscio-bus.pagina-passport.pagina-caso > .cornice-piede {
  position: relative;
  bottom: auto;
  flex: 0 0 auto;
}

body.vds-shell:not(.pagina-cancello0) > main {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  bottom: auto !important;
}

body.vds-shell:not(.pagina-cancello0) > .cornice-piede {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
}

a.btn-azione-link {
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.orientamento-pagina {
  margin: 0 0 16px;
  padding: 18px 20px;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.orientamento-fase {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #2d4a34;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.orientamento-titolo {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 700;
  line-height: 34px;
  color: #000;
}

.orientamento-testo {
  margin: 0 0 10px;
  font-size: 17px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.75);
}

.orientamento-azioni {
  margin: 0;
  padding: 0 0 0 20px;
  font-size: 17px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.85);
}

.orientamento-azioni li {
  margin-bottom: 6px;
}

.orientamento-azioni li:last-child {
  margin-bottom: 0;
}

.testata-vds {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--veste-fondo, #f2f2f7);
  min-height: 56px;
  padding: 10px 12px 10px 20px;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  overflow: hidden;
  border-bottom: 0.5px solid rgba(60, 60, 67, 0.12);
}

.testata-vds .testata-brand,
.testata-vds .marchio {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 40%;
}

.testata-vds .sigla {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.1;
  color: #000;
}

.testata-vds .nome {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.25;
  color: rgba(60, 60, 67, 0.6);
  max-width: 9rem;
}

.testata-vds .testa-nav-step {
  margin: 0 0 0 auto;
  text-align: right;
  font-size: 13px;
  font-weight: 600;
  line-height: 16px;
  color: rgba(60, 60, 67, 0.75);
  white-space: nowrap;
}

.testata-vds .testa-nav-step small {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #2d4a34;
}

.testata-vds .testa-nav-fase-reale {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 4px 0 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 12px;
  font-weight: 600;
  color: #2d4a34;
  letter-spacing: -0.01em;
}

.fase2-cliente-stepper {
  margin: 4px 0 0;
  padding: 0 2px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: rgba(60, 60, 67, 0.72);
  text-align: center;
}

.testata-vds .mini-lingua {
  margin-left: 0;
  flex: 0 0 auto;
}

body.guscio-bus .testata-vds .mini-bandiera {
  border-color: rgba(60, 60, 67, 0.29);
  color: #1c1c1e;
  background: rgba(255, 255, 255, 0.72);
}

.fase1-lead-solo {
  margin: 0 0 16px;
  font-size: 17px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.75);
}

.pagina-installa-icona .avviso-installa {
  margin: 0 0 16px;
  padding: 14px 16px;
  background: #fff;
  border-radius: 26px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.pagina-installa-icona .icona-installa {
  display: block;
  width: 88px;
  height: 88px;
  border-radius: 20px;
  margin-bottom: 12px;
  box-shadow: 0 8px 20px rgba(45, 74, 52, 0.22);
}

.pagina-installa-icona .titolo-installa {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.15;
}

.pagina-installa-icona .titolo-secondario {
  margin-top: 28px;
  font-size: 22px;
}

.pagina-installa-icona .url-apri-vds {
  margin: 20px 0;
  padding: 18px 16px;
  background: #fff;
  border-radius: 26px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  word-break: break-all;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.pagina-installa-icona .nota-ok {
  font-size: 17px;
  line-height: 1.45;
}

.pagina-installa-icona .nota-stop {
  margin-top: 16px;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.65);
}

.pagina-apri-vds .apri-vds-corpo {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 42vh;
  text-align: center;
}

.pagina-apri-vds .apri-vds-stato-label {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(60, 60, 67, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.pagina-apri-vds .apri-vds-stato {
  margin: 0;
  padding: 20px 18px;
  background: #fff;
  border-radius: 26px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.pagina-apri-vds .btn-apri-vds {
  font-size: 22px;
  letter-spacing: 0.06em;
}

.pagina-installa-icona .passi-installa {
  margin: 16px 0 0;
  padding: 18px 18px 18px 26px;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  font-size: 17px;
  line-height: 1.5;
}

.pagina-installa-icona .passi-installa li {
  margin-bottom: 12px;
}

.pagina-installa-icona .nota-safari {
  margin-top: 16px;
  text-align: center;
}

.pagina-installa-icona .avviso-safari {
  margin: 0 0 16px;
  padding: 14px 16px;
  background: #fff;
  border-radius: 26px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.4;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.pagina-installa-icona .avviso-errore {
  background: #fff3f0;
  color: #8a1f0f;
}

.pagina-installa-icona .fallback-preferiti {
  margin-top: 20px;
  padding: 16px 18px;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  font-size: 17px;
  line-height: 1.45;
}

.pagina-installa-icona .fallback-preferiti summary {
  font-weight: 600;
  cursor: pointer;
}

.pagina-installa-icona .fallback-preferiti p {
  margin: 12px 0 0;
  color: rgba(60, 60, 67, 0.75);
}

body.vds-shell .assistente-vocale-fab {
  z-index: 55;
  width: 46px;
  height: 46px;
  bottom: calc(92px + env(safe-area-inset-bottom, 0px));
}

/* FAB sopra il liquid sheet — non copre Avanti (COMPORTAMENTO §4B · ANCORE_SVILUPPO) */
body.vds-shell:has(.ux-piede-azione) .assistente-vocale-fab {
  left: max(10px, calc((100vw - var(--bus-colonna, 390px)) / 2 + 10px));
  right: auto;
  bottom: calc(152px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has(.ux-piede-azione) .assistente-vocale-fab {
  bottom: calc(280px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has(.ux-piede-azione) .assistente-vocale-fallback {
  bottom: calc(280px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has(.ux-piede-azione) .assistente-vocale-stato {
  bottom: calc(284px + env(safe-area-inset-bottom, 0px));
}

/* Fase 2: niente FAB su form/elenco — righe a tutta larghezza, si usa il piede */
/* 15/10/2026 · aggiunta «fase2-censita»: li' il pallino verde galleggiava
   sopra il testo e lo copriva — misurato, stava a sinistra sopra la riga
   «Determinazione attuale». Vale la stessa ragione gia' scritta qui sotto:
   righe a tutta larghezza, si usa il piede. */
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-censita"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-censita"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-area"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-esemplare"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-rilievo"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-riprova"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-altra"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-chiude"]) .assistente-vocale-fab,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-area"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-esemplare"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-rilievo"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-riprova"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-altra"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-chiude"]) .assistente-vocale-fallback,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-area"]) .assistente-vocale-stato,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-esemplare"]) .assistente-vocale-stato,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-rilievo"]) .assistente-vocale-stato,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-riprova"]) .assistente-vocale-stato,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-altra"]) .assistente-vocale-stato,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-chiude"]) .assistente-vocale-stato {
  display: none !important;
}

body.vds-shell:has(.ux-piede-azione) .assistente-vocale-fallback {
  bottom: calc(152px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell .assistente-vocale-stato {
  z-index: 54;
  bottom: calc(156px + env(safe-area-inset-bottom, 0px));
}

body.vds-shell:has(.ux-piede-azione) .assistente-vocale-stato {
  bottom: calc(212px + env(safe-area-inset-bottom, 0px));
}

.blocco-passo-fase2 {
  margin: 0 0 20px;
  padding: 18px 20px;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

.passo-fase2-etichetta {
  margin: 0 0 4px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #2d4a34;
}

.passo-fase2-titolo {
  margin: 0 0 16px;
  font-size: 22px;
  font-weight: 700;
  line-height: 28px;
  color: #000;
}

.campo-riga-piena {
  margin-bottom: 12px;
}

.tipo-cliente-fase2 {
  margin: 0;
  padding: 0;
  border: 0;
  display: flex;
  gap: 16px;
}

.check-fase2 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 17px;
}

.btn-secondario-fase2 {
  width: 100%;
  min-height: 44px;
  margin: 8px 0;
  border: 0;
  border-radius: 14px;
  background: #f2f2f7;
  font-size: 17px;
  font-weight: 600;
  color: #2d4a34;
}

.scheda-interna.nascosto {
  display: none;
}

.copia-sopralluogo {
  margin-top: 8px;
  font-size: 15px;
  color: rgba(60, 60, 67, 0.75);
}

.copia-sopralluogo summary {
  padding: 12px 4px;
  cursor: pointer;
}

/* Ro 01/10 — ingresso gerarchia, bandiere, operatori, clienti */
body.guscio-bus.corpo-splash .splash-logo {
  gap: 0.28rem;
}
body.guscio-bus.corpo-splash .splash-sigla {
  font-size: clamp(2.75rem, 16vw, 3.25rem) !important;
  letter-spacing: 0.14em;
  color: #e8efe6 !important;
  text-shadow: none !important;
}
body.guscio-bus.corpo-splash .splash-app-nome {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #9aab9a;
  max-width: 16rem;
  line-height: 1.3;
}
body.guscio-bus.corpo-splash .splash-ruolo {
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  color: #7a8b78;
  margin-top: 0.45rem;
}
body.guscio-bus.corpo-splash .splash-sotto {
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  color: #6d7d6b;
}
body.guscio-bus.corpo-splash .splash-linea {
  width: 2.5rem;
  margin: 0.45rem 0 0.35rem;
}
body.guscio-bus.corpo-splash .splash-continua {
  min-height: auto;
  width: auto;
  margin-top: 2rem;
  padding: 0.35rem 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: #a8b8a6;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.guscio-bus.corpo-splash .splash-continua:active {
  transform: none;
  opacity: 0.75;
}

.nazioni-ingresso .bandiera {
  position: relative;
}
.nazioni-ingresso .bandiera.pronta {
  box-shadow: 0 0 0 2px #2d4a34;
  background: #fff;
  border-color: transparent;
}
.nazioni-ingresso .bandiera.pronta::after {
  content: "";
  position: absolute;
  top: 3px;
  right: 3px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #2d4a34;
}
.nazioni-ingresso .bandiera.in-attesa {
  opacity: 0.55;
}
.nazioni-ingresso .bandiera .bandiera-pronta {
  display: none;
}

@media (max-width: 699px) {
  .canali-griglia.canali-wow {
    grid-template-columns: 1fr;
  }
}

/* Porte A/B/C — standard Apple (MANDATO: #fff · 26px · ombra bus) */
body.guscio-bus .elenco-porte-canali {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
}
body.guscio-bus .porta-carta {
  display: block;
  position: relative;
  margin: 0;
  padding: 16px 20px;
  border: 0;
  border-radius: 26px;
  background: #fff;
  box-shadow: var(--bus-ombra-riga);
  text-decoration: none;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
}
body.guscio-bus .porta-carta-testa {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  row-gap: 2px;
  margin-bottom: 12px;
}
body.guscio-bus .porta-lettera {
  grid-row: 1 / span 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(45, 74, 52, 0.1);
  color: #2d4a34;
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
}
body.guscio-bus .porta-carta-titolo {
  grid-column: 2;
  min-width: 0;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 22px;
  color: #000;
}
body.guscio-bus .porta-stato {
  grid-column: 2;
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
  color: rgba(60, 60, 67, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body.guscio-bus .porta-stato-verde {
  color: #2d4a34;
}
body.guscio-bus .porta-dettaglio {
  margin: 0;
  display: grid;
  gap: 4px 0;
}
body.guscio-bus .porta-dettaglio dt {
  margin: 10px 0 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0.02em;
  color: rgba(60, 60, 67, 0.72);
}
body.guscio-bus .porta-dettaglio dt:first-child {
  margin-top: 0;
}
body.guscio-bus .porta-dettaglio dd {
  margin: 0;
  font-size: 17px;
  line-height: 22px;
  color: #1c1c1e;
}
body.guscio-bus .porta-carta-spenta {
  opacity: 0.55;
}
body.guscio-bus .porta-carta-attiva {
  box-shadow:
    0 0 0 1px rgba(45, 74, 52, 0.35),
    var(--bus-ombra-riga);
  padding-right: 44px;
}
body.guscio-bus .porta-carta-attiva .porta-lettera {
  background: #2d4a34;
  color: #fff;
}
body.guscio-bus .porta-carta-attiva .freccia-riga {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 14px;
  stroke: rgba(60, 60, 67, 0.45);
  stroke-width: 2;
}
body.guscio-bus .porta-carta-attiva:active {
  opacity: 0.88;
}

.fase1-caption-operatore {
  margin: -0.25rem 0 0.75rem;
  font-size: 0.82rem;
  color: rgba(60, 60, 67, 0.55);
  text-align: center;
}
.elenco-operatori .operatore-nome {
  font-size: 1.05rem;
}
.pagina-scegli-operatore .riga-operatore {
  min-height: 52px;
}

body.guscio-bus.pagina-casi .casi-portafoglio {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
body.guscio-bus.pagina-casi .cerca-casi {
  margin: 0;
}
body.guscio-bus.pagina-casi .elenco-casi-giorni {
  margin: 0;
}
body.guscio-bus.pagina-casi:not(.vds-shell) > main {
  overflow-y: auto;
  padding-bottom: 96px;
}

.accesso-errore {
  margin: 0 1.25rem 1rem;
  padding: 0.85rem 1rem;
  border-radius: 12px;
  background: #fdecea;
  color: #8b1e1e;
  border: 1px solid #f5c6c2;
  font-size: 0.95rem;
  line-height: 1.4;
}

/* Fase 2 visita: campi dentro la scheda bianca, non pillole annidate */
body.pagina-fase2-archify .elenco-fase1 .campo-riga input,
body.pagina-fase2-archify .elenco-fase1 .campo-riga select,
body.pagina-fase2-archify .elenco-fase1 .campo-riga textarea,
body.pagina-fase2-archify .elenco-fase1 .campo-password-con-toggle input {
  min-height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.pagina-fase2-archify .elenco-fase1 .campo-riga input:focus,
body.pagina-fase2-archify .elenco-fase1 .campo-riga select:focus,
body.pagina-fase2-archify .elenco-fase1 .campo-riga textarea:focus {
  outline: none;
  box-shadow: none;
}
body.pagina-fase2-archify .elenco-fase1 .campo-riga input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset;
  -webkit-text-fill-color: #000;
}


/* Fase 2 visita — righe Apple (etichetta | valore) nella scheda bianca */
body.pagina-fase2-archify .fase2-passo-sotto {
  margin: 22px 16px 8px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase2-archify .riga-fase1,
body.pagina-fase2-archify .riga-fase1-static {
  box-sizing: border-box;
  padding: 16px 20px;
}
body.pagina-fase2-archify .riga-fase1 {
  display: flex;
  align-items: center;
  min-height: 48px;
  text-decoration: none;
  color: #000;
}
body.pagina-fase2-archify button.riga-fase1 {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
body.pagina-fase2-archify .riga-fase1-testo {
  display: block;
  flex: 1;
  font-size: 17px;
  line-height: 22px;
  color: #000;
}
body.pagina-fase2-archify .riga-fase1-testo span {
  display: block;
  margin-top: 2px;
  font-size: 15px;
  font-weight: 400;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase2-archify .riga-fase1-testo span.fase2-specie-da-completare {
  color: #d70015;
  -webkit-text-fill-color: #d70015;
  font-weight: 600;
}
/* 14/10/2026 · nodo 2 · VDS-F2-INVITO-IN-GRIGIO-CHIARO.
   L'invito a fotografare il fiore e' la sola cosa che l'operatore puo' fare
   adesso, e stava nel grigio di servizio: misurato dal telefono vero
   (390x840, https://vds.viridis.care/lab) 3,4 a 1 sul fondo bianco, sotto il
   minimo di 4,5. Il titolo sopra stava a 21 a 1.
   Lo standard della veste non si negozia: si ALZA questa riga, non si abbassa
   nient'altro. Stesso inchiostro della riga «Determinazione attuale»
   (#1c1c1e, misurata 17,01 a 1), che e' il paragone citato dall'ispettore. */
body.pagina-fase1-archify .riga-fase1-testo span.fase2-invito-fiore,
body.pagina-fase2-archify .riga-fase1-testo span.fase2-invito-fiore {
  color: #1c1c1e;
  -webkit-text-fill-color: #1c1c1e;
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 2px;
}
body.pagina-fase2-archify ul.elenco-fase1.fase2-rilievo-guida-card,
body.pagina-fase2-archify ul.elenco-fase1.fase2-azione-secondaria-gialla {
  margin-top: 22px;
}
body.pagina-fase2-archify .fase2-riga-azione-secondaria {
  min-height: 48px;
}
body.pagina-fase2-archify .fase1-archify-testata .fase1-titolo {
  margin: 0 0 6px;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.12;
  color: #000;
}
body.pagina-fase2-archify .fase1-archify-testata .fase1-lead {
  margin: 0 0 20px;
  font-size: 17px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.75);
}
body.pagina-fase2-archify .elenco-fase1 {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #fff;
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}
body.pagina-fase2-archify .campo-fase1 {
  padding: 0;
}
body.pagina-fase2-archify .campo-fase1 .campo-riga {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  padding: 12px 16px;
  margin: 0;
}
body.pagina-fase2-archify .campo-etichetta {
  flex: 0 0 38%;
  font-size: 17px;
  line-height: 22px;
  font-weight: 400;
  color: #000;
}
body.pagina-fase2-archify .campo-riga input,
body.pagina-fase2-archify .campo-riga select,
body.pagina-fase2-archify .campo-riga textarea {
  flex: 1;
  min-width: 0;
  font-size: 17px;
  line-height: 22px;
  text-align: right;
}
body.pagina-fase2-archify .sep-fase1 {
  margin: 0;
  border: 0;
  border-top: 0.5px solid rgba(60, 60, 67, 0.29);
  margin-left: 20px;
}

.fase2-stepper .apple-stepper-step--done .apple-stepper-dot {
  background: var(--forest);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--forest) 18%, transparent);
  transform: scale(1.05);
}
.fase2-stepper .apple-stepper-step--current .apple-stepper-dot {
  background: #007aff;
}
/* 14/10/2026 · IL PALLINO ROSSO HA UNA FORMA SUA.
   Decisione di Ro, 14/10: «il pallino rosso in alto deve identificare quando
   un'informazione non c'e' o va aggiunta» — quindi resta. Il difetto era un
   altro: aveva la STESSA FORMA del pallino «sei qui», e sull'elenco i due
   stanno uno accanto all'altro (Specie rosso, Elenco azzurro). L'operatore
   legge due posizioni accese uguali e non sa quale e' la sua.
   Qui diventa un rombo: a 7 punti la sagoma con gli spigoli si distingue da un
   cerchio anche con lo schermo al sole. E non si affida al solo colore — nello
   stesso stepper ci sono pallini verdi (fatto) e questo rosso, e per un
   operatore che confonde rosso e verde il colore da solo non dice niente. */
.fase2-stepper .apple-stepper-step--alert .apple-stepper-dot {
  background: #dc2626;
  border-radius: 2px;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.22);
  transform: rotate(45deg) scale(1.02);
}
.fase2-stepper .apple-stepper-step--alert .apple-stepper-label {
  color: #c81e1e;
  font-weight: 700;
}
.fase2-rilievo-tipo-evidenziato {
  margin: 0 0 12px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(0, 122, 255, 0.08);
  font-size: 15px;
  line-height: 20px;
  color: #1c1c1e;
}
.fase2-rilievo-tipo-evidenziato strong {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #007aff;
}
.fase2-galleria-scambia-avvio {
  margin-top: 10px;
  width: 100%;
}
.fase2-attesa-blocco {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.fase2-attesa-spinner {
  width: 22px;
  height: 22px;
  border: 2px solid rgba(60, 60, 67, 0.14);
  border-top-color: #007aff;
  border-radius: 50%;
  animation: fase2-attesa-gira 0.85s linear infinite;
}
.fase2-attesa-spinner--grande {
  width: 36px;
  height: 36px;
  border-width: 3px;
}
.fase2-attesa-progress {
  display: block;
  width: min(280px, 100%);
  height: 6px;
  margin-top: 4px;
  border-radius: 999px;
  background: rgba(60, 60, 67, 0.12);
  overflow: hidden;
}
.fase2-attesa-progress--overlay {
  width: min(320px, 88vw);
  height: 8px;
  margin-top: 2px;
}
.fase2-attesa-progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #007aff, #34c759);
  transition: width 0.45s ease;
}
.fase2-attesa-nota {
  font-size: 13px;
  line-height: 18px;
  color: rgba(60, 60, 67, 0.62);
  max-width: 300px;
}
.fase2-overlay-lavoro {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 28px 24px;
  text-align: center;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.fase2-overlay-lavoro[hidden] {
  display: none;
}
.fase2-overlay-lavoro strong {
  font-size: 20px;
  line-height: 26px;
  font-weight: 600;
  color: #1c1c1e;
}
.fase2-overlay-lavoro span {
  font-size: 15px;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.72);
  max-width: 280px;
}
@keyframes fase2-attesa-gira {
  to { transform: rotate(360deg); }
}
.fase2-stepper { margin: 0 0 12px; }
.fase2-stepper .apple-stepper-label { font-size: 9px; line-height: 11px; }
.fase2-stepper .apple-stepper-dot { width: 7px; height: 7px; }
body.pagina-fase2-archify .fase2-archify-testata + .fase2-stepper,
body.pagina-fase2-archify .nav-indietro + .fase2-stepper { margin-top: 4px; }

body.pagina-fase2-archify .campo-riga input,
body.pagina-fase2-archify .campo-riga select,
body.pagina-fase2-archify .campo-riga textarea,
body.pagina-fase2-archify .elenco-fase1 input,
body.pagina-fase2-archify .elenco-fase1 select,
body.pagina-fase2-archify .campo-cerca-casi {
  font-size: 17px !important;
  line-height: 22px;
}

body.pagina-fase2-archify .campo-riga input[type="file"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-size: 17px !important;
}

/* Casi in cura · FAB a destra, ultima riga scrollabile sopra piede */
body.vds-shell.pagina-casi .assistente-vocale-fab,
body.vds-shell.pagina-casi .assistente-vocale-fallback,
body.vds-shell.pagina-casi .assistente-vocale-stato {
  left: auto;
  right: max(10px, calc((100vw - var(--bus-colonna, 390px)) / 2 + 10px));
}
body.pagina-casi .casi-elenco-scroll {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
}
body.pagina-casi .elenco-casi-giorni .riga-caso {
  padding-right: 56px;
}

/* Fase 1 registrazione/login — NON tocca visita Fase 2 (stesso guscio, altra classe) */
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga input,
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga select,
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga textarea,
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-password-con-toggle input {
  min-height: auto;
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  outline: none;
}
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga input:focus,
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga select:focus,
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga textarea:focus {
  box-shadow: none;
  outline: none;
}
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga input:-webkit-autofill,
body.pagina-fase1-archify:not(.pagina-fase2-archify) .elenco-fase1 .campo-riga input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #fff inset;
  -webkit-text-fill-color: #000;
}

/* Censimento Fase 2 — righe elenco Apple (Scatta / Rullino) */
body.pagina-fase1-archify label.riga-fase1,
body.pagina-fase2-archify label.riga-fase1 { position: relative; }
body.pagina-fase1-archify .input-foto-riga,
body.pagina-fase2-archify .input-foto-riga {
  position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
  opacity: 0; cursor: pointer; font-size: 16px; z-index: 1;
}
body.pagina-fase1-archify .anteprime-censimento,
body.pagina-fase2-archify .anteprime-censimento {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0 0;
}
body.pagina-fase1-archify .anteprime-censimento .anteprima-scatto,
body.pagina-fase2-archify .anteprime-censimento .anteprima-scatto {
  width: 88px; height: 88px; object-fit: cover; border-radius: 12px;
}
body.pagina-fase1-archify #scelta-foto-censimento.elenco-fase1-attesa,
body.pagina-fase2-archify #scelta-foto-censimento.elenco-fase1-attesa {
  box-shadow: 0 0 0 2px #c62828; border-radius: 26px;
}
body.pagina-fase2-archify.fase2-ambiente-desktop .fase2-foto-riga-scatta,
body.pagina-fase2-archify.fase2-ambiente-desktop .fase2-foto-sep-scatta {
  display: none;
}
body.pagina-fase2-archify .fase2-foto-nota-desktop {
  margin: 12px 16px 0;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(60, 60, 67, 0.75);
}
body.pagina-fase2-archify .fase2-foto-nota-desktop:not(.nascosto):not([hidden]) {
  display: block;
}

body.pagina-fase1-archify .anteprima-scatto-grande { width: 100%; max-height: 220px; object-fit: cover; border-radius: 16px; }

/* Test 6 Fase 3 — scelta foto sopralluogo */
.scelta-foto-test6 { border: 0; margin: 12px 0 0; padding: 0; }
.scelta-foto-riga { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.anteprima-foto-test6 { width: 72px; height: 72px; object-fit: cover; border-radius: 12px; }
.form-assegna-foto .btn.piano-no { margin-top: 8px; min-height: 44px; }
body.pagina-lab-ro main { max-width: 390px; margin-inline: auto; }

/* Elenchi clienti/piante Fase 2–3: FAB nascosto — righe tutte tappabili (§1ter) */
body.vds-shell.pagina-casi .assistente-vocale-fab,
body.vds-shell.pagina-casi .assistente-vocale-fallback,
body.vds-shell.pagina-casi .assistente-vocale-stato,
body.vds-shell.pagina-passport.pagina-diagnosi.pagina-solo-elenco .assistente-vocale-fab,
body.vds-shell.pagina-passport.pagina-diagnosi.pagina-solo-elenco .assistente-vocale-fallback,
body.vds-shell.pagina-passport.pagina-diagnosi.pagina-solo-elenco .assistente-vocale-stato {
  display: none !important;
}
body.pagina-passport.pagina-diagnosi.pagina-solo-elenco .giorni-piano {
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}
body.pagina-lab-ro .testata-vds {
  position: sticky;
  top: 0;
  z-index: 40;
  background: #f2f2f7;
}

/* Fase 2 · Pezzo 4 — semaforo lista + scheda gialla ipotesi */
.fase2-riga-pianta-link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.fase2-semaforo {
  flex: 0 0 0.55rem;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  margin-left: 0.15rem;
}
.fase2-semaforo--verde { background: #34c759; }
.fase2-semaforo--giallo { background: #ffcc00; }
.fase2-semaforo--ambra { background: #ff9500; }
.fase2-semaforo--rosso { background: #ff3b30; }
.fase2-semaforo--grigio { background: #8e8e93; }
/* F2 UX Ro 06/10 — pallino rosso, bolla nascosta, titolo fine F2, sheet guida */
body.pagina-fase2-archify .fase2-aiuto-pianta--rosso {
  color: #d70015;
}
/* 15/10/2026 · il punto di domanda dentro il tondo: stessa misura della «i»
   che c'era prima, ma si legge. */
.fase2-aiuto-pianta-segno {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
body.pagina-fase2-archify .fase2-item-pianta--prossima .fase2-aiuto-pianta--rosso {
  color: #d70015;
}
body.pagina-fase1-archify .fase2-aiuto-bolla[hidden],
body.pagina-fase2-archify .fase2-aiuto-bolla[hidden] {
  display: none !important;
}
body.pagina-fase2-archify .fase1-titolo--fine-f2 {
  font-size: 28px;
  line-height: 1.15;
  font-weight: 700;
}
body.pagina-fase2-archify .fase2-riga-pianta-link {
  gap: 0;
}
body.pagina-fase2-archify button.fase2-riga-apri-guida {
  display: flex;
  align-items: center;
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
body.pagina-fase2-archify button.fase2-riga-apri-guida .riga-fase1-segno {
  flex-shrink: 0;
}
body.pagina-fase2-archify .fase2-sheet-guida-rilievo .fase2-sheet-guida-pannello {
  background: #f2f2f7;
}
body.pagina-fase2-archify .fase2-sheet-guida-handle {
  display: block;
  width: 36px;
  height: 5px;
  margin: 0 auto 14px;
  border-radius: 3px;
  background: rgba(60, 60, 67, 0.28);
}
body.pagina-fase2-archify .fase2-guida-sheet-lista {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
}
body.pagina-fase2-archify .fase2-guida-sheet-voce {
  margin: 0 0 14px;
  font-size: 17px;
  line-height: 1.45;
  color: #1c1c1e;
}
body.pagina-fase2-archify .fase2-guida-sheet-voce strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  font-weight: 600;
  color: rgba(60, 60, 67, 0.75);
}
body.pagina-fase2-archify .fase2-galleria-intestazione {
  margin: 0 0 10px;
  padding: 0 4px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase2-archify .fase2-riga-apri-guida-wrap {
  margin-top: 16px;
}

.fase2-contesto-pianta {
  margin: 0 1rem 0.65rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--testo-primario, #1c1c1e);
  background: var(--sfondo-secondario, #f2f2f7);
  border-radius: 0.65rem;
}
.fase2-contesto-badge {
  display: inline-block;
  margin-left: 0.15rem;
  padding: 0.1rem 0.45rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--verde-viridis, #2d6a4f);
  background: rgba(45, 106, 79, 0.12);
  border-radius: 0.35rem;
}
.fase2-ipotesi-blocco,
.fase2-rilievi-guida,
.fase2-rilievo-guida-card,
.fase2-prossimo-rilievo {
  margin-bottom: 0.75rem;
}
.fase2-rilievo-feedback {
  margin: 0 1rem 0.65rem;
  padding: 0.65rem 0.85rem;
  border-radius: 14px;
  background: rgba(45, 74, 52, 0.08);
  color: #2d4a34;
  font-size: 0.92rem;
  font-weight: 600;
}
.fase2-fase-c-mc2 {
  margin: 0 1rem 0.75rem;
  padding: 0.15rem 0;
  list-style: none;
}
.fase2-fase-c-blocco {
  margin: 0 0 0.65rem;
  padding: 0.85rem 1rem;
  border-radius: 20px;
  background: #ffffff;
  box-shadow:
    0 0 0 0.5px rgba(0, 0, 0, 0.05),
    0 8px 28px rgba(0, 0, 0, 0.05);
}
.fase2-fase-c-blocco--veto {
  background: rgba(255, 59, 48, 0.06);
  box-shadow:
    0 0 0 0.5px rgba(255, 59, 48, 0.18),
    0 8px 28px rgba(0, 0, 0, 0.04);
}
.fase2-fase-c-titolo {
  display: flex;
  align-items: baseline;
  gap: 0.45rem;
  margin: 0 0 0.55rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.25;
}
.fase2-fase-c-elenco {
  margin: 0;
  padding: 0;
  list-style: none;
}
.fase2-fase-c-corpo,
.fase2-fase-c-ciclo,
.fase2-fase-c-nota {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.38;
  color: var(--testo-primario, #1a1a1a);
}
.fase2-fase-c-ciclo {
  margin-bottom: 0.55rem;
  color: var(--testo-secondario, #636366);
}
.fase2-fase-c-nota {
  margin-top: 0.45rem;
  font-size: 0.82rem;
  color: var(--testo-secondario, #636366);
}
.fase2-fase-c-assistenza .fase2-assistenza-operatore {
  margin: 0;
  padding: 0.65rem 0 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.fase2-assistenza-operatore {
  margin: 0 1rem 0.75rem;
  padding: 1rem 1.1rem;
  list-style: none;
  border-radius: 26px;
  background: #ffffff;
  border: none;
  box-shadow:
    0 0 0 0.5px rgba(0, 0, 0, 0.05),
    0 10px 40px rgba(0, 0, 0, 0.06);
}
.fase2-assistenza-riga {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7rem) 1fr;
  gap: 0.45rem 0.65rem;
  margin: 0 0 0.5rem;
  font-size: 0.88rem;
  line-height: 1.35;
}
.fase2-assistenza-riga:last-of-type {
  margin-bottom: 0;
}
.fase2-assistenza-riga--esito .fase2-assistenza-testo {
  font-weight: 600;
}
.fase2-assistenza-riga--prossimo .fase2-assistenza-testo {
  color: #2d4a34;
  font-weight: 600;
}
.fase2-assistenza-etichetta {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--testo-secondario, #636366);
}
.fase2-assistenza-istruzione {
  margin: 0.55rem 0 0.35rem;
  padding: 0.65rem 0.75rem;
  border-radius: 14px;
  background: var(--veste-fondo, #f2f2f7);
}
.fase2-assistenza-istruzione-titolo {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
  color: #2d4a34;
  line-height: 1.25;
}
.fase2-assistenza-istruzione-corpo {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--testo-primario, #1a1a1a);
}
.fase2-assistenza-nota {
  margin: 0.55rem 0 0;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 0.82rem;
  color: var(--testo-secondario, #636366);
  line-height: 1.35;
}
.fase2-assistenza-cta--link {
  margin: 0.35rem 0 0;
}
.fase2-assistenza-link-secondario {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.88rem;
  line-height: 1.35;
  color: var(--link-tint, #0067d4);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  text-align: left;
}

/* MA-5 · card avvio telefono: titolo + riga, niente griglia gestionale */
.fase2-assistenza-operatore--compatta {
  margin: 0 1rem 1rem;
  padding: 1.15rem 1.2rem 1.2rem;
  border-radius: 26px;
  background: #ffffff;
  box-shadow:
    0 0 0 0.5px rgba(0, 0, 0, 0.04),
    0 8px 28px rgba(0, 0, 0, 0.06);
}
.fase2-assistenza-hero {
  margin: 0 0 0.4rem;
  font-size: 1.55rem;
  font-weight: 650;
  letter-spacing: -0.025em;
  line-height: 1.15;
  color: #1c1c1e;
}
.fase2-assistenza-sub {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.35;
  color: #3a3a3c;
  font-weight: 400;
}
.fase2-assistenza-operatore--compatta .fase2-assistenza-cta {
  margin-top: 0.75rem;
}
.fase2-galleria-ripiegata {
  margin: 0.75rem 1rem 1.25rem;
  padding: 0;
  border-radius: 18px;
  background: transparent;
}
.fase2-galleria-ripiegata > summary {
  list-style: none;
  cursor: pointer;
  padding: 0.65rem 0.2rem;
  font-size: 0.92rem;
  color: #636366;
}
.fase2-galleria-ripiegata > summary::-webkit-details-marker { display: none; }
.fase2-galleria-ripiegata[open] > summary {
  margin-bottom: 0.35rem;
  color: #1c1c1e;
  font-weight: 600;
}
.fase2-galleria-ripiegata .fase2-galleria-foto {
  margin: 0;
}
.fase2-galleria-ripiegata .fase2-galleria-intestazione {
  display: none;
}

.fase2-assistenza-operatore--compatta .fase2-assistenza-riga--prossimo .fase2-assistenza-testo strong {
  font-weight: 600;
}
.fase2-scheda-gialla-box {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  background: rgba(255, 204, 0, 0.12);
  border: 1px solid rgba(255, 149, 0, 0.28);
}
.fase2-scheda-gialla-riga {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7rem) 1fr;
  gap: 0.45rem 0.65rem;
  margin: 0 0 0.45rem;
  font-size: 0.88rem;
  line-height: 1.35;
}
.fase2-scheda-gialla-riga--prossimo span:last-child {
  font-weight: 600;
  color: var(--verde-viridis, #2d6a4f);
}
.fase2-scheda-gialla-etichetta {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--testo-secondario, #636366);
}
.fase2-scheda-gialla-nota {
  margin: 0.5rem 0 0;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(255, 149, 0, 0.2);
  font-size: 0.82rem;
  color: var(--testo-secondario, #636366);
  line-height: 1.35;
}
.fase2-rilievo-avanzamento {
  margin: 0 1rem 0.65rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--testo-secondario, #636366);
}
.fase2-traccia-vds {
  display: flex;
  gap: 0.35rem;
  margin: 0 1rem 0.85rem;
  padding: 0;
  list-style: none;
}
.fase2-traccia-vds-step {
  flex: 1;
  text-align: center;
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--testo-secondario, #636366);
}
.fase2-traccia-vds-step--current {
  color: var(--testo-primario, #1c1c1e);
  font-weight: 600;
}
.fase2-traccia-vds-step--done {
  color: var(--verde-viridis, #2d6a4f);
}
.fase2-traccia-vds-dot {
  display: block;
  width: 0.55rem;
  height: 0.55rem;
  margin: 0 auto 0.25rem;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.35;
}
.fase2-traccia-vds-step--current .fase2-traccia-vds-dot,
.fase2-traccia-vds-step--done .fase2-traccia-vds-dot {
  opacity: 1;
}
/* Fase 2 campo specie · allineamento ingresso 390px */
body.pagina-fase2-archify.fase2-campo-specie .fase2-cliente-stepper {
  display: none;
}
body.pagina-fase2-archify.fase2-campo-specie .fase2-stepper .apple-stepper-label {
  font-size: 8px;
  line-height: 10px;
  letter-spacing: -0.02em;
  max-width: 3.2rem;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.pagina-fase2-archify.fase2-campo-specie .fase2-guscio-testa {
  margin-bottom: 8px;
  padding-bottom: 4px;
}
body.pagina-fase2-archify .fase2-assistenza-operatore {
  margin: 0 0 12px;
  padding: 14px 16px;
  border-radius: 26px;
  box-shadow:
    0 0 0 0.5px rgba(0, 0, 0, 0.05),
    0 10px 40px rgba(0, 0, 0, 0.06);
}
body.pagina-fase2-archify .fase2-assistenza-riga {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  font-size: 17px;
  line-height: 22px;
  gap: 4px;
  margin-bottom: 12px;
}
body.pagina-fase2-archify .fase2-assistenza-etichetta {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 18px;
  text-transform: none;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase2-archify .fase2-assistenza-riga--esito .fase2-assistenza-testo {
  color: #1c1c1e;
  font-weight: 600;
}
body.pagina-fase2-archify .fase2-assistenza-riga--prossimo .fase2-assistenza-testo {
  color: #1c1c1e;
  font-weight: 600;
}
body.pagina-fase2-archify .fase2-assistenza-istruzione {
  margin: 8px 0 4px;
  padding: 12px 14px;
  border-radius: 16px;
}
body.pagina-fase2-archify .fase2-assistenza-istruzione-titolo {
  font-size: 17px;
  line-height: 22px;
  color: #1c1c1e;
}
body.pagina-fase2-archify .fase2-assistenza-istruzione-corpo {
  font-size: 17px;
  line-height: 22px;
}
body.pagina-fase2-archify .fase2-assistenza-nota {
  font-size: 15px;
  line-height: 20px;
}
.fase2-specie-da-completare {
  display: block;
  margin-top: 4px;
  color: #d70015;
  -webkit-text-fill-color: #d70015;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.3;
}
body.pagina-fase2-archify .riga-fase1-testo .fase2-specie-da-completare {
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}
body.pagina-fase2-archify .riga-fase1-testo strong + .fase2-specie-da-completare,
body.pagina-fase2-archify .riga-fase1-testo .fase2-elenco-sottotitolo-neutro + .fase2-specie-da-completare {
  margin-top: 2px;
}
.fase2-elenco-sottotitolo-neutro {
  display: block;
  color: rgba(60, 60, 67, 0.6);
}
body.pagina-fase2-archify .fase2-elenco-sottotitolo-neutro {
  font-size: 15px;
  line-height: 20px;
}
.riga-fase1-testo .fase2-elenco-sottotitolo-neutro + .fase2-specie-da-completare {
  margin-top: 4px;
}
body.pagina-fase2-archify .fase2-traccia-vds,
body.pagina-fase2-archify .fase2-traccia-vds-ripiegata {
  margin: 0 0 10px;
}
.fase2-traccia-vds-ripiegata {
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 0 0 0.5px rgba(0, 0, 0, 0.04);
}
.fase2-traccia-vds-ripiegata-titolo {
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: rgba(60, 60, 67, 0.72);
  cursor: pointer;
  list-style: none;
}
.fase2-traccia-vds-ripiegata[open] .fase2-traccia-vds-ripiegata-titolo {
  border-bottom: 0.5px solid rgba(60, 60, 67, 0.12);
}
.fase2-traccia-vds-ripiegata .fase2-traccia-vds {
  margin: 0;
  padding: 10px 12px 12px;
}
body.pagina-fase2-archify .fase1-archify-testata .fase1-titolo:only-child,
body.pagina-fase2-archify .fase1-archify-testata:not(:has(.fase1-lead)) .fase1-titolo {
  margin-bottom: 12px;
}
body.vds-shell.pagina-fase2-archify.fase2-campo-specie .cornice-piede .piede,
body.vds-shell.pagina-fase2-archify.fase2-campo-specie .cornice-piede .piede-brand {
  display: none !important;
}

body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-riprova"]) > main,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has([data-maschera-ux="fase2-censita"]) > main {
  padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px));
}

/* Guscio F2 (Code 17:45) — il foglio CTA non copre l ultima riga del corpo */
body.vds-shell.pagina-fase2-archify.pagina-diagnosi:has(.cornice-piede .ux-piede-azione) > main {
  padding-bottom: calc(98px + env(safe-area-inset-bottom, 0px));
}

body.pagina-fase2-archify .fase2-traccia-vds-ripiegata > summary {
  font-size: 15px;
  font-weight: 600;
  color: rgba(60, 60, 67, 0.72);
  padding: 10px 14px;
  list-style: none;
  cursor: pointer;
}

body.pagina-fase2-archify .fase2-traccia-vds-ripiegata > summary::-webkit-details-marker {
  display: none;
}


.fase2-ipotesi-nome {
  display: block;
  font-weight: 500;
}
.fase2-rilievo-voce strong {
  display: block;
}
.fase2-scheda-gialla {
  margin: 0 1rem 0.75rem;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--testo-secondario, #636366);
}

.fase2-ipotesi-nota {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.78rem;
  color: var(--testo-secondario, #636366);
}
.fase2-azione-secondaria-gialla {
  margin-top: 0.25rem;
}
.fase2-riga-azione-secondaria {
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.fase2-guida-operatore {
  margin-bottom: 0.75rem;
}

.fase2-cta-assenza-organo {
  margin: 0.75rem 0 0;
  text-align: center;
}
.fase2-cta-assenza-organo-form {
  display: inline;
  margin: 0;
}
.fase2-link-azione {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: var(--verde-primario, #2d6a4f);
  text-decoration: underline;
  cursor: pointer;
}
.fase2-link-azione:focus-visible {
  outline: 2px solid var(--verde-primario, #2d6a4f);
  outline-offset: 2px;
}

/* ══════════════════════════════════════════════════════════════════════
   NODO 1 · schermata del luogo — veste iOS (Code, 13/10/2026)
   Rossi di Ro guardando lo schermo: «le schede sono completamente diverse,
   il carattere mi fa schifo». Misurato: le righe del modulo erano incolonnate
   e centrate (etichetta sopra, valore sotto), e la scheda occupava 266px su
   390 perche' tre cornici annidate si mangiavano 124px.
   Qui: riga iOS (etichetta a sinistra, valore a destra) e scheda a tutta
   larghezza. Perimetro stretto: SOLO il modulo del luogo (#visita-area).
   ══════════════════════════════════════════════════════════════════════ */

body.pagina-diagnosi #visita-area .campo-riga {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  text-align: left;
}

body.pagina-diagnosi #visita-area .campo-etichetta {
  flex: 0 0 auto;
  font-size: 17px;
  line-height: 22px;
  color: #000;
}

body.pagina-diagnosi #visita-area .campo-riga input,
body.pagina-diagnosi #visita-area .campo-riga select {
  flex: 1 1 auto;
  width: auto;
  min-height: 44px;
  padding: 10px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 17px;
  line-height: 22px;
  text-align: right;
  color: rgba(60, 60, 67, 0.6);
}

body.pagina-diagnosi #visita-area .campo-riga input:focus,
body.pagina-diagnosi #visita-area .campo-riga select:focus {
  color: #000;
  outline: none;
}

/* La scheda prende la larghezza dello schermo, come in Impostazioni di iOS:
   un margine solo, non tre cornici una dentro l'altra. */
body.vds-shell.pagina-fase2-archify #visita-area .elenco-fase1 {
  margin-left: -12px;
  margin-right: -12px;
}

/* Il tasto della posizione e' la via principale: sta in cima e si vede. */
body.pagina-diagnosi #visita-area .fase2-luogo-gps #btn-gps {
  display: block;
  width: 100%;
  min-height: 48px;
  font-size: 17px;
  font-weight: 600;
}

body.pagina-diagnosi #visita-area .fase2-luogo-oppure .riga-fase1-testo {
  justify-content: center;
}

/* Rossi misurati il 13/10 dopo il primo giro (viridis-ui-witness):
   la scheda stava a 42,4px dai bordi mentre il tasto in basso sta a 32:
   tre fili diversi. La frase d'aiuto era grande come il testo normale.
   Il titolo era 700 dove iOS vuole 600. */
body.vds-shell.pagina-fase2-archify #visita-area .elenco-fase1 {
  margin-left: -10.4px;
  margin-right: -10.4px;
}

body.pagina-diagnosi #visita-area .muto {
  font-size: 13px;
  line-height: 18px;
  padding-left: 16px;
  padding-right: 16px;
}

body.vds-shell.pagina-fase2-archify.pagina-diagnosi h1,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi .fase1-titolo {
  font-weight: 600;
}

/* La tendina dei suggerimenti veniva appesa DENTRO la riga del modulo, che e'
   una riga flessibile: entrando spingeva fuori l'etichetta, e scrivendo nel
   campo Citta' «Citta'» spariva (misurato su tablet il 13/10).
   Esce dal flusso: galleggia sotto la riga, senza spostare niente. */
body.pagina-diagnosi #visita-area .campo-riga .suggerimenti {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 30;
  margin-top: 4px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/* L'etichetta non si lascia mai schiacciare. Solo sul modulo del luogo:
   fuori di qui ci sono etichette lunghe («Nome o ragione sociale») che senza
   andare a capo sforerebbero i 390. Perimetro segnalato da viridis-designer. */
body.pagina-diagnosi #visita-area .campo-etichetta {
  flex-shrink: 0;
  white-space: nowrap;
}

/* L'avviso del campo mancante si legge: sta in cima, non e' una didascalia. */
/* Vince su «.muto», che altrimenti lo rimpicciolirebbe a 13px (specificita'
   maggiore della mia prima stesura: trovato da viridis-designer). */
body.pagina-diagnosi #visita-area ~ #campo-mancante-luogo,
body.pagina-diagnosi p#campo-mancante-luogo.muto {
  font-size: 15px;
  line-height: 20px;
  color: #b3261e;
  margin: 0 0 8px;
  padding: 0 16px;
}

/* Rossi misurati il 13/10 (secondo giro, viridis-ui-witness + ispettore):
   scheda 287px su 390 con margini 44/59 contro il tasto in basso a 32/32 ·
   il valore lungo tagliato a destra · il titolo mozzato in alto su tablet. */

/* Un filo solo: la scheda del luogo sta sugli stessi 32px del tasto in basso.
   Il valore e' misurato (42,39 letti - 32 voluti = 10,39), non stimato. */
body.vds-shell.pagina-fase2-archify #visita-area .elenco-fase1 {
  margin-left: -10.4px;
  margin-right: -10.4px;
}

/* Sugli schermi larghi il tasto in basso ha la sua colonna: la scheda la segue,
   altrimenti sul computer era larga 864 contro 360 del tasto. */
@media (min-width: 900px) {
  body.vds-shell.pagina-fase2-archify #visita-area .elenco-fase1 {
    max-width: var(--veste-colonna, 390px);
    margin-left: auto;
    margin-right: auto;
  }
}

/* Il nome del committente e' testo libero e lungo: prende tutta la riga, come
   fa iOS quando il valore non sta accanto all'etichetta. Sul telefono di
   «Rossi Mario Giuseppe» si leggeva solo «Giuseppe». */
body.pagina-diagnosi #visita-area .campo-riga:has(#cliente-nome) {
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
}

body.pagina-diagnosi #visita-area .campo-riga:has(#cliente-nome) .campo-etichetta {
  font-size: 15px;
  color: rgba(60, 60, 67, 0.6);
  white-space: normal;
}

body.pagina-diagnosi #visita-area #cliente-nome {
  text-align: left;
  width: 100%;
}

/* I filetti rientrano uguali da tutte e due le parti: erano a filo a destra. */
body.pagina-fase2-archify #visita-area .sep-fase1 {
  margin-left: 20px;
  margin-right: 20px;
}

/* La barra dei passi non e' piu' trasparente: la scheda ci passava sotto e si
   leggevano le lettere mezze coperte. */
body.vds-shell.pagina-fase2-archify .fase2-guscio-testa {
  background: var(--veste-fondo, #f2f2f7);
}

/* Il valore non si taglia: va a capo invece di sparire a destra. */
body.pagina-diagnosi #visita-area .campo-riga input,
body.pagina-diagnosi #visita-area .campo-riga select {
  text-overflow: ellipsis;
  min-width: 0;
}

/* Il titolo non si mozza in alto su nessuno schermo. */
body.vds-shell.pagina-fase2-archify.pagina-diagnosi h1,
body.vds-shell.pagina-fase2-archify.pagina-diagnosi .fase1-titolo {
  line-height: 1.2;
  padding-top: 2px;
  overflow: visible;
}

/* ══════════════════════════════════════════════════════════════════════
   NODO 1 · UN SOLO FILO (Code, 13/10/2026)
   Tre misure di fila hanno trovato la stessa cosa detta in tre modi: pannello
   del tasto a 12, tasto a 32, scheda a 44 — una scalinata di bianchi che si
   vede anche senza righello. La causa non erano i margini della scheda: erano
   TRE CORNICI annidate (riquadro, colonna, sezione) che si mangiavano 124px
   per riga. Qui la cornice diventa UNA: 32px, come il tasto in basso.
   ══════════════════════════════════════════════════════════════════════ */
body.vds-shell.pagina-fase2-archify main {
  /* Centrata, come l'intestazione e il piede. Nella prima stesura avevo messo
     margini a zero e la pagina si e' schiacciata a sinistra, con mezzo schermo
     vuoto a destra su tablet e computer (misurato: 274px e 520px). */
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  /* La fessura di 21,6px fra intestazione e barra dei passi, dove si vedevano
     le lettere tagliate a meta' mentre si scorre. */
  padding-top: 0;
}

body.vds-shell.pagina-fase2-archify .fase1-archify {
  padding-left: 32px;
  padding-right: 32px;
}

body.vds-shell.pagina-fase2-archify #visita-area .elenco-fase1 {
  margin-left: 0;
  margin-right: 0;
}

/* Il tasto della posizione rientra come tutto il resto, invece di toccare i
   bordi della scheda: letto a occhio sembrava una fascia grigia incollata. */
body.pagina-diagnosi #visita-area .fase2-luogo-gps {
  padding-left: 16px;
  padding-right: 16px;
}

/* La barra dei passi e' dello STESSO VETRO del cassetto in basso (domanda di
   Ro, 13/10: «non dovrebbe essere di tipo liquido?» — si'). Prima era opaca
   piatta: toglieva le lettere trasparenti, ma col materiale sbagliato. */
body.vds-shell.pagina-fase2-archify .fase2-guscio-testa {
  top: 0;
  z-index: 40;
  background: rgba(242, 242, 247, 0.82);
  backdrop-filter: blur(18px) saturate(1.6);
  -webkit-backdrop-filter: blur(18px) saturate(1.6);
  box-shadow: 0 0.5px 0 rgba(60, 60, 67, 0.18);
}

/* Il contenuto e il tasto in basso hanno la STESSA colonna, a ogni larghezza:
   e' questo che fa il filo unico, non i margini della scheda. */
body.vds-shell.pagina-fase2-archify .fase1-archify,
body.vds-shell.pagina-fase2-archify .cornice-piede {
  max-width: var(--veste-colonna, 390px);
  margin-left: auto;
  margin-right: auto;
}

/* Il piede resta di vetro anche sullo schermo grande: la maniglia c'era ma il
   cassetto sotto era sparito. */
@media (min-width: 1024px) {
  body.vds-shell.pagina-fase2-archify .cornice-piede.apple-bottom-sheet {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(18px) saturate(1.6);
    -webkit-backdrop-filter: blur(18px) saturate(1.6);
  }
}

/* ── Tre difetti veri, misurati il 13/10 (quarta misura) ──────────────────
   Il «filo unico» inseguito nei giri precedenti NON e' una regola Apple: su
   iPhone la scheda ha i suoi margini e la barra in basso va da bordo a bordo.
   Qui restano solo i tre difetti veri. */

/* 1 · La frase d'aiuto rientra come le righe (partiva a filo del bordo
   arrotondato, 16px piu' fuori di «Citta'», «Regione», «Paese»). */
body.pagina-diagnosi #visita-area .muto {
  padding-left: 16px;
  padding-right: 16px;
}

/* 2 · Il piede resta di vetro anche sul computer. Due regole si scontravano
   sopra i 1024px e vinceva quella che lo spegne (5 classi contro 4): qui la
   specificita' e' piu' alta, cosi' il cassetto non sparisce. */
@media (min-width: 1024px) {
  body.vds-shell.guscio-bus.pagina-fase2-archify
    .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(18px) saturate(1.6);
    -webkit-backdrop-filter: blur(18px) saturate(1.6);
    border-top: 0.5px solid rgba(60, 60, 67, 0.18);
  }
}

/* 3 · Sul computer il tasto nasceva 186px sotto la piega: resta attaccato in
   basso come sul telefono, sempre a vista. */
@media (min-width: 1024px) {
  body.vds-shell.pagina-fase2-archify .cornice-piede.apple-bottom-sheet {
    position: sticky;
    bottom: 0;
    z-index: 35;
  }
}

/* ══════════════════════════════════════════════════════════════════════
   IL CASSETTO IN BASSO E' DAVVERO DI VETRO (Code, 13/10/2026)
   Ro, guardando lo schermo: «sotto il tasto Verifica VDS non e' un liquid
   bottom». Aveva ragione, e il difetto era su TUTTE le schermate: il piede
   stava in fila SOTTO il contenuto (`position: relative !important`, riga
   6513), quindi non aveva niente da sfocare. Il blur sfocava il fondo piatto
   e il risultato era una lastra bianca, rgb(254,254,255) misurato.
   Le mie misure precedenti leggevano i valori DICHIARATI e dicevano verde:
   smoke test cieco, errore mio.
   Qui il piede galleggia sopra il contenuto, che gli scorre sotto sfumato.
   Perimetro: le schermate della fase 2.
   ══════════════════════════════════════════════════════════════════════ */
body.vds-shell.pagina-fase2-archify > .cornice-piede.apple-bottom-sheet {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 35;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--veste-colonna, 390px);
}

/* Il contenuto finisce sopra il cassetto, non sotto: respiro pari all'altezza
   del piede piu' il bordo sicuro del telefono. */
body.vds-shell.pagina-fase2-archify .fase1-archify {
  padding-bottom: calc(132px + env(safe-area-inset-bottom, 0px));
}

/* Il vetro si vede solo se e' VETRO. Misura sul pixel (13/10): col velo al
   90% il testo che passa sotto cambia i pixel di 2-5 livelli su 255, l'1-2%:
   invisibile. Il backdrop-filter funziona e il contenuto passa davvero sotto —
   e' il velo troppo coprente a cancellarlo. Resa misurata su questo fondo:
   90% -> 1,9% · 72% -> 5,4% · 60% -> 7,7%. */
body.vds-shell.pagina-fase2-archify > .cornice-piede.apple-bottom-sheet,
body.vds-shell.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  background: rgba(255, 255, 255, 0.62) !important;
  backdrop-filter: blur(22px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.8) !important;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.10);
}

/* La fascia in basso scende da 98 a 72 punti: e' l'altezza di una barra iOS
   con una sola azione. Si guadagna uno sguardo di contenuto e smette di
   sembrare una lastra. Decisione di Ro, 13/10, su proposta di Code. */
body.vds-shell.pagina-fase2-archify > .cornice-piede.apple-bottom-sheet,
body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione),
body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet:has(#piede-foto-censimento) {
  padding-top: 6px !important;
  padding-right: 20px !important;
  padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  padding-left: 20px !important;
  min-height: 0 !important;
}

body.vds-shell.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet .btn-primary-dynamic,
body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet .ux-piede-azione .btn-primary-dynamic {
  min-height: 48px !important;
  height: 48px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
}

body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet .ux-piede-azione {
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
}

body.vds-shell.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet .apple-bottom-sheet-handle {
  margin-top: 2px;
  margin-bottom: 6px;
}

/* Il respiro del contenuto segue la fascia piu' bassa. */
body.vds-shell.pagina-fase2-archify .fase1-archify {
  padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px));
}

/* ── La fascia cala davvero (Code, 13/10, dopo la misura) ─────────────────
   Nel browser di prova la fascia misurava 78 punti; sul telefono di Ro e'
   piu' alta, perche' iOS aggiunge la striscia della barra di casa. Le mie
   riparazioni precedenti ne avevano tolti due: per questo gli sembrava
   uguale, lo era.
   Due cose, misurate: la maniglia col suo spazio, e i punti che sommavo
   SOPRA la striscia invece di sovrapporli. */

/* 1 · Via la maniglia: questa e' una barra d'azione, non un cassetto che si
   trascina. Finche' c'e', promette un gesto che non esiste. */
body.vds-shell.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet .apple-bottom-sheet-handle {
  display: none !important;
}

/* 2 · Lo spazio in fondo SI SOVRAPPONE alla striscia dell'iPhone invece di
   sommarsi: sotto c'e' gia' il bordo sicuro, non serve aggiungerne altro. */
body.vds-shell.pagina-fase2-archify > .cornice-piede.apple-bottom-sheet,
body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  padding-top: 8px !important;
  padding-bottom: max(10px, env(safe-area-inset-bottom, 0px)) !important;
}

body.vds-shell.pagina-fase2-archify .fase1-archify {
  padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px));
}

/* ══════════════════════════════════════════════════════════════════════
   VIA LA CORNICE: resta il tasto (Ro, 13/10)
   Parole sue: «i tasti sono gia' abbastanza grandi, se si potesse togliere
   la cornice sarebbe piu' elegante». E' giusto: su fondo grigio chiaro una
   fascia bianca si legge come una lastra, per quanto la si assottigli, e il
   tasto non ha bisogno di una cornice per farsi vedere.
   Resta una sfumatura che spegne il testo mentre gli passa dietro, cosi'
   niente si confonde.
   ══════════════════════════════════════════════════════════════════════ */
body.vds-shell.pagina-fase2-archify > .cornice-piede.apple-bottom-sheet,
body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  /* 14/10/2026 · il velo e' UNO E PIATTO, non una sfumatura: cosi'
     `backgroundColor` e' un colore vero e si puo' misurare, e il vetro si legge
     uguale su tutta la fascia. La sfumatura del bordo alto la fa la maschera
     qui sotto, che sfuma anche la sfocatura: una cosa sola invece di due che si
     contraddicono.
     IL VELO E' CALIBRATO SULLA MISURA, non a occhio. Contrasto del tasto verde
     contro cio' che gli passa accanto, 48 posizioni di scorrimento sopra le
     fotografie di fogliame di AMB-09, peggiore di tutte:
         velo 0,70 -> 4,37 a 1  (SOTTO il minimo di 4,5)
         velo 0,78 -> 4,80 a 1
         velo 0,82 -> 5,05 a 1
         velo 0,86 -> 5,33 a 1
     Si tiene 0,86 e non 0,82 per una ragione che la pagina di prova non mostra:
     su una fotografia SCURA (fogliame in ombra, sera) il conto dice 4,35 a 1
     con 0,82 e 4,80 a 1 con 0,86. Il fondo piu' nero possibile e' il caso
     peggiore, e il tasto deve reggere anche li'.
     Il vetro a 0,86 si vede ancora: la fascia cambia colore in 14 tinte diverse
     su 48 posizioni, e il dettaglio che passa (0,26) e' dieci volte piu' basso
     di quanto il solo velo spiegherebbe (2,62) — quella e' sfocatura vera. */
  background: rgba(255, 255, 255, 0.86) !important;
  backdrop-filter: blur(18px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.6) !important;
  border-top: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding-top: 20px !important;
  padding-bottom: max(12px, env(safe-area-inset-bottom, 0px)) !important;
}

/* ── I due difetti della fascia senza cornice (Code, 13/10) ───────────────
   1) Sulla scheda della pianta il tasto verde spariva dentro le fotografie
      del fogliame: stesso verde, contrasto fino a 1,00:1 in 156 posizioni
      di scorrimento su 396.
   2) La sfumatura non sfumava: la sfocatura si accendeva di colpo e tagliava
      il testo in una riga di pixel (-98% di dettaglio fra y 763 e 764).
   Scritto con le quattro correzioni di viridis-ui-witness: l'alone non deve
   cancellare l'ombra verde del tasto · la sfocatura va spenta con la stessa
   forza · la sfumatura deve essere piena PRIMA del bordo alto del tasto ·
   il respiro del contenuto deve sovrapporre il bordo sicuro come fa la
   fascia, non sommarlo.
   ────────────────────────────────────────────────────────────────────────── */

/* 1 · Alone chiaro, SENZA perdere il lume interno e l'ombra verde del tasto. */
body.vds-shell.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet .btn-primary-dynamic {
  box-shadow:
    0 0 0 3px rgba(242, 242, 247, 0.95),
    0 1px 0 rgba(255, 255, 255, 0.18) inset,
    0 8px 20px rgba(45, 74, 52, 0.28) !important;
}

/* 2 · IL BORDO ALTO NON TAGLIA PIU', E IL VETRO RESTA ACCESO (14/10/2026)
   ──────────────────────────────────────────────────────────────────────────
   Qui, il 13/10, c'era `backdrop-filter: none` piu' una sfumatura opaca: la
   cura giusta per un difetto vero (la sfocatura si accendeva di colpo e
   tagliava il testo in una riga di pixel, -98% di dettaglio fra y 763 e 764),
   ma spegneva il vetro di tutta la fascia. Ro, il 14/10: «dobbiamo mantenere
   lo standard» — non si sceglie fra il vetro e la leggibilita'.
   La cura nuova fa le due cose con un meccanismo solo: una MASCHERA che sfuma
   i primi 12 punti della fascia. La maschera agisce sull'elemento intero,
   quindi sfuma insieme il velo E la sfocatura: dove prima c'era uno scalino
   ora c'e' una salita. Il tasto comincia a 20 punti dal bordo alto, fuori
   dalla maschera: non viene toccato.
   Il `backdrop-filter` resta dichiarato sull'elemento, com'e' scritto nello
   standard (`.cursor/rules/bottoni-liquidi.mdc`). */
body.vds-shell.pagina-fase2-archify > .cornice-piede.apple-bottom-sheet,
body.vds-shell.guscio-bus.pagina-fase2-archify
  > .cornice-piede.apple-bottom-sheet:has(.ux-piede-azione) {
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0px,
    rgb(0, 0, 0) 12px,
    rgb(0, 0, 0) 100%
  );
  mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0px,
    rgb(0, 0, 0) 12px,
    rgb(0, 0, 0) 100%
  );
}

/* 3 · Il respiro sovrappone il bordo sicuro come la fascia (max, non somma):
   altezza fascia 32 + 48 + 12 = 92, respiro 100. */
body.vds-shell.pagina-fase2-archify .fase1-archify {
  padding-bottom: calc(100px + max(0px, env(safe-area-inset-bottom, 0px)));
}

/* Quello che l'operatore ha gia' si vede appena arriva: la galleria non e' piu
   un cassetto chiuso. Regola di Ro 13/10. */
body.pagina-fase2-archify .fase2-galleria-aperta {
  margin: 16px 0 8px;
}

body.pagina-fase2-archify .fase2-galleria-titolo {
  margin: 0 0 8px;
  padding: 0 4px;
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
  color: #000;
}

/* ── La lista dei suggerimenti non finisce piu' sotto il tasto (13/10) ────
   Misurato: su Regione la lista cadeva a 768-851 su uno schermo di 844, e il
   tasto in basso copre da 752: toccando «Lazio» si premeva «Avanti». Nato da
   una mia riparazione (la lista resa flottante per non spingere fuori
   l'etichetta): la rimetto sopra a tutto e le do le misure del dito. */
body.pagina-diagnosi #visita-area .campo-riga .suggerimenti {
  z-index: 60 !important;
  max-height: 46vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border: 0 !important;
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
  padding: 4px 0;
}

body.pagina-diagnosi #visita-area .campo-riga .suggerimenti li {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 16px;
  font-size: 17px;
  border: 0;
  border-bottom: 0.5px solid rgba(60, 60, 67, 0.18);
}

body.pagina-diagnosi #visita-area .campo-riga .suggerimenti li:last-child {
  border-bottom: 0;
}
