/* NaturFreunde Essen – zentrales Designsystem
   Absichtlich spät geladen: vorhandene Fach-Plugins bleiben funktional,
   die gemeinsame visuelle Sprache wird hier zentral definiert. */
:root{
  --nfe-brand-green:#245d2d;
  --nfe-brand-green-strong:#173d20;
  --nfe-brand-green-soft:#eef5ef;
  --nfe-brand-red:#c91b24;
  --nfe-brand-red-strong:#9f151c;
  --nfe-brand-red-soft:#fff1f2;
  --nfe-text:#172019;
  --nfe-text-soft:#626d65;
  --nfe-bg:#ffffff;
  --nfe-bg-soft:#f5f7f4;
  --nfe-bg-warm:#f7f4ed;
  --nfe-border:#dfe6e0;
  --nfe-border-strong:#cbd7cd;
  --nfe-success:#286a37;
  --nfe-warning:#9a6c00;
  --nfe-danger:#b32028;
  --nfe-info:#275f73;
  --nfe-radius-xs:8px;
  --nfe-radius-sm:12px;
  --nfe-radius:18px;
  --nfe-radius-lg:26px;
  --nfe-shadow-sm:0 5px 18px rgba(23,61,32,.055);
  --nfe-shadow:0 14px 40px rgba(23,61,32,.085);
  --nfe-shadow-lg:0 22px 70px rgba(23,61,32,.12);
  --nfe-content:1180px;
  --nfe-content-narrow:920px;
  --nfe-space-1:6px;
  --nfe-space-2:10px;
  --nfe-space-3:14px;
  --nfe-space-4:18px;
  --nfe-space-5:24px;
  --nfe-space-6:32px;
  --nfe-space-7:44px;
  --nfe-space-8:64px;
  --nfe-transition:160ms ease;

  /* Kompatibilität mit älteren NFE-Styles */
  --red:var(--nfe-brand-red);
  --red-dark:var(--nfe-brand-red-strong);
  --green:var(--nfe-brand-green);
  --green-2:var(--nfe-brand-green);
  --green-soft:var(--nfe-brand-green-soft);
  --ink:var(--nfe-text);
  --muted:var(--nfe-text-soft);
  --paper:var(--nfe-bg);
  --border:var(--nfe-border);
  --shadow:var(--nfe-shadow);
  --radius:var(--nfe-radius);
  --radius-sm:var(--nfe-radius-sm);
}

