:root{
  --nautt-green:#103a22;
  --nautt-green-soft:#1a5234;
  --nautt-green-light:#e8efe9;
  --nautt-bg:#ffffff;
  --nautt-text:#1f2a24;
  --nautt-muted:#5a6660;
  --nautt-border:#d8ddda;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#f3f5f3;font-family:'Calibri','Segoe UI',Arial,sans-serif;color:var(--nautt-text);}
.page{
  background:var(--nautt-bg);
  max-width:880px;
  margin:24px auto;
  padding:48px 64px 80px 64px;
  box-shadow:0 4px 24px rgba(0,0,0,.08);
  position:relative;
  overflow:hidden;
}
/* Decorative watermark inspired by NDA */
.page::before{
  content:"";
  position:absolute;
  right:-30px;
  top:120px;
  width:280px;
  height:520px;
  background-image:
    linear-gradient(transparent 60%, rgba(16,58,34,.06) 60%, rgba(16,58,34,.06) 62%, transparent 62%),
    linear-gradient(90deg, transparent 70%, rgba(16,58,34,.06) 70%, rgba(16,58,34,.06) 72%, transparent 72%);
  pointer-events:none;
  z-index:0;
}
.page::after{
  content:"";
  position:absolute;
  right:40px;
  top:240px;
  width:140px;
  height:140px;
  border:2px solid rgba(16,58,34,.08);
  border-radius:50%;
  pointer-events:none;
  z-index:0;
}
.container{position:relative;z-index:2}

/* Header / logo */
.header{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:36px;
}
.logo-img{
  height:36px;
  width:auto;
  display:block;
}
.logo-mark{
  font-family:'Arial Black','Helvetica',sans-serif;
  font-weight:900;
  font-size:34px;
  color:var(--nautt-green);
  letter-spacing:-1px;
  line-height:1;
}
.logo-mark .hash{
  display:inline-block;
  transform:skewX(-8deg);
  margin-right:2px;
}
.logo-mark .dot{color:var(--nautt-green)}
.logo-finance{
  font-family:'Arial',sans-serif;
  font-size:11px;
  letter-spacing:6px;
  color:var(--nautt-green);
  margin-left:8px;
  margin-top:14px;
  font-weight:500;
}

/* Document title */
h1.doc-title{
  text-align:center;
  font-size:18px;
  font-weight:700;
  color:var(--nautt-text);
  margin:30px 0 36px;
  letter-spacing:.5px;
}

/* Section title bar - inspired by NDA bold headings */
h2.section{
  font-size:13.5px;
  font-weight:700;
  color:var(--nautt-green);
  margin:30px 0 14px;
  padding-bottom:6px;
  border-bottom:1.5px solid var(--nautt-green);
  letter-spacing:.4px;
  text-transform:uppercase;
}
h3.subsection{
  font-size:12.5px;
  font-weight:700;
  color:var(--nautt-green-soft);
  margin:22px 0 10px;
  padding-left:8px;
  border-left:3px solid var(--nautt-green);
  text-transform:uppercase;
  letter-spacing:.3px;
}
h4.subsubsection{
  font-size:12px;
  font-weight:700;
  color:var(--nautt-text);
  margin:16px 0 8px;
}

/* Field rows */
.field{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:8px 0;
  font-size:12px;
}
.field label{
  color:var(--nautt-text);
  min-width:280px;
  font-size:12px;
}
.field label.bullet::before{
  content:"• ";
  color:var(--nautt-green);
  font-weight:700;
}
.field input[type="text"],
.field input[type="number"],
.field input[type="date"],
.field textarea{
  flex:1;
  min-width:200px;
  padding:6px 10px;
  border:1px solid var(--nautt-border);
  border-radius:4px;
  font-family:inherit;
  font-size:12px;
  background:#fbfcfb;
  transition:border-color .15s, background .15s;
}
.field input[type="text"]:focus,
.field input[type="number"]:focus,
.field input[type="date"]:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--nautt-green);
  background:#fff;
}
.field textarea{
  min-height:60px;
  resize:vertical;
  width:100%;
  flex:1 1 100%;
}

