/* ==========================================================================
   Design-CSS für JAXForms-Portal-Formulare (form-custom.css)
   Standard: eckig, Gruppentitel auf Weiss. Nur CSS, HTML bleibt unverändert.
   Diese Datei wird direkt im Basismandanten hochgeladen (kein Zusammenbau).
   Leitfaden für Formular-Ersteller: Confluence-Seite «Design-CSS» [Link ergänzen]
   Prüfung nach Änderungen / Plattform-Updates: pruefung/design-check.js

   MOBILE FIRST: Die Basisregeln gelten für Smartphones. Grössere Screens
   werden ausschliesslich über min-width-Media-Queries ergänzt:
     • ab 576px  (grosses Smartphone / Phablet)
     • ab 768px  (Tablet)
     • ab 992px  (Desktop – hier gehen col-md-* nebeneinander)

   PRIMÄRFARBE: Einzige Markenfarbe ist --theme-color-primary, die von der
   Plattform pro Mandant gesetzt wird (inline auf <html>). Sie wird bewusst
   SPARSAM eingesetzt – nur als Akzent: Streifen links an Gruppen,
   Endbetrag der Berechnungen, Gruppentitel, Radio/Checkbox, Fokus, Links, Icons.
   Flächen, Rahmen, Schatten und Read-only-Felder sind NEUTRAL GRAU
   (feste Grauwerte unten). Hier keine weiteren Markenfarben eintragen.

   KONTRAST: Helle Primärfarben (z.B. #9BAF01, 2.5:1 auf Weiss) werden für
   Text und Bedienelemente automatisch abgedunkelt (OKLCH-Helligkeit
   begrenzt). Dunkle Farben (z.B. #000031) bleiben exakt unverändert.
     --grp-primary       Originalfarbe   → nur für Flächen/Tönungen
     --grp-accent        ≥ 3:1           → Rahmen, Streifen, Bedienelemente
     --grp-primary-text  ≥ 4.5:1         → Text
   Getestete Mandantenfarben: #0077C8, #000031, #0061AD, #9BAF01

   Alle Selektoren sind mit «.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT»
   gescoped:
     • .main-public-form-embedded → wirkt NUR im Portal (eingebettetes Formular),
       nicht in anderen Ansichten derselben Formulardefinition
     • #FORM_CONTAINER #FORM_CONTENT → übersteuert das Modern-Theme ohne !important
   ========================================================================== */

