:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17212b;background:#eef3f6}*{box-sizing:border-box}body{margin:0}.topbar{background:#0f3d5e;color:#fff;padding:calc(18px + env(safe-area-inset-top)) 18px 18px;display:flex;justify-content:space-between;align-items:center}.topbar h1{margin:0;font-size:28px}.topbar p{margin:4px 0 0;opacity:.86;font-size:14px}.secure{background:#d9f6e5;color:#14532d;padding:7px 10px;border-radius:999px;font-weight:700;font-size:13px}main{max-width:780px;margin:auto;padding:16px}.card{background:#fff;border-radius:16px;padding:18px;margin-bottom:14px;box-shadow:0 5px 20px rgba(15,61,94,.08)}h2{font-size:19px;margin:0 0 16px}.photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-box{min-height:170px;border:2px dashed #9cb3c2;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative;background:#f8fbfc;cursor:pointer}.photo-box input{display:none}.photo-box img{width:100%;height:170px;object-fit:cover}.photo-title{font-weight:800;margin-bottom:9px}.photo-action{color:#0f5f8f;font-weight:700}.photo-box.has-image .photo-title{position:absolute;top:8px;left:8px;background:rgba(255,255,255,.9);padding:4px 8px;border-radius:8px;z-index:2}.photo-box.has-image .photo-action{position:absolute;bottom:8px;background:rgba(15,61,94,.9);color:#fff;padding:6px 10px;border-radius:8px}.privacy-note{font-size:13px;color:#536471;margin:12px 0 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid label{font-size:13px;font-weight:700;color:#34495a}.grid input{width:100%;margin-top:5px;padding:12px;border:1px solid #c8d4dc;border-radius:10px;font-size:16px;background:#fff}.grid input[readonly]{background:#eef3f6;font-weight:800}.wide{grid-column:1/-1}.validation{margin-top:12px;font-size:14px;font-weight:700}.validation.error{color:#a61b1b}.validation.ok{color:#166534}.actions{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:16px 0}.actions button{border:0;border-radius:13px;padding:15px;font-size:16px;font-weight:800}.primary{background:#0f5f8f;color:white}.secondary{background:#dce6ec;color:#1f3442}.security-panel{background:#fff;border-radius:14px;padding:14px 16px;color:#34495a}.security-panel summary{font-weight:800;cursor:pointer}.security-panel li{margin:8px 0}footer{text-align:center;color:#607786;font-size:12px;padding:18px 10px calc(20px + env(safe-area-inset-bottom))}@media(max-width:520px){.photos,.grid{grid-template-columns:1fr}.wide{grid-column:auto}.actions{grid-template-columns:1fr}.topbar p{max-width:220px}}

