/* Konsole neu · Gestaltungssystem (19.10.2026). Verbindliche Vorlage: Testseite v16 (admin/konsole-neu-2026-10-18/VERBINDLICH.md).
   Ohne CSS-Ebene geladen, nach k-neu.css. Alle bisherigen Stildateien liegen in der Ebene "alt" (bau/lagen-erzeugen.mjs, Rahmen lage()),
   deshalb gewinnt jede Regel hier unabhaengig von der Spezifitaet der alten. Hier steht nur das AUSSEHEN der gemeinsamen Bausteine
   (Flaeche, Ecken, Schatten, Schrift, Farben, Zustaende); Anordnung und Abstaende einzelner Module bleiben bei ihren Dateien, damit
   keine Seite zerfaellt. Farben ausschliesslich ueber die Tokens aus k-neu.css (hell, dunkel, Kundenfarbe). */

/* ---------- Grundlage ---------- */
html { -webkit-text-size-adjust: 100%; }
body { font: 13.5px/1.45 var(--k-schrift-text, "Inter", ui-sans-serif, "Segoe UI", Roboto, sans-serif); color: var(--k-text); -webkit-font-smoothing: antialiased; letter-spacing: -.003em; }
h1, h2, h3, h4 { color: var(--k-text); font-family: var(--k-schrift-text, inherit); }
.seitenkopf h1, main h1 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 750; letter-spacing: -.025em; line-height: 1.15; }
main h2 { font-size: 15.5px; font-weight: 650; letter-spacing: -.01em; }
main h3 { font-size: 13.5px; font-weight: 650; }
/* Keine Linkfarbe hier: eine Regel ausserhalb der Ebenen schluege jede Bausteinregel der Ebene "alt" (Knoepfe und Pillen auf
   Akzentflaechen, gemessen 19.10.: 46 Texte unter 4,5). Die Farbe kommt aus plattform.css (a: --akzent-text, in k-neu.css gesetzt). */
a { text-underline-offset: 3px; }
::selection { background: color-mix(in srgb, var(--k-akzent) 30%, transparent); }
:focus-visible { outline: 2.5px solid color-mix(in srgb, var(--k-akzent) 70%, var(--k-text)); outline-offset: 2px; }
.leise, .text2 { color: var(--k-text-leise); }
.sehr-leise, .text3 { color: var(--k-text-3); }
.mono, .zelle-mono, code { font-family: ui-monospace, "Geist Mono", "SFMono-Regular", Consolas, monospace; font-variant-numeric: tabular-nums; }

/* ---------- Seitenkopf ---------- */
.seitenkopf { gap: 14px; }
.seitenkopf .unter { color: var(--k-text-leise); font-size: 14px; }
.seitenkopf .zurueck { color: var(--k-text-leise); font-weight: 600; text-decoration: none; }
.seitenkopf .zurueck:hover { color: var(--k-text); }

/* ---------- Karten: helles Glas mit Glanzkante ---------- */
.karte, .rb-karte, .ks-karte, .k-karte, .panel, .kachel, .k-kachel, .kpi, .kennzahl, .rb-innen, .ka-karte, .kb-karte, .kd-karte, .wm-karte, .ab-karte {
  background: var(--kn-glas-dicht); -webkit-backdrop-filter: blur(26px) saturate(1.8); backdrop-filter: blur(26px) saturate(1.8);
  border: 0; border-radius: var(--kn-r-karte, 18px); color: var(--k-text);
  box-shadow: inset 0 1px 0 var(--kn-kante), inset 0 0 0 .5px var(--kn-rand), 0 4px 18px rgba(20,30,60,.08);
}
html[data-k-modus="dunkel"] :is(.karte, .rb-karte, .ks-karte, .k-karte, .panel, .kachel, .k-kachel, .kpi, .kennzahl, .rb-innen, .ka-karte, .kb-karte, .kd-karte, .wm-karte, .ab-karte) {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), inset 0 0 0 .5px rgba(255,255,255,.08), 0 6px 22px rgba(0,0,0,.35);
}
.karte-kopf h2, .karte > h2:first-child, .rb-karte-kopf h2, .abschnitt h2 { font-size: 15px; font-weight: 650; }
.karte .karte, .karte .rb-karte { background: var(--kn-fuell); -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; }

