/* app.css — la web app di pre-registrazione (design "Prereg" del Back Office).
   Il tema del cliente arriva in variabili CSS (app.js, applyTheme): colore primario,
   font, angoli, pulsanti pieni o a bordo. Senza tema: i valori Livesignage qui sotto. */
:root{
  --c:#E2007E; --c-dark:#B0075E; --c-soft:#FCEBF4; --c-on:#fff;
  --font-title:'Poppins'; --font-body:'Poppins';
  --r:12px; --r-card:20px; --r-pill:12px;
  --bg:#EDF2F3; --text:#161717; --muted:#667179; --faint:#8A979C; --line:#E3EAEC; --line-2:#F0F3F4; --ok:#1D8A5A; --err:#C23030;
}
*{box-sizing:border-box;}
body{margin:0;background-color:var(--bg);background-image:var(--bg-image, none);background-size:cover;background-position:center;background-attachment:fixed;font-family:var(--font-body),system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;color:var(--text);}
a{color:var(--c);text-decoration:none;}
input,select,button,textarea{font-family:inherit;}
input:focus-visible,select:focus-visible,button:focus-visible,textarea:focus-visible{outline:2px solid var(--c);outline-offset:2px;}
h1,h2,h3,.org{font-family:var(--font-title),var(--font-body),system-ui,sans-serif;}
.page{min-height:100vh;display:flex;flex-direction:column;}
.top{background:#fff;border-bottom:1px solid var(--line);flex:none;}
.top .in{max-width:1100px;margin:0 auto;padding:14px clamp(16px,3vw,32px);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;min-width:0;}
.blogo{height:42px;max-width:160px;object-fit:contain;flex:none;}
.bmark{width:42px;height:42px;border-radius:var(--r);background:var(--c);color:var(--c-on);display:inline-flex;align-items:center;justify-content:center;flex:none;font-weight:700;font-size:18px;}
.org{font-size:17px;font-weight:700;letter-spacing:-.2px;}
.sr{font-size:12px;color:var(--muted);}
.langs{display:flex;gap:6px;}
.langs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;}
/* con tante lingue: un menu */
.langsel{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 30px 6px 12px;font-size:13px;font-weight:600;color:var(--muted);appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23667179' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;max-width:180px;}
.langs button.on{background:var(--c);border-color:var(--c);color:var(--c-on);}
.wrap{flex:1 1 auto;max-width:1100px;width:100%;margin:0 auto;padding:clamp(18px,3vw,34px) clamp(16px,3vw,32px) 52px;}
h1.ttl{margin:0 0 5px;font-size:clamp(22px,3vw,29px);font-weight:700;letter-spacing:-.5px;}
.lead{margin:0 0 22px;font-size:15px;color:var(--muted);max-width:660px;line-height:1.55;}
.cols{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;}
.colmain{flex:1 1 560px;min-width:0;}
.aside{flex:1 1 300px;min-width:0;max-width:360px;}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:0 1px 2px rgba(20,23,23,.04);}
/* passi */
.steps{display:flex;align-items:center;padding:20px clamp(18px,3vw,26px);border-bottom:1px solid var(--line-2);}
.step{display:flex;align-items:center;gap:10px;flex:0 0 auto;background:none;border:none;padding:0;cursor:default;}
.step.back{cursor:pointer;}
.sdot{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:#F2F5F6;color:var(--faint);flex:none;border:2px solid transparent;}
.sdot.cur{background:var(--c-soft);color:var(--c-dark);border-color:var(--c);}
.sdot.done{background:var(--c);color:var(--c-on);border-color:var(--c);}
.slab{font-size:13px;font-weight:600;color:var(--faint);white-space:nowrap;}
.slab.cur{color:var(--text);}
.sline{flex:1 1 auto;height:2px;background:#EDF1F2;margin:0 10px;min-width:10px;}
.smini{display:none;padding:18px clamp(18px,3vw,24px) 2px;}
.smini .bar{height:7px;background:#EDF1F2;border-radius:5px;overflow:hidden;}
.smini .bar i{display:block;height:100%;background:var(--c);border-radius:5px;transition:width .2s;}
.smini .t{font-size:13px;font-weight:600;margin-top:9px;}
/* modulo */
.body{padding:clamp(20px,3vw,28px);}
.sec-h{font-size:18px;font-weight:700;margin:0 0 3px;letter-spacing:-.2px;}
.sec-s{font-size:13px;color:var(--muted);margin:0 0 20px;line-height:1.5;}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:15px 16px;}
.f{display:flex;flex-direction:column;gap:7px;min-width:0;}
.f.full{grid-column:1 / -1;}
.lab{font-size:13px;font-weight:600;color:#39464B;}
.lab .req{color:var(--c);}
.inp{min-height:46px;border:1px solid #CBD5D8;border-radius:var(--r);padding:0 14px;font-size:16px;background:#fff;color:var(--text);width:100%;}
textarea.inp{padding:12px 14px;min-height:96px;resize:vertical;}
.inp::placeholder{color:#AEB9BD;}
/* data: su iPhone Safari disegna il campo a modo suo (larghezza propria, testo
   centrato, altezza che cambia quando c'e' un valore): lo si riporta come gli altri */
input[type=date].inp{-webkit-appearance:none;appearance:none;display:flex;align-items:center;min-width:0;max-width:100%;height:46px;line-height:44px;text-align:left;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23667179' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M3 9h18M8 2v4M16 2v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;}
input[type=date].inp::-webkit-date-and-time-value{text-align:left;margin:0;min-height:1.2em;}
input[type=date].inp::-webkit-datetime-edit{padding:0;}
input[type=date].inp::-webkit-calendar-picker-indicator{position:absolute;right:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer;}
input[type=date].inp{position:relative;}
select.inp{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23667179' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;cursor:pointer;}
.f.bad .inp{border-color:var(--err);}
.ferr{font-size:12px;color:var(--err);}
.hint{font-size:12px;color:var(--faint);}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chips label{display:inline-flex;align-items:center;gap:7px;border:1px solid #CBD5D8;border-radius:999px;padding:8px 13px;font-size:14px;cursor:pointer;}
.chips input{accent-color:var(--c);}
/* consensi */
.cons{display:flex;gap:13px;align-items:flex-start;padding:15px 16px;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;cursor:pointer;}
.cons.bad{border-color:var(--err);}
.cons input{margin:2px 0 0;width:19px;height:19px;flex:none;accent-color:var(--c);cursor:pointer;}
.cons .tx{font-size:13.5px;color:#39464B;line-height:1.55;}
.cons .tx b{font-weight:600;color:var(--text);}
.cons .tx .opt{color:var(--faint);font-weight:500;}
.doc{max-height:160px;overflow:auto;font-size:12.5px;color:#39464B;line-height:1.55;background:#F7FAFB;border:1px solid #E7EDEE;border-radius:12px;padding:12px 14px;margin:0 0 10px;white-space:pre-line;}
/* firma */
.signwrap{margin-top:6px;}
.signbox{position:relative;border:2px dashed #CBD5D8;border-radius:14px;height:170px;background:#FBFCFD;touch-action:none;}
.signbox.ok{border-style:solid;border-color:var(--ok);background:#fff;}
.signbox.bad{border-color:var(--err);}
.signbox canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;}
.signbox .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:14px;pointer-events:none;}
.signbar{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12.5px;color:var(--muted);}
.linkbtn{background:none;border:none;color:var(--c);font-weight:600;cursor:pointer;padding:4px;font-size:13px;}
/* pulsanti */
.foot{display:flex;align-items:center;gap:12px;padding:4px clamp(20px,3vw,28px) clamp(20px,3vw,28px);flex-wrap:wrap;}
.btn{min-height:48px;padding:0 24px;border-radius:var(--r-pill);font-size:15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1.5px solid transparent;white-space:nowrap;}
.btn.p{background:var(--c);color:var(--c-on);}
.btn.p:hover{background:var(--c-dark);}
.outline .btn.p{background:#fff;color:var(--c);border-color:var(--c);}
.outline .btn.p:hover{background:var(--c-soft);}
.btn.g{background:#fff;border-color:#CBD5D8;color:#39464B;}
.btn.g:hover{background:#F7FAFB;}
.btn[disabled]{opacity:.45;cursor:default;}
.sp{flex:1 1 auto;}
.formerr{margin:0 clamp(20px,3vw,28px) 14px;padding:12px 14px;border-radius:12px;background:#FDECEC;color:var(--err);font-size:13.5px;}
/* informazioni */
.info{padding:22px 22px 10px;}
.info h3{margin:0 0 4px;font-size:15px;font-weight:700;}
.info .sub{margin:0 0 16px;font-size:12.5px;color:var(--faint);}
.ln{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line-2);}
.ln .ic{width:34px;height:34px;border-radius:10px;background:var(--c-soft);color:var(--c-dark);display:inline-flex;align-items:center;justify-content:center;flex:none;}
.ln .k{font-size:12px;color:var(--faint);}
.ln .v{font-size:13.5px;font-weight:600;line-height:1.4;}
/* conferma */
.ok-wrap{padding:clamp(22px,3vw,30px);text-align:center;}
.ok-ic{width:70px;height:70px;border-radius:50%;background:#E4F5EC;color:var(--ok);display:inline-flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.ok-t{font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0 0 4px;}
.ok-s{font-size:14px;color:var(--muted);margin:0 auto 22px;max-width:440px;line-height:1.55;}
.pass{display:inline-flex;flex-direction:column;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 26px;box-shadow:0 1px 2px rgba(20,23,23,.04);}
.qr{width:168px;height:168px;}
.qr img,.qr svg{width:100%;height:100%;display:block;}
.code-k{font-size:12px;color:var(--faint);margin-bottom:2px;}
.code{font-size:26px;font-weight:700;letter-spacing:3px;}
.rsum{text-align:left;margin:22px auto 0;max-width:420px;border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.rsum .r{display:flex;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line-2);font-size:13.5px;}
.rsum .r:last-child{border-bottom:none;}
.rsum .r .k{color:var(--muted);}
.rsum .r .v{font-weight:600;text-align:right;}
.cfoot{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px;}
.note{display:flex;gap:10px;align-items:flex-start;background:#F7FAFB;border:1px solid #E7EDEE;border-radius:13px;padding:13px 15px;margin-top:20px;text-align:left;}
.note p{margin:0;font-size:12.5px;color:#39464B;line-height:1.55;}
/* stati */
.center{max-width:520px;margin:60px auto;text-align:center;padding:0 20px;}
.center h1{font-size:22px;margin:0 0 8px;}
.center p{color:var(--muted);line-height:1.55;}
.spin{width:34px;height:34px;border:3px solid #E3EAEC;border-top-color:var(--c);border-radius:50%;animation:sp 1s linear infinite;margin:80px auto;}
@keyframes sp{to{transform:rotate(360deg);}}
@media(max-width:680px){
  body{background-attachment:scroll;} /* iOS non gestisce fixed */
  .steps{display:none;}
  .smini{display:block;}
  .foot .btn{flex:1 1 auto;}
  .aside{max-width:none;}
}
/* sfondo scuro (colore scuro o immagine del layout): i testi della pagina in chiaro */
.dark-bg h1.ttl{color:#fff;}
.dark-bg .lead{color:rgba(255,255,255,.82);}
