/* ==========================================================================
   Übungsseite Accessibility Testing – Rahmen
   Alles in dieser Datei bis zur Marke „Beispiele“ gehört zum Rahmen der Seite
   (Navigation, Erklärtexte, Auflösungen). Die Regeln für die Beispiele selbst
   folgen danach, je Kriterium mit eigenem Präfix (k111-, k143- …).
   Elementregeln des Rahmens stehen in :where(), damit jede Klasse eines
   Beispiels sie ohne Aufwand überschreiben kann.
   ========================================================================== */

:root {
  color-scheme: light;
  --tinte: #16233a;
  --tinte-leise: #3f4a5e;
  --papier: #ffffff;
  --werkbank: #edf0f3;
  --linie: #5b6577;
  --marke: #6a1b9a;
  --marke-flaeche: #f3e9f8;
  --achtung-flaeche: #fff1c2;
  --achtung-linie: #8a5a00;
  --schrift: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --schrift-code: ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;
  --mass: 1rem;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-padding-top: 1rem; }

body {
  margin: 0;
  background: var(--werkbank);
  color: var(--tinte);
  font-family: var(--schrift);
  font-size: 1rem;
  line-height: 1.55;
}

:where(h1, h2, h3, h4, h5, h6) { line-height: 1.25; margin: 0 0 0.5em; overflow-wrap: anywhere; hyphens: auto; }
:where(p, ul, ol, dl, table, figure) { margin: 0 0 1em; }
:where(a) { color: var(--marke); text-decoration: underline; text-underline-offset: 0.15em; }
:where(a:hover) { text-decoration-thickness: 0.15em; }
:where(img, svg) { max-width: 100%; height: auto; }
:where(code, kbd) { font-family: var(--schrift-code); font-size: 0.92em; }
:where(code) { background: var(--werkbank); padding: 0.05em 0.3em; border-radius: 0.2em; overflow-wrap: anywhere; }
:where(kbd) { border: 1px solid var(--linie); border-bottom-width: 2px; border-radius: 0.25em; padding: 0 0.3em; background: var(--papier); white-space: nowrap; }
:where(button, input, select, textarea) { font: inherit; }

:where(a, button, input, select, textarea, summary, [tabindex], iframe, video, audio):focus-visible {
  outline: 3px solid var(--marke);
  outline-offset: 2px;
  box-shadow: 0 0 0 6px var(--papier);
}

.nur-screenreader {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}

/* ---------- Sprunglink, Kopf, Fuß ---------- */

.sprunglink {
  position: absolute; left: 0.5rem; top: -4rem; z-index: 10;
  background: var(--papier); color: var(--marke); padding: 0.6rem 1rem;
  border: 2px solid var(--marke); font-weight: 600;
}
.sprunglink:focus { top: 0.5rem; }

.seitenkopf { background: var(--tinte); color: var(--papier); }
.seitenkopf-innen { max-width: 92rem; margin: 0 auto; padding: 1rem 1.25rem; }
.seitenname { margin: 0; font-size: 1.25rem; font-weight: 700; }
.seitenzusatz { margin: 0.15rem 0 0; color: #e3c6f0; }

.seitenfuss { background: var(--tinte); color: var(--papier); padding: 1.5rem 1.25rem; }
.seitenfuss p { max-width: 70rem; margin: 0 auto 0.5rem; }

/* ---------- Gerüst und Navigation ---------- */

.geruest { max-width: 92rem; margin: 0 auto; padding: 0 1.25rem 3rem; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }

.seitennav { padding-top: 1.25rem; }
.seitennav ul { list-style: none; margin: 0; padding: 0; }
.seitennav li { margin: 0; }
.seitennav a { display: block; padding: 0.3rem 0.5rem; color: var(--tinte); text-decoration: none; border-radius: 0.2rem; }
.seitennav a:hover { background: var(--marke-flaeche); text-decoration: underline; }
.seitennav .nav-ebene1 > li > a { font-weight: 700; margin-top: 0.6rem; }
.seitennav .nav-ebene2 a { padding-left: 1rem; font-size: 0.95rem; }
.seitennav .nav-nr { font-variant-numeric: tabular-nums; font-weight: 600; margin-right: 0.3em; }

.nav-schalter {
  width: 100%; text-align: left; padding: 0.7rem 1rem; background: var(--papier);
  border: 2px solid var(--tinte); border-radius: 0.3rem; color: var(--tinte); font-weight: 700; cursor: pointer;
}
.nav-schalter::after { content: " ▾"; }
.nav-schalter[aria-expanded="true"]::after { content: " ▴"; }

@media (min-width: 64rem) {
  .geruest { grid-template-columns: 17.5rem minmax(0, 1fr); gap: 2rem; }
  .seitennav { position: sticky; top: 0; align-self: start; max-height: 100vh; overflow-y: auto; padding-bottom: 1.5rem; }
  .nav-schalter { display: none; }
  #nav-liste[hidden] { display: block; }
}

/* ---------- Hauptinhalt ---------- */

main { min-width: 0; padding-top: 1.5rem; }
main:focus { outline: none; }
main h1 { font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.4rem); max-width: 26ch; letter-spacing: -0.01em; margin-bottom: 1.25rem; }
.abschnitt { margin-bottom: 3rem; }
.abschnitt > h2 { font-size: 1.55rem; padding-bottom: 0.35rem; border-bottom: 3px solid var(--tinte); margin-bottom: 1rem; }
.abschnitt-einleitung { max-width: 70ch; }

.hinweis-kasten { background: var(--achtung-flaeche); border: 2px solid var(--achtung-linie); padding: 1rem 1.1rem; max-width: 75ch; margin-bottom: 1.25rem; }
.hinweis-kasten p:last-child { margin-bottom: 0; }
.schritte, .merkliste { max-width: 75ch; padding-left: 1.4rem; }
.schritte li, .merkliste li { margin-bottom: 0.5rem; }

.werkzeugleiste { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.rahmen-knopf {
  background: var(--papier); color: var(--tinte); border: 2px solid var(--tinte); border-radius: 0.3rem;
  padding: 0.5rem 0.9rem; min-height: 2.75rem; font-weight: 600; cursor: pointer;
}
.rahmen-knopf:hover { background: var(--marke-flaeche); }
.rahmen-knopf[aria-pressed="true"] { background: var(--tinte); color: var(--papier); }
.rahmen-status { font-weight: 600; }

/* ---------- Kriterium ---------- */

.kriterium, .komponente, .demo {
  background: var(--papier); border: 1px solid var(--linie); border-top: 0;
  padding: 1.25rem; margin-bottom: 1.75rem;
  box-shadow: inset 0 0.4rem 0 var(--tinte);
  padding-top: 1.6rem;
}
.kriterium > h3, .komponente > h3, .demo > h3 { font-size: 1.3rem; margin-bottom: 0.25rem; }
.kriterium > h3 .nr { font-variant-numeric: tabular-nums; margin-right: 0.35em; }
.meta { color: var(--tinte-leise); font-size: 0.95rem; margin-bottom: 0.9rem; }
.meta .stufe { font-weight: 700; color: var(--tinte); }
.kern { font-size: 1.08rem; max-width: 75ch; }
.pruefen { max-width: 75ch; }
.kontext { max-width: 75ch; }

.beispiele { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); margin: 1.25rem 0; align-items: start; }
.beispiele--breit { grid-template-columns: minmax(0, 1fr); }
.beispiel { min-width: 0; }
.beispiel-titel {
  display: inline-block; margin: 0; font-size: 1rem; font-weight: 700;
  background: var(--tinte); color: var(--papier); padding: 0.25rem 0.75rem;
}
.buehne {
  background: var(--papier); border: 2px dashed var(--tinte); padding: 1rem; min-width: 0;
}
.buehne > :last-child:not(dialog) { margin-bottom: 0; }
.buehne--rollt { overflow: auto; }

/* Hinweise und Steuerung der Übungsseite, die neben einem Beispiel stehen, aber nicht dazugehören */
.rahmen-steuerung {
  background: var(--marke-flaeche); border-left: 0.4rem solid var(--marke);
  padding: 0.6rem 0.8rem; margin: 0 0 0.6rem; display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center;
}
.rahmen-steuerung .rahmen-hinweis { margin: 0; flex: 1 1 14rem; font-size: 0.95rem; }
.beispiel-notiz { font-size: 0.95rem; color: var(--tinte-leise); margin: 0.5rem 0 0; }
.warnung { background: var(--achtung-flaeche); border: 2px solid var(--achtung-linie); padding: 0.7rem 0.9rem; max-width: 75ch; }
.warnung > :last-child { margin-bottom: 0; }

/* ---------- Auflösung ---------- */