/* ---------- Knoepfe: Pillen aus Glas, Hauptaktion als Verlauf in der Akzentfarbe ---------- */
.knopf, .knopf-rund, .rb-mini-knopf, .zeile-aktion, button.auswahlknopf {
  border: 0; border-radius: 999px; font-weight: 600; letter-spacing: -.005em; color: var(--k-text); text-decoration: none; cursor: pointer;
  background: var(--kn-glas-dicht); -webkit-backdrop-filter: blur(12px) saturate(1.8); backdrop-filter: blur(12px) saturate(1.8);
  box-shadow: inset 0 1px 0 var(--kn-kante), inset 0 0 0 .5px var(--kn-rand), 0 1px 3px rgba(20,30,60,.1);
  transition: background .2s, box-shadow .3s, transform .45s var(--kn-feder, cubic-bezier(.2,.8,.2,1));
}
:is(.knopf, .knopf-rund, .rb-mini-knopf, .zeile-aktion):hover { background: var(--kn-glas-voll); box-shadow: inset 0 1px 0 var(--kn-kante), inset 0 0 0 .5px var(--kn-rand), 0 6px 16px rgba(20,30,60,.12); transform: translateY(-1px); }
:is(.knopf, .knopf-rund, .rb-mini-knopf):active { transform: translateY(0) scale(.98); }
:is(.knopf, .rb-mini-knopf, .knopf-rund).primaer, .knopf.akzent, .knopf.p {
  color: var(--k-auf-akzent); background: linear-gradient(180deg, color-mix(in srgb, var(--k-akzent) 82%, #fff), var(--k-akzent));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5), inset 0 -1px 0 rgba(0,0,0,.08), 0 4px 14px color-mix(in srgb, var(--k-akzent) 35%, transparent);
}
:is(.knopf, .rb-mini-knopf, .knopf-rund).primaer:hover, .knopf.akzent:hover { background: linear-gradient(180deg, color-mix(in srgb, var(--k-akzent) 70%, #fff), var(--k-akzent)); }
.knopf.gefahr, .knopf.rot, .knopf.loeschen { color: var(--k-fehler); background: var(--k-fehler-weich); box-shadow: none; }
.knopf.gefahr:hover, .knopf.rot:hover, .knopf.loeschen:hover { background: color-mix(in srgb, var(--k-fehler) 18%, var(--k-fehler-weich)); }
.knopf.leise, .knopf.ghost, .knopf.link { background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; color: var(--k-text-leise); }
.knopf.leise:hover, .knopf.ghost:hover, .knopf.link:hover { background: var(--kn-fuell); color: var(--k-text); }
/* Auswahlleiste der Listen: ohne Auswahl nur "Alle auf dieser Seite" und die Zahl; Aktion, Bestaetigung und Knopf kommen mit der
   ersten gewaehlten Zeile (liste.js setzt data-leer; ohne Skript bleibt alles sichtbar) */
form[data-auswahl][data-leer] :is(.auswahlknopf, [data-bestaetigen], [data-sammel-knopf]) { display: none; }
/* Kennzahl-Reihen: buendig mit dem Inhalt, gleicher Abstand wie die uebrigen Bloecke */
.k-kacheln { padding: 0; gap: 12px; }

/* Listen mit "Spalten anpassen" (.lr, plattform.css): Name und E-Mail behalten eine Mindestbreite, feste Spalten geben bei
   Platzmangel zuerst nach (vorher fielen die flexiblen Spalten bei 1024 px auf 0 px) */
.lr-1-f { --lr1: minmax(120px, 1fr); } .lr-1-f2 { --lr1: minmax(150px, 1.6fr); } .lr-1-l { --lr1: minmax(90px, 150px); } .lr-1-m { --lr1: minmax(80px, 120px); } .lr-1-sm { --lr1: minmax(76px, 112px); }
.lr-2-f { --lr2: minmax(120px, 1fr); } .lr-2-f2 { --lr2: minmax(150px, 1.6fr); } .lr-2-l { --lr2: minmax(90px, 150px); } .lr-2-m { --lr2: minmax(80px, 120px); } .lr-2-sm { --lr2: minmax(76px, 112px); }
.lr-3-f { --lr3: minmax(120px, 1fr); } .lr-3-f2 { --lr3: minmax(150px, 1.6fr); } .lr-3-l { --lr3: minmax(90px, 150px); } .lr-3-m { --lr3: minmax(80px, 120px); } .lr-3-sm { --lr3: minmax(76px, 112px); }
.lr-4-f { --lr4: minmax(120px, 1fr); } .lr-4-f2 { --lr4: minmax(150px, 1.6fr); } .lr-4-l { --lr4: minmax(90px, 150px); } .lr-4-m { --lr4: minmax(80px, 120px); } .lr-4-sm { --lr4: minmax(76px, 112px); }
.lr-5-f { --lr5: minmax(120px, 1fr); } .lr-5-f2 { --lr5: minmax(150px, 1.6fr); } .lr-5-l { --lr5: minmax(90px, 150px); } .lr-5-m { --lr5: minmax(80px, 120px); } .lr-5-sm { --lr5: minmax(76px, 112px); }
.lr-6-f { --lr6: minmax(120px, 1fr); } .lr-6-f2 { --lr6: minmax(150px, 1.6fr); } .lr-6-l { --lr6: minmax(90px, 150px); } .lr-6-m { --lr6: minmax(80px, 120px); } .lr-6-sm { --lr6: minmax(76px, 112px); }
.lr-7-f { --lr7: minmax(120px, 1fr); } .lr-7-f2 { --lr7: minmax(150px, 1.6fr); } .lr-7-l { --lr7: minmax(90px, 150px); } .lr-7-m { --lr7: minmax(80px, 120px); } .lr-7-sm { --lr7: minmax(76px, 112px); }
.lr-8-f { --lr8: minmax(120px, 1fr); } .lr-8-f2 { --lr8: minmax(150px, 1.6fr); } .lr-8-l { --lr8: minmax(90px, 150px); } .lr-8-m { --lr8: minmax(80px, 120px); } .lr-8-sm { --lr8: minmax(76px, 112px); }

/* Reicht die Breite der Liste nicht (unter 820 px, z. B. Fenster um 1024 px mit Leiste), wird jede .lr-Liste zweispaltig wie die
   schmale Ansicht: Kopf, Auswahl, Menue und "schmal-weg"-Spalten entfallen, nichts laeuft seitlich ueber */
/* 19.10.2026 abends: in der Ebene "alt" und ohne Spezifitaet, sonst ueberschreibt die Regel (ohne Ebene) die Containernamen der
   alten Pakete (abliste, autoliste, adliste, cmliste, prliste, rsliste ...) und deren Spaltenregeln fuer schmale Breiten greifen nie */
@layer alt { :where(.liste) { container: liste / inline-size; } }
@container liste (max-width: 820px) {
  .liste-zeile.lr:not(.liste-kopf) { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); row-gap: 2px; }
  .liste-zeile.lr > :is(.schmal-weg, .lr-wahl, .lr-leer, .zeilenmenue) { display: none; }
  .liste-kopf.lr { display: none; }
}

/* Pflichtsternchen: Fehlerfarbe statt Akzentschrift (Akzent auf hellen Feldflaechen im Dunkelmodus 4,43); auf gewaehlten Chips bleibt die Chipschrift */
.pflicht:not(.aktiv *, [aria-current] *, [aria-pressed="true"] *) { color: var(--k-fehler); }

/* Filter-Chips aller Module (Vorlage v16 .chip): gefuellte Pille ohne Rand, aktiv in Textfarbe auf Grundfarbe, Zahl etwas leiser */
:is(.kd-segchip, .kp-chip, .pf-chip, .wahlchip span) { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 12px; border: 0; border-radius: 999px;
  background: var(--kn-fuell-2); color: var(--k-text-leise); font-size: 12.5px; font-weight: 600; text-decoration: none; box-shadow: none;
  transition: background .2s, color .2s, transform .45s var(--kn-feder, ease); }
:is(.kd-segchip, .kp-chip, .pf-chip):hover, .wahlchip span:hover { background: var(--kn-fuell-3, var(--kn-fuell-2)); border: 0; color: var(--k-text); }
:is(.kd-segchip, .kp-chip, .pf-chip):active, .wahlchip span:active { transform: scale(.96); }
:is(.kd-segchip, .kp-chip, .pf-chip):is([aria-current], [aria-pressed="true"]), :is(.kd-segchip, .kp-chip, .pf-chip):is([aria-current], [aria-pressed="true"]):hover,
.wahlchip input:checked + span { background: var(--k-text); color: var(--k-papier); }
:is(.kd-segchip, .kp-chip, .pf-chip) .kd-segzahl { font-weight: 700; opacity: .75; }
.kd-segmente { gap: 8px; }

/* Aktuelle Seite beim Blaettern (Liste.astro): Akzentflaeche, Schrift kommt aus k-neu.css (--k-auf-akzent), in beiden Modi lesbar */
.knopf-rund.dunkel, .knopf-rund.dunkel:hover { background: var(--k-akzent); color: var(--k-auf-akzent); box-shadow: none; transform: none; }
:is(.knopf, .knopf-rund):disabled, :is(.knopf, .knopf-rund)[aria-disabled="true"] { opacity: .5; cursor: not-allowed; transform: none; }
.link-pfeil { color: var(--k-akzent-text); font-weight: 600; text-decoration: none; }
.link-pfeil:hover { text-decoration: underline; }

/* ---------- Felder ---------- */
:where(main, .k-panel, dialog, .kn-fall) :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="hidden"]), select, textarea) {
  border: 0; border-radius: 12px; background: var(--kn-fuell-2); color: var(--k-text); font: inherit;
  box-shadow: inset 0 0 0 .5px var(--kn-rand); transition: background .2s, box-shadow .2s;
}
:where(main, .k-panel, dialog, .kn-fall) :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="hidden"]), select, textarea):hover { background: var(--kn-fuell-3); }
:where(main, .k-panel, dialog, .kn-fall) :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="color"], [type="file"], [type="hidden"]), select, textarea):focus { background: var(--kn-glas-voll); box-shadow: 0 0 0 3px color-mix(in srgb, var(--k-akzent) 45%, transparent); outline: none; }
:where(main, .k-panel, dialog) ::placeholder { color: var(--k-text-3); opacity: 1; }
.feld label, .feld > span:first-child, label.label, .label { font-size: 12.5px; font-weight: 600; color: var(--k-text-leise); }
.feld .hilfe, .hilfe { color: var(--k-text-3); font-size: 12px; }
input[type="checkbox"], input[type="radio"], input[type="range"] { accent-color: var(--k-akzent); }
.kontrolle { color: var(--k-text); }

