/**
 * Gutenberg Formbuilder – Formular-Optik (Frontend + Editor-Canvas, pixelidentisch).
 *
 * Vier Modi (data-gfb-appearance):
 *   - theme       : KEIN Plugin-Stil. Formular erbt komplett vom Website-Theme.
 *                   Keine Tokens, kein Reset, keine Karte, keine Feld-Skins.
 *   - light/dark/auto : vollstaendig isolierte, Apple-artige Stile. Das Plugin
 *                   stylt alles selbst. auto = light + prefers-color-scheme: dark.
 *
 * Isolation (beide Richtungen):
 *   1. Kein Einfluss VON aussen: harter Reset (all: revert) auf alle Formular-
 *      Elemente unter dem gescopeten Wrapper, danach explizite Neusetzung. Die
 *      Durchsetzung gegen ungelayertes Theme-CSS traegt die Spezifitaet der
 *      Attribut-Selektoren PLUS gezieltes !important auf darstellungskritische
 *      Eigenschaften. @layer dient nur der internen Organisation.
 *   2. Kein Einfluss NACH aussen: alle Selektoren strikt unter .gfb-form-wrapper.
 *      Editor-Chrome (Block-Inserter etc.) liegt ausschliesslich in gfb-editor.css.
 *
 * Custom-Color-Overrides (Inline-Variablen aus PHP, z. B. --gfb-light-text):
 *   Die Modus-Tokens lesen diese Variablen als ersten Fallback. Setzt der Nutzer
 *   eine eigene Farbe, gewinnt sie automatisch; sonst greift der Apple-Default.
 */

/* ============================================================== *
 * theme: bewusst NICHTS. Nur strukturelle, theme-neutrale Regeln.
 * ============================================================== */

/* Honeypot bleibt in jedem Modus technisch unsichtbar (kein sichtbares Skin). */
.gfb-form-wrapper .gfb-hp-field {
	position: absolute;
	left: -9999px;
	opacity: 0;
	pointer-events: none;
}

/* Erfolgsbereich (Frontend nach erfolgreichem Absenden ohne Folgeseite) –
   reine Layout-Abstaende, modusunabhaengig, kein Farb-Skin. */
.gfb-form-wrapper .gfb-form-success-output {
	max-width: 100%;
}

.gfb-form-wrapper .gfb-form-success-panel {
	margin-block: 0 1.25rem;
}

.gfb-form-wrapper .gfb-form-success-panel:last-child {
	margin-bottom: 0;
}

/* ============================================================== *
 * Token-Layer: Paletten pro Modus.
 * theme bekommt KEINE Tokens und faellt damit komplett durch.
 * ============================================================== */
