.nccs-wrap{
  max-width:1280px;
  margin:18px auto;
  padding:0 12px;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;
  color:#0b1220;
}

.nccs-card{
  background:#fff;
  border:1px solid #e7eaf2;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}

.nccs-head{
  padding:16px 16px 12px;
  border-bottom:1px solid #eef1f6;
}

.nccs-title{
  font-size:18px;
  font-weight:800;
}

.nccs-sub{
  color:#475569;
  font-size:13px;
  margin-top:4px;
}

.nccs-step{
  padding:16px;
}

.nccs-hidden{
  display:none !important;
}

.nccs-contract{
  background:#f8fafc;
  border:1px solid #e7eaf2;
  border-radius:12px;
  padding:14px;
  max-height:360px;
  overflow:auto;
}

.nccs-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:12px 0;
  color:#0b1220;
}

.nccs-btn{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  border-radius:12px;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
  background:#071e3e;
  color:#fff;
  text-decoration:none;
}

.nccs-btn:hover{
  opacity:.92;
}

.nccs-btn-ghost{
  appearance:none;
  -webkit-appearance:none;
  background:#f1f5f9;
  color:#0b1220;
  border:1px solid #e7eaf2;
  border-radius:12px;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
}

.nccs-row{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

#nccs_otp{
  width:100%;
  max-width:420px;
  min-width:180px;
  min-height:56px;
  padding:14px 16px;
  border:1px solid #e7eaf2;
  border-radius:14px;
  font-size:24px;
  line-height:1.2;
  color:#0b1220;
  background:#fff;
  box-sizing:border-box;
  appearance:none;
  -webkit-appearance:none;
  outline:none;
}

#nccs_otp:focus{
  border-color:#2563eb;
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}

.nccs-msg{
  margin-top:10px;
  font-size:13px;
}

.nccs-msg.is-ok{
  color:#0f766e;
}

.nccs-msg.is-bad{
  color:#b91c1c;
}

.nccs-muted{
  color:#475569;
}

.nccs-sigbox{
  background:#fff;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  overflow:hidden;
}

#nccs_canvas{
  display:block;
  width:100%;
  height:auto;
  touch-action:none;
}

.nccs-actions{
  display:flex;
  gap:10px;
  margin-top:10px;
  flex-wrap:wrap;
}

.nccs-pdfwrap{
  position:relative;
  z-index:1;
  border:1px solid #e7eaf2;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}

.nccs-pdf{
  width:100%;
  height:70vh;
  max-height:620px;
  min-height:420px;
  border:0;
  display:block;
}

.nccs-pdf-actions,
.nccs-done-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

.nccs-pdf-actions .nccs-btn,
.nccs-done-actions .nccs-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.nccs-consentbar{
  margin-top:12px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

.nccs-consentbar .nccs-check{
  flex:1 1 320px;
  margin:0;
}

.nccs-consentbar .nccs-btn{
  flex:0 0 auto;
}

body.nccs-modal-open{
  overflow:hidden !important;
}

/* MODALE OTP VERA */
#nccs-otp-modal-overlay{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483647 !important;
  pointer-events:auto !important;
}

#nccs-otp-modal-overlay *{
  box-sizing:border-box;
}