/* ---------- Meldungen ---------- */
.meldung { border: 0; border-radius: 14px; color: var(--k-text); background: var(--kn-glas-dicht); box-shadow: inset 0 0 0 .5px var(--kn-rand); }
.meldung.ok, .meldung.gut { background: var(--k-erfolg-weich); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k-erfolg) 30%, transparent); }
.meldung.fehler, .meldung.gefahr { background: var(--k-fehler-weich); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k-fehler) 35%, transparent); }
.meldung.warn, .meldung.warnung { background: var(--k-warnung-weich); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k-warnung) 35%, transparent); }
.meldung.info { background: var(--k-info-weich); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k-info) 30%, transparent); }

/* ---------- Pillen (Status) ---------- */
.pille { border: 0; border-radius: 999px; font-size: 11.5px; font-weight: 600; letter-spacing: 0; background: var(--kn-fuell-2); color: var(--k-text-leise); }
.pille.gut, .pille.ok, .pille.p-g { background: var(--k-erfolg-weich); color: var(--k-erfolg); }
.pille.warn, .pille.p-y { background: var(--k-warnung-weich); color: var(--k-warnung); }
.pille.fehler, .pille.gefahr, .pille.p-r { background: var(--k-fehler-weich); color: var(--k-fehler); }
.pille.info, .pille.p-b { background: var(--k-info-weich); color: var(--k-info); }
.pille.akzent { background: var(--k-akzent-weich); color: var(--k-akzent-text); }
.pille.grau, .pille.neutral { background: var(--kn-fuell-2); color: var(--k-text-leise); }

