/* EvoVolt: pagine interne del sito che non vengono dal sito statico (prova, attiva, esito) e testi legali.
   Si appoggia a sito.css (variabili, .contenitore, .pulsante). Niente stili in linea: la CSP del sito li blocca. */
.ev-interno{max-width:1100px;margin:0 auto;padding:40px 22px 70px}
.ev-interno.stretto{max-width:820px}
.ev-interno h1{font-size:40px;line-height:1.1;letter-spacing:-.02em;margin:0 0 10px}
.ev-interno .sotto{font-size:17px;color:var(--secondario);margin:0 0 28px}
.ev-occhiello{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--blu, #1d4ed8);margin-bottom:10px}
.ev-avviso{background:#fff;border:1px solid var(--linea);border-left:5px solid var(--lime);border-radius:14px;padding:14px 18px;margin:0 0 22px;font-size:15px}
.ev-avviso.ok{border-left-color:var(--blu, #1d4ed8)}
.ev-avviso.errore{border-left-color:#c2410c}
.ev-errore{display:block;color:#b42318;font-size:13.5px;margin-top:4px}
.ev-errore a{color:inherit;text-decoration:underline;font-weight:700}
.ev-due{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:start}
@media(max-width:860px){.ev-due{grid-template-columns:1fr;gap:24px}.ev-interno h1{font-size:32px}}
.ev-scheda{background:#fff;border:1px solid var(--linea);border-radius:22px;padding:26px;box-shadow:0 2px 5px #16254a05,0 20px 45px #16254a0d}
.ev-scheda h2{font-size:22px;margin:0 0 14px}
.ev-lista{list-style:none;padding:0;margin:0}
.ev-lista li{padding:10px 0 10px 30px;border-bottom:1px solid var(--linea);position:relative;font-size:15px}
.ev-lista li:last-child{border-bottom:0}
.ev-lista li:before{content:"";position:absolute;left:2px;top:15px;width:16px;height:16px;border-radius:50%;background:var(--lime)}
.ev-lista li:after{content:"";position:absolute;left:7px;top:19px;width:6px;height:4px;border-left:2px solid var(--scuro);border-bottom:2px solid var(--scuro);transform:rotate(-45deg)}
.ev-modulo label{display:block;font-size:13.5px;font-weight:700;margin:14px 0 6px}
.ev-modulo label small{font-weight:400;color:var(--secondario)}
.ev-modulo input[type=text],.ev-modulo input[type=email],.ev-modulo input[type=tel],.ev-modulo input[type=password],.ev-modulo input[type=number],.ev-modulo textarea,.ev-modulo select{width:100%;font:inherit;font-size:15px;padding:12px 16px;border:1.5px solid var(--linea);border-radius:14px;background:#fff;color:var(--inchiostro)}
.ev-modulo input:focus,.ev-modulo textarea:focus{outline:2px solid var(--blu, #1d4ed8);outline-offset:1px;border-color:var(--blu, #1d4ed8)}
.ev-modulo .griglia{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:560px){.ev-modulo .griglia{grid-template-columns:1fr}}
.ev-modulo .suffisso{display:flex;align-items:center;gap:0}
.ev-modulo .campo-password{display:flex;align-items:stretch;gap:0}
.ev-modulo .campo-password input{flex:1;min-width:0;border-radius:14px 0 0 14px;border-right:0}
.ev-modulo .mostra-password{border:1.5px solid var(--linea);border-radius:0 14px 14px 0;padding:0 16px;min-width:96px;font:inherit;font-size:14px;font-weight:700;color:var(--secondario);background:var(--crema);cursor:pointer}
.ev-modulo .mostra-password:focus-visible{outline:3px solid var(--secondario);outline-offset:2px}
.ev-modulo .suffisso input{border-radius:14px 0 0 14px;border-right:0}
.ev-modulo .suffisso span{border:1.5px solid var(--linea);border-radius:0 14px 14px 0;padding:12px 14px;font-size:14px;color:var(--secondario);background:var(--crema);white-space:nowrap}
.ev-modulo .spunta{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;margin:10px 0}
.ev-modulo .spunta input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--blu, #1d4ed8)}
.ev-modulo .trappola{position:absolute;left:-9999px;top:-9999px;height:0;overflow:hidden}
.ev-modulo .pulsante{width:100%;justify-content:center;margin-top:18px;font-size:16px}
.ev-modulo .nota{font-size:13px;color:var(--secondario);margin-top:12px;text-align:center}
.ev-piani{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0 18px}
@media(max-width:700px){.ev-piani{grid-template-columns:1fr}}
.ev-piano{position:relative;display:block;border:2px solid var(--linea);border-radius:20px;padding:18px 16px;background:#fff;cursor:pointer}
.ev-piani .ev-piano input[type=radio]{position:absolute!important;opacity:0!important;pointer-events:none;width:1px!important;height:1px!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;left:0;top:0}
.ev-gateway label input[type=radio]{width:18px!important;height:18px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;flex:none}
.ev-piano:has(input:checked){border-color:var(--scuro);box-shadow:0 10px 30px #16254a22}
.ev-piano .ev-nome{font-weight:800;font-size:15px;display:block;margin-bottom:6px}
.ev-piano .ev-prezzo{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1}
.ev-piano .ev-prezzo small{font-size:14px;font-weight:600;color:var(--secondario);letter-spacing:0}
.ev-piano .ev-nota{display:block;font-size:12.5px;color:var(--secondario);margin-top:6px}
.ev-piano .ev-badge{position:absolute;top:-11px;right:14px;background:var(--lime);color:var(--scuro);font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;letter-spacing:.06em;text-transform:uppercase}
.ev-gateway{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 10px}
@media(max-width:700px){.ev-gateway{grid-template-columns:1fr}}
.ev-gateway label{display:flex;gap:10px;align-items:center;border:2px solid var(--linea);border-radius:16px;padding:14px;font-weight:700;font-size:14.5px;cursor:pointer;margin:0;background:#fff}
.ev-gateway label:has(input:checked){border-color:var(--scuro)}
.ev-gateway input{width:18px;height:18px;accent-color:var(--blu, #1d4ed8)}
.ev-gateway label.spento{background:#edf1f7;color:#4b5971;cursor:not-allowed}
.ev-riepilogo{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--linea);font-size:15px}
.ev-riepilogo.totale{font-weight:800;font-size:18px;border-bottom:0;padding-top:12px}
.ev-stato{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:800;background:#fff;border:1px solid var(--linea)}
.ev-stato:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--lime)}
.ev-stato.scaduta:before,.ev-stato.cessata:before{background:#c2410c}
.ev-stato.attiva:before{background:var(--blu, #1d4ed8)}
.ev-tabella{width:100%;border-collapse:collapse;font-size:14px;margin-top:10px}
.ev-tabella th{text-align:left;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--secondario);padding:8px 10px;border-bottom:1px solid var(--linea)}
.ev-tabella td{padding:10px;border-bottom:1px solid var(--linea);vertical-align:top}
.ev-bonifico{background:var(--crema);border-radius:16px;padding:18px 20px;margin-top:14px;font-size:15px}
.ev-bonifico b{display:inline-block;min-width:120px}
.ev-bonifico .causale{font-size:22px;font-weight:800;letter-spacing:.04em;color:var(--scuro)}
.ev-legale{max-width:860px;margin:0 auto;padding:40px 22px 80px;font-size:15.5px;line-height:1.7}
.ev-legale h1{font-size:36px;line-height:1.1;letter-spacing:-.02em;margin:0 0 6px}
.ev-legale .aggiornato{color:var(--secondario);font-size:14px;margin-bottom:28px}
.ev-legale h2{font-size:21px;margin:34px 0 10px;padding-top:10px;border-top:1px solid var(--linea)}
.ev-legale h3{font-size:16px;margin:18px 0 6px}
.ev-legale table{width:100%;border-collapse:collapse;font-size:14px;margin:10px 0 16px}
.ev-legale th,.ev-legale td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--linea);vertical-align:top}
.ev-legale th{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--secondario)}
.ev-legale .indice{background:#fff;border:1px solid var(--linea);border-radius:16px;padding:16px 20px;margin:0 0 20px}
.ev-legale .indice ol{margin:0;padding-left:20px;columns:2;column-gap:30px;font-size:14px}
@media(max-width:600px){.ev-legale .indice ol{columns:1}}
.ev-legale .riquadro{background:var(--crema);border-radius:14px;padding:14px 18px;margin:14px 0}
.ev-risposte{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.ev-nota-prev{margin-top:14px;font-size:15px}.ev-nota-prev.piccolo{font-size:13px;color:var(--secondario)}
.ev-testo{font-size:16px;line-height:1.7;margin:6px 0 14px;white-space:pre-line}
.ev-firma-ditta{color:var(--secondario);font-size:13px;margin-top:20px}
.ev-tabella td.numero,.ev-tabella th.numero{text-align:right;white-space:nowrap}
@media print{header,footer,.ev-no-stampa,.salta{display:none!important}body{background:#fff}.ev-scheda{box-shadow:none;border-color:#999}.ev-interno{padding:0}}

/* il logo dell'elettricista in testa a preventivo, rapportino e richiamo (2/11/2026) */
.ev-ditta{display:flex;align-items:center;gap:12px;margin-bottom:6px}.ev-ditta-logo{height:48px;width:auto;max-width:160px;object-fit:contain}.ev-ditta .ev-occhiello{margin-bottom:0}

/* le foto del lavoro nel rapportino (7/11/2026): due per riga sul telefono, tre da computer e in stampa */
.ev-foto-lavoro{margin-top:18px;padding-top:14px;border-top:1px solid var(--linea)}
.ev-foto-lavoro h3{font-size:17px;margin:0 0 4px}
.ev-foto-titolo{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--secondario);margin:12px 0 6px}
.ev-foto-griglia{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media(min-width:560px){.ev-foto-griglia{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ev-foto-griglia a{display:block;border-radius:12px;overflow:hidden;background:var(--crema)}
.ev-foto-griglia img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
@media print{.ev-foto-griglia{grid-template-columns:repeat(3,minmax(0,1fr));break-inside:avoid}.ev-foto-griglia a{border-radius:4px}.ev-foto-lavoro{break-inside:avoid-page}}

/* Le pagine cliente mantengono la palette anche senza variabili del pannello. */
.ev-interno, .ev-legale { --blu: #1d4ed8; --scuro: #16254a; --crema: #f5f7fb; --inchiostro: #16254a; --secondario: #4b5971; --lime: #f5b800; --linea: #dbe1ec; color: var(--inchiostro); overflow-wrap: anywhere; }
.ev-interno *, .ev-legale * { box-sizing: border-box; min-width: 0; }
.ev-interno .piccolo { font-size: 13px; color: var(--secondario); }
.ev-interno .ev-scheda h3 { font-size: 18px; line-height: 1.35; margin: 24px 0 10px; }
.ev-interno a:not(.pulsante) { color: var(--blu); text-decoration: underline; text-underline-offset: 3px; }
.ev-interno .pulsante { background: var(--blu); border-color: var(--blu); color: #fff; cursor: pointer; white-space: normal; font: inherit; font-weight: 800; }
.ev-interno .pulsante.secondario { background: #fff; color: var(--scuro); border-color: #8795af; }
.ev-interno .pulsante.chiaro { background: var(--lime); color: var(--scuro); border-color: var(--lime); }
.ev-interno .pulsante:hover { filter: none; box-shadow: 0 4px 12px #16254a26; }
.ev-interno :is(a, button, input, textarea, select):focus-visible { outline: 3px solid #1d4ed8; outline-offset: 3px; }
.ev-piano:has(input:focus-visible), .ev-gateway label:has(input:focus-visible) { outline: 3px solid #1d4ed8; outline-offset: 3px; }
.ev-modulo input, .ev-modulo select, .ev-modulo textarea { max-width: 100%; }
.ev-modulo input::placeholder, .ev-modulo textarea::placeholder { color: #4b5971; opacity: 1; }
/* Le tabelle con le larghezze di colonna date (rapportino: .ev-materiali, .ev-misure) restano a colonne fisse; le altre (preventivo,
   pagina dell'impianto, pagamenti di Attiva) prendono la larghezza dal contenuto e non spezzano le parole: a colonne uguali, al
   telefono «Quantità», «Dichiarazione» e «Sostituzione» andavano a capo a metà (8/11/2026). Se non ci stanno, scorrono di lato nel
   loro contenitore (.ev-scorre). */
.ev-tabella { table-layout: auto; }
.ev-tabella th, .ev-tabella td { overflow-wrap: break-word; line-height: 1.5; }
.ev-materiali, .ev-misure { table-layout: fixed; }
.ev-materiali :is(th, td), .ev-misure :is(th, td) { overflow-wrap: anywhere; }
.ev-scorre { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.ev-materiali th:first-child { width: 38%; }
.ev-materiali th:nth-child(2) { width: 36%; }
.ev-materiali th:last-child { width: 26%; }
.ev-misure th { width: 46%; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--inchiostro); }
.ev-misure td:last-child { width: 24%; font-weight: 700; }
.ev-nota:not(.ev-piano .ev-nota) { background: #fff7df; color: #654400; border: 1px solid #ead5a1; border-left: 4px solid #b56a00; padding: 14px 18px; margin-block: 18px; border-radius: 12px; line-height: 1.6; }
.ev-nota a { font-weight: 700; }
.ev-firma-cliente { margin-top: 24px; padding-top: 4px; border-top: 1px solid var(--linea); }
.ev-firma-cliente .firma { height: 170px; width: 100%; position: relative; border: 2px dashed #71809a; border-radius: 12px; background: #fff; overflow: hidden; touch-action: none; }
.ev-firma-cliente .firma canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.firma-piede { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 8px; font-size: 14px; color: var(--secondario); }
.firma-piede button { flex: none; min-height: 44px; padding: 8px 16px; border: 1px solid #8795af; border-radius: 10px; background: #fff; color: #16254a; font: inherit; font-weight: 700; cursor: pointer; }
[data-firma-stato].ok { color: #216139; font-weight: 700; }
[data-firma-stato].errore, .ev-firma-cliente .errore { color: #a32218; font-weight: 700; }
.ev-firma-immagine { display: block; width: auto; max-width: min(100%, 320px); height: auto; border: 1px solid #b5c0d4; border-radius: 8px; background: #fff; }
.ev-bonifico { overflow-wrap: anywhere; }
.ev-foto-griglia figure { margin: 0; }
.ev-foto-griglia figcaption { font-size: 13px; color: var(--secondario); line-height: 1.5; margin-top: 6px; }
@media (max-width: 600px) {
  .ev-interno { padding: 28px 16px 48px; }
  .ev-interno .ev-scheda { padding: 18px 16px; border-radius: 18px; }
  .ev-due, .ev-modulo .griglia, .ev-foto-griglia { grid-template-columns: minmax(0, 1fr); }
  .ev-risposte { flex-direction: column; align-items: stretch; }
  /* intestazioni meno spaziate e celle un poco piu' strette: il preventivo a 390 px chiedeva 289 px in 280 e l'ultima
     colonna, con il totale, restava tagliata sul simbolo dell'euro; cosi' ne chiede 269 (8/11/2026, misurato sulla pagina vera) */
  .ev-interno .ev-tabella th, .ev-interno .ev-tabella td { padding: 8px 4px; }
  .ev-interno .ev-tabella th { letter-spacing: .03em; }
  .ev-tabella td.numero, .ev-tabella th.numero { white-space: normal; }
  .ev-materiali th { letter-spacing: .03em; font-size: 10.5px; }
  /* La prima cella è un'intestazione di riga: resta accanto ai due valori anche quando va a capo. */
  .ev-misure tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-bottom: 1px solid var(--linea); padding-block: 6px; }
  .ev-misure th { grid-column: 1 / -1; width: auto; }
  .ev-misure th, .ev-misure td, .ev-misure td:last-child { width: auto; border: 0; }
  .ev-bonifico { padding: 16px; }
  .ev-bonifico b { min-width: 0; }
  .ev-bonifico .causale { font-size: 18px; letter-spacing: .01em; }
}
@media print {
  .ev-interno .ev-modulo, .ev-interno button, .ev-interno .pulsante, .ev-interno .firma, .ev-interno .firma-piede { display: none !important; }
  .ev-firma-cliente:not(:has(.ev-firma-immagine)) { display: none !important; }
  .ev-interno { max-width: none; padding: 0; color: #16254a; }
  .ev-scheda { box-shadow: none; border: 1px solid #ccd2dd; padding: 16px; }
  .ev-tabella th, .ev-tabella td { border: 1px solid #ccd2dd; padding: 7px; }
  .ev-tabella tr { break-inside: avoid; }
  .ev-misure tr { display: table-row; }
  .ev-misure th { width: 46%; }
  .ev-misure td:last-child { width: 24%; }
  .ev-foto-griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ev-firma-cliente, .ev-firma-immagine { break-inside: avoid; }
  .ev-nota, .ev-bonifico { background: #fff; border: 1px solid #ccd2dd; }
}

/* Paga con l'app della tua banca (7/11/2026): il QR del bonifico sul rapportino e sul preventivo accettato */
.ev-paga { display: flex; gap: 18px; align-items: center; margin: 18px 0; padding: 16px 18px; border: 1px solid #c7d2fe; border-radius: 14px; background: #f5f7ff; }
.ev-paga img { flex: 0 0 150px; width: 150px; height: 150px; border-radius: 8px; background: #fff; }
.ev-paga h3 { margin: 0 0 6px; }
.ev-paga p { margin: 0 0 6px; line-height: 1.5; }
.ev-paga .piccolo { font-size: .85em; color: #475569; letter-spacing: .02em; }
@media (max-width: 600px) { .ev-paga { flex-direction: column; align-items: flex-start; } }
.ev-quadro-chiama .ev-risposte { display: flex; flex-wrap: wrap; gap: 10px; }
