﻿/* Basislayout */
.aufnahmeantrag.form-container { max-width: 860px; margin: 1rem auto; padding: 1rem; background: #fff; border: 1px solid #e2e2e2; border-radius: 6px; }
.aufnahmeantrag .form-group { display:flex; flex-direction:column; margin-bottom: .8rem; }
.aufnahmeantrag label { display:block; font-weight:600; margin-bottom:.25rem; }
/* Checkbox-Reihe als "versteckte Tabelle" fuer saubere Top-Ausrichtung */
.aufnahmeantrag .form-group.checkbox { display:table; border-collapse:separate; border-spacing:.5rem 0; }
.aufnahmeantrag .form-group.checkbox input[type=checkbox],
.aufnahmeantrag .form-group.checkbox label { display:table-cell; vertical-align:top; }
.aufnahmeantrag .form-group.checkbox input[type=checkbox] { margin:0; position:relative; top:.14em; }
.aufnahmeantrag .form-group.checkbox label { margin:0; font-weight:400; line-height:1.2; }
.aufnahmeantrag .form-group.checkbox input[type=checkbox] { margin-top:0; margin-right:.5rem; }
.aufnahmeantrag .form-group.checkbox label { display:inline; margin:0; font-weight:400; }
.aufnahmeantrag input[type=text],
.aufnahmeantrag input[type=email],
.aufnahmeantrag input[type=tel] { width:100%; padding:.5rem; border:1px solid #ccc; border-radius:4px; }
.aufnahmeantrag fieldset { border:1px solid #ddd; padding:1rem; margin:1rem 0; }
.aufnahmeantrag legend { font-weight:700; padding:0 .5rem; }
.aufnahmeantrag .errors { background:#ffecec; border:1px solid #e3a8a8; color:#8a1f1f; padding:.75rem; border-radius:4px; }
.aufnahmeantrag .success { background:#e9f9ee; border:1px solid #b7e1c1; color:#1d6b37; padding:.75rem; border-radius:4px; }
.aufnahmeantrag .fee-table { width:100%; border-collapse: collapse; }
.aufnahmeantrag .fee-table th, .aufnahmeantrag .fee-table td { border:1px solid #eee; padding:.5rem; text-align:left; }
.aufnahmeantrag .fee-desc { width:60%; }
.aufnahmeantrag .fee-radio { width:20%; text-align:center; }
.aufnahmeantrag .fee-radio input[type=radio] {
  vertical-align: middle;
}
.aufnahmeantrag .fee-radio label {
  display: inline-block;
  margin-left: .35rem;
  font-weight: 400;
  vertical-align: middle;
}
.aufnahmeantrag .member-block { border:1px dashed #ddd; padding:.75rem; border-radius:4px; margin-bottom:1rem; }
.aufnahmeantrag .radio-group { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; }
.aufnahmeantrag .member-buttons { display:flex; gap:.5rem; margin:.5rem 0; }
.aufnahmeantrag button[type=submit] { background:#1e73be; color:#fff; border:none; padding:.6rem 1rem; border-radius:4px; cursor:pointer; }
.aufnahmeantrag button[disabled] { opacity:.6; cursor:not-allowed; }

/* Required field feedback (gelb/optional gruen) */
.aufnahmeantrag input:required:invalid,
.aufnahmeantrag select:required:invalid,
.aufnahmeantrag textarea:required:invalid {
  border: 2px solid gold;
  box-shadow: 0 0 5px rgba(255, 215, 0, 0.5);
}
.aufnahmeantrag input:required:valid,
.aufnahmeantrag select:required:valid,
.aufnahmeantrag textarea:required:valid {
  border: 2px solid #28a745;
}
/* Radios/Checkboxen: required-Zustand visualisieren */
.aufnahmeantrag input[type=radio]:required:invalid { outline: 2px solid gold; outline-offset: 2px; }
.aufnahmeantrag input[type=radio]:required:valid   { outline: 2px solid #28a745; outline-offset: 2px; }
.aufnahmeantrag input[type=checkbox]:required:invalid { outline: 2px solid gold; outline-offset: 2px; }
.aufnahmeantrag input[type=checkbox]:required:checked { outline: 2px solid #28a745; outline-offset: 2px; }