/* ---------- Tabellen und Listenzeilen ---------- */
:where(main, .k-panel) table { border-collapse: collapse; }
:where(main, .k-panel) th { font-size: 12px; font-weight: 600; color: var(--k-text-leise); background: transparent; border: 0; border-bottom: 1px solid var(--k-linie); text-transform: none; letter-spacing: 0; }
:where(main, .k-panel) td { border: 0; border-bottom: 1px solid var(--k-linie); color: var(--k-text); }
:where(main, .k-panel) tbody tr { transition: background .15s; }
:where(main, .k-panel) tbody tr:hover { background: var(--kn-glas-voll); }
.liste-zeile, .rb-zeile:not(.kopf), .k-zeile, .termin, .domain, .rb-termin, .person { border-color: var(--k-linie); border-radius: 14px; transition: background .15s, transform .3s var(--kn-feder, ease); color: var(--k-text); }
:is(.liste-zeile, .rb-zeile:not(.kopf), .k-zeile, .termin, .domain, .rb-termin):hover { background: var(--kn-glas-voll); }
.liste-kopf, .rb-zeile.kopf { color: var(--k-text-leise); font-size: 12px; font-weight: 600; background: transparent; border-color: var(--k-linie); }
.person-name, .zelle-haupt, .termin-titel, .position-name { color: var(--k-text); font-weight: 600; }
.person-unter, .zelle-klein, .termin-unter, .domain-unter, .zelle-datum { color: var(--k-text-leise); }
.tabelle-huelle, .rb-tabelle { border: 0; border-radius: var(--kn-r-karte, 18px); background: var(--kn-glas-dicht); box-shadow: inset 0 0 0 .5px var(--kn-rand), 0 4px 18px rgba(20,30,60,.06); overflow: hidden; }