html{scroll-behavior:smooth}
body.nfe-designsystem{
  background:var(--nfe-bg);
  color:var(--nfe-text);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.nfe-designsystem *,body.nfe-designsystem *::before,body.nfe-designsystem *::after{box-sizing:border-box}
body.nfe-designsystem img{max-width:100%;height:auto}
body.nfe-designsystem a{transition:color var(--nfe-transition),background var(--nfe-transition),border-color var(--nfe-transition),transform var(--nfe-transition),box-shadow var(--nfe-transition)}
body.nfe-designsystem :focus-visible{outline:3px solid rgba(36,93,45,.28);outline-offset:2px}

/* Einheitliche Inhaltsbreiten */
body.nfe-designsystem .wrap,
body.nfe-designsystem .nfe-wrap,
body.nfe-designsystem .nfe-protected-wrap,
body.nfe-designsystem .nfe-office-wrap,
body.nfe-designsystem .nfetp-wrap,
body.nfe-designsystem .nfh2-wrap,
body.nfe-designsystem .nfe-mem-wrap{
  width:min(var(--nfe-content),92%);
  max-width:var(--nfe-content);
  margin-left:auto;
  margin-right:auto;
}

/* Typografie */
body.nfe-designsystem h1,body.nfe-designsystem h2,body.nfe-designsystem h3,
body.nfe-designsystem h4,body.nfe-designsystem h5,body.nfe-designsystem h6{
  color:inherit;
  font-weight:800;
  letter-spacing:-.025em;
  text-wrap:balance;
}
body.nfe-designsystem h1{line-height:1.02}
body.nfe-designsystem h2{line-height:1.08}
body.nfe-designsystem h3{line-height:1.15}
body.nfe-designsystem p{max-width:78ch}
body.nfe-designsystem .eyebrow,
body.nfe-designsystem .kicker,
body.nfe-designsystem [class*="-kicker"]{
  font-size:.72rem;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:850;
  color:var(--nfe-brand-green);
}

/* Karten / Panels – alle Portalwelten auf dieselbe Oberfläche bringen */
body.nfe-designsystem :is(
  .card,.panel,.info-card,.person-card,.step,.eventbox,
  .nfe-card,.nfe-protected-card,.nfe-office-card,.nfe-mem-card,
  .nf-eb-card,.nfetp-card,.nfetp-location-card,.nfh2-card,
  .nfens-card,.nfe-event-section,.nfe-event-subblock,
  [class*="dashboard-card"],[class*="portal-card"]
){
  border:1px solid var(--nfe-border);
  border-radius:var(--nfe-radius);
  background:var(--nfe-bg);
  box-shadow:var(--nfe-shadow-sm);
}
body.nfe-designsystem :is(.card,.panel,.info-card,.person-card,.step,.nfe-card,.nfe-protected-card,.nfe-mem-card):hover{
  border-color:var(--nfe-border-strong);
}

/* Buttons und Aktionslinks */
body.nfe-designsystem :is(
  .btn,.nfe-btn,.nfe-mem-btn,.nfetp-btn,.nf-eb-btn,.nfh2-btn,.nfens-btn,
  .button:not(.wp-color-result),button:not(.components-button),
  input[type="submit"],input[type="button"],input[type="reset"]
){
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 17px;
  border:1px solid transparent;
  border-radius:999px;
  font:inherit;
  font-weight:800;
  line-height:1.15;
  cursor:pointer;
  text-decoration:none;
  box-shadow:none;
}
body.nfe-designsystem :is(.btn.red,.nfe-btn-primary,.button-primary,input[type="submit"]){
  background:var(--nfe-brand-red);
  color:#fff;
  border-color:var(--nfe-brand-red);
}
body.nfe-designsystem :is(.btn.green,.nfe-btn-green,.nfe-mem-btn,.nfetp-btn){
  background:var(--nfe-brand-green);
  color:#fff;
  border-color:var(--nfe-brand-green);
}
body.nfe-designsystem :is(.btn.outline,.nfe-btn-quiet,.button-secondary){
  background:#fff;
  color:var(--nfe-brand-green-strong);
  border-color:var(--nfe-border-strong);
}
body.nfe-designsystem :is(
  .btn,.nfe-btn,.nfe-mem-btn,.nfetp-btn,.nf-eb-btn,.nfh2-btn,.nfens-btn,
  .button:not(.wp-color-result),button:not(.components-button),input[type="submit"],input[type="button"]
):hover{
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(23,61,32,.11);
}

/* Formulare */
body.nfe-designsystem :is(input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="password"],input[type="number"],input[type="date"],input[type="time"],input[type="search"],select,textarea){
  width:100%;
  min-height:46px;
  border:1px solid var(--nfe-border-strong);
  border-radius:var(--nfe-radius-sm);
  background:#fff;
  color:var(--nfe-text);
  padding:10px 13px;
  font:inherit;
  box-shadow:0 1px 0 rgba(23,61,32,.02);
  transition:border-color var(--nfe-transition),box-shadow var(--nfe-transition),background var(--nfe-transition);
}
body.nfe-designsystem textarea{min-height:120px;resize:vertical}
body.nfe-designsystem :is(input,select,textarea):focus{
  border-color:var(--nfe-brand-green);
  box-shadow:0 0 0 4px rgba(36,93,45,.10);
  outline:0;
}
body.nfe-designsystem label{font-weight:700;color:var(--nfe-text)}
body.nfe-designsystem fieldset{border:1px solid var(--nfe-border);border-radius:var(--nfe-radius);padding:var(--nfe-space-5)}
body.nfe-designsystem legend{padding:0 8px;font-weight:800}

/* Tabellen */
body.nfe-designsystem table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--nfe-border);border-radius:var(--nfe-radius-sm);overflow:hidden;background:#fff}
body.nfe-designsystem th{background:var(--nfe-bg-soft);color:var(--nfe-text);font-size:.82rem;text-align:left;font-weight:800}
body.nfe-designsystem th,body.nfe-designsystem td{padding:12px 14px;border-bottom:1px solid var(--nfe-border);vertical-align:top}
body.nfe-designsystem tr:last-child td{border-bottom:0}

