:root {
  --nero: #151210; --carta: #f6f1ea; --bianco: #fffdf9; --linea: #ddd3c6; --grigio: #6f665c;
  --ok: #1f7a4d; --ok-sfondo: #e3f3ea; --attenzione: #9a6a00; --attenzione-sfondo: #fbf0d3;
  --errore: #a3261c; --errore-sfondo: #fbe4e1;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--carta); color: var(--nero); font: 18px/1.4 -apple-system, "Helvetica Neue", Arial, sans-serif; }
main { max-width: 760px; margin: 0 auto; padding: 16px 16px 48px; }
h1 { font: 600 22px/1.2 Georgia, "Times New Roman", serif; letter-spacing: .04em; margin: 4px 0 14px; }
h2 { font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--grigio); margin: 22px 0 8px; }
.barra { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.barra small { color: var(--grigio); }
.schede { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 14px; }
.schede button { padding: 14px 4px; border: 1px solid var(--linea); border-radius: 12px; background: var(--bianco); font-size: 16px; font-weight: 600; color: var(--nero); }
.schede button[aria-pressed="true"] { background: var(--nero); color: var(--bianco); border-color: var(--nero); }
button, input, select { font: inherit; }
button.primario, button.secondario { min-height: 56px; padding: 0 22px; border-radius: 12px; border: 1px solid var(--nero); font-weight: 600; font-size: 18px; }
button.primario { background: var(--nero); color: var(--bianco); }
button.secondario { background: var(--bianco); color: var(--nero); }
button.piccolo { min-height: 44px; font-size: 16px; padding: 0 14px; }
button:disabled { opacity: .5; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #2a6fdb; outline-offset: 2px; }
.campo { display: block; margin-bottom: 12px; }
.campo span { display: block; font-size: 14px; color: var(--grigio); margin-bottom: 4px; }
input, select { width: 100%; min-height: 52px; padding: 0 14px; border: 1px solid var(--linea); border-radius: 10px; background: var(--bianco); color: var(--nero); }
.riga { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.azioni { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.camera { position: relative; background: #000; border-radius: 16px; overflow: hidden; aspect-ratio: 4 / 3; max-height: 46vh; width: 100%; margin: 0 auto 12px; }
.camera video { width: 100%; height: 100%; object-fit: cover; display: block; }
.camera .mirino { position: absolute; inset: 18% 24%; border: 3px solid rgba(255,255,255,.85); border-radius: 18px; pointer-events: none; }
.camera p { position: absolute; left: 0; right: 0; bottom: 8px; margin: 0; text-align: center; color: #fff; font-size: 15px; text-shadow: 0 1px 4px #000; }
.esito { border-radius: 16px; padding: 18px; margin: 12px 0; border: 2px solid; }
.esito.ok { background: var(--ok-sfondo); border-color: var(--ok); }
.esito.attenzione { background: var(--attenzione-sfondo); border-color: var(--attenzione); }
.esito.errore { background: var(--errore-sfondo); border-color: var(--errore); }
.esito .titolo { font: 600 26px/1.15 Georgia, serif; margin: 0 0 4px; }
.esito .dettaglio { margin: 0; color: #3d3730; }
.scheda { background: var(--bianco); border: 1px solid var(--linea); border-radius: 16px; padding: 16px; margin: 12px 0; }
.scheda .nome { font: 600 24px/1.2 Georgia, serif; margin: 0 0 2px; }
.scheda .meta { margin: 0 0 6px; color: var(--grigio); font-size: 16px; }
.lista { list-style: none; margin: 0; padding: 0; }
.lista li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid var(--linea); }
.lista li:first-child { border-top: 0; }
.lista button { text-align: left; background: none; border: 0; padding: 0; color: inherit; width: 100%; }
.numeri { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.numero { background: var(--bianco); border: 1px solid var(--linea); border-radius: 14px; padding: 14px; }
.numero b { display: block; font: 600 30px/1.1 Georgia, serif; }
.numero span { color: var(--grigio); font-size: 15px; }
.nota { color: var(--grigio); font-size: 15px; }
.messaggio-errore { color: var(--errore); margin: 8px 0; font-weight: 600; }
.stepper { display: flex; align-items: center; gap: 12px; }
.stepper button { width: 56px; min-height: 56px; border-radius: 12px; border: 1px solid var(--nero); background: var(--bianco); font-size: 28px; }
.stepper output { min-width: 40px; text-align: center; font-size: 28px; font-weight: 600; }
a.testo { color: inherit; }

.consenso { display: flex; gap: 12px; align-items: flex-start; background: var(--bianco); border: 1px solid var(--linea); border-radius: 12px; padding: 14px; margin: 4px 0 14px; font-size: 16px; }
.casella { width: 28px; min-height: 28px; height: 28px; flex: none; accent-color: var(--nero); }
