/* ============================================================
   safeguard-ds-av-assistent — Modul-Styles des AV-Assistenten
   ------------------------------------------------------------
   Additiv. Schrittleiste, Navigation und Fehlerzeile kommen aus
   blocks/wizard; Formularzeilen aus blocks/forms; die Ankreuz-Pillen
   aus blocks/flag-check. Hier steht nur, was den Assistenten ausmacht:
   Seitenrahmen, Bereichs-Gliederung, Vorschau.
   ============================================================ */

.sgds-av-main {
  padding: var(--space-6);
  max-width: 1100px;
}

.sgds-av-intro { margin-bottom: var(--space-5); }
.sgds-av-intro h2 {
  margin: 0 0 var(--space-2);
  font-size: var(--font-xl, 1.25rem);
  color: var(--ink);
}
.sgds-av-intro p {
  margin: 0;
  max-width: 70ch;
  color: var(--mid);
  line-height: 1.5;
}

.sgds-av-wizard {
  padding: var(--space-5);
  border: 1px solid var(--line);
  border-radius: var(--radius-md, 6px);
  background: var(--white);
}

/* ---- Hinweiszeilen ---- */
/* `.sgds-av-hint` und `.sgds-av-warnung` sind ersatzlos weg (v0.3.1): beide
   sind der Shared-Baustein `_shared/blocks/hint` (`.idf-hint` bzw.
   `.idf-hint is-warnung`). Der Nachbau war ein Flex-Container und hat im
   Formular nie gewonnen - dort setzt `.idf-form > .idf-form-row-full`
   (blocks/forms) `display: grid` mit hoeherer Spezifitaet, weshalb das Icon
   auf einer eigenen Zeile ueber dem Text stand (Joerg-Meldung 2026-07-28,
   Schritt 1 des Assistenten). Mit weg sind auch die beiden
   `min-width: 0`-Workarounds: der Shared-Kasten ist kein Flex-Container. */

/* Rollen-Erklaerung unter der Richtungs-Auswahl: kein Kasten, nur eine
   graue Zeile. Wird per textContent gefuellt, also reiner Text - hier gibt
   es das Umbruch-Problem nicht, deshalb bleibt sie modul-eigen. */
.sgds-av-rollehint {
  color: var(--mid);
  min-height: 1.4em;
}

/* Vorlagen-Zeile in Schritt 2: Icon, "Vorlage:", Bezeichnung, Fassungs-Pille
   nebeneinander. Der Selektor nennt `.idf-form >` mit, weil
   `.idf-form > .idf-form-row-full` (blocks/forms) `display: grid` mit (0,2,0)
   setzt - ein blosses `.sgds-av-vorlage { display: flex }` (0,1,0) verliert,
   und dann stand jedes der vier Kinder auf einer eigenen Zeile (v0.4.2).
   Dieselbe Ursache wie bei den Hinweis-Boxen, hier ohne Kasten. */
.idf-form > .idf-form-row-full.sgds-av-vorlage,
.sgds-av-vorlage {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
  color: var(--mid);
}

/* ---- Ankreuzlisten der Anlagen ---- */
.sgds-av-anlage {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.sgds-av-bereich {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0 0 var(--space-3);
  overflow: hidden;
}
.sgds-av-bereich-head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 8px 10px;
  margin-bottom: var(--space-2);
  background: var(--neutral-bg);
  border-bottom: 1px solid var(--line);
  font-weight: 500;
  color: var(--ink);
}
/* Titel nimmt den Restraum, Zähler und Knopf stehen rechts. */
.sgds-av-bereich-head > span:first-child { flex: 1 1 auto; min-width: 0; }
.sgds-av-bereich-count {
  flex: 0 0 auto;
  color: var(--mid);
  font-size: var(--font-md);
  font-weight: 400;
}

/* Eine Position pro Zeile. Vorher liefen die Pillen als Fliesstext um -
   bei 88 TOMs war nicht erkennbar, wo eine Position endet. Geschaltet wird
   ausschliesslich ueber die Pille; der Text daneben ist bewusst NICHT
   klickbar, damit man nicht beim Lesen versehentlich ankreuzt. */
