/* =====================================================================
   modern.css - moderne, kompakte Darstellung der Online-Pruefungsanmeldung.

   Alle Regeln sind unter ".pa-app" gekapselt, damit sie die alten
   Inline-Styles ueberschreiben, aber NICHT mit dem umgebenden
   CMS-/Template-Layout kollidieren. Keine Feldnamen / Logik veraendert.

   Akzentfarbe zentral ueber die CSS-Variablen unten anpassbar
   (aktuell FernUni-Blau rgb(0,76,151)).
   ===================================================================== */

.pa-app {
  --pa-accent:        rgb(0, 76, 151);
  --pa-accent-dark:   rgb(0, 58, 115);
  --pa-accent-soft:   #eef4fb;
  --pa-accent-border: #b9d2ec;
  --pa-text:          #1f2933;
  --pa-muted:         #5b6b73;
  --pa-line:          #d8e0e6;
  --pa-error:         #d64545;

  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--pa-text);
  line-height: 1.4;
  font-size: 15px;
  max-width: 680px;
  margin: 0 auto;
  padding: 8px 10px 16px;
  -webkit-text-size-adjust: 100%;
}

.pa-app *,
.pa-app *::before,
.pa-app *::after { box-sizing: border-box; }

.pa-app h1, .pa-app h2, .pa-app h3, .pa-app h4 {
  color: var(--pa-accent);
  line-height: 1.2;
  margin: 0 0 8px;
  font-weight: 700;
}
.pa-app h1 { font-size: 1.3rem; }
.pa-app h4 { font-size: 1rem; margin: 2px 0 6px; }
.pa-app p  { margin: 0 0 8px; }
.pa-app a  { color: var(--pa-accent); }

/* ---------- Karten / Container ---------- */
.pa-app .orderForm {
  margin: 0 0 12px !important;
  padding: 16px !important;
  border: 1px solid var(--pa-line) !important;
  background: #ffffff !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 16px rgba(0, 76, 151, 0.07) !important;
}

/* ---------- Hinweis-/Infoboxen ---------- */
.pa-app .info {
  margin: 0 0 12px !important;
  padding: 10px 12px !important;
  border: 1px solid var(--pa-accent-border) !important;
  border-left: 4px solid var(--pa-accent) !important;
  border-radius: 8px !important;
  background: var(--pa-accent-soft) !important;
  color: #143b44 !important;
  font-size: 0.9rem !important;
  line-height: 1.45 !important;
  width: auto !important;
}
/* Fehler-Hinweise (legacy: inline background-color:#ffbab5) */
.pa-app .info[style*="ffbab5"],
.pa-app .info[style*="ffbab5"] strong {
  border-color: #f3b6b0 !important;
  border-left-color: var(--pa-error) !important;
  background: #fdf1f0 !important;
  color: #7a1f1a !important;
}

/* ---------- Fieldset / Zeilen ---------- */
.pa-app .orderFieldSet {
  width: auto !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  border: none !important;
}
.pa-app .orderFieldSet p,
.pa-app form p {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 10px;
  margin: 0 !important;
  padding: 4px 0 !important;
}
.pa-app .legend,
.pa-app p.legend { display: block !important; color: var(--pa-muted); font-size: 0.8rem !important; padding: 2px 0 !important; }

/* ---------- Labels ---------- */
.pa-app label.mobileFloat,
.pa-app .orderFieldSet label {
  display: block !important;
  width: 150px !important;
  min-width: 150px;
  margin: 0 !important;
  padding: 0 !important;
  font-family: inherit !important;
  font-weight: 600;
  color: #33424a;
}