.aufloesung { border: 2px solid var(--marke); background: var(--marke-flaeche); max-width: 85ch; margin-bottom: 1rem; overflow-wrap: anywhere; }
.kriterium > .aufloesung:last-child, .komponente > .aufloesung:last-child, .demo > .aufloesung:last-child { margin-bottom: 0; }
.aufloesung > summary { cursor: pointer; padding: 0.7rem 1rem; font-weight: 700; color: var(--marke); }
.aufloesung[open] > summary { border-bottom: 1px solid var(--marke); }
.aufloesung > :not(summary) { margin-left: 1rem; margin-right: 1rem; }
.aufloesung > summary + * { margin-top: 0.9rem; }
.aufloesung ul, .aufloesung ol { padding-left: 1.3rem; }
.aufloesung li { margin-bottom: 0.5rem; }
.aufloesung code { background: var(--papier); }
.aufloesung table { border-collapse: collapse; width: 100%; min-width: 34rem; background: var(--papier); overflow-wrap: normal; hyphens: manual; }
.aufloesung th, .aufloesung td { border: 1px solid var(--linie); padding: 0.35rem 0.5rem; text-align: left; vertical-align: top; }
.tabellen-huelle { overflow-x: auto; margin-bottom: 1em; }
.tabellen-huelle > table { margin-bottom: 0; }
.urteil { font-weight: 700; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

@media print {
  .seitennav, .werkzeugleiste, .sprunglink { display: none; }
  .geruest { display: block; }
}

/* ==========================================================================
   Beispiele
   ========================================================================== */

/* ---------- demo-1-button ---------- */
.dbutton-reihen { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; gap: 0.8rem; }
.dbutton-reihen li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; margin: 0; }
.dbutton-marke { font-weight: 700; font-size: 1.15rem; min-width: 1.4rem; }
.dbutton-knopf {
  display: inline-block; background: #0b57a4; color: #ffffff; border: 2px solid #0b57a4; border-radius: 0.3rem;
  padding: 0.55rem 1.1rem; font: inherit; font-weight: 600; line-height: 1.3; cursor: pointer;
  -webkit-user-select: none; user-select: none;
}
.dbutton-knopf:hover { background: #084683; border-color: #084683; }
.dbutton-ausgabe { font-weight: 600; min-height: 1.55em; }
.dbutton-danach { margin: 0 0 0.6rem; }
.dbutton-zeiten { margin: 0; }
.dbutton-reihen--allein { margin-bottom: 0; }

/* ---------- demo-2-baum ---------- */
.dbaum-liste { margin: 0 0 1rem; padding-left: 2.2rem; display: grid; gap: 1rem; }
.dbaum-liste li { margin: 0; padding-left: 0.5rem; }
.dbaum-liste li::marker { font-weight: 700; font-size: 1.2rem; }
.dbaum-lupe { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: 0; background: #1f4e5f; color: #ffffff; border: 2px solid #1f4e5f; border-radius: 0.3rem; cursor: pointer; vertical-align: middle; }
.dbaum-lupe:hover { background: #16233a; border-color: #16233a; }
.dbaum-ausgabe { margin-left: 0.5rem; }
.dbaum-feld { padding: 0.4rem 0.5rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; max-width: 100%; margin: 0 0.4rem; }
.dbaum-zusatz { color: #3f4a5e; font-size: 0.95rem; }
.dbaum-haken { width: 1.25rem; height: 1.25rem; margin: 0 0.5rem 0 0; vertical-align: middle; }
.dbaum-mehr { padding: 0.5rem 1rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font-weight: 600; cursor: pointer; }
.dbaum-mehr:hover { background: #e6eef0; }
.dbaum-filter { margin-top: 0.7rem; padding: 0.7rem 0.9rem; border-left: 0.3rem solid #1f4e5f; background: #e6eef0; }
.dbaum-filter p { margin: 0 0 0.4rem; }
.dbaum-filter p:last-child { margin-bottom: 0; }
.dbaum-zeiten { margin: 0; padding-top: 0.8rem; border-top: 1px solid #5b6577; }
.dbaum-liste img { display: block; }

/* ---------- k-1-1-1 ---------- */
@font-face { font-family: "k111-symbole"; src: url("bilder/k111-symbole.woff") format("woff"); font-display: block; }

.k111-zwischentitel { font-size: 1.1rem; margin: 0 0 0.5rem; }

/* Liste mit Symbolen */
.k111-geraete { list-style: none; margin: 0; padding: 0; }
.k111-geraete li { display: flex; align-items: center; gap: 0.6rem; padding: 0.4rem 0; border-top: 1px solid #5b6577; }

/* Raster der Stellen */
.k111-galerie { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); align-items: start; }
.k111-stelle { min-width: 0; border: 1px solid #5b6577; background: #ffffff; }
.k111-stelle-titel { margin: 0; padding: 0.35rem 0.7rem; font-size: 0.95rem; background: #edf0f3; border-bottom: 1px solid #5b6577; }
.k111-ausschnitt { padding: 0.8rem; }
.k111-ausschnitt > :last-child { margin-bottom: 0; }

/* Stelle 1 */
.k111-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1rem; border-bottom: 0.35rem solid #0b4f6c; }
.k111-logolink { display: inline-block; line-height: 0; }
.k111-kopf-text { margin: 0; font-size: 0.95rem; }

/* Stelle 2 */
.k111-suche { display: flex; align-items: flex-end; }
.k111-suche-feld { flex: 1 1 auto; min-width: 0; }
.k111-suche-feld label { display: block; font-size: 0.95rem; }
.k111-suche-feld input { width: 100%; min-height: 2.75rem; padding: 0.3rem 0.5rem; border: 2px solid #0b4f6c; border-inline-end: 0; border-radius: 0.3rem 0 0 0.3rem; background: #ffffff; color: #16233a; }
.k111-suche-knopf { flex: 0 0 auto; width: 2.75rem; height: 2.75rem; padding: 0; border: 2px solid #0b4f6c; border-radius: 0 0.3rem 0.3rem 0; background: #0b4f6c; cursor: pointer; line-height: 0; }

/* Stelle 3 */
.k111-linie { display: block; width: 100%; height: 1.5rem; margin: 0 0 1em; }

/* Stelle 4 */
.k111-figur { margin: 0; }
.k111-figur figcaption { font-weight: 700; margin-bottom: 0.4rem; }

/* Stelle 5 */
.k111-kontakt { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.k111-kontakt-text { margin: 0; }
.k111-zeile { display: block; }

/* Stelle 6 */
.k111-karte { max-width: 17.5rem; border: 1px solid #5b6577; border-radius: 0.4rem; overflow: hidden; }
.k111-karte-bild { display: block; line-height: 0; }
.k111-karte-bild:focus-visible { outline-offset: -5px; }
.k111-karte-titel { margin: 0.7rem 0.8rem 0.3rem; font-size: 1.1rem; }
.k111-karte p { margin: 0 0.8rem 0.8rem; }

/* Stelle 7, Sicherheitsabfrage */
.k111-abfrage img { display: block; margin-bottom: 0.6rem; border: 1px solid #5b6577; }
.k111-abfrage label { display: block; font-size: 0.95rem; }
.k111-abfrage input { width: 100%; max-width: 15rem; min-height: 2.75rem; padding: 0.3rem 0.5rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #ffffff; color: #16233a; letter-spacing: 0.1em; }
.k111-abfrage p { margin: 0 0 0.3rem; }
.k111-ton { display: block; width: 100%; max-width: 20rem; margin: 0 0 0.8rem; }

/* Stelle 8 */
.k111-titelbild { aspect-ratio: 1600 / 560; background: #0b4f6c url("bilder/k111-titelbild.png") center / cover no-repeat; margin-bottom: 0.8rem; }

/* Stelle 9 */
.k111-fuss { background: #0b4f6c; color: #ffffff; }
.k111-fuss p { margin: 0 0 0.5rem; }
.k111-netzwerke { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.k111-netzwerke a { display: inline-flex; padding: 0.5rem; color: #ffffff; border: 2px solid #ffffff; border-radius: 50%; }
.k111-netzwerke a:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; box-shadow: none; }
.k111-netzwerke svg { display: block; }

/* Sterne aus der Symbolschrift */
.k111-sterne { margin: 0 0 0.5rem; font-size: 1.6rem; line-height: 1; color: #8a5a00; }
.k111-symbol { font-family: "k111-symbole"; font-style: normal; font-weight: 400; }
.k111-symbol-voll::before { content: "\e001"; }
.k111-symbol-leer::before { content: "\e002"; }

/* Abschnitt mit Foto */
.k111-beratung { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-start; }
.k111-beratung img { flex: 0 1 12rem; min-width: 8rem; border-radius: 0.4rem; }
.k111-beratung div { flex: 1 1 14rem; min-width: 0; }
.k111-beratung p { margin: 0; }

/* Sonderformen */
.k111-ausstattung { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 0; font-weight: 600; }
.k111-pikto { color: #16233a; flex: 0 0 auto; }
.k111-symbollink { display: inline-flex; align-items: center; gap: 0.5rem; max-width: 100%; padding: 0.4rem 0; font-weight: 600; overflow-wrap: anywhere; }
.k111-symbollink svg { flex: 0 0 auto; }
.k111-banner { background: #1f4e5f url("bilder/k111-banner-flaeche.svg") center bottom / cover no-repeat; padding: 1.5rem 1rem; }
.k111-banner-text { margin: 0; color: #ffffff; font-size: 1.35rem; font-weight: 700; line-height: 1.3; }
.k111-auslastung img { display: block; margin-bottom: 0.7rem; border: 1px solid #5b6577; }
.k111-knopf { min-height: 2.75rem; padding: 0.4rem 0.9rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #ffffff; color: #16233a; font-weight: 600; cursor: pointer; }
.k111-knopf:hover { background: #edf0f3; }

/* Tabelle unter dem Diagramm */
.k111-tabelle { border-collapse: collapse; margin: 0.8rem 0 0; width: 100%; max-width: 18rem; }
.k111-tabelle caption { text-align: left; font-weight: 700; padding-bottom: 0.3rem; }
.k111-tabelle th, .k111-tabelle td { border: 1px solid #5b6577; padding: 0.3rem 0.5rem; text-align: left; }
.k111-tabelle td { text-align: right; font-variant-numeric: tabular-nums; }
.k111-tabelle thead th { background: #edf0f3; }

/* ---------- k-1-2-1 ---------- */
.k121-titel { font-size: 1.1rem; margin: 0 0 0.5rem; }
.k121-untertitel { font-size: 1rem; margin: 1rem 0 0.4rem; }
.k121-ton { display: block; width: 100%; max-width: 26rem; }
.k121-film { display: block; width: 100%; max-width: 40rem; height: auto; aspect-ratio: 16 / 9; background: #16233a; }
.k121-klein { font-size: 0.95rem; margin: 0.3rem 0 0.6rem; }
.k121-schritte { padding-left: 1.4rem; }
.k121-schritte li { margin-bottom: 0.35rem; }

/* ---------- k-1-2-2 ---------- */
.k122-titel { font-size: 1.1rem; margin: 0 0 0.5rem; }
.k122-film { display: block; width: 100%; max-width: 40rem; height: auto; aspect-ratio: 16 / 9; background: #16233a; }
.k122-klein { font-size: 0.95rem; margin: 0.3rem 0 0; }

/* ---------- k-1-2-3 ---------- */
.k123-titel { font-size: 1.1rem; margin: 0 0 0.5rem; }
.k123-film { display: block; width: 100%; max-width: 40rem; height: auto; aspect-ratio: 16 / 9; background: #16233a; }
.k123-klein { font-size: 0.95rem; margin: 0.3rem 0 0; }
.k123-text { margin-top: 1rem; scroll-margin-top: 1rem; }
.k123-untertitel { font-size: 1rem; margin: 0 0 0.4rem; }
.k123-ablauf { margin: 0; padding-left: 1.4rem; }
.k123-ablauf li { margin-bottom: 0.4rem; }

/* ---------- k-1-2-4 ---------- */
.k124-titel { font-size: 1.1rem; margin: 0 0 0.4rem; }
.k124-status { margin: 0 0 0.6rem; font-size: 0.95rem; }
.k124-marke { display: inline-block; margin-inline-end: 0.4rem; padding: 0.05rem 0.5rem; background: #b00020; color: #ffffff; border-radius: 0.25rem; text-transform: uppercase; letter-spacing: 0.04em; }
.k124-film { display: block; width: 100%; max-width: 40rem; height: auto; aspect-ratio: 16 / 9; background: #16233a; }

/* ---------- k-1-2-5 ---------- */
.k125-titel { font-size: 1.1rem; margin: 0 0 0.5rem; }
.k125-film { display: block; width: 100%; max-width: 40rem; height: auto; aspect-ratio: 16 / 9; background: #16233a; }
.k125-klein { font-size: 0.95rem; margin: 0.3rem 0 0; }

/* ---------- k-1-3-1 ---------- */
/* Abstand vor dem zweiten Teil */
.k131-teil { margin-top: 2rem; }

/* Titelzeilen */
.k131-gross { font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: 0 0 0.5rem; color: #1f4e5f; overflow-wrap: anywhere; hyphens: auto; }
.k131-mittel { font-size: 1.05rem; font-weight: 700; line-height: 1.25; margin: 1rem 0 0.25rem; overflow-wrap: anywhere; hyphens: auto; }
.k131-spruch { font-family: Georgia, "Times New Roman", serif; font-style: italic; font-weight: 400; font-size: 1.5rem; line-height: 1.25; margin: 0.9rem 0; color: #8a2f1b; }

/* Aufzählungen */
.k131-liste { margin: 0 0 1em; padding: 0; list-style-position: inside; }
.k131-liste--strich { list-style-type: "– "; }
.k131-verweise { margin: 0; padding-left: 1.2rem; }
.k131-verweise li { margin-bottom: 0.4rem; }
.k131-verweise a { display: inline-block; padding: 0.2rem 0; }

/* Fließtext */
.k131-text p { margin: 0 0 1.55em; }
.k131-text p:last-child { margin-bottom: 0; }
.k131-stark { font-weight: 700; }

/* Tabelle 1 und 3 */
.k131-tab { border-collapse: collapse; width: 100%; }
.k131-tab--schmal { min-width: 17rem; max-width: 34rem; }
.k131-tab--weit { min-width: 44rem; }
.k131-tab--weit thead th { white-space: nowrap; }
.k131-tab caption { text-align: left; font-weight: 700; padding: 0 0 0.4rem; }
.k131-tab th, .k131-tab td { border: 1px solid #5b6577; padding: 0.35rem 0.6rem; text-align: left; vertical-align: top; }
.k131-tab thead th, .k131-tab-oben td { background: #e3edf0; font-weight: 700; }
.k131-tab tbody th { font-weight: 700; background: #f4f7f8; }

/* Tabelle 2 */
.k131-lay { border-collapse: collapse; width: 100%; min-width: 17rem; }
.k131-lay-titel { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.k131-lay-links { width: 8.5rem; background: #1f4e5f; color: #ffffff; padding: 0.3rem 0.8rem 0.8rem; text-align: left; vertical-align: top; }
.k131-lay-kopf { padding-top: 0.8rem; font-size: 1.05rem; }
.k131-lay-rechts { padding: 0.8rem 1rem; vertical-align: top; }
.k131-lay-rechts p { margin: 0; }
.k131-lay-liste { list-style: none; margin: 0; padding: 0; }
.k131-lay-liste li { margin: 0; }
.k131-lay-liste a { display: inline-block; padding: 0.3rem 0; color: #ffffff; }

/* Formulare */
.k131-form { max-width: 26rem; margin: 0; }
.k131-frage { font-weight: 700; margin: 0 0 0.3rem; padding: 0; }
.k131-gruppe { border: 0; margin: 0; padding: 0; min-width: 0; }
.k131-wahl { display: flex; flex-wrap: wrap; gap: 0.25rem 1.75rem; }
.k131-option { display: inline-flex; align-items: center; gap: 0.45rem; min-height: 2.75rem; }
.k131-option input { width: 1.5rem; height: 1.5rem; margin: 0; }
.k131-feld { margin: 0 0 0.8rem; }
.k131-feld label { display: block; font-weight: 600; margin-bottom: 0.2rem; }
.k131-stern::after { content: " *"; }
.k131-eingabe { display: block; width: 100%; min-height: 2.75rem; padding: 0.45rem 0.55rem; border: 2px solid #3f4a5e; border-radius: 0.2rem; background: #ffffff; color: #16233a; }
.k131-sende { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #1f4e5f; border-radius: 0.2rem; background: #1f4e5f; color: #ffffff; font-weight: 600; cursor: pointer; }
.k131-sende:hover { background: #163945; }
.k131-meldung { margin: 0.6rem 0 0; min-height: 1.55em; }

/* ---------- k-1-3-2 ---------- */
.k132-titel { font-size: 1.2rem; font-weight: 700; line-height: 1.25; margin: 0 0 0.75rem; color: #1f4e5f; }
.k132-kopf { font-size: 1.02rem; font-weight: 700; line-height: 1.3; margin: 0 0 0.3rem; }

/* Reihe mit Kästen */
.k132-reihe { display: flex; flex-wrap: wrap; gap: 0.9rem; }
.k132-schritt, .k132-karte { flex: 1 1 12rem; min-width: 0; border: 1px solid #5b6577; border-top: 0.35rem solid #1f4e5f; padding: 0.7rem 0.9rem 0.9rem; background: #f4f7f8; }
.k132-schritt p { margin: 0; }
.k132-eins { order: 1; }
.k132-zwei { order: 2; }
.k132-drei { order: 3; }

/* Karten */
.k132-karte { display: flex; flex-direction: column; border-top-color: #8a2f1b; }
.k132-name { order: 1; }
.k132-text { order: 2; margin: 0 0 0.6rem; }
.k132-preis { order: 3; margin: auto 0 0; font-size: 1.2rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Zwei Spalten */
.k132-spalten { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }
.k132-beitrag { order: 1; }
.k132-kasten { order: 2; align-self: start; border: 1px solid #5b6577; background: #f4f7f8; padding: 0.8rem 1rem; }
.k132-kasten p, .k132-beitrag p:last-child { margin-bottom: 0; }
@media (min-width: 48rem) {
  .k132-spalten { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
}

/* ---------- k-1-3-3 ---------- */
.k133-titel { font-size: 1.2rem; font-weight: 700; line-height: 1.25; margin: 0 0 0.75rem; color: #1f4e5f; }
.k133-untertitel { font-size: 1.02rem; font-weight: 700; line-height: 1.3; margin: 0 0 0.3rem; }
.k133-liste { margin: 0; padding-left: 1.2rem; }

/* Angaben zur Reservierung */
.k133-daten { margin: 0 0 1rem; padding: 0.6rem 0.9rem; background: #f4f7f8; border-left: 0.35rem solid #1f4e5f; }
.k133-daten div { display: flex; flex-wrap: wrap; gap: 0 0.5rem; }
.k133-daten dt { font-weight: 700; min-width: 3.2rem; }
.k133-daten dd { margin: 0; }

/* Schaltflächen */
.k133-knoepfe { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6rem; }
.k133-knopf { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid transparent; border-radius: 0.3rem; color: #ffffff; font-weight: 600; cursor: pointer; }
.k133-knopf--grau { background: #4a5261; border-color: #4a5261; }
.k133-knopf--grau:hover { background: #343a46; }
.k133-knopf--gruen { background: #1b6b33; border-color: #1b6b33; }
.k133-knopf--gruen:hover { background: #124d24; }
.k133-meldung { margin: 0.6rem 0 0; min-height: 1.55em; }

/* ---------- k-1-3-4 ---------- */
.k134-verweis { display: inline-block; padding: 0.3rem 0; }

/* ---------- k-1-3-5 ---------- */
.k135-titel { font-size: 1.2rem; font-weight: 700; line-height: 1.25; margin: 0 0 0.75rem; color: #1f4e5f; }
.k135-form { max-width: 28rem; margin: 0; }
.k135-gruppe { border: 1px solid #5b6577; margin: 0 0 1rem; padding: 0.4rem 0.9rem 0.3rem; min-width: 0; }
.k135-gruppe legend { font-weight: 700; padding: 0 0.4rem; }
.k135-feld { margin: 0 0 0.75rem; }
.k135-feld label { display: block; font-weight: 600; margin-bottom: 0.2rem; }
.k135-eingabe { display: block; width: 100%; min-height: 2.75rem; padding: 0.45rem 0.55rem; border: 2px solid #3f4a5e; border-radius: 0.2rem; background: #ffffff; color: #16233a; }
.k135-feld--kurz .k135-eingabe { max-width: 8rem; }
.k135-sende { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #1f4e5f; border-radius: 0.2rem; background: #1f4e5f; color: #ffffff; font-weight: 600; cursor: pointer; }
.k135-sende:hover { background: #163945; }
.k135-meldung { margin: 0.6rem 0 0; min-height: 1.55em; }

/* Tabelle in der Auflösung */
.k135-tabtitel { text-align: left; font-weight: 700; padding-bottom: 0.3rem; }
.k135-tab code { white-space: nowrap; }

/* ---------- k-1-4-1 ---------- */
/* Absatz mit Links */
.k141-absatz { margin: 0; color: #000000; }
.k141-absatz--1 a { color: #0000ee; text-decoration: none; }
.k141-absatz--1 a:hover { text-decoration: underline; }
.k141-absatz--2 a { color: #0000ee; text-decoration: underline; }
.k141-absatz--3 a { color: #c2185b; text-decoration: none; }
.k141-absatz--3 a:hover, .k141-absatz--3 a:focus { text-decoration: underline; }

/* Diagramm */
.k141-bild { margin: 0; max-width: 24rem; }
.k141-bildtitel { font-weight: 700; margin-bottom: 0.4rem; }
.k141-legende { list-style: none; margin: 0 0 0.5rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem 1.25rem; }
.k141-legende li { display: flex; align-items: center; gap: 0.4rem; }
.k141-farbfeld { display: inline-block; width: 1rem; height: 1rem; }
.k141-farbfeld--1 { background: #c62828; }
.k141-farbfeld--2 { background: #2e7d32; }
.k141-farbfeld--3 { background: #a65e00; }
.k141-probe { flex: none; }
.k141-diagramm { display: block; width: 100%; height: auto; }
.k141-netz path { fill: none; stroke: #d5d9df; stroke-width: 1; }
.k141-achse { fill: none; stroke: #16233a; stroke-width: 1.5; }
.k141-zahl text { fill: #16233a; font-size: 15px; font-family: inherit; }
.k141-zahl--links text { text-anchor: end; }
.k141-zahl--unten text { text-anchor: middle; }
.k141-linie { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.k141-linie--1 { stroke: #c62828; }
.k141-linie--2 { stroke: #2e7d32; }
.k141-linie--3 { stroke: #a65e00; }
.k141-strich--2 { stroke-dasharray: 9 6; stroke-linecap: butt; }
.k141-strich--3 { stroke-dasharray: 1 6; }
.k141-punkt { stroke: #ffffff; stroke-width: 1.5; }
.k141-punkt--1 { fill: #c62828; }
.k141-punkt--2 { fill: #2e7d32; }
.k141-punkt--3 { fill: #a65e00; }

/* Formular */
.k141-formular { margin: 0; max-width: 24rem; }
.k141-formtitel { font-weight: 700; font-size: 1.1rem; line-height: 1.55; margin: 0 0 0.3rem; }
.k141-formhinweis { margin: 0 0 0.75rem; }
.k141-meldung { margin: 0; font-weight: 700; }
.k141-meldung:not(:empty) { margin: 0 0 0.75rem; padding: 0.5rem 0.7rem; border: 2px solid #16233a; }
.k141-zeile { margin: 0 0 0.85rem; }
.k141-label { display: block; margin-bottom: 0.2rem; font-weight: 600; color: #16233a; }
.k141-label--muss { color: #7a1712; }
.k141-feld { display: block; width: 100%; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k141-feld--offen { border-color: #b3261e; }
.k141-zusatz { display: flex; gap: 0.4rem; align-items: flex-start; margin: 0.3rem 0 0; color: #b3261e; font-weight: 600; }
.k141-zusatz[hidden] { display: none; }
.k141-zeichen { flex: none; margin-top: 0.3rem; fill: none; stroke: #b3261e; stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.k141-knopf { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.25rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k141-knopf:hover { background: #2c3f63; }

/* Sortierung */
.k141-wahl { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.75rem; }
.k141-wahl-name { flex: 1 1 100%; font-weight: 600; color: #16233a; }
.k141-art { min-height: 2.75rem; padding: 0.4rem 0.9rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #4a5361; font-weight: 400; cursor: pointer; }
.k141-art[aria-pressed="true"] { border-color: #b3261e; color: #b3261e; }
.k141-art--1[aria-pressed="true"] { border-bottom-width: 6px; font-weight: 700; }
.k141-treffer { margin: 0; padding-left: 1.2rem; color: #16233a; }

/* ---------- k-1-4-2 ---------- */
.k142-leer { margin: 0; color: #3f4a5e; }
.k142-seite > :last-child { margin-bottom: 0; }
.k142-kopf { margin: 0 0 0.75rem; padding: 0.4rem 0.75rem; background: #1f4e5f; color: #ffffff; font-weight: 700; }
.k142-titel { margin: 0 0 0.4rem; font-size: 1.2rem; }
.k142-ton { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin: 0 0 0.75rem; padding: 0.6rem 0.75rem; border: 1px solid #5b6577; background: #edf0f3; }
.k142-ton-name { flex: 1 1 100%; font-weight: 700; }
.k142-taste { min-height: 2.75rem; padding: 0.4rem 0.9rem; border: 2px solid #16233a; border-radius: 0.25rem; background: #ffffff; color: #16233a; font-weight: 600; cursor: pointer; }
.k142-taste:hover { background: #dfe5ec; }
.k142-regler-name { font-weight: 600; }
.k142-regler { width: 9rem; max-width: 100%; min-height: 1.75rem; margin: 0; }

/* ---------- k-1-4-3 ---------- */
/* Stellen 1 bis 3 */
.k143-ort { margin: 0 0 1.25rem; }
.k143-ort:last-child { margin-bottom: 0; }
.k143-marke { display: block; width: max-content; max-width: 100%; margin: 0 0 0.4rem; padding: 0.05rem 0.5rem; border: 2px solid #16233a; border-radius: 1rem; background: #ffffff; color: #16233a; font-size: 0.9rem; font-weight: 700; }
.k143-flaeche { padding: 0.9rem 1rem; background: #1f7a5c; color: #ffffff; }
.k143-flaeche p { margin: 0; }
.k143-flaeche a { color: #ffffff; text-decoration: underline; }
.k143-flaeche a:hover, .k143-flaeche a:focus { background: #a8d5ba; color: #ffffff; }
.k143-label { display: block; margin-bottom: 0.2rem; font-weight: 600; color: #16233a; }
.k143-eingabe { display: block; width: 100%; max-width: 24rem; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k143-eingabe::placeholder { color: #a3a3a3; opacity: 1; }
.k143-foto { display: grid; max-width: 40rem; }
.k143-foto-bild { grid-area: 1 / 1; display: block; width: 100%; height: 100%; min-height: 11rem; object-fit: cover; object-position: 45% 50%; }
.k143-foto-text { grid-area: 1 / 1; align-self: end; margin: 0; padding: 1rem 1rem 1.5rem; color: #ffffff; }
.k143-foto-zusatz { margin: 0; }
.k143-foto-zeile { margin: 0 0 0.2rem; font-size: 1.5rem; font-weight: 700; line-height: 1.2; }

/* Karte */
.k143-karte { padding: 0.25rem 0; background: #ffffff; }
.k143-karte-titel { margin: 0 0 0.3rem; font-weight: 700; font-size: 1.1rem; line-height: 1.55; color: #16233a; }
.k143-karte-text { margin: 0; }
.k143-karte-text--1 { color: #a1a7b0; }
.k143-karte-text--2 { color: #4a5361; }

/* Einzelne Zeile */
.k143-zeile { margin: 0; line-height: 1.3; background: #ffffff; }
.k143-zeile--1 { font-size: 1.5rem; font-weight: 400; color: #949494; }
.k143-zeile--2 { font-size: 1.5rem; font-weight: 400; color: #969696; }
.k143-zeile--3 { font-size: 1.125rem; font-weight: 700; color: #949494; }

/* Schaltfläche */
.k143-hinweis { margin: 0 0 0.75rem; }
.k143-taste { min-height: 2.75rem; padding: 0.5rem 1rem; border: 1px solid #d0d0d0; border-radius: 0.25rem; background: #efefef; color: #a0a0a0; font-weight: 600; }

/* Bilder */
.k143-bild { display: block; max-width: 100%; height: auto; }
.k143-bildtext { margin: 0.5rem 0 0; }

/* Verlauf */
.k143-verlauf { padding: 1.25rem 1rem; background: linear-gradient(90deg, #0b2a5b, #8ec3f0 60%); }
.k143-verlauf-titel { margin: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.25; color: #ffffff; overflow-wrap: break-word; hyphens: auto; }

/* ---------- k-1-4-4 ---------- */
/* Kleine Seite */
.k144-seite { max-width: 30rem; border: 1px solid #5b6577; background: #ffffff; color: #16233a; }
.k144-kopf { background: #1f4e5f; color: #ffffff; }
.k144-name { margin: 0; padding: 0.6rem 0.9rem 0.2rem; font-size: 1.1rem; font-weight: 700; }
.k144-leiste { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0 0.4rem; }
.k144-leiste li { margin: 0; }
.k144-leiste a { display: block; padding: 0.625rem 0.5rem; line-height: 1.5; color: #ffffff; }
.k144-inhalt { padding: 0.9rem; }
.k144-titel { margin: 0 0 0.5rem; font-size: 1.2rem; }
.k144-kasten { margin: 0 0 1rem; padding: 0.75rem; border-left: 0.3rem solid #1f4e5f; background: #edf0f3; line-height: 1.5; }
.k144-kasten p { margin: 0; }
.k144-formular { margin: 0; }
.k144-zeile { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.2rem; margin: 0 0 0.75rem; }
.k144-label { font-weight: 600; overflow-wrap: anywhere; }
.k144-feld { width: 100%; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k144-knopf { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.25rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k144-knopf:hover { background: #2c3f63; }
.k144-antwort { margin: 0.5rem 0 0; min-height: 1.5rem; }
.k144-fuss { padding: 0.6rem 0.9rem; border-top: 1px solid #5b6577; background: #edf0f3; font-size: 0.95rem; }
.k144-fuss p { margin: 0; }

/* Seite 2: Kompaktansicht */
.k144-seite--2 .k144-leiste { height: 44px; overflow: hidden; }
.k144-seite--2 .k144-kasten { height: 72px; padding: 12px 0.75rem; overflow: hidden; line-height: 24px; }
.k144-seite--2 .k144-zeile { grid-template-columns: 140px minmax(0, 1fr); align-items: center; gap: 0.5rem; overflow: hidden; }
.k144-seite--2 .k144-label { white-space: nowrap; }
.k144-seite--2 .k144-fuss p { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

@media (min-width: 80rem) {
  .k144-seite--2 .k144-leiste { height: auto; overflow: visible; }
  .k144-seite--2 .k144-kasten { height: auto; padding: 0.75rem; overflow: visible; line-height: 1.5; }
  .k144-seite--2 .k144-zeile { grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: 0.2rem; overflow: visible; }
  .k144-seite--2 .k144-label { white-space: normal; }
  .k144-seite--2 .k144-fuss p { overflow: visible; white-space: normal; }
}

/* Zettel */
.k144-zettel { width: 200px; max-width: 100%; height: 124px; overflow: hidden; padding: 10px; border: 2px solid #1f4e5f; background: #ffffff; color: #16233a; }
.k144-zettel p { margin: 0; }

/* Band */
.k144-band { margin: 0; padding: 0.75rem 1rem; background: #1f4e5f; color: #ffffff; font-size: 1.5vw; font-weight: 700; }

/* ---------- k-1-4-5 ---------- */
.k145-zeiten { width: 100%; max-width: 24rem; margin: 0; border-collapse: collapse; background: #ffffff; color: #16233a; font-family: Arial, "Liberation Sans", Helvetica, sans-serif; font-size: 1.0625rem; line-height: 1.5rem; }
.k145-zeiten caption { padding: 0.5625rem 0.8rem; background: #1f4e5f; color: #ffffff; font-size: 1.2rem; font-weight: 700; text-align: left; }
.k145-zeiten th, .k145-zeiten td { padding: 0.5625rem 0.8rem; border-bottom: 1px solid #5b6577; text-align: left; vertical-align: top; }
.k145-zeiten th { font-weight: 400; }
.k145-zeiten td { font-weight: 700; }
@media (max-width: 30rem) {
  .k145-zeiten caption, .k145-zeiten th, .k145-zeiten td { padding-left: 0.5rem; padding-right: 0.5rem; overflow-wrap: anywhere; hyphens: auto; }
}

/* ---------- k-1-4-10 ---------- */
.k1410-fragen { max-width: 75ch; padding-left: 1.4rem; }
.k1410-lesezeichen { display: inline-block; padding: 0.4rem 0.8rem; border: 2px dashed var(--marke); border-radius: 0.3rem; background: var(--papier); font-weight: 600; }

/* ---------- k-1-4-11 ---------- */
/* Stellen 4 bis 6 */
.k1411-ort { margin: 0 0 1.25rem; }
.k1411-ort:last-child { margin-bottom: 0; }
.k1411-marke { display: block; width: max-content; max-width: 100%; margin: 0 0 0.4rem; padding: 0.05rem 0.5rem; border: 2px solid #16233a; border-radius: 1rem; background: #ffffff; color: #16233a; font-size: 0.9rem; font-weight: 700; }
.k1411-label { display: block; margin-bottom: 0.2rem; font-weight: 600; color: #16233a; }
.k1411-feld { display: block; width: 100%; max-width: 22rem; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k1411-absatz { margin: 0.6rem 0 0; }
.k1411-absatz--oben { margin: 0 0 0.75rem; }
.k1411-ring:focus-visible { outline: 2px solid #8fc3f5; outline-offset: 2px; box-shadow: none; }
.k1411-reihe { display: flex; gap: 0.4rem; align-items: center; max-width: 26rem; }
.k1411-reihe .k1411-feld { flex: 1 1 auto; min-width: 0; }
.k1411-symbol { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: 0.25rem; background: #ffffff; color: #6b6b6b; cursor: pointer; }
.k1411-symbol svg { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.k1411-symbol--aus { color: #c8c8c8; cursor: default; }
.k1411-taste { min-height: 2.75rem; padding: 0.5rem 1rem; border: 1px solid #d4d4d4; border-radius: 0.25rem; background: #ededed; color: #a6a6a6; font-weight: 600; cursor: default; }
.k1411-antwort { margin: 0.5rem 0 0; min-height: 1.5rem; color: #16233a; }

/* Feld mit Linie */
.k1411-linie { display: block; width: 100%; max-width: 22rem; min-height: 2.75rem; padding: 0.4rem 0.1rem; border: 0; border-radius: 0; background: #ffffff; color: #16233a; }
.k1411-linie--1 { border-bottom: 1px solid #d0d0d0; }
.k1411-linie--2 { border-bottom: 1px solid #5b6577; }

/* Kontrollkästchen */
.k1411-gruppe { margin: 0; padding: 0; border: 0; min-width: 0; }
.k1411-gruppenname { padding: 0; margin-bottom: 0.4rem; font-weight: 600; color: #16233a; }
.k1411-wahl { display: flex; align-items: center; gap: 0.5rem; min-height: 2rem; }
.k1411-haken { appearance: none; -webkit-appearance: none; flex: none; width: 1.5rem; height: 1.5rem; margin: 0; border: 2px solid #767676; border-radius: 0.2rem; background: #ffffff; cursor: pointer; }
.k1411-haken:checked { background: #cfe3f7 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.k1411-kaestchen { flex: none; margin: 0; }
.k1411-kaestchen:focus-visible { outline: revert; outline-offset: revert; box-shadow: none; }

/* Kreisdiagramm */
.k1411-bild { margin: 0; max-width: 16rem; }
.k1411-bildtitel { font-weight: 700; margin-bottom: 0.4rem; }
.k1411-kreis { display: block; width: 100%; height: auto; }
.k1411-teil--1 { fill: #f6c177; }
.k1411-teil--2 { fill: #9ccfd8; }
.k1411-teil--3 { fill: #c4a7e7; }
.k1411-schrift text { fill: #16233a; font-size: 14px; font-family: inherit; text-anchor: middle; }

/* Schaltfläche mit Symbol und Text */
.k1411-knopf { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 2.75rem; padding: 0.4rem 1rem; border: 2px solid #16233a; border-radius: 0.25rem; background: #ffffff; color: #16233a; font-weight: 600; cursor: pointer; }
.k1411-knopf:hover { background: #edf0f3; }
.k1411-knopfbild { flex: none; fill: none; stroke: #b0b0b0; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Auswahlfeld */
.k1411-auswahl { flex: 1 1 auto; min-width: 0; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #d0d0d0; border-radius: 0.25rem; background: #ffffff; color: #a0a0a0; opacity: 1; }

/* ---------- k-1-4-12 ---------- */
.k1412-lesezeichen { display: inline-block; padding: 0.4rem 0.8rem; border: 2px dashed var(--marke); border-radius: 0.3rem; background: var(--papier); font-weight: 600; }
.k1412-weg { max-width: 75ch; margin-bottom: 0.4rem; }
.k1412-vorlage { max-width: 75ch; margin: 0 0 1em; padding: 0.6rem 0.8rem; background: var(--papier); border: 1px solid var(--linie); white-space: pre-wrap; overflow-wrap: anywhere; }
.k1412-vorlage code { background: none; padding: 0; }

.k1412-weit, .k1412-weit * { line-height: 1.5 !important; letter-spacing: 0.12em !important; word-spacing: 0.16em !important; }
.k1412-weit p { margin-bottom: 2em !important; }

.k1412-flaeche { font-family: Arial, Helvetica, "Liberation Sans", sans-serif; font-size: 1rem; line-height: 1.35; color: #1b2430; }
.k1412-nav ul { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.k1412-nav li { margin: 0; }
.k1412-nav a { display: block; box-sizing: border-box; padding: 0.55rem 0.6rem; background: #17324d; color: #ffffff; text-align: center; line-height: 1.4; }
.k1412-karten { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: flex-start; margin-bottom: 1rem; }
.k1412-karte { box-sizing: border-box; width: 11.5rem; max-width: 100%; padding: 0.6rem 0.75rem; border: 2px solid #17324d; background: #eef3f7; }
.k1412-karte h5 { margin: 0 0 0.3rem; font-size: 1.05rem; line-height: 1.3; overflow-wrap: normal; hyphens: manual; }
.k1412-karte p { margin: 0 0 0.35rem; }
.k1412-karte p:last-child { margin-bottom: 0; font-weight: 700; }
.k1412-tafel { box-sizing: border-box; width: 11.9rem; margin: 0 0 1rem; border-collapse: collapse; }
.k1412-tafel caption { padding-bottom: 0.2rem; text-align: left; font-weight: 700; }
.k1412-tafel th, .k1412-tafel td { box-sizing: border-box; padding: 0.3rem 0.2rem 0.3rem 0.4rem; border: 1px solid #17324d; text-align: left; vertical-align: top; }
.k1412-tafel th:first-child { width: 7.4rem; }
.k1412-tafel thead th { background: #eef3f7; }
.k1412-formular { width: 12.5rem; max-width: 100%; }
.k1412-beschriftung { display: block; font-weight: 700; }
.k1412-feld { display: block; box-sizing: border-box; width: 100%; min-height: 2.75rem; margin: 0 0 0.6rem; padding: 0.45rem 0.6rem; font: inherit; border: 2px solid #3b4757; border-radius: 0.25rem; background: #ffffff; color: #1b2430; }
.k1412-knopf { box-sizing: border-box; max-width: 100%; padding: 0.5rem 0.6rem; font: inherit; font-weight: 700; border: 2px solid #7a2e0e; border-radius: 0.25rem; background: #7a2e0e; color: #ffffff; cursor: pointer; }
.k1412-status { margin: 0.5rem 0 0; min-height: 1.35em; }

.k1412-flaeche--a .k1412-nav a { width: 10.5rem; height: 2.5rem; overflow: hidden; }
.k1412-flaeche--a .k1412-karte { height: 13.5rem; overflow: hidden; }
.k1412-flaeche--a .k1412-tafel { table-layout: fixed; }
.k1412-flaeche--a .k1412-tafel th, .k1412-flaeche--a .k1412-tafel td { white-space: nowrap; overflow: hidden; }
.k1412-flaeche--a .k1412-beschriftung { height: 4.05em; }
.k1412-flaeche--a .k1412-knopf { width: 11.25rem; height: 2.75rem; white-space: nowrap; overflow: hidden; }

.k1412-flaeche--b .k1412-nav a { min-width: 10.5rem; min-height: 2.5rem; }
.k1412-flaeche--b .k1412-karte { min-height: 13.5rem; }
.k1412-flaeche--b .k1412-beschriftung { min-height: 4.05em; }
.k1412-flaeche--b .k1412-knopf { min-width: 11.25rem; min-height: 2.75rem; }

.k1412-flaeche--c { padding-bottom: 5.5rem; }
.k1412-flaeche--c .k1412-knopf { display: block; width: 11.5rem; height: 3.5rem; margin-bottom: 2.5rem; background: #ffffff; color: #7a2e0e; }
.k1412-flaeche--c .k1412-karte { height: 11.5rem; background: #ffffff; }

/* ---------- k-1-4-13 ---------- */
.k1413-schritte { max-width: 75ch; padding-left: 1.4rem; }
.k1413-schritte li { margin-bottom: 0.3rem; }

.k1413-medium { color: #1b2430; }
.k1413-medium--g { min-height: 16rem; }
.k1413-medium--h { min-height: 23rem; }
.k1413-titel { margin: 0 0 0.15rem; font-size: 1rem; font-weight: 700; overflow-wrap: normal; hyphens: manual; }
.k1413-werk { margin: 0 0 0.4rem; }
.k1413-zeile { position: relative; margin: 0 0 0.5rem; }
.k1413-knopf { padding: 0.5rem 1rem; min-height: 2.75rem; font: inherit; font-weight: 600; border: 2px solid #17324d; border-radius: 0.25rem; background: #ffffff; color: #17324d; cursor: pointer; }
.k1413-knopf:hover { background: #e6edf3; }
.k1413-rueckmeldung { margin: 0 0 0.4rem; min-height: 1.55em; font-weight: 600; }
.k1413-zusatz { margin: 0; }

.k1413-tipp { position: absolute; left: 0; top: calc(100% + 0.5rem); z-index: 5; box-sizing: border-box; width: max-content; max-width: min(19rem, 100%); padding: 0.5rem 0.7rem; border-radius: 0.25rem; background: #16233a; color: #ffffff; font-size: 0.95rem; line-height: 1.4; }
.k1413-tipp::before { content: ""; position: absolute; left: 0; right: 0; top: -0.5rem; height: 0.5rem; }
.k1413-tipp[hidden] { display: none; }

.k1413-beschriftung { display: inline-block; margin: 0 0.5rem 0.25rem 0; font-weight: 600; }
.k1413-marke { display: inline-block; margin-bottom: 0.25rem; padding: 0 0.4rem; border: 2px solid #a3001b; border-radius: 0.25rem; color: #a3001b; font-size: 0.9rem; font-weight: 700; }
.k1413-marke::before { content: "! "; }
.k1413-marke[hidden] { display: none; }
.k1413-feld { display: block; box-sizing: border-box; width: 100%; max-width: 19rem; min-height: 2.75rem; padding: 0.45rem 0.6rem; font: inherit; border: 2px solid #3b4757; border-radius: 0.25rem; background: #ffffff; color: #1b2430; }
.k1413-feld[aria-invalid="true"] { border-color: #a3001b; border-width: 3px; }
.k1413-tipp--feld { background: #ffffff; color: #1b2430; border: 2px solid #a3001b; overflow-wrap: anywhere; }
.k1413-tipp--feld::before { left: -2px; right: -2px; top: calc(-0.5rem - 2px); height: calc(0.5rem + 2px); }
.k1413-platz { display: flow-root; min-height: 9rem; }
.k1413-tipp--fluss { position: relative; top: auto; display: block; margin-top: 0.5rem; background: #e6edf3; color: #1b2430; border: 1px solid #3b4757; }
.k1413-tipp--fluss::before { left: -1px; right: -1px; top: calc(-0.5rem - 1px); height: calc(0.5rem + 1px); }

.k1413-dialog { position: static; width: auto; max-width: none; margin: 0.25rem 0 0.75rem; padding: 0.75rem; border: 2px solid #17324d; background: #f1f4f7; color: #1b2430; overflow: visible; }
.k1413-dialog > p { margin: 0 0 0.6rem; }
.k1413-liste { position: absolute; left: 0; top: calc(100% + 0.75rem); z-index: 5; box-sizing: border-box; min-width: 11rem; margin: 0; padding: 0.3rem 0; list-style: none; border: 2px solid #17324d; background: #ffffff; }
.k1413-liste[hidden] { display: none; }
.k1413-liste li { margin: 0; }
.k1413-liste a { display: block; padding: 0.55rem 0.8rem; color: #17324d; }
.k1413-liste a:hover { background: #e6edf3; }

/* ---------- k-2-1-1 ---------- */
.k211-kopf { font-weight: 700; font-size: 1.1rem; margin: 0 0 0.6rem; }
.k211-anleitung { margin: 0 0 0.7rem; }
.k211-meldung { margin: 0.8rem 0 0; padding: 0.4rem 0.6rem; border-left: 0.3rem solid #3f4a5e; background: #edf0f3; color: #16233a; min-height: 2.4rem; }

/* Merkliste */
.k211-werke { list-style: none; margin: 0; padding: 0; }
.k211-werke li { display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; align-items: center; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid #5b6577; }
.k211-werk { flex: 1 1 9rem; }
.k211-merk {
  display: inline-flex; align-items: center; gap: 0.35rem; box-sizing: border-box;
  min-height: 2.5rem; padding: 0.35rem 0.8rem; margin: 0;
  font: inherit; font-weight: 600; line-height: 1.3; color: #16233a;
  background: #ffffff; border: 2px solid #16233a; border-radius: 0.3rem; cursor: pointer; user-select: none;
}
.k211-merk:hover { background: #e3ecf7; }
.k211-merk[aria-pressed="true"] { background: #16233a; color: #ffffff; }

/* Kontomenü */
.k211-leiste { min-height: 12.5rem; }
.k211-menue { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; background: #1f4e5f; }
.k211-menue > li { margin: 0; position: relative; }
.k211-menue a, .k211-oeffner {
  display: block; box-sizing: border-box; width: 100%; min-height: 2.75rem; padding: 0.6rem 0.9rem; margin: 0;
  font: inherit; line-height: 1.5; text-align: start; color: #ffffff; background: transparent; border: 0; border-radius: 0;
  text-decoration: none; cursor: pointer;
}
.k211-menue a:hover, .k211-oeffner:hover { background: #163a47; text-decoration: underline; }
.k211-unter { display: none; position: absolute; top: 100%; inset-inline-start: 0; z-index: 2; list-style: none; margin: 0; padding: 0; width: max-content; min-width: 100%; background: #1f4e5f; border-top: 2px solid #ffffff; }
.k211-unter li { margin: 0; }
.k211-menue--eins .k211-zweig:hover > .k211-unter { display: block; }
.k211-menue--zwei .k211-oeffner[aria-expanded="true"] + .k211-unter { display: block; }
@media (max-width: 30rem) {
  .k211-menue { flex-direction: column; }
  .k211-unter { position: static; width: auto; border-top: 0; padding-inline-start: 1rem; }
}

/* Leseliste */
.k211-reihe { list-style: none; margin: 0; padding: 0; counter-reset: k211platz; }
.k211-posten { counter-increment: k211platz; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.5rem; margin: 0 0 0.4rem; padding: 0.3rem 0.5rem 0.3rem 0.3rem; background: #ffffff; border: 2px solid #5b6577; border-radius: 0.3rem; }
.k211-posten::before { content: counter(k211platz) "."; min-width: 1.4rem; font-weight: 700; font-variant-numeric: tabular-nums; text-align: end; }
.k211-posten--bewegt { border-color: #16233a; background: #e3ecf7; }
.k211-griff { order: -1; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border: 1px solid #5b6577; border-radius: 0.2rem; background: #edf0f3; cursor: grab; touch-action: none; user-select: none; font-size: 1.2rem; }
.k211-name { flex: 1 1 6.5rem; min-width: 0; overflow-wrap: break-word; }
.k211-pfeile { flex: none; display: inline-flex; gap: 0.3rem; margin-inline-start: auto; }
.k211-pfeil { width: 2.25rem; height: 2.25rem; padding: 0; font: inherit; font-size: 0.9rem; color: #16233a; background: #ffffff; border: 2px solid #16233a; border-radius: 0.2rem; cursor: pointer; }
.k211-pfeil:hover { background: #e3ecf7; }

/* Benutzungsordnung */
.k211-rolle { height: 9.5rem; overflow-y: auto; padding: 0.6rem 0.8rem; border: 2px solid #5b6577; background: #f7f8fa; }
.k211-rolle p { margin: 0 0 0.7rem; }
.k211-kasten { position: relative; border: 2px solid #5b6577; background: #f7f8fa; }
.k211-sicht { height: 9.5rem; overflow: hidden; padding: 0.6rem 1.7rem 0.6rem 0.8rem; }
.k211-sicht p { margin: 0 0 0.7rem; }
.k211-spur { position: absolute; inset-block: 0; inset-inline-end: 0; width: 1.1rem; background: #dfe3e8; cursor: pointer; touch-action: none; user-select: none; }
.k211-schieber { position: absolute; inset-inline: 0.15rem; top: 0; height: 2rem; background: #5b6577; border-radius: 0.4rem; cursor: grab; }
.k211-haken { margin: 0.8rem 0 0; display: flex; gap: 0.5rem; align-items: flex-start; }
.k211-haken input { width: 1.3rem; height: 1.3rem; margin: 0.15rem 0 0; flex: none; }

/* Standortkarte */
.k211-suche { margin: 0 0 0.7rem; }
.k211-suche label { display: block; font-weight: 600; margin-bottom: 0.2rem; }
.k211-suchzeile { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.k211-suchzeile input { flex: 1 1 8rem; min-width: 0; min-height: 2.5rem; padding: 0.3rem 0.5rem; color: #16233a; background: #ffffff; border: 2px solid #5b6577; border-radius: 0.2rem; }
.k211-taste { min-height: 2.5rem; padding: 0.35rem 0.9rem; font: inherit; font-weight: 600; color: #ffffff; background: #1f4e5f; border: 2px solid #1f4e5f; border-radius: 0.3rem; cursor: pointer; }
.k211-taste:hover { background: #163a47; }
.k211-taste--klein { width: 2.5rem; padding: 0; font-size: 1.3rem; line-height: 1; }
.k211-karte { border: 2px solid #5b6577; line-height: 0; }
.k211-plan { display: block; width: 100%; height: auto; cursor: grab; touch-action: none; user-select: none; }
.k211-plan--bewegt { cursor: grabbing; }
.k211-stufen { display: flex; gap: 0.4rem; margin: 0.5rem 0 0; }
.k211-orte { margin: 0.7rem 0 0; padding-left: 1.2rem; }

/* Unterschriftenfeld */
.k211-feld { display: block; width: 100%; max-width: 35rem; height: auto; background: #ffffff; border: 2px solid #5b6577; cursor: crosshair; touch-action: none; }
.k211-knoepfe { margin: 0.6rem 0 0; }

/* ---------- k-2-1-2 ---------- */
.k212-kopf { font-weight: 700; font-size: 1.1rem; margin: 0 0 0.6rem; }
.k212-marke { display: block; font-weight: 700; margin: 0 0 0.2rem; }
.k212-hilfe { margin: 0 0 0.5rem; }
.k212-notiz { display: block; box-sizing: border-box; width: 100%; padding: 0.5rem 0.6rem; font-family: ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace; font-size: 1rem; line-height: 1.5; color: #16233a; background: #ffffff; border: 2px solid #5b6577; border-radius: 0.2rem; resize: vertical; tab-size: 2; }
.k212-notiz[readonly] { background: #edf0f3; }
.k212-zeile { margin: 0.7rem 0 0; }
.k212-taste { min-height: 2.5rem; padding: 0.35rem 0.9rem; font: inherit; font-weight: 600; color: #ffffff; background: #1f4e5f; border: 2px solid #1f4e5f; border-radius: 0.3rem; cursor: pointer; }
.k212-taste:hover { background: #163a47; }
.k212-meldung { margin: 0.7rem 0 0; min-height: 1.6rem; font-weight: 600; }

/* Dialog */
.k212-seite { display: grid; min-height: 17rem; }
.k212-grund, .k212-schleier { grid-area: 1 / 1; min-width: 0; }
.k212-grund > p { margin: 0 0 0.7rem; }
.k212-schleier { display: grid; place-items: center; padding: 0.4rem; background: rgba(22, 35, 58, 0.72); }
.k212-schleier[hidden] { display: none; }
.k212-dialog { position: relative; box-sizing: border-box; width: 100%; max-width: 22rem; padding: 3rem 0.8rem 0.8rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; }
.k212-dtitel { margin: 0 0 0.7rem; font-size: 1.05rem; overflow-wrap: break-word; hyphens: auto; }
.k212-form label { display: block; font-weight: 600; margin: 0 0 0.2rem; }
.k212-form input { display: block; box-sizing: border-box; width: 100%; min-height: 2.5rem; margin: 0 0 0.8rem; padding: 0.3rem 0.5rem; color: #16233a; background: #ffffff; border: 2px solid #5b6577; border-radius: 0.2rem; }
.k212-zu { position: absolute; inset-block-start: 0.4rem; inset-inline-end: 0.4rem; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 2.25rem; height: 2.25rem; padding: 0; font: inherit; font-size: 1.5rem; line-height: 1; color: #16233a; background: #ffffff; border: 2px solid #16233a; border-radius: 0.2rem; cursor: pointer; user-select: none; }
.k212-zu:hover { background: #e3ecf7; }

/* ---------- k-2-1-4 ---------- */
.k214-kopf { font-weight: 700; font-size: 1.1rem; margin: 0 0 0.4rem; }
.k214-kuerzel { margin: 0 0 0.7rem; }
.k214-wahl { margin: 0 0 0.8rem; padding: 0.5rem 0.8rem 0.6rem; border: 2px solid #5b6577; min-width: 0; }
.k214-wahl legend { font-weight: 700; padding: 0 0.3rem; }
.k214-wahl label { display: flex; gap: 0.5rem; align-items: flex-start; padding: 0.2rem 0; }
.k214-wahl input { width: 1.2rem; height: 1.2rem; margin: 0.2rem 0 0; flex: none; }
.k214-liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid #5b6577; }
.k214-post { display: grid; grid-template-columns: 1.2rem minmax(0, 1fr); gap: 0.3rem 0.4rem; padding: 0.6rem 0.4rem 0.6rem 0.2rem; border-bottom: 1px solid #5b6577; border-left: 0.3rem solid transparent; }
.k214-zeiger { visibility: hidden; font-size: 0.8rem; line-height: 1.9; }
.k214-post--dran { border-left-color: #16233a; background: #edf0f3; }
.k214-post--dran .k214-zeiger { visibility: visible; }
.k214-betreff { display: block; }
.k214-knoepfe { grid-column: 2; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.k214-knopf { display: inline-flex; align-items: center; gap: 0.3rem; min-height: 2.25rem; padding: 0.25rem 0.7rem; font: inherit; font-weight: 600; color: #16233a; background: #ffffff; border: 2px solid #16233a; border-radius: 0.3rem; cursor: pointer; }
.k214-knopf:hover { background: #e3ecf7; }
.k214-stern[aria-pressed="true"] { background: #16233a; color: #ffffff; }
.k214-zeile { margin: 0.8rem 0 0; }
.k214-leer { margin: 0; padding: 0.6rem 0; }
.k214-meldung { margin: 0.7rem 0 0; min-height: 1.6rem; font-weight: 600; }

/* ---------- k-2-2-1 ---------- */
.k221-form { margin: 0; }
.k221-kopf { font-weight: 700; font-size: 1.1rem; margin: 0 0 0.4rem; }
.k221-info { margin: 0 0 0.7rem; }
.k221-wahl { margin: 0 0 0.7rem; padding: 0.5rem 0.8rem 0.6rem; border: 2px solid #5b6577; min-width: 0; }
.k221-wahl legend { font-weight: 700; padding: 0 0.3rem; }
.k221-wahl label { display: flex; gap: 0.5rem; align-items: flex-start; padding: 0.25rem 0; }
.k221-wahl input { width: 1.2rem; height: 1.2rem; margin: 0.2rem 0 0; flex: none; }
.k221-warnung p { margin: 0 0 0.5rem; padding: 0.6rem 0.8rem; background: #fff1c2; color: #16233a; border: 2px solid #8a5a00; font-weight: 600; }
.k221-rest { margin: 0 0 0.6rem; font-variant-numeric: tabular-nums; }
.k221-zeile { margin: 0 0 0.6rem; }
.k221-taste { min-height: 2.5rem; padding: 0.35rem 0.9rem; font: inherit; font-weight: 600; color: #ffffff; background: #1f4e5f; border: 2px solid #1f4e5f; border-radius: 0.3rem; cursor: pointer; }
.k221-taste:hover { background: #163a47; }
.k221-taste--hell { color: #16233a; background: #ffffff; border-color: #16233a; }
.k221-taste--hell:hover { background: #e3ecf7; }
.k221-taste[disabled], .k221-taste[aria-disabled="true"] { color: #4a5362; background: #dfe3e8; border-color: #8a93a1; border-style: dashed; cursor: default; }
.k221-meldung { margin: 0; min-height: 1.6rem; font-weight: 600; }

/* ---------- k-2-2-2 ---------- */
.k222-kopf { font-weight: 700; font-size: 1.1rem; margin: 0 0 0.5rem; }
.k222-text { margin: 0.8rem 0 0; }
.k222-zeile { margin: 0.7rem 0 0; }
.k222-taste { min-height: 2.5rem; padding: 0.35rem 0.9rem; font: inherit; font-weight: 600; color: #16233a; background: #ffffff; border: 2px solid #16233a; border-radius: 0.3rem; cursor: pointer; }
.k222-taste:hover { background: #e3ecf7; }

/* Laufband */
.k222-band { overflow: hidden; padding: 0.5rem 0.7rem; background: #16233a; color: #ffffff; }
.k222-lauf { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 2.5rem; }
.k222-lauf li { margin: 0; }
.k222-lauf li::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; margin-inline-end: 0.5rem; border-radius: 50%; background: currentColor; vertical-align: middle; }
.k222-band--laeuft .k222-lauf { flex-wrap: nowrap; width: max-content; padding-inline-start: 100%; white-space: nowrap; animation: k222-zug 22s linear infinite; }
.k222-band--zwei.k222-band--laeuft:hover .k222-lauf { animation-play-state: paused; }
@keyframes k222-zug {
  from { transform: translateX(0); }
  to { transform: translateX(-100%); }
}

/* Karussell */
.k222-folien { min-height: 7.5rem; padding: 0.8rem 1rem; background: #1f4e5f; color: #ffffff; }
.k222-folie p { margin: 0 0 0.4rem; }
.k222-ftitel { margin: 0 0 0.4rem; font-weight: 700; font-size: 1.1rem; }
.k222-blatt { display: flex; flex-wrap: wrap; gap: 0.5rem 0.8rem; align-items: center; }

/* Freie Plätze */
.k222-tafel { border-collapse: collapse; width: 100%; margin: 0 0 0.6rem; }
.k222-tafel caption { text-align: start; font-weight: 700; font-size: 1.1rem; padding: 0 0 0.4rem; }
.k222-tafel th, .k222-tafel td { border: 1px solid #5b6577; padding: 0.35rem 0.6rem; text-align: start; }
.k222-tafel td { font-variant-numeric: tabular-nums; font-weight: 700; width: 5rem; }
.k222-tafel thead th { background: #edf0f3; }
.k222-zeit { margin: 0; }
.k222-takt label { display: block; font-weight: 600; margin-bottom: 0.2rem; }
.k222-takt select { min-height: 2.5rem; max-width: 100%; padding: 0.3rem 0.5rem; color: #16233a; background: #ffffff; border: 2px solid #5b6577; border-radius: 0.2rem; }

/* Katalogsuche */
.k222-lage { margin: 0 0 0.6rem; }
.k222-warten { padding: 0.4rem 0 0.6rem; }
.k222-ring { display: block; width: 2.5rem; height: 2.5rem; border: 0.35rem solid #c3c9d2; border-top-color: #16233a; border-radius: 50%; animation: k222-dreh 1.1s linear infinite; }
@keyframes k222-dreh {
  to { transform: rotate(360deg); }
}
.k222-funde { margin: 0; padding-left: 1.2rem; }
.k222-funde li { margin-bottom: 0.3rem; }

/* ---------- k-2-3-1 ---------- */
.k231-hinweis { margin: 0 0 0.6rem; padding: 0.7rem 0.9rem; border: 2px solid #16233a; background: #ffffff; }
.k231-punkt { display: inline-block; width: 0.9rem; height: 0.9rem; margin-inline-end: 0.3rem; border-radius: 50%; background: #1f4e5f; vertical-align: baseline; }
.k231-punkt--blinkt { animation: k231-blink 1s steps(1, end) 4; }
@keyframes k231-blink {
  0% { opacity: 1; }
  50% { opacity: 0.15; }
  100% { opacity: 1; }
}
.k231-text { margin: 0 0 0.5rem; }
.k231-bilder { display: grid; gap: 0.6rem; margin: 0 0 0.8rem; }
.k231-nr { display: block; font-size: 0.85rem; font-weight: 400; }
.k231-bild { margin: 0; padding: 0.9rem 1rem; font-weight: 700; font-size: 1.15rem; border: 2px solid #16233a; }
.k231-bild--eins { background: #ffffff; color: #16233a; }
.k231-bild--zwei { background: #e00000; color: #ffffff; }
.k231-kopfzeile { margin: 0; padding: 0.6rem 0.8rem; background: #e3e7ec; color: #16233a; font-weight: 700; border: 2px solid #16233a; }
.k231-symbol { display: inline-block; width: 16px; height: 16px; margin-inline-end: 0.3rem; vertical-align: -2px; }
.k231-symbol--eins { background: #2b2f36; }
.k231-symbol--zwei { background: #ffffff; }
.k231-daten { margin: 0; padding-left: 1.2rem; }
.k231-daten li { margin-bottom: 0.3rem; }

/* ---------- k-2-4-3 ---------- */
.k243-flaeche { display: grid; padding: 0; }
.k243-seite, .k243-schicht { grid-area: 1 / 1; min-width: 0; }
.k243-seite { padding: 1rem; }
.k243-seite > :last-child { margin-bottom: 0; }
.k243-schicht { z-index: 1; display: grid; place-items: center; padding: 1rem; background: rgba(22, 35, 58, 0.72); }
.k243-schicht[hidden] { display: none; }
.k243-fenster { width: min(100%, 22rem); padding: 1rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; }
.k243-fenster > :last-child { margin-bottom: 0; }
.k243-titel { margin: 0 0 0.5rem; font-size: 1.05rem; }
.k243-meldung { min-height: 1.55em; margin: 0 0 0.6rem; font-weight: 600; }
.k243-links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.3rem 1.25rem; }
.k243-knopf { min-height: 2.75rem; padding: 0.4rem 0.9rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font: inherit; font-weight: 600; cursor: pointer; }
.k243-knopf:hover { background: #e3e8ee; }
.k243-knopf--voll { background: #16233a; color: #ffffff; }
.k243-knopf--voll:hover { background: #2c3d5c; }
.k243-feld label { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.k243-auswahl { min-height: 2.75rem; padding: 0.3rem 0.5rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font: inherit; }
.k243-aktionen { display: flex; flex-wrap: wrap; gap: 0.6rem; }

.k243-leiste { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; margin-bottom: 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid #5b6577; }
.k243-menue { list-style: none; margin: 0 0 0.75rem; padding: 0.5rem 0.75rem; background: #e3e8ee; }
.k243-menue li { padding: 0.2rem 0; }
.k243-menue--gleitend { max-height: 0; margin-bottom: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; }
.k243-menue--gleitend.k243-menue--offen { max-height: 24rem; margin-bottom: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; }
@media (prefers-reduced-motion: no-preference) {
  .k243-menue--gleitend { transition: max-height 0.25s ease; }
}

/* ---------- k-2-4-4 ---------- */
.k244-raster { display: grid; gap: 1rem 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); align-items: start; }
.k244-stelle { min-width: 0; padding-top: 0.5rem; border-top: 1px solid #5b6577; }
.k244-stelle > :last-child { margin-bottom: 0; }
.k244-nr { display: inline-block; margin: 0 0 0.5rem; padding: 0 0.5rem; background: #f3e9f8; color: #16233a; border: 1px solid #6a1b9a; font-size: 0.9rem; font-weight: 700; }
.k244-termine { margin: 0; padding-left: 1.2rem; }
.k244-termine li { margin-bottom: 0.3rem; }
.k244-tafel { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 0.95rem; }
.k244-spalte-1 { width: 38%; }
.k244-spalte-2 { width: 32%; }
.k244-spalte-3 { width: 30%; }
.k244-tafel caption { text-align: left; font-weight: 700; padding-bottom: 0.3rem; }
.k244-tafel th, .k244-tafel td { border: 1px solid #5b6577; padding: 0.3rem 0.4rem; text-align: left; vertical-align: top; overflow-wrap: break-word; }
.k244-karte { padding: 0.75rem; background: #edf0f3; border: 1px solid #5b6577; border-radius: 0.3rem; }
.k244-karte > :last-child { margin-bottom: 0; }
.k244-kartentitel { margin: 0 0 0.4rem; font-size: 1.05rem; }
.k244-paar { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.k244-block { flex: 1 1 10rem; padding: 0.75rem; background: #edf0f3; border: 1px solid #5b6577; border-radius: 0.3rem; }
.k244-block--schmal { flex: 0 0 auto; display: flex; align-items: center; }
.k244-block > :last-child { margin-bottom: 0; }
@media (max-width: 30rem) {
  .k244-tafel { font-size: 0.8rem; }
  .k244-tafel th, .k244-tafel td { padding: 0.25rem; }
}

/* ---------- k-2-4-6 ---------- */
.k246-haupt { margin: 0 0 0.6rem; font-size: 1.15rem; }
.k246-karten { display: grid; gap: 0.6rem; margin-bottom: 1.1rem; }
.k246-karte { padding: 0.6rem 0.75rem; background: #edf0f3; border-left: 0.3rem solid #1f4e5f; }
.k246-karte > :last-child { margin-bottom: 0; }
.k246-unter { margin: 0 0 0.25rem; font-size: 1rem; }
.k246-formular > :last-child { margin-bottom: 0; }
.k246-feld { margin: 0 0 0.75rem; }
.k246-feld label { display: block; font-weight: 600; margin-bottom: 0.2rem; }
.k246-eingabe { width: 100%; max-width: 20rem; min-height: 2.75rem; padding: 0.4rem 0.5rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font: inherit; }
.k246-knopf { min-height: 2.75rem; padding: 0.4rem 0.9rem; background: #1f4e5f; color: #ffffff; border: 2px solid #1f4e5f; border-radius: 0.3rem; font: inherit; font-weight: 600; cursor: pointer; }
.k246-knopf:hover { background: #163843; }
.k246-status { min-height: 1.55em; margin: 0; font-weight: 600; }

/* ---------- k-2-4-7 ---------- */
.k247-gruppe > :last-child { margin-bottom: 0; }
.k247-leiste { list-style: none; margin: 0 0 0.9rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; }
.k247-eintrag { display: inline-block; padding: 0.45rem 0.8rem; background: #edf0f3; color: #16233a; border: 1px solid #5b6577; border-radius: 0.3rem; text-decoration: underline; }
.k247-eintrag:hover { background: #d7dde4; }
.k247-wahl { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 1.75rem; }
.k247-haken { width: 1.5rem; height: 1.5rem; margin: 0; }
.k247-knopf { min-height: 2.75rem; padding: 0.4rem 0.9rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font: inherit; font-weight: 600; cursor: pointer; }
.k247-knopf:hover { background: #d7dde4; }
.k247-knopf[aria-pressed="true"] { background: #16233a; color: #ffffff; }

.k247-gruppe-2 .k247-eintrag:focus,
.k247-gruppe-2 .k247-haken:focus,
.k247-gruppe-2 .k247-knopf:focus { outline: none; box-shadow: none; }

.k247-gruppe-3 .k247-eintrag:focus-visible,
.k247-gruppe-3 .k247-haken:focus-visible,
.k247-gruppe-3 .k247-knopf:focus-visible { outline: 2px solid #d3d3d3; outline-offset: 2px; box-shadow: none; }

/* ---------- k-2-5-1 ---------- */
.k251-karte { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border: 2px solid #16233a; background: #f3efe4; touch-action: none; -webkit-user-select: none; user-select: none; cursor: grab; }
.k251-karte--zieht { cursor: grabbing; }
.k251-plan { position: absolute; top: 0; left: 0; width: 100%; height: 100%; max-width: none; transform-origin: 0 0; pointer-events: none; }
.k251-leiste { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.6rem; }
.k251-knopf { min-width: 2.75rem; min-height: 2.75rem; padding: 0.3rem 0.6rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font-size: 1.25rem; font-weight: 700; line-height: 1; cursor: pointer; }
.k251-knopf--text { font-size: 1rem; padding: 0.3rem 1rem; }
.k251-knopf:hover { background: #e4eef2; }
.k251-stand { margin: 0.6rem 0 0.3rem; font-weight: 600; }
.k251-hilfe { margin: 0; font-size: 0.95rem; }
.k251-karussell { border: 2px solid #16233a; background: #1f4e5f; color: #ffffff; padding: 1rem 1.1rem; min-height: 10.5rem; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.k251-folie[hidden] { display: none; }
.k251-gattung { margin: 0 0 0.3rem; font-size: 0.9rem; letter-spacing: 0.04em; text-transform: uppercase; }
.k251-folientitel { margin: 0 0 0.4rem; font-size: 1.25rem; font-weight: 700; line-height: 1.25; }
.k251-folientext { margin: 0; }
.k251-punkte { display: flex; justify-content: center; gap: 6px; margin-top: 0.6rem; }
.k251-punkt { width: 10px; height: 10px; padding: 0; border: 2px solid #16233a; border-radius: 50%; background: #ffffff; cursor: pointer; }
.k251-punkt[aria-current="true"] { background: #16233a; }

/* ---------- k-2-5-2 ---------- */
.k252-karte { border: 2px solid #16233a; border-radius: 0.4rem; padding: 0.9rem 1rem; }
.k252-inhalt > :last-child, .k252-karte > :last-child { margin-bottom: 0; }
.k252-kopf { margin: 0 0 0.3rem; font-size: 1.05rem; }
.k252-ort { margin: 0 0 0.8rem; }
.k252-klein { margin: 0.7rem 0 0; font-size: 0.95rem; }
.k252-knopf { min-height: 2.75rem; padding: 0.5rem 1rem; background: #1f4e5f; color: #ffffff; border: 2px solid #16233a; border-radius: 0.3rem; font-weight: 600; cursor: pointer; }
.k252-knopf:hover { background: #16233a; }
.k252-knopf--unten, .k252-knopf[aria-pressed="true"] { background: #ffffff; color: #16233a; }
.k252-meldung { margin: 0; font-weight: 600; }
.k252-nummer { font-weight: 700; }
.k252-klaviatur { display: flex; gap: 2px; margin-top: 0.6rem; touch-action: manipulation; }
.k252-taste { flex: 1 1 0; min-width: 0; height: 6.5rem; padding: 0 0 0.4rem; display: flex; align-items: flex-end; justify-content: center; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0 0 0.35rem 0.35rem; font-weight: 700; cursor: pointer; -webkit-user-select: none; user-select: none; }
.k252-taste--klingt { background: #1f4e5f; color: #ffffff; }
.k252-knopf--halten { touch-action: none; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }

/* ---------- k-2-5-3 ---------- */
.k253-formular { border: 2px solid #16233a; border-radius: 0.4rem; padding: 0.9rem 0.7rem; }
.k253-formular--zwei { margin-top: 1rem; }
.k253-formular > :last-child { margin-bottom: 0; }
.k253-kopf { font-size: 1.1rem; margin: 0 0 0.7rem; }
.k253-feld { margin: 0 0 0.8rem; }
.k253-feld > label { font-weight: 600; }
.k253-eingabe { display: block; width: 100%; min-height: 2.75rem; margin-top: 0.25rem; padding: 0.4rem 0.5rem; border: 2px solid #16233a; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k253-reihe { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0 0 0.8rem; }
.k253-reihe--eng { flex-wrap: nowrap; margin: 0; }
.k253-reihe--fest { flex-wrap: nowrap; }
.k253-reihe--fest > label { min-width: 0; }
.k253-paar { display: inline-flex; align-items: center; gap: 0.6rem; white-space: nowrap; }
.k253-reihe--eng .k253-eingabe { flex: 1 1 auto; min-width: 0; margin-top: 0.25rem; }
.k253-marke { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 1.6rem; height: 1.6rem; margin-inline-end: 0.3rem; border-radius: 50%; background: #16233a; color: #ffffff; font-size: 0.95rem; font-weight: 700; line-height: 1; }
.k253-knopf { min-height: 2.75rem; padding: 0.5rem 1.1rem; background: #1f4e5f; color: #ffffff; border: 2px solid #16233a; border-radius: 0.3rem; font-weight: 600; cursor: pointer; }
.k253-knopf:hover { background: #16233a; }
.k253-knopf--hell { background: #ffffff; color: #16233a; }
.k253-knopf--hell:hover { background: #e4eef2; }
.k253-knopf--symbol { min-width: 2.75rem; padding: 0.4rem; margin-top: 0.25rem; display: inline-flex; align-items: center; justify-content: center; }
.k253-haken { flex: 0 0 auto; width: 1.5rem; height: 1.5rem; margin: 0; accent-color: #1f4e5f; }
.k253-link { display: inline-block; padding: 0.5rem 0.3rem; font-weight: 600; }
.k253-stand { margin: 0 0 0.6rem; min-height: 1.55em; font-weight: 600; }
.k253-hilfe { margin: 0; font-size: 0.95rem; }

/* ---------- k-2-5-4 ---------- */
.k254-kasten { border: 2px solid #16233a; border-radius: 0.4rem; padding: 0.9rem 1rem; }
.k254-kasten > :last-child { margin-bottom: 0; }
.k254-kopf { font-size: 1.1rem; margin: 0 0 0.7rem; }
.k254-feld { margin: 0 0 0.8rem; }
.k254-feld > label { font-weight: 600; }
.k254-eingabe { display: block; width: 100%; min-height: 2.75rem; margin-top: 0.25rem; padding: 0.4rem 0.5rem; border: 2px solid #16233a; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k254-tipp { margin: 0 0 0.8rem; padding: 0.4rem 0.6rem; border-left: 0.3rem solid #1f4e5f; background: #e4eef2; }
.k254-reihe { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0 0 0.8rem; }
.k254-knopf { min-height: 2.75rem; padding: 0.5rem 1.1rem; background: #1f4e5f; color: #ffffff; border: 2px solid #16233a; border-radius: 0.3rem; font-weight: 600; cursor: pointer; }
.k254-knopf:hover { background: #16233a; }
.k254-knopf--hell { background: #ffffff; color: #16233a; }
.k254-knopf--hell:hover { background: #e4eef2; }
.k254-haken { width: 1.5rem; height: 1.5rem; margin: 0; accent-color: #1f4e5f; }
.k254-stand { margin: 0; min-height: 1.55em; font-weight: 600; }
.k254-blatt { margin: 0 0 0.8rem; padding: 1rem; min-height: 6rem; background: #1f4e5f; color: #ffffff; }
.k254-seite[hidden] { display: none; }
.k254-werk { margin: 0; font-size: 1.2rem; font-weight: 700; line-height: 1.3; }
.k254-gattung { margin: 0 0 0.3rem; font-size: 0.9rem; letter-spacing: 0.04em; text-transform: uppercase; }

/* ---------- k-2-5-7 ---------- */
.k257-kasten { border: 2px solid #16233a; border-radius: 0.4rem; padding: 0.9rem 0.7rem; }
.k257-kasten > :last-child { margin-bottom: 0; }
.k257-kopf { font-size: 1.1rem; margin: 0 0 0.7rem; }
.k257-name { margin: 0; font-weight: 600; }
.k257-leiste { position: relative; height: 44px; }
.k257-spur { position: absolute; left: 16px; width: calc(100% - 32px); top: 17px; height: 10px; border: 2px solid #16233a; border-radius: 5px; background: #ffffff; overflow: hidden; }
.k257-fuellung { height: 100%; width: 0; background: #1f4e5f; }
.k257-griff { position: absolute; top: 6px; left: 0; width: 32px; height: 32px; border-radius: 50%; background: #16233a; border: 3px solid #ffffff; box-shadow: 0 0 0 2px #16233a; cursor: grab; touch-action: none; }
.k257-skala { display: flex; justify-content: space-between; padding: 0 11px; font-size: 0.9rem; }
.k257-skala > span { width: 10px; text-align: center; }
.k257-wert { margin: 0.5rem 0 0.8rem; }
.k257-reihe { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0 0 0.8rem; }
.k257-reihe--karte { margin-top: 0.6rem; }
.k257-knopf { min-width: 2.75rem; min-height: 2.75rem; padding: 0.5rem 1.1rem; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font-weight: 600; cursor: pointer; }
.k257-knopf--zeichen { padding: 0.3rem 0.6rem; font-size: 1.25rem; font-weight: 700; line-height: 1; }
.k257-knopf:hover { background: #e4eef2; }
.k257-tipp { margin: 0 0 0.6rem; font-size: 0.95rem; }
.k257-stand { margin: 0.4rem 0; min-height: 1.55em; font-weight: 600; }
.k257-liste { list-style: none; margin: 0 0 0.8rem; padding: 0; }
.k257-liste--zieht { -webkit-user-select: none; user-select: none; }
.k257-eintrag { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin: 0 0 0.4rem; padding: 0.3rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #ffffff; }
.k257-eintrag--getragen { background: #e4eef2; border-style: dashed; }
.k257-titel { flex: 1 1 5rem; min-width: 0; overflow-wrap: anywhere; }
.k257-titel + .k257-pfeil { margin-left: auto; }
.k257-anfasser, .k257-pfeil { flex: 0 0 auto; width: 36px; height: 36px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font-size: 1.1rem; font-weight: 700; line-height: 1; cursor: pointer; }
.k257-anfasser { cursor: grab; touch-action: none; border-color: transparent; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.k257-pfeil:hover, .k257-anfasser:hover { background: #e4eef2; }
.k257-karte { position: relative; overflow: hidden; aspect-ratio: 4 / 3; border: 2px solid #16233a; background: #f3efe4; touch-action: none; -webkit-user-select: none; user-select: none; cursor: grab; }
.k257-plan { position: absolute; top: 0; left: 0; width: 100%; height: 100%; max-width: none; transform-origin: 0 0; pointer-events: none; }

/* ---------- k-2-5-8 ---------- */
.k258-kasten { border: 2px solid #16233a; border-radius: 0.4rem; padding: 14px 6px; }
.k258-kasten > :last-child { margin-bottom: 0; }
.k258-kopfzeile { display: flex; align-items: center; gap: 6px; margin: 0 0 14px; }
.k258-kopf { font-size: 1.1rem; margin: 0 14px 0 0; }
.k258-kasten > .k258-kopf { margin: 0 0 14px; }
.k258-marke { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 22px; height: 22px; margin: 0 6px 0 0; border-radius: 50%; background: #6a1b9a; color: #ffffff; font-size: 14px; font-weight: 700; line-height: 1; vertical-align: middle; }
.k258-text .k258-marke { margin: 0 4px 0 2px; }
.k258-symbol { flex: 0 0 auto; width: 20px; height: 20px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: #ffffff; color: #16233a; border: 1px solid #16233a; border-radius: 3px; cursor: pointer; }
.k258-symbol:hover { background: #e4eef2; }
.k258-symbol[aria-pressed="true"] { background: #16233a; color: #ffffff; }
.k258-symbol--klein { width: 16px; height: 16px; }
.k258-symbol--polster { width: 28px; height: 28px; border-color: transparent; background: transparent; }
.k258-symbol--polster[aria-pressed="true"] { background: transparent; color: #6a1b9a; border-color: #6a1b9a; }
.k258-paar { display: inline-flex; align-items: center; gap: 2px; }
.k258-trio { display: inline-flex; align-items: center; gap: 8px; }
.k258-gruppe { display: inline-flex; align-items: center; flex: 0 0 auto; }
.k258-frist { margin: 0 0 14px; padding: 0.4rem 0.6rem; background: #e4eef2; border-left: 0.3rem solid #1f4e5f; }
.k258-text { margin: 0 0 14px; }
.k258-zeile { display: flex; align-items: center; gap: 0; margin: 0 0 14px; }
.k258-zeile--bricht { flex-wrap: wrap; gap: 12px 16px; }
.k258-fest { display: inline-flex; align-items: center; white-space: nowrap; }
.k258-text .k258-fest { display: inline; }
.k258-zeile--bricht .k258-fest { flex-wrap: wrap; row-gap: 6px; }
.k258-zeile--lose { flex-wrap: wrap; row-gap: 6px; }
.k258-wort { margin-inline-end: 10px; }
.k258-knopf { height: 36px; padding: 0 8px; font-size: 15px; background: #ffffff; color: #16233a; border: 2px solid #16233a; border-radius: 0.3rem; font-weight: 600; white-space: nowrap; cursor: pointer; }
.k258-knopf:hover { background: #e4eef2; }
.k258-knopf--hoch { height: auto; min-height: 44px; padding: 4px 8px; white-space: normal; background: #1f4e5f; color: #ffffff; }
.k258-knopf--hoch:hover { background: #16233a; }
.k258-liste { list-style: none; margin: 0 0 14px; padding: 0; border-top: 1px solid #5b6577; }
.k258-eintrag { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 6px 0; border-bottom: 1px solid #5b6577; }
.k258-titel { min-width: 0; }
.k258-stand { margin: 0 0 6px; min-height: 1.55em; font-weight: 600; }
.k258-ordnung { margin: 0; font-size: 0.95rem; }
#k-2-5-8-a-alle { min-width: 156px; }
#k-2-5-8-a-ordnen { min-width: 104px; }
#k-2-5-8-a-drucken { min-width: 180px; }

/* ---------- k-3-1-1 ---------- */
.k311-ziel a { display: inline-block; padding: 0.2rem 0; }

/* ---------- k-3-1-2 ---------- */
.k312-titel { font-size: 1.1rem; margin: 0 0 0.6rem; overflow-wrap: anywhere; hyphens: auto; }
.k312-zitat { margin: 0 0 1rem; padding: 0.6rem 0.9rem; border-left: 0.3rem solid #1f4e5f; background: #edf0f3; }
.k312-zitat p { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.1rem; }
.k312-wahl { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.k312-wahl a { display: inline-block; padding: 0.3rem 0; }
.k312-slogan { font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; font-style: italic; font-weight: 700; color: #1f4e5f; }

/* ---------- k-3-2-1 ---------- */
.k321-form { margin: 0; }
.k321-titel { font-size: 1.1rem; margin: 0 0 0.75rem; overflow-wrap: anywhere; }
.k321-zeile { margin: 0 0 0.9rem; }
.k321-label { display: block; font-weight: 600; margin: 0 0 0.2rem; }
.k321-feld { display: block; width: 100%; max-width: 18rem; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #16233a; border-radius: 0.2rem; background: #ffffff; color: #16233a; }
.k321-knopf { min-height: 2.75rem; padding: 0.4rem 0.9rem; border: 2px solid #16233a; border-radius: 0.2rem; background: #ffffff; color: #16233a; font-weight: 600; cursor: pointer; }
.k321-zeile .k321-knopf { margin-top: 0.5rem; }
.k321-knopf--haupt { background: #16233a; color: #ffffff; }
.k321-fenster { margin: 0 0 1rem; border: 2px solid #16233a; background: #ffffff; box-shadow: 0.3rem 0.3rem 0 #5b6577; }
.k321-fenstertitel { margin: 0; padding: 0.4rem 0.7rem; font-size: 1rem; background: #16233a; color: #ffffff; }
.k321-fensterinhalt { padding: 0.7rem; }
.k321-fensterinhalt p { margin: 0 0 0.7rem; }
.k321-tipp[hidden] { display: block; visibility: hidden; }
.k321-tipp { margin: 0.35rem 0 0; padding: 0.4rem 0.6rem; max-width: 18rem; background: #edf0f3; border-left: 0.3rem solid #1f4e5f; font-size: 0.95rem; }
.k321-meldung { margin: 0.6rem 0 0; min-height: 1.5rem; }

/* ---------- k-3-2-2 ---------- */
/* Kleine Seite */
.k322-seite { border: 2px solid #16233a; background: #ffffff; }
.k322-adresse { margin: 0; padding: 0.35rem 0.6rem; background: #edf0f3; border-bottom: 2px solid #16233a; font-size: 0.9rem; overflow-wrap: anywhere; }
.k322-adresse-wort { font-weight: 700; }
.k322-warte { margin: 0; padding: 1.5rem 0.75rem; min-height: 9rem; }
.k322-inhalt { padding: 0.75rem; }
.k322-titel { font-size: 1.1rem; margin: 0 0 0.75rem; overflow-wrap: anywhere; }
.k322-vorab { margin: 0 0 0.6rem; }
.k322-steuer { margin: 0 0 0.9rem; display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: flex-end; }
.k322-label { display: block; font-weight: 600; margin: 0 0 0.2rem; }
.k322-wahl { display: block; min-height: 2.75rem; min-width: 9rem; max-width: 100%; padding: 0.4rem 0.6rem; border: 2px solid #16233a; border-radius: 0.2rem; background: #ffffff; color: #16233a; }
.k322-knopf { min-height: 2.75rem; padding: 0.4rem 0.9rem; border: 2px solid #16233a; border-radius: 0.2rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k322-liste { margin: 0; padding-left: 1.3rem; }

/* Formulare */
.k322-form { margin: 0; }
.k322-kopf { font-size: 1.1rem; margin: 0 0 0.75rem; overflow-wrap: anywhere; }
.k322-gruppe { margin: 0 0 0.9rem; padding: 0.6rem 0.8rem 0.8rem; border: 1px solid #5b6577; min-width: 0; }
.k322-legende { font-weight: 600; padding: 0 0.3rem; }
.k322-option { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.5rem; min-height: 1.75rem; }
.k322-kreis, .k322-kasten { flex: none; width: 1.5rem; height: 1.5rem; margin: 0; accent-color: #16233a; }
.k322-zusatz { margin: 0.4rem 0 0.9rem; padding-left: 0.8rem; border-left: 0.3rem solid #1f4e5f; }
.k322-text { display: block; width: 100%; max-width: 18rem; min-height: 2.75rem; padding: 0.4rem 0.6rem; border: 2px solid #16233a; border-radius: 0.2rem; background: #ffffff; color: #16233a; }
.k322-text--kurz { width: 5.5rem; }
.k322-bloecke { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.k322-block .k322-label { font-weight: 400; font-size: 0.95rem; }
.k322-meldung { margin: 0.6rem 0 0; min-height: 1.5rem; }

/* ---------- k-3-2-3 ---------- */
.k323-seiten { margin: 0; padding-left: 1.5rem; }
.k323-seiten a { display: inline-block; vertical-align: top; padding: 0 0 0.4rem; }

/* ---------- k-3-2-4 ---------- */
.k324-seiten { margin: 0; padding-left: 1.5rem; }
.k324-seiten a { display: inline-block; vertical-align: top; padding: 0 0 0.4rem; }
.k324-tabellentitel { text-align: left; font-weight: 600; padding: 0 0 0.3rem; }

/* ---------- k-3-2-6 ---------- */
.k326-seiten { margin: 0; padding-left: 1.5rem; }
.k326-seiten a { display: inline-block; vertical-align: top; padding: 0 0 0.4rem; }

/* ---------- k-3-3-1 ---------- */
.k331-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 26rem; overflow-wrap: anywhere; }
.k331-titel { font-size: 1.1rem; margin: 0; }
.k331-vorab { margin: 0; }
.k331-feld { display: grid; gap: 0.3rem; }
.k331-feld label { font-weight: 600; }
.k331-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k331-eingabe--kurz { max-width: 7rem; }
.k331-eingabe--rot { border-color: #c4161c; }
.k331-zeile { display: flex; gap: 0.5rem; align-items: center; }
.k331-zeile .k331-eingabe { flex: 1 1 auto; min-width: 0; }
.k331-zeichen { flex: 0 0 auto; }
.k331-meldung { display: flex; gap: 0.4rem; align-items: flex-start; margin: 0; color: #a1131c; font-weight: 600; }
.k331-meldung[hidden] { display: none; }
.k331-meldung img { flex: 0 0 auto; margin-top: 0.15rem; }
.k331-sammel:not(:empty) { padding: 0.6rem 0.8rem; border: 2px solid #a1131c; color: #a1131c; font-weight: 600; }
.k331-knopf { justify-self: start; min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k331-knopf:hover { background: #2c3d5c; }
.k331-status { margin: 0; font-weight: 600; }
.k331-status:empty, .k331-sammel:empty { position: absolute; }

/* ---------- k-3-3-2 ---------- */
.k332-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 26rem; overflow-wrap: anywhere; }
.k332-titel { font-size: 1.1rem; margin: 0; }
.k332-vorab { margin: 0; }
.k332-feld { display: grid; gap: 0.3rem; }
.k332-feld label, .k332-frage { font-weight: 600; }
.k332-hinweis { margin: 0; color: #3f4a5e; font-size: 0.95rem; }
.k332-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k332-eingabe::placeholder { color: #5b6577; opacity: 1; }
.k332-gruppe { display: grid; gap: 0.35rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.k332-frage { padding: 0; margin-bottom: 0.3rem; }
.k332-wahl { display: flex; gap: 0.5rem; align-items: center; min-height: 1.75rem; }
.k332-wahl input { width: 1.25rem; height: 1.25rem; margin: 0; flex: 0 0 auto; }
.k332-meldung { margin: 0; color: #a1131c; font-weight: 600; }
.k332-suchzeile { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.k332-suchzeile .k332-eingabe { flex: 1 1 10rem; width: auto; min-width: 0; }
.k332-knopf { justify-self: start; min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k332-knopf:hover { background: #2c3d5c; }
.k332-status { margin: 0; font-weight: 600; }
.k332-status:empty { position: absolute; }

/* ---------- k-3-3-3 ---------- */
.k333-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 26rem; overflow-wrap: anywhere; }
.k333-titel { font-size: 1.1rem; margin: 0; }
.k333-vorab { margin: 0; }
.k333-feld { display: grid; gap: 0.3rem; }
.k333-feld label { font-weight: 600; }
.k333-hinweis { margin: 0; color: #3f4a5e; font-size: 0.95rem; }
.k333-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k333-eingabe--kurz { max-width: 7rem; }
.k333-meldung { color: #a1131c; font-weight: 600; }
.k333-meldung p { margin: 0; }
.k333-vorschlag { margin-top: 0.4rem; min-height: 2.75rem; padding: 0.4rem 0.8rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #ffffff; color: #16233a; font-weight: 600; cursor: pointer; overflow-wrap: anywhere; }
.k333-vorschlag:hover { background: #edf0f3; }
.k333-sammel:not(:empty) { padding: 0.6rem 0.8rem; border: 2px solid #a1131c; color: #a1131c; font-weight: 600; }
.k333-knopf { justify-self: start; min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k333-knopf:hover { background: #2c3d5c; }
.k333-status { margin: 0; font-weight: 600; }
.k333-status:empty, .k333-sammel:empty { position: absolute; }

/* ---------- k-3-3-4 ---------- */
.k334-form, .k334-ansicht, .k334-merk { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 26rem; overflow-wrap: anywhere; }
.k334-form[hidden], .k334-ansicht[hidden] { display: none; }
.k334-ansicht p, .k334-merk p { margin: 0; }
.k334-titel { font-size: 1.1rem; margin: 0; }
.k334-kopf { font-size: 1rem; margin: 0; }
.k334-vorab { margin: 0; }
.k334-feld { display: grid; gap: 0.3rem; }
.k334-feld label, .k334-frage { font-weight: 600; }
.k334-hinweis { margin: 0; color: #3f4a5e; font-size: 0.95rem; }
.k334-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k334-eingabe--kurz { max-width: 7rem; }
.k334-gruppe { display: grid; gap: 0.35rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.k334-frage { padding: 0; margin-bottom: 0.3rem; }
.k334-wahl { display: flex; gap: 0.5rem; align-items: flex-start; }
.k334-wahl input { width: 1.25rem; height: 1.25rem; margin: 0.15rem 0 0; flex: 0 0 auto; }
.k334-liste { margin: 0; display: grid; gap: 0.4rem; }
.k334-liste dt { font-weight: 600; }
.k334-liste dd { margin: 0; }
.k334-meldung { margin: 0; color: #a1131c; font-weight: 600; }
.k334-knoepfe { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.k334-knoepfe[hidden] { display: none; }
.k334-knopf { justify-self: start; min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k334-knopf:hover { background: #2c3d5c; }
.k334-knopf--hell { background: #ffffff; color: #16233a; }
.k334-knopf--hell:hover { background: #edf0f3; }
.k334-eintraege { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.k334-eintraege[hidden] { display: none; }
.k334-eintrag { display: flex; flex-wrap: wrap; gap: 0.5rem 0.8rem; align-items: center; justify-content: space-between; padding: 0.5rem 0.6rem; border: 1px solid #5b6577; border-radius: 0.25rem; }
.k334-eintrag[hidden] { display: none; }
.k334-werk { flex: 1 1 11rem; min-width: 0; }
.k334-name { font-weight: 600; }
.k334-nachricht { padding: 0.6rem 0.8rem; border: 2px solid #16233a; font-weight: 600; }
.k334-korb { display: grid; gap: 0.5rem; padding-top: 0.8rem; border-top: 2px solid #5b6577; }
.k334-korb[hidden] { display: none; }

/* ---------- k-3-3-7 ---------- */
.k337-prozess { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.8rem; max-width: 26rem; overflow-wrap: anywhere; }
.k337-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 26rem; overflow-wrap: anywhere; }
.k337-form[hidden] { display: none; }
.k337-form p { margin: 0; }
.k337-titel { font-size: 1.1rem; margin: 0; }
.k337-kopf { font-size: 1rem; margin: 0; padding-bottom: 0.3rem; border-bottom: 2px solid #16233a; }
.k337-feld { display: grid; gap: 0.3rem; }
.k337-feld label { font-weight: 600; }
.k337-hinweis { color: #3f4a5e; font-size: 0.95rem; }
.k337-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k337-eingabe--kurz { max-width: 7rem; }
.k337-meldung { color: #a1131c; font-weight: 600; }
.k337-stoerung { padding: 0.6rem 0.8rem; border: 2px solid #a1131c; color: #a1131c; font-weight: 600; }
.k337-zeile { display: grid; gap: 0.4rem; justify-items: start; }
.k337-liste { margin: 0; display: grid; gap: 0.5rem; }
.k337-liste dt { font-weight: 600; }
.k337-liste dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.k337-knoepfe { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.k337-knopf { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k337-knopf:hover { background: #2c3d5c; }
.k337-knopf--hell { background: #ffffff; color: #16233a; }
.k337-knopf--hell:hover { background: #edf0f3; }
.k337-status { font-weight: 600; }
.k337-status:empty { position: absolute; }

/* ---------- k-3-3-8 ---------- */
.k338-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 26rem; overflow-wrap: anywhere; }
.k338-form--zweite { margin-top: 1.2rem; padding-top: 1rem; border-top: 2px solid #5b6577; }
.k338-form p { margin: 0; }
.k338-titel { font-size: 1.1rem; margin: 0; }
.k338-feld { display: grid; gap: 0.3rem; }
.k338-feld label, .k338-frage { font-weight: 600; }
.k338-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k338-eingabe--kurz { max-width: 7rem; }
.k338-sammel:not(:empty) { padding: 0.6rem 0.8rem; border: 2px solid #a1131c; color: #a1131c; font-weight: 600; }
.k338-meldung { color: #a1131c; font-weight: 600; }
.k338-gruppe { display: grid; gap: 0.5rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.k338-frage { padding: 0; margin-bottom: 0.4rem; }
.k338-raster { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; max-width: 20rem; }
.k338-kachel { display: grid; gap: 0.25rem; justify-items: center; padding: 0.35rem; border: 2px solid #5b6577; border-radius: 0.25rem; cursor: pointer; }
.k338-kachel input { width: 1.5rem; height: 1.5rem; margin: 0; }
.k338-kachel img { display: block; }
.k338-kachel:has(input:checked) { border-color: #16233a; background: #edf0f3; box-shadow: inset 0 0 0 2px #16233a; }
.k338-knopf { justify-self: start; min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.k338-knopf:hover { background: #2c3d5c; }
.k338-knopf--hell { background: #ffffff; color: #16233a; }
.k338-knopf--hell:hover { background: #edf0f3; }
.k338-status { font-weight: 600; }
.k338-status:empty, .k338-sammel:empty { position: absolute; }

/* ---------- k-4-1-2 ---------- */
/* Akkordeon */
.k412-akk { border: 2px solid #1f4e5f; border-radius: 0.3rem; }
.k412-akk-kopf {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%;
  padding: 0.7rem 0.9rem; background: #e6eef0; color: #16233a; border: 0; border-top: 2px solid #1f4e5f;
  font: inherit; font-weight: 600; text-align: left; cursor: pointer;
}
.k412-akk-kopf:first-child { border-top: 0; }
.k412-akk-kopf:hover { background: #d3e2e6; }
.k412-akk-kopf::after {
  content: ""; flex: none; width: 0.6rem; height: 0.6rem; margin-right: 0.2rem;
  border-right: 3px solid #1f4e5f; border-bottom: 3px solid #1f4e5f; transform: rotate(45deg);
}
.k412-akk-auf::after { transform: rotate(-135deg); }
.k412-akk-inhalt { padding: 0.8rem 0.9rem; border-top: 1px solid #1f4e5f; }
.k412-akk-inhalt p { margin: 0; }

/* Umschalter */
.k412-ums {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.8rem; width: 100%;
  padding: 0.6rem 0.2rem; background: transparent; color: #16233a; border: 0; font: inherit; text-align: left; cursor: pointer;
}
.k412-ums-spur {
  flex: none; position: relative; width: 3.25rem; height: 1.75rem; border-radius: 1rem;
  background: #ffffff; border: 2px solid #3f4a5e;
}
.k412-ums-griff {
  position: absolute; top: 0.2rem; left: 0.2rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: #3f4a5e;
}
.k412-ums-an .k412-ums-spur { background: #1f4e5f; border-color: #1f4e5f; }
.k412-ums-an .k412-ums-griff { left: 1.7rem; background: #ffffff; }
.k412-ums-text { flex: 1 1 10rem; font-weight: 600; }
.k412-ums-stand { flex: none; min-width: 2.2rem; font-weight: 700; }

/* Suche mit Symbol */
.k412-suche label { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.k412-suche-zeile { display: flex; gap: 0.5rem; align-items: stretch; }
.k412-suche-feld { flex: 1 1 8rem; min-width: 0; padding: 0.5rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k412-sym {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.9rem; min-height: 2.75rem; padding: 0;
  background: #1f4e5f; color: #ffffff; border: 2px solid #1f4e5f; border-radius: 0.25rem; cursor: pointer;
}
.k412-sym:hover { background: #16233a; border-color: #16233a; }
.k412-suche-ausgabe { margin: 0.6rem 0 0; min-height: 1.55em; }

/* Auswahlliste */
.k412-wahl-block { max-width: 22rem; }
.k412-wahl-name { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.k412-wahl {
  display: block; width: 100%; padding: 0.55rem 2.4rem 0.55rem 0.7rem; border: 2px solid #5b6577; border-radius: 0.25rem;
  background-color: #ffffff; color: #16233a; font: inherit; line-height: 1.4; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316233a' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 0.8rem center; background-size: 0.8rem auto;
}
.k412-wahl-liste { margin-top: 0.2rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; }
.k412-wahl-eintrag { padding: 0.45rem 0.7rem; cursor: pointer; }
.k412-wahl-eintrag:hover { background: #e6eef0; }
.k412-wahl-aktiv { background: #1f4e5f; color: #ffffff; }
.k412-wahl-aktiv:hover { background: #1f4e5f; }

/* Link „Programm“ */
.k412-tagung { margin-bottom: 0.4rem; }

/* „Mein Konto“ */
.k412-kopfzeile { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.6rem 1rem; padding: 0.6rem 0.8rem; background: #1f4e5f; color: #ffffff; }
.k412-kopfzeile-name { font-weight: 700; }
.k412-konto {
  display: inline-block; padding: 0.45rem 0.9rem; background: #ffffff; color: #16233a; border: 2px solid #ffffff; border-radius: 0.3rem;
  font-weight: 600; text-decoration: none; cursor: pointer;
}
.k412-konto:hover { background: #e6eef0; }
.k412-konto-menue { list-style: none; margin: 0; padding: 0.5rem 0.8rem; border: 2px solid #1f4e5f; border-top: 0; }
.k412-konto-menue li { margin: 0; padding: 0.2rem 0; }

/* Lesetipp */
.k412-tipp { padding: 0.55rem 1.1rem; background: #1f4e5f; color: #ffffff; border: 2px solid #1f4e5f; border-radius: 0.3rem; font: inherit; font-weight: 600; cursor: pointer; }
.k412-tipp:hover { background: #16233a; border-color: #16233a; }
.k412-tipp-ausgabe { margin: 0.7rem 0 0; min-height: 1.55em; }

/* Rahmen mit Lageplan */
.k412-rahmen { display: block; width: 100%; max-width: 27.5rem; border: 2px solid #5b6577; background: #ffffff; }

/* ---------- k-4-1-3 ---------- */
/* Terminsuche */
.k413-suche-titel, .k413-formular-titel { font-weight: 700; font-size: 1.1rem; margin: 0 0 0.6rem; }
.k413-filter { margin: 0 0 0.6rem; }
.k413-haken { width: 1.25rem; height: 1.25rem; margin: 0 0.5rem 0 0; vertical-align: middle; }
.k413-zahl { font-weight: 700; margin: 0 0 0.5rem; padding: 0.35rem 0.6rem; background: #e6eef0; border-left: 0.3rem solid #1f4e5f; }
.k413-liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid #5b6577; }
.k413-liste li { display: flex; flex-wrap: wrap; gap: 0.1rem 0.7rem; margin: 0; padding: 0.4rem 0; border-bottom: 1px solid #5b6577; }
.k413-liste li[hidden] { display: none; }
.k413-wann { flex: 0 0 auto; min-width: 11.25rem; white-space: nowrap; color: #3f4a5e; font-variant-numeric: tabular-nums; }
.k413-was { flex: 1 1 9rem; }
.k413-was-titel { font-weight: 600; }
.k413-wo { white-space: nowrap; }

/* Merkliste */
.k413-medium { position: relative; }
.k413-zaehler { margin: 0 0 0.8rem; padding: 0.35rem 0.6rem; background: #1f4e5f; color: #ffffff; font-weight: 600; }
.k413-medium-titel { font-weight: 700; font-size: 1.15rem; margin: 0 0 0.15rem; }
.k413-medium-art { color: #3f4a5e; margin: 0 0 0.8rem; }
.k413-knopf { padding: 0.55rem 1.1rem; background: #1f4e5f; color: #ffffff; border: 2px solid #1f4e5f; border-radius: 0.3rem; font: inherit; font-weight: 600; cursor: pointer; }
.k413-knopf:hover { background: #16233a; border-color: #16233a; }
.k413-meldung { margin: 0.7rem 0 0; min-height: 1.55em; font-weight: 600; }

/* Formulare */
.k413-zeile { margin: 0 0 0.9rem; }
.k413-zeile label { display: block; font-weight: 600; margin-bottom: 0.25rem; }
.k413-feld { display: block; width: 100%; max-width: 22rem; padding: 0.5rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.k413-feld[aria-invalid="true"] { border-color: #a4262c; border-width: 3px; padding: calc(0.5rem - 1px) calc(0.6rem - 1px); }
.k413-hilfe { margin: 0.25rem 0 0; color: #3f4a5e; font-size: 0.95rem; }
.k413-feldtext { margin: 0.3rem 0 0; color: #a4262c; font-weight: 600; min-height: 1.55em; }
.k413-uebersicht { margin: 0 0 1rem; padding: 0.7rem 0.9rem; border: 3px solid #a4262c; background: #ffffff; }
.k413-uebersicht-titel { font-size: 1.05rem; margin: 0 0 0.4rem; }
.k413-uebersicht ul { margin: 0; padding-left: 1.2rem; }
.k413-uebersicht li { margin: 0 0 0.2rem; }

/* ---------- komp-1-akkordeon ---------- */
.kakk-gruppe { border: 1px solid #5b6577; border-radius: 0.3rem; background: #ffffff; color: #16233a; }
.kakk-kopf { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.3; border-top: 1px solid #5b6577; }
.kakk-kopf:first-child { border-top: 0; }
.kakk-schalter { display: flex; align-items: center; justify-content: space-between; gap: 1rem; box-sizing: border-box; width: 100%; min-height: 2.75rem; margin: 0; padding: 0.7rem 1rem; border: 0; border-radius: 0; background: #f2f4f7; color: #16233a; font: inherit; text-align: left; cursor: pointer; }
.kakk-schalter:hover { background: #e3e8ee; }
.kakk-zeichen { position: relative; flex: none; width: 1rem; height: 1rem; color: #16233a; }
.kakk-zeichen::before, .kakk-zeichen::after { content: ""; position: absolute; background: currentColor; }
.kakk-zeichen::before { left: 0; right: 0; top: calc(50% - 1.5px); height: 3px; }
.kakk-zeichen::after { top: 0; bottom: 0; left: calc(50% - 1.5px); width: 3px; }
.kakk-feld { padding: 0.8rem 1rem; border-top: 1px solid #5b6577; font-weight: 400; }
.kakk-feld > :last-child { margin-bottom: 0; }

/* Fassung A */
#komp-akkordeon-a .kakk-zeichen { color: #b4bac4; }
#komp-akkordeon-a .kakk-kopf--auf .kakk-zeichen::after { display: none; }
#komp-akkordeon-a .kakk-feld--zu { max-height: 0; padding-top: 0; padding-bottom: 0; border-top-width: 0; overflow: hidden; }

/* Fassung B */
#komp-akkordeon-b .kakk-schalter[aria-expanded="true"] .kakk-zeichen::after { display: none; }
#komp-akkordeon-b .kakk-schalter:focus-visible { position: relative; z-index: 1; outline-offset: -5px; box-shadow: inset 0 0 0 2px #ffffff; }

/* ---------- komp-2-dialog ---------- */
.kdlg-karte { padding: 1rem; border: 1px solid #5b6577; border-radius: 0.3rem; background: #ffffff; color: #16233a; }
.kdlg-karte > :last-child { margin-bottom: 0; }
.kdlg-karte-titel { margin: 0 0 0.4rem; font-size: 1.05rem; }
.kdlg-eintrag { margin: 0 0 0.8rem; }
.kdlg-meldung { min-height: 1.55em; margin: 0 0 0.6rem; font-weight: 600; }
.kdlg-links { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.3rem 1.25rem; }

.kdlg-knopf { min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #ffffff; color: #16233a; font: inherit; font-weight: 600; cursor: pointer; }
.kdlg-knopf:hover { background: #e3e8ee; }
.kdlg-knopf--voll { border-color: #a4161a; background: #a4161a; color: #ffffff; }
.kdlg-knopf--voll:hover { border-color: #7d1013; background: #7d1013; }

.kdlg-fenster { box-sizing: border-box; width: min(30rem, calc(100vw - 2rem)); max-width: none; max-height: calc(100vh - 2rem); overflow: auto; padding: 1.25rem; border: 2px solid #16233a; border-radius: 0.4rem; background: #ffffff; color: #16233a; box-shadow: 0 0.5rem 2rem rgba(22, 35, 58, 0.45); }
.kdlg-fenster::backdrop { background: rgba(22, 35, 58, 0.6); }
.kdlg-schicht { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: rgba(22, 35, 58, 0.6); }
.kdlg-schicht[hidden] { display: none; }
.kdlg-kopf { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin: 0 0 0.6rem; }
.kdlg-titel { margin: 0; font-size: 1.2rem; font-weight: 700; line-height: 1.25; }
.kdlg-zu { flex: none; display: grid; place-items: center; padding: 0; border: 0; border-radius: 0.2rem; background: transparent; color: #16233a; cursor: pointer; }
.kdlg-aktionen { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.6rem; margin-top: 1.1rem; }

/* Fassung A */
#komp-dialog-a .kdlg-zu { width: 44px; height: 44px; margin: -13px -13px 0 0; }
#komp-dialog-a .kdlg-zu:hover { background: #e3e8ee; }

/* Fassung B */
#komp-dialog-b .kdlg-zu { width: 18px; height: 18px; }

/* ---------- komp-3-karussell ---------- */
.kkar-rahmen { display: block; padding: 1rem; border: 1px solid #5b6577; border-radius: 0.3rem; background: #ffffff; color: #16233a; }
.kkar-kopf { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; min-height: 2.75rem; margin: 0 0 0.75rem; }
.kkar-titel { margin: 0; font-size: 1.1rem; }
.kkar-bedienung { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.kkar-knopf { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0.4rem 0.8rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #ffffff; color: #16233a; font: inherit; font-weight: 600; cursor: pointer; }
.kkar-knopf:hover { background: #e3e8ee; }
.kkar-pfeil { padding: 0; }
.kkar-folien { display: grid; touch-action: pan-y; }
.kkar-folie { grid-area: 1 / 1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; min-width: 0; }
.kkar-bild { flex: 0 1 9rem; width: 9rem; min-width: 0; border-radius: 0.2rem; }
.kkar-text { flex: 1 1 11rem; min-width: 0; }
.kkar-text > :last-child { margin-bottom: 0; }
.kkar-zeile { margin: 0 0 0.3rem; font-size: 1rem; }
.kkar-punkte { display: flex; justify-content: center; align-items: center; min-height: 24px; margin-top: 0.75rem; }

/* Fassung A */
.kkar-form-1 .kkar-folie:not(.kkar-aktiv) { visibility: hidden; }
.kkar-form-1 .kkar-punkt { position: relative; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.kkar-form-1 .kkar-punkt::before { content: ""; position: absolute; left: 7px; top: 7px; width: 10px; height: 10px; border-radius: 50%; background: #6b7280; }
.kkar-form-1 .kkar-punkt[aria-current="true"]::before { background: #16233a; box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #16233a; }
.kkar-form-1 .kkar-punkt:focus-visible { outline-offset: 1px; box-shadow: none; }

/* Fassung B */
.kkar-form-2 .kkar-folie:not(.kkar-aktiv) { opacity: 0; pointer-events: none; }
.kkar-form-2 .kkar-punkt { width: 10px; height: 10px; margin: 0 5px; border-radius: 50%; background: #d5d9df; cursor: pointer; }
.kkar-form-2 .kkar-punkt--an { background: #16233a; }
.kkar-form-2 a:focus, .kkar-form-2 a:focus-visible { outline: none; box-shadow: none; }

/* ---------- komp-4-navigation ---------- */
.knav-seite { position: relative; min-height: 20rem; border: 1px solid #5b6577; border-radius: 0.3rem; background: #ffffff; color: #16233a; }
.knav-marke { margin: 0; padding: 0.7rem 1rem 0.5rem; font-size: 1.15rem; font-weight: 700; }
.knav-leiste { display: block; background: #f2f4f7; border-top: 1px solid #5b6577; border-bottom: 1px solid #5b6577; }
.knav-liste { display: flex; flex-wrap: wrap; margin: 0; padding: 0 0.5rem; list-style: none; }
.knav-punkt { position: relative; margin: 0; }
.knav-eintrag { display: flex; align-items: center; gap: 0.45rem; box-sizing: border-box; min-height: 2.75rem; padding: 0.4rem 0.75rem; border: 0; border-radius: 0; background: transparent; color: #16233a; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.knav-eintrag:hover { background: #e3e8ee; }
.knav-pfeil { flex: none; width: 0.5rem; height: 0.5rem; margin-top: -0.25rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.knav-unter { position: absolute; left: 0; top: 100%; z-index: 5; min-width: 13rem; margin: 0; padding: 0.25rem 0; list-style: none; background: #ffffff; border: 1px solid #5b6577; box-shadow: 0 0.4rem 1rem rgba(22, 35, 58, 0.25); }
.knav-unter a { display: flex; align-items: center; min-height: 2.75rem; padding: 0.3rem 1rem; color: #16233a; text-decoration: none; }
.knav-unter a:hover { background: #e3e8ee; text-decoration: underline; }
.knav-inhalt { padding: 1rem; max-width: 60ch; }
.knav-inhalt > :last-child { margin-bottom: 0; }
.knav-inhalt-titel { margin: 0 0 0.5rem; font-size: 1.15rem; }

/* Fassung A */
.knav-form-1 .knav-unter { display: none; }
.knav-form-1 .knav-mit:hover > .knav-unter { display: block; }
.knav-form-1 .knav-mit:hover > .knav-eintrag { background: #e3e8ee; }
.knav-form-1 .knav-mit:hover .knav-pfeil { margin-top: 0.25rem; transform: rotate(-135deg); }
.knav-form-1 .knav-hier { color: #9c1458; }

/* Fassung B */
.knav-form-2 .knav-unter[hidden] { display: none; }
.knav-form-2 .knav-eintrag[aria-expanded="true"] { background: #e3e8ee; }
.knav-form-2 .knav-eintrag[aria-expanded="true"] .knav-pfeil { margin-top: 0.25rem; transform: rotate(-135deg); }
.knav-form-2 .knav-eintrag[aria-current="page"] { color: #9c1458; text-decoration: underline; text-decoration-thickness: 0.2em; text-underline-offset: 0.35em; }
.knav-form-2 .knav-eintrag:focus-visible, .knav-form-2 .knav-unter a:focus-visible { outline-offset: -4px; box-shadow: none; }

@media (max-width: 40rem) {
  .knav-liste { flex-direction: column; padding: 0; }
  .knav-unter { position: static; min-width: 0; border-width: 1px 0; box-shadow: none; }
  .knav-unter a { padding-left: 1.75rem; }
}

/* ---------- komp-5-formular ---------- */
.kform-rahmen { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; max-width: 30rem; overflow-wrap: anywhere; }
.kform-titel { font-size: 1.2rem; font-weight: 700; line-height: 1.25; margin: 0; }
.kform-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.kform-form[hidden] { display: none; }
.kform-form p { margin: 0; }
.kform-block { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.8rem; margin: 0; padding: 0.8rem; border: 1px solid #5b6577; border-radius: 0.25rem; min-width: 0; }
.kform-legende { font-weight: 700; padding: 0 0.3rem; }
.kform-feld { display: grid; gap: 0.3rem; }
.kform-label { font-weight: 600; }
.kform-rot { color: #c4161c; }
.kform-hinweis { color: #3f4a5e; font-size: 0.95rem; }
.kform-eingabe { width: 100%; min-height: 2.75rem; padding: 0.45rem 0.6rem; border: 2px solid #5b6577; border-radius: 0.25rem; background: #ffffff; color: #16233a; }
.kform-eingabe--kurz { max-width: 7rem; }
.kform-eingabe--mittel { max-width: 12rem; }
.kform-eingabe--zwei::placeholder { color: #9aa3ad; opacity: 1; }
.kform-eingabe--markiert { border-color: #c4161c; }
.kform-paar { display: flex; gap: 0.5rem; }
.kform-paar .kform-eingabe { min-width: 0; }
.kform-paar .kform-eingabe--kurz { flex: 0 0 6rem; }
.kform-wahl { display: flex; gap: 0.5rem; align-items: flex-start; }
.kform-wahl input { width: 1.25rem; height: 1.25rem; margin: 0.15rem 0 0; flex: 0 0 auto; }
.kform-gebuehr { font-weight: 600; }
.kform-meldung { color: #a1131c; font-weight: 600; padding-left: 0.6rem; border-left: 0.3rem solid #a1131c; }
.kform-sammel { padding: 0.8rem 1rem; border: 3px solid #a1131c; }
.kform-sammel-kopf { font-size: 1.05rem; margin: 0 0 0.5rem; }
.kform-sammel-liste { margin: 0; padding-left: 1.2rem; }
.kform-sammel-liste li { margin-bottom: 0.4rem; }
.kform-sammel-liste a { color: #a1131c; font-weight: 600; }
.kform-schritt { font-size: 1.05rem; margin: 0; padding-bottom: 0.3rem; border-bottom: 2px solid #16233a; }
.kform-liste { margin: 0; display: grid; gap: 0.5rem; }
.kform-liste dt { font-weight: 600; }
.kform-liste dd { margin: 0; overflow-wrap: anywhere; }
.kform-ausgabe { font-weight: 600; }
.kform-ausgabe:empty { position: absolute; }
.kform-ausgabe--rot { color: #c4161c; }
.kform-knoepfe { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.kform-knopf { justify-self: start; min-height: 2.75rem; padding: 0.5rem 1rem; border: 2px solid #16233a; border-radius: 0.3rem; background: #16233a; color: #ffffff; font-weight: 600; cursor: pointer; }
.kform-knopf:hover { background: #2c3d5c; }
.kform-knopf--hell { background: #ffffff; color: #16233a; }
.kform-knopf--hell:hover { background: #edf0f3; }

/* ---------- sites ---------- */
.sites-liste { max-width: 75ch; padding-left: 1.4rem; }
.sites-liste li { margin-bottom: 0.5rem; }
.sites-text { max-width: 75ch; }
.sites-titel { font-size: 1.2rem; margin-top: 1.75rem; }
.sites-hinweis { margin-bottom: 1.25rem; }
