.ffn-aa-wizard{ max-width: 1120px; margin: 24px auto; padding: 0 14px; }
.ffn-aa-header{ margin-bottom: 10px; }
.ffn-aa-card{ background:#fff; border:1px solid #dcdcde; border-radius:16px; padding:18px; margin:16px 0; }
.ffn-aa-grid2{ display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
.ffn-aa-grid3{ display:grid; grid-template-columns: 2fr 1fr 2fr; gap:12px; }
.ffn-aa-grid3 .span2{ grid-column: span 2; }

.ffn-aa-wizard input[type=text], .ffn-aa-wizard input[type=email], .ffn-aa-wizard input[type=tel], .ffn-aa-wizard input[type=date], .ffn-aa-wizard select, .ffn-aa-wizard textarea{
  width:100%; max-width: 100%; padding:10px 12px; border:1px solid #c3c4c7; border-radius:12px;
}
.ffn-aa-wizard label{ display:block; font-weight:600; margin: 8px 0 6px; }
.ffn-aa-subhead{ margin: 14px 0 6px; font-size: 14px; }
.ffn-aa-check{ display:flex; gap:10px; align-items:flex-start; margin: 10px 0; }
.ffn-aa-check input{ margin-top: 4px; }
.ffn-aa-radio{ display:flex; gap:10px; align-items:center; margin: 10px 0; }
.ffn-aa-actions{ display:flex; gap:12px; align-items:center; margin-top: 10px; }
.ffn-aa-nav{ display:flex; justify-content: space-between; gap:12px; margin-top: 10px; }

.ffn-aa-required{ color:#b32d2e; }
.ffn-aa-muted{ color:#646970; }
.ffn-aa-muted.small{ font-size: 12px; }
.ffn-aa-message{ margin-top: 12px; padding: 10px 12px; border-radius: 12px; }
.ffn-aa-message.ok{ background:#edf7ed; border:1px solid #b7e1b7; }
.ffn-aa-message.err{ background:#fcf0f1; border:1px solid #f3c1c6; }
.ffn-aa-invalid{ outline: 2px solid rgba(179,45,46,.35); outline-offset: 2px; }

.ffn-aa-step{ display:none; }
.ffn-aa-step.is-active{ display:block; }

/* Stepper: larger, readable, classic wizard feel */
.ffn-aa-stepper{
  list-style:none;
  display:flex;
  gap:12px;
  padding:0;
  margin: 14px 0 0;
  align-items: stretch;
  flex-wrap: nowrap;
}
.ffn-aa-stepper li{
  flex:1;
  min-width: 190px;
  display:flex;
  gap:12px;
  align-items:center;
  background:#fff;
  border:1px solid #dcdcde;
  border-radius: 16px;
  padding: 12px 14px;
}
.ffn-aa-stepper li span{
  width: 34px; height: 34px;
  border-radius: 999px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid #c3c4c7;
  font-weight: 800;
  color:#1d2327;
  font-size: 14px;
}
.ffn-aa-stepper li div{
  font-weight: 700;
  color:#1d2327;
  font-size: 14px;
  line-height: 1.2;
}
.ffn-aa-stepper li.is-done{ opacity: .82; }
.ffn-aa-stepper li.is-done span{ background:#edf7ed; border-color:#b7e1b7; }
.ffn-aa-stepper li.is-active{ border-color:#9aa0a6; box-shadow: 0 1px 0 rgba(0,0,0,.05); }

.ffn-aa-summary .row{ margin: 6px 0; }
.ffn-aa-upload-table input[type=file]{ padding: 6px; border:1px dashed #c3c4c7; border-radius: 12px; background:#fff; }

@media (max-width: 980px){
  .ffn-aa-stepper{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
  }
  .ffn-aa-stepper li{ flex: 0 0 220px; }
}
@media (max-width: 860px){
  .ffn-aa-grid2{ grid-template-columns: 1fr; }
  .ffn-aa-grid3{ grid-template-columns: 1fr; }
  .ffn-aa-grid3 .span2{ grid-column: auto; }
}

.ffn-aa-email-hint{ margin-top:6px; }
