/**
 * ALFARI 6.28.1 – Automatic dark-surface contrast guard
 * Presentation only. No business/training logic.
 *
 * Runtime marks actual rendered surfaces as either
 * `.alfari-auto-dark-surface` or `.alfari-auto-light-surface`.
 * This layer is intentionally loaded last so dark plugin surfaces cannot
 * inherit older public-page rules that force charcoal text everywhere.
 */
:root{
  --alfari-dark-surface-text:#ffffff;
  --alfari-dark-surface-soft:#e7ece8;
  --alfari-dark-surface-muted:#d0d8d2;
  --alfari-dark-surface-link:#b7e35d;
  --alfari-light-surface-text:#1f2328;
  --alfari-light-surface-soft:#4b5563;
}

body:not(.alfari-app-mode) .alfari-auto-dark-surface{
  color:var(--alfari-dark-surface-soft)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-soft)!important;
}
body:not(.alfari-app-mode) .alfari-auto-dark-surface :where(
  h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary,
  [class*="title"],[class*="heading"],[class*="headline"]
){
  color:var(--alfari-dark-surface-text)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-text)!important;
  opacity:1!important;
  text-shadow:none!important;
}
body:not(.alfari-app-mode) .alfari-auto-dark-surface :where(
  p,li,dd,dt,small,caption,figcaption,
  [class*="description"],[class*="subtitle"],[class*="lead"],[class*="meta"]
){
  color:var(--alfari-dark-surface-soft)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-soft)!important;
  opacity:1!important;
}
body:not(.alfari-app-mode) .alfari-auto-dark-surface :where(
  a:not(.button):not([class*="button"]):not([class*="btn"])
){
  color:var(--alfari-dark-surface-link)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-link)!important;
}

/* A light child card/input/button inside a dark panel owns its own contrast. */
body:not(.alfari-app-mode) .alfari-auto-light-surface{
  color:var(--alfari-light-surface-text)!important;
  -webkit-text-fill-color:var(--alfari-light-surface-text)!important;
}
body:not(.alfari-app-mode) .alfari-auto-light-surface :where(
  h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary,
  [class*="title"],[class*="heading"],[class*="headline"]
){
  color:var(--alfari-light-surface-text)!important;
  -webkit-text-fill-color:var(--alfari-light-surface-text)!important;
  opacity:1!important;
}

/* 6.38.49 — The same rendered-surface contract now protects dynamic Platform
   cards inside Mein ALFARI. This is presentation only: the Platform continues
   to supply every word, state, action and decision. Form controls and buttons
   retain their own component colors. */
