/* 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;
}

/* ---------------------------------------------------------------------------
   Klick neben ein ANGEFANGENES Overlay-Formular schliesst nicht (Eingaben
   blieben sonst auf der Strecke) — das Panel zuckt kurz, damit der Klick nicht
   wie ein Nichts wirkt. pl-form-overlay.js setzt `data-pl-form-overlay-nudge`
   fuer ~600 ms. Ohne Bewegungswunsch: nur ein kurzer Rahmen.
   ------------------------------------------------------------------------- */
@keyframes pl-form-overlay-nudge {
  0%   { transform: scale(1); }
  30%  { transform: scale(1.012); }
  100% { transform: scale(1); }
}
.pl-form-overlay[data-pl-form-overlay-nudge] .pl-form-overlay__panel {
  animation: pl-form-overlay-nudge 0.45s ease-out;
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .pl-form-overlay[data-pl-form-overlay-nudge] .pl-form-overlay__panel {
    animation: none;
  }
}
