/* ==========================================================================
   Physiopark MG — Admin-Familie: ZENTRALE Design-Tokens + Komponentenschicht
   physiopark-portal-pp-core.css · Version 0.3.0

   GENERIERT — NICHT VON HAND BEARBEITEN.
   Erzeugen:  php deploy/build-pp-core-css.php        (Pruefen: --pruefen)
   Quelle:    physiopark-portal.php -> design_css() (light_token_vars,
              dark_token_vars, component_layer_css) — die EINE Wahrheit.
   Riegel:    tests-plugins/test-kern-dark-fassade.php (Abschnitt D) baut mit
              demselben Generator und vergleicht bytegenau mit dieser Datei.
   --------------------------------------------------------------------------
   WOFUER: EINE Quelle der Wahrheit statt vier copy-pasteter Token-Bloecke
   (Kern design_css + pp_v3_core in rezept/rehasport/rezeptkasten). Die Plugins
   laden die Datei per wp_enqueue_style('pp-core-tokens', …, filemtime-Version);
   ist sie nicht lesbar (oder laeuft der Code ausserhalb von WordPress), geben
   sie ihren Inline-Block aus (Graceful Degradation — dieselben Regeln, Werte).

   Scope-Liste: die Wrapper-Menge stammt aus $R in design_css() (Kern 1.190.0
   zog die acht Wrapper der drei Kontroll-Module nach).
   .pp-lf bleibt BEWUSST draussen: der Leitfaden fuehrt ein
   eigenes, vollstaendiges --pp-*-System (andere Werte/Namen) — eine Aufnahme
   wuerde per Quelltext-Reihenfolge kippen, wer gewinnt.

   HISTORIE
   0.1.0  Phase 2B „Token-Heilung" (KONZEPT-kontrollzentrum-ux.md): Hauptfarbe
          vereinheitlicht auf Marken-Petrol — alt #0A4A50 → neu #0f5c63; Stops
          #0c5860 → #0b494f, #0d6470 → #256b72, #0e6670 → #2f7880. #0C2731 bleibt.
   0.1.1  .pp2 in den Token-Scope aufgenommen (hub2 bindet --pp2-* an --pp-*).
   0.1.2  Gemessene Drift geheilt: --pp-danger-Quartett im Dunkel-Satz nachgetragen,
          toter Alias --pp-muted entfernt (Review 2026-08-10).
   0.2.0  Ende der Handpflege: die Datei wird erzeugt. Anlass war die zweite Drift
          derselben Art — die fuenf Komponenten aus Kern 1.190.0 (.pp-meter/
          .pp-formgrid/.pp-kicker/.pp-card--quiet/--stripe) fehlten hier, und die
          Gegenrichtung „Kern hat mehr als die Datei" hat nie jemand gemessen.
          Der erste Generatorlauf fand und heilte zugleich die DRITTE Drift:
          .pp-hr fehlte seit Kern 1.172.0 ($dark_mods) in BEIDEN Dunkelmodus-
          Regeln dieser Datei — jeder Nur-Datei-Konsument (hub2 via
          pp-core-tokens) liess HR im Dunkelmodus auf den Hellwerten stehen.
   0.3.0  .pp2 aus dem Token-Scope entfallen: hub2 ist archiviert (GF-Entscheid
          2026-08-11, archiv-abgeloeste-plugins/) — kein .pp2-Konsument mehr.
   ========================================================================== */

/* ---------- Design-Tokens (--pp-*) auf der vereinigten Scope-Liste ----------
   Scope-Historie: .pp-ein/.pp-prak/.pp-fz/.pp-mg seit Kern 1.31.0, .pp-ek seit 1.31.2,
   .pp-ak seit 1.35.1, .pp-hlp seit 1.35.2, .pp-mc seit 1.49.0, die acht Wrapper der drei
   Kontroll-Module seit 1.190.0 (bis dahin standen sie NUR hier — der Kern zog erst danach nach); */
