/* pl-form-async — Basis-Optik fuer das Bestaetigungs-Overlay.
   Bewusst minimal: Positionierung, Backdrop, Grundabstaende. Farben, Typografie
   und Rundungen gehoeren ins Theme (Variablen unten sind ueberschreibbar). */

.pl-form-modal {
    border: 0;
    padding: 0;
    max-width: min(34rem, calc(100vw - 2rem));
    background: var(--pl-form-modal-bg, #fff);
    color: var(--pl-form-modal-color, inherit);
    border-radius: var(--pl-form-modal-radius, 0);
    box-shadow: var(--pl-form-modal-shadow, 0 1.5rem 4rem rgba(0, 0, 0, 0.35));
}

.pl-form-modal::backdrop {
    background: var(--pl-form-modal-backdrop, rgba(0, 0, 0, 0.55));
}

.pl-form-modal__body {
    padding: var(--pl-form-modal-padding, 2.5rem 2.5rem 2.75rem);
}

/* Die Formular-Ausgabe enthaelt im Erfolgsfall nur die Bestaetigung — etwaige
   Rest-Wrapper von EXT:form sollen im Overlay keine Abstaende doppeln. */
.pl-form-modal__body > *:first-child { margin-top: 0; }
.pl-form-modal__body > *:last-child { margin-bottom: 0; }

.pl-form-modal__close {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    border: 0;
    background: none;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    color: inherit;
    opacity: 0.55;
}
.pl-form-modal__close:hover,
.pl-form-modal__close:focus-visible { opacity: 1; }

/* Waehrend des Requests: Formular bleibt sichtbar, wird aber als „arbeitet" erkennbar. */
.pl-form-async--busy { opacity: 0.6; pointer-events: none; transition: opacity 0.15s ease; }

/* ---------------------------------------------------------------------------
   Reveal-Startzustaende in den Dialogen aufheben (Sicherheitsnetz)
   ---------------------------------------------------------------------------
   Reveal-on-scroll-Bausteine (`[data-reveal]`, z. B. <atomic-inview> aus
   plate_atomic_assets) starten auf `opacity: 0` und werden erst durch einen
   IntersectionObserver ihres UMSCHLIESSENDEN Elements eingeblendet.

   Beide Dialoge hier bekommen ihren Inhalt aus einem fremden Dokument — ohne
   diese Huelle. Es beobachtet also niemand mehr, die Endzustands-Klasse faellt
   nie, und der Dialog zeigt eine LEERE FLAECHE, obwohl das Markup vollstaendig
   im DOM steht (gemeldeter Ausfall 09/2026, Anfrage-Overlay).

   pl-form-overlay.js setzt den Endzustand beim Einhaengen selbst; diese Regeln
   fangen zusaetzlich alles ab, was DANACH nachgeladen wird (Schritt 2/3 tauscht
   nur das innerHTML des Containers) und den Fall, dass ein Projekt das Overlay
   ohne das zugehoerige Skript-Update betreibt.

   Ein Dialog ist kein Scroll-Kontext: hier gibt es grundsaetzlich nichts
   einzublenden. Kein !important noetig — die Regel gewinnt ueber Spezifitaet.
   --------------------------------------------------------------------------- */
.pl-form-overlay [data-reveal],
.pl-form-modal [data-reveal] {
    opacity: 1;
    transform: none;
}
