/*
 * Mitgliederbereich (E8) - Grundgestaltung für alle Websites.
 * Aufbau nach dem Entwurf von Dennis (07.10.2026): Zugangsseiten mit Bühne und
 * Formular, Konto mit Seitenleiste und Karten.
 *
 * Die Datei lädt als Erstes im Kopf, das CSS der Website danach: Gleich starke
 * Regeln der Website gewinnen, allgemeine (`a`, `p`) nicht gegen die Klassen hier.
 * Eine Website passt den Bereich über diese Variablen an (oder direkt über `.fk-m-…`):
 *   --fk-m-akzent        Knöpfe, Fokus, Links, Titel   (Standard: Textfarbe)
 *   --fk-m-akzent-text   Schrift auf Knöpfen           (Standard: Hintergrund)
 *   --fk-m-flaeche       Karten, Seitenleiste, Bühne
 *   --fk-m-feld          Eingabefelder
 *   --fk-m-linie         Linien
 *   --fk-m-leise         leise Schrift (Hinweise)
 *   --fk-m-radius        Ecken (0 = kantig)
 *   --fk-m-breite        größte Breite
 *   --fk-m-oben          Abstand oben, z. B. unter einem festen Kopf
 *   --fk-m-titel-schrift Schrift der Überschriften
 */
.fk-m {
  /* Nicht currentColor: Im Knopf wäre das die Knopfschrift selbst - Schrift und Fläche gleich. */
  --_akzent: var(--fk-m-akzent, CanvasText);
  --_akzent-text: var(--fk-m-akzent-text, Canvas);
  --_flaeche: var(--fk-m-flaeche, color-mix(in srgb, currentColor 6%, transparent));
  --_feld: var(--fk-m-feld, color-mix(in srgb, currentColor 4%, transparent));
  --_linie: var(--fk-m-linie, color-mix(in srgb, currentColor 18%, transparent));
  --_linie-stark: color-mix(in srgb, currentColor 40%, transparent);
  --_leise: var(--fk-m-leise, color-mix(in srgb, currentColor 72%, transparent));
  --_radius: var(--fk-m-radius, 8px);
  --_titel: var(--fk-m-titel-schrift, inherit);
  /* Zwei Höhen für alles, was in einer Reihe steht (Feld, Auswahl, Knopf, Schalter) - so bleiben Zeilen bündig. */
  --_hoehe: var(--fk-m-hoehe, 48px);
  --_hoehe-klein: var(--fk-m-hoehe-klein, 38px);
  box-sizing: border-box;
  width: 100%;
  max-width: var(--fk-m-breite, 1240px);
  margin: 0 auto;
  padding: calc(var(--fk-m-oben, 0px) + clamp(24px, 4vw, 64px)) 20px clamp(48px, 6vw, 96px);
  font-size: 16px;
  line-height: 1.5;
}
/* Fest statt „inherit“: Der Inhalt von <details> (::details-content) erbt nicht - Felder in Aufklappern wurden sonst um den Innenabstand höher. */
.fk-m *, .fk-m *::before, .fk-m *::after { box-sizing: border-box; }
:where(.fk-m) p { margin: 0 0 1em; }
:where(.fk-m) ul { margin: 0; padding: 0; list-style: none; }
.fk-m :focus-visible { outline: 2px solid var(--_akzent); outline-offset: 2px; }
.fk-m-icon { display: block; width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.fk-m-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--_akzent); }
.fk-m-klein { font-size: 14px; }
.fk-m-unterzeile { margin: 0 0 18px; color: var(--_leise); }