/* ---------- Bereichsreiter: Segment aus Glas statt Unterstreichung ---------- */
.bereichsreiter, .statusreiter, .rb-reiter { justify-self: start; align-self: start; margin-right: auto; flex: 0 1 auto; }
.bereichsreiter { display: inline-flex; flex-wrap: wrap; width: fit-content; max-width: 100%; gap: 2px; padding: 3px; border: 0; border-radius: 14px; background: var(--kn-fuell); }
.bereichsreiter a { padding: 7px 14px; border: 0; border-radius: 11px; color: var(--k-text-leise); font-weight: 600; text-decoration: none; box-shadow: none; }
.bereichsreiter a:hover { background: var(--kn-fuell-2); color: var(--k-text); }
.bereichsreiter a:is([aria-current="page"], [aria-current="true"]) { background: var(--kn-glas-voll); color: var(--k-text); box-shadow: 0 1px 3px rgba(20,30,60,.12), inset 0 0 0 .5px var(--kn-rand); }
.bereichsreiter a::after, .bereichsreiter a::before { display: none; }

/* ---------- Suchfelder: ein Feld, keine Box in der Box ---------- */
:is(.suchfeld-gross, .filtersuche, .ke-suchfeld, .suchfeld, .rb-suche, .liste-suche) { border: 0; border-radius: 999px; background: var(--kn-fuell-2); box-shadow: inset 0 0 0 .5px var(--kn-rand); color: var(--k-text-leise); }
:is(.suchfeld-gross, .filtersuche, .ke-suchfeld, .suchfeld, .rb-suche, .liste-suche):focus-within { background: var(--kn-glas-voll); box-shadow: 0 0 0 3px color-mix(in srgb, var(--k-akzent) 45%, transparent); }
:where(main) :is(.suchfeld-gross, .filtersuche, .ke-suchfeld, .suchfeld, .rb-suche, .liste-suche) :is(input, input:hover, input:focus) { background: transparent; box-shadow: none; border-radius: 0; }