#nccs-otp-modal-overlay .nccs-otp-modal-backdrop{
  position:absolute !important;
  inset:0 !important;
  background:rgba(15,23,42,.58) !important;
  z-index:1 !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-dialog{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%, -50%) !important;
  width:min(92vw, 430px) !important;
  background:#fff !important;
  border:1px solid #e7eaf2 !important;
  border-radius:18px !important;
  box-shadow:0 30px 60px rgba(15,23,42,.25) !important;
  padding:22px !important;
  z-index:2 !important;
  pointer-events:auto !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-close{
  position:absolute !important;
  top:10px !important;
  right:10px !important;
  width:40px !important;
  height:40px !important;
  border:0 !important;
  border-radius:12px !important;
  background:#f8fafc !important;
  color:#0b1220 !important;
  font-size:24px !important;
  line-height:1 !important;
  cursor:pointer !important;
  z-index:3 !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-title{
  font-size:20px !important;
  font-weight:800 !important;
  color:#071e3e !important;
  margin-bottom:8px !important;
  padding-right:40px !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-desc{
  color:#475569 !important;
  font-size:14px !important;
  line-height:1.55 !important;
  margin-bottom:16px !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-input{
  width:100% !important;
  min-height:58px !important;
  height:58px !important;
  padding:14px 16px !important;
  border:1px solid #cbd5e1 !important;
  border-radius:14px !important;
  font-size:28px !important;
  line-height:1.2 !important;
  text-align:center !important;
  background:#fff !important;
  color:#0b1220 !important;
  box-sizing:border-box !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  outline:none !important;
  position:relative !important;
  z-index:3 !important;
  pointer-events:auto !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-input:focus{
  border-color:#2563eb !important;
  box-shadow:0 0 0 3px rgba(37,99,235,.15) !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-actions{
  display:flex !important;
  gap:10px !important;
  margin-top:16px !important;
  align-items:stretch !important;
}

#nccs-otp-modal-overlay .nccs-otp-modal-actions .nccs-btn,
#nccs-otp-modal-overlay .nccs-otp-modal-actions .nccs-btn-ghost{
  flex:1 1 0 !important;
  min-height:52px !important;
  justify-content:center !important;
  display:inline-flex !important;
  align-items:center !important;
}

#nccs-otp-modal-overlay .nccs-msg{
  margin-top:12px !important;
}

@media (max-width:768px){
  .nccs-wrap{
    margin:10px auto;
    padding:0 8px;
  }

  .nccs-step{
    padding:14px;
  }

  .nccs-pdf{
    height:56vh;
    max-height:520px;
    min-height:320px;
  }

  .nccs-pdf-actions,
  .nccs-done-actions,
  .nccs-actions,
  .nccs-consentbar{
    flex-direction:column;
    align-items:stretch;
  }

  .nccs-pdf-actions .nccs-btn,
  .nccs-done-actions .nccs-btn,
  .nccs-actions .nccs-btn,
  .nccs-consentbar .nccs-btn{
    width:100%;
  }

  .nccs-consentbar{
    position:static;
    background:#fff;
    border:1px solid #e7eaf2;
    border-radius:14px;
    padding:12px;
    box-shadow:none;
  }

  .nccs-consentbar .nccs-check{
    align-items:flex-start;
  }

  .nccs-consentbar .nccs-check input{
    width:18px;
    height:18px;
    flex:0 0 auto;
    margin-top:2px;
  }

  .nccs-consentbar .nccs-msg{
    margin-top:0;
  }

  #nccs-otp-modal-overlay .nccs-otp-modal-dialog{
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    top:auto !important;
    transform:none !important;
    width:auto !important;
    padding:18px !important;
    border-radius:20px !important;
  }

  #nccs-otp-modal-overlay .nccs-otp-modal-input{
    min-height:60px !important;
    height:60px !important;
    font-size:28px !important;
  }
}

/* Hotfix mobile PDF buttons: evita che il viewer PDF/iframe intercetti i tap su Safari/Chrome mobile */
.nccs-pdf-actions,
.nccs-done-actions{
  position:relative !important;
  z-index:50 !important;
  pointer-events:auto !important;
}

.nccs-pdf-actions a,
.nccs-done-actions a,
.nccs-pdf-link{
  position:relative !important;
  z-index:60 !important;
  pointer-events:auto !important;
  touch-action:manipulation !important;
  -webkit-tap-highlight-color:rgba(7,30,62,.12);
}

.nccs-sigbox{
  min-height:300px;
}

#nccs_canvas{
  min-height:300px;
}

@media (max-width:768px){
  .nccs-pdfwrap{
    display:block !important;
    position:relative !important;
    z-index:1 !important;
    margin-top:10px !important;
    margin-bottom:10px !important;
  }

  .nccs-pdf{
    display:block !important;
    width:100% !important;
    height:52vh !important;
    min-height:360px !important;
    max-height:520px !important;
  }

  .nccs-pdf-actions,
  .nccs-done-actions{
    display:flex !important;
    position:relative !important;
    z-index:9999 !important;
    pointer-events:auto !important;
    margin-bottom:14px !important;
  }

  .nccs-pdf-actions a,
  .nccs-done-actions a{
    display:flex !important;
    width:100% !important;
    min-height:54px !important;
    align-items:center !important;
    justify-content:center !important;
    pointer-events:auto !important;
  }

  .nccs-sigbox{
    min-height:320px !important;
  }

  #nccs_canvas{
    min-height:320px !important;
  }
}

/* Fix 1.1.4.6: anteprima mobile attiva e nessuno spazio eccessivo prima del bottone OTP */
@media (max-width:768px){
  .nccs-consentbar{
    margin-top:12px !important;
    gap:10px !important;
    padding:12px !important;
    min-height:0 !important;
    justify-content:flex-start !important;
  }

  .nccs-consentbar .nccs-check{
    flex:0 0 auto !important;
    margin:0 !important;
    min-height:0 !important;
  }

  .nccs-consentbar .nccs-btn{
    margin-top:0 !important;
    flex:0 0 auto !important;
  }

  .nccs-consentbar .nccs-msg{
    min-height:0 !important;
    margin:0 !important;
  }
}

/* NC Contract Sign 1.3.0 - campi compilabili cliente */
.nccs-client-form{margin-top:18px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;}
.nccs-client-form h3{margin:0 0 8px;}
.nccs-fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px;}
.nccs-field label:first-child{display:block;font-weight:700;margin-bottom:6px;color:#0f172a;}
.nccs-field input[type="text"],.nccs-field input[type="date"],.nccs-field select,.nccs-field textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;background:#fff;color:#0f172a;font-size:15px;}
.nccs-field textarea{resize:vertical;}
.nccs-field-error{border-color:#dc2626!important;box-shadow:0 0 0 3px rgba(220,38,38,.12)!important;}
@media (max-width:640px){.nccs-fields-grid{grid-template-columns:1fr}.nccs-client-form{padding:14px}}
