.form-container {
  max-width: 800px;      /* oder 600px, je nach Wunsch */
  margin: 0 auto;        /* zentriert das Formular horizontal */
  padding: 1rem;         /* etwas Innenabstand */
  box-sizing: border-box;
}

/* Container für eine Zeile mit mehreren Feldern */
.form-row {
  display: flex;
  flex-wrap: wrap;     /* Zeilenumbruch bei kleiner Breite */
  gap: 1rem;           /* Abstand zwischen Feldern */
  margin-bottom: 1rem; /* Abstand zur nächsten Zeile */
}

/* Einzelnes Feld mit Label und Input */
.form-group {
  display: flex;
  flex-direction: column;  /* Label über dem Input */
  flex: 1;                 /* alle gleich breit */
  min-width: 150px;        /* verhindert zu schmale Felder */
}

.form-group label {
  display: flex;
  margin-bottom: 0.4rem;
  font-weight: bold;
  text-align: left;     /* Links ausrichten */
}

/* Input soll volle Breite des Feldes nutzen */
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 0.5rem;
  box-sizing: border-box;
}

/* Dient zur farblichen Hervorhebung eines fehlerhaften input-Feldes */
.input-error {
  border-color: red;
  /* background-color: #ffecec; */
}

/* Formatierung der Fehlermeldung für ein input-Feld */
.error-message {
  color: red;
  font-size: 0.9rem;
  /* margin-top: 0.25rem; */
}

button.button-as-link {
    -webkit-appearance: none !important;
    all: unset;
    appearance: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: inline !important;
    text-decoration: underline !important;
    background-color: transparent !important;
    border: 0 solid transparent !important;
    color: var(--accent);
    cursor: pointer !important;
    size: 1.15rem;
}

/* Wenn im main eine Tabelle steckt, darf main aus dem schmalen Body ausbrechen */
main:has(table) {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;

  /* Außenabstand zum Rest der Seite */
  margin-block: 2rem;
}

main:has(table) > * {
  max-width: 1400px;
  margin-inline: auto;
  padding-inline: 2rem;  /* Luft links/rechts */
  box-sizing: border-box;
}

main img.inline-icon {
  vertical-align: text-bottom !important; /* oder: bottom, baseline */
  /*height: 1em;*/                 /* skaliert das Bild auf Textgröße */
  width: auto;                 /* Seitenverhältnis beibehalten */
}