/* Checkable () options */
.opt{
  display:flex;
  align-items:center;
  gap:8px;
  margin:5px 0 5px 16px;
  font-size:12px;
  cursor:pointer;
  user-select:none;
}
.opt input{display:none}
.check-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  border:1.5px solid var(--nautt-green);
  border-radius:3px;
  background:#fff;
  font-family:'Courier New',monospace;
  font-weight:700;
  color:var(--nautt-green);
  font-size:13px;
  flex-shrink:0;
  transition:all .15s;
}
.opt:hover .check-mark{background:var(--nautt-green-light)}
.opt input:checked + .check-mark{
  background:var(--nautt-green);
  color:#fff;
}
.opt input:checked + .check-mark::after{content:"✓"}
.opt-label{flex:1}
.opt-inline{
  display:inline-block;
  padding:2px 8px;
  border:1px dashed var(--nautt-border);
  border-radius:3px;
  margin-left:6px;
  background:#fbfcfb;
  min-width:140px;
  font-size:11.5px;
}
.opt-inline:focus{outline:1px solid var(--nautt-green);background:#fff}

/* Group of options */
.options-group{margin:6px 0 14px}
.options-row{display:flex;flex-wrap:wrap;gap:14px;margin:4px 0 14px}
.options-row .opt{margin-left:0}

/* Conditional indicator */
.cond{
  background:var(--nautt-green-light);
  border-left:3px solid var(--nautt-green);
  padding:10px 14px;
  margin:10px 0;
  font-size:11.5px;
  color:var(--nautt-green-soft);
  font-style:italic;
}

/* Item 12 special value field */
.value-field{
  margin:10px 0 14px 16px;
  padding:12px;
  background:var(--nautt-green-light);
  border:1px dashed var(--nautt-green);
  border-radius:4px;
}
.value-field label{
  font-weight:700;
  font-size:12px;
  color:var(--nautt-green);
  margin-right:10px;
}
.value-field input{
  padding:6px 10px;
  border:1px solid var(--nautt-green);
  border-radius:4px;
  font-size:12px;
  width:240px;
  background:#fff;
}

/* Declaration */
.declaration{
  margin:12px 0;
  padding:12px 16px;
  background:#fafbfa;
  border:1px solid var(--nautt-border);
  border-radius:4px;
  font-size:12px;
}
.declaration .opt{margin-left:0;font-weight:600}

/* Signature area */
.signature-area{
  margin-top:50px;
  padding-top:30px;
  border-top:1px dashed var(--nautt-border);
}
.signature-line{
  margin-top:60px;
  text-align:center;
  border-top:1px solid var(--nautt-text);
  padding-top:6px;
  width:340px;
  margin-left:auto;
  margin-right:auto;
  font-size:11px;
  color:var(--nautt-muted);
}

/* Footer */
.footer{
  margin-top:60px;
  padding-top:14px;
  border-top:1px solid var(--nautt-border);
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:10.5px;
  color:var(--nautt-muted);
}
.footer-left{font-weight:700;color:var(--nautt-text)}
.footer-right{display:flex;gap:14px;align-items:center}
.footer-right .social{display:flex;align-items:center;gap:5px}
.icon-circle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;height:14px;
  border-radius:50%;
  background:var(--nautt-green);
  color:#fff;
  font-size:9px;
  font-weight:700;
}
.icon-x{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:14px;height:14px;
  background:var(--nautt-green);
  color:#fff;
  font-size:9px;
  font-weight:900;
}
.rubrica{
  text-align:center;
  font-size:10.5px;
  font-weight:700;
  color:var(--nautt-text);
  margin-top:30px;
}

/* Conditional blocks for partner type */
.conditional-block{
  display:none;
  margin:14px 0;
  padding:16px 18px;
  background:#fafdfb;
  border:1px solid var(--nautt-border);
  border-left:4px solid var(--nautt-green);
  border-radius:4px;
}
.conditional-block.active{display:block}
.partner-card{
  margin:14px 0;
  padding:18px;
  border:1px solid var(--nautt-border);
  border-radius:6px;
  background:#fff;
  position:relative;
}
.partner-card .card-title{
  font-size:12.5px;
  font-weight:700;
  color:var(--nautt-green);
  text-transform:uppercase;
  letter-spacing:.3px;
  margin-bottom:10px;
  padding-bottom:6px;
  border-bottom:1px dashed var(--nautt-border);
}
.partner-card .remove-btn{
  position:absolute;
  top:10px;
  right:10px;
  background:#fff;
  color:#a33;
  border:1px solid #d8a8a8;
  border-radius:4px;
  padding:3px 10px;
  font-size:10.5px;
  cursor:pointer;
  font-weight:600;
}
.partner-card .remove-btn:hover{background:#fbecec}
.add-btn{
  background:#fff;
  color:var(--nautt-green);
  border:1.5px dashed var(--nautt-green);
  padding:8px 16px;
  border-radius:4px;
  font-size:11.5px;
  font-weight:600;
  cursor:pointer;
  margin:8px 0 14px;
  transition:all .15s;
}
.add-btn:hover{background:var(--nautt-green-light)}
.nested-partners{
  margin-top:14px;
  padding:12px 14px;
  background:#f7faf8;
  border:1px dashed var(--nautt-green);
  border-radius:4px;
}
.nested-partners .nested-title{
  font-size:11.5px;
  font-weight:700;
  color:var(--nautt-green-soft);
  text-transform:uppercase;
  letter-spacing:.3px;
  margin-bottom:8px;
}

/* PDF Button */
.actions{
  position:sticky;
  bottom:20px;
  text-align:center;
  margin-top:40px;
  z-index:50;
}
.btn-pdf{
  background:var(--nautt-green);
  color:#fff;
  border:none;
  padding:14px 36px;
  font-size:14px;
  font-weight:700;
  letter-spacing:.5px;
  border-radius:6px;
  cursor:pointer;
  box-shadow:0 4px 16px rgba(16,58,34,.35);
  transition:all .2s;
  text-transform:uppercase;
}
.btn-pdf:hover{background:var(--nautt-green-soft);transform:translateY(-2px);box-shadow:0 6px 20px rgba(16,58,34,.45)}
.btn-pdf:active{transform:translateY(0)}
.btn-secondary{
  background:#fff;
  color:var(--nautt-green);
  border:1.5px solid var(--nautt-green);
  margin-left:10px;
}
.btn-secondary:hover{background:var(--nautt-green-light)}

/* Hide elements when generating PDF */
.pdf-hide{display:block}
body.generating-pdf .pdf-hide{display:none !important}
body.generating-pdf .page{box-shadow:none;margin:0;max-width:none}
body.generating-pdf .remove-btn,
body.generating-pdf .add-btn{display:none !important}
body.generating-pdf .conditional-block:not(.active){display:none !important}
body.generating-pdf .char-counter,
body.generating-pdf [id^="cont_"]{display:none !important}

@media print{
  .pdf-hide{display:none}
  .page{box-shadow:none;margin:0}
  body{background:#fff}
}