.sgds-av-punkt {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  padding: 3px var(--space-3);
  min-width: 0;
}
.sgds-av-punkt:hover { background: var(--bg-hover); }
.sgds-av-punkt-text {
  min-width: 0;
  padding-top: 4px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
/* Beim Tippen einer neuen Position nimmt das Feld die ganze Zeilenbreite.
   Ohne das erbt es nur `min-width: 0` aus der Text-Regel und steht als
   schmaler Stummel da - ein Titel wie „Tierhalter-Stammdaten inkl. Tiernamen"
   war darin nicht zu lesen. Nur Layout; der Skin des Feldes bleibt Shared
   (.idf-inline-edit-input). */
.sgds-av-punkt input.idf-inline-edit-input {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 0;
}
.sgds-av-punkt-text small {
  display: block;
  color: var(--mid);
  font-size: var(--font-md);
}

/* Erklärung unter einem Sektionskopf: kein Kasten, nur eine graue Zeile.
   Der Hilfe-Kasten oben sagt, worum es im Schritt geht; das hier sagt, was
   dieser eine Abschnitt im Vertrag bedeutet. */
.sgds-av-bereich-text {
  margin: 0;
  padding: 0 var(--space-3) var(--space-2);
  color: var(--mid);
  line-height: 1.45;
}

.sgds-av-multiselect { padding: var(--space-3); }

/* ---- Selbst angelegte Positionen (#373) ----
   Sie sehen aus wie jede andere Position; nur der Entfernen-Knopf verraet,
   dass sie aus diesem Lauf stammt. Er erscheint erst beim Hover ueber der
   Zeile, damit die Liste ruhig bleibt (Muster der Pen-Pillen). */
.sgds-av-punkt-del {
  margin-left: var(--space-1);
  flex: 0 0 auto;
  opacity: 0;
  transition: opacity var(--motion-fast, 120ms) ease;
}
.sgds-av-punkt:hover .sgds-av-punkt-del,
.sgds-av-punkt-del:focus-visible { opacity: 1; }

/* ---- „In Vorlage übernehmen" (#374) ----
   Der Knopf steht dauerhaft, nicht erst beim Hover: er ist der Weg, eine
   einmal getippte Position zu behalten, und muss auffindbar sein. Nach der
   Übernahme bleibt an derselben Stelle eine stille Zustands-Pille. */
.sgds-av-punkt-slot {
  margin-left: auto;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
}
.sgds-av-in-vorlage { background: var(--tint-neutral); color: var(--mid); }

/* Der Hinzufuegen-Knopf schliesst die Sektion ab. */
.sgds-av-add { padding: var(--space-1) var(--space-3) var(--space-2); }

/* ---- Vorschau ---- */
.sgds-av-vorschau {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.sgds-av-parteien {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}
@media (max-width: 700px) {
  .sgds-av-parteien { grid-template-columns: 1fr; }
}

.sgds-av-partei {
  padding: var(--space-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  line-height: 1.5;
  min-width: 0;
}
.sgds-av-partei-rolle {
  margin-bottom: 4px;
  color: var(--mid);
  font-size: var(--font-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.sgds-av-zusammenfassung {
  line-height: 1.6;
  color: var(--mid);
}
.sgds-av-zusammenfassung strong { color: var(--ink); }
.sgds-av-zusammenfassung ul { margin: var(--space-2) 0 0; padding-left: 1.2em; }

.sgds-av-textvorschau summary {
  cursor: pointer;
  color: var(--mid);
}
.sgds-av-textvorschau .idf-markdown-preview {
  margin-top: var(--space-3);
  max-height: 400px;
  overflow: auto;
  padding: var(--space-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
}

/* ---- Abschluss ---- */
.sgds-av-fertig {
  text-align: center;
  padding: var(--space-6) var(--space-4);
}
.sgds-av-fertig-icon {
  font-size: 40px;
  color: var(--confirm);
  margin-bottom: var(--space-3);
}
.sgds-av-fertig h3 { margin: 0 0 var(--space-2); color: var(--ink); }
.sgds-av-fertig p {
  margin: 0 auto var(--space-5);
  max-width: 60ch;
  color: var(--mid);
  line-height: 1.5;
}
.sgds-av-fertig-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
}