body.alfari-app-mode .alfari-app-workspace .alfari-auto-light-surface{
  color:var(--alfari-light-surface-text)!important;
  -webkit-text-fill-color:var(--alfari-light-surface-text)!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  text-shadow:none!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-light-surface :where(
  h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary,
  [class*="title"],[class*="heading"],[class*="headline"]
){
  color:var(--alfari-light-surface-text)!important;
  -webkit-text-fill-color:var(--alfari-light-surface-text)!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-light-surface :where(
  p,li,dd,dt,small,caption,figcaption,
  [class*="description"],[class*="subtitle"],[class*="lead"],[class*="meta"]
){
  color:var(--alfari-light-surface-soft)!important;
  -webkit-text-fill-color:var(--alfari-light-surface-soft)!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-dark-surface{
  color:var(--alfari-dark-surface-soft)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-soft)!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-dark-surface :where(
  h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary,
  [class*="title"],[class*="heading"],[class*="headline"]
){
  color:var(--alfari-dark-surface-text)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-text)!important;
  opacity:1!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-dark-surface :where(
  p,li,dd,dt,small,caption,figcaption,
  [class*="description"],[class*="subtitle"],[class*="lead"],[class*="meta"]
){
  color:var(--alfari-dark-surface-soft)!important;
  -webkit-text-fill-color:var(--alfari-dark-surface-soft)!important;
  opacity:1!important;
}

body.alfari-app-mode .alfari-app-workspace :where(button,a.button,[class*="button"],input,select,textarea).alfari-auto-light-surface,
body.alfari-app-mode .alfari-app-workspace :where(button,a.button,[class*="button"],input,select,textarea).alfari-auto-dark-surface{
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}
body.alfari-app-mode .alfari-app-workspace a.alfari-auto-light-surface:not(.button):not([class*="button"]):not([class*="btn"]){
  color:#315b16!important;
  -webkit-text-fill-color:#315b16!important;
  text-decoration-thickness:.1em;
  text-underline-offset:.18em;
}
body.alfari-app-mode .alfari-app-workspace a.alfari-auto-light-surface:focus-visible{
  outline:3px solid #315b16!important;
  outline-offset:3px!important;
}

/* 6.38.50 — Element-level mobile fallback. Platform components may apply
   their own color or opacity on nested text wrappers. The runtime adds these
   classes only after measuring a rendered contrast below 4.5:1. */
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-wrapper{
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-text--dark{
  color:#1f2328!important;
  -webkit-text-fill-color:#1f2328!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  text-shadow:none!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-text--light{
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  text-shadow:none!important;
}
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-text--dark::before,
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-text--dark::after,
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-text--light::before,
body.alfari-app-mode .alfari-app-workspace .alfari-auto-contrast-text--light::after{
  color:currentColor!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}
body:not(.alfari-app-mode) .alfari-auto-light-surface :where(
  p,li,dd,dt,small,caption,figcaption,
  [class*="description"],[class*="subtitle"],[class*="lead"],[class*="meta"]
){
  color:var(--alfari-light-surface-soft)!important;
  -webkit-text-fill-color:var(--alfari-light-surface-soft)!important;
  opacity:1!important;
}
body:not(.alfari-app-mode) .alfari-auto-light-surface :where(
  a:not(.button):not([class*="button"]):not([class*="btn"])
){
  color:#5f8f22!important;
  -webkit-text-fill-color:#5f8f22!important;
}

/* Form controls must always follow their own rendered surface. */
body:not(.alfari-app-mode) :where(input,select,textarea).alfari-auto-light-surface{
  color:#1f2328!important;
  -webkit-text-fill-color:#1f2328!important;
}
body:not(.alfari-app-mode) :where(input,select,textarea).alfari-auto-dark-surface{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Kostenlose Tools: override the historical blanket charcoal typography only
   when the runtime has verified that the rendered plugin surface is dark. */
body:not(.alfari-app-mode) .alfari-tools-page .alfari-auto-dark-surface :where(
  h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary
){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body:not(.alfari-app-mode) .alfari-tools-page .alfari-auto-dark-surface :where(
  p,li,dd,dt,small,caption,figcaption,span:not([class*="icon"])
){
  color:#e7ece8!important;
  -webkit-text-fill-color:#e7ece8!important;
}
body:not(.alfari-app-mode) .alfari-tools-page .alfari-auto-light-surface :where(
  h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary,span:not([class*="icon"])
){
  color:#1f2328!important;
  -webkit-text-fill-color:#1f2328!important;
}
body:not(.alfari-app-mode) .alfari-tools-page .alfari-auto-light-surface :where(
  p,li,dd,dt,small,caption,figcaption
){
  color:#4b5563!important;
  -webkit-text-fill-color:#4b5563!important;
}

/* Explicit author/plugin dark-surface markers also receive the same contract,
   even before JS classification is complete. */
body:not(.alfari-app-mode) :where(
  [data-theme="dark"],
  [data-color-scheme="dark"],
  .is-dark,
  .theme-dark,
  .dark-surface,
  [class*="dark-panel"],
  [class*="dark-card"],
  [class*="dark-hero"]
){
  color:var(--alfari-dark-surface-soft)!important;
}
body:not(.alfari-app-mode) :where(
  [data-theme="dark"],
  [data-color-scheme="dark"],
  .is-dark,
  .theme-dark,
  .dark-surface,
  [class*="dark-panel"],
  [class*="dark-card"],
  [class*="dark-hero"]
) :where(h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary){
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
body:not(.alfari-app-mode) :where(
  [data-theme="dark"],
  [data-color-scheme="dark"],
  .is-dark,
  .theme-dark,
  .dark-surface,
  [class*="dark-panel"],
  [class*="dark-card"],
  [class*="dark-hero"]
) :where(p,li,dd,dt,small,caption,figcaption){
  color:#e7ece8!important;
  -webkit-text-fill-color:#e7ece8!important;
}

/* 6.28.4 – DARK-SURFACE-TEXT-WHITE-001
   User-facing typography on dark surfaces is white. Brand green remains for controls/background accents. */
.alfari-dark-surface,
.alfari-dark-surface :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,label,legend),
[data-alfari-dark-surface],
[data-alfari-dark-surface] :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,label,legend),
.alfari-app-header,
.alfari-app-header :is(h1,h2,h3,p,span,strong,small,label),
.alfari-trainer-hero,
.alfari-trainer-hero :is(h1,h2,h3,p,span,strong,small,label) {
  color:#fff !important;
}
