[data-slfb], .slfb-wrap{
  max-width: 980px;
  margin: 0 auto;
  padding: 16px;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 14px;
}
.slfb-header{ margin-bottom: 14px; }
.slfb-title{ margin: 0 0 6px; }
.slfb-subtitle{ margin: 0; opacity: 0.85; }
.slfb-subnote{ margin: 8px 0 0; opacity: 0.8; font-size: 12px; }

.slfb-req{ color: #b00020; }

.slfb-hr{ border: none; border-top: 1px solid rgba(0,0,0,0.1); margin: 18px 0; }

.slfb-steps{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin: 14px 0 18px;
}
.slfb-step{
  border:1px solid rgba(0,0,0,0.14);
  background: transparent;
  padding: 8px 10px;
  border-radius: 999px;
  cursor:pointer;
  font-size: 13px;
}
.slfb-step.is-active{ font-weight: 700; }

.slfb-panel{ display:none; }
.slfb-panel.is-active{ display:block; }

.slfb-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.slfb-card{
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 14px;
  padding: 12px;
  display:block;
  cursor:pointer;
}
.slfb-card input{ margin-right: 8px; }
.slfb-card-title{ display:block; font-weight: 700; margin-top: 6px; }
.slfb-card-desc{ display:block; opacity: 0.85; margin-top: 6px; font-size: 13px; }

.slfb-row{ margin: 12px 0; }
.slfb-label{ display:block; font-weight: 600; margin-bottom: 6px; }
.slfb-help{ margin: 6px 0 0; opacity: 0.8; font-size: 12px; }
.slfb-inline{ display:flex; gap: 10px; align-items:center; flex-wrap:wrap; }
.slfb-wraplines label{ white-space: nowrap; }

.slfb-row input[type="text"],
.slfb-row input[type="email"],
.slfb-row input[type="number"],
.slfb-row input[type="file"],
.slfb-row select,
.slfb-row textarea{
  width: 100%;
  max-width: 560px;
  padding: 9px 10px;
  border: 1px solid rgba(0,0,0,0.18);
  border-radius: 10px;
  box-sizing: border-box;
}

.slfb-actions{
  display:flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 14px;
}
.slfb-btn{
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,0.18);
  background: transparent;
  cursor:pointer;
}
.slfb-btn-primary{ font-weight: 700; }

.is-hidden{ display:none !important; }

.slfb-reco{
  margin-top: 14px;
  padding: 12px;
  border-radius: 14px;
  border: 1px dashed rgba(0,0,0,0.25);
}
.slfb-reco-title{ font-weight: 700; margin-bottom: 6px; }
.slfb-warnings{ margin: 8px 0 0; padding-left: 16px; }

.slfb-summary{
  white-space: pre-wrap;
  border: 1px solid rgba(0,0,0,0.14);
  padding: 12px;
  border-radius: 14px;
  background: rgba(0,0,0,0.02);
}

.slfb-errors{
  border: 1px solid rgba(176,0,32,0.35);
  background: rgba(176,0,32,0.06);
  padding: 10px 12px;
  border-radius: 12px;
  margin-bottom: 12px;
}
.slfb-status{ margin-top: 12px; }
.slfb-status.is-error{ color: #b00020; }

.slfb-table{ width: 100%; border-collapse: collapse; }
.slfb-table th, .slfb-table td{ border-bottom: 1px solid rgba(0,0,0,0.1); padding: 10px; text-align: left; vertical-align: top;}
.slfb-pre{ white-space: pre-wrap; margin: 0; }

.slfb-status-pill{
  display:inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.2);
  font-size: 11px;
}
