:root{--blu:#1f3864;--verde:#1e7a3c;--rosso:#c42b1c;--arancio:#d83b01;--grigio:#666;--sfondo:#f3f4f6;--bordo:#d6d9de;color:#1a1a1a;background:var(--sfondo);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px}*{box-sizing:border-box}body{background:var(--sfondo);margin:0}#app{max-width:640px;min-height:100vh;padding-bottom:calc(90px + env(safe-area-inset-bottom));margin:0 auto}.menu-basso{z-index:20;border-top:1px solid var(--bordo);max-width:640px;padding-bottom:env(safe-area-inset-bottom);background:#fff;grid-template-columns:1fr 1fr;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.menu-basso button{color:var(--grigio);background:#fff;border:0;border-top:4px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:10px 6px 12px;font-size:16px;font-weight:700;display:flex}.menu-basso button b{font-size:20px}.menu-basso button small{color:var(--arancio);font-size:12px;font-weight:700}.menu-basso button.scelto{color:var(--blu);border-top-color:var(--blu)}.sotto-scheda{margin:-2px 10px 10px}.sotto-scheda button.grande{width:100%;min-height:46px;font-size:16px}.testata{z-index:10;background:var(--blu);color:#fff;padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top));align-items:center;gap:10px;display:flex;position:sticky;top:0}.testata h1{white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-size:18px;overflow:hidden}.testata button{color:#fff;background:0 0;border:1px solid #ffffff80;border-radius:8px;padding:6px 10px;font-size:15px}.stato-rete{color:#5c4400;background:#fff4ce;padding:6px 14px;font-size:13px}.stato-rete.errore{color:var(--rosso);background:#fde7e9}.giorno{color:var(--blu);text-transform:uppercase;margin:16px 12px 6px;font-size:14px;font-weight:700}.scheda{border:1px solid var(--bordo);color:inherit;background:#fff;border-radius:12px;margin:8px 10px;padding:12px 14px;text-decoration:none;display:block}.scheda.fatta{opacity:.65}.riga{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lato{color:#fff;letter-spacing:.5px;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:800}.lato.R{background:#2f6fb3}.lato.C{background:var(--verde)}.numero{color:var(--grigio);font-size:13px}.nome{margin-top:6px;font-size:18px;font-weight:700}.indirizzo{margin-top:2px}.piccolo{color:var(--grigio);margin-top:4px;font-size:14px}.etichetta{color:var(--grigio);margin-top:10px;font-size:13px}.avviso{border-radius:8px;margin-top:8px;padding:8px 10px;font-size:15px;font-weight:700}.avviso.contanti{color:var(--arancio);background:#fff1e6;border:1px solid #f7c9a9}.avviso.abbonamento{color:#1b4f8a;background:#e8f1fb;border:1px solid #b9d3f0}.avviso.digitale{color:#4527a0;background:#ede7f6;border:1px solid #c5b8e8}.avviso.info{color:#333;background:#f1f1f1;border:1px solid #ddd;font-weight:600}.avviso.giorno-diverso{color:#7a5a00;background:#fff8db;border:1px solid #ebd98a;font-size:14px;font-weight:600}.esito{margin-top:8px;font-size:15px;font-weight:700}.esito.ok{color:var(--verde)}.esito.segnalato{color:var(--arancio)}.esito.attesa{color:var(--grigio)}.pulsanti{grid-template-columns:1fr 1fr;gap:10px;margin:14px 10px;display:grid}.pulsanti.uno{grid-template-columns:1fr}button.grande,a.grande{text-align:center;border:1px solid var(--bordo);min-height:56px;color:var(--blu);background:#fff;border-radius:12px;justify-content:center;align-items:center;padding:8px;font-size:17px;font-weight:700;text-decoration:none;display:flex}button.grande.primario{background:var(--verde);color:#fff;border-color:var(--verde)}button.grande.secondario{background:var(--blu);color:#fff;border-color:var(--blu)}label.con-voce{justify-content:space-between;align-items:center;gap:8px;display:flex}button.voce-piccolo{border:1px solid var(--bordo);background:#fff;border-radius:10px;min-width:48px;min-height:40px;padding:0 8px;font-size:20px}button.voce-attiva{background:var(--rosso)!important;border-color:var(--rosso)!important;color:#fff!important}.voce-stato:empty{display:none}.istruzioni h2{color:var(--blu);margin:18px 0 6px;font-size:17px}.istruzioni h2:first-child{margin-top:0}.istruzioni ul{margin:0;padding-left:20px}.istruzioni li{margin:6px 0;line-height:1.4}button.grande.attenzione{color:var(--arancio);background:#fff;border-color:#f7c9a9}button:disabled{opacity:.5}.modulo{border:1px solid var(--bordo);background:#fff;border-radius:12px;margin:10px;padding:14px}.modulo label{color:var(--grigio);margin:12px 0 4px;font-size:14px;display:block}.modulo label:first-child{margin-top:0}.modulo input[type=text],.modulo input[type=password],.modulo select,.modulo textarea{border:1px solid var(--bordo);background:#fff;border-radius:10px;width:100%;padding:12px;font-size:18px}.maiuscolo{text-transform:uppercase}.spunta{align-items:center;gap:10px;margin:12px 0;font-size:17px;display:flex;color:#1a1a1a!important}.spunta input{width:26px;height:26px}.firma{border:2px dashed var(--bordo);touch-action:none;background:#fff;border-radius:10px;width:100%;height:200px;display:block}.anteprima-foto{border-radius:10px;max-width:100%;margin-top:8px}.errore-testo{color:var(--rosso);margin:10px;font-weight:600}.vuoto{text-align:center;color:var(--grigio);margin:40px 20px}video.lettore{background:#000;border-radius:10px;width:100%}.accesso{margin:40px 10px}.accesso h2{color:var(--blu);text-align:center}.riga-giro{align-items:stretch;gap:10px;margin:6px 10px;display:flex}.numero-giro{color:#fff;border-radius:10px;flex:0 0 56px;justify-content:center;align-items:center;min-height:56px;font-size:24px;font-weight:800;text-decoration:none;display:flex}.numero-giro.R{background:#2f6fb3}.numero-giro.C{background:var(--verde)}.numero-giro.attesa{opacity:.45}.indirizzo-giro{color:var(--blu);background:#fff;border:1px solid #ddd;border-radius:10px;flex-direction:column;flex:1;justify-content:center;padding:8px 12px;text-decoration:none;display:flex}.indirizzo-giro .via{font-size:16px;font-weight:700}.indirizzo-giro .localita{color:var(--grigio);margin-top:2px;font-size:13px}.indirizzo-giro .dettagli{margin-top:2px;font-size:15px;font-weight:400}.numero-giro{flex-direction:column;flex-basis:64px;line-height:1.05}.numero-giro .appuntamento{white-space:nowrap;background:#ffffff38;border-radius:4px;margin-top:3px;padding:1px 4px;font-size:11px;font-weight:700}.numero-giro{flex:none;min-width:64px;padding:0 4px}.numero-giro .appuntamento{background:0 0;padding:0}.numero-giro .appuntamento-data{opacity:.9;white-space:nowrap;font-size:11px;font-weight:700}.numero-giro .icone{letter-spacing:1px;margin-top:2px;font-size:13px}.riga-giro{gap:6px;margin:3px 8px}.numero-giro{min-width:56px;min-height:44px;padding:2px 4px}.indirizzo-giro{padding:5px 10px}#app{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.testata .hamburger{border:0;padding:4px 8px;font-size:24px;line-height:1;position:relative}.testata .hamburger .pallino{background:var(--arancio);border:2px solid var(--blu);border-radius:50%;width:10px;height:10px;position:absolute;top:2px;right:2px}.menu-sfondo{z-index:30;background:#00000059;position:fixed;inset:0}.menu-hamburger{z-index:31;width:min(80vw,300px);padding-top:env(safe-area-inset-top);background:#fff;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:2px 0 12px #00000040}.menu-hamburger[hidden],.menu-sfondo[hidden]{display:none}.menu-hamburger .menu-chi{background:var(--blu);color:#fff;padding:18px 16px;font-size:16px;font-weight:700}.menu-hamburger button{text-align:left;color:#222;background:#fff;border:0;border-left:4px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;font-size:17px;font-weight:600;display:flex}.menu-hamburger button span{flex-direction:column;display:flex}.menu-hamburger button small{color:var(--arancio);margin-top:2px;font-size:13px;font-weight:700}.menu-hamburger button small.grigio{color:var(--grigio);font-weight:400}.menu-hamburger button b{color:var(--blu);font-size:18px}.menu-hamburger a.voce-menu{border-bottom:1px solid var(--bordo);color:inherit;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-size:16px;text-decoration:none;display:flex}.menu-hamburger a.voce-menu span{flex-direction:column;display:flex}.menu-hamburger a.voce-menu small{color:var(--grigio);margin-top:2px;font-size:13px}.menu-hamburger a.voce-menu b{color:var(--blu);font-size:18px}.menu-hamburger button.scelto{border-left-color:var(--blu);color:var(--blu);background:#eef3fa}.menu-hamburger hr{border:0;border-top:1px solid #ddd;width:100%;margin:8px 0}.servizi{background:#fff8db;border:1px solid #ebd98a;border-radius:8px;margin:8px 0 6px;padding:8px 10px}.servizi div{color:#5c4400;font-size:17px;font-weight:700;line-height:1.5}.lettore-box{margin-top:10px}.lettore-modi{border:1px solid var(--blu);border-radius:10px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.lettore-modi button{color:var(--blu);background:#fff;border:0;padding:10px 4px;font-size:15px;font-weight:700}.lettore-modi button+button{border-left:1px solid var(--blu)}.lettore-modi button.scelto{background:var(--blu);color:#fff}.lettore-modi button:disabled{color:#aaa}.lettore-vista{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#000;border-radius:10px;margin-top:10px;position:relative;overflow:hidden}.lettore-vista[hidden]{display:none}.lettore-vista video{object-fit:cover;transform-origin:50%;width:100%;height:auto;display:block}.lettore-zoom{align-items:center;gap:10px;margin-top:8px;display:flex}.lettore-zoom[hidden]{display:none}.lettore-zoom input{flex:1}.lettore-zoom button{border:1px solid var(--bordo);width:44px;height:44px;color:var(--blu);background:#fff;border-radius:50%;font-size:24px;font-weight:700;line-height:1}.lettore-riquadro{border:3px solid #fff;border-radius:8px;width:88%;height:76%;position:absolute;top:12%;left:6%;box-shadow:0 0 0 9999px #00000073}.lettore-riquadro.codice{border-style:dashed;width:80%;height:88%;top:6%;left:10%}.lettore-riquadro i{pointer-events:none;border:0 solid #fff;width:14px;height:14px;position:absolute}.lettore-riquadro .as{border-width:5px 0 0 5px;top:-3px;left:-3px}.lettore-riquadro .ad{border-width:5px 5px 0 0;top:-3px;right:-3px}.lettore-riquadro .bs{border-width:0 0 5px 5px;bottom:-3px;left:-3px}.lettore-riquadro .bd{border-width:0 5px 5px 0;bottom:-3px;right:-3px}.lettore-comandi[hidden]{display:none}.lettore-stato{min-height:1em;margin-top:8px}.lettore-candidati{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.lettore-candidati .candidato{border:2px solid var(--blu);color:var(--blu);letter-spacing:.5px;background:#fff;border-radius:10px;padding:8px 12px;font-size:18px;font-weight:800}.lettore-candidati .candidato.preso{background:var(--verde);border-color:var(--verde);color:#fff}.giorno-completate .nome{font-size:17px}.totali{gap:8px;margin-top:8px;display:flex}.totali>div{background:#f4f7fb;border:1px solid #dce5f0;border-radius:8px;flex-direction:column;flex:1;padding:6px 10px;display:flex}.totali span{color:var(--grigio);font-size:13px}.totali b{color:var(--blu);font-size:18px}.totali.grande{margin:12px}.totali.grande b{font-size:24px}.pagante{border:1px solid var(--bordo);color:inherit;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin:0 10px 6px;padding:10px 14px;text-decoration:none;display:flex}.pagante .chi{flex-direction:column;min-width:0;display:flex}.pagante .chi b{text-overflow:ellipsis;overflow:hidden}.pagante .chi small{color:var(--grigio);margin-top:2px;font-size:13px}.pagante .quanto{color:var(--arancio);text-align:right;white-space:nowrap;font-weight:700}.pagante .chi small b.solo{color:#1b4f8a}.pagante .chi small b.annullata{color:var(--rosso)}.pagante .chi small.senza-ldv{color:var(--arancio);font-weight:700}.totali small{color:var(--arancio);margin-top:2px;font-size:12px;font-weight:700}.pagante .quanto .paga{color:var(--blu)}.scheda.con-naviga{position:relative}.scheda.con-naviga .naviga{background:var(--blu);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:absolute;top:10px;right:10px}.scheda.con-naviga .naviga+.riga{padding-right:56px}a.telefono{color:#fff;background:var(--verde);white-space:nowrap;border-radius:14px;align-items:center;gap:4px;margin:2px 2px 2px 0;padding:3px 10px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}a.telefono:before{content:"📞";font-size:13px}.telefoni{margin-top:6px}.arrivato{color:var(--verde);font-weight:700}.in-viaggio{color:var(--grigio);font-weight:400}.barra-annulla{background:#fff8db;border:1px solid #ebd98a;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin:8px 10px 0;padding:8px 12px;font-weight:700;display:flex}.barra-annulla button{border:1px solid var(--rosso);min-height:40px;color:var(--rosso);background:#fff;border-radius:8px;padding:4px 14px;font-size:15px;font-weight:700}.barra-giro{gap:8px;margin:8px 10px;display:flex}.barra-giro .grande{flex:1;justify-content:center;align-items:center;min-height:46px;text-decoration:none;display:flex}.indirizzo-giro .servizi-giro{flex-wrap:wrap;gap:4px 6px;margin-top:4px;display:flex}.indirizzo-giro .servizi-giro span{color:#5c4400;white-space:nowrap;background:#fff8db;border:1px solid #ebd98a;border-radius:6px;padding:1px 6px;font-size:13px;font-weight:700}.firma-apri{border:2px dashed var(--bordo);width:100%;height:120px;color:var(--grigio);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:6px;font-size:18px;display:flex}.firma-apri img{object-fit:contain;max-width:100%;max-height:100%}.firma-schermo{z-index:100;touch-action:none;background:#fff;position:fixed;inset:0;overflow:hidden}.firma-foglio{transform-origin:0 0;background:#fff;flex-direction:column;display:flex;position:absolute}.firma-barra{background:var(--blu);color:#fff;flex:none;align-items:center;gap:8px;padding:8px 12px;font-size:15px;display:flex}.firma-barra span{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.firma-barra button{color:#fff;background:0 0;border:1px solid #fff9;border-radius:8px;min-height:42px;padding:4px 14px;font-size:16px;font-weight:700}.firma-barra button.ok{color:var(--blu);background:#fff}.firma-foglio canvas{touch-action:none;flex:auto;width:100%;min-height:0;display:block}#banner-voce{left:8px;right:8px;top:calc(8px + env(safe-area-inset-top));z-index:90;color:#5c4400;text-align:left;background:#fff4ce;border:2px solid #e0b000;border-radius:10px;padding:12px 14px;font-size:16px;font-weight:700;position:fixed;box-shadow:0 2px 8px #00000040}#banner-voce[hidden]{display:none}
