/**
 * ALFARI UI Framework 1.0
 * Reine Darstellungsschicht. Keine Fach-, Premium- oder Trainingslogik.
 */
:root {
  --alfari-color-bg: #171a1f;
  --alfari-color-bg-elevated: #1d2127;
  --alfari-color-surface: #252a31;
  --alfari-color-surface-strong: #2d333b;
  --alfari-color-border: rgba(255,255,255,.12);
  --alfari-color-text: #ffffff;
  --alfari-color-text-soft: #edf0f3;
  --alfari-color-text-muted: #c5cbd2;
  --alfari-color-accent: #cbe93f;
  --alfari-color-accent-text: #171a1f;
  --alfari-radius-sm: 12px;
  --alfari-radius-md: 18px;
  --alfari-radius-lg: 24px;
  --alfari-shadow-card: 0 14px 34px rgba(0,0,0,.22);
  --alfari-space-1: .5rem;
  --alfari-space-2: .75rem;
  --alfari-space-3: 1rem;
  --alfari-space-4: 1.5rem;
  --alfari-space-5: 2rem;
  --alfari-content-width: 1180px;
}

html { background: var(--alfari-color-bg); }
body,
.site,
.page-main,
.alfari-app-shell,
.alfari-app-main {
  background: var(--alfari-color-bg) !important;
  color: var(--alfari-color-text-soft);
}

/* Öffentliche und persönliche Oberflächen verwenden dieselbe Lesbarkeitsbasis. */
:where(.page-main, .entry-content, .alfari-app-main, .alfari-app-content) {
  color: var(--alfari-color-text-soft);
}

/* ALFARI Core Card */
.alfari-ui-card,
.page-card,
.goal-card,
.offer-card,
.alfari-trainer-focus-card,
.alfari-difference-card,
.alfari-app-card,
.alfari-panel,
.alfari-status-card,
.alfari-training-card,
.alfari-coach-card,
.alfari-history-card,
.alfari-motion-card,
.alfari-public-slot > *:where(article, section, div),
.alfari-public-slot-downloads > *:where(article, section, div) {
  background: var(--alfari-color-surface) !important;
  color: var(--alfari-color-text-soft) !important;
  border: 1px solid var(--alfari-color-border) !important;
  border-radius: var(--alfari-radius-lg) !important;
  box-shadow: var(--alfari-shadow-card);
}

/* Karten-Typografie: ausdrücklich auch verschachtelte Plugin-Ausgaben. */
:where(
  .alfari-ui-card,
  .page-card,
  .goal-card,
  .offer-card,
  .alfari-trainer-focus-card,
  .alfari-difference-card,
  .alfari-app-card,
  .alfari-panel,
  .alfari-status-card,
  .alfari-training-card,
  .alfari-coach-card,
  .alfari-history-card,
  .alfari-motion-card,
  .alfari-public-slot,
  .alfari-public-slot-downloads
) :where(h1,h2,h3,h4,h5,h6,.card-title,.title,[class*="title"]) {
  color: var(--alfari-color-text) !important;
  -webkit-text-fill-color: var(--alfari-color-text) !important;
  opacity: 1 !important;
  line-height: 1.22;
  word-break: normal;
  overflow-wrap: break-word;
}

:where(
  .alfari-ui-card,
  .page-card,
  .goal-card,
  .offer-card,
  .alfari-trainer-focus-card,
  .alfari-difference-card,
  .alfari-app-card,
  .alfari-panel,
  .alfari-status-card,
  .alfari-training-card,
  .alfari-coach-card,
  .alfari-history-card,
  .alfari-motion-card,
  .alfari-public-slot,
  .alfari-public-slot-downloads
) :where(p,li,dd,small,.description,.subtitle,[class*="text"],[class*="description"]) {
  color: var(--alfari-color-text-muted) !important;
  -webkit-text-fill-color: var(--alfari-color-text-muted) !important;
  opacity: 1 !important;
  line-height: 1.65;
}

:where(.kicker,.page-kicker,.eyebrow,.badge,.alfari-badge,[class*="kicker"],[class*="badge"]) {
  color: var(--alfari-color-accent) !important;
}

/* Buttons */
.alfari-ui-button,
.button.primary,
button.primary,
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .75rem 1.25rem;
  border: 1px solid var(--alfari-color-accent) !important;
  border-radius: 999px;
  background: var(--alfari-color-accent) !important;
  color: var(--alfari-color-accent-text) !important;
  font-weight: 800;
  text-decoration: none;
}
.alfari-ui-button--secondary,
.button.secondary {
  background: transparent !important;
  color: var(--alfari-color-text) !important;
  border-color: rgba(255,255,255,.38) !important;
}

/* Helle Funktionsflächen: nur Formulare, Tabellen und explizite Light Cards. */
.alfari-ui-card--light,
.alfari-form-card,
.alfari-table-card,
:where(.page-card,.alfari-app-card) form {
  --alfari-light-text: #20252b;
}
.alfari-ui-card--light,
.alfari-form-card,
.alfari-table-card {
  background: #fff !important;
  color: #20252b !important;
  border-color: rgba(23,26,31,.14) !important;
}
.alfari-ui-card--light :where(h1,h2,h3,h4,h5,h6,p,li,label),
.alfari-form-card :where(h1,h2,h3,h4,h5,h6,p,li,label),
.alfari-table-card :where(h1,h2,h3,h4,h5,h6,p,li,label) {
  color: #20252b !important;
  -webkit-text-fill-color: #20252b !important;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  background: #fff !important;
  color: #20252b !important;
  -webkit-text-fill-color: #20252b !important;
  border-color: rgba(23,26,31,.28) !important;
}
input::placeholder,
textarea::placeholder { color: #69717a !important; opacity: 1; }

/* Layout-Komponenten */
.alfari-ui-section { padding-block: clamp(2.5rem, 6vw, 5rem); }
.alfari-ui-container { width: min(calc(100% - 2rem), var(--alfari-content-width)); margin-inline: auto; }
.alfari-ui-grid { display: grid; gap: var(--alfari-space-4); grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.alfari-ui-card { padding: clamp(1rem, 2.5vw, 1.75rem); }

:where(a,button,input,select,textarea):focus-visible {
  outline: 3px solid var(--alfari-color-accent) !important;
  outline-offset: 3px;
}

@media (max-width: 768px) {
  .alfari-ui-card,
  .page-card,
  .goal-card,
  .offer-card,
  .alfari-app-card,
  .alfari-panel { border-radius: var(--alfari-radius-md) !important; }
  :where(.page-card,.goal-card,.offer-card,.alfari-app-card,.alfari-panel) {
    padding: 1rem !important;
  }
  :where(.page-card,.goal-card,.offer-card,.alfari-app-card,.alfari-panel) :where(h2,h3,[class*="title"]) {
    font-size: clamp(1.18rem, 6vw, 1.55rem) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