@layer gfb-tokens {

	/* Gemeinsame, modusunabhaengige Tokens (nur fuer light/dark/auto). */
	.gfb-form-wrapper[data-gfb-appearance="light"],
	.gfb-form-wrapper[data-gfb-appearance="dark"],
	.gfb-form-wrapper[data-gfb-appearance="auto"] {
		--gfb-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
		--gfb-body-size: 1.0625rem; /* 17px */
		--gfb-line: 1.5;
		--gfb-radius: 10px;
		--gfb-radius-card: 16px;
		--gfb-stack-gap: 1.25rem;
		--gfb-label-gap: 0.4rem;
		--gfb-field-pad: 0.7rem 0.9rem;
		--gfb-card-pad: 1.75rem;
		--gfb-control-size: 1.125rem; /* 18px Checkbox/Radio */
		--gfb-transition: 0.15s ease;
	}

	/* Hell – Custom-Overrides (Inline) als Fallback vor dem Apple-Default. */
	.gfb-form-wrapper[data-gfb-appearance="light"] {
		color-scheme: light;
		--gfb-card: var(--gfb-light-form-shell, #ffffff);
		--gfb-text: var(--gfb-light-text, #1d1d1f);
		--gfb-label: var(--gfb-light-label, #6e6e73);
		--gfb-placeholder: var(--gfb-light-placeholder, #86868b);
		--gfb-field-bg: var(--gfb-light-bg, #ffffff);
		--gfb-border: var(--gfb-light-border, #d2d2d7);
		--gfb-accent: var(--gfb-light-border-focus, #0071e3);
		--gfb-on-accent: var(--gfb-light-submit-text, #ffffff);
		--gfb-button-bg: var(--gfb-light-submit-bg, var(--gfb-accent));
		--gfb-focus-ring: 0 0 0 4px color-mix(in srgb, var(--gfb-accent) 25%, transparent);
		--gfb-success-bg: #e7f6ec;
		--gfb-success-border: #34c759;
		--gfb-success-text: #1d1d1f;
		--gfb-error-bg: #fdeceb;
		--gfb-error-border: #ff3b30;
		--gfb-error-text: #1d1d1f;
		--gfb-track: #d2d2d7;
	}

	/* Dunkel. */
	.gfb-form-wrapper[data-gfb-appearance="dark"] {
		color-scheme: dark;
		--gfb-card: var(--gfb-dark-form-shell, #1c1c1e);
		--gfb-text: var(--gfb-dark-text, #f5f5f7);
		--gfb-label: var(--gfb-dark-label, #aeaeb2);
		--gfb-placeholder: var(--gfb-dark-placeholder, #8e8e93);
		--gfb-field-bg: var(--gfb-dark-bg, #2c2c2e);
		--gfb-border: var(--gfb-dark-border, #48484a);
		--gfb-accent: var(--gfb-dark-border-focus, #0a84ff);
		--gfb-on-accent: var(--gfb-dark-submit-text, #ffffff);
		--gfb-button-bg: var(--gfb-dark-submit-bg, var(--gfb-accent));
		--gfb-focus-ring: 0 0 0 4px color-mix(in srgb, var(--gfb-accent) 25%, transparent);
		--gfb-success-bg: #14321f;
		--gfb-success-border: #30d158;
		--gfb-success-text: #f5f5f7;
		--gfb-error-bg: #3a1715;
		--gfb-error-border: #ff453a;
		--gfb-error-text: #f5f5f7;
		--gfb-track: #48484a;
	}

	/* Auto = Hell-Werte, schaltet per System auf Dunkel. */
	.gfb-form-wrapper[data-gfb-appearance="auto"] {
		color-scheme: light dark;
		--gfb-card: var(--gfb-light-form-shell, #ffffff);
		--gfb-text: var(--gfb-light-text, #1d1d1f);
		--gfb-label: var(--gfb-light-label, #6e6e73);
		--gfb-placeholder: var(--gfb-light-placeholder, #86868b);
		--gfb-field-bg: var(--gfb-light-bg, #ffffff);
		--gfb-border: var(--gfb-light-border, #d2d2d7);
		--gfb-accent: var(--gfb-light-border-focus, #0071e3);
		--gfb-on-accent: var(--gfb-light-submit-text, #ffffff);
		--gfb-button-bg: var(--gfb-light-submit-bg, var(--gfb-accent));
		--gfb-focus-ring: 0 0 0 4px color-mix(in srgb, var(--gfb-accent) 25%, transparent);
		--gfb-success-bg: #e7f6ec;
		--gfb-success-border: #34c759;
		--gfb-success-text: #1d1d1f;
		--gfb-error-bg: #fdeceb;
		--gfb-error-border: #ff3b30;
		--gfb-error-text: #1d1d1f;
		--gfb-track: #d2d2d7;
	}

	@media (prefers-color-scheme: dark) {
		.gfb-form-wrapper[data-gfb-appearance="auto"] {
			--gfb-card: var(--gfb-dark-form-shell, #1c1c1e);
			--gfb-text: var(--gfb-dark-text, #f5f5f7);
			--gfb-label: var(--gfb-dark-label, #aeaeb2);
			--gfb-placeholder: var(--gfb-dark-placeholder, #8e8e93);
			--gfb-field-bg: var(--gfb-dark-bg, #2c2c2e);
			--gfb-border: var(--gfb-dark-border, #48484a);
			--gfb-accent: var(--gfb-dark-border-focus, #0a84ff);
			--gfb-on-accent: var(--gfb-dark-submit-text, #ffffff);
			--gfb-button-bg: var(--gfb-dark-submit-bg, var(--gfb-accent));
			--gfb-success-bg: #14321f;
			--gfb-success-border: #30d158;
			--gfb-success-text: #f5f5f7;
			--gfb-error-bg: #3a1715;
			--gfb-error-border: #ff453a;
			--gfb-error-text: #f5f5f7;
			--gfb-track: #48484a;
		}
	}
}

/* ============================================================== *
 * Reset: harter Reset gegen Theme-Erbe (nur light/dark/auto).
 * all: revert verwirft Theme-Autor-Stile und faellt auf den Browser-Default
 * zurueck; danach erzwingen die Komponenten-Regeln die Apple-Optik mit
 * Spezifitaet + !important (schlaegt auch !important-Theme-Regeln).
 * Bewusst UNgelayert, damit revert nicht nur eine Layer-Ebene zurueckspringt.
 * ============================================================== */
	.gfb-form-wrapper[data-gfb-appearance="light"] input,
	.gfb-form-wrapper[data-gfb-appearance="light"] select,
	.gfb-form-wrapper[data-gfb-appearance="light"] textarea,
	.gfb-form-wrapper[data-gfb-appearance="light"] button,
	.gfb-form-wrapper[data-gfb-appearance="light"] label,
	.gfb-form-wrapper[data-gfb-appearance="light"] legend,
	.gfb-form-wrapper[data-gfb-appearance="light"] fieldset,
	.gfb-form-wrapper[data-gfb-appearance="light"] output,
	.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field,
	.gfb-form-wrapper[data-gfb-appearance="dark"] input,
	.gfb-form-wrapper[data-gfb-appearance="dark"] select,
	.gfb-form-wrapper[data-gfb-appearance="dark"] textarea,
	.gfb-form-wrapper[data-gfb-appearance="dark"] button,
	.gfb-form-wrapper[data-gfb-appearance="dark"] label,
	.gfb-form-wrapper[data-gfb-appearance="dark"] legend,
	.gfb-form-wrapper[data-gfb-appearance="dark"] fieldset,
	.gfb-form-wrapper[data-gfb-appearance="dark"] output,
	.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field,
	.gfb-form-wrapper[data-gfb-appearance="auto"] input,
	.gfb-form-wrapper[data-gfb-appearance="auto"] select,
	.gfb-form-wrapper[data-gfb-appearance="auto"] textarea,
	.gfb-form-wrapper[data-gfb-appearance="auto"] button,
	.gfb-form-wrapper[data-gfb-appearance="auto"] label,
	.gfb-form-wrapper[data-gfb-appearance="auto"] legend,
	.gfb-form-wrapper[data-gfb-appearance="auto"] fieldset,
	.gfb-form-wrapper[data-gfb-appearance="auto"] output,
	.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field {
		all: revert;
		box-sizing: border-box;
	}

/* ============================================================== *
 * Komponenten: Apple-Optik fuer light/dark/auto.
 * Selektoren bewusst hochspezifisch (Wrapper-Attribut + Element) und
 * darstellungskritische Eigenschaften mit !important, damit aggressive,
 * UNgelayerte Theme-Regeln nicht durchschlagen.
 * ============================================================== */

/* Karte / Wrapper. Gilt fuer alle drei aktiven Modi. */
.gfb-form-wrapper[data-gfb-appearance="light"],
.gfb-form-wrapper[data-gfb-appearance="dark"],
.gfb-form-wrapper[data-gfb-appearance="auto"] {
	box-sizing: border-box !important;
	max-width: 32rem;
	margin-inline: auto;
	padding: var(--gfb-card-pad) !important;
	border: 1px solid var(--gfb-border) !important;
	border-radius: var(--gfb-radius-card) !important;
	background: var(--gfb-card) !important;
	color: var(--gfb-text) !important;
	font-family: var(--gfb-font) !important;
	font-size: var(--gfb-body-size) !important;
	line-height: var(--gfb-line) !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.gfb-form-wrapper[data-gfb-appearance="light"] *,
.gfb-form-wrapper[data-gfb-appearance="light"] *::before,
.gfb-form-wrapper[data-gfb-appearance="light"] *::after,
.gfb-form-wrapper[data-gfb-appearance="dark"] *,
.gfb-form-wrapper[data-gfb-appearance="dark"] *::before,
.gfb-form-wrapper[data-gfb-appearance="dark"] *::after,
.gfb-form-wrapper[data-gfb-appearance="auto"] *,
.gfb-form-wrapper[data-gfb-appearance="auto"] *::before,
.gfb-form-wrapper[data-gfb-appearance="auto"] *::after {
	box-sizing: border-box;
}

/* Formular + Feld-Stack. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-form,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-form,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-form {
	margin: 0 !important;
	padding: 0 !important;
	width: 100%;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-form-fields,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-form-fields,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-form-fields {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Einzelnes Feld (Container). */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	gap: var(--gfb-label-gap) !important;
	margin: 0 0 var(--gfb-stack-gap) !important;
	padding: 0 !important;
	border: 0 !important;
	width: 100% !important;
	min-width: 0;
	position: relative !important;
}

/* Letztes Feld (Submit) braucht unten keinen Stack-Abstand – Karten-Padding genügt. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit {
	margin-bottom: 0 !important;
}

/* Label / Legend. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field > label,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field > legend,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field > label,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field > legend,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field > label,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field > legend {
	display: block !important;
	margin: 0 0 var(--gfb-label-gap) !important;
	padding: 0 !important;
	float: none !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.9375rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	color: var(--gfb-label) !important;
}

/* Legend braucht im fieldset keinen Bottom-Gap doppelt (radio nutzt .gfb-radio-options-Abstand). */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field > legend,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field > legend,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field > legend {
	width: 100%;
}

/* ---- Text-artige Eingaben + Textarea + Select ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="text"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="email"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="tel"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="url"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="number"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="date"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="time"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="datetime-local"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field textarea,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field select,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="text"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="email"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="tel"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="url"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="number"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="date"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="time"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="datetime-local"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field textarea,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field select,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="text"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="email"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="tel"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="url"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="number"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="date"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="time"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="datetime-local"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field textarea,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field select {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: var(--gfb-field-pad) !important;
	font-family: var(--gfb-font) !important;
	font-size: var(--gfb-body-size) !important;
	line-height: var(--gfb-line) !important;
	color: var(--gfb-text) !important;
	background-color: var(--gfb-field-bg) !important;
	background-image: none !important;
	border: 1px solid var(--gfb-border) !important;
	border-radius: var(--gfb-radius) !important;
	box-shadow: none !important;
	outline: none !important;
	transition: border-color var(--gfb-transition), box-shadow var(--gfb-transition) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field textarea,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field textarea,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field textarea {
	min-height: 6.5rem !important;
	resize: vertical !important;
}

/* Platzhalter. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input::placeholder,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field textarea::placeholder,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input::placeholder,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field textarea::placeholder,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input::placeholder,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field textarea::placeholder {
	color: var(--gfb-placeholder) !important;
	opacity: 1 !important;
}

/* Fokus: kein Layout-Shift – Akzent-Rahmen + weicher Ring. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input:focus,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field textarea:focus,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field select:focus,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input:focus,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field textarea:focus,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field select:focus,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input:focus,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field textarea:focus,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field select:focus {
	border-color: var(--gfb-accent) !important;
	box-shadow: var(--gfb-focus-ring) !important;
	outline: none !important;
}

/* ---- Select: eigener Dropdown-Pfeil (inline SVG, keine externe Datei) ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field select,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field select,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field select {
	padding-inline-end: 2.5rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2386868b' d='M1.41 0 6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.9rem center !important;
	background-size: 12px 8px !important;
	cursor: pointer;
}

/* ---- Checkbox / Radio: selbst gezeichnet ---- */
/* Reihe (Checkbox-Feld + jede Radio-Zeile): Control links, Text rechts. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-checkbox > label,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-radio-row,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-checkbox > label,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-radio-row,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-checkbox > label,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-radio-row {
	display: flex !important;
	align-items: flex-start !important;
	gap: 0.55rem !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--gfb-font) !important;
	font-size: var(--gfb-body-size) !important;
	font-weight: 400 !important;
	line-height: var(--gfb-line) !important;
	color: var(--gfb-text) !important;
	cursor: pointer;
}

/* Checkbox-Feld: Container nicht als Stack mit Label-Gap behandeln. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-checkbox,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-checkbox,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-checkbox {
	gap: 0 !important;
}

/* Radio-Optionsliste. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-radio-options,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-radio-options,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-radio-options {
	display: flex !important;
	flex-direction: column !important;
	gap: 0.6rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-radio-options--row,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-radio-options--row,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-radio-options--row {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 1.25rem !important;
}

/* Anordnung der Radio-Optionen in ALLEN Erscheinungsmodi – auch im Theme-Modus.
   Die Richtung (spalten- oder zeilenweise) ist eine bewusste funktionale Wahl
   des Nutzers, kein Farb-/Theme-Styling. Ohne diese Regel bleibt die «Richtung»-
   Auswahl im Theme-Modus wirkungslos (die appearance-gebundenen Regeln oben
   greifen dort nicht). */
.gfb-form-wrapper .gfb-radio-options {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}
.gfb-form-wrapper .gfb-radio-options--row {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 1.25rem;
}

/* Die Option-Labels innerhalb einer Radio-Zeile NICHT als Block-Label stylen. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-radio-row > label,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-radio-row > label,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-radio-row > label {
	margin: 0 !important;
	font-size: var(--gfb-body-size) !important;
	font-weight: 400 !important;
	color: var(--gfb-text) !important;
}

/* Das eigentliche Kaestchen/der Kreis. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="checkbox"],
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="radio"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="checkbox"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="radio"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="checkbox"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="radio"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	flex: 0 0 auto !important;
	width: var(--gfb-control-size) !important;
	height: var(--gfb-control-size) !important;
	margin: 0.2rem 0 0 0 !important;
	padding: 0 !important;
	background-color: var(--gfb-field-bg) !important;
	border: 1px solid var(--gfb-border) !important;
	box-shadow: none !important;
	outline: none !important;
	cursor: pointer;
	transition: border-color var(--gfb-transition), background-color var(--gfb-transition), box-shadow var(--gfb-transition) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="checkbox"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="checkbox"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="checkbox"] {
	border-radius: 5px !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="radio"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="radio"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="radio"] {
	border-radius: 50% !important;
}

/* Checked: Akzentfuellung. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="checkbox"]:checked,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="radio"]:checked,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="checkbox"]:checked,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="radio"]:checked,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="checkbox"]:checked,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="radio"]:checked {
	background-color: var(--gfb-accent) !important;
	border-color: var(--gfb-accent) !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
}

/* Haekchen fuer Checkbox. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="checkbox"]:checked,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="checkbox"]:checked,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="checkbox"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 5.2 4.3 8.5 11 1.5'/%3E%3C/svg%3E") !important;
	background-size: 11px 9px !important;
}

/* Punkt fuer Radio. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="radio"]:checked,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="radio"]:checked,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="radio"]:checked {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Ccircle cx='4' cy='4' r='4' fill='%23ffffff'/%3E%3C/svg%3E") !important;
	background-size: 7px 7px !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="checkbox"]:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="radio"]:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="checkbox"]:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="radio"]:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="checkbox"]:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="radio"]:focus-visible {
	box-shadow: var(--gfb-focus-ring) !important;
}

/* ---- Range: schlanker Track + runder Daumen in Akzent ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-range-row,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-range-row,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-range-row {
	display: flex !important;
	align-items: center !important;
	gap: 0.9rem !important;
	margin: 0 !important;
	padding: 0 !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="range"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="range"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="range"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	flex: 1 1 auto !important;
	width: 100% !important;
	height: 4px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: var(--gfb-track) !important;
	border: 0 !important;
	border-radius: 2px !important;
	outline: none !important;
	cursor: pointer;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="range"]::-webkit-slider-thumb,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="range"]::-webkit-slider-thumb,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--gfb-accent);
	border: 2px solid #ffffff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	cursor: pointer;
	margin-top: -8px;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="range"]::-moz-range-thumb,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="range"]::-moz-range-thumb,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="range"]::-moz-range-thumb {
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--gfb-accent);
	border: 2px solid #ffffff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	cursor: pointer;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="range"]::-moz-range-track,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="range"]::-moz-range-track,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="range"]::-moz-range-track {
	height: 4px;
	background: var(--gfb-track);
	border-radius: 2px;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-range-value,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-range-value,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-range-value {
	flex: 0 0 auto !important;
	min-width: 2.5rem !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.9375rem !important;
	font-variant-numeric: tabular-nums;
	color: var(--gfb-label) !important;
	text-align: end !important;
}

/* ---- Datei-Upload: dezenter, konsistenter Bereich ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="file"],
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="file"],
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="file"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0.6rem 0.75rem !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.9375rem !important;
	color: var(--gfb-text) !important;
	background-color: var(--gfb-field-bg) !important;
	border: 1px dashed var(--gfb-border) !important;
	border-radius: var(--gfb-radius) !important;
	cursor: pointer;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input[type="file"]::file-selector-button,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input[type="file"]::file-selector-button,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input[type="file"]::file-selector-button {
	margin-inline-end: 0.75rem !important;
	padding: 0.35rem 0.8rem !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	color: var(--gfb-on-accent) !important;
	-webkit-text-fill-color: var(--gfb-on-accent) !important;
	background: var(--gfb-button-bg) !important;
	border: 0 !important;
	border-radius: 8px !important;
	cursor: pointer !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-help,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-help,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-help {
	display: block !important;
	margin: 0.35rem 0 0 !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.8125rem !important;
	line-height: 1.4 !important;
	color: var(--gfb-label) !important;
}

/* ---- Submit-Button ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit {
	gap: 0 !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit .wp-block-button,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit .wp-block-button,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit .wp-block-button {
	margin: 0 !important;
	padding: 0 !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit button,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit button,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit button {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-block !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0.7rem 1.5rem !important;
	font-family: var(--gfb-font) !important;
	font-size: var(--gfb-body-size) !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	color: var(--gfb-on-accent) !important;
	background: var(--gfb-button-bg) !important;
	border: 0 !important;
	border-radius: var(--gfb-radius) !important;
	box-shadow: none !important;
	outline: none !important;
	cursor: pointer;
	transition: filter var(--gfb-transition), box-shadow var(--gfb-transition) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit button:hover,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit button:hover,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit button:hover {
	filter: brightness(0.95) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit button:active,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit button:active,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit button:active {
	filter: brightness(0.9) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field-submit button:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field-submit button:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field-submit button:focus-visible {
	box-shadow: var(--gfb-focus-ring) !important;
}

/* ---- "Vertraulich"-Pille ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-pill,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-pill,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-pill {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	margin: 0 !important;
	padding: 0.125rem 0.5rem !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
	color: var(--gfb-label) !important;
	background: color-mix(in srgb, var(--gfb-accent) 12%, transparent) !important;
	border: 1px solid color-mix(in srgb, var(--gfb-accent) 30%, transparent) !important;
	border-radius: 999px !important;
}

/* ---- Statusmeldungen (Notice) ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-notice,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-notice,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-notice {
	margin: 0 0 var(--gfb-stack-gap) !important;
	padding: 0.875rem 1rem !important;
	font-family: var(--gfb-font) !important;
	font-size: var(--gfb-body-size) !important;
	line-height: 1.4 !important;
	color: var(--gfb-text) !important;
	background: var(--gfb-field-bg) !important;
	border: 1px solid var(--gfb-border) !important;
	border-radius: var(--gfb-radius) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-notice-success,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-notice-success,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-notice-success {
	color: var(--gfb-success-text) !important;
	background: var(--gfb-success-bg) !important;
	border-color: var(--gfb-success-border) !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-notice-error,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-notice-error,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-notice-error {
	color: var(--gfb-error-text) !important;
	background: var(--gfb-error-bg) !important;
	border-color: var(--gfb-error-border) !important;
}

/* ---- Entwurf loeschen (Zeile) ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-draft-tools,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-draft-tools,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-draft-tools {
	margin: 0 0 var(--gfb-stack-gap) !important;
	padding: 0 !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-draft-reset-button,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-draft-reset-button,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-draft-reset-button {
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 0 !important;
	padding: 0.25rem 0 !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	color: var(--gfb-accent) !important;
	background: transparent !important;
	border: 0 !important;
	text-decoration: underline !important;
	text-underline-offset: 0.2em !important;
	cursor: pointer;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-draft-reset-button:hover,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-draft-reset-button:hover,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-draft-reset-button:hover {
	opacity: 0.85;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-draft-reset-button:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-draft-reset-button:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-draft-reset-button:focus-visible {
	outline: 2px solid var(--gfb-accent) !important;
	outline-offset: 2px !important;
	border-radius: 4px !important;
}

/* ---- Pflichtfeld-Sternchen ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-required,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-required,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-required {
	color: var(--gfb-accent) !important;
	margin-inline-start: 0.15em;
}

/* ---- Datei-Entfernen-Button ---- */
/* Datei-Meta-Zeile: Hinweis links, Entfernen rechtsbündig in derselben Zeile. */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-file-meta,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-file-meta,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-file-meta {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	gap: 1rem !important;
	margin: 0.35rem 0 0 !important;
}

/* Hinweis innerhalb der Meta-Zeile: kein eigener Top-Abstand (Container traegt ihn). */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-file-meta .gfb-help,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-file-meta .gfb-help,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-file-meta .gfb-help {
	margin: 0 !important;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-file-clear,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-file-clear,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-file-clear {
	-webkit-appearance: none !important;
	appearance: none !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--gfb-font) !important;
	font-size: 0.8125rem !important;
	color: var(--gfb-accent) !important;
	background: transparent !important;
	border: 0 !important;
	white-space: nowrap !important;
	text-decoration: underline !important;
	text-underline-offset: 0.2em !important;
	cursor: pointer;
}

.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-file-clear:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-file-clear:focus-visible,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-file-clear:focus-visible {
	outline: 2px solid var(--gfb-accent) !important;
	outline-offset: 2px !important;
	border-radius: 4px !important;
}

.gfb-file-clear[hidden] {
	display: none !important;
}

/* ---- Editor-Vorschau: deaktivierte Felder nicht ausgrauen ---- */
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field input:disabled,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field select:disabled,
.gfb-form-wrapper[data-gfb-appearance="light"] .gfb-field textarea:disabled,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field input:disabled,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field select:disabled,
.gfb-form-wrapper[data-gfb-appearance="dark"] .gfb-field textarea:disabled,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field input:disabled,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field select:disabled,
.gfb-form-wrapper[data-gfb-appearance="auto"] .gfb-field textarea:disabled {
	opacity: 1 !important;
	-webkit-text-fill-color: var(--gfb-text) !important;
}

/* ---- Spam-Schutz (CAPTCHA): Widget-Zeile vor dem Absenden ---- */
.gfb-captcha-row {
	margin: 1rem 0 0.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.gfb-captcha-row .gfb-captcha-label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--gfb-label, inherit);
}

.gfb-captcha-row .frc-captcha {
	max-width: 100%;
}

.gfb-captcha-row .gfb-captcha-hint {
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.4;
	opacity: 0.8;
	color: var(--gfb-text, inherit);
}

/* ============================================================== *
 * Submit-Overlay (Doppelklick-Schutz + Verschlüsselungs-Animation)
 * ============================================================== */

.gfb-form-wrapper .gfb-submit-overlay {
	position: absolute;
	inset: 0;
	z-index: 100;
	background-color: var(--gfb-card, rgba(255, 255, 255, 0.92));
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: inherit;
}

.gfb-form-wrapper .gfb-submit-overlay__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	padding: 1.5rem 2rem;
	max-width: 20rem;
	width: 100%;
}

.gfb-form-wrapper .gfb-submit-overlay__cipher {
	font-family: monospace;
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--gfb-text, #1d1d1f);
	letter-spacing: 0.05em;
	min-height: 1.4em;
	text-align: center;
	word-break: break-all;
}

/* Fortschrittsbalken-Schiene */
.gfb-form-wrapper .gfb-submit-overlay__bar-track {
	width: 100%;
	height: 4px;
	background-color: var(--gfb-border, #d2d2d7);
	border-radius: var(--gfb-radius, 4px);
	overflow: hidden;
}

/* Fortschrittsbalken: fährt auf ~85 %, dann pulsiert er */
.gfb-form-wrapper .gfb-submit-overlay__bar {
	height: 100%;
	background-color: var(--gfb-accent, #0071e3);
	border-radius: var(--gfb-radius, 4px);
	width: 0%;
	animation:
		gfb-bar-fill 4s ease-out forwards,
		gfb-bar-pulse 1.5s ease-in-out 4s infinite;
}

@keyframes gfb-bar-fill {
	from { width: 0%; }
	to   { width: 85%; }
}

@keyframes gfb-bar-pulse {
	0%   { width: 80%; }
	50%  { width: 90%; }
	100% { width: 80%; }
}

.gfb-form-wrapper .gfb-submit-overlay__message {
	margin: 0;
	font-size: var(--gfb-body-size, 1rem);
	color: var(--gfb-label, #6e6e73);
	text-align: center;
	line-height: 1.5;
}

/* Theme-Modus: Dark-Fallback für neutrale Werte */
@media (prefers-color-scheme: dark) {
	.gfb-form-wrapper[data-gfb-appearance="theme"] .gfb-submit-overlay {
		background-color: rgba(28, 28, 30, 0.92);
	}
	.gfb-form-wrapper[data-gfb-appearance="theme"] .gfb-submit-overlay__cipher {
		color: #f5f5f7;
	}
	.gfb-form-wrapper[data-gfb-appearance="theme"] .gfb-submit-overlay__bar-track {
		background-color: #3a3a3c;
	}
	.gfb-form-wrapper[data-gfb-appearance="theme"] .gfb-submit-overlay__message {
		color: #aeaeb2;
	}
}