/* ---------- Eingabefelder ---------- */
.pa-app input[type="text"],
.pa-app input[type="password"],
.pa-app input[type="email"],
.pa-app input[type="tel"],
.pa-app select {
  flex: 1 1 220px;
  width: auto !important;
  min-width: 180px;
  height: auto !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  border: 1px solid #c4d0d8 !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--pa-text) !important;
  font-size: 15px !important;
  font-family: inherit !important;
  line-height: 1.3 !important;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.pa-app select { height: 38px !important; cursor: pointer; }

.pa-app input[type="text"]:focus,
.pa-app input[type="password"]:focus,
.pa-app input[type="email"]:focus,
.pa-app input[type="tel"]:focus,
.pa-app select:focus {
  outline: none !important;
  border-color: var(--pa-accent) !important;
  box-shadow: 0 0 0 3px rgba(0, 76, 151, 0.15) !important;
}
.pa-app input.error,
.pa-app select.error {
  border-color: var(--pa-error) !important;
  box-shadow: 0 0 0 3px rgba(214, 69, 69, 0.13) !important;
}

/* ---------- Radio-/Checkbox-Gruppen (z. B. Geschlecht Frau/Herr) ---------- */
/* Optionen werden in <span class="pa-radiogroup"> mit <label class="pa-radio">
   gebuendelt -> das Label + die Gruppe sind genau zwei Flex-Items und bleiben
   sauber nebeneinander (unabhaengig von :has-Unterstuetzung). */
.pa-app .pa-radiogroup {
  display: inline-flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 20px;
}
.pa-app label.pa-radio {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 500 !important;
  color: var(--pa-text);
  cursor: pointer;
}
.pa-app input[type="radio"],
.pa-app input[type="checkbox"] {
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  vertical-align: middle;
  transform: scale(1.1);
  accent-color: var(--pa-accent);
}

/* ---------- Checkbox-Liste (z. B. Kursauswahl) ---------- */
.pa-app .pa-checklist {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 4px 0 2px;
}
.pa-app label.pa-check {
  display: flex !important;
  align-items: flex-start;
  gap: 9px;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 9px 11px !important;
  border: 1px solid var(--pa-line);
  border-radius: 8px;
  font-weight: 500 !important;
  color: var(--pa-text);
  cursor: pointer;
  transition: background .12s ease, border-color .12s ease;
}
.pa-app label.pa-check:hover {
  background: var(--pa-accent-soft);
  border-color: var(--pa-accent-border);
}
.pa-app label.pa-check input[type="checkbox"] { margin-top: 2px !important; flex: 0 0 auto; }
.pa-app .pa-check-main { flex: 1 1 auto; min-width: 0; }
.pa-app .pa-check-nr { color: var(--pa-muted); font-weight: 600; margin-right: 4px; }
.pa-app .pa-check-fee { margin-left: auto; padding-left: 12px; white-space: nowrap; font-weight: 600; color: var(--pa-accent); }
.pa-app .pa-sum {
  text-align: right;
  margin: 8px 2px 2px;
  padding-top: 8px;
  border-top: 1px solid var(--pa-line);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--pa-accent);
}

/* ---------- Buttons ---------- */
.pa-app input.submitbutton,
.pa-app input[type="submit"],
.pa-app button {
  display: inline-block;
  -webkit-appearance: none;
  appearance: none;
  width: auto !important;
  height: auto !important;
  margin: 6px 0 0 !important;
  padding: 10px 20px !important;
  border: none !important;
  border-radius: 8px !important;
  background: var(--pa-accent) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  font-family: inherit !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(0, 76, 151, 0.25) !important;
  transition: background .15s ease, transform .04s ease;
}
.pa-app input.submitbutton:hover,
.pa-app input[type="submit"]:hover,
.pa-app button:hover { background: var(--pa-accent-dark) !important; }
.pa-app input.submitbutton:active,
.pa-app input[type="submit"]:active,
.pa-app button:active { transform: translateY(1px); }
.pa-app a > input.submitbutton { text-decoration: none; }

/* ---------- Pflichtfeld-Markierung ---------- */
.pa-app sup,
.pa-app .legend span { color: var(--pa-error); }

/* ---------- Zusammenfassung / Tabellen ---------- */
.pa-app .orderForm fieldset {
  width: auto !important;
  margin: 2px 0 !important;
  padding: 0 !important;
  border: none !important;
}
.pa-app table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 4px 0 !important;
}
.pa-app .orderForm td,
.pa-app .orderForm th,
.pa-app table.kurseTableVar td,
.pa-app table.kurseTableVar th {
  padding: 6px 8px !important;
  border-bottom: 1px solid #eef2f5 !important;
  text-align: left;
  vertical-align: top;
}

/* ---------- Responsiv ---------- */
@media (max-width: 560px) {
  .pa-app { padding: 6px 8px 16px; }
  .pa-app .orderForm { padding: 12px !important; border-radius: 10px !important; }
  .pa-app label.mobileFloat,
  .pa-app .orderFieldSet label {
    width: 100% !important;
    min-width: 0;
    margin-bottom: 2px !important;
  }
  .pa-app .orderFieldSet p,
  .pa-app form p { flex-direction: column; align-items: stretch; }
  /* Radio-Optionen bleiben auch mobil inline lesbar */
  .pa-app label.pa-radio { width: auto !important; min-width: 0 !important; }
  .pa-app input[type="text"],
  .pa-app input[type="password"],
  .pa-app input[type="email"],
  .pa-app input[type="tel"],
  .pa-app select { width: 100% !important; min-width: 0; flex-basis: auto; }
  .pa-app input.submitbutton,
  .pa-app input[type="submit"] { width: 100% !important; }
}