.step-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.step-status{font-size:12px;font-weight:800;padding:6px 9px;border-radius:999px;background:#e7eef3;color:#405665;white-space:nowrap}.step-status.ok{background:#d9f6e5;color:#14532d}.actions button:disabled{opacity:.45;cursor:not-allowed}.photo-box.loading:after{content:"Preparazione foto…";position:absolute;inset:0;background:rgba(255,255,255,.9);display:grid;place-items:center;font-weight:800;color:#0f3d5e;z-index:5}.field-error{border-color:#b42318!important;box-shadow:0 0 0 2px rgba(180,35,24,.08)}

.scan-button{width:100%;margin:0 0 18px;border:0;border-radius:14px;padding:15px 18px;font-weight:800;font-size:16px;background:#e9f3f9;color:#0f3d5e;cursor:pointer}.scan-button:disabled{opacity:.45;cursor:not-allowed}.scan-button:not(:disabled):active{transform:scale(.99)}.scan-progress{margin:0 0 18px;padding:14px;border-radius:14px;background:#f4f7fa}.scan-progress p{margin:8px 0 0;font-size:14px}.scan-bar{height:9px;background:#dce5eb;border-radius:999px;overflow:hidden}.scan-bar span{display:block;height:100%;width:0;background:#0f3d5e;transition:width .25s ease}.ocr-filled{outline:2px solid #63a7cc!important;background:#f3fbff!important}.confidence-note{font-size:12px;color:#566b78;margin-top:4px}.scan-warning{background:#fff7df;border:1px solid #ead18a;color:#715b19;padding:12px;border-radius:12px;margin-bottom:16px;font-size:14px}.scan-ok{background:#eaf7ef;border:1px solid #9bcdae;color:#245d37;padding:12px;border-radius:12px;margin-bottom:16px;font-size:14px}
.auto-flow{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;margin:0 0 12px;padding:13px 14px;border:1px solid #b9d5e5;border-radius:14px;background:#f2f9fc;color:#123f59}.auto-flow strong{font-size:14px}.auto-flow small{grid-column:2;color:#557180;margin-top:2px}.pulse-dot{width:12px;height:12px;border-radius:50%;background:#19945b;box-shadow:0 0 0 0 rgba(25,148,91,.45);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(25,148,91,0)}100%{box-shadow:0 0 0 0 rgba(25,148,91,0)}}


.photo-hint{display:block;font-size:.76rem;font-weight:600;opacity:.72;margin-top:.15rem}
.photo-quality{margin-top:14px;padding:11px 13px;border-radius:12px;background:#eef4f7;color:#355366;font-size:.9rem;font-weight:650}
.photo-quality.ok{background:#e7f6ed;color:#17643a}
.photo-quality.warning{background:#fff2d9;color:#815400}

.capture-order{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#0f3d5e;color:#fff;font-weight:800;box-shadow:0 2px 8px rgba(15,61,94,.25)}
.photo-box{position:relative}
.photo-box.locked{opacity:.55;pointer-events:none;filter:grayscale(.25)}
.photo-box.locked::after{content:"Scatta prima il fronte";position:absolute;inset:auto 10px 10px 10px;background:rgba(255,255,255,.92);padding:8px;border-radius:10px;font-size:.78rem;font-weight:700;color:#52616b;text-align:center}
.photo-quality.info{background:#eef6fb;color:#174c6a;border-color:#b9d9e8}

.review-panel{margin-top:16px;padding:14px;border:1px solid #cbd8e2;border-radius:14px;background:#f7fafc;display:flex;align-items:center;justify-content:space-between;gap:12px}.review-panel strong{display:block;color:#173b55}.review-panel small{display:block;margin-top:3px;color:#647583}.review-panel.confirmed{background:#edf8f1;border-color:#91c9a5}.confirm-button{border:0;border-radius:11px;padding:11px 15px;font-weight:800;background:#0f6b45;color:#fff;white-space:nowrap}.confirm-button:disabled{opacity:.42}.field-confirmed{box-shadow:0 0 0 2px rgba(15,107,69,.14)}@media(max-width:560px){.review-panel{align-items:stretch;flex-direction:column}.confirm-button{width:100%}}


.export-result {
  flex: 1 1 100%;
  margin-top: 4px;
  padding: 14px 16px;
  border: 1px solid #a8d8b9;
  border-radius: 14px;
  background: #effaf3;
  color: #174d2d;
  display: grid;
  gap: 3px;
}
.export-result[hidden] { display: none; }
.export-result span { font-size: .88rem; line-height: 1.35; }


.batch-help{margin:-6px 0 14px;color:#5d7280;font-size:.9rem}.batch-empty{padding:18px;border:1px dashed #b8c8d2;border-radius:13px;text-align:center;color:#6b7d89;background:#f8fafb}.batch-empty[hidden]{display:none}.batch-list{display:grid;gap:9px}.batch-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid #d3dee5;border-radius:12px;background:#f8fbfc}.batch-info{display:grid;gap:3px;min-width:0}.batch-info strong{color:#173b55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-info span{color:#657985;font-size:.82rem}.remove-dim{border:0;border-radius:9px;padding:8px 10px;background:#f7e7e7;color:#8a1f1f;font-weight:800;cursor:pointer}.remove-dim:active{transform:scale(.98)}