.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa{
--pp-primary:#0f5c63;--pp-primary-strong:#0b494f;--pp-primary-dark:#0C2731;
--pp-primary-soft:#eef6f6;--pp-primary-softer:#f4fafa;--pp-primary-ring:rgba(10,74,80,.16);
--pp-bg:#eef4f4;--pp-surface:#fff;--pp-surface-2:#fbfdfd;--pp-surface-3:#f4fafa;
/* A11y 1.107.0: faint #8aa0a0(2.76:1)→#6d8788(3.84:1) — legibler, bleibt unter muted (Hierarchie erhalten) */
--pp-text:#16323a;--pp-text-strong:#0C2731;--pp-text-muted:#5f7177;--pp-text-faint:#6d8788;
--pp-border:#e2ecec;--pp-border-strong:#d7e3e3;
--pp-success:#1f7a4d;--pp-success-text:#1d6b3c;--pp-success-soft:#eaf6ef;--pp-success-border:#bfe0cc;
--pp-warning:#b06f1f;--pp-warning-text:#8a5a1c;--pp-warning-soft:#fff7ec;--pp-warning-border:#f0dcbd;
--pp-danger:#b32d2e;--pp-danger-text:#9a2a2a;--pp-danger-soft:#fdeeee;--pp-danger-border:#f0c4c4;
--pp-radius-sm:10px;--pp-radius:14px;--pp-radius-lg:18px;--pp-radius-xl:22px;--pp-radius-pill:999px;
--pp-shadow-xs:0 1px 2px rgba(12,39,49,.06);
--pp-shadow-sm:0 2px 10px -4px rgba(12,39,49,.16);
--pp-shadow:0 14px 34px -22px rgba(12,39,49,.34),0 4px 12px -8px rgba(12,39,49,.16);
--pp-shadow-lg:0 26px 60px -28px rgba(12,39,49,.42),0 10px 24px -16px rgba(12,39,49,.22);
--pp-shadow-hero:0 28px 66px -30px rgba(12,39,49,.52);
--pp-grad-hero:linear-gradient(135deg,#0C2731 0%,#0f5c63 58%,#2f7880 100%);
--pp-grad-btn:linear-gradient(135deg,#0f5c63 0%,#256b72 100%);
--pp-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--pp-ease:cubic-bezier(.4,0,.2,1);--pp-dur:.18s;
--pet:#0f5c63;--petd:#0C2731;--ink:#16323a;--muted:#5f7177;--line:#e2ecec;--amber:#b06f1f;
/* Akzent-Gold (1.31.0): tokenisiert das bisher dreifach hartkodierte GF-Gold (rb-gf, contact--gf,
   ident--gf) + Glass-Flaechen fuer Landing/Topbar. Rein ADDITIV — die V3-Fallback-Kopien der
   Altmodule bleiben gueltig; Nutzung ausserhalb von design_css() nur mit var(...,Fallback). */
--pp-accent:#c9a45a;--pp-accent-strong:#e8c268;--pp-accent-deep:#b8934c;--pp-accent-ink:#231a06;
/* A11y 1.107.0: accent-text #a3803e(3.35:1)→#8a6a30(4.58:1 auf accent-soft) */
--pp-accent-text:#8a6a30;--pp-accent-soft:#faf4e6;--pp-accent-ring:rgba(201,164,90,.28);
--pp-grad-accent:linear-gradient(135deg,#c9a45a,#e8c268 55%,#b8934c);

/* Historie gemessener Drifts (jetzt strukturell erledigt, Zaehlung s. HISTORIE im Dateikopf): der
   1.152.0-Kompatibilitaets-Alias --pp-muted hing hier nach seiner Entfernung (Kern 1.187.1)
   noch drin, und das --pp-danger-Quartett fehlte im DUNKEL-Satz. Beides kann nicht
   wiederkehren: der Satz wird aus light_token_vars()/dark_token_vars() erzeugt. */
--pp-glass:rgba(255,255,255,.78);--pp-glass-border:rgba(255,255,255,.55);
/* K2e-R1 (1.88.0): Info-Blau als VIERTE Semantikfarbe (UI-Audit §5: die ak-Status-Pille
   #e8f0fb/#1f4f8b war die einzige Semantikfarbe ohne Token) — Trio-Muster wie --pp-danger,
   Light-Werte an der ak-Pille orientiert (wertschonende Migration), Dark-Zweitbelegung unten. */
--pp-info:#1f4f8b;--pp-info-text:#1c4679;--pp-info-soft:#e8f0fb;--pp-info-border:#c9daf2;
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
}

/* ---------- Basis + Barrierefreiheit auf denselben Wrappern ----------
   Textmarkierung, Ziffern-Ausrichtung in Tabellen, die sichtbare Fokus-Umrandung
   (Tastaturbedienung), dezente Scrollleisten und der globale prefers-reduced-motion-Guard. */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) ::selection{background:rgba(10,74,80,.18);color:#0C2731}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) table{font-variant-numeric:tabular-nums}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) a:focus-visible,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) button:focus-visible,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) input:focus-visible,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) select:focus-visible,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) textarea:focus-visible,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) [tabindex]:focus-visible,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) summary:focus-visible{outline:2px solid var(--pp-primary);outline-offset:2px;border-radius:8px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) ::-webkit-scrollbar{height:8px;width:8px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) ::-webkit-scrollbar-thumb{background:#cde0e0;border-radius:999px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) ::-webkit-scrollbar-thumb:hover{background:#b6d2d2}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) ::-webkit-scrollbar-track{background:transparent}
@media(prefers-reduced-motion:reduce){:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) *,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) *::before,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* ---------- Geteilte Komponentenschicht (1.31.0, vertraglich) ----------
   OPT-IN-Klassen fuer die ganze Familie — eine visuelle Sprache fuer Buttons/Inputs/
   Cards/Badges/Callouts/Tabellen/Empty-States/KPIs, gescoped auf die Modul-Wrapper.
   Namen familienweit kollisionsgeprueft (pp-alert/pp-table/pp-empty/pp-field sind in
   azubi/leitfaden/rezept anders belegt -> bewusst pp-callout/pp-tbl/pp-blank gewaehlt).
   Vertrag: Kern-Views + NEUE Module nutzen diese Klassen direkt; Bestandsmodule
   behalten ihre eigenen Klassen (Fallback-Sicherheit bei Kern-Ausfall) und gleichen
   nur Token-WERTE an. */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;min-height:44px;border:1.5px solid transparent;border-radius:var(--pp-radius-pill);font-family:inherit;font-size:14.5px;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--pp-dur) var(--pp-ease),box-shadow var(--pp-dur) var(--pp-ease),filter var(--pp-dur) var(--pp-ease),border-color var(--pp-dur) var(--pp-ease),background var(--pp-dur) var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn:active{transform:scale(.98)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--primary{background:var(--pp-grad-btn);color:#fff!important;box-shadow:0 12px 26px -14px rgba(10,74,80,.55)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--primary:hover,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--primary:focus{filter:brightness(1.07);transform:translateY(-1px)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--ghost{background:var(--pp-surface);color:var(--pp-primary)!important;border-color:var(--pp-border-strong)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--ghost:hover,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--ghost:focus{border-color:var(--pp-primary);background:var(--pp-surface-3);transform:translateY(-1px)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--soft{background:var(--pp-primary-soft);color:var(--pp-primary)!important}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--soft:hover{background:var(--pp-primary-ring)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--danger{background:var(--pp-danger);color:#fff!important}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--danger:hover{filter:brightness(1.08)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-btn--sm{padding:7px 14px;min-height:34px;font-size:13px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-input{width:100%;padding:12px 14px;border:1.5px solid var(--pp-border-strong);border-radius:var(--pp-radius-sm);font-size:15px;font-family:inherit;color:var(--pp-text);background:var(--pp-surface-2);transition:border-color var(--pp-dur) var(--pp-ease),box-shadow var(--pp-dur) var(--pp-ease),background var(--pp-dur) var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-input:focus{outline:none;border-color:var(--pp-primary);background:var(--pp-surface);box-shadow:0 0 0 4px var(--pp-primary-ring)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-input::placeholder{color:var(--pp-text-faint)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card{background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-sm);transition:transform var(--pp-dur) var(--pp-ease),box-shadow var(--pp-dur) var(--pp-ease),border-color var(--pp-dur) var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--pad{padding:18px 20px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--hover:hover{transform:translateY(-2px);box-shadow:var(--pp-shadow);border-color:var(--pp-border-strong)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--pp-radius-pill);font-size:11.5px;font-weight:800;letter-spacing:.02em;background:var(--pp-primary-soft);color:var(--pp-primary);border:1px solid var(--pp-border)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge--ok{background:var(--pp-success-soft);color:var(--pp-success-text);border-color:var(--pp-success-border)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge--warn{background:var(--pp-warning-soft);color:var(--pp-warning-text);border-color:var(--pp-warning-border)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge--danger{background:var(--pp-danger-soft);color:var(--pp-danger-text);border-color:var(--pp-danger-border)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge--accent{background:var(--pp-grad-accent);color:var(--pp-accent-ink);border-color:transparent}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge--muted{background:var(--pp-surface-3);color:var(--pp-text-muted);border-color:var(--pp-border-strong)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-callout{border-radius:var(--pp-radius);padding:12px 15px;font-size:13.5px;line-height:1.5;background:var(--pp-primary-soft);border:1px solid var(--pp-border-strong);border-left:4px solid var(--pp-primary);color:var(--pp-text)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-callout--ok{background:var(--pp-success-soft);border-color:var(--pp-success-border);border-left-color:var(--pp-success);color:var(--pp-success-text)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-callout--warn{background:var(--pp-warning-soft);border-color:var(--pp-warning-border);border-left-color:var(--pp-warning);color:var(--pp-warning-text)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-callout--danger{background:var(--pp-danger-soft);border-color:var(--pp-danger-border);border-left-color:var(--pp-danger);color:var(--pp-danger-text)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tbl{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tbl table{width:100%;border-collapse:collapse;font-size:13.5px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tbl th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-text-muted);font-weight:800;padding:10px 12px;border-bottom:1.5px solid var(--pp-border-strong);background:var(--pp-surface-2);white-space:nowrap}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tbl td{padding:11px 12px;border-bottom:1px solid var(--pp-border);color:var(--pp-text);vertical-align:top}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tbl tbody tr{transition:background var(--pp-dur) var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tbl tbody tr:hover{background:var(--pp-primary-softer)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-blank{background:var(--pp-surface);border:1px dashed var(--pp-border-strong);border-radius:var(--pp-radius-lg);padding:26px 18px;text-align:center;color:var(--pp-text-muted);font-size:13.5px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-kpi .n{font-size:32px;font-weight:800;color:var(--pp-text-strong);line-height:1.1;font-variant-numeric:tabular-nums}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-kpi .l{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--pp-text-muted);font-weight:800}
/* A11y 1.107.0: Inhalts-Sektionstitel → muted (4.5:1) statt faint */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-sec-title{display:flex;align-items:center;gap:11px;margin:0 0 12px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pp-text-muted)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-sec-title::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--pp-border-strong),transparent)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-chip{display:inline-flex;align-items:center;gap:6px;background:var(--pp-surface);border:1px solid var(--pp-border-strong);padding:7px 13px;border-radius:var(--pp-radius-pill);font-size:13px;color:var(--pp-text)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-avatar{width:40px;height:40px;border-radius:50%;background:var(--pp-primary-soft);color:var(--pp-primary);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex:none}

/* ---------- K2e-R1 (1.88.0): Komponentenschicht-Luecken geschlossen ----------
   (portal-verbesserung/UI-AUDIT-familie.md §2e/§5) — REIN ADDITIV, gleicher Scope,
   alles token-basiert (Light+Dark ueber die Token-Zweitbelegung automatisch stimmig).
   Namen familienweit kollisionsgeprueft: pp-field-error/pp-err-msg in azubi lokal
   belegt -> bewusst pp-field-err/pp-field-msg; .pp-loading in azubi nur als
   .pp-submit.pp-loading mit WERTGLEICHEN Properties -> koexistent; .pp-back in HR
   als .pp-hr-app a.pp-back (0-2-1) gewinnt dort pro Property gegen die Kern-Regel
   (0-2-0) — die Kern-Fassung setzt bewusst KEIN min-height, damit im HR-Scope
   nichts durchsickert. Farben auf Anker-Klassen !important (A9-Muster 1.82.0). */
/* Lade-Standard (Audit §5: fz-Ladetext / azubi .pp-loading / HR-Autosave-Text) */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-loading{opacity:.6;cursor:progress}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-spin{display:inline-block;width:18px;height:18px;flex:none;vertical-align:-3px;border:2.5px solid var(--pp-primary-ring);border-top-color:var(--pp-primary);border-radius:50%;animation:pp-spin .8s linear infinite}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-spin--sm{width:13px;height:13px;border-width:2px;vertical-align:-2px}
@keyframes pp-spin{to{transform:rotate(360deg)}}
/* reduced-motion: der globale Guard oben deckt Nachfahren der Wrapper ab; diese
   explizite Regel haelt den Spinner auch dann still, wenn ein Modul ihn direkt
   am Wrapper-Element nutzt. */
@media(prefers-reduced-motion:reduce){:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-spin,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa).pp-spin{animation:none}}
/* Formular-Feldfehler (azubi-Vorbild zentralisiert): Klasse am Feld-Wrapper ODER direkt am Feld */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-field-err input,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-field-err select,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-field-err textarea,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) input.pp-field-err,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) select.pp-field-err,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) textarea.pp-field-err{border-color:var(--pp-danger)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-field-msg{display:block;margin-top:4px;font-size:12.5px;line-height:1.4;color:var(--pp-danger-text)}
/* Tabs/Segment-Navigation (theme-fest: Farbe !important nach A9-Muster — a:visited-sicher) */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;min-height:36px;border:1px solid var(--pp-border-strong);border-radius:var(--pp-radius-pill);background:var(--pp-surface);color:var(--pp-primary)!important;font-family:inherit;font-size:13px;font-weight:700;line-height:1.2;text-decoration:none!important;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--pp-dur) var(--pp-ease),border-color var(--pp-dur) var(--pp-ease),color var(--pp-dur) var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tab:hover{border-color:var(--pp-primary);background:var(--pp-surface-3);color:var(--pp-primary)!important}
/* .on NACH :hover (gleiche Spezifitaet 0-3-0 -> Quellreihenfolge): aktiver Tab bleibt
   auch beim Hover aktiv gestylt. --pp-grad-btn ist in BEIDEN Themes dunkel -> weisse
   Schrift immer sicher. */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-tab.on{background:var(--pp-grad-btn);border-color:transparent;color:#fff!important}
/* „Zurueck"-Sekundaerbutton (HR-Muster a.pp-back zentralisiert; theme-fest per !important) */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-back{display:inline-flex;align-items:center;gap:7px;margin:2px 0 12px;padding:8px 14px;border:1px solid var(--pp-border-strong);border-radius:var(--pp-radius-sm);background:var(--pp-surface);color:var(--pp-primary)!important;font-family:inherit;font-size:13.5px;font-weight:600;line-height:1.2;text-decoration:none!important;cursor:pointer;transition:background var(--pp-dur) var(--pp-ease),border-color var(--pp-dur) var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-back:hover{background:var(--pp-surface-3);border-color:var(--pp-primary);color:var(--pp-primary-strong)!important;text-decoration:none!important}
/* Info-Badge (nutzt das --pp-info-Trio; Ziel u. a. ak-Pille „in Bearbeitung", K2a-Inbox, K2b-News) */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-badge--info{background:var(--pp-info-soft);color:var(--pp-info-text);border-color:var(--pp-info-border)}
/* KPI-Karten-Variante (Audit §5: rkasten .pp-qm-kpi / mc .mc-stat / fz .pp-fz-acard) */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-kpi--card{background:var(--pp-surface);border:1px solid var(--pp-border);border-radius:var(--pp-radius-lg);box-shadow:var(--pp-shadow-xs);padding:14px 16px}

/* ---------- Kanon-Erweiterung 1.190.0 (UI-Audit 2026-08-10, Kontroll-Module) ----------
   Aufnahmekriterium war NICHT „waere huebsch", sondern MEHRFACH NACHWEISLICH NEU ERFUNDEN —
   jede Regel hier ersetzt drei bis acht unabhaengige Modul-Eigenbauten. Begruendung je
   Baustein im Kern (component_layer_css); hier steht nur das Ergebnis.
   (1) FORTSCHRITTSBALKEN — acht Eigenbauten. Die Fuellung ist bewusst als KIND adressiert
   (> span UND > div): die Module setzen ihre Breite am inneren Element und tragen mal das
   eine, mal das andere Tag. A11y: der Balken ist nie alleiniger Traeger — der Wert steht
   laut Vertrag daneben im Klartext, role/aria bleibt Sache des Aufrufers. */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter{height:9px;border-radius:var(--pp-radius-pill);background:var(--pp-surface-3);border:1px solid var(--pp-border);overflow:hidden}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter>span,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter>div{display:block;height:100%;width:0;border-radius:var(--pp-radius-pill);background:var(--pp-primary);transition:width .45s var(--pp-ease)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--sm{height:6px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--ok>span,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--ok>div{background:var(--pp-success)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--warn>span,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--warn>div{background:var(--pp-warning)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--danger>span,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter--danger>div{background:var(--pp-danger)}
@media(prefers-reduced-motion:reduce){:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter>span,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-meter>div,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa).pp-meter>span,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa).pp-meter>div{transition:none}}
/* (2) FORMULAR-GRID — acht Eigenbauten mit identischer Mechanik. Werte 1:1 aus dem Bestand
   (zwei Spalten, Umbruch bei 560px = der Breakpoint aller drei Kontroll-Module), damit die
   Migration ein Klassen-Tausch OHNE Layout-Aenderung ist. */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-formgrid--3{grid-template-columns:repeat(3,1fr)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-formgrid>.pp-fg-full{grid-column:1/-1}
@media(max-width:560px){:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-formgrid,:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-formgrid--3{grid-template-columns:1fr}}
/* (3) MINI-GROSSBUCHSTABEN-LABEL („Kicker") — dreizehn Eigenbauten allein in den drei
   Kontroll-Modulen. Abgrenzung zu .pp-sec-title: das ist die Sektions-Ueberschrift MIT
   auslaufender Linie; .pp-kicker ist das nackte Kurz-Label ueber einem Block. */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-kicker{display:block;margin:0 0 7px;font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--pp-primary);line-height:1.3}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-kicker--on-dark{color:rgba(255,255,255,.92)}
/* (4) KARTEN-VARIANTEN — zwei Modifier auf der BESTEHENDEN .pp-card (keine neue Basis).
   --quiet: die ruhige Block-Zeile in Listen (weiche Flaeche, deutlicherer Rand, kein Schatten).
   --stripe: Zustands-Streifen links. FALLE, die pp_dok 0.2.0 real getroffen hat: .pp-card setzt
   die border-KURZSCHRIFT — ein Modifier, der nur border-left-color setzt, muss DANACH stehen.
   A11y: der Streifen ist Verstaerkung, nie einziger Traeger (Zustand zusaetzlich als .pp-badge). */
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--quiet{background:var(--pp-surface-2);border-color:var(--pp-border-strong);box-shadow:none}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--stripe{border-left:5px solid var(--pp-primary)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--stripe.pp-card--ok{border-left-color:var(--pp-success)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--stripe.pp-card--warn{border-left-color:var(--pp-warning)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--stripe.pp-card--danger{border-left-color:var(--pp-danger)}
:is(.pp-core,.pp-dp,.pp-dp-form,.pp-kz,.ppk,.pp-qm,.pp-ah,.pp-fp,.pp-rk-form,.pp-ein,.pp-prak,.pp-az,.pp-fz,.pp-mg,.pp-ek,.pp-ak,.pp-hlp,.pp-mc,.pp-hr,.pp-bil,.pp-ret,.pp-wf,.pp-rh-form,.pp-ausl,.pp-reha-pub,.rfp,.rfa) .pp-card--stripe.pp-card--info{border-left-color:var(--pp-info)}

/* ---------- Dark Mode (seit 1.10.0, automatisch via Systemeinstellung) ----------
   Token-Zweitbelegung NUR im .pp-core-Scope. Die Alt-Module definieren ihre Tokens
   selbst und tragen teils feste helle Flaechen — ein familienweiter Flip wuerde sie
   halb-dunkel kippen. Inline geoeffnete Module erscheinen daher als helle Karte im
   dunklen Hub (Paper-Look, gewollt); die oeffentliche Landing (.pp-core-land)
   behaelt bewusst ihre helle Praxis-Optik.
   Dunkle Token-Zweitbelegung (1.13.0 kontrastverstaerkt, WCAG-orientiert). Sie greift
   AUTOMATISCH bei System-Dunkelmodus (ausser der Nutzer erzwingt hell) und ERZWUNGEN
   ueber .pp-theme-dark — der Topbar-Schalter setzt pp-theme-dark/-light und merkt
   sich die Wahl in localStorage.
   1.151.0/1.172.0 — Dunkelmodus erreicht auch token-reine Modul-Wrapper (nur .pp-hlp/
   .pp-mc/.pp-ein/.pp-thb/.pp-hr: nachweislich WEDER harte helle Flaeche NOCH harte
   dunkle Schriftfarbe; Messung 2026-07-21/2026-07-23, Riegel in test-design).
   1.152.0: --pp-accent-ink im Dunkelsatz ausdruecklich gesetzt (gleicher Wert wie
   hell — der Goldverlauf bleibt gold, die Tinte darauf muss dunkel bleiben).
   A11y 1.107.0: dark-faint #7fa0a5(4.46:1)→#88a9ae(4.98:1 auf surface). */
@media (prefers-color-scheme: dark){.pp-core:not(.pp-core-land):not(.pp-theme-light){--pp-primary:#8fdad7;--pp-primary-strong:#b5ece9;--pp-primary-dark:#f0fbfb;--pp-primary-soft:#123543;--pp-primary-softer:#0e2b36;--pp-primary-ring:rgba(143,218,215,.28);--pp-bg:#0a1e26;--pp-surface:#123844;--pp-surface-2:#0f303b;--pp-surface-3:#0d2933;--pp-text:#e8f4f4;--pp-text-strong:#ffffff;--pp-text-muted:#aac6c9;--pp-text-faint:#88a9ae;--pp-border:#23515f;--pp-border-strong:#34646f;--pp-success:#6fdca6;--pp-success-text:#a9ecc8;--pp-success-soft:#123a30;--pp-success-border:#2a6b52;--pp-warning:#eab55e;--pp-warning-text:#f6d59b;--pp-warning-soft:#3a2c12;--pp-warning-border:#7d5d24;--pp-danger:#ea8a8a;--pp-danger-text:#f6b8b8;--pp-danger-soft:#3d181b;--pp-danger-border:#7d3237;--pp-info:#8ab8ea;--pp-info-text:#b9d4f2;--pp-info-soft:#152e46;--pp-info-border:#2e5a86;--pp-shadow-sm:0 2px 10px -4px rgba(0,0,0,.5);--pp-shadow:0 14px 34px -22px rgba(0,0,0,.7),0 4px 12px -8px rgba(0,0,0,.4);--pp-shadow-lg:0 26px 60px -28px rgba(0,0,0,.8),0 10px 24px -16px rgba(0,0,0,.5);--pp-accent-text:#e9cf9a;--pp-accent-soft:#33290f;--pp-accent-ring:rgba(232,194,104,.3);--pp-accent-ink:#231a06;--pp-glass:rgba(16,48,59,.75);--pp-glass-border:rgba(143,218,215,.18);background:var(--pp-bg);border-radius:var(--pp-radius-xl);padding:14px}.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-hlp,.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-mc,.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-ein,.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-thb,.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-hr{--pp-primary:#8fdad7;--pp-primary-strong:#b5ece9;--pp-primary-dark:#f0fbfb;--pp-primary-soft:#123543;--pp-primary-softer:#0e2b36;--pp-primary-ring:rgba(143,218,215,.28);--pp-bg:#0a1e26;--pp-surface:#123844;--pp-surface-2:#0f303b;--pp-surface-3:#0d2933;--pp-text:#e8f4f4;--pp-text-strong:#ffffff;--pp-text-muted:#aac6c9;--pp-text-faint:#88a9ae;--pp-border:#23515f;--pp-border-strong:#34646f;--pp-success:#6fdca6;--pp-success-text:#a9ecc8;--pp-success-soft:#123a30;--pp-success-border:#2a6b52;--pp-warning:#eab55e;--pp-warning-text:#f6d59b;--pp-warning-soft:#3a2c12;--pp-warning-border:#7d5d24;--pp-danger:#ea8a8a;--pp-danger-text:#f6b8b8;--pp-danger-soft:#3d181b;--pp-danger-border:#7d3237;--pp-info:#8ab8ea;--pp-info-text:#b9d4f2;--pp-info-soft:#152e46;--pp-info-border:#2e5a86;--pp-shadow-sm:0 2px 10px -4px rgba(0,0,0,.5);--pp-shadow:0 14px 34px -22px rgba(0,0,0,.7),0 4px 12px -8px rgba(0,0,0,.4);--pp-shadow-lg:0 26px 60px -28px rgba(0,0,0,.8),0 10px 24px -16px rgba(0,0,0,.5);--pp-accent-text:#e9cf9a;--pp-accent-soft:#33290f;--pp-accent-ring:rgba(232,194,104,.3);--pp-accent-ink:#231a06;--pp-glass:rgba(16,48,59,.75);--pp-glass-border:rgba(143,218,215,.18);}.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-core-mod-accent .ic{color:#06272c}.pp-core:not(.pp-core-land):not(.pp-theme-light) .pp-core-mod-accent .mchip{color:#06272c}.pp-core:not(.pp-core-land):not(.pp-theme-light) .th-moon{display:none}.pp-core:not(.pp-core-land):not(.pp-theme-light) .th-sun{display:inline}}
.pp-core.pp-theme-dark:not(.pp-core-land){--pp-primary:#8fdad7;--pp-primary-strong:#b5ece9;--pp-primary-dark:#f0fbfb;--pp-primary-soft:#123543;--pp-primary-softer:#0e2b36;--pp-primary-ring:rgba(143,218,215,.28);--pp-bg:#0a1e26;--pp-surface:#123844;--pp-surface-2:#0f303b;--pp-surface-3:#0d2933;--pp-text:#e8f4f4;--pp-text-strong:#ffffff;--pp-text-muted:#aac6c9;--pp-text-faint:#88a9ae;--pp-border:#23515f;--pp-border-strong:#34646f;--pp-success:#6fdca6;--pp-success-text:#a9ecc8;--pp-success-soft:#123a30;--pp-success-border:#2a6b52;--pp-warning:#eab55e;--pp-warning-text:#f6d59b;--pp-warning-soft:#3a2c12;--pp-warning-border:#7d5d24;--pp-danger:#ea8a8a;--pp-danger-text:#f6b8b8;--pp-danger-soft:#3d181b;--pp-danger-border:#7d3237;--pp-info:#8ab8ea;--pp-info-text:#b9d4f2;--pp-info-soft:#152e46;--pp-info-border:#2e5a86;--pp-shadow-sm:0 2px 10px -4px rgba(0,0,0,.5);--pp-shadow:0 14px 34px -22px rgba(0,0,0,.7),0 4px 12px -8px rgba(0,0,0,.4);--pp-shadow-lg:0 26px 60px -28px rgba(0,0,0,.8),0 10px 24px -16px rgba(0,0,0,.5);--pp-accent-text:#e9cf9a;--pp-accent-soft:#33290f;--pp-accent-ring:rgba(232,194,104,.3);--pp-accent-ink:#231a06;--pp-glass:rgba(16,48,59,.75);--pp-glass-border:rgba(143,218,215,.18);background:var(--pp-bg);border-radius:var(--pp-radius-xl);padding:14px}
.pp-core.pp-theme-dark:not(.pp-core-land) .pp-hlp,.pp-core.pp-theme-dark:not(.pp-core-land) .pp-mc,.pp-core.pp-theme-dark:not(.pp-core-land) .pp-ein,.pp-core.pp-theme-dark:not(.pp-core-land) .pp-thb,.pp-core.pp-theme-dark:not(.pp-core-land) .pp-hr{--pp-primary:#8fdad7;--pp-primary-strong:#b5ece9;--pp-primary-dark:#f0fbfb;--pp-primary-soft:#123543;--pp-primary-softer:#0e2b36;--pp-primary-ring:rgba(143,218,215,.28);--pp-bg:#0a1e26;--pp-surface:#123844;--pp-surface-2:#0f303b;--pp-surface-3:#0d2933;--pp-text:#e8f4f4;--pp-text-strong:#ffffff;--pp-text-muted:#aac6c9;--pp-text-faint:#88a9ae;--pp-border:#23515f;--pp-border-strong:#34646f;--pp-success:#6fdca6;--pp-success-text:#a9ecc8;--pp-success-soft:#123a30;--pp-success-border:#2a6b52;--pp-warning:#eab55e;--pp-warning-text:#f6d59b;--pp-warning-soft:#3a2c12;--pp-warning-border:#7d5d24;--pp-danger:#ea8a8a;--pp-danger-text:#f6b8b8;--pp-danger-soft:#3d181b;--pp-danger-border:#7d3237;--pp-info:#8ab8ea;--pp-info-text:#b9d4f2;--pp-info-soft:#152e46;--pp-info-border:#2e5a86;--pp-shadow-sm:0 2px 10px -4px rgba(0,0,0,.5);--pp-shadow:0 14px 34px -22px rgba(0,0,0,.7),0 4px 12px -8px rgba(0,0,0,.4);--pp-shadow-lg:0 26px 60px -28px rgba(0,0,0,.8),0 10px 24px -16px rgba(0,0,0,.5);--pp-accent-text:#e9cf9a;--pp-accent-soft:#33290f;--pp-accent-ring:rgba(232,194,104,.3);--pp-accent-ink:#231a06;--pp-glass:rgba(16,48,59,.75);--pp-glass-border:rgba(143,218,215,.18);}
.pp-core.pp-theme-dark:not(.pp-core-land) .pp-core-mod-accent .ic{color:#06272c}
.pp-core.pp-theme-dark:not(.pp-core-land) .pp-core-mod-accent .mchip{color:#06272c}
.pp-core.pp-theme-dark:not(.pp-core-land) .th-moon{display:none}
.pp-core.pp-theme-dark:not(.pp-core-land) .th-sun{display:inline}

/* Anti-Layout-Shift (Desktop): Platz fuer die Scrollleiste dauerhaft reservieren —
   ohne das ruckt die ganze Seite horizontal, sobald Inhalt die Viewport-Hoehe
   uebersteigt (Portal-Seiten variieren stark). */
html{scrollbar-gutter:stable}