/* ---------- Knöpfe ---------- */
.fk-m-knopf {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--_hoehe); padding: 0 22px;
  font: inherit; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none;
  color: var(--_akzent-text); background: var(--_akzent);
  border: 1px solid var(--_akzent); border-radius: var(--_radius); cursor: pointer;
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.fk-m-knopf:hover { color: var(--_akzent); background: transparent; }
.fk-m-knopf:disabled { opacity: .5; cursor: not-allowed; }
.fk-m-knopf--block { display: flex; width: 100%; }
.fk-m-knopf--discord { color: #fff; background: #5865f2; border-color: #5865f2; }
.fk-m-knopf--discord:hover { color: #fff; background: #4752c4; border-color: #4752c4; }
.fk-m-knopf--google { color: #1f1f1f; background: #fff; border-color: #dadce0; }
.fk-m-knopf--google:hover { color: #1f1f1f; background: #ececec; border-color: #ececec; }
.fk-m-knopf--discord .fk-m-icon, .fk-m-knopf--google .fk-m-icon { width: 22px; height: 22px; }

/* ---------- Formulare ---------- */
.fk-m-formular { display: grid; gap: 16px; margin: 0; }
.fk-m-formular--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
.fk-m-formular--2 > .fk-m-breit { grid-column: 1 / -1; }
.fk-m-aktionen { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; margin: 0; }
/* align-content: start - sonst verteilt das Grid Resthöhe (Nachbarfeld mit Hinweis) auf Label und Feld, Felder stehen versetzt. */
.fk-m-feld { display: grid; align-content: start; gap: 7px; min-width: 0; }
.fk-m-feld__zeile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.fk-m-feld__label { font-size: 14px; font-weight: 700; }
.fk-m-optional { font-weight: 400; color: var(--_leise); }
.fk-m-feld__hinweis { margin: 0; font-size: 13px; line-height: 1.45; color: var(--_leise); }
.fk-m-eingabe {
  width: 100%; min-height: var(--_hoehe); padding: 10px 12px;
  font: inherit; color: inherit; background: var(--_feld);
  border: 1px solid var(--_linie-stark); border-radius: var(--_radius);
  transition: border-color .25s ease, background-color .25s ease;
}
.fk-m-eingabe:focus-visible { border-color: var(--_akzent); outline: 2px solid var(--_akzent); outline-offset: 0; }
.fk-m-eingabe[readonly] { background: transparent; border-style: dashed; color: var(--_leise); }
.fk-m-eingabe-gruppe { position: relative; display: flex; }
.fk-m-eingabe-gruppe .fk-m-eingabe { padding-right: 52px; }
.fk-m-eingabe-gruppe__knopf {
  position: absolute; right: 1px; top: 1px; bottom: 1px;
  display: grid; place-items: center; width: 44px; padding: 0;
  color: inherit; background: none; border: 0; cursor: pointer;
}
.fk-m-eingabe-gruppe__knopf[aria-pressed="true"] { color: var(--_akzent); }
.fk-m-eingabe-vorsatz { display: grid; grid-template-columns: auto minmax(0, 1fr); }
.fk-m-eingabe-vorsatz > span { display: grid; place-items: center; padding: 0 12px; color: var(--_leise); background: var(--_flaeche); border: 1px solid var(--_linie-stark); border-right: 0; border-radius: var(--_radius) 0 0 var(--_radius); }
.fk-m-eingabe-vorsatz .fk-m-eingabe { border-top-left-radius: 0; border-bottom-left-radius: 0; }

/* ---------- Hinweise ---------- */
.fk-m-hinweis {
  display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 12px; align-items: start;
  margin: 0 0 18px; padding: 14px 16px; font-size: 15px;
  background: var(--_flaeche); border-left: 3px solid var(--_leise); border-radius: var(--_radius);
}
.fk-m-hinweis p { margin: 0; }
.fk-m-hinweis > .fk-m-icon { width: 22px; height: 22px; }
.fk-m-hinweis--fehler { border-left-color: #e5484d; }
.fk-m-hinweis--fehler > .fk-m-icon { color: #e5484d; }
.fk-m-hinweis--erfolg { border-left-color: #30a46c; }
.fk-m-hinweis--erfolg > .fk-m-icon { color: #30a46c; }
.fk-m-hinweis--info { border-left-color: var(--_akzent); }

/* ---------- Anmelden, Registrieren, Mail-Links ---------- */
.fk-m-zugang {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 480px);
  max-width: 1180px; margin: 0 auto; overflow: hidden;
  background: var(--_flaeche); border: 1px solid var(--_linie); border-radius: var(--_radius);
}
.fk-m-zugang--allein { grid-template-columns: minmax(0, 1fr); max-width: 520px; }
.fk-m-zugang__buehne { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 18px; padding: clamp(28px, 3vw, 56px); overflow: hidden; }
.fk-m-zugang__form { padding: clamp(22px, 2.2vw, 40px) clamp(24px, 2.6vw, 44px); }
.fk-m-zugang__buehne + .fk-m-zugang__form { border-left: 1px solid var(--_linie); }
.fk-m-titel { margin: 0 0 6px; font-family: var(--_titel); font-size: clamp(28px, 2.4vw, 38px); line-height: 1.15; }
.fk-m-zugang__anbieter { display: grid; gap: 10px; }
.fk-m-oder { display: flex; align-items: center; gap: 14px; margin: 16px 0; font-size: 13px; color: var(--_leise); }
.fk-m-oder::before, .fk-m-oder::after { content: ""; flex: 1; height: 1px; background: var(--_linie-stark); }
.fk-m-zugang__fuss { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--_linie); font-size: 15px; text-align: center; }

/* ---------- Konto: Seitenleiste + Inhalt ---------- */
.fk-m-raster { display: grid; grid-template-columns: clamp(220px, 15vw, 272px) minmax(0, 1fr); column-gap: clamp(24px, 3vw, 64px); align-items: start; }
.fk-m-inhalt { min-width: 0; }
.fk-m-leiste { display: grid; gap: 22px; }
.fk-m-person { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 12px; padding-bottom: 20px; border-bottom: 1px solid var(--_linie); }
.fk-m-person p { margin: 0; }
.fk-m-person__name { font-weight: 700; overflow-wrap: anywhere; }
.fk-m-person .fk-m-person__rolle { margin-top: 3px; font-size: 13px; color: var(--_leise); }
.fk-m-avatar {
  display: grid; place-items: center; width: 56px; height: 56px; overflow: hidden; border-radius: 50%;
  font-weight: 700; font-size: 20px; color: var(--_akzent-text); background: var(--_akzent);
}
.fk-m-avatar img { width: 100%; height: 100%; object-fit: cover; }
.fk-m-avatar--gross { width: 96px; height: 96px; font-size: 32px; }
.fk-m-menue { display: grid; gap: 22px; }
.fk-m-menue__gruppe { display: grid; gap: 2px; }
.fk-m .fk-m-menue__titel { margin: 0 0 6px; padding-left: 14px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--_leise); }
.fk-m-menue a, .fk-m-menue button {
  position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 44px; padding: 8px 14px;
  font: inherit; font-size: 15px; text-align: left; text-decoration: none; color: inherit;
  background: none; border: 0; border-radius: var(--_radius); cursor: pointer;
  transition: background-color .2s ease;
}
.fk-m-menue a:hover, .fk-m-menue button:hover { background: var(--_flaeche); }
.fk-m-menue a[aria-current="page"] { font-weight: 700; background: var(--_flaeche); box-shadow: inset 2px 0 0 var(--_akzent); }
.fk-m-menue__abmelden { padding-top: 12px; border-top: 1px solid var(--_linie); }
.fk-m-menue__abmelden form { margin: 0; }
.fk-m-menue__abmelden button { color: var(--_leise); }

.fk-m-kopf { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: clamp(18px, 1.6vw, 28px); }
.fk-m .fk-m-kopf__kicker { margin: 0 0 2px; font-size: 14px; color: var(--_leise); }
.fk-m-kopf__titel { margin: 0; font-family: var(--_titel); font-size: clamp(30px, 2.5vw, 48px); line-height: 1.15; }

.fk-m-profil { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 2vw, 36px); max-width: 760px; }
.fk-m-karte { padding: clamp(20px, 1.6vw, 32px); background: var(--_flaeche); border: 1px solid var(--_linie); border-radius: var(--_radius); }
.fk-m-karte__titel { margin: 0 0 16px; font-family: var(--_titel); font-size: clamp(19px, 1.25vw, 24px); line-height: 1.25; }
.fk-m-foto { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center; }
/* Profilfoto im Konto: Bild links, daneben Wählen/Hochladen/Entfernen */
.fk-m-foto--wahl { margin: 0 0 20px; }
.fk-m-foto__wahl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; min-width: 0; }
.fk-m-foto__formular { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.fk-m-foto__formular label { cursor: pointer; }
.fk-m-foto__wahl .fk-m-feld__hinweis { flex-basis: 100%; }
.fk-m-aufklapper { margin-top: 20px; border-top: 1px solid var(--_linie); border-bottom: 1px solid var(--_linie); }
.fk-m-aufklapper > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 50px; font-size: 15px; list-style: none; cursor: pointer; }
.fk-m-aufklapper > summary::-webkit-details-marker { display: none; }
.fk-m-aufklapper > summary .fk-m-icon { transition: transform .25s ease; }
/* Symbol und Text im Titel nebeneinander (.fk-m-icon ist ein Block) */
.fk-m-aufklapper > summary > span { display: inline-flex; align-items: center; gap: 10px; }
.fk-m-aufklapper[open] > summary .fk-m-icon { transform: rotate(180deg); }
.fk-m-aufklapper__inhalt { padding: 4px 0 18px; }

/* ---------- Verwaltung: Knöpfe, Häkchen, Tabelle, Karten ---------- */
.fk-m-kopf__aktionen { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fk-m-knopf--zweit { color: inherit; background: transparent; border-color: var(--_linie-stark); }
.fk-m-knopf--zweit:hover { color: inherit; border-color: var(--_akzent); }
.fk-m-knopf--klein { min-height: var(--_hoehe-klein); padding: 0 14px; font-size: 14px; gap: 8px; }
.fk-m-knopf--leise { min-height: var(--_hoehe); padding: 0 4px; color: inherit; background: transparent; border-color: transparent; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.fk-m-knopf--leise:hover { color: var(--_akzent); background: transparent; }
.fk-m-knopf--gefahr { color: #c4332b; background: transparent; border-color: currentColor; }
.fk-m-knopf--gefahr:hover { color: #fff; background: #c4332b; border-color: #c4332b; }
.fk-m-auswahl { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6.5 9.5 5.5 5.5 5.5-5.5' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 20px; }

.fk-m-haken-liste { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.fk-m-haken-liste > legend { margin-bottom: 8px; padding: 0; }
.fk-m-haken { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 15px; line-height: 1.4; cursor: pointer; }
.fk-m-haken input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--_akzent); cursor: pointer; }
.fk-m-haken input:disabled, .fk-m-haken input:disabled + span { cursor: not-allowed; }
.fk-m-haken small { display: block; font-size: 13px; color: var(--_leise); }

.fk-m-filter { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; gap: 12px; align-items: end; margin: 0 0 20px; }
.fk-m-einladen { margin: 0 0 20px; }
.fk-m-einladen > summary { display: flex; align-items: center; gap: 10px; margin: 0; list-style: none; cursor: pointer; }
.fk-m-einladen > summary::-webkit-details-marker { display: none; }
.fk-m-einladen[open] > summary { margin-bottom: 10px; }
.fk-m-einladen > .fk-m-feld__hinweis { margin-bottom: 16px; }

/* position: relative - unsichtbare Vorlesetexte (absolut) bleiben im Scroll-Kasten statt die Seite zu verbreitern. */
.fk-m-tabelle-huelle { position: relative; overflow-x: auto; }
.fk-m-tabelle { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.4; }
.fk-m-tabelle__unterschrift { caption-side: top; padding: 0 0 10px; text-align: left; font-size: 14px; color: var(--_leise); }
.fk-m-tabelle th { height: 44px; padding: 6px 14px; text-align: left; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--_leise); border-bottom: 1px solid var(--_linie-stark); white-space: nowrap; }
.fk-m-tabelle td { height: 56px; padding: 6px 14px; vertical-align: middle; border-bottom: 1px solid var(--_linie); }
.fk-m-person-link { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.fk-m-person-link small { display: block; font-size: 13px; color: var(--_leise); }
.fk-m-person-link:hover .fk-m-tabelle__name { text-decoration: underline; text-underline-offset: 3px; }
.fk-m-tabelle__name { font-weight: 700; }
.fk-m-avatar--klein { width: 32px; height: 32px; font-size: 12px; flex: 0 0 auto; }
.fk-m-zahl { font-variant-numeric: tabular-nums; }
.fk-m-leise { color: var(--_leise); }
.fk-m-leer { padding: 24px; text-align: center; color: var(--_leise); background: var(--_flaeche); border-radius: var(--_radius); }

.fk-m-status, .fk-m-rolle { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; padding: 1px 9px; font-size: 13px; font-weight: 700; white-space: nowrap; border: 1px solid currentColor; border-radius: var(--_radius); }
.fk-m-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.fk-m-status--aktiv { color: #2f8a4f; }
.fk-m-status--offen { color: var(--_leise); }
.fk-m-status--gesperrt { color: #c4332b; }
.fk-m-rolle { margin: 2px 4px 2px 0; font-weight: 400; border-color: var(--_linie-stark); }
.fk-m-rolle--admin { font-weight: 700; border-color: var(--_akzent); }

.fk-m-spalten { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2vw, 36px); align-items: start; margin-top: clamp(20px, 2vw, 36px); }
.fk-m-spalten:first-child, .fk-m-hinweis + .fk-m-spalten { margin-top: 0; }
.fk-m-stapel { display: grid; gap: clamp(20px, 2vw, 36px); }
/* Breite Tabellen scrollen in ihrer Hülle - kein Kasten im Stapel wird breiter als die Seite. */
.fk-m-stapel > * { min-width: 0; }
.fk-m-daten { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 18px; margin: 0; font-size: 15px; }
.fk-m-daten dt { color: var(--_leise); }
.fk-m-daten dd { margin: 0; overflow-wrap: anywhere; }
.fk-m-daten--untereinander { grid-template-columns: minmax(0, 1fr); gap: 2px; }
.fk-m-daten--untereinander dd { margin-bottom: 10px; color: var(--_leise); }
.fk-m-daten--untereinander dt { color: inherit; font-weight: 700; }
.fk-m-zeile { display: grid; gap: 10px; justify-items: start; margin: 0; }
.fk-m-zeile + .fk-m-zeile { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--_linie); }
.fk-m-unsichtbar { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.fk-m-rollen { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.fk-m-rolle-karte { display: grid; gap: 12px; align-content: start; min-width: 0; margin: 0; }
.fk-m-rolle-karte .fk-m-knopf--leise { justify-self: start; }
.fk-m-rolle-karte--admin { box-shadow: inset 0 3px 0 var(--_akzent); }
.fk-m-aktionen--leiste { position: sticky; bottom: 0; z-index: 2; margin: 16px 0 0; padding: 12px 0; background: linear-gradient(to top, Canvas 70%, transparent); }
@media (max-width: 1180px) {
  .fk-m-spalten { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .fk-m-filter { grid-template-columns: minmax(0, 1fr); }
  .fk-m-filter .fk-m-knopf { justify-self: start; }
  /* Tabelle wird zur Liste: Name oben, Rest darunter */
  .fk-m-tabelle--mitglieder thead { display: none; }
  .fk-m-tabelle--mitglieder tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 12px 0; border-bottom: 1px solid var(--_linie); }
  .fk-m-tabelle--mitglieder td { height: auto; padding: 0; border: 0; }
  .fk-m-tabelle--mitglieder td:first-child { grid-column: 1 / -1; }
  .fk-m-tabelle--mitglieder td:last-child { display: none; }
}

/* ---------- Lizenzen: Reiter, Karten, Serien, Saisons, Produkte ---------- */
.fk-m-reiter { display: flex; gap: 4px; margin: 0 0 20px; overflow-x: auto; overflow-y: hidden; border-bottom: 1px solid var(--_linie-stark); }
.fk-m-reiter__knopf { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 48px; padding: 10px 18px; color: var(--_leise); text-decoration: none; white-space: nowrap; }
.fk-m-reiter__knopf::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--_akzent); transform: scaleX(0); transition: transform .25s ease; }
.fk-m-reiter__knopf:hover, .fk-m-reiter__knopf[aria-current="page"] { color: inherit; }
.fk-m-reiter__knopf[aria-current="page"]::after { transform: scaleX(1); }

.fk-m-lizenzen { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 16px; margin: 0 0 20px; }
.fk-m-lizenz { display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--_flaeche); border: 1px solid var(--_linie); border-radius: var(--_radius); }
.fk-m-lizenz__band { min-height: 92px; padding: 14px 16px; color: var(--fk-m-serie-text, #1a1a1a); background: var(--fk-m-serie, var(--_akzent)); }
.fk-m-lizenz__band p { margin: 0; }
.fk-m-lizenz__serie { font-family: var(--_titel); font-size: 22px; font-weight: 700; line-height: 1.05; }
.fk-m-lizenz__art { margin-top: 2px !important; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.fk-m-lizenz__inhalt { display: grid; gap: 12px; align-content: start; padding: 16px; }
.fk-m-lizenz__inhalt > p { margin: 0; }
.fk-m-lizenz--abgelaufen .fk-m-lizenz__band, .fk-m-lizenz--gesperrt .fk-m-lizenz__band { filter: grayscale(1) brightness(.65); color: #fff; }
.fk-m-lizenzen__info { margin-top: 4px; }
.fk-m-lizenz { grid-template-rows: auto 1fr auto; }
/* Lizenzkarte als Bild (Scheckkarte 85,6 × 54 mm, Ecken 3,18 mm) - Gestaltung drumherum macht die Website. */
.fk-m-lizenz__karte { display: block; width: calc(100% - 32px); max-width: 428px; height: auto; margin: 0 16px 12px; border-radius: 3.7% / 5.9%; box-shadow: 0 4px 16px rgba(0, 0, 0, .25); }
.fk-m-lizenz__fuss { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 16px; }
.fk-m-lizenzen__info p { margin: 0; }

.fk-m-serien { display: grid; gap: 12px; }
.fk-m-serie-zeile { display: grid; grid-template-columns: 40px minmax(0, 1fr) 110px 90px auto 200px; gap: 12px; align-items: end; margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--_linie); }
.fk-m-serie-zeile__farbe { display: grid; place-items: center; width: 40px; height: var(--_hoehe); background: var(--fk-m-serie, transparent); border-radius: var(--_radius); }
.fk-m-serie-zeile__farbe--neu { border: 1px dashed var(--_linie-stark); color: var(--_leise); }
.fk-m-serie-zeile .fk-m-aktionen { flex-wrap: nowrap; }
.fk-m-serie-zeile__livery { align-self: end; min-height: var(--_hoehe); align-items: center; white-space: nowrap; }
.fk-m-eingabe[type="color"] { padding: 4px; cursor: pointer; }

.fk-m-saison > summary { gap: 16px; }
.fk-m-saison__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.fk-m-saison__serie { display: inline-grid; place-items: center; min-width: 52px; min-height: 26px; padding: 0 8px; font-size: 13px; font-weight: 700; color: var(--fk-m-serie-text, #1a1a1a); background: var(--fk-m-serie, var(--_akzent)); border-radius: var(--_radius); }
.fk-m-saison__name { font-weight: 700; }
.fk-m-saison__daten, .fk-m-saison__zahl { font-size: 14px; color: var(--_leise); }
.fk-m-saison-neu > summary span { display: inline-flex; align-items: center; gap: 8px; }

.fk-m-produkte { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 16px; align-items: start; }
.fk-m-produkt { display: grid; gap: 16px; margin: 0; }
.fk-m-produkt .fk-m-karte__titel { display: flex; align-items: center; gap: 8px; margin: 0; }
.fk-m-produkt--aus { opacity: .72; }
.fk-m-textfeld { min-height: 70px; resize: vertical; }
.fk-m-von-bis { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: center; }
.fk-m-haken-reihe { display: flex; flex-wrap: wrap; gap: 10px 22px; }
/* Teamgröße nur bei Team-Lizenz (ohne :has bleibt sie einfach sichtbar) */
.fk-m-produkt:not(:has(option[value="team"]:checked)) .fk-m-team-groesse { display: none; }

@media (max-width: 760px) {
  .fk-m-serie-zeile { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  /* Name neben der Farbfläche, darunter Kürzel | Farbe, dann Livery und Knöpfe (nicht das Kürzel in die 40-px-Spalte) */
  .fk-m-serie-zeile > .fk-m-feld:not(.fk-m-feld--klein) { grid-column: 2 / -1; }
  .fk-m-serie-zeile > .fk-m-feld + .fk-m-feld--klein { grid-column: 1 / 3; }
  .fk-m-serie-zeile > .fk-m-feld--klein + .fk-m-feld--klein { grid-column: 3; }
  .fk-m-serie-zeile .fk-m-serie-zeile__livery { grid-column: 1 / -1; min-height: 0; }
  .fk-m-serie-zeile .fk-m-aktionen { grid-column: 1 / -1; justify-content: flex-start; }
}

/* ---------- Nachweis (Students): hochladen und prüfen ---------- */
.fk-m-lizenz__text { margin: 0; font-size: 14px; line-height: 1.45; color: var(--_leise); }
.fk-m-nachweis { display: grid; gap: 10px; }
.fk-m-upload {
  position: relative; display: grid; justify-items: center; gap: 6px; padding: 18px 14px; text-align: center; cursor: pointer;
  border: 1.5px dashed var(--_linie-stark); border-radius: var(--_radius); background: var(--_feld); transition: border-color .2s ease, background-color .2s ease;
}
.fk-m-upload:hover, .fk-m-upload:focus-within, .fk-m-upload.ist-gewaehlt { border-color: var(--_akzent); background: color-mix(in srgb, var(--_akzent) 6%, transparent); }
.fk-m-upload > .fk-m-icon { width: 26px; height: 26px; color: var(--_akzent); }
.fk-m-upload__titel { font-family: var(--_titel); font-size: 17px; line-height: 1.3; }
.fk-m-upload__text { font-size: 13px; color: var(--_leise); overflow-wrap: anywhere; }
/* Unsichtbar, aber fokussierbar und für „required“ prüfbar. */
.fk-m-upload input[type="file"] { position: absolute; inset: auto 0 0 0; width: 1px; height: 1px; margin: auto; opacity: 0; }
.fk-m-nachweis > .fk-m-knopf { justify-self: start; }

.fk-m-nachweise { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 16px; align-items: start; margin-top: 16px; }
.fk-m-nachweis-eintrag { display: grid; gap: 16px; margin: 0; }
.fk-m-nachweis-eintrag__kopf { display: flex; align-items: center; gap: 14px; }
.fk-m-nachweis-eintrag__kopf .fk-m-karte__titel { margin: 0; }
.fk-m-nachweis-eintrag__kopf p { margin: 2px 0 0; overflow-wrap: anywhere; }
.fk-m-nachweis-eintrag .fk-m-aktionen > form { margin: 0; }

/* ---------- Team-Lizenz (Endu): Team und Fahrer ---------- */
.fk-m-bedingt { display: grid; gap: 14px; min-width: 0; margin: 16px 0 0; padding: 16px; border: 0; border-left: 3px solid var(--_akzent); background: var(--_flaeche); }
.fk-m-bedingt__titel { float: left; width: 100%; margin: 0 0 4px; padding: 0; font-family: var(--_titel); font-size: 16px; }
/* Nur bei gewähltem Team-Produkt (ohne :has bleibt der Block einfach sichtbar) */
.fk-m-kauf:not(:has(input[data-fk-team]:checked)) .fk-m-team { display: none; }
.fk-m-fahrer-liste { display: grid; gap: 8px; }
.fk-m-fahrer-zeile { display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: end; }
.fk-m-fahrer-zeile[hidden] { display: none; }
.fk-m-fahrer-zeile__nr { display: grid; place-items: center; height: 46px; font-family: var(--_titel); font-weight: 700; color: var(--_leise); }
.fk-m-fahrer-zeile input[readonly] { color: var(--_leise); }
.fk-m-fahrer-plus { justify-self: start; }
.fk-m-team-teil { display: grid; gap: 8px; }
.fk-m-team-teil > .fk-m-feld__label { margin: 0; }
.fk-m-team-fahrer { margin: 0; padding-left: 20px; font-size: 15px; }
.fk-m-team-fahrer li + li { margin-top: 2px; }
/* Breite Tabelle scrollt in ihrer Hülle - die Karte wächst nicht mit. */
.fk-m-teams { min-width: 0; }
.fk-m-teams__kopf { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
@media (max-width: 560px) {
  .fk-m-fahrer-zeile, .fk-m-fahrer-zeile--schmal { grid-template-columns: 24px minmax(0, 1fr); }
  .fk-m-fahrer-zeile > .fk-m-feld:nth-of-type(2) { grid-column: 2; }
}
/* Auf der schmalen Lizenzkarte immer untereinander */
.fk-m-fahrer-zeile--schmal { grid-template-columns: 24px minmax(0, 1fr); }
.fk-m-fahrer-zeile--schmal > .fk-m-feld:nth-of-type(2) { grid-column: 2; }

/* ---------- Team-Bereich: Text-Vorlagen ---------- */
.fk-m-filterleiste { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.fk-m-filter__knopf { display: inline-flex; align-items: center; min-height: var(--_hoehe-klein); padding: 0 14px; font-size: 14px; color: inherit; text-decoration: none; border: 1px solid var(--_linie-stark); border-radius: var(--_radius); }
.fk-m-filter__knopf:hover { border-color: currentColor; }
.fk-m-filter__knopf[aria-current="true"] { font-weight: 700; color: var(--_akzent-text); background: var(--_akzent); border-color: var(--_akzent); }
.fk-m-filter__knopf span { margin-left: 4px; font-size: 12px; opacity: .8; }
.fk-m-vorlagen { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 14px; align-items: start; }
.fk-m-vorlage { display: grid; grid-template-rows: auto 1fr auto; gap: 12px; margin: 0; }
.fk-m-vorlage__kopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.fk-m-vorlage__titel { margin: 0; font-family: var(--_titel); font-size: 18px; line-height: 1.25; }
.fk-m-vorlage__ort { margin: 4px 0 0; font-size: 13px; color: var(--_leise); }
.fk-m-vorlage__text { margin: 0; padding: 12px 14px; font-size: 14px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; background: var(--_feld); border: 1px solid var(--_linie); border-radius: var(--_radius); }
.fk-m-vorlage__text mark { padding: 0 2px; color: inherit; background: color-mix(in srgb, var(--_akzent) 22%, transparent); }
.fk-m-vorlage__fuss { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; color: var(--_leise); }
.fk-m-vorlage__eingabe { min-height: 240px; font-family: inherit; line-height: 1.55; }

/* ---------- Team-Bereich: Briefing-Checklisten ---------- */
.fk-m-reiter__knopf { gap: 8px; }
.fk-m-reiter__punkt { width: 10px; height: 10px; background: var(--fk-m-serie, currentColor); border-radius: 2px; }
.fk-m-briefing__leiste { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 20px; margin: 0 0 16px; }
.fk-m-briefing__termin { margin: 0; font-size: 14px; color: var(--_leise); }
.fk-m-briefing__stand { display: flex; align-items: center; gap: 14px; min-width: min(100%, 320px); font-size: 14px; }
.fk-m-fortschritt { flex: 1; height: 8px; overflow: hidden; background: var(--_linie); border-radius: 4px; }
.fk-m-fortschritt__balken { height: 100%; background: var(--_akzent); transition: width .3s ease; }
.fk-m-fortschritt--fertig .fk-m-fortschritt__balken { background: #2f8a4f; }
.fk-m-briefing form { display: grid; gap: 14px; margin: 0; }
.fk-m-abschnitt__kopf { display: flex; flex: 1; align-items: center; gap: 12px; }
.fk-m-abschnitt__titel { font-family: var(--_titel); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.fk-m-abschnitt__zaehler { margin-left: auto; font-size: 13px; font-weight: 700; }
.fk-m-tabelle--checkliste { table-layout: fixed; }
.fk-m-tabelle--checkliste td { height: 46px; vertical-align: top; padding-top: 12px; }
.fk-m-tabelle--checkliste .fk-m-briefing__pos { width: 88px; }
.fk-m-tabelle--checkliste th:nth-child(2) { width: 32%; }
.fk-m-tabelle--checkliste th:nth-child(3) { width: 124px; }
.fk-m-tabelle--checkliste .fk-m-briefing__haken { width: 104px; text-align: center; }
.fk-m-fzg-nr { display: inline-grid; place-items: center; min-width: 42px; height: 26px; padding: 0 6px; font-weight: 700; border: 1px solid currentColor; border-radius: var(--_radius); }
.fk-m-haken-zelle { display: inline-grid; place-items: center; width: 44px; height: 32px; cursor: pointer; }
.fk-m-haken-zelle input { width: 20px; height: 20px; margin: 0; accent-color: var(--_akzent); cursor: pointer; }
.fk-m-tabelle--checkliste tr:has(input:checked) td:not(.fk-m-briefing__haken) { opacity: .6; }
.fk-m-tabelle--checkliste tr:has(input:checked) .fk-m-briefing__punkt { text-decoration: line-through; }
.fk-m-formular--3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.fk-m-tabelle--briefing-form { min-width: 860px; }
.fk-m-tabelle--briefing-form td { height: auto; padding: 6px; vertical-align: top; }
.fk-m-tabelle--briefing-form th:nth-child(1) { width: 70px; }
.fk-m-tabelle--briefing-form th:nth-child(2) { width: 160px; }
.fk-m-tabelle--briefing-form th:nth-child(4) { width: 90px; }
.fk-m-tabelle--briefing-form th:nth-child(6) { width: 70px; text-align: center; }
.fk-m-tabelle--briefing-form .fk-m-briefing__info-eingabe { min-height: 46px; }
@media (max-width: 700px) {
  .fk-m-tabelle--checkliste thead { display: none; }
  .fk-m-tabelle--checkliste, .fk-m-tabelle--checkliste tbody { display: block; }
  .fk-m-tabelle--checkliste tr { display: grid; grid-template-columns: 36px minmax(0, 1fr) 52px; padding: 8px 0; border-bottom: 1px solid var(--_linie); }
  .fk-m-tabelle--checkliste td { height: auto; padding: 3px 4px; border: 0; }
  .fk-m-tabelle--checkliste td.fk-m-briefing__pos { grid-row: span 3; width: auto; }
  .fk-m-tabelle--checkliste td.fk-m-briefing__haken { grid-column: 3; grid-row: 1 / span 3; width: auto; align-self: center; }
  .fk-m-tabelle--checkliste td.fk-m-briefing__punkt, .fk-m-tabelle--checkliste td.fk-m-briefing__fzg, .fk-m-tabelle--checkliste td.fk-m-briefing__info { grid-column: 2; }
  .fk-m-tabelle--checkliste td.fk-m-briefing__info { font-size: 14px; color: var(--_leise); }
}

/* ---------- Team-Bereich: Dateien ---------- */
.fk-m-dateien { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: clamp(16px, 2vw, 32px); align-items: start; }
.fk-m-baum { padding: 14px; background: var(--_flaeche); border: 1px solid var(--_linie); border-radius: var(--_radius); }
.fk-m-baum__titel { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--_leise); }
.fk-m-baum ul { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.fk-m-baum ul ul { margin: 2px 0 4px 18px; }
.fk-m-baum a { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 4px 8px; color: inherit; text-decoration: none; border-radius: var(--_radius); }
.fk-m-baum a:hover { background: var(--_feld); }
.fk-m-baum a[aria-current="page"] { font-weight: 700; color: var(--_akzent-text); background: var(--_akzent); }
.fk-m-baum__zahl { margin-left: auto; font-size: 12px; opacity: .75; }
.fk-m-ordner { display: grid; gap: 14px; min-width: 0; }
.fk-m-ordner__kopf { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 8px 16px; }
.fk-m-ordner__kopf .fk-m-karte__titel { margin: 0; }
.fk-m-ordner__rechts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.fk-m-pfad { margin: 0 0 4px; font-size: 13px; color: var(--_leise); }
.fk-m-upload--kompakt { grid-template-columns: auto minmax(0, 1fr) auto; justify-items: start; align-items: center; text-align: left; padding: 14px 16px; gap: 4px 14px; }
.fk-m-upload--kompakt > .fk-m-icon { grid-row: span 2; }
.fk-m-upload--kompakt .fk-m-knopf { grid-column: 3; grid-row: 1 / span 2; }
.fk-m-upload.ist-drueber { border-color: var(--_akzent); }
.fk-m-ladeliste { display: grid; gap: 10px; }
.fk-m-ladeliste:empty { display: none; }
.fk-m-ladung { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; align-items: center; padding: 12px 14px; background: var(--_flaeche); border: 1px solid var(--_linie); border-radius: var(--_radius); }
.fk-m-ladung__name { font-weight: 700; overflow-wrap: anywhere; }
.fk-m-ladung__knoepfe { display: flex; gap: 6px; }
.fk-m-ladung .fk-m-fortschritt { grid-column: 1 / -1; }
.fk-m-ladung__meta { grid-column: 1 / -1; font-size: 13px; color: var(--_leise); }
.fk-m-ladung.ist-fehler .fk-m-ladung__meta { color: #c4332b; }
.fk-m-fortschritt--pausiert .fk-m-fortschritt__balken { background: repeating-linear-gradient(-45deg, #9a9a9a 0 6px, #7a7a7a 6px 12px); }
.fk-m-tabelle--dateien .fk-m-datei { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.fk-m-tabelle--dateien .fk-m-datei > span { display: grid; min-width: 0; }
/* Dateiname einzeilig mit „…“ statt am Bindestrich umzubrechen - der volle Name steht im Tooltip (title) */
.fk-m-tabelle--dateien .fk-m-datei strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fk-m-tabelle--dateien td:first-child { min-width: 220px; }
.fk-m-tabelle--dateien td:not(:first-child), .fk-m-tabelle--dateien th { white-space: nowrap; }
.fk-m-tabelle--dateien .fk-m-datei:hover strong { text-decoration: underline; text-underline-offset: 3px; }
/* Handy: jede Datei als Zeile - Name über die volle Breite (darf umbrechen), darunter Größe · Löschdatum · Knöpfe */
@media (max-width: 760px) {
  .fk-m-tabelle--dateien thead { display: none; }
  .fk-m-tabelle--dateien, .fk-m-tabelle--dateien tbody { display: block; }
  .fk-m-tabelle--dateien tr { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 6px 12px; padding: 12px 0; border-bottom: 1px solid var(--_linie); }
  .fk-m-tabelle--dateien td { height: auto; min-width: 0; padding: 0; border: 0; text-align: left; font-size: 14px; }
  .fk-m-tabelle--dateien td:first-child { grid-column: 1 / -1; min-width: 0; font-size: 15px; }
  .fk-m-tabelle--dateien .fk-m-datei strong { white-space: normal; overflow-wrap: anywhere; }
  .fk-m-tabelle--dateien td[data-titel]::before { content: attr(data-titel) " "; color: var(--_leise); }
}
.fk-m-rechts { text-align: right; }
.fk-m-aktionen--eng { justify-content: flex-end; flex-wrap: nowrap; gap: 6px; }
.fk-m-aktionen--eng form { margin: 0; }
.fk-m-tabelle--rechte td { text-align: center; }
@media (max-width: 860px) {
  .fk-m-dateien { grid-template-columns: minmax(0, 1fr); }
  .fk-m-upload--kompakt { grid-template-columns: auto minmax(0, 1fr); }
  .fk-m-upload--kompakt .fk-m-knopf { grid-column: 1 / -1; grid-row: auto; justify-self: start; }
}

/* ---------- Lizenz kaufen ---------- */
.fk-m-kauf-raster { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: clamp(20px, 2vw, 36px); align-items: start; }
.fk-m-kauf { display: grid; gap: 28px; margin: 0; }
.fk-m-kauf section { display: grid; gap: 14px; }
.fk-m-schritte { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; counter-reset: schritt; }
.fk-m-schritte li { counter-increment: schritt; display: flex; align-items: center; gap: 8px; padding: 8px 0 0; font-size: 13px; color: var(--_leise); border-top: 3px solid var(--_linie-stark); }
.fk-m-schritte li::before { content: counter(schritt); display: grid; place-items: center; width: 22px; height: 22px; font-size: 12px; font-weight: 700; border: 1px solid currentColor; }
.fk-m-schritt { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--_titel); font-size: clamp(20px, 1.5vw, 26px); line-height: 1.2; }
.fk-m-schritt__nr { display: grid; place-items: center; flex: 0 0 auto; width: 28px; height: 28px; font-size: 15px; color: var(--_akzent-text); background: var(--_akzent); border-radius: var(--_radius); }
.fk-m-wahl-raster { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.fk-m-wahl { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 4px 12px; align-content: start; padding: 16px 16px 16px 20px; background: var(--_flaeche); border: 1px solid var(--_linie-stark); border-radius: var(--_radius); cursor: pointer; overflow: hidden; }
.fk-m-wahl::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--fk-m-serie, var(--_akzent)); }
.fk-m-wahl input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--_akzent); }
.fk-m-wahl:has(input:checked) { border-color: var(--_akzent); box-shadow: inset 0 0 0 1px var(--_akzent); }
.fk-m-wahl__titel { font-weight: 700; }
.fk-m-wahl__preis, .fk-m-wahl__text { grid-column: 2; }
.fk-m-wahl__preis { font-size: 22px; font-weight: 700; }
/* Treue-Rabatt (E8): alter Preis durchgestrichen, kleiner und leiser */
.fk-m-wahl__alt { font-size: 0.7em; font-weight: 400; opacity: 0.6; }
.fk-m-wahl__treue { font-weight: 700; }
.fk-m-wahl__text { font-size: 13px; line-height: 1.45; color: var(--_leise); }
.fk-m-segment { justify-self: start; display: inline-grid; grid-auto-flow: column; grid-auto-columns: minmax(84px, auto); border: 1px solid var(--_linie-stark); border-radius: var(--_radius); overflow: hidden; }
.fk-m-segment label { position: relative; display: grid; place-items: center; min-height: var(--_hoehe); padding: 0 16px; cursor: pointer; }
.fk-m-segment label + label { border-left: 1px solid var(--_linie-stark); }
.fk-m-segment input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.fk-m-segment label:has(input:checked) { font-weight: 700; color: var(--_akzent-text); background: var(--_akzent); }
.fk-m-segment label:has(input:focus-visible) { outline: 2px solid var(--_akzent); outline-offset: 2px; }
.fk-m-alter, .fk-m-eltern { min-width: 0; margin: 0; padding: 0; border: 0; }
.fk-m-eltern { display: grid; gap: 10px; padding: 16px; background: var(--_flaeche); border-left: 3px solid var(--_akzent); }
/* Eltern-Felder nur bei „Ja, unter 18“ (ohne :has bleiben sie sichtbar - der Server prüft ohnehin) */
.fk-m-kauf:not(:has(input[name="u18"][value="ja"]:checked)) .fk-m-eltern { display: none; }
.fk-m-unterschrift { font-family: "Segoe Script", "Brush Script MT", cursive; font-size: 20px; }
.fk-m-aktionen--zwischen { justify-content: space-between; }
.fk-m-bestellung { position: sticky; top: calc(var(--fk-m-oben, 0px) + 20px); display: grid; gap: 10px; }
.fk-m-bestellung p { margin: 0; }
.fk-m-bestellung__zeile { padding-bottom: 10px; border-bottom: 1px solid var(--_linie); font-size: 15px; }
.fk-m-bestellung__gesamt { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.fk-m-bestellung__gesamt strong { font-size: 30px; line-height: 1.1; }
.fk-m-anmelden-hinweis { margin: 18px 0 0; }
.fk-m-anmelden-hinweis p { margin: 0; }
@media (max-width: 1000px) {
  .fk-m-kauf-raster { grid-template-columns: minmax(0, 1fr); }
  .fk-m-bestellung { position: static; order: -1; }
}
@media (max-width: 560px) {
  .fk-m-schritte li { font-size: 0; gap: 0; }
}

/* ---------- Lizenzen übernehmen ---------- */
.fk-m-import-text { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 13px; white-space: pre; overflow-x: auto; }
.fk-m-liste { margin: 6px 0 0; padding-left: 18px; list-style: disc; }
.fk-m-liste li + li { margin-top: 2px; }

/* Ohne Rahmen der Website (noch nie veröffentlicht) */
.fk-m-neutral { margin: 0; font: 16px/1.5 system-ui, sans-serif; color: #1d1d1f; background: #f6f6f7; }

@media (max-width: 1000px) {
  .fk-m-raster { grid-template-columns: minmax(0, 1fr); row-gap: 24px; }
  .fk-m-leiste { gap: 14px; min-width: 0; }
  .fk-m-person { padding-bottom: 14px; }
  /* Menü wird zur waagerechten Leiste zum Wischen */
  .fk-m-menue { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; }
  .fk-m-menue__gruppe { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; }
  .fk-m-menue__gruppe ul { display: flex; gap: 6px; }
  .fk-m .fk-m-menue__titel { margin: 0; padding: 0 0 0 4px; }
  .fk-m-menue a, .fk-m-menue button { min-height: 40px; padding: 6px 12px; white-space: nowrap; border: 1px solid var(--_linie); }
  .fk-m-menue a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--_akzent); }
  .fk-m-menue__abmelden { padding: 0; border: 0; }
}
@media (max-width: 860px) {
  .fk-m-zugang { grid-template-columns: minmax(0, 1fr); }
  .fk-m-zugang__buehne { padding: 24px 20px; }
  .fk-m-zugang__buehne + .fk-m-zugang__form { border-left: 0; border-top: 1px solid var(--_linie); }
  .fk-m-zugang__form { padding: 24px 20px; }
}
@media (max-width: 640px) {
  .fk-m-formular--2 { grid-template-columns: minmax(0, 1fr); }
  .fk-m-foto { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .fk-m-knopf, .fk-m-eingabe, .fk-m-menue a, .fk-m-aufklapper > summary .fk-m-icon { transition: none; }
}

/* Verwaltung › Warteliste (E8): Bearbeiten und Löschen nebeneinander in der letzten Spalte */
.fk-m-tabelle__aktionen { white-space: nowrap; text-align: right; }
.fk-m-tabelle__aktionen form { display: inline; }
.fk-m-tabelle__aktionen > * + * { margin-left: 6px; }

/* Verwaltung › Team-Seite (E8): Karte mit kleiner Bildvorschau links */
.fk-m-teamkarte { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 20px; padding: 20px 0; border-top: 1px solid var(--_linie); }
.fk-m-teamkarte--aus { opacity: .6; }
.fk-m-teamkarte__bild { width: 96px; height: 96px; border-radius: var(--_radius); object-fit: cover; background: var(--_flaeche); }
.fk-m-teamkarte__bild--logo { object-fit: contain; padding: 12px; }
.fk-m-teamkarte__initialen { display: grid; place-items: center; font-size: 28px; font-weight: 700; color: var(--_leise); }
.fk-m-teamkarte__inhalt { display: grid; gap: 12px; min-width: 0; }
.fk-m-teamkarte__name { margin: 0; font-size: 18px; }
.fk-m-teamkarte__upload { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fk-m-teamkarte__upload label { cursor: pointer; }
/* Fußzeile je Karte: links Bild wählen/hochladen, rechts Löschen + Speichern (Speichern gehört per form= zum Formular darüber) */
.fk-m-teamkarte__fuss { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.fk-m-teamkarte__bildwahl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fk-m-teamkarte__fuss form { margin: 0; }
.fk-m .fk-m-schritte-liste { margin: 0 0 16px; padding-left: 22px; display: grid; gap: 8px; list-style: decimal; } /* Nummern auch, wenn die Website Listen zurücksetzt */
.fk-m .fk-m-schritte-liste > li { padding-left: 4px; }
.fk-m .fk-m-schritte-liste > li::marker { font-weight: 700; color: var(--_akzent); }
@media (max-width: 600px) { .fk-m-teamkarte { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Konto › „Anmeldung mit“ und Zwischenseite „Mit Google anmelden“ (E9) ---------- */
.fk-m-anbieter-liste { display: grid; gap: 0; margin: 12px 0 0; padding: 0; list-style: none; }
.fk-m-anbieter-zeile { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px 14px; padding: 12px 0; border-top: 1px solid var(--_linie); }
.fk-m-anbieter-zeile:last-child { border-bottom: 1px solid var(--_linie); }
.fk-m-anbieter-zeile form { margin: 0; }
.fk-m-anbieter-zeile__text { display: grid; min-width: 0; }
.fk-m-anbieter-zeile__text span { font-size: 14px; color: var(--_leise); overflow-wrap: anywhere; }
.fk-m-anbieter-zeile > .fk-m-feld__hinweis { margin: 0; max-width: 220px; }
.fk-m-zwischentitel { margin: 20px 0 6px; font-family: var(--_titel); font-size: 18px; line-height: 1.3; }
@media (max-width: 600px) {
  .fk-m-anbieter-zeile { grid-template-columns: auto minmax(0, 1fr); }
  .fk-m-anbieter-zeile > :last-child { grid-column: 1 / -1; justify-self: start; }
}