/* Hinweise / Status */
body.nfe-designsystem :is(.notice,.nfe-notice,.nfe-mem-notice,.nfe-portal-notice,.nfens-notice){
  border:1px solid var(--nfe-border);
  border-left:4px solid var(--nfe-brand-green);
  border-radius:var(--nfe-radius-sm);
  background:#fff;
  padding:13px 15px;
  box-shadow:none;
}
body.nfe-designsystem :is(.notice-success,.success,[class*="notice-success"]){border-left-color:var(--nfe-success);background:#f3faf5}
body.nfe-designsystem :is(.notice-error,.error,[class*="notice-error"]){border-left-color:var(--nfe-danger);background:#fff5f5}
body.nfe-designsystem :is(.notice-warning,.warning,[class*="notice-warning"]){border-left-color:var(--nfe-warning);background:#fff9eb}

/* Tabs, Filter, Chips */
body.nfe-designsystem :is(.tabs,[class*="-tabs"],[class*="filter-bar"],[class*="toolbar"]){gap:8px}
body.nfe-designsystem :is([class*="-tab"],[class*="chip"],[class*="filter-pill"]){border-radius:999px}

/* Seiteneinstiege / Hero */
body.nfe-designsystem :is(.page-hero,.nfe-protected-hero,[class*="page-hero"],[class*="portal-hero"]){
  border-radius:0;
}
body.nfe-designsystem .page-hero:not(.red):not(.sand):not(.sky){background:linear-gradient(135deg,var(--nfe-brand-green-strong),var(--nfe-brand-green))}

/* Geschützter Bereich */
body.nfe-designsystem .nfe-protected-new{background:var(--nfe-bg-soft)}
body.nfe-designsystem .nfe-protected-card{padding:22px}
body.nfe-designsystem .nfe-protected-icon{border-radius:14px;background:var(--nfe-brand-green-soft);color:var(--nfe-brand-green)}

/* Termine */
body.nfe-designsystem :is(.nfetp-location-card,.event-card,[class*="event-card"]){overflow:hidden}
body.nfe-designsystem :is(.date,[class*="event-date"]){color:var(--nfe-brand-green)}

/* Navigation */
body.nfe-designsystem :is(.nfenav-panel,.nfe-global-drawer){background:#fff;color:var(--nfe-text)}
body.nfe-designsystem :is(.nfenav-simple-group,.nfe-global-drawer-grid>a){border-color:var(--nfe-border)}

/* Lesbarkeit: übergroße Plugin-Überschriften einfangen */
body.nfe-designsystem main h1{font-size:clamp(2.35rem,5vw,4.6rem)}
body.nfe-designsystem main h2{font-size:clamp(1.8rem,3.6vw,3rem)}
body.nfe-designsystem main h3{font-size:clamp(1.15rem,2.1vw,1.55rem)}

/* Mobile */
@media(max-width:782px){
  :root{--nfe-radius:16px;--nfe-radius-lg:20px}
  body.nfe-designsystem :is(.wrap,.nfe-wrap,.nfe-protected-wrap,.nfe-office-wrap,.nfetp-wrap,.nfh2-wrap,.nfe-mem-wrap){width:min(94%,var(--nfe-content))}
  body.nfe-designsystem :is(.card,.panel,.info-card,.nfe-card,.nfe-protected-card,.nfe-mem-card){padding:18px}
  body.nfe-designsystem table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body.nfe-designsystem :is(input,select,textarea){font-size:16px}
}

/* Druck */
@media print{
  body.nfe-designsystem{background:#fff!important;color:#000!important}
  body.nfe-designsystem :is(.site-header,.site-footer,.nfenav-overlay,.nfe-global-header,.no-print){display:none!important}
  body.nfe-designsystem :is(.card,.panel,.info-card){box-shadow:none!important;border-color:#bbb!important}
}

/* ================================================================
   NFE Designsystem 1.1 — zentrale Konsolidierungsschicht
   Diese Regeln stehen bewusst NACH übernommenen Altregeln.
   ================================================================ */
.nfe-designsystem{
  --nfe-page-max:1180px;
  --nfe-content-max:960px;
  --nfe-radius-sm:10px;
  --nfe-radius-md:16px;
  --nfe-radius-lg:24px;
  --nfe-shadow-card:0 10px 30px rgba(20,52,39,.08);
  --nfe-shadow-hover:0 16px 38px rgba(20,52,39,.13);
}

.nfe-designsystem :where(.nfe-tf-box,.nfe-bm-stats article,.nfe-bm-user,.nfe-account-section,.nfe-card,.card,article[class*="card"]){
  border-radius:var(--nfe-radius-md)!important;
}

.nfe-designsystem :where(button,.button,.btn,input[type="submit"],input[type="button"],a[class*="button"],a[class*="btn"]){
  border-radius:var(--nfe-radius-sm);
}

.nfe-designsystem :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  border-radius:var(--nfe-radius-sm);
}

.nfe-designsystem .nfe-tf-chip,
.nfe-designsystem .nfe-bm-status,
.nfe-designsystem [class*="badge"],
.nfe-designsystem [class*="pill"]{
  border-radius:999px!important;
}

/* =========================================================
   v1.4 – Geschützte Arbeitsbereiche / Fachplugins
   Fachlogik bleibt in den jeweiligen Plugins, Erscheinungsbild zentral.
   ========================================================= */
body.nfe-designsystem .nfe-office-app,
body.nfe-designsystem .nfe-protected-v260,
body.nfe-designsystem .nfe-account-page,
body.nfe-designsystem .nfe-docs-app,
body.nfe-designsystem .nfe-docs-v2,
body.nfe-designsystem .nfe-docs-v3 {
  --nfe-work-bg: var(--nfe-color-surface-soft, #f6f7f4);
  --nfe-work-card: var(--nfe-color-surface, #fff);
  --nfe-work-border: var(--nfe-color-border, rgba(21,46,33,.12));
  --nfe-work-radius: var(--nfe-radius-lg, 22px);
  --nfe-work-radius-sm: var(--nfe-radius-md, 14px);
  --nfe-work-shadow: var(--nfe-shadow-sm, 0 8px 24px rgba(20,40,28,.08));
  font-family: inherit;
}
body.nfe-designsystem :is(.nfe-office-app,.nfe-protected-v260,.nfe-account-page,.nfe-docs-app,.nfe-docs-v2,.nfe-docs-v3)
:is(.nfe-card,.nfe-panel,.nfe-account-card,.nfe-docs-entry-card,.nfe-protected-v260-card,.nfe-office-module) {
  border-radius: var(--nfe-work-radius) !important;
  border: 1px solid var(--nfe-work-border) !important;
  box-shadow: var(--nfe-work-shadow) !important;
  background: var(--nfe-work-card) !important;
}
body.nfe-designsystem :is(.nfe-office-app,.nfe-protected-v260,.nfe-account-page,.nfe-docs-app,.nfe-docs-v2,.nfe-docs-v3)
:is(button,.button,.nfe-btn,.nfe-office-btn,.nfe-account-button,.nfe-link-button,input[type="submit"],input[type="button"]) {
  border-radius: 999px !important;
  min-height: 44px;
  font-weight: 800;
  letter-spacing: -.01em;
}
body.nfe-designsystem :is(.nfe-office-app,.nfe-protected-v260,.nfe-account-page,.nfe-docs-app,.nfe-docs-v2,.nfe-docs-v3)
:is(input[type="text"],input[type="email"],input[type="password"],input[type="search"],input[type="date"],input[type="time"],input[type="number"],select,textarea) {
  border-radius: var(--nfe-work-radius-sm) !important;
  border: 1px solid var(--nfe-work-border) !important;
  min-height: 46px;
  background: #fff;
  box-shadow: none !important;
}
body.nfe-designsystem :is(.nfe-office-app,.nfe-protected-v260,.nfe-account-page,.nfe-docs-app,.nfe-docs-v2,.nfe-docs-v3)
:is(input,select,textarea):focus {
  outline: 3px solid rgba(69,122,75,.16) !important;
  outline-offset: 1px;
  border-color: var(--nfe-color-primary, #34733c) !important;
}
body.nfe-designsystem :is(.nfe-office-hero,.nfe-protected-v260-hero,.nfe-account-hero,.nfe-docs-hero,.nfe-docs-office-head) {
  border-radius: clamp(22px,3vw,34px) !important;
  overflow: hidden;
}
body.nfe-designsystem :is(.nfe-office-kicker,.nfe-docs-hero small,.nfe-account-hero small,.nfe-v81-welcome small) {
  letter-spacing: .09em;
  font-weight: 900;
}
body.nfe-designsystem :is(.nfe-office-grid,.nfe-protected-v260-grid,.nfe-account-grid) { gap: clamp(14px,2vw,22px) !important; }
body.nfe-designsystem .nfe-doc-table { border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: var(--nfe-work-radius-sm); }
body.nfe-designsystem .nfe-doc-th { font-weight: 900; }
body.nfe-designsystem :is(.nfe-empty,.nfe-account-empty,.nfe-builder-empty,.nfe-protected-v260-note) {
  border-radius: var(--nfe-work-radius-sm) !important;
}
@media (max-width: 720px) {
  body.nfe-designsystem :is(.nfe-office-app,.nfe-protected-v260,.nfe-account-page,.nfe-docs-app,.nfe-docs-v2,.nfe-docs-v3) {
    border-radius: 0;
  }
}

/* =========================================================
   v1.5 – einheitliche Fachplugin-Oberflächen
   Die Funktionsplugins bleiben eigenständig; ihre Frontends
   folgen ab hier verbindlich dem zentralen Designsystem.
   ========================================================= */

/* Geschützte Konten-, Dokument- und Verwaltungsbereiche */
.nfe-account-page,
.nfe-account-wrap,
.nfe-docs-app,
.nfe-docs-v2,
.nfe-docs-v3,
.nfe-builder,
.nfe-editor,
.nfe-account-auth,
.nfe-account-admin,
.nfe-account-section,
.nfe-docs-entry-card,
.nfe-card,
.nfe-account-card {
  font-family: var(--nfe-font, inherit) !important;
  color: var(--nfe-text, #17251c);
}

.nfe-account-hero,
.nfe-account-section,
.nfe-account-card,
.nfe-docs-entry-card,
.nfe-card,
.nfe-editor,
.nfe-builder,
.nfe-docs-login,
.nfe-docs-lock,
.nfe-account-auth,
.nfe-account-admin {
  background: #fff !important;
  border: 1px solid var(--nfe-border, #dfe7e1) !important;
  border-radius: var(--nfe-radius-lg, 22px) !important;
  box-shadow: var(--nfe-shadow-sm, 0 8px 24px rgba(20,48,30,.08)) !important;
}

.nfe-account-hero,
.nfe-account-section,
.nfe-card,
.nfe-editor,
.nfe-builder,
.nfe-docs-login,
.nfe-docs-lock,
.nfe-account-auth,
.nfe-account-admin { padding: clamp(18px, 3vw, 30px) !important; }

.nfe-account-sectionhead,
.nfe-card-head,
.nfe-commandbar,
.nfe-builder-head,
.nfe-custom-series-head {
  border-color: var(--nfe-border, #dfe7e1) !important;
}

/* Einheitliche Eingaben in allen NFE-Fachmodulen */
.nfe-designsystem :where(.nfe-account-page,.nfe-docs-app,.nfe-builder,.nfe-editor,.nfe-homepage-settings,.nfehi-wrap,.nfetp-wrap,.nfcb-wrap)
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),select,textarea) {
  min-height: 46px;
  border: 1px solid var(--nfe-border-strong, #c9d7cd) !important;
  border-radius: var(--nfe-radius-sm, 12px) !important;
  background: #fff !important;
  color: var(--nfe-text, #17251c) !important;
  box-shadow: none !important;
  padding: 10px 13px !important;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.nfe-designsystem :where(.nfe-account-page,.nfe-docs-app,.nfe-builder,.nfe-editor,.nfe-homepage-settings,.nfehi-wrap,.nfetp-wrap,.nfcb-wrap)
:where(input,select,textarea):focus {
  outline: none !important;
  border-color: var(--nfe-green, #16834b) !important;
  box-shadow: 0 0 0 3px rgba(22,131,75,.13) !important;
}

/* Gemeinsame Aktionssprache */
.nfe-designsystem :where(.nfe-account-page,.nfe-docs-app,.nfe-builder,.nfe-editor,.nfe-homepage-settings,.nfehi-wrap,.nfetp-wrap,.nfcb-wrap)
:where(button,.button,a.button,input[type="submit"]) {
  border-radius: var(--nfe-radius-pill, 999px) !important;
  font-weight: 750 !important;
  min-height: 42px;
  text-decoration: none !important;
}

.nfe-designsystem :where(.nfe-account-button,.button-primary,.nfe-create-submit) {
  background: var(--nfe-green, #16834b) !important;
  border-color: var(--nfe-green, #16834b) !important;
  color: #fff !important;
}

.nfe-designsystem :where(.nfe-account-danger,.danger,.button-link-delete) {
  color: var(--nfe-red, #d9272e) !important;
}

/* Tabellen/listen nicht mehr wie WordPress-Backend */
.nfe-designsystem :where(.nfe-doc-table,.nfe-account-list,table.nfe-table) {
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  border: 1px solid var(--nfe-border, #dfe7e1) !important;
  border-radius: var(--nfe-radius-md, 16px) !important;
  background: #fff;
}
.nfe-designsystem :where(.nfe-doc-table,.nfe-account-list,table.nfe-table) th {
  background: var(--nfe-surface-soft, #f3f7f4) !important;
  color: var(--nfe-text, #17251c) !important;
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.nfe-designsystem :where(.nfe-doc-table,.nfe-account-list,table.nfe-table) :where(th,td) {
  padding: 12px 14px !important;
  border-bottom: 1px solid var(--nfe-border, #dfe7e1) !important;
}

/* Status, Hinweise, Chips */
.nfe-designsystem :where(.nfe-account-status,.chip,.nfe-check,.nfe-capacity-public,.nfe-email-change-state) {
  border-radius: var(--nfe-radius-pill, 999px) !important;
  font-weight: 700;
}
.nfe-designsystem :where(.nfe-account-note,.be-note,.notice) {
  border-radius: var(--nfe-radius-md, 16px) !important;
}

/* Chronik-Bot visuell an Karten-/Formsystem anbinden */
.nfcb-panel,
.nfcb-answer-box,
.nfcb-qcard,
.nfcb-upload-page {
  border-radius: var(--nfe-radius-lg, 22px) !important;
  border-color: var(--nfe-border, #dfe7e1) !important;
  box-shadow: var(--nfe-shadow-sm, 0 8px 24px rgba(20,48,30,.08)) !important;
}
.nfcb-form textarea,
.nfcb-form input { border-radius: var(--nfe-radius-sm, 12px) !important; }

/* Hausportal / Belegungskalender */
.nfh2-wrap,
.nfh2-card,
.nfh2-admin,
.nfh2-calendar {
  font-family: var(--nfe-font, inherit) !important;
}
.nfh2-card,
.nfh2-admin,
.nfh2-calendar {
  border-radius: var(--nfe-radius-lg, 22px) !important;
  border-color: var(--nfe-border, #dfe7e1) !important;
  box-shadow: var(--nfe-shadow-sm, 0 8px 24px rgba(20,48,30,.08)) !important;
}

/* Mobile: Arbeitsoberflächen bleiben luftig, ohne horizontalen Überlauf */
@media (max-width: 760px) {
  .nfe-account-grid,.nfe-account-authgrid,.nfe-board-grid,.grid2,.grid3 { grid-template-columns: 1fr !important; }
  .nfe-doc-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .nfe-account-hero,.nfe-account-section,.nfe-card,.nfe-editor,.nfe-builder { padding: 16px !important; }
}

/* ==========================================================
   NFE Designsystem 1.8.0 — Navigation, Inhalte, Lesbarkeit
   ========================================================== */

/* Einheitliche Inhaltsblöcke */
:where(.nfe-content,.nfe-entry-content,.entry-content,.nfe-text) > :where(h2,h3) {
  scroll-margin-top: 110px;
}
:where(.nfe-content,.nfe-entry-content,.entry-content,.nfe-text) > h2 {
  margin-top: clamp(2rem,4vw,3.25rem);
  margin-bottom: .8rem;
}
:where(.nfe-content,.nfe-entry-content,.entry-content,.nfe-text) > h3 {
  margin-top: 1.75rem;
  margin-bottom: .6rem;
}
:where(.nfe-content,.nfe-entry-content,.entry-content,.nfe-text) p {
  max-width: 78ch;
}

/* Links im Fließtext klar von Buttons unterscheiden */
:where(.nfe-content,.nfe-entry-content,.entry-content,.nfe-text) p a:not(.button):not(.nfe-btn):not(.nfe-button),
:where(.nfe-content,.nfe-entry-content,.entry-content,.nfe-text) li a:not(.button):not(.nfe-btn):not(.nfe-button) {
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
}

/* Einheitliche Metadaten-Zeilen */
:where(.nfe-meta,.nfe-event-meta,.nfe-person-meta,.nfe-card-meta) {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem .9rem;
  align-items: center;
  font-size: .94rem;
  line-height: 1.35;
}

/* Bilder in Karten/Teasern konsistent */
:where(.nfe-card,.nfe-event-card,.nfe-person-card,.nfe-tile,.nfe-teaser) img {
  display: block;
  max-width: 100%;
  height: auto;
}
:where(.nfe-card-media,.nfe-event-image,.nfe-person-image,.nfe-teaser-image) img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

/* Leere/unnötige Abstände aus unterschiedlichen Templates reduzieren */
:where(.nfe-page,.nfe-wrap,.nfe-modern-wrap,.nfe-portal-wrap) > :empty {
  display: none;
}

/* Einheitliche Trennlinien statt wechselnder Plugin-Dekoration */
:where(.nfe-divider,.nfe-separator,hr) {
  border: 0;
  border-top: 1px solid rgba(20,40,30,.14);
  margin-block: 1.5rem;
}

/* Navigation/Filter: gleiche pillartige Bedienlogik */
:where(.nfe-filter,.nfe-filters,.nfe-tabs,.nfe-subnav,.nfe-chipbar) {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}
:where(.nfe-filter,.nfe-filters,.nfe-tabs,.nfe-subnav,.nfe-chipbar) :where(a,button) {
  min-height: 38px;
  border-radius: 999px;
}

/* Hinweise/Erfolg/Fehler konsistent und gut lesbar */
:where(.nfe-notice,.nfe-message,.nfe-alert,.nfe-success,.nfe-error,.nfe-warning) {
  padding: .9rem 1rem;
  border-radius: var(--nfe-radius-md, 16px);
  line-height: 1.45;
}
:where(.nfe-notice,.nfe-message,.nfe-alert,.nfe-success,.nfe-error,.nfe-warning) > :first-child {
  margin-top: 0;
}
:where(.nfe-notice,.nfe-message,.nfe-alert,.nfe-success,.nfe-error,.nfe-warning) > :last-child {
  margin-bottom: 0;
}

/* Desktop: Aktionsleisten nicht unnötig breit ziehen */
@media (min-width: 721px) {
  :where(.nfe-actions,.nfe-event-actions,.nfe-share-actions,.nfe-toolbar,.nfe-form-actions) > :where(a,button,.nfe-btn,.nfe-button) {
    width: auto;
  }
}

/* Kleine Displays: Typografie und Medien ruhiger */
@media (max-width: 520px) {
  :where(.nfe-hero,.nfe-page-hero,.nfe-page-header) h1 {
    font-size: clamp(1.85rem, 9vw, 2.5rem);
  }
  :where(.nfe-card,.nfe-panel,.nfe-box,.nfe-tile,.nfe-event-card) {
    border-radius: var(--nfe-radius-md, 16px);
  }
  :where(.nfe-card-media,.nfe-event-image,.nfe-person-image,.nfe-teaser-image) img {
    aspect-ratio: 4 / 3;
  }
}


/* ==========================================================
   NFE Designsystem 1.9.0 — Header, Footer, Raster, Zustände
   ========================================================== */

/* Hauptinhalt mit konsistentem Abstand zu Header und Footer */
:where(main,.site-main,#primary,.nfe-main) {
  min-width: 0;
}
:where(.nfe-page,.nfe-wrap,.nfe-modern-wrap,.nfe-portal-wrap) {
  box-sizing: border-box;
}

/* Kartenraster: robust und ohne "halbe" Spalten */
:where(.nfe-grid,.nfe-card-grid,.nfe-event-grid,.nfe-person-grid,.nfe-tiles) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: clamp(.9rem, 2vw, 1.35rem);
  align-items: stretch;
}
:where(.nfe-grid,.nfe-card-grid,.nfe-event-grid,.nfe-person-grid,.nfe-tiles) > * {
  min-width: 0;
}

/* Karten erhalten eine verlässliche Inhaltsstruktur */
:where(.nfe-card,.nfe-event-card,.nfe-person-card,.nfe-tile,.nfe-panel) {
  display: flex;
  flex-direction: column;
}
:where(.nfe-card-body,.nfe-event-body,.nfe-person-body,.nfe-tile-body) {
  flex: 1 1 auto;
}
:where(.nfe-card-actions,.nfe-event-actions,.nfe-tile-actions) {
  margin-top: auto;
}

/* Formzustände */
:where(input,select,textarea):disabled,
:where(.nfe-btn,.nfe-button,button,.button)[disabled],
:where(.nfe-btn,.nfe-button,button,.button)[aria-disabled="true"] {
  opacity: .58;
  cursor: not-allowed;
  transform: none !important;
}
:where(input,select,textarea)[aria-invalid="true"] {
  border-color: #b42318 !important;
}
:where(.nfe-error,.nfe-field-error,.nfe-form-error) {
  color: #8f1d14;
}

/* Checkboxen/Radios nicht wie Textfelder behandeln */
:where(.nfe-page,.nfe-wrap,.nfe-portal-wrap,.nfe-office,.nfe-account) :where(input[type="checkbox"],input[type="radio"]) {
  width: auto;
  min-height: 0;
  accent-color: var(--nfe-green, #007a3d);
}

/* Tabellen und Listen ruhiger */
:where(.nfe-table-wrap,.nfe-table-container) th {
  text-align: left;
  white-space: nowrap;
}
:where(.nfe-table-wrap,.nfe-table-container) td,
:where(.nfe-table-wrap,.nfe-table-container) th {
  vertical-align: top;
}

/* Footer: gleiche Inhaltsbreite und klarere Linkdarstellung */
:where(.site-footer,#colophon,.nfe-footer) a {
  text-underline-offset: .18em;
}
:where(.site-footer,#colophon,.nfe-footer) :where(ul,ol) {
  padding-left: 0;
  list-style: none;
}
:where(.site-footer,#colophon,.nfe-footer) li + li {
  margin-top: .35rem;
}

/* Breadcrumbs/Subnavigation nicht mit Fließtext vermischen */
:where(.breadcrumbs,.nfe-breadcrumbs,.nfe-subnav) {
  font-size: .92rem;
  line-height: 1.4;
}
:where(.breadcrumbs,.nfe-breadcrumbs) a {
  text-decoration: none;
}

/* Lange Wörter, Mailadressen und URLs dürfen mobile Layouts nicht sprengen */
:where(.nfe-page,.nfe-wrap,.nfe-card,.nfe-panel,.nfe-office,.nfe-account) {
  overflow-wrap: anywhere;
}

/* Mobile Navigation und Formaktionen */
@media (max-width: 720px) {
  :where(.nfe-filter,.nfe-filters,.nfe-tabs,.nfe-subnav,.nfe-chipbar) {
    align-items: stretch;
  }
  :where(.nfe-filter,.nfe-filters,.nfe-tabs,.nfe-subnav,.nfe-chipbar) :where(a,button) {
    max-width: 100%;
  }
  :where(.nfe-form-row,.nfe-field-row) {
    grid-template-columns: 1fr !important;
  }
}

/* Druck: Bedienoberflächen ausblenden, Inhalte lesbar lassen */
@media print {
  :where(.nfe-actions,.nfe-toolbar,.nfe-share-actions,.nfe-filter,.nfe-filters,.nfe-tabs,button,.nfe-btn,.nfe-button) {
    display: none !important;
  }
  :where(.nfe-card,.nfe-panel,.nfe-box,.nfe-event-card) {
    box-shadow: none !important;
    break-inside: avoid;
  }
}


/* ==========================================================
   NFE Designsystem 2.0.0 — Accessibility & UI consistency
   ========================================================== */

/* Sprungmarken und Tastaturbedienung */
:where(#content,#main,.site-main,main) { scroll-margin-top: 100px; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid color-mix(in srgb, var(--nfe-green, #007a3d) 45%, white);
  outline-offset: 3px;
}

/* Einheitliche interaktive Mindestgröße */
:where(.nfe-actions,.nfe-toolbar,.nfe-tabs,.nfe-filters,.nfe-subnav) :where(a,button),
:where(.nfe-btn,.nfe-button,.button) { min-block-size: 44px; }

/* Details/Akkordeons, falls Fachplugins native details verwenden */
:where(.nfe-page,.nfe-wrap,.nfe-portal-wrap) details {
  border: 1px solid rgba(20,40,30,.12);
  border-radius: var(--nfe-radius-md,16px);
  padding: .8rem 1rem;
}
:where(.nfe-page,.nfe-wrap,.nfe-portal-wrap) details + details { margin-top: .65rem; }
:where(.nfe-page,.nfe-wrap,.nfe-portal-wrap) summary {
  cursor: pointer;
  font-weight: 750;
}

/* Einheitliche leere Zustände */
:where(.nfe-empty,.nfe-empty-state,.nfe-no-results,.nfe-no-items) {
  padding: clamp(1.25rem,3vw,2rem);
  text-align: center;
  border: 1px dashed rgba(20,40,30,.22);
  border-radius: var(--nfe-radius-lg,24px);
  background: rgba(255,255,255,.62);
}

/* Lange Titel und Aktionszeilen stabilisieren */
:where(.nfe-card,.nfe-event-card,.nfe-person-card,.nfe-panel) :where(h2,h3,h4) {
  overflow-wrap: anywhere;
  text-wrap: balance;
}
:where(.nfe-card-actions,.nfe-event-actions,.nfe-actions,.nfe-toolbar) { min-width: 0; }

/* Einheitliche Listen in Karten */
:where(.nfe-card,.nfe-panel,.nfe-box) :where(ul,ol) { padding-inline-start: 1.25rem; }
:where(.nfe-card,.nfe-panel,.nfe-box) li + li { margin-top: .3rem; }

/* Formulare: Hilfetexte und Pflichtfeldhinweise */
:where(.nfe-help,.nfe-field-help,.description,.nfe-form-hint) {
  display: block;
  margin-top: .35rem;
  font-size: .9rem;
  line-height: 1.4;
  opacity: .78;
}
:where(label) .required, :where(.nfe-required) { font-weight: 800; }

/* WordPress-Adminbar darf mobile Navigation nicht überdecken */
body.admin-bar :where(.nfe-sticky,.nfe-fixed,.nfe-mobile-nav) { scroll-margin-top: 46px; }
@media (min-width:783px) {
  body.admin-bar :where(.nfe-sticky,.nfe-fixed,.nfe-mobile-nav) { scroll-margin-top: 32px; }
}

/* Hochkontrast-/Systempräferenzen respektieren */
@media (prefers-contrast: more) {
  :where(.nfe-card,.nfe-panel,.nfe-box,.nfe-tile,input,select,textarea) { border-width: 2px; }
  :where(.nfe-badge,.nfe-status,.nfe-chip,.nfe-tag) { outline: 1px solid currentColor; }
}

/* Sehr kleine Displays */
@media (max-width:380px) {
  :where(.nfe-page,.nfe-wrap,.nfe-modern-wrap,.nfe-portal-wrap) { padding-inline: .7rem; }
  :where(.nfe-actions,.nfe-toolbar,.nfe-tabs,.nfe-filters) { gap: .45rem; }
}

/* v3.3.0 – exakte Ausnahme für den internen Ortsgruppenbüro-Kasten */
body.nfe-designsystem .nfe-protected-card.nfe-protected-office-card{background:linear-gradient(145deg,#153d2d,#236247)!important;color:#fff!important;border-color:#245c43!important;box-shadow:0 15px 38px rgba(20,61,44,.15)!important}
body.nfe-designsystem .nfe-protected-card.nfe-protected-office-card :is(small,strong,em,b,span){color:inherit!important}
body.nfe-designsystem .nfe-protected-card.nfe-protected-office-card em{color:rgba(255,255,255,.75)!important}
body.nfe-designsystem .nfe-protected-card.nfe-protected-office-card b{color:#dce97b!important}