/* ---------- Gruppen- und Kartentitel: ruhig, keine Grossbuchstaben ---------- */
.ke-gruppe-titel, .karte-titel, .rb-titel, .ks-titel { text-transform: none; letter-spacing: -.01em; font-size: 15px; font-weight: 650; color: var(--k-text); }
.k-kachel-label { color: var(--k-text-leise); font-weight: 600; }
.k-kachel-wert { color: var(--k-text); font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
:where(main, .k-panel) th, :where(main, .k-panel) th * { font-family: inherit; text-transform: none; letter-spacing: 0; }
.mono, .zelle-mono { font-family: inherit; }

/* ---------- Reiter, Segmente, Chips ---------- */
:is(.reiter, .statusreiter, .rb-reiter, .untermenue-flach, .segment, .wahl-segment) { background: var(--kn-fuell); border: 0; border-radius: 14px; padding: 3px; gap: 2px; width: fit-content; max-width: 100%; }
:is(.reiter, .statusreiter, .rb-reiter, .untermenue-flach, .segment) a, .segment button { border: 0; border-radius: 11px; background: transparent; color: var(--k-text-leise); font-weight: 600; text-decoration: none; }
:is(.reiter, .statusreiter, .rb-reiter, .untermenue-flach, .segment) a:hover { background: var(--kn-fuell-2); color: var(--k-text); }
:is(.reiter, .statusreiter, .rb-reiter, .untermenue-flach, .segment) a:is([aria-current="page"], [aria-current="true"]), .segment button[aria-pressed="true"] { background: var(--kn-glas-voll); color: var(--k-text); box-shadow: 0 1px 3px rgba(20,30,60,.12), inset 0 0 0 .5px var(--kn-rand); }
.chip { border: 0; border-radius: 999px; background: var(--kn-fuell-2); color: var(--k-text-leise); font-weight: 600; text-decoration: none; }
.chip:hover { background: var(--kn-fuell-3); color: var(--k-text); }
.chip:is([aria-pressed="true"], [aria-current="page"], [aria-current="true"], .aktiv) { background: var(--k-text); color: var(--k-papier); }

/* ---------- Schalter, Avatare, Zeichen ---------- */
.avatar, .konto-avatar { background: var(--kn-glas-voll); color: var(--k-text); font-weight: 700; box-shadow: inset 0 0 0 .5px var(--kn-rand); }
.zahl, .kpi-wert, .kz-wert, .rb-betrag { font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.kpi-label, .kz-name { color: var(--k-text-leise); font-weight: 600; }

/* ---------- Leere Zustaende, Aufklapper, Trenner ---------- */
.leer, .rb-leer, .kw-leer { color: var(--k-text-3); }
details.aufklapp > summary, details.karte > summary { cursor: pointer; font-weight: 600; color: var(--k-text); }
hr { border: 0; border-top: 1px solid var(--k-linie); }

/* ---------- Dialoge und Panels ---------- */
dialog, .k-panel, .rb-dialog, .rb-panel { background: var(--kn-glas-voll); -webkit-backdrop-filter: blur(30px) saturate(1.8); backdrop-filter: blur(30px) saturate(1.8); border: 0; border-radius: 22px; box-shadow: var(--kn-schatten-hoch); color: var(--k-text); }
dialog::backdrop { background: rgba(10, 15, 30, .22); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }

/* ---------- Seitenabschluss ---------- */
.seitenabschluss { color: var(--k-text-3); }

/* ---------- Schrift in Listen und Tabellen: Inter mit gleich breiten Ziffern (Testseite v16), keine Schreibmaschine ---------- */
:where(main, .k-panel) :is(table, tbody, td, th, .liste-zeile, .rb-zeile, .k-zeile, .liste-kopf) :not(code, kbd, pre, .code) { font-family: var(--k-schrift-text, "Inter", ui-sans-serif, sans-serif); }
:where(main, .k-panel) :is(td, .liste-zeile, .rb-zeile) { font-variant-numeric: tabular-nums; }
.liste-kopf, .liste-kopf *, .rb-zeile.kopf, .rb-zeile.kopf * { text-transform: none; letter-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  :is(.knopf, .knopf-rund, .rb-mini-knopf, .zeile-aktion, .liste-zeile, .karte) { transition: none; transform: none !important; }
}