.JAX-MARKER .main-public-form-embedded #FORM_CONTENT,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog,   /* Popups liegen ausserhalb von #FORM_CONTENT */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container {
  /* Quelle (Fallback nur, falls die Plattform nichts setzt) */
  --grp-primary:        var(--theme-color-primary, #000031);

  /* Kontrastsichere Varianten (Fallback für Browser ohne relative Farbsyntax) */
  --grp-accent:         color-mix(in srgb, var(--grp-primary) 80%, #000);
  --grp-primary-text:   color-mix(in srgb, var(--grp-primary) 65%, #000);

  /* Abgeleitete Palette */
  --grp-primary-soft:   color-mix(in srgb, var(--grp-primary) 45%, #fff);    /* Nebenakzent (z.B. wiederholbare Gruppen) */
  --grp-head-bg:        #f5f6f8;   /* Kopfzeile */
  --grp-tint:           #f8f9fa;   /* Hover, Read-only-Felder */
  --grp-border:         #dde1e6;   /* Kartenrahmen */
  --grp-border-focus:   #c3c9d1;   /* Rahmen aktive Gruppe, Dropzone */
  --grp-divider:        #eceef1;   /* feine Linien */
  --grp-muted:          #5b6577;   /* Zwischentitel (6:1 auf Weiss) */
  --grp-shadow-color:   rgba(16, 24, 40, .06);
  --grp-card-bg:        #fff;
  --grp-shadow:         0 1px 2px var(--grp-shadow-color), 0 3px 10px var(--grp-shadow-color);
  --grp-shadow-focus:   0 1px 2px var(--grp-shadow-color), 0 6px 18px rgba(16, 24, 40, .08);
  --grp-control-ring:   #6b7280;   /* Rand ungewählter Optionsfelder/Checkboxen (4.8:1) */
  --grp-input-border:   #8a919c;   /* Rahmen Eingabefelder (≥ 3:1) */
  --grp-info-bg:        #f5f6f8;   /* Info-Karten */

  /* Plattform-Variablen der Formular-Controls an die Primärfarbe koppeln.
     Sie sind standardmässig leer (Fallback #069 = Petrol) und steuern u.a.
     Radio-Punkte, Checkboxen, Fokus-Rahmen der Eingabefelder und das
     Auf-/Zuklapp-Icon. */
  --jax-color-primary:            var(--grp-accent);
  --jax-color-primary-focus-ring: color-mix(in srgb, var(--grp-primary) 22%, transparent);

  /* Version dieser Datei – das Prüfskript (pruefung/design-check.js) liest sie aus.
     Bei jeder Änderung anpassen, dann sieht man pro Mandant, welcher Stand geladen ist. */
  --grp-version: "04.11.2026-f";

  /* Einzug der Felder durch das Theme (Spalte für Pflicht-Stern / Status-Icon).
     Ändert die Plattform diesen Wert, nur hier anpassen. */
  --grp-field-indent: 18px;

  /* Mobile-Werte */
  --grp-pad-x:    14px;
  --grp-gap:      16px;      /* Abstand zwischen Karten */
  --grp-head-fs:  15px;
  --grp-head-py:  10px;
}

/* Moderne Browser: Helligkeit exakt begrenzen statt pauschal abdunkeln.
   OKLCH-L 0.62 ≈ 3:1, 0.50 ≈ 4.5:1+ auf Weiss. Farbton und Sättigung bleiben. */
@supports (color: oklch(from red l c h)) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTENT,
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog,   /* Popups liegen ausserhalb von #FORM_CONTENT */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container {
    --grp-accent:       oklch(from var(--grp-primary) min(l, 0.62) c h);
    --grp-primary-text: oklch(from var(--grp-primary) min(l, 0.50) c h);
  }
}

@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTENT,
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog,   /* Popups liegen ausserhalb von #FORM_CONTENT */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container {
    --grp-pad-x:   16px;
    --grp-gap:     24px;
    --grp-head-fs: 15px;
    --grp-head-py: 9px;
    --grp-shadow:  0 1px 2px var(--grp-shadow-color), 0 4px 14px var(--grp-shadow-color);
  }
}

/* --------------------------------------------------------------------------
   0. Eckig: keine Rundungen
      Alles im Formular (und in den Popups der Plattform) ist eckig – auch
      Plattform-Elemente, die hier sonst nicht gestaltet werden. Darum EINE
      Regel statt Rundungen an jeder einzelnen Stelle.
      Bewusst RUND bleiben (Form hat Bedeutung):
        • Optionsfelder (Radio-Buttons) – rund = «nur eine Auswahl»
          (auch das eigentliche <input> darunter – sonst wird sein Fokusrahmen eckig)
        • Schritt-Kreise im Seiten-Wizard (1 – 2 – 3)
        • Hilfe-Icon (ⓘ)
      :not(#_eckig):not(#_eckig) erhöht nur die Spezifität (zwei IDs mehr):
      Das Mandanten-CSS setzt Rundungen teils mit !important und sehr
      langen Selektoren (z.B. 3px an Zurück/Weiter) – diese Regel muss gewinnen.
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :not(input[type="radio"], .custom-input-radiobutton, .jax-pill, .jax-pill__nr, .jax-tooltip-background, .jax-help-tooltip, .jax-help-tooltip *):not(#_eckig):not(#_eckig),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog:not(#_eckig):not(#_eckig),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog :not(#_eckig):not(#_eckig),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover:not(#_eckig):not(#_eckig),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container :not(#_eckig):not(#_eckig) {
  border-radius: 0 !important;
}

/* Checkbox-Häkchenfläche (Pseudo-Elemente erfasst die Regel oben nicht) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="checkbox"] + .custom-input-checkbox::before,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="checkbox"] + .custom-input-checkbox::after {
  border-radius: 0 !important;
}

/* --------------------------------------------------------------------------
   1. Gruppe = Karte
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered {
  margin: 0 0 var(--grp-gap) 0;
  padding: 0;
  min-width: 0;
  min-height: 0;
  background: var(--grp-card-bg);
  border: 1px solid var(--grp-border);
  box-shadow: var(--grp-shadow);
  overflow: visible;                        /* NICHT hidden: sonst werden Popups (Datepicker, Tooltips) an der Gruppe abgeschnitten */
  transition: box-shadow .2s ease, border-color .2s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:focus-within {
  border-color: var(--grp-border-focus);
  box-shadow: var(--grp-shadow-focus);
}

/* --------------------------------------------------------------------------
   2. Legende = Kopfzeile der Karte
      (float löst die Legende aus dem Rahmen und macht sie zur vollen Zeile)
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend.jax-caption-border {
  float: left;
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: var(--grp-head-py) var(--grp-pad-x) var(--grp-head-py) calc(var(--grp-pad-x) - 4px);
  background: var(--grp-card-bg);           /* Titel auf Weiss; Streifen links + Linie unten trennen ihn vom Inhalt */
  border: 0;
  border-bottom: 1px solid var(--grp-border);
  border-left: 4px solid var(--grp-accent);
  font: 600 var(--grp-head-fs)/1.3 Roboto, Arial, sans-serif;
  color: var(--grp-primary-text);
  letter-spacing: .1px;
  overflow-wrap: anywhere;                  /* lange Titel brechen sauber um */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend .jax-label-text,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend .jax-label-text p {
  margin: 0;
  font: inherit;
  color: inherit;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > .jax-collapse {
  clear: both;
  margin: 0;                                /* Plattform: 10px oben und unten → zu viel Luft */
  padding: 12px var(--grp-pad-x) 0;
}

/* Abstand zwischen den Feldern: etwas enger als die Plattform (15px) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered .jax-simple-visualizer-holder {
  margin-bottom: 12px;
}

@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > .jax-collapse {
    padding-top: 14px;
    padding-bottom: 2px;
  }
}

/* Auf-/Zuklapp-Button: ganze Kopfzeile ist Touch-Fläche (min. 36px) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend:has(.jax-expand-collapse-button) {
  padding-top: 0;
  padding-bottom: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend .jax-expand-collapse-button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 36px;
  margin: 0;
  padding: var(--grp-head-py) 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend .jax-expand-collapse-button-content {
  flex: 0 0 auto;
  margin: 0;
  font-size: 16px;
  color: var(--grp-primary-text);
  opacity: .75;
  transition: opacity .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend .jax-expand-collapse-button:focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 2px;
}

/* Hover nur auf Geräten mit Maus (verhindert «klebende» Hover auf Touch) */
@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend .jax-expand-collapse-button:hover .jax-expand-collapse-button-content {
    opacity: 1;
  }
}

/* Zugeklappte Gruppe: keine Trennlinie unter der Kopfzeile */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(> legend [aria-expanded="false"]) > legend {
  border-bottom-color: transparent;
}

/* --------------------------------------------------------------------------
   3. Zwischentitel innerhalb einer Gruppe (z.B. «Einnahmen», «Ausgaben»)
      Sicherer Weg: im Formular-Editor beim Textelement die CSS-Klasse
      «zwischentitel» setzen (→ .jax-zwischentitel).
      Automatisch (Fallback): ein Text, der nur aus EINEM fetten Absatz
      besteht. Soll ein solcher Text normal bleiben: CSS-Klasse «text-normal».
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-zwischentitel > .jax-label-text,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered .form-group.col-md-12.simple:not(.jax-text-normal) > span.jax-label-text > p:only-child > b:only-child {
  display: block;
  margin: 12px 0 2px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--grp-divider);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--grp-muted);
}

/* Mit Klasse: Absätze/Fettschrift im Text übernehmen die Titel-Formatierung */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-zwischentitel > .jax-label-text :is(p, b, strong) {
  margin: 0;
  font: inherit;
  color: inherit;
}

/* Erster Zwischentitel ohne Abstand nach oben */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered .jax-empty-td > .row:first-child :is(.form-group.col-md-12.simple > span.jax-label-text > p:only-child > b:only-child, .jax-zwischentitel > .jax-label-text) {
  margin-top: 0;
}

/* --------------------------------------------------------------------------
   4. Gruppen nebeneinander (z.B. Antragsteller/-in 1 + 2)
      Mobile: untereinander (Standard). Ab Desktop: zwei gleich hohe Karten.
   -------------------------------------------------------------------------- */
@media (min-width: 992px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .row:has(> .form-group.col-md-6.complex fieldset.jax-fieldset-bordered) {
    display: flex;
    flex-wrap: nowrap;                      /* nie umbrechen – sonst wachsen beide auf volle Breite */
    column-gap: var(--grp-gap);
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .row:has(> .form-group.col-md-6.complex fieldset.jax-fieldset-bordered)::before,
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .row:has(> .form-group.col-md-6.complex fieldset.jax-fieldset-bordered)::after {
    display: none;                          /* Bootstrap-Clearfix stört Flex */
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group.col-md-6.complex:has(fieldset.jax-fieldset-bordered),
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group.col-md-6.complex > .jax-group:has(fieldset.jax-fieldset-bordered),
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group.col-md-6.complex > .jax-group > .jax-fieldset {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;                           /* Inhalte (z.B. Upload) dürfen die Spalte nicht aufdrücken */
  }

  /* Spalte selbst: fix halbe Breite, darf schrumpfen, nicht wachsen */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .row > .form-group.col-md-6.complex:has(fieldset.jax-fieldset-bordered) {
    flex: 0 1 calc(50% - var(--grp-gap) / 2);
    width: auto;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group.col-md-6.complex > .jax-group > .jax-fieldset > fieldset.jax-fieldset-bordered {
    flex: 1 1 auto;
  }
}

/* --------------------------------------------------------------------------
   5. Berechnungen (Zeilen mit rechtsbündigem Betrag) – Darstellung «Abrechnung»
      z.B. «Berechnung des massgebenden Einkommens», «Kosten pro Kind»
      Erkennung: Beträge mit CSS-Klasse «float-right» (→ .jax-float-right).
      Die Berechnung steht frei in der Gruppe (keine zweite Box – die Gruppe
      ist schon der Rahmen): Bezeichnung grau, Betrag dunkel, Zwischensummen
      mit feinem Strich, Endresultat fett, Betrag in der Primärfarbe.
      Bezeichnung und Betrag stehen auf jeder Breite in EINER Zeile
      (Flex statt Bootstrap-Spalten).
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right):not(:has(.jax-inputfield)) > .jax-collapse {
  padding-top: 8px;
  padding-bottom: 2px;                      /* Luft unten kommt von der Box (14px), wie bei den Kindern */
}

/* Berechnungszeilen (Betrag oder Summenstrich): ohne Plattform-Einzug */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:is(:has(> .jax-float-right), :has(hr)) {
  margin: 0;
  padding: 5px 0;
  background: none;
  border: 0;
}

/* Luft über der ersten und unter der letzten Zeile der Berechnung */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:is(:has(> .jax-float-right), :has(hr)):not(.row:is(:has(> .jax-float-right), :has(hr)) + .row) {
  padding-top: 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:is(:has(> .jax-float-right), :has(hr)):last-child {
  margin-bottom: 14px;                      /* Luft zum Gruppenrand */
  padding-bottom: 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right)::before,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right)::after {
  display: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
}

/* Bezeichnung: darf umbrechen, grau. Betrag: bleibt zusammen, dunkel */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group:not(.jax-float-right) {
  flex: 1 1 auto;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .jax-float-right {
  flex: 0 0 auto;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group > .jax-label-text {
  display: block;
  margin-bottom: 0;                         /* Theme-Abstand würde die Zeile aufblähen */
  font-size: 14px;
  line-height: 1.4;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group:not(.jax-float-right) > .jax-label-text {
  color: #4b5563;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group:not(.jax-float-right) > .jax-label-text b {
  color: #1f2937;                           /* Zwischensummen */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group > .jax-label-text p {
  margin: 0;
}

/* Angehängtes <br> aus dem Formular */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(> .jax-float-right) > .form-group > .jax-label-text > br:last-child {
  display: none;
}

/* Beträge: rechtsbündig, gleich breite Ziffern */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-float-right > .jax-label-text {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  white-space: nowrap;
  color: #1f2937;
}

/* Trennlinie (<hr>) als Summenstrich */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) hr {
  margin: 4px 0;
  border: 0;
  border-top: 1px solid var(--grp-border-focus);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(hr) {
  padding-top: 0;
  padding-bottom: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:has(hr) .form-group {
  float: none;
  width: 100%;
  padding: 0;
}

/* Endresultat (letzte Zeile, z.B. «Elternbeitrag») */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:last-child:has(> .jax-float-right) {
  padding-top: 10px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:last-child:has(> .jax-float-right) > .form-group:not(.jax-float-right) > .jax-label-text,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:last-child:has(> .jax-float-right) > .form-group:not(.jax-float-right) > .jax-label-text b {
  font-size: 16px;
  font-weight: 700;
  color: #1f2937;
}

/* Im Formular steht ein Inline-Style (z.B. <p style="color:#A52A2A;
   font-size:20px">) – nur mit !important übersteuerbar.
   Bezeichnung: neutral. Betrag: Primärfarbe. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:last-child:has(> .jax-float-right) > .form-group:not(.jax-float-right) [style] {
  color: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered:has(.jax-float-right) .jax-empty-td > .row:last-child:has(> .jax-float-right) > .jax-float-right :is(.jax-label-text, .jax-label-text *) {
  color: var(--grp-primary-text) !important;
  font-size: 17px !important;
  font-weight: 700;
  line-height: 1.3 !important;
}

/* --------------------------------------------------------------------------
   6. Wiederholbare Gruppen (z.B. «Kind 1», «Kind 2», …) mit Akzentfarbe
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-complex-group-visualizer:not(.jax-group) > .jax-fieldset > fieldset.jax-fieldset-bordered > legend.jax-caption-border {
  border-left-color: var(--grp-primary-soft);
}

/* --------------------------------------------------------------------------
   7. Optionsfelder (Radio-Buttons «Ja / Nein» usw.)
      Punkt und Ring gewählter Felder kommen über --jax-color-primary (oben),
      Ringfarben und Grösse für alle Optionsfelder in Abschnitt 17.
      Hier nur Hover in der Primärfarbe.
   -------------------------------------------------------------------------- */
@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-radiobuttonGroup input[type="radio"]:not([disabled]):not([readonly]):not(.ui-state-disabled) + .custom-input-radiobutton:hover {
    background-color: color-mix(in srgb, var(--grp-primary) 8%, transparent);
    box-shadow: 0 0 0 13px color-mix(in srgb, var(--grp-primary) 8%, transparent);
  }
}

/* Windows-Kontrastmodus: Systemfarben der Plattform nicht übersteuern */
@media (forced-colors: active) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-radiobuttonGroup input[type="radio"] + .custom-input-radiobutton,
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-radiobuttonGroup input[type="radio"]:checked + .custom-input-radiobutton {
    outline-color: buttonborder;
  }
}

/* --------------------------------------------------------------------------
   8. Eingabefelder (Text, Zahl, Datum)
      Höhe und schwebende Beschriftung bleiben wie im Theme (sonst verrutscht
      das Label). Angepasst werden Rahmen, Hover und Fokus.
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield:not(.jax-boolean-checkbox):not([type="radio"]):not([type="checkbox"]) {
  border: 1px solid var(--grp-input-border);
  transition: border-color .15s ease, box-shadow .15s ease;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield:not(.jax-boolean-checkbox):not([type="radio"]):not([type="checkbox"]):not([readonly]):not(.ui-state-disabled):hover {
    border-color: var(--grp-primary-text);
  }
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield:not(.jax-boolean-checkbox):not([type="radio"]):not([type="checkbox"]):focus {
  border-color: var(--grp-accent);
  box-shadow: 0 0 0 3px var(--jax-color-primary-focus-ring);
  outline: none;
}

/* Schreibgeschützte / berechnete Felder: flache, hellgraue Fläche mit feinem
   Rahmen – ruhig, klar als «nicht editierbar» erkennbar, Text gut lesbar.
   Plattform/Mandant setzen Verlauf (linear-gradient), opacity .5 und dunklen
   Rahmen teils mit hoher Spezifität → !important. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield.ui-state-disabled:not(.jax-boolean-checkbox):not([type="radio"]):not([type="checkbox"]),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield[readonly]:not(.jax-boolean-checkbox):not([type="radio"]):not([type="checkbox"]),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield[disabled]:not(.jax-boolean-checkbox):not([type="radio"]):not([type="checkbox"]) {
  background: #f3f4f6 !important;           /* auch background-image: kein Verlauf */
  border: 1px solid #e3e6ea !important;
  box-shadow: none !important;
  color: #4b5563 !important;
  -webkit-text-fill-color: #4b5563;         /* Safari: disabled-Text sonst blass */
  opacity: 1 !important;
  cursor: default;
}

/* Schwebende Beschriftung im Feldrand (Plattform ab 641px):
   Die Plattform hinterlegt sie weiss, damit die Rahmenlinie verdeckt wird.
   Bei grauen (schreibgeschützten) oder roten (Fehler-)Feldern entsteht so ein
   weisser Balken im Feld. Neu: oben Gruppenfarbe, unten Feldfarbe – die
   Beschriftung «sitzt» nahtlos auf der Linie. Leere Felder (Beschriftung
   steht als Platzhalter IM Feld): ohne Hintergrund. */
@media (min-width: 641px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group:has(.jax-inputfield) > .jax-label-text > span.jax-label-text {
    background: transparent;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group:is(.jax-hasValue, .jax-hasFocus):has(.jax-inputfield) > .jax-label-text > span.jax-label-text {
    background: linear-gradient(to bottom, var(--grp-card-bg) 56%, #fff 56%);
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group:is(.jax-hasValue, .jax-hasFocus):has(.jax-inputfield:is(.ui-state-disabled, [readonly], [disabled])) > .jax-label-text > span.jax-label-text {
    background: linear-gradient(to bottom, var(--grp-card-bg) 56%, #f3f4f6 56%);
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .form-group:is(.jax-hasValue, .jax-hasFocus):has(.jax-inputfield:is(.jax-error-border-error, .jax-error-border-incomplete)) > .jax-label-text > span.jax-label-text {
    background: linear-gradient(to bottom, var(--grp-card-bg) 56%, #fffbfa 56%);
  }
}

/* Feldmeldungen – EINHEITLICH für alle Arten der Plattform:
     .jax-error-error       ungültige Eingabe        → rot
     .jax-error-incomplete  Pflichtfeld nicht ausgefüllt (z.B. beim Einreichen) → rot
     .jax-error-warning     Warnung                  → orange
     .jax-error-info / -hint Hinweis                 → grau
   Plattform: rundes Symbol links neben dem Feld (.jax-statefield), der Text
   steht nur als Tooltip im Attribut data-original-title.
   Neu: farbiger Rahmen am Feld + Meldung mit kleinem Symbol UNTER dem Feld.
   Der Text wird per attr() aus dem Tooltip übernommen – HTML bleibt unverändert.
   Farben bewusst unabhängig von der Primärfarbe (semantisch). */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield:is(.jax-error-border-error, .jax-error-border-incomplete):not([type="radio"]):not([type="checkbox"]) {
  border-color: #c0392b !important;
  background-color: #fffbfa;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield:is(.jax-error-border-error, .jax-error-border-incomplete):not([type="radio"]):not([type="checkbox"]):focus {
  box-shadow: 0 0 0 3px rgba(192, 57, 43, .18);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c:has(> .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint)) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c:has(> .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint)) > .jax-3c-middle {
  flex: 1 1 0;
  min-width: 0;
}

/* Statusfeld wird zur Meldungszeile unter dem Feld (bündig mit dem Feld) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint) {
  order: 2;
  flex: 1 1 100%;
  box-sizing: border-box;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center;
  gap: 6px;
  position: static;
  width: auto !important;
  height: auto !important;
  margin: 5px 0 0 !important;
  padding: 0 0 0 var(--grp-field-indent) !important;   /* gleiche Einrückung wie das Feld (Spalte für den Stern) */
  background: none !important;
  font-size: 13px !important;
  font-weight: 500;
  line-height: 1.35 !important;
  color: #b42318;                           /* 6.5:1 auf Weiss */
  text-align: left !important;
  cursor: default;
  pointer-events: none;                     /* kein Popup mehr beim Darüberfahren – der Text steht ja schon da */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint) > i {
  display: none !important;                 /* rotes Ausrufezeichen der Plattform */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint)::before {
  content: "";
  order: -1;
  flex: 0 0 14px;
  position: static !important;
  inset: auto !important;
  width: 14px;
  height: 14px;
  margin: 0 !important;
  transform: none !important;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/%3E%3Crect x='11' y='6.5' width='2' height='7.5' rx='1'/%3E%3Ccircle cx='12' cy='17' r='1.25'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/%3E%3Crect x='11' y='6.5' width='2' height='7.5' rx='1'/%3E%3Ccircle cx='12' cy='17' r='1.25'/%3E%3C/svg%3E") center / contain no-repeat;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint)::after {
  content: attr(data-original-title);
  position: static !important;
  inset: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  transform: none !important;
  background: none !important;
  border: 0 !important;
  font: inherit;
  color: inherit;
  white-space: normal;
}

/* Ersatz, falls der Tooltip (noch) nicht initialisiert ist: Text steht dann
   im title-Attribut – oder es gibt gar keinen Text */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint):not([data-original-title])::after {
  content: attr(title);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after {
  content: "Bitte Eingabe prüfen";
}

/* Pflichtfeld leer: eigener Ersatztext */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield.jax-error-incomplete:is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after {
  content: "Bitte ausfüllen";
}

/* Ersatztexte in der Sprache des Formulars (<html lang="…">) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint):lang(fr):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after { content: "Veuillez vérifier la saisie"; }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield.jax-error-incomplete:lang(fr):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after { content: "Veuillez remplir ce champ"; }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint):lang(it):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after { content: "Verificare l'immissione"; }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield.jax-error-incomplete:lang(it):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after { content: "Compilare questo campo"; }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-error, .jax-error-incomplete, .jax-error-warning, .jax-error-info, .jax-error-hint):lang(en):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after { content: "Please check your entry"; }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield.jax-error-incomplete:lang(en):is(:not([data-original-title]):not([title]), [data-original-title=""]:not([title]), [data-original-title=""][title=""])::after { content: "Please fill in this field"; }

/* Warnung: orange (Text 4.9:1 auf Weiss) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield.jax-error-warning {
  color: #b54708;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-inputfield.jax-error-border-warning:not([type="radio"]):not([type="checkbox"]) {
  border-color: #dc6803 !important;
  background-color: #fffcf5;
}

/* Hinweis: dezent grau, Feld unverändert */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-3c > .jax-statefield:is(.jax-error-info, .jax-error-hint) {
  font-weight: 400;
  color: var(--grp-muted);
}

/* --------------------------------------------------------------------------
   9. Checkboxen (z.B. «Geschwisterrabatt», Bestätigung am Schluss)
      Häkchen/Füllung kommen über --jax-color-primary, Ringfarbe und Grösse
      für alle Checkboxen in Abschnitt 17.
   -------------------------------------------------------------------------- */
@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-booleanCheckbox input[type="checkbox"]:not([disabled]):not([readonly]):not(.ui-state-disabled) + .custom-input-checkbox:hover {
    box-shadow: 0 0 0 10px color-mix(in srgb, var(--grp-primary) 8%, transparent);
  }
}

/* Lange Bestätigungstexte: angenehmer Zeilenabstand */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-booleanCheckbox .jax-simple-label-trailing .jax-label-text {
  line-height: 1.5;
}

/* Hilfe-Icon (ⓘ) neben Beschriftungen */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-help-tooltip .jax-tooltip-background {
  color: var(--grp-accent);                 /* ≥ 3:1, auch bei hellen Primärfarben */
  transition: color .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-help-tooltip:focus-visible .jax-tooltip-background {
  color: var(--grp-primary-text);
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-help-tooltip:hover .jax-tooltip-background {
    color: var(--grp-primary-text);
  }
}

/* --------------------------------------------------------------------------
   10. Datei-Upload (Dropzone «Hier klicken oder Dateien hier hinziehen»)
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout:has(.jax-file-upload-info) {
  padding: 0;
  background: var(--grp-tint);
  border: 1.5px dashed var(--grp-border-focus);
  transition: background-color .15s ease, border-color .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-upload-info {
  padding: 16px 14px;
  text-align: center;
  font-size: 13px;
  line-height: 1.5;
  color: var(--grp-muted);
  cursor: pointer;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-upload-info > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-upload-info p {
  margin: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-upload-info strong {
  color: var(--grp-primary-text);
}

/* Aufforderung hervorheben, Rahmeninfos (Endungen, Grösse) kleiner */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-dragzone-info {
  order: -1;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 600;
  color: var(--grp-primary-text);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-dragzone-info [class*="fa-cloud"] {
  display: block;
  margin: 0 auto 4px;
  font-size: 26px;
  color: var(--grp-accent);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-upload-info:focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 2px;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout:has(.jax-file-upload-info):hover {
    background: var(--grp-head-bg);
    border-color: var(--grp-accent);
  }
}

@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-callout .jax-file-upload-info {
    padding: 16px;
  }
}

/* --------------------------------------------------------------------------
   11. Listen-Aktionen (wiederholbare Gruppen, z.B. Kinder)
   -------------------------------------------------------------------------- */
/* «+ Kind hinzufügen» unter der Liste. Mobile: volle Breite, gut antippbar */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list .jax-list-action:has(> .jax-list-visualizer-action-area) {
  width: auto;                              /* Theme: fix 63px */
  min-width: 0;
  padding-left: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list .jax-list-action > .jax-list-visualizer-action-area {
  width: auto;
  margin: 0;
  padding: 0;
  text-align: left;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list .jax-list-action .jax-list-visualizer-action-area .btn.jax-list-action-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 34px;
  height: auto !important;                 /* Mandanten-CSS: .btn 39px */
  margin: 0 0 var(--grp-gap);
  padding: 5px 14px;
  background: var(--grp-card-bg);
  border: 1.5px solid var(--grp-primary-text);  /* ganz umrandet, wie Zurück/Weiter */
  font-size: 14px;
  font-weight: 600;
  color: var(--grp-primary-text);
  transition: background-color .15s ease, border-color .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list .jax-list-action .jax-list-visualizer-action-area .btn.jax-list-action-add:focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 2px;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list .jax-list-action .jax-list-visualizer-action-area .btn.jax-list-action-add:hover {
    background: var(--grp-head-bg);
    border-color: var(--grp-accent);
  }
}

@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list .jax-list-action .jax-list-visualizer-action-area .btn.jax-list-action-add {
    width: auto;
  }
}

/* «Weiteren Upload hinzufügen»: bündig mit den Upload-Flächen statt mit dem
   Gruppenrand (Theme rückt Felder um --grp-field-indent ein).
   Greift, wenn die Liste nur Uploads enthält – oder (leere Liste) direkt
   nach einem Upload-Feld steht. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) .jax-list-action .jax-list-visualizer-action-area .btn.jax-list-action-add,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .row:has(> .jax-fileUpload) + .row .jax-serial-list .jax-list-action .jax-list-visualizer-action-area .btn.jax-list-action-add {
  max-width: calc(100% - var(--grp-field-indent));
  margin-left: var(--grp-field-indent);
}

/* Liste, deren Einträge NUR ein Upload-Feld enthalten («Weiteren Upload
   hinzufügen»): keine Gruppenkarte um jeden weiteren Upload. Der Upload steht
   wie der erste, Aktionen rechts in der schmalen Zeile darüber.
   Zukunftssicher formuliert: unabhängig davon, wie tief die Plattform das
   Upload-Feld verschachtelt, und ob der Eintrag einen Titel hat.
   Bedingung: Upload vorhanden UND kein anderes Feld (.form-group) ausser dem
   Upload selbst und seinen inneren Elementen. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered > legend.jax-caption-border {
  min-height: 32px;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered > legend.jax-caption-border::before,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered > legend.jax-caption-border::after {
  content: none !important;                 /* Farbstreifen links weg */
}

/* Ohne Titel ist der Auf-/Zuklapp-Knopf sinnlos */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered > legend:has(> button > .jax-label-text:empty) > button {
  display: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered > .jax-collapse {
  padding: 0 !important;
}

/* «🗑 Entfernen» rechts direkt über der zugehörigen Upload-Fläche:
   grosser Abstand nach oben, kleiner nach unten → gehört sichtbar zum
   unteren Feld. Text statt nur Icon, damit klar ist: entfernt das Feld,
   nicht nur die Datei. (Screenreader: aria-label der Plattform) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-row-action-tablearea {
  position: absolute !important;            /* Theme: relative, top 13.75px / right 32.5px */
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
}

/* Mehrere Aktionen (z.B. «Kopieren» + «Entfernen»): Die Plattform schiebt den
   Löschen-Button mit festem Versatz (right: Breite der Tabelle) vor «Kopieren» –
   passt nur für schmale Icons. Darum per Flex anordnen, Entfernen zuerst. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-row-action-tablearea > tbody > tr {
  display: flex;
  align-items: center;
  gap: 2px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-row-action-tablearea td {
  position: static !important;
  padding: 0 !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-row-action-tablearea td:has(> .jax-list-action-delete) {
  order: -1;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-list-action-delete {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  height: 28px !important;
  padding: 0 8px !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  color: #4b5563 !important;
  font-size: 13px !important;
  font-weight: 500;
  white-space: nowrap;
}

/* Beschriftung in der Sprache des Formulars (<html lang="…">) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-list-action-delete::after {
  content: "Entfernen";
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area:lang(fr) .jax-list-action-delete::after {
  content: "Supprimer";
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area:lang(it) .jax-list-action-delete::after {
  content: "Rimuovi";
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area:lang(en) .jax-list-action-delete::after {
  content: "Remove";
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-list-action-delete:hover {
  background: #fdecea !important;
  color: #b42318 !important;
}

/* Datei hochgeladen: Entfernen nur noch über das × an der Datei. Der
   Eintrag selbst («Entfernen» oben rechts) wird ausgeblendet, damit nicht
   zwei Lösch-Wege nebeneinander stehen. Leerer Titel → keine Leerzeile.
   Erkennung: Die Plattform füllt .jax-fileupload-preview erst nach dem Upload. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):has(.jax-fileupload-preview):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) + .jax-serial-list-rowaction-area .jax-row-action-tablearea td:has(> .jax-list-action-delete) {
  display: none !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-serial-list-content-area:has(.jax-fileUpload):has(.jax-fileupload-preview):not(:has(.form-group:not(.jax-fileUpload, .jax-fileUpload *))) fieldset.jax-fieldset-bordered > legend.jax-caption-border:has(> button > .jax-label-text:empty) {
  min-height: 0;
}

/* Aktionen in der Kopfzeile eines Eintrags (+ / Papierkorb) rechtsbündig */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered > legend > div:has(.jax-row-action-tablearea) {
  margin-left: auto;
  padding-left: 8px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT legend .jax-row-action-tablearea {
  border-collapse: collapse;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT legend .jax-row-action-tablearea td {
  padding: 0 0 0 4px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT legend .jax-row-action-tablearea .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;                              /* Touch-Fläche */
  height: 32px;
  margin: -6px 0;                           /* Kopfzeile wird dadurch nicht höher */
  padding: 0;
  background: transparent;
  border: 0;
  font-size: 15px;
  color: var(--grp-primary-text);
  transition: background-color .15s ease, color .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT legend .jax-row-action-tablearea .btn:focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 0;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT legend .jax-row-action-tablearea .jax-list-action-add:hover {
    background: color-mix(in srgb, var(--grp-primary) 12%, transparent);
  }

  /* Löschen: semantisches Rot, unabhängig von der Primärfarbe */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT legend .jax-row-action-tablearea .jax-list-action-delete:hover {
    background: #fdecea;
    color: #b42318;
  }
}

/* --------------------------------------------------------------------------
   12. Info-Karten (graue Hinweisboxen im Formular)
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card > .jax-label-text > p,
/* Infotext direkt im span, ohne <p> (z.B. Zollikon «Familienausweis») */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card > .jax-label-text:not(:has(> p)) {
  margin: 0 0 16px;                         /* Abstand zur nächsten Frage */
  padding: 12px 14px;
  background: var(--grp-info-bg);
  border: 1px solid var(--grp-border);
  border-left: 4px solid var(--grp-primary-soft);
  box-shadow: none;                         /* Mandanten-CSS: Schatten weg, Rahmen reicht */
  font-size: 14px;
  line-height: 1.55;
}

/* Bündig mit den Gruppen: Das Theme rückt die Beschriftung um 18px ein
   (.noHangingindent { margin-left: 18px !important }) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-info-card, .jax-warning-card, .jax-stop-card) > .jax-label-text {
  display: block;
  margin-left: 0 !important;
  margin-right: 0;
}

/* ⓘ-Icon (kommt aus dem Mandanten-CSS fest in Navy): als Maske, damit es
   die Primärfarbe übernimmt */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card > .jax-label-text > p::before {
  background: var(--grp-accent);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='1.6'/%3E%3Crect x='11' y='7' width='2' height='2'/%3E%3Cpath d='M9.3 10.8h3.4v5.2h2v1.4H9.3V16h2v-3.8h-2z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='1.6'/%3E%3Crect x='11' y='7' width='2' height='2'/%3E%3Cpath d='M9.3 10.8h3.4v5.2h2v1.4H9.3V16h2v-3.8h-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Führendes <br> (Platz für das ⓘ-Icon) auf Mobile nicht doppelt Luft geben */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card > .jax-label-text > p > br:first-child {
  display: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card a {
  color: var(--grp-primary-text);
  text-decoration: underline;
  text-underline-offset: 2px;
  overflow-wrap: anywhere;                  /* lange E-Mail-Adressen auf Mobile */
}

@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card > .jax-label-text > p,
  /* Infotext direkt im span, ohne <p> (z.B. Zollikon «Familienausweis») */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-info-card > .jax-label-text:not(:has(> p)) {
    padding: 14px 18px;
  }
}

/* --------------------------------------------------------------------------
   13. Warnkarten (z.B. «Nur Eltern … mit Wohnsitz in der Gemeinde …»)
       Bewusst NICHT in der Primärfarbe: Warnungen bleiben rot (semantisch).
       Mandanten-CSS liefert vollflächig rot mit weisser Schrift → hier ruhiger.
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-warning-card, .jax-stop-card) > .jax-label-text > p,
/* Infotext direkt im span, ohne <p> (z.B. Zollikon «Familienausweis») */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-warning-card, .jax-stop-card) > .jax-label-text:not(:has(> p)) {
  margin: 0 0 16px;
  padding: 12px 14px;
  background: #fdf1f0;
  border: 1px solid #f1c9c5;
  border-left: 4px solid #c0392b;
  box-shadow: none;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  color: #7a1d17;                           /* 8.9:1 auf dem Hintergrund */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-warning-card, .jax-stop-card) > .jax-label-text > p::before {
  background: #c0392b;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.2 22 20.5H2z' stroke-width='1.6'/%3E%3Cpath d='M12 10.5v3.8' stroke-width='1.9'/%3E%3Ccircle cx='12' cy='17.3' r='1' fill='black' stroke='none'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.2 22 20.5H2z' stroke-width='1.6'/%3E%3Cpath d='M12 10.5v3.8' stroke-width='1.9'/%3E%3Ccircle cx='12' cy='17.3' r='1' fill='black' stroke='none'/%3E%3C/svg%3E") center / contain no-repeat;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-warning-card, .jax-stop-card) a {
  color: inherit;
  text-decoration: underline;
  overflow-wrap: anywhere;
}

@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-warning-card, .jax-stop-card) > .jax-label-text > p,
  /* Infotext direkt im span, ohne <p> (z.B. Zollikon «Familienausweis») */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-warning-card, .jax-stop-card) > .jax-label-text:not(:has(> p)) {
    padding: 14px 18px;
  }
}

/* Fehler-Zusammenfassung oben (nach «Einreichen» mit fehlenden Angaben):
   .jax-main-errors > … > .panel.panel-danger
     .panel-heading  → Titel «Sie haben nicht alle Fragen beantwortet …» + Schliessen
     .jax-error-tree → jsTree-Liste der Fehler (Links springen zum Feld)
   Gestaltung wie die Warnkarten: zartes Rot, Streifen links, ruhige Liste
   statt Baum mit gepunkteten Linien. */
/* Bündig mit den Gruppen: Plattform rückt den Fehlerbereich links 18px / rechts 15px ein */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors {
  margin-left: 0;
  margin-right: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel.panel-danger {
  margin: 0 0 var(--grp-gap);
  background: #fdf1f0;
  border: 1px solid #f1c9c5;
  border-left: 4px solid #c0392b;
  box-shadow: none;
  overflow: hidden;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel-danger > .panel-heading {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 12px 14px 6px;
  background: none;
  border: 0;
  color: #7a1d17;                           /* 8.9:1 auf dem Hintergrund */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel-heading > .jax-expand-collapse-button {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  color: inherit;
  text-align: left;
}

/* Auf-/Zuklapp-Symbol durch Warn-Symbol ersetzen */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel-heading .jax-expand-collapse-button-content {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  background: #c0392b;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/%3E%3Crect x='11' y='6.5' width='2' height='7.5' rx='1'/%3E%3Ccircle cx='12' cy='17' r='1.25'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/%3E%3Crect x='11' y='6.5' width='2' height='7.5' rx='1'/%3E%3Ccircle cx='12' cy='17' r='1.25'/%3E%3C/svg%3E") center / contain no-repeat;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel-heading .jax-expand-collapse-button-content::before {
  content: none;                            /* FontAwesome-Kästchen ausblenden */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel-heading > .close {
  flex: 0 0 auto;
  margin: -2px -4px 0 0;
  padding: 2px 4px;
  font-size: 14px;
  color: #7a1d17;
  opacity: .6;
  text-shadow: none;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .panel-heading > .close:hover {
    opacity: 1;
  }
}

/* Liste: ohne Baumlinien und Icons, eingerückt unter den Titeltext */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree {
  padding: 0 14px 12px 38px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-children {
  margin: 0;
  padding: 0;
  background: none;
  list-style: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-node {
  min-height: 0;
  margin: 0;
  padding: 2px 0 2px 14px;
  position: relative;
  background: none !important;              /* gepunktete Baumlinien (Hintergrundbild) */
  line-height: 1.45;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-node::before {
  content: "";
  position: absolute;
  top: .78em;
  left: 2px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c0392b;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-icon {
  display: none !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-anchor {
  display: inline;
  height: auto;
  padding: 0;
  background: none !important;
  box-shadow: none !important;
  font-size: 14px;
  line-height: 1.45;
  white-space: normal;
  color: #7a1d17;
  text-decoration: underline;
  text-decoration-color: rgba(122, 29, 23, .35);
  text-underline-offset: 2px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-anchor span {
  color: inherit !important;
  font: inherit;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-anchor:hover {
    text-decoration-color: currentColor;
  }
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-main-errors .jax-error-tree .jstree-anchor:focus-visible {
  outline: 2px solid #c0392b;
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   14. Auswahl-Tabellen (z.B. «Welche Module soll das Kind besuchen?»)
       Mobile: jedes Modul als Karte, Wochentage nebeneinander.
       Ab 641px (Umschaltpunkt der Plattform): klassische Tabelle.
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-list-container:has(> .jax-sgl-table) {
  overflow-x: auto;                         /* Notfalls scrollen statt abschneiden */
  border: 1px solid var(--grp-border);
  background: var(--grp-card-bg);
}

/* ---- Mobile (Basis) ---- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody {
  display: block;
  width: 100%;
  margin: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > thead,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr:not(.jax-list-row) {
  display: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));   /* Kacheln für Checkbox/Radio-Spalten */
  gap: 8px 4px;
  padding: 12px 12px 14px;
  background: var(--grp-card-bg);
  border-top: 1px solid var(--grp-divider);
}

/* Modulname über die ganze Breite */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > th {
  grid-column: 1 / -1;
  display: block;
  padding: 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--grp-primary-text);
  background: none;
  border: 0;
}

/* Alle Zellen: Plattform-Abstände (padding-right 30px !important) neutralisieren */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell {
  display: flex;
  min-width: 0;
  padding: 0 !important;
  background: none;
  border: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell > span {
  float: none !important;
  width: auto !important;
}

/* NUR Gossau-Subventionsrechner (Formular-Klasse JAX-FORM-KiSu): Das Mandanten-CSS
   blendet dort die Vorlagenzeile «…row_1» aus; unsere display:grid-Regel ist
   spezifischer und würde sie sonst zeigen. Bei anderen Formularen ist row_1 eine
   echte Zeile – darum strikt auf dieses Formular begrenzt. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER.JAX-FORM-KiSu #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row[id$="row_1"] {
  display: none;
}

/* Zellen, deren Inhalt die Plattform ausblendet (z.B. «Resultat»), auf Mobile
   ganz weglassen – sonst bleibt die Beschriftung allein stehen */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell:has(.jax-simple-visualizer-holder.jax-invisible-field) {
  display: none;
}

/* Spaltenbeschriftung (Plattform: td::before mit data-headerlabel, fix 50 % breit) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell::before {
  flex: none;
  width: auto;
  min-width: 0;
  padding: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--grp-muted);
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
}

/* Alle Zellen ausser Checkbox/Radio über die ganze Breite (Text, Datum, Auswahl …) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell:not(.jax-booleanCheckbox):not(:has(> span input[type="radio"])) {
  grid-column: 1 / -1;
}

/* Betrag: Beschriftung links, Feld rechts – volle Breite */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-textField {
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-textField::before {
  flex: 1 1 auto;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-textField .jax-inputfield {
  width: 110px;
  text-align: right;
}

/* Wochentage: Beschriftung über der Checkbox, zentriert, gut antippbar */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox {
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-height: 48px;
  padding: 4px 0 !important;
  background: var(--grp-tint);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox::before {
  flex: 0 0 auto;
  text-align: center;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox:has(input:checked) {
  background: #eef0f3;
}

/* ---- Ab 641px: Tabelle ---- */
@media (min-width: 641px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table {
    display: table;
    border-collapse: collapse;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > thead {
    display: table-header-group;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody {
    display: table-row-group;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row {
    display: table-row;
    border-top: 1px solid var(--grp-divider);
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > th,
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell {
    display: table-cell;
    padding: 8px 10px !important;
    vertical-align: middle !important;
    background: none;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell::before {
    display: none;
  }

  /* Modulnamen dürfen umbrechen (Formular-CSS setzt nowrap – auf Tablet wird
     die Tabelle sonst breiter als die Karte und die Wochentage fallen raus) */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > th.jax-list-cell {
    min-width: 7em;
    white-space: normal;
  }

  /* Leere Zellen in der Tabelle behalten (sonst verrutschen die Spalten) */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell:has(.jax-simple-visualizer-holder.jax-invisible-field) {
    display: table-cell;
  }

  /* Plattform-Layout der Zellinhalte wiederherstellen */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-list-cell > span {
    float: left !important;
    width: 100% !important;
  }

  /* Kopfzeile */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > thead > tr > :is(th, td) {
    padding: 10px !important;
    background: var(--grp-head-bg);
    border-bottom: 1px solid var(--grp-border);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--grp-muted);
  }

  /* Spaltentitel zentriert (Theme setzt im inneren span 14px Einzug links) */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > thead > tr > th {
    text-align: center;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > thead > tr > th > span {
    padding-left: 0 !important;
    white-space: normal !important;         /* Inline-Style nowrap: lange Titel dürfen umbrechen */
  }

  /* Wochentag-Spalten: Checkbox exakt unter dem Spaltentitel – bei jeder Breite.
     Die Plattform legt die Checkbox links in einen zellbreiten Container
     (.jax-3c, mit 18px Einzug für das Status-Icon). Darum wird dieser Container
     per Flex zentriert und der Checkbox-Bereich auf 15px verkleinert.
     NICHT text-align:center verwenden – das verschiebt das weisse
     Innenquadrat (::after, ohne feste Position) und schneidet die Checkbox an. */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox {
    padding-left: 0 !important;
    padding-right: 0 !important;
    background: none;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox .jax-3c {
    display: flex;
    justify-content: center;
    padding-left: 0;                        /* Status-Icon ist absolut positioniert */
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox .jax-3c-middle {
    flex: 0 0 auto;
    width: 15px;
    min-width: 0;
    margin: 0 0 0 -4px;                     /* gleicht 2px Aussenabstand der Plattform-Checkbox aus */
    padding: 0;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-booleanCheckbox:has(input:checked) {
    background: #f1f3f5;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > td.jax-textField .jax-inputfield {
    width: 100%;
    max-width: 120px;
  }
}

/* Ab 1200px ist genug Platz: Modulnamen und Spaltentitel einzeilig
   (wie vom Formular vorgesehen). Darunter dürfen sie umbrechen, sonst wird
   die Tabelle breiter als die Karte (bei 1000px gemessen: 914 > 819px) */
@media (min-width: 1200px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row > th.jax-list-cell {
    white-space: nowrap;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > thead > tr > th > span {
    white-space: nowrap !important;
  }
}

@media (min-width: 641px) and (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sgl-table > tbody > tr.jax-list-row:hover {
    background: var(--grp-tint);
  }
}

/* --------------------------------------------------------------------------
   15. Mehrseitige Formulare: Fortschritt, Seitenbaum, Navigations-Buttons
       (gefunden im Widget-Formular, Mandant JAXVILLE, 02.11.2026)
   -------------------------------------------------------------------------- */
/* Fortschrittsbalken: schlank, Primärfarbe statt Plattform-Blau */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-progress-bar-text {
  margin-bottom: 6px;
  font-size: 13px;
  color: var(--grp-muted);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-progress-display .progress {
  height: 8px;
  margin-bottom: 20px;
  background: var(--grp-divider);
  box-shadow: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-progress-display .progress-bar {
  background: var(--grp-accent);
  box-shadow: none;
}

/* Schritt-Leiste oben (1 – 2 – 3 …): immer über die ganze Formularbreite,
   Schritte gleichmässig verteilt – egal wie viele Seiten.
   Plattform: jeder Schritt fix 150px, Bereich nur 3/4 breit (col-sm-9) →
   Länge hing von der Seitenzahl ab. Linie: vom ersten bis zum letzten Kreis.
   Mobile (< 768px) macht die Plattform eine senkrechte Liste – bleibt so. */
@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation > .jax-paging-flow {
    float: none;
    width: 100%;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
    border-left: 0;
    border-right: 0;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li > a.jax-step-wrapper {
    display: block;
    float: none;
    width: 100%;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li .jax-step {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li .jax-pill {
    margin-left: auto;
    margin-right: auto;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li .jax-step__text {
    width: auto;
    max-width: 100%;
    padding: 0 6px;
    text-align: center;
  }

  /* Verbindungslinie (Plattform: li::after mit festen 75px) */
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li::after {
    left: 0;
    right: 0;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li:first-child::after {
    left: 50%;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li:last-child::after {
    right: 50%;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-paging-navigation ul.jax-wizard > li:only-child::after {
    display: none;
  }
}

/* Seitenbaum (Navigation links) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-tree .jstree-anchor {
  height: auto;
  min-height: 32px;
  padding: 5px 8px;
  line-height: 1.4;
  white-space: normal;
  color: #374151;
  transition: background-color .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-tree .jax-tree-item-selected > .jstree-anchor {
  background: var(--grp-head-bg);
  box-shadow: inset 3px 0 0 var(--grp-accent);
  font-weight: 700;
  color: var(--grp-primary-text);
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-tree .jstree-anchor:hover {
    background: var(--grp-tint);
    color: var(--grp-primary-text);
  }
}

/* Buttons in den Navigationsleisten: unten (.jax-sticky-content) und unter
   dem Seitenbaum (.jax-tree-control). Überall gleich:
     Aktionen (Speichern, Einreichen …) = ausgefüllt, 34px
     Navigation (Zurück / Weiter)        = Umriss, 32px, 13px
   Das Theme hat in der unteren Leiste spezifischere Regeln – darum li > a.
   Weisse Schrift braucht ≥ 4.5:1 → Hintergrund in der Text-Variante der Primärfarbe. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-sticky-content, .jax-tree-control) .pager li > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  height: auto !important;                  /* Mandanten-CSS: .btn 39px, padding 8px */
  padding: 5px 14px !important;
  background: var(--grp-primary-text) !important;           /* stärkere Plattform-Regel in der unteren Leiste */
  border: 1px solid var(--grp-primary-text) !important;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.2 !important;
  color: #fff !important;
  transition: filter .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-sticky-content, .jax-tree-control) .pager li > a:is(.jax-paging-next-button, .jax-paging-previous-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  align-self: center;                       /* nicht auf die Höhe von «Einreichen» strecken */
  min-height: 32px;
  height: auto !important;                  /* Mandanten-CSS: height 39px */
  padding: 4px 12px;
  background: #fff !important;
  border: 1.5px solid var(--grp-primary-text) !important;
  font-size: 13px;
  font-weight: 600;
  color: var(--grp-primary-text) !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-sticky-content, .jax-tree-control) .pager li > :is(a.jax-paging-next-button, a.jax-paging-previous-button, .btn) :is(span, .far, .fas) {
  color: inherit;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-sticky-content, .jax-tree-control) .pager li > :is(a.jax-paging-next-button, a.jax-paging-previous-button, .btn):focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 2px;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-sticky-content, .jax-tree-control) .pager li > .btn:hover {
    filter: brightness(1.12);
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT :is(.jax-sticky-content, .jax-tree-control) .pager li > a:is(.jax-paging-next-button, .jax-paging-previous-button):hover {
    background: color-mix(in srgb, var(--grp-primary) 10%, #fff) !important;
  }
}

/* Seitenformulare (Wizard mit Schritten 1–4, z.B. «Geburtsurkunde bestellen»):
   «Zurück / Weiter» stehen am Seitenende in .jax-paging-navigation (unten),
   «Speichern / Einreichen» darunter in .jax-main-controls.
   Beide Gruppen rechtsbündig nebeneinander, gleiche Höhe und Form.
   Mobile: Speichern/Einreichen volle Breite untereinander (gut antippbar).
   Die Plattform setzt Farben und Breiten mit hoher Spezifität → !important. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin: 16px 0 12px;
  padding: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager > li {
  display: block;
  margin: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager > li > a,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 34px;
  height: auto !important;                  /* Mandanten-CSS: height 39px */
  margin: 0 !important;
  padding: 5px 14px !important;
  background: var(--grp-primary-text) !important;   /* weisse Schrift braucht ≥ 4.5:1 */
  border: 1px solid var(--grp-primary-text) !important;
  font-size: 14px !important;
  font-weight: 600;
  line-height: 1.2;
  color: #fff !important;
  text-decoration: none;
  transition: filter .15s ease;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager > li > a :is(span, .glyphicon),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li > .btn :is(span, .jax-btn-label, .jax-workflow-action-icon) {
  color: inherit !important;
}

/* Zurück / Weiter: als Umriss (weiss, Rahmen und Schrift in der Primärfarbe),
   etwas kleiner als die Aktionen Speichern/Einreichen */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager > li > a {
  min-height: 32px;
  padding: 4px 12px !important;
  background: #fff !important;
  border: 1.5px solid var(--grp-primary-text) !important;
  font-size: 13px !important;               /* gemeinsame Regel oben setzt 14px !important */
  color: var(--grp-primary-text) !important;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager > li > a:hover {
    background: color-mix(in srgb, var(--grp-primary) 10%, #fff) !important;
  }
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager .glyphicon {
  top: 0;
  font-size: 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT [id^="div_paging_nav_bottom"] > .pager > li > a:focus-visible,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li > .btn:focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 2px;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li > .btn:hover {
    filter: brightness(1.15);
  }
}

/* Speichern / Einreichen: Mobile volle Breite untereinander */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li {
  flex: 1 1 100%;
  width: auto;
  margin: 0;
  padding: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li > .btn {
  width: 100% !important;
}

/* Variante der Plattform: «Weiter/Zurück» werden in die gleiche Leiste
   eingehängt (li.pager-appended). Dann eigene Zeile OBERHALB von
   Speichern/Einreichen, rechtsbündig, Buttons nur so breit wie der Text. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li.pager-appended {
  flex: 1 1 100% !important;
  order: -1;
  width: 100% !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li.pager-appended > .pager {
  display: flex;
  flex-direction: row !important;           /* Plattform: auf Mobile untereinander, volle Breite */
  align-items: center !important;
  flex-wrap: wrap;
  justify-content: flex-end !important;     /* Plattform: «Zurück» ganz links */
  gap: 8px;
  width: 100%;
  margin: 0 0 6px;
  padding: 0;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li.pager-appended > .pager > li {
  display: block;
  flex: 0 0 auto !important;                /* Plattform: auf Mobile volle Breite */
  float: none !important;
  width: auto !important;
  margin: 0 !important;                     /* Plattform: margin-right:auto schiebt «Zurück» nach links */
}

/* Selektor bewusst stark: Mandanten-CSS setzt hier eigene Werte mit !important
   (z.B. border-radius: 3px) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky .jax-sticky-content .jax-main-controls > li.pager-appended > .pager > li > a:is(.jax-paging-next-button, .jax-paging-previous-button) {
  display: inline-flex;
  width: auto !important;
  min-width: 0 !important;
  min-height: 32px;                         /* etwas kleiner als Speichern/Einreichen */
  padding: 4px 12px !important;
  background: #fff !important;              /* Navigation = Umriss, Aktionen (Speichern/Einreichen) = ausgefüllt */
  border: 1.5px solid var(--grp-primary-text) !important;
  font-size: 13px !important;
  color: var(--grp-primary-text) !important;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky .jax-sticky-content .jax-main-controls > li.pager-appended > .pager > li > a:is(.jax-paging-next-button, .jax-paging-previous-button):hover {
    background: color-mix(in srgb, var(--grp-primary) 10%, #fff) !important;
  }
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li.pager-appended > .pager .glyphicon {
  top: 0;
  font-size: 11px;
}

/* Ab grossem Smartphone: nebeneinander, so breit wie der Text */
@media (min-width: 576px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content:has(.jax-main-controls) {
    width: auto;
    max-width: 100%;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li {
    flex: 0 0 auto;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-sticky-content .jax-main-controls > li > .btn {
    width: auto !important;
    min-width: 0 !important;                /* Plattform ab 1200px: min-width 200px → viel Leerraum neben dem Text */
  }
}

/* --------------------------------------------------------------------------
   16. Auswahlfelder: Select2 (Dropdown, Combobox, Tags)
       Gleich wie Eingabefelder. Die aufgeklappte Liste hängt die Plattform
       in #FORM_CONTAINER (ausserhalb von #FORM_CONTENT) → Abschnitt 20c.
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .select2-container .select2-selection {
  min-height: 34px;
  background: #fff;
  border: 1px solid var(--grp-input-border);
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .select2-container .select2-selection:hover {
    border-color: var(--grp-primary-text);
  }
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .select2-container:is(.select2-container--focus, .select2-container--open) .select2-selection {
  border-color: var(--grp-accent);
  box-shadow: 0 0 0 3px var(--jax-color-primary-focus-ring);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .select2-container .select2-selection__arrow b {
  border-top-color: var(--grp-muted);
}

/* Mehrfachauswahl / Tags als ruhige Chips */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .select2-container .select2-selection__choice {
  padding: 2px 10px;
  background: var(--grp-head-bg);
  border: 1px solid var(--grp-border);
  color: #1f2937;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .select2-container .select2-selection__choice__remove {
  color: var(--grp-muted);
}

/* --------------------------------------------------------------------------
   17. Checkboxen und Optionsfelder überall (Checkbox-Gruppen, Skala, Matrix,
       Tabellen) – bisher nur in den Standard-Feldern gestaltet
   -------------------------------------------------------------------------- */
/* Häkchen der Plattform ist auf 15px gebaut → skalieren (≈ 13px, passend zu den Optionsfeldern) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="checkbox"] + .custom-input-checkbox {
  outline-color: var(--grp-control-ring);
  transform: scale(.867);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="checkbox"]:checked + .custom-input-checkbox {
  outline-color: var(--grp-accent);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"] + .custom-input-radiobutton {
  outline-color: var(--grp-control-ring);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"]:checked + .custom-input-radiobutton {
  outline-color: var(--grp-accent);
}

/* Grösse: Plattform 15px (+ Rand ≈ 19px) wirkt neben den schlanken Feldern
   zu wuchtig → 13px.
   Optionsfelder mit FESTEN Massen statt Skalierung: Skalieren erzeugt halbe
   Pixel, dann sitzt der Punkt je nach Bildschirm nicht exakt in der Mitte.
   Die Position der Plattform (margin) bleibt; translate(1px) gleicht die
   2px kleinere Grösse ganzzahlig aus → Mitte exakt wie bisher. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"] + .custom-input-radiobutton {
  width: 13px;
  height: 13px;
  transform: translate(1px, 1px);
}

/* Kreis-Füllung (Punkt) und Hover-Ring: gleiche Grösse wie der Kreis.
   !important: die Plattform setzt je Zustand (checked, focus) eigene 15px */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"] + .custom-input-radiobutton::before,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"] + .custom-input-radiobutton::after {
  top: 0 !important;
  left: 0 !important;
  width: 13px !important;
  height: 13px !important;
}

/* Fokus: nur EIN runder Ring (Plattform: box-shadow am Kreis bei .focus-visible).
   Den zusätzlichen Rahmen am darunterliegenden <input> (outline, 4px Abstand)
   ausblenden – er erschien als zweiter, eckiger Ring. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"]:focus {
  outline: none !important;
}

/* Punkt: 7px, IMMER exakt mittig.
   Nicht als verkleinertes ::after (scale) – das wird bei Bruchteil-Pixel-
   Positionen anders gerundet als der Ring und rutscht dann 1px aus der Mitte.
   Stattdessen als Hintergrund im selben Element wie der Ring (outline):
   gleiche Box, gleiche Rundung → Ring und Punkt laufen nie auseinander. */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"] + .custom-input-radiobutton::after {
  visibility: hidden !important;           /* Punkt der Plattform */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"]:checked + .custom-input-radiobutton {
  background-image: radial-gradient(circle closest-side, var(--jax-color-primary) 0 calc(100% - 3px), transparent calc(100% - 2.5px)) !important;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT input[type="radio"]:checked:is([disabled], [readonly], .ui-state-disabled) + .custom-input-radiobutton {
  background-image: radial-gradient(circle closest-side, #9aa1ab 0 calc(100% - 3px), transparent calc(100% - 2.5px)) !important;
}

/* --------------------------------------------------------------------------
   18. Tabs (z.B. Signatur «Unterschrift / Smartphone/Tablet»)
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .nav-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  border-bottom: 1px solid var(--grp-border);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .nav-tabs > li > a {
  margin: 0;
  padding: 8px 12px;
  background: none;
  border: 0;
  border-bottom: 3px solid transparent;
  font-weight: 600;
  color: var(--grp-muted);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .nav-tabs > li.active > a,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .nav-tabs > li.active > a:is(:hover, :focus) {
  background: none;
  border: 0;
  border-bottom: 3px solid var(--grp-accent);
  color: var(--grp-primary-text);
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .nav-tabs > li:not(.active) > a:hover {
    background: var(--grp-tint);
    color: var(--grp-primary-text);
  }
}

/* Signaturfeld: Rahmen wie Eingabefelder */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-jsignature canvas {
  border: 1px dashed var(--grp-input-border) !important;   /* Inline-Style der Plattform: border-style none */
  background: #fff;
}

/* --------------------------------------------------------------------------
   19. Trenner-Titel (CSS-Klasse «caption-separator_classic» im Formular)
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-caption-separator_classic > .jax-label-text {
  display: block;
  margin: 8px 0 12px !important;
  padding: 0 0 6px;
  border-bottom: 2px solid var(--grp-border);
  font-size: 15px;
  color: #1f2937;
}

/* --------------------------------------------------------------------------
   20. Zusammenfassung (Plattform-Vorschau aller Eingaben)
       Aufbau: h2.jax-tree-level-1 (Seite) + table.jax-preview-table
       (th = Bezeichnung, td = Wert); Untergruppen als .jax-group mit
       thead th.jax-th-grp-first. Mobile: Bezeichnung über dem Wert,
       ab 768px zweispaltig. Leere Abschnitte/Tabellen werden ausgeblendet.
   -------------------------------------------------------------------------- */
/* Seitentitel als Abschnitts-Kopf (wie Gruppen-Kopfzeile) */
/* Plattform setzt hier margin/padding/font-size mit !important ([id^="rootPrevie"] h2) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT h2.jax-tree-level-1 {
  margin: var(--grp-gap) 0 0 !important;
  padding: 10px var(--grp-pad-x) 10px calc(var(--grp-pad-x) - 4px) !important;
  background: var(--grp-card-bg);
  border: 1px solid var(--grp-border);
  border-left: 4px solid var(--grp-accent);
  font: 600 var(--grp-head-fs)/1.3 Roboto, Arial, sans-serif;
  font-size: var(--grp-head-fs) !important;
  color: var(--grp-primary-text);
}

/* Abschnitte ohne Inhalt ausblenden (direkt nächster Titel oder Ende) */
/* (Plattform: display:block !important) */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT h2.jax-tree-level-1:is(:has(+ h2.jax-tree-level-1), :last-child) {
  display: none !important;
}

/* Leere Tabellen ausblenden */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table:not(:has(tr)) {
  display: none;
}

/* Tabellen: bilden zusammen den «Körper» des Abschnitts */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > :is(thead, tbody),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > thead > tr,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > thead > tr > th {
  display: block;                           /* Zeilen als Blöcke/Grid statt Tabellen-Layout */
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table {
  width: 100%;
  margin: 0;
  background: var(--grp-card-bg);
  border: 1px solid var(--grp-border);
  border-top: 0;
  border-collapse: separate;
  border-spacing: 0;
}

/* Zeilen – Mobile: Bezeichnung über dem Wert */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr {
  display: block;
  padding: 10px var(--grp-pad-x);
  border-top: 1px solid var(--grp-divider);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr:first-child {
  border-top: 0;
}

/* Plattform: th/td je width:50% – im Grid würden sie sonst halbiert */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr > :is(th, td) {
  display: block;
  width: auto;
  padding: 0;
  background: none;
  border: 0;
  text-align: left;
  vertical-align: top;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr > th {
  margin-bottom: 2px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--grp-muted);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr > td {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  color: #1f2937;
  overflow-wrap: anywhere;
}

/* Untergruppen («Gruppe 1», «Schweizer Postadresse» …) als Zwischentitel */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > thead th.jax-th-grp-first {
  padding: 14px var(--grp-pad-x) 6px;
  background: none !important;             /* Plattform: background-color !important */
  border: 0;
  border-top: 1px solid var(--grp-divider);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .6px;
  text-align: left;
  text-transform: uppercase;
  color: var(--grp-muted);
}

/* Untergruppen leicht einrücken, damit die Hierarchie sichtbar ist */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table.jax-group > tbody > tr {
  margin-left: var(--grp-pad-x);
  padding-left: 12px;
  border-left: 2px solid var(--grp-divider);
}

/* Ab Tablet: zweispaltig, Bezeichnung 40 % */
@media (min-width: 768px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    column-gap: 24px;
    align-items: baseline;
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr > th {
    margin-bottom: 0;
    font-size: 14px;
  }
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT table.jax-preview-table > tbody > tr:hover {
    background: var(--grp-tint);
  }
}

/* --------------------------------------------------------------------------
   20b. Dialoge (Popups der Plattform, z.B. «Upload via Mobile» mit QR-Code)
        Ausnahme vom Präfix: Bootstrap-Dialoge hängt die Plattform direkt in
        #FORM_CONTAINER, also AUSSERHALB von #FORM_CONTENT. Gescoped bleibt
        es über .main-public-form-embedded #FORM_CONTAINER > .modal.
        Die Plattform setzt Breite/Höhe inline (650 × 500px) → !important.
   -------------------------------------------------------------------------- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .modal-dialog {
  width: auto !important;
  max-width: 560px;
  height: auto !important;
  margin: 16px;
}

@media (min-width: 600px) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .modal-dialog {
    margin: 48px auto;
  }
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .modal-content {
  background: var(--grp-card-bg);
  border: 0;                                /* Rahmen als Schatten-Ring aussen: Kopf, Inhalt und */
  box-shadow: 0 0 0 1px var(--grp-border), 0 2px 6px rgba(16, 24, 40, .08), 0 16px 40px rgba(16, 24, 40, .16);
}

/* Kopf wie ein Gruppentitel: weiss, Farbstreifen links, feine Linie unten */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .modal-header {
  padding: 12px var(--grp-pad-x);
  background: var(--grp-card-bg);
  border-bottom: 1px solid var(--grp-border);
  box-shadow: inset 4px 0 0 var(--grp-accent);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-header {
  display: flex;
  flex-direction: row-reverse;              /* × steht im HTML vor dem Titel */
  align-items: center;
  gap: 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-title {
  flex: 1 1 auto;
  font-size: var(--grp-head-fs);
  font-weight: 600;
  line-height: 1.4;
  color: var(--grp-primary-text);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-close-button .close {
  float: none;
  width: 32px;
  height: 32px;
  margin: -6px -8px -6px 0;
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  color: var(--grp-muted);
  opacity: 1;
  text-shadow: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-close-button .close:hover {
  background: var(--grp-divider);
  color: #1f2937;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .modal-body {
  height: auto !important;
  padding: 16px var(--grp-pad-x) 8px;
}

/* Blauer Bootstrap-Hinweis → wie die Info-Karten im Formular */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .alert-info {
  margin: 0 0 16px;
  padding: 12px 14px;
  background: var(--grp-info-bg);
  border: 1px solid var(--grp-border);
  border-left: 4px solid var(--grp-primary-soft);
  font-size: 14px;
  line-height: 1.55;
  color: #1f2937;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .alert-info > div:first-child {
  margin-bottom: 2px;
  font-weight: 600 !important;
}

/* QR-Code mittig, ohne die grosse Leerfläche der fixen Dialoghöhe */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .jax-qrCode {
  display: flex;
  justify-content: center;
  padding: 8px 0 16px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .jax-qrCode img {
  width: 200px;
  max-width: 100%;
  height: auto;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--grp-border);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .modal-footer {
  padding: 12px var(--grp-pad-x);
  background: var(--grp-card-bg);
  border-top: 1px solid var(--grp-divider);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-footer-buttons {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

/* Buttons wie unten im Formular: erster (OK) ausgefüllt, weitere als Umriss */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-footer-buttons > .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  height: auto !important;
  margin: 0 !important;
  padding: 5px 14px;
  background: #fff;
  border: 1.5px solid var(--grp-primary-text);
  font-size: 14px;
  font-weight: 600;
  color: var(--grp-primary-text);
  box-shadow: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-footer-buttons > .btn:first-child {
  background: var(--grp-primary-text);
  color: #fff;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-footer-buttons > .btn:focus-visible {
  outline: 2px solid var(--grp-accent);
  outline-offset: 2px;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-footer-buttons > .btn:hover {
    background: var(--grp-tint);
  }

  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .modal.jax-default-dialog .bootstrap-dialog-footer-buttons > .btn:first-child:hover {
    background: var(--grp-primary-text);
    filter: brightness(1.12);
  }
}

/* --------------------------------------------------------------------------
   20c. Kalender, Hilfe-Tooltip, Dropdown-Liste
        Kalender (bootstrap-datetimepicker) liegt IM Formular neben dem
        Datumsfeld. Tooltip (.popover) und aufgeklappte Dropdown-Liste
        (Select2) hängt die Plattform direkt in #FORM_CONTAINER – Ausnahme
        vom Präfix wie bei den Dialogen (20b).
   -------------------------------------------------------------------------- */
/* ---- Kalender ---- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget.dropdown-menu {
  padding: 8px;
  background: var(--grp-card-bg);
  border: 1px solid var(--grp-border);
  box-shadow: 0 2px 6px rgba(16, 24, 40, .08), 0 8px 24px rgba(16, 24, 40, .12);
  font-size: 13px;
  color: #1f2937;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget.dropdown-menu.bottom::before {
  border-bottom-color: var(--grp-border);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget.dropdown-menu.top::before {
  border-top-color: var(--grp-border);
}

/* Monat / Jahr und Pfeile */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget .picker-switch {
  font-weight: 600;
  color: var(--grp-primary-text);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget :is(th.prev, th.next, .btn) {
  color: var(--grp-primary-text);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget th.dow {
  font-size: 12px;
  font-weight: 600;
  color: var(--grp-muted);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget td.cw {
  font-size: 11px;
  color: #9aa1ab;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget td:is(.old, .new) {
  color: #9aa1ab;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget td.disabled,
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget td span.disabled {
  color: #c3c9d1;
  background: none;
}

@media (hover: hover) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget :is(td.day, td.hour, td.minute, td span, thead th):not(.disabled):not(.active):hover {
    background: var(--grp-tint);
    color: var(--grp-primary-text);
  }
}

/* Heute: Rahmen in der Primärfarbe statt gelber Fläche */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget td.today:not(.active) {
  background: none !important;
  box-shadow: inset 0 0 0 1px var(--grp-accent);
  font-weight: 700;
  color: var(--grp-primary-text);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget td.today::before {
  display: none;                            /* Dreieck der Plattform */
}

/* Gewählt: Primärfarbe statt Bootstrap-Blau */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget :is(td.active, td span.active),
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .bootstrap-datetimepicker-widget :is(td.active, td span.active):hover {
  background: var(--grp-primary-text) !important;
  color: #fff !important;
  text-shadow: none;
}

/* ---- Hilfe-Tooltip ---- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover {
  max-width: 320px;
  padding: 0;
  background: var(--grp-card-bg);
  border: 1px solid var(--grp-border);
  box-shadow: 0 2px 6px rgba(16, 24, 40, .08), 0 8px 24px rgba(16, 24, 40, .12);
  font: 13px/1.5 Roboto, Arial, sans-serif;
  color: #1f2937;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover > .popover-title {
  padding: 8px 12px;
  background: var(--grp-card-bg);
  border-bottom: 1px solid var(--grp-divider);
  font-size: 13px;
  font-weight: 600;
  color: var(--grp-primary-text);
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover > .popover-content {
  padding: 10px 12px;
}

/* Pfeil: Rand wie die Box */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover.top > .arrow { border-top-color: var(--grp-border); }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover.right > .arrow { border-right-color: var(--grp-border); }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover.bottom > .arrow { border-bottom-color: var(--grp-border); }
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .popover.left > .arrow { border-left-color: var(--grp-border); }

/* ---- Aufgeklappte Dropdown-Liste (Select2) ---- */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-dropdown {
  background: var(--grp-card-bg);
  border: 1px solid var(--grp-accent);
  box-shadow: 0 8px 24px rgba(16, 24, 40, .12);
  font-size: 14px;
  color: #1f2937;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-search__field {
  padding: 6px 8px;
  border: 1px solid var(--grp-input-border);
  box-shadow: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-search__field:focus {
  border-color: var(--grp-accent);
  box-shadow: 0 0 0 3px var(--jax-color-primary-focus-ring);
  outline: none;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-results__option {
  padding: 7px 12px;
}

.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-results__group {
  padding: 10px 12px 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--grp-muted);
}

/* Bereits gewählt */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-results__option:is([aria-selected="true"], .select2-results__option--selected) {
  background: var(--grp-head-bg);
  font-weight: 600;
  color: var(--grp-primary-text);
}

/* Mit Tastatur / Maus markiert */
.JAX-MARKER .main-public-form-embedded #FORM_CONTAINER > .select2-container .select2-results__option.select2-results__option--highlighted {
  background: color-mix(in srgb, var(--grp-primary) 12%, #fff);
  color: var(--grp-primary-text);
}

/* --------------------------------------------------------------------------
   20d. Warte-Anzeige beim Absenden (jQuery blockUI der Plattform)
        Plattform: schwarze Fläche (60 %) über der ganzen Seite + grosse weisse
        Box «Please wait...» – blitzt bei jedem Absenden kurz auf.
        Neu: Fläche unsichtbar (blockiert weiterhin Doppelklicks), Hinweis
        erscheint erst nach 0.8 s als kleine Anzeige im Formular-Design.
        Ausnahme vom Präfix: blockUI hängt direkt in <body>. Gescoped über
        body:has(.main-public-form-embedded) → nur Seiten mit Portal-Formular.
        Inline-Styles der Plattform → !important.
   -------------------------------------------------------------------------- */
body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockOverlay {
  background-color: transparent !important;
}

body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage {
  top: 50% !important;
  left: 50% !important;
  width: auto !important;
  padding: 12px 18px !important;
  background: #fff !important;
  border: 1px solid #dde1e6 !important;
  border-radius: 0 !important;
  box-shadow: 0 2px 6px rgba(16, 24, 40, .08), 0 8px 24px rgba(16, 24, 40, .12);
  transform: translate(-50%, -50%);
  font: 14px/1.4 Roboto, Arial, sans-serif;
  color: #1f2937 !important;
  animation: grp-wait-show .2s ease .8s both;   /* kurze Aktionen: nichts sichtbar */
}

/* Standardtext «Please wait...» ersetzen (nur beim Standard-Hinweis) */
body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage:has(> h1:only-child) {
  display: flex !important;
  align-items: center;
  gap: 10px;
}

body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage > h1:only-child {
  display: none;
}

body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage:has(> h1:only-child)::before {
  content: "";
  width: 16px;
  height: 16px;
  border: 2px solid #dde1e6;
  border-top-color: var(--theme-color-primary, #000031);
  border-radius: 50%;
  animation: grp-wait-spin .8s linear infinite;
}

body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage:has(> h1:only-child)::after {
  content: "Bitte warten …";
}

html:lang(fr) body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage:has(> h1:only-child)::after { content: "Veuillez patienter …"; }
html:lang(it) body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage:has(> h1:only-child)::after { content: "Attendere …"; }
html:lang(en) body:has(.JAX-MARKER .main-public-form-embedded) > .blockUI.blockMsg.blockPage:has(> h1:only-child)::after { content: "Please wait …"; }

@keyframes grp-wait-show {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes grp-wait-spin {
  to { transform: rotate(360deg); }
}

/* --------------------------------------------------------------------------
   21. Bewegung reduzieren, wenn im System so eingestellt
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered,
  .JAX-MARKER .main-public-form-embedded #FORM_CONTAINER #FORM_CONTENT .jax-fieldset > fieldset.jax-fieldset-bordered * {
    transition: none;
  }
}
