/* Version: 2.8 | 2026-10-23 | Ladezeit/Barrierefreiheit (Platz-1-Checkliste Punkt 3): Name des gesperrten Warenkorb-Knopfs bleibt auf dem Handy für Vorleser erhalten (nur noch unsichtbar statt display:none), Platzhaltertext der Produktkarte mit ausreichendem Kontrast (text-secondary).
   Version: 2.7 | 2026-10-18 | Spec 226: Teilen-Knopf in der Titelleiste des Produktfensters (.rkb-pm__teilen, Tippfläche wie das Schließen-Kreuz).
   Version: 2.6 | 2026-10-05 | Spec 104 (P104d): Blatt „Mehr“ zeigt das Signet (hell/dunkel) statt der runden Scheibe.
   Version: 2.5 | 2026-10-05 | Spec 159 (P159c): Karte „Bestellverlauf übernehmen“ in der Verwaltung — Formulare untereinander, Auswahlfeld „älter als ihr Konto“.
   Version: 2.4 | 2026-10-02 | Spec 020: Kundenbereich „Mein Konto“ (.rkb-kseite, Karten, Bestellverlauf als aufklappbare Karten, Blättern,
   Bestätigungsfenster „Konto löschen“) und Fenster „Bestellung wiederholen“ (.rkb-wdh); Handy mit Vollbild-Fenstern. Abschnitt „Spec 020“
   am Dateiende, nur Token.
   Version: 2.3 | 2026-10-02 | Spec 019 (Reparaturen nach Kais iPhone-Abnahme): Kategorien-Auswahl (Knopf + Blatt, überall), Warenkorb
   als Seitenblatt rechts auch am Computer, Rabatt- und Preis-Kachel gleich gebaut, Menü „Mehr“ im Aufbau des Website-Menüs, Tour mit
   Zeiger, Preisliste und Kassen-Fortschritt mit festem Kopf, Eingabefelder mit Abstand, Produktfenster mit Zurück und ohne leeres
   Bildfeld, Video-Fenster passt in die Höhe, Platz für den Widerrufsknopf. Abschnitt „Spec 019“ am Dateiende.
   Version: 2.2 | 2026-10-02 | Spec 018: öffentlicher Katalog (nur ansehen) — Gebinde als Leseliste, gesperrte Mengen-/Warenkorb-Knöpfe mit
 *   Erklärung, gesperrter Warenkorb in der Kategorie-Leiste; nur Token, keine neuen Farbwerte; angemeldeter Bestellschein unverändert.
 * Version: 2.1 | 2026-10-01 | Spec 006 Runde 2: Link in der Anmeldungs-/Passwort-Notiz auf Touch-Geräten ≥ 48 px hoch;
 *   Preisliste in der App-Ansicht nimmt das Etikett „Inhalt“ aus data-label
 *   (rk-tabellen.js) statt aus festem Text; fester Text bleibt nur als Ersatz ohne Skript.
 * Version: 2.0 | 2026-10-01 | Spec 006: App-Oberfläche in der App-Ansicht (bis 767 px, html[data-view="app"], Abschnitt am
 *   Ende): Shop-Leiste statt Tab-Leiste der Website, deckende Summen-/Aktionsleiste über der Leiste (und über dem offenen
 *   Cookie-Hinweis, --rk-hinweis-h), Warenkorb- und Mehr-Blatt, Kasse in vier Schritten, Prüfen als Karten, Preisliste als
 *   Karten; Stile der Verwaltung aus verwaltung.php hierher (Tokens). Webansicht/Desktop unverändert; einzige Ausnahme:
 *   Summen-Leiste und Schwebeknöpfe rücken auch in der Webansicht über einen offenen Cookie-Hinweis.
 * Version: 1.1 | 2026-09-30 | Mobile first nachgeschärft: Summen-Leiste unten (safe-area), Fenster als Blätter/Vollbild,
 *   Tippflächen ≥ 48 px auf Touch-Geräten, Tastatur blendet die Leiste aus.
 * Version: 1.0 | 2026-09-30 | Runde 10 (B1): Stil des Shop-Bestellscheins, Anmeldung und Verwaltung.
 * Baut auf main-v2.css auf (Token, .rk-btn Stil 8/9, .rk-check, .rk-pform, .rk-mac, .rk-card) und rk-ki.css.
 * Regeln: Weiß/Schwarz/Grau, Gold nur als Text (--rk-gold-text), Orange nur als feine Linie/Schrittnummer,
 * keine Farbwerte außerhalb des Token-Blocks, mobile first (390 px zuerst), Hell und Dunkel über Token. */

/* ── Token (nur hier Farbwerte) ─────────────────────────────────────── */
.rkb-body {
  --rkb-max: 1240px;
  --rkb-gutter: 16px;
  --rkb-sticky-top: 72px;
  --rkb-radius-card: 16px;
  --rkb-chip-h: 44px;
  --rkb-tap: 48px;
  --rkb-leiste-h: 72px;
  --rkb-radius-pos: 10px;           /* Positionskarte im Akkordeon der Verwaltung */
  --rkb-app-leiste-h: 64px;         /* App-Ansicht: Summen-/Aktionsleiste über der Shop-Leiste (8 + 48 + 8) */
  --rkb-sheet-max: 88dvh;           /* App-Ansicht: höchstes Blatt von unten */
  --rkb-print-ink: #000000;
  --rkb-print-line: #999999;
  --rkb-print-soft: #555555;
  --rkb-print-paper: #ffffff;
}
@media (min-width: 700px) { .rkb-body { --rkb-gutter: 24px; } }

/* ── Grundlagen ─────────────────────────────────────────────────────── */
.rkb-body main { background: var(--surface-app); }
.rkb-wrap { width: min(var(--rkb-max), calc(100% - 2 * var(--rkb-gutter))); margin-inline: auto; }
.rkb-gold { color: var(--rk-gold-text); }
.rkb-muted { color: var(--text-secondary); }
.rkb-small { font-size: var(--rk-fs-meta); line-height: 1.5; }
.rkb-nowrap { white-space: nowrap; }
.rkb-req { color: var(--rk-danger-fg); font-weight: var(--rk-fw-medium); }
.rkb-num { text-align: right; font-variant-numeric: tabular-nums; }
.rkb-h2 { margin: 6px 0 0; font-size: var(--rk-fs-h2); font-weight: var(--rk-fw-regular); line-height: 1.08; letter-spacing: -.02em; text-wrap: balance; }
.rkb-h3 { margin: 0; font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); line-height: 1.25; letter-spacing: -.01em; }
.rkb-sechead { margin: 0 0 24px; max-width: 60rem; }
.rkb-sechead__sub { margin: 12px 0 0; color: var(--text-secondary); font-size: var(--rk-fs-small); max-width: 60ch; }
.rkb-card {
  position: relative; background: var(--surface-card); color: var(--text-primary);
  border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card);
  box-shadow: var(--rk-shadow-card-rest); padding: 20px;
}
@media (min-width: 700px) { .rkb-card { padding: 24px; } }
.rkb-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; }
.rkb-pill {
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: var(--rk-radius-pill);
  border: 1px solid var(--rk-line-strong); font-size: var(--rk-fs-meta); color: var(--text-primary); font-variant-numeric: tabular-nums;
}
.rkb-pill.is-ok { background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); border-color: var(--rk-btn-primary-bg); }
.rkb-msg { margin: 0 0 16px; padding: 12px 14px; border-radius: var(--rk-radius-md); border: 1px solid; font-size: var(--rk-fs-small); line-height: 1.5; }
.rkb-msg--err { color: var(--rk-danger-fg); background: var(--rk-danger-bg); border-color: var(--rk-danger-brd); }
.rkb-msg--ok { color: var(--rk-success-fg); background: var(--rk-success-bg); border-color: var(--rk-success-brd); }
.rkb-msg[hidden] { display: none; }

/* Passwortfelder im Papierlinien-Formular wie Textfelder (main-v2 kennt nur text/email/tel) */
.rk-pform__cell input[type="password"],
.rk-pform__cell input[type="number"] {
  display: block; width: 100%; min-height: var(--rk-touch-min); margin: 0; padding: 0; border: 0; border-radius: 0;
  outline: none; background: transparent; color: inherit; font-family: var(--rk-font); font-size: var(--rk-fs-input); line-height: 1.4;
}
.rk-pform__cell.rkb-cell--readonly { cursor: default; color: var(--text-secondary); }
.rk-pform__cell.rkb-cell--readonly:focus-within { background: transparent; color: var(--text-secondary); }
.rk-pform__cell.is-invalid { box-shadow: inset 3px 0 0 var(--rk-danger-fg); }
.rk-pform__cell.is-invalid .rk-pform__label::after { content: " — bitte ausfüllen"; color: var(--rk-danger-fg); }
.rk-pform__cell.is-invalid:focus-within .rk-pform__label::after { color: inherit; }

/* ── Anmeldung / Passwort festlegen ─────────────────────────────────── */
.rkb-auth {
  width: min(var(--rkb-max), calc(100% - 2 * var(--rkb-gutter))); margin: 0 auto; padding: 40px 0 72px;
  display: grid; gap: 32px; align-items: start;
}
@media (min-width: 960px) { .rkb-auth { grid-template-columns: 1.1fr .9fr; gap: 64px; padding: 88px 0 120px; align-items: center; } }
.rkb-auth__h1 { margin: 10px 0 16px; font-size: var(--rk-fs-h1); font-weight: var(--rk-fw-regular); line-height: 1.04; letter-spacing: -.025em; text-wrap: balance; }
.rkb-auth__h1 em, .rkb-hero__h1 em { font-style: normal; color: var(--rk-gold-text); }
.rkb-auth__facts { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--rk-line); }
.rkb-auth__facts li { display: flex; gap: 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--rk-line); font-size: var(--rk-fs-small); }
.rkb-auth__num { color: var(--accent-orange); font-variant-numeric: tabular-nums; font-size: var(--rk-fs-meta); letter-spacing: .08em; }
.rkb-auth__win { width: 100%; }
/* Spec 024 K8: Anmeldeseite in der App-Ansicht (Handy bis 767 px): das Formular steht oben, die Einleitung („Mehr zum Shop“, eingeklappt)
   darunter. Nur die Anzeigereihenfolge ändert sich; Desktop und Webansicht bleiben, wie sie waren. Anker #rkb-anmeldung landet unter der Statusleiste. */
.rkb-auth__win { scroll-margin-top: max(var(--rk-header-h, 0px), env(safe-area-inset-top, 0px)); }
@media (max-width: 767px) {
  html[data-view="app"] .rkb-auth { padding-top: max(var(--rk-space-4), env(safe-area-inset-top, 0px)); gap: var(--rk-space-3); }
  html[data-view="app"] .rkb-auth__win { order: -1; }
  html[data-view="app"] .rkb-auth__mehr { order: 1; }
  html[data-view="app"] .rkb-auth__mehr > .rkb-auth__intro { padding-top: var(--rk-space-3); }
}
/* Handy im Querformat (wenig Höhe, Widerruf-Zeile und Tab-Leiste verbrauchen den Rest): Titelleiste des Fensters weg, E-Mail und Passwort nebeneinander,
   damit Felder und Knopf im ersten Bildschirm liegen. Die Beschriftung „Anmeldung“ bleibt im Fenstertitel für Hilfstechnik erhalten (nur optisch ausgeblendet). */
@media (max-width: 767px) and (max-height: 480px) and (orientation: landscape) {
  html[data-view="app"] .rkb-auth { padding-top: var(--rk-space-2); padding-bottom: var(--rk-space-4); }
  html[data-view="app"] .rkb-auth__win > .rk-mac__bar { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  html[data-view="app"] .rkb-auth__body { padding: var(--rk-space-3) var(--rk-space-4); }
  html[data-view="app"] .rkb-auth__win .rk-pform__slab { display: grid; grid-template-columns: 1fr 1fr; }
  html[data-view="app"] .rkb-auth__win .rk-pform__row + .rk-pform__row { border-top: 0; border-left: 1px solid var(--rk-pform-line); }
  html[data-view="app"] .rkb-auth__submit { margin-top: var(--rk-space-3); }
}
.rkb-auth__body { padding: 20px; }
@media (min-width: 700px) { .rkb-auth__body { padding: 28px; } }
.rkb-auth__submit { margin-top: 20px; }
.rkb-auth__note { margin: 16px 0 0; font-size: var(--rk-fs-meta); line-height: 1.55; color: var(--text-secondary); }
.rkb-auth__note a { color: var(--text-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--rk-link-underline); }

/* ── Kontozeile ─────────────────────────────────────────────────────── */
.rkb-konto { border-bottom: 1px solid var(--rk-line); background: var(--surface-card); }
.rkb-konto__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px 0; }
.rkb-konto__who { margin: 0; font-size: var(--rk-fs-meta); color: var(--text-secondary); min-width: 0; overflow-wrap: anywhere; }
.rkb-konto__who strong { color: var(--text-primary); font-weight: var(--rk-fw-medium); }
.rkb-konto__badge { display: inline-flex; margin-left: 10px; padding: 2px 10px; border-radius: var(--rk-radius-pill); background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); font-size: var(--rk-fs-xs); letter-spacing: .06em; text-transform: uppercase; }
.rkb-konto__badge[hidden] { display: none; }
.rkb-konto__aktionen { display: flex; flex-wrap: wrap; gap: 6px; }
.rkb-nur-admin { display: none !important; }
.rkb-is-admin .rkb-nur-admin { display: inline-flex !important; }

/* ── Einstieg ───────────────────────────────────────────────────────── */
.rkb-hero { display: grid; gap: 28px; padding: 40px 0 32px; }
@media (min-width: 960px) { .rkb-hero { grid-template-columns: 1.35fr .95fr; gap: 56px; padding: 72px 0 56px; align-items: end; } }
.rkb-hero__h1 { margin: 10px 0 16px; font-size: var(--rk-fs-h1); font-weight: var(--rk-fw-regular); line-height: 1.04; letter-spacing: -.025em; text-wrap: balance; }
.rkb-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.rkb-steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rk-line); }
.rkb-steps li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--rk-line); font-size: var(--rk-fs-meta); color: var(--text-secondary); }
.rkb-steps li b { display: block; color: var(--text-primary); font-weight: var(--rk-fw-medium); font-size: var(--rk-fs-small); }
.rkb-steps__nr { color: var(--accent-orange); letter-spacing: .08em; font-variant-numeric: tabular-nums; padding-top: 2px; }
.rkb-rabattkarte {
  display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center; margin-top: 20px; padding: 18px 20px;
  border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card); box-shadow: var(--rk-shadow-card);
  background: var(--surface-card);
}
.rkb-rabattkarte[hidden] { display: none; }
.rkb-rabattkarte__zahl { font-size: var(--rk-fs-display); line-height: .9; color: var(--rk-gold-text); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.rkb-rabattkarte__text { font-size: var(--rk-fs-small); color: var(--text-secondary); }

/* ── Admin ──────────────────────────────────────────────────────────── */
.rkb-adminbox { margin-bottom: 24px; }
.rkb-adminbox[hidden] { display: none; }
.rkb-card--admin { display: grid; gap: 12px; border-style: dashed; border-color: var(--rk-line-strong); }
.rkb-aoc { font-size: var(--rk-fs-small); line-height: 1.5; }
.rkb-aoc-aktiv .rkb-card--admin { border-style: solid; border-color: var(--rk-btn-primary-bg); }

/* ── Kategorie-Leiste ───────────────────────────────────────────────── */
.rkb-catnav {
  position: sticky; top: var(--rkb-sticky-top); z-index: 40;
  background: color-mix(in srgb, var(--surface-card) 92%, transparent);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-block: 1px solid var(--rk-line);
}
.rkb-catnav__in { display: flex; align-items: center; gap: 12px; min-height: 60px; }
.rkb-catnav__list {
  list-style: none; margin: 0; padding: 8px 0; display: flex; gap: 8px; overflow-x: auto; flex: 1 1 auto; min-width: 0;
  scrollbar-width: none; scroll-snap-type: x proximity; -webkit-mask-image: linear-gradient(90deg, currentColor 88%, transparent);
  mask-image: linear-gradient(90deg, currentColor 88%, transparent);
}
.rkb-catnav__list::-webkit-scrollbar { display: none; }
.rkb-catnav__list li { flex: none; scroll-snap-align: start; }
.rkb-catnav__chip {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: var(--rk-radius-pill);
  border: 1px solid var(--rk-btn-secondary-brd); background: var(--rk-btn-secondary-bg); color: var(--text-primary);
  font: inherit; font-size: var(--rk-fs-sm); white-space: nowrap; text-decoration: none; cursor: pointer;
  transition: background-color var(--rk-t-base) var(--rk-ease), border-color var(--rk-t-base) var(--rk-ease);
}
.rkb-catnav__chip:hover { background: var(--rk-btn-secondary-hover); }
.rkb-catnav__chip[aria-current="true"] { background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); border-color: var(--rk-btn-primary-bg); }
.rkb-catnav__chip:focus-visible, .rkb-catnav__cart:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-catnav__cart {
  flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: var(--rk-radius-md);
  background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); text-decoration: none; font-size: var(--rk-fs-sm);
  font-variant-numeric: tabular-nums;
}
.rkb-catnav__cart svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.rkb-catnav__count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--rk-radius-pill); background: var(--rk-btn-primary-fg); color: var(--rk-btn-primary-bg); font-size: var(--rk-fs-xs); }
@media (max-width: 479px) { .rkb-catnav__sum { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; } }

/* ── Produkte ───────────────────────────────────────────────────────── */
.rkb-produkte { padding: 48px 0 24px; scroll-margin-top: calc(var(--rkb-sticky-top) + 64px); }
.rkb-laedt { display: flex; align-items: center; gap: 10px; color: var(--text-secondary); }
.rkb-cat { margin: 0 0 48px; scroll-margin-top: calc(var(--rkb-sticky-top) + 76px); }
.rkb-cat__h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--rk-line); font-size: var(--rk-fs-h3); font-weight: var(--rk-fw-regular); letter-spacing: -.01em; }
.rkb-cat__n { font-size: var(--rk-fs-meta); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.rkb-grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .rkb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .rkb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.rkb-prod {
  display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-content: start;
  padding: 16px; border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card);
  background: var(--surface-card); box-shadow: var(--rk-shadow-card-rest);
  transition: box-shadow .35s var(--rk-ease-out), border-color .35s, transform .35s var(--rk-ease-out);
}
@media (min-width: 700px) { .rkb-prod { grid-template-columns: minmax(0, 1fr); padding: 0; overflow: hidden; } }
.rkb-prod:hover { box-shadow: var(--rk-shadow-card); border-color: var(--rk-line-strong); }
.rkb-prod.is-aktiv { border-color: var(--rk-btn-primary-bg); box-shadow: var(--rk-shadow-card); }
.rkb-prod.is-flash { animation: rkb-flash .9s var(--rk-ease-out); }
@keyframes rkb-flash { 0% { transform: scale(.985); } 60% { transform: scale(1.01); } 100% { transform: none; } }
.rkb-prod__media {
  position: relative; display: block; width: 100%; aspect-ratio: 1; margin: 0; padding: 0; border: 0; border-radius: var(--rk-radius-md);
  background: var(--surface-hover); overflow: hidden; cursor: zoom-in;
}
@media (min-width: 700px) { .rkb-prod__media { aspect-ratio: 4 / 3; border-radius: 0; border-bottom: 1px solid var(--rk-line); } }
.rkb-prod__media img { width: 100%; height: 100%; object-fit: contain; display: block; background: var(--surface-card); }
.rkb-prod__media:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-prod__ph { display: grid; place-items: center; width: 100%; height: 100%; color: var(--text-secondary); font-size: var(--rk-fs-xs); text-align: center; padding: 8px; }
.rkb-prod__body { display: grid; gap: 10px; min-width: 0; align-content: start; }
@media (min-width: 700px) { .rkb-prod__body { padding: 16px 18px 18px; } }
.rkb-prod__name { margin: 0; font-size: var(--rk-fs-small); font-weight: var(--rk-fw-medium); line-height: 1.35; }
.rkb-prod__link { all: unset; cursor: pointer; overflow-wrap: anywhere; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color .2s; }
.rkb-prod__link:hover { text-decoration-color: var(--rk-link-underline); }
.rkb-prod__link:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; border-radius: 2px; }
.rkb-prod__sku { margin: -6px 0 0; font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-prod__unit { margin: 0; font-size: var(--rk-fs-sm); color: var(--text-secondary); }
.rkb-prod__unit b { color: var(--text-primary); font-weight: var(--rk-fw-medium); }
.rkb-prod__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.rkb-prod__sum { font-size: var(--rk-fs-card-title); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.rkb-prod__sum.is-leer { color: var(--text-muted); font-size: var(--rk-fs-small); }
.rkb-prod__hint { margin: 0; font-size: var(--rk-fs-xs); color: var(--rk-danger-fg); min-height: 0; }
.rkb-prod__hint:empty { display: none; }
.rkb-prod__more summary { cursor: pointer; font-size: var(--rk-fs-xs); color: var(--text-secondary); list-style: none; display: inline-flex; align-items: center; min-height: 32px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--rk-line-strong); }
.rkb-prod__more summary::-webkit-details-marker { display: none; }
.rkb-prod__more summary:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-prod__more[open] summary { margin-bottom: 6px; }

/* Gebinde-Chips (genau eins wählbar) */
.rkb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rkb-chip {
  display: inline-flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px;
  min-height: var(--rkb-chip-h); padding: 4px 12px; border-radius: var(--rk-radius-sm);
  border: 1px solid var(--rk-btn-secondary-brd); background: var(--rk-btn-secondary-bg); color: var(--text-primary);
  font: inherit; font-size: var(--rk-fs-sm); line-height: 1.2; text-align: left; cursor: pointer;
  transition: background-color var(--rk-t-base) var(--rk-ease), border-color var(--rk-t-base) var(--rk-ease), color var(--rk-t-base) var(--rk-ease);
}
.rkb-chip small { font-size: var(--rk-fs-xs); color: var(--text-secondary); font-variant-numeric: tabular-nums; }
/* Grundpreis je Gebinde (Spec 024): eigene Zeile im Chip, mindestens 14 px über das Token; Ersparnis dezent darunter */
.rkb-chip__gp { font-weight: var(--rk-fw-medium); }
.rkb-prod__spar, .rkb-pm__spar { display: grid; gap: var(--rk-space-hair); margin: 0; font-size: var(--rk-fs-xs); line-height: 1.35; color: var(--text-secondary); overflow-wrap: anywhere; }
.rkb-pm__spar { margin-top: var(--rk-space-2); }
.rkb-pm__spar[hidden] { display: none; }
.rkb-cart__gp { font-variant-numeric: tabular-nums; }
.rkb-chip:hover { border-color: var(--rk-line-strong); background: var(--rk-btn-secondary-hover); }
.rkb-chip[aria-checked="true"] { background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); border-color: var(--rk-btn-primary-bg); }
.rkb-chip[aria-checked="true"] small { color: inherit; opacity: .8; }
.rkb-chip:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }

/* Farbton */
.rkb-farbe {
  display: inline-flex; align-items: center; gap: 10px; min-height: var(--rkb-chip-h); padding: 4px 12px 4px 6px; max-width: 100%;
  border: 1px dashed var(--rk-line-strong); border-radius: var(--rk-radius-sm); background: transparent; color: var(--text-primary);
  font: inherit; font-size: var(--rk-fs-sm); cursor: pointer; text-align: left;
}
.rkb-farbe.is-gesetzt { border-style: solid; }
.rkb-farbe.is-fehlt { border-color: var(--rk-danger-brd); color: var(--rk-danger-fg); }
.rkb-farbe:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-farbe__swatch { flex: none; width: 32px; height: 32px; border-radius: 6px; border: 1px solid var(--rk-line); background: repeating-linear-gradient(45deg, var(--surface-hover) 0 4px, var(--surface-card) 4px 8px); }
.rkb-input {
  width: 100%; min-height: var(--rkb-chip-h); padding: 0 12px; border: 1px solid var(--rk-field-brd); border-radius: var(--rk-radius-sm);
  background: var(--rk-field-bg); color: var(--text-primary); font: inherit; font-size: var(--rk-fs-input);
}
.rkb-input:focus-visible, .rkb-select:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 1px; border-color: var(--rk-field-brd-focus); }
.rkb-input[aria-invalid="true"] { border-color: var(--rk-danger-brd); }
.rkb-select {
  min-height: var(--rkb-chip-h); padding: 0 36px 0 12px; border: 1px solid var(--rk-field-brd); border-radius: var(--rk-radius-sm);
  background: var(--rk-field-bg); color: var(--text-primary); font: inherit; font-size: var(--rk-fs-input); max-width: 100%;
}
.rkb-select:disabled { opacity: .6; }
.rkb-input--pct { width: 88px; }

/* Menge */
.rkb-qty { display: inline-flex; align-items: stretch; height: 48px; border: 1px solid var(--rk-field-brd); border-radius: var(--rk-radius-md); overflow: hidden; background: var(--rk-field-bg); }
.rkb-qty__btn { width: 44px; border: 0; background: transparent; color: var(--text-primary); font: inherit; font-size: 22px; line-height: 1; cursor: pointer; }
.rkb-qty__btn:hover { background: var(--surface-hover); }
.rkb-qty__btn:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; }
.rkb-qty__in { width: 56px; border: 0; border-inline: 1px solid var(--rk-line); background: transparent; color: var(--text-primary); font: inherit; font-size: var(--rk-fs-input); text-align: center; font-variant-numeric: tabular-nums; }
.rkb-qty__in:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; }

/* Freie Positionen (Admin) */
.rkb-free { margin: 8px 0 32px; }
.rkb-free[hidden] { display: none; }
.rkb-free__list { display: grid; gap: 12px; }
.rkb-freerow { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 14px; border: 1px dashed var(--rk-line-strong); border-radius: var(--rkb-radius-card); }
.rkb-freerow label { display: grid; gap: 4px; font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-freerow .rkb-freerow__wide { grid-column: 1 / -1; }
@media (min-width: 900px) { .rkb-freerow { grid-template-columns: 90px 1fr 2fr 1fr 110px 1.2fr auto; align-items: end; } .rkb-freerow .rkb-freerow__wide { grid-column: auto; } }

/* ── Zwischen-Aufruf ────────────────────────────────────────────────── */
.rkb-band { margin: 16px auto 64px; }
.rkb-band__in {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
  padding: 24px; border-radius: var(--rkb-radius-card); border: 1px solid var(--rk-line); box-shadow: var(--rk-shadow-card);
  background: var(--surface-card); position: relative; overflow: hidden;
}
.rkb-band__in::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--accent-orange); }
.rkb-band__text { margin: 0; display: grid; gap: 4px; color: var(--text-secondary); font-size: var(--rk-fs-small); }
.rkb-band__big { font-size: var(--rk-fs-h2); color: var(--text-primary); line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }

/* ── Kasse ──────────────────────────────────────────────────────────── */
.rkb-kasse { padding: 16px 0 64px; scroll-margin-top: calc(var(--rkb-sticky-top) + 64px); }
.rkb-kasse__grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .rkb-kasse__grid { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 24px; align-items: start; } .rkb-kasse__rechts { position: sticky; top: calc(var(--rkb-sticky-top) + 76px); } }
.rkb-kasse__links, .rkb-kasse__rechts { display: grid; gap: 16px; min-width: 0; grid-template-columns: minmax(0, 1fr); }
.rkb-cart__list { list-style: none; margin: 0 0 12px; padding: 0; }
.rkb-cart__list:empty { display: none; }
.rkb-cart__item { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--rk-line); }
.rkb-cart__name { font-size: var(--rk-fs-sm); line-height: 1.4; overflow-wrap: anywhere; }
.rkb-cart__name b { font-weight: var(--rk-fw-medium); }
.rkb-cart__meta { display: block; color: var(--text-secondary); font-size: var(--rk-fs-xs); }
.rkb-cart__sum { font-variant-numeric: tabular-nums; font-size: var(--rk-fs-sm); white-space: nowrap; }
.rkb-cart__del { width: 36px; height: 36px; border: 0; border-radius: var(--rk-radius-sm); background: transparent; color: var(--text-secondary); cursor: pointer; display: grid; place-items: center; }
.rkb-cart__del:hover { background: var(--surface-hover); color: var(--text-primary); }
.rkb-cart__del:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 1px; }
.rkb-cart__del svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.rkb-abholung { font-size: var(--rk-fs-small); margin-top: 4px; }
.rkb-daten { margin-top: 4px; }
.rkb-extras { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.rkb-extras .rk-btn[aria-pressed="true"] { border-color: var(--rk-btn-primary-bg); }
.rkb-extra-info { margin: 10px 0 0; padding: 10px 12px; border-left: 3px solid var(--rk-btn-primary-bg); background: var(--rk-surface-tint); font-size: var(--rk-fs-sm); overflow-wrap: anywhere; }
.rkb-extra-info[hidden] { display: none; }
.rkb-agb { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr); margin-top: 8px; }
@media (min-width: 600px) { .rkb-agb { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rkb-agb__item { padding: 8px 14px; border: 1px solid var(--rk-line-strong); border-radius: var(--rk-radius-md); font-size: var(--rk-fs-sm); }
.rkb-agb__item.is-ok { border-color: var(--rk-btn-primary-bg); }
.rkb-agb__status { margin: 10px 0 0; font-size: var(--rk-fs-sm); color: var(--text-secondary); min-height: 1.4em; }
.rkb-agb__status.is-ok { color: var(--rk-success-fg); }
.rkb-auto-bestaetigt .rkb-agb { opacity: .7; }
.rkb-widerrufhinweis p { margin: 0 0 10px; font-size: var(--rk-fs-small); line-height: 1.6; }
.rkb-widerrufhinweis .rkb-h3 { margin-bottom: 12px; }

.rkb-summen .rkb-sums { margin: 0; display: grid; }
.rkb-sums__row { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--rk-line); font-size: var(--rk-fs-sm); }
.rkb-sums__row[hidden] { display: none; }
.rkb-sums__row dt { color: var(--text-secondary); }
.rkb-sums__row dd { margin: 0; font-variant-numeric: tabular-nums; text-align: right; }
.rkb-sums__row--sub dt, .rkb-sums__row--sub dd { color: var(--text-primary); }
.rkb-sums__row--rabatt dt, .rkb-sums__row--rabatt dd { color: var(--rk-gold-text); }
.rkb-sums__row--tot { border-bottom: 0; padding-top: 14px; align-items: baseline; }
.rkb-sums__row--tot dt { color: var(--text-primary); font-size: var(--rk-fs-small); }
.rkb-sums__row--tot dd { font-size: var(--rk-fs-h3); letter-spacing: -.015em; }
.rkb-rabattwahl { display: grid; gap: 6px; margin: 0 0 12px; padding: 12px; border: 1px dashed var(--rk-line-strong); border-radius: var(--rk-radius-md); }
.rkb-rabattwahl[hidden] { display: none; }
.rkb-rabattwahl__label { font-size: var(--rk-fs-xs); letter-spacing: .06em; color: var(--text-secondary); }
.rkb-rabattwahl__ctrl { display: flex; gap: 8px; flex-wrap: wrap; }
.rkb-aktionen { display: grid; gap: 10px; margin-top: 16px; }
.rkb-aktionen__neben { display: flex; flex-wrap: wrap; gap: 8px; }
.rkb-zahlung__list { margin: 12px 0; padding-left: 1.2em; display: grid; gap: 8px; font-size: var(--rk-fs-sm); line-height: 1.55; }
.rkb-zahlung__list li::marker { color: var(--accent-orange); }

/* ── Preisliste ─────────────────────────────────────────────────────── */
.rkb-preisliste { padding: 0 0 80px; }
.rkb-pl { padding: 0; }
.rkb-pl__sum { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; cursor: pointer; list-style: none; }
.rkb-pl__sum::-webkit-details-marker { display: none; }
.rkb-pl__sum > span:first-child { display: grid; gap: 4px; }
.rkb-pl__sum:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; border-radius: var(--rkb-radius-card); }
.rkb-pl__chev { width: 12px; height: 12px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s var(--rk-ease); flex: none; }
.rkb-pl[open] .rkb-pl__chev { transform: rotate(-135deg); }
.rkb-pl > p, .rkb-pl > .rkb-pl__scroll, .rkb-pl > .rk-btn { margin: 0 24px 16px; }
.rkb-pl > .rk-btn { margin-bottom: 24px; }
.rkb-pl__scroll { overflow-x: auto; border: 1px solid var(--rk-line); border-radius: var(--rk-radius-md); }
.rkb-pl__scroll:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-pl__table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: var(--rk-fs-sm); }
.rkb-pl__table th { position: sticky; top: 0; background: var(--rk-surface-tint); text-align: left; font-weight: var(--rk-fw-medium); font-size: var(--rk-fs-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); padding: 10px 12px; border-bottom: 1px solid var(--rk-line); }
.rkb-pl__table td { padding: 8px 12px; border-bottom: 1px solid var(--rk-line); vertical-align: top; }
.rkb-pl__table tr.grp td { padding-top: 18px; font-size: var(--rk-fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--rk-gold-text); border-bottom-color: var(--rk-line-strong); }
.rkb-pl__table tr.sub td { border-bottom-color: transparent; }
.rkb-pl__table .an { display: block; font-weight: var(--rk-fw-medium); }
.rkb-pl__table .sku { display: block; font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-pl__table .sku::before { content: "Art.-Nr. "; }
.rkb-pl__table td.pr, .rkb-pl__table td.ppk { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rkb-pl__table td.ppk { color: var(--text-secondary); }

/* ── Fenster ────────────────────────────────────────────────────────── */
dialog.rkb-dlg { width: min(620px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); }
dialog.rkb-dlg--wide { width: min(1040px, calc(100vw - 24px)); }
dialog.rkb-dlg--legal { width: min(760px, calc(100vw - 24px)); }
dialog.rkb-dlg--video { width: min(900px, calc(100vw - 24px)); }
dialog.rkb-dlg--send { width: min(420px, calc(100vw - 24px)); }
.rkb-dlg__body { padding: 20px; }
@media (min-width: 700px) { .rkb-dlg__body { padding: 28px; } }
.rkb-dlg__h { margin: 0 0 10px; font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); line-height: 1.25; }
.rkb-dlg__body > p, .rkb-dlg__text p { font-size: var(--rk-fs-small); line-height: 1.55; color: var(--text-secondary); margin: 0 0 14px; }
.rkb-dlg__text { font-size: var(--rk-fs-small); line-height: 1.55; }
.rkb-dlg__btns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 20px; }
@media (max-width: 599px) { .rkb-dlg__btns { flex-direction: column-reverse; } .rkb-dlg__btns .rk-btn { width: 100%; } }
.rkb-summary { margin: 0 0 14px; display: grid; }
.rkb-summary > div { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--rk-line); font-size: var(--rk-fs-sm); }
.rkb-summary dt { color: var(--text-secondary); }
.rkb-summary dd { margin: 0; text-align: right; font-weight: var(--rk-fw-medium); overflow-wrap: anywhere; }
.rkb-note-box, .rkb-pay-box { margin: 0 0 12px; padding: 12px 14px; border-radius: var(--rk-radius-md); font-size: var(--rk-fs-sm); line-height: 1.55; }
.rkb-note-box { background: var(--rk-surface-tint); border: 1px solid var(--rk-line); }
.rkb-pay-box { background: var(--rk-warning-bg); border: 1px solid var(--rk-warning-brd); color: var(--text-primary); }
.rkb-pay-box ol { margin: 8px 0 0; padding-left: 1.2em; display: grid; gap: 4px; }
.rkb-errlist { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; font-size: var(--rk-fs-small); color: var(--rk-danger-fg); }
.rkb-tourslot { margin: 0 0 14px; }
.rkb-tourslot[hidden] { display: none; }

/* Produktfenster */
.rkb-pm { display: grid; gap: 20px; }
@media (min-width: 860px) { .rkb-pm { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; } .rkb-pm > .rkb-tourslot { grid-column: 1 / -1; } }
.rkb-pm__main { position: relative; aspect-ratio: 1; border-radius: var(--rk-radius-md); border: 1px solid var(--rk-line); background: var(--surface-card); overflow: hidden; display: grid; place-items: center; }
.rkb-pm__main img { width: 100%; height: 100%; object-fit: contain; }
.rkb-pm__ph { color: var(--text-muted); font-size: var(--rk-fs-sm); }
.rkb-pm__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--rk-line); background: var(--surface-card); color: var(--text-primary); font-size: 22px; line-height: 1; cursor: pointer; box-shadow: var(--rk-shadow-sm); }
.rkb-pm__arrow--prev { left: 10px; }
.rkb-pm__arrow--next { right: 10px; }
.rkb-pm__arrow:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-pm__dots { display: flex; justify-content: center; gap: 4px; margin-top: 10px; }
.rkb-pm__dots[hidden] { display: none; }
.rkb-pm__dot { width: 32px; height: 32px; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; padding: 0; }
.rkb-pm__dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rk-line-strong); }
.rkb-pm__dot.is-aktiv::before { background: var(--text-primary); width: 10px; height: 10px; }
.rkb-pm__dot:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; border-radius: 50%; }
.rkb-pm__title { margin: 0; font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); line-height: 1.25; overflow-wrap: anywhere; }
.rkb-pm__desc { font-size: var(--rk-fs-sm); line-height: 1.6; color: var(--text-secondary); max-height: 280px; overflow: auto; margin: 10px 0 14px; padding-right: 4px; }
.rkb-pm__desc * { font-size: inherit !important; color: inherit !important; font-family: inherit !important; }
.rkb-pm__desc img { max-width: 100%; height: auto; }
.rkb-pm__block { margin: 0 0 16px; }
.rkb-pm__block[hidden], .rkb-pm__unit[hidden] { display: none; }
.rkb-pm__label { margin: 0 0 8px; font-size: var(--rk-fs-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); }
.rkb-pm__unit { font-size: var(--rk-fs-sm); margin: 0 0 16px; }
.rkb-pm__farbe { font-size: var(--rk-fs-sm); margin: 8px 0 0; min-height: 1.4em; }
.rkb-pm__order { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.rkb-pm__hint { margin: 10px 0 0; font-size: var(--rk-fs-sm); min-height: 1.4em; }
.rkb-pm__hint.is-err { color: var(--rk-danger-fg); }
.rkb-pm__hint.is-ok { color: var(--rk-success-fg); }
.rkb-pm__nav { display: flex; justify-content: space-between; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--rk-line); }
.rkb-fk { margin: 0 0 12px; }
.rkb-fk__label { margin: 0 0 6px; font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-fk__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); gap: 6px; }
.rkb-fk__sw { aspect-ratio: 1; min-width: 36px; border-radius: 6px; border: 1px solid var(--rk-line); cursor: pointer; padding: 0; }
.rkb-fk__sw[aria-pressed="true"] { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-fk__sw:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; box-shadow: var(--rk-focus-ring); }

/* Rechtstext-Fenster */
.rkb-legal__hint { margin: 0 0 12px; font-size: var(--rk-fs-sm); color: var(--text-secondary); }
.rkb-legal__hint[hidden] { display: none; }
.rkb-legal__text { max-height: min(58vh, 560px); overflow: auto; padding: 4px 16px 4px 0; font-size: var(--rk-fs-sm); line-height: 1.65; color: var(--text-primary); border-block: 1px solid var(--rk-line); }
.rkb-legal__text:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-legal__text h1 { font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); margin: 16px 0 8px; }
.rkb-legal__text h2, .rkb-legal__text h3 { font-size: var(--rk-fs-small); font-weight: var(--rk-fw-medium); margin: 18px 0 6px; }
.rkb-legal__text p, .rkb-legal__text li { margin: 0 0 8px; }
.rkb-legal__text a { color: var(--text-primary); text-decoration: underline; text-decoration-color: var(--rk-link-underline); text-underline-offset: 3px; }
.rkb-legal__text .rk-legal-note { margin: 8px 0; padding: 10px 12px; border-left: 3px solid var(--rk-line-strong); background: var(--rk-surface-tint); }
.rkb-legal__text .rk-legal-small { font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-legal__text table { border-collapse: collapse; }
.rkb-legal__text [style*="background"] { background: var(--rk-surface-tint) !important; color: var(--text-primary) !important; }
.rkb-legal__scroll { margin: 10px 0 0; font-size: var(--rk-fs-sm); color: var(--text-secondary); }
.rkb-legal__scroll.is-ok { color: var(--rk-success-fg); }

/* Video */
.rkb-video .rk-ki-wrap { width: 100%; }
.rkb-video video { width: 100%; height: auto; border-radius: var(--rk-radius-md); background: var(--rk-on-media-ink); }

/* Senden */
.rkb-send { text-align: center; padding-block: 36px; }
.rkb-send__spin { width: 36px; height: 36px; border-width: 3px; margin: 0 auto 16px; display: block; }

/* Tour */
.rkb-tour {
  position: fixed; z-index: 9050; width: min(360px, calc(100vw - 24px)); padding: 16px 16px 12px;
  background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); border-radius: var(--rkb-radius-card);
  box-shadow: var(--rk-shadow-card-hover); font-size: var(--rk-fs-sm); line-height: 1.5;
}
.rkb-tour--inline { position: static; width: auto; }
.rkb-tour__count { display: block; font-size: var(--rk-fs-xs); letter-spacing: .08em; text-transform: uppercase; opacity: .75; margin-bottom: 4px; }
.rkb-tour__text { display: block; padding-right: 28px; }
.rkb-tour__acts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.rkb-tour__acts button, .rkb-tour__x {
  min-height: 36px; padding: 0 12px; border-radius: var(--rk-radius-sm); border: 1px solid currentColor; background: transparent; color: inherit;
  font: inherit; font-size: var(--rk-fs-xs); cursor: pointer;
}
.rkb-tour__x { position: absolute; top: 8px; right: 8px; width: 36px; padding: 0; border-color: transparent; font-size: 18px; }
.rkb-tour__acts button:focus-visible, .rkb-tour__x:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.rkb-tour-ziel { outline: 2px solid var(--accent-orange) !important; outline-offset: 4px !important; border-radius: var(--rk-radius-sm); }

/* ── Notfall-Rahmen (nur wenn _shell.html fehlt) ────────────────────── */
.rkb-notkopf { display: flex; justify-content: space-between; align-items: center; padding: 14px var(--rkb-gutter); border-bottom: 1px solid var(--rk-line); background: var(--surface-card); }
.rkb-notkopf__logo { color: var(--text-primary); text-decoration: none; font-size: 22px; letter-spacing: .01em; }
.rkb-notfuss { padding: 24px var(--rkb-gutter); border-top: 1px solid var(--rk-line); text-align: center; font-size: var(--rk-fs-sm); color: var(--text-secondary); }
.rkb-notfuss a { color: var(--text-primary); }
.rkb-body--notfall .theme-fab { position: static; }

/* ── Verwaltung ─────────────────────────────────────────────────────── */
.rkb-admin { padding: 32px 0 80px; }
.rkb-admin__kopf { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 24px; }
.rkb-admin__kopf h1 { margin: 6px 0 0; font-size: var(--rk-fs-h2); font-weight: var(--rk-fw-regular); line-height: 1.08; letter-spacing: -.02em; }
.rkb-admin__links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rkb-admin__sec { margin: 32px 0 0; }
.rkb-admin__sec > h2 { margin: 0 0 12px; font-size: var(--rk-fs-h3); font-weight: var(--rk-fw-regular); }
.rkb-admin__presets { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.rkb-admin__presets span { width: 100%; font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-liste { display: grid; gap: 12px; }
.rkb-zeile { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card); background: var(--surface-card); box-shadow: var(--rk-shadow-card-rest); }
@media (min-width: 900px) { .rkb-zeile { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; } }
.rkb-zeile__main { min-width: 0; }
.rkb-zeile__main strong { display: block; overflow-wrap: anywhere; font-weight: var(--rk-fw-medium); }
.rkb-zeile__meta { font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-zeile__akt { display: flex; flex-wrap: wrap; gap: 6px; }
.rkb-zeile form { margin: 0; display: inline-flex; }
.rkb-status { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: var(--rk-radius-pill); font-size: var(--rk-fs-xs); border: 1px solid; }
.rkb-status--aktiv { color: var(--rk-success-fg); background: var(--rk-success-bg); border-color: var(--rk-success-brd); }
.rkb-status--wartet { color: var(--rk-warning-fg); background: var(--rk-warning-bg); border-color: var(--rk-warning-brd); }
.rkb-status--gesperrt { color: var(--rk-danger-fg); background: var(--rk-danger-bg); border-color: var(--rk-danger-brd); }
.rkb-rabattform { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin-top: 8px; }
.rkb-rabattform label { display: grid; gap: 4px; font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-rabattform .rkb-input { width: 140px; }
.rkb-zeile details summary { cursor: pointer; font-size: var(--rk-fs-sm); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--rk-line-strong); list-style: none; min-height: 32px; display: inline-flex; align-items: center; }
.rkb-zeile details summary::-webkit-details-marker { display: none; }
.rkb-leer { color: var(--text-secondary); font-style: italic; }

/* ── Handy/Tablet: feste Leiste unten mit Summe und Absenden ────────── */
.rkb-leiste { display: none; }
@media (max-width: 1023px) {
  .rkb-leiste {
    position: fixed; left: 0; right: 0; bottom: var(--rk-hinweis-h, 0px); z-index: 8990;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: var(--rkb-leiste-h);
    padding: 10px max(var(--rkb-gutter), env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(var(--rkb-gutter), env(safe-area-inset-left, 0px));
    background: color-mix(in srgb, var(--surface-card) 94%, transparent);
    -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    border-top: 1px solid var(--rk-line); box-shadow: var(--rk-shadow-card-hover);
    transition: transform var(--rk-t-base) var(--rk-ease);
  }
  .rkb-leiste__sum { display: grid; min-width: 0; min-height: var(--rkb-tap); align-content: center; color: var(--text-primary); text-decoration: none; }
  .rkb-leiste__label { font-size: var(--rk-fs-xs); color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .rkb-leiste__tot { font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.2; }
  .rkb-leiste__send { flex: none; min-height: var(--rkb-tap); }
  .rkb-leiste__sum:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; border-radius: var(--rk-radius-sm); }
  /* Platz unter dem Seitenende, damit die Leiste nichts verdeckt */
  body.rkb-mit-leiste { padding-bottom: calc(var(--rkb-leiste-h) + env(safe-area-inset-bottom, 0px)); }
  /* Schwebeknöpfe der Website über die Leiste heben */
  body.rkb-mit-leiste .rk-totop,
  body.rkb-mit-leiste .rk-wfab { bottom: calc(var(--rkb-leiste-h) + var(--rk-fab-gap) + env(safe-area-inset-bottom, 0px) + var(--rk-hinweis-h, 0px)); }
  /* Tastatur offen: Leiste weicht, damit sie kein Feld verdeckt */
  body.rkb-tastatur .rkb-leiste { transform: translateY(110%); pointer-events: none; }
  html { scroll-padding-bottom: calc(var(--rkb-leiste-h) + 16px); }
}
@media (max-width: 359px) { .rkb-leiste__send > span:first-child { font-size: var(--rk-fs-sm); } .rkb-leiste__tot { font-size: var(--rk-fs-small); } }
@media print { .rkb-leiste { display: none !important; } }

/* ── Touch: Tippflächen mindestens 48 px ────────────────────────────── */
@media (pointer: coarse), (max-width: 599px) {
  .rkb-body .rk-btn--sm { min-height: var(--rkb-tap); }
  .rkb-chip, .rkb-farbe, .rkb-input, .rkb-select { min-height: var(--rkb-tap); }
  .rkb-catnav__chip, .rkb-catnav__cart { min-height: var(--rkb-tap); }
  .rkb-qty { height: calc(var(--rkb-tap) + 2px); }
  .rkb-body .rk-pform__cell input, .rkb-body .rk-pform__cell select { min-height: var(--rkb-tap); }
  .rkb-qty__btn { width: var(--rkb-tap); }
  .rkb-cart__del { width: var(--rkb-tap); height: var(--rkb-tap); }
  .rkb-prod__more summary, .rkb-zeile details summary { min-height: var(--rkb-tap); }
  .rkb-agb__item { min-height: var(--rkb-tap); display: flex; align-items: center; }
  .rkb-tour__acts button { min-height: var(--rkb-tap); }
  .rkb-tour__x { width: var(--rkb-tap); height: var(--rkb-tap); min-height: var(--rkb-tap); top: 4px; right: 4px; }
  .rkb-pm__arrow { width: var(--rkb-tap); height: var(--rkb-tap); }
  .rkb-pm__dot { width: var(--rkb-tap); height: var(--rkb-tap); }
  .rkb-fk__grid { grid-template-columns: repeat(auto-fill, minmax(var(--rkb-tap), 1fr)); gap: 8px; }
  .rkb-fk__sw { min-width: var(--rkb-tap); }
  .rkb-dlg .rk-mac__close { width: var(--rkb-tap); height: var(--rkb-tap); }
  .rkb-auth__note a { display: inline-flex; align-items: center; min-height: var(--rkb-tap); } /* Spec 006 R2: auch kurzer Link ≥ 48 px */
  .rkb-prod__link { display: inline-flex; align-items: center; min-height: var(--rkb-tap); }
  .rkb-pm__desc summary { display: flex; align-items: center; min-height: var(--rkb-tap); cursor: pointer; }
  .rkb-leiste__send, .rkb-aktionen .rk-btn { min-height: var(--rkb-tap); }
}

/* ── Handy: Fenster als Blatt von unten, große Fenster als Vollbild ────── */
@media (max-width: 599px) {
  dialog.rkb-dlg, .rkb-body dialog.rk-dialog.rk-mac {
    position: fixed; inset: auto 0 0 0; width: 100%; max-width: 100%; margin: 0; max-height: 92dvh;
    border-radius: var(--rk-radius-win) var(--rk-radius-win) 0 0; border-bottom: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  dialog.rkb-dlg--wide, dialog.rkb-dlg--legal, dialog.rkb-dlg--video {
    inset: 0; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; border: 0;
    padding-top: env(safe-area-inset-top, 0px);
  }
  dialog.rkb-dlg > .rk-mac__bar { position: sticky; top: 0; z-index: 3; }
  .rkb-dlg__body { padding: 18px var(--rkb-gutter) 24px; }
  .rkb-legal__text { max-height: calc(100dvh - 300px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); padding-right: 8px; }
  .rkb-pm__desc { max-height: none; }
}

/* ── Druck ──────────────────────────────────────────────────────────── */
.rkb-print { display: none; }
@media print {
  @page { size: A4; margin: 12mm; }
  body.rkb-printing, body.rkb-printing-pl { background: var(--rkb-print-paper); }
  body.rkb-printing > :not(main), body.rkb-printing-pl > :not(main) { display: none !important; }
  body.rkb-printing main > :not(.rkb), body.rkb-printing-pl main > :not(.rkb) { display: none !important; }
  body.rkb-printing .rkb > :not(.rkb-print) { display: none !important; }
  body.rkb-printing .rkb-print { display: block !important; color: var(--rkb-print-ink); font-family: var(--rk-font); font-size: 10pt; line-height: 1.35; }
  body.rkb-printing-pl .rkb > :not(.rkb-preisliste) { display: none !important; }
  body.rkb-printing-pl .rkb-preisliste { padding: 0; width: 100%; }
  body.rkb-printing-pl .rkb-pl { border: 0; box-shadow: none; }
  body.rkb-printing-pl .rkb-pl__chev, body.rkb-printing-pl #rkb-pl-print { display: none !important; }
  body.rkb-printing-pl .rkb-pl__scroll { overflow: visible; border: 0; }
  body.rkb-printing-pl .rkb-pl__table { min-width: 0; font-size: 8.5pt; }
  body.rkb-printing-pl .rkb-pl__table th { position: static; }
  body.rkb-printing-pl .rkb-pl__table tr { break-inside: avoid; }
  .rkb-p__kopf { display: flex; justify-content: space-between; gap: 12mm; border-bottom: 1.5pt solid var(--rkb-print-ink); padding-bottom: 3mm; margin-bottom: 4mm; }
  .rkb-p__marke { font-size: 14pt; }
  .rkb-p__adr { font-size: 8pt; color: var(--rkb-print-soft); margin-top: 1mm; }
  .rkb-p__titel { font-size: 18pt; letter-spacing: .06em; text-align: right; }
  .rkb-p__meta { font-size: 8.5pt; text-align: right; margin-top: 2mm; }
  .rkb-p__meta span { display: inline-block; min-width: 38mm; border-bottom: .5pt solid var(--rkb-print-line); text-align: left; }
  .rkb-p__h { font-size: 8pt; letter-spacing: .12em; text-transform: uppercase; margin: 4mm 0 1.5mm; color: var(--rkb-print-soft); }
  .rkb-p__kunde { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5mm 8mm; }
  .rkb-p__kunde div { border-bottom: .5pt solid var(--rkb-print-line); padding: 1mm 0; min-height: 6mm; }
  .rkb-p__kunde b { display: inline-block; min-width: 28mm; font-weight: normal; color: var(--rkb-print-soft); }
  .rkb-p__tab { width: 100%; border-collapse: collapse; font-size: 8.5pt; }
  .rkb-p__tab th { text-align: left; border-bottom: 1pt solid var(--rkb-print-ink); padding: 1.5mm 1mm; font-weight: normal; font-size: 7.5pt; text-transform: uppercase; letter-spacing: .06em; }
  .rkb-p__tab td { border-bottom: .5pt solid var(--rkb-print-line); padding: 1.8mm 1mm; height: 7mm; vertical-align: top; }
  .rkb-p__tab td.r, .rkb-p__tab th.r { text-align: right; white-space: nowrap; }
  .rkb-p__tab tr { break-inside: avoid; }
  .rkb-p__sums { margin: 3mm 0 0 auto; width: 80mm; font-size: 9pt; }
  .rkb-p__sums div { display: flex; justify-content: space-between; padding: .8mm 0; border-bottom: .5pt solid var(--rkb-print-line); }
  .rkb-p__sums div.tot { border-bottom: 1.5pt solid var(--rkb-print-ink); font-size: 11pt; }
  .rkb-p__pay { margin-top: 4mm; padding: 2.5mm 3mm; border: 1pt solid var(--rkb-print-ink); font-size: 8pt; break-inside: avoid; }
  .rkb-p__sign { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8mm; margin-top: 14mm; font-size: 7.5pt; color: var(--rkb-print-soft); break-inside: avoid; }
  .rkb-p__sign div { border-top: .5pt solid var(--rkb-print-ink); padding-top: 1mm; }
  .rkb-p__legal { margin-top: 5mm; font-size: 7pt; color: var(--rkb-print-soft); }
}

/* Verwaltung: Akkordeon „Bestellung ansehen“ (Spec 008; Spec 006 10b: aus dem <style>-Block von verwaltung.php, Tokens) */
.rkb-beleg > summary { min-height: var(--rkb-tap); }
.rkb-ob { margin-top: 8px; padding: 14px; border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card); background: var(--surface-sunken); min-width: 0; }
.rkb-ob h4 { margin: 16px 0 6px; font-size: var(--rk-fs-sm); font-weight: var(--rk-fw-medium); }
.rkb-ob h4:first-child { margin-top: 0; }
.rkb-ob dl, .rkb-ob dd, .rkb-ob ol { margin: 0; }
.rkb-ob__grid { display: grid; gap: 6px; min-width: 0; }
.rkb-ob__kv { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; }
.rkb-ob__kv dt { font-size: var(--rk-fs-xs); color: var(--text-secondary); }
.rkb-ob__kv dd { overflow-wrap: anywhere; min-width: 0; }
@media (min-width: 600px) { .rkb-ob__kv { grid-template-columns: minmax(120px, 200px) minmax(0, 1fr); gap: 14px; } }
.rkb-ob__pos { list-style: none; padding: 0; display: grid; gap: 8px; }
.rkb-ob__p { padding: 10px 12px; border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-pos); background: var(--surface-card); min-width: 0; }
.rkb-fehlt { display: inline-block; padding: 1px 10px; border: 1px solid var(--rk-danger-brd); border-radius: var(--rk-radius-pill); color: var(--rk-danger-fg); background: var(--rk-danger-bg); font-weight: var(--rk-fw-medium); font-size: var(--rk-fs-xs); }

/* Verwaltung: frühere Inline-Stile als Klassen */
.rkb-admin__absenden { margin: 18px 0 0; }
.rkb-zeile__mehr { grid-column: 1 / -1; }
.rkb-rabattform--eng { margin: 0; }
.rkb-rabattform input[name="discount_source"] { width: min(220px, 100%); }


/* ── Neue Teile der App-Ansicht: außerhalb der App-Ansicht ausgeblendet (Webansicht und Desktop wie bisher) ── */
.rkb-schritte, .rkb-pruefen, .rkb-tabs, .rkb-leiste__zurueck, .rkb-leiste__weiter, .rkb-cart__app, .rkb-feldfehler,
.rkb-zahlung .rkb-ablauf, .rkb-nur-admin-li { display: none; }
.rkb-is-admin .rkb-nur-admin-li { display: block; }
.rkb-ablauf { margin: 0 0 12px; padding: 8px 12px; border-left: 3px solid var(--accent-orange); background: var(--rk-surface-tint); color: var(--text-primary); font-size: var(--rk-fs-sm); line-height: 1.5; }
.rkb-agb__status.is-fehlt { color: var(--rk-danger-fg); }

/* ══ App-Ansicht (Spec 006) — nur bis 767 px und nur bei html[data-view="app"] ═══════════════════════════════════════
   Bildschirm und Kassenschritt setzt bestellschein.js an #rkb-app (data-rkb-ansicht="katalog|kasse", data-rkb-schritt="1…4").
   Unten, von unten nach oben: Shop-Leiste (ersetzt die Tab-Leiste der Website) → offener Cookie-Hinweis → Summen-/Aktions-
   leiste (deckend) → Schwebeknöpfe (Widerruf, Nach oben, Chatbot). --rk-app-unten ist hier deshalb um die Leiste höher. */
@media (max-width: 767px) {
  html[data-view="app"] body.rkb-shop {
    --rk-app-unten: calc(var(--rk-tabbar-h) + var(--rk-tabbar-unten) + var(--rk-hinweis-h, 0px) + var(--rkb-app-leiste-h));
    padding-bottom: calc(var(--rk-tabbar-h) + var(--rk-tabbar-unten) + var(--rkb-app-leiste-h));
  }
  html[data-view="app"]:has(body.rkb-shop) { scroll-padding-bottom: calc(var(--rk-tabbar-h) + var(--rk-tabbar-unten) + var(--rkb-app-leiste-h) + 16px); }
  /* Eine Leiste unten: die Tab-Leiste der Website ist auf der Bestellseite ersetzt, nicht darunter versteckt */
  html[data-view="app"] body.rkb-shop .rk-tabbar,
  html[data-view="app"] body.rkb-shop .rk-tabbar[hidden] { display: none; }
  html[data-view="app"] body.rkb-mit-leiste .rk-wfab,
  html[data-view="app"] body.rkb-mit-leiste .rk-totop { bottom: calc(var(--rk-app-unten) + var(--rk-fab-gap)); }

  /* ── Shop-Leiste ── */
  html[data-view="app"] .rkb-tabs {
    display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 8900;
    padding: 0 env(safe-area-inset-right, 0px) var(--rk-tabbar-unten) env(safe-area-inset-left, 0px);
    background: var(--surface-card); border-top: 1px solid var(--rk-line); box-shadow: var(--rk-shadow-card-rest);
    font-family: var(--font-ui); transition: transform var(--rk-t-base) var(--rk-ease);
  }
  html[data-view="app"] .rkb-tabs__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
  html[data-view="app"] .rkb-tabs__liste > li { min-width: 0; margin: 0; padding: 0; list-style: none; }
  html[data-view="app"] .rkb-tabs__ziel {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    width: 100%; min-width: var(--rk-touch-comfort); min-height: calc(var(--rk-tabbar-h) - 1px); margin: 0; padding: 6px 2px;
    border: 0; border-radius: 0; background: transparent; color: var(--text-secondary); font: inherit; cursor: pointer;
    -webkit-tap-highlight-color: transparent; transition: color .2s;
  }
  html[data-view="app"] .rkb-tabs__symbol { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  html[data-view="app"] .rkb-tabs__symbolbox { position: relative; display: inline-flex; }
  html[data-view="app"] .rkb-tabs__zahl {
    position: absolute; top: -6px; right: -12px; display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px;
    border-radius: var(--rk-radius-pill); background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg);
    font-size: var(--rk-fs-xs); line-height: 1; font-variant-numeric: tabular-nums;
  }
  html[data-view="app"] .rkb-tabs__zahl[hidden] { display: none; }
  html[data-view="app"] .rkb-tabs__text { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--rk-fs-xs); line-height: 1.2; font-variant-numeric: tabular-nums; }
  html[data-view="app"] .rkb-tabs__ziel[aria-current="page"] { color: var(--text-primary); font-weight: var(--rk-fw-medium); }
  html[data-view="app"] .rkb-tabs__ziel[aria-current="page"]::before {
    content: ""; position: absolute; top: 0; left: 50%; width: 24px; height: 2px; margin-left: -12px; background: var(--accent-orange);
  }
  html[data-view="app"] .rkb-tabs__ziel:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -4px; }

  /* ── Summen-/Aktionsleiste: deckend, über der Shop-Leiste und über einem offenen Cookie-Hinweis ── */
  html[data-view="app"] body.rkb-shop .rkb-leiste {
    bottom: calc(var(--rk-tabbar-h) + var(--rk-tabbar-unten) + var(--rk-hinweis-h, 0px));
    min-height: var(--rkb-app-leiste-h); gap: 8px;
    padding: 8px max(var(--rkb-gutter), env(safe-area-inset-right, 0px)) 8px max(var(--rkb-gutter), env(safe-area-inset-left, 0px));
    background: var(--surface-card); -webkit-backdrop-filter: none; backdrop-filter: none;
    border-top: 1px solid var(--rk-line); box-shadow: var(--rk-shadow-card-rest);
    transition: bottom .25s var(--rk-ease-out), transform var(--rk-t-base) var(--rk-ease);
  }
  html[data-view="app"] body.rkb-shop .rkb-leiste__sum { flex: 1 1 auto; }
  html[data-view="app"] body.rkb-shop .rkb-leiste__zurueck {
    flex: none; width: var(--rkb-tap); min-width: var(--rkb-tap); min-height: var(--rkb-tap); padding: 0; justify-content: center;
  }
  html[data-view="app"] body.rkb-shop .rkb-leiste__zurueck svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  html[data-view="app"] body.rkb-shop .rkb-leiste__weiter { flex: none; min-height: var(--rkb-tap); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-leiste__weiter { display: inline-flex; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-leiste__send { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-leiste__zurueck { display: inline-flex; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"][data-rkb-schritt="4"] .rkb-leiste__weiter { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"][data-rkb-schritt="4"] .rkb-leiste__send { display: inline-flex; }
  /* Tastatur offen: beide Leisten weichen, damit sie kein Feld verdecken */
  html[data-view="app"] body.rkb-tastatur .rkb-tabs { transform: translateY(110%); pointer-events: none; }

  /* ── Bildschirme: Katalog oder Kasse ── */
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-band { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht="katalog"] .rkb-kasse { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-hero,
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-adminbox,
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-catnav,
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-produkte,
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-preisliste { display: none; }
  /* Kasse: ein Schritt = ein Bildschirm */
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-kasse [data-rkb-teil] { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"][data-rkb-schritt="1"] .rkb-kasse [data-rkb-teil="1"],
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"][data-rkb-schritt="2"] .rkb-kasse [data-rkb-teil="2"],
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"][data-rkb-schritt="3"] .rkb-kasse [data-rkb-teil="3"],
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"][data-rkb-schritt="4"] .rkb-kasse [data-rkb-teil="4"] { display: block; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-kasse { padding: 8px 0 24px; }
  /* In der Kasse lenkt die Fußzeile der Website ab (Rechtliches steht unter „Mehr“) */
  html[data-view="app"] body.rkb-shop:has(.rkb[data-rkb-ansicht="kasse"]) .site-footer { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-kasse .rkb-sechead { margin-bottom: 8px; }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-kasse .rkb-sechead .rkb-h2 { display: none; }

  /* Kopfbereich kompakt: Kernaussage, Rabatt und Preis-Video bleiben, Anleitung übernimmt die App selbst */
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-konto__aktionen { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero { padding: 20px 0 8px; gap: 12px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__h1 { margin: 6px 0 8px; font-size: var(--rk-fs-h3); line-height: 1.12; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero .rk-lead,
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-steps,
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__cta > a { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__cta { margin-top: 8px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte { margin-top: 0; padding: 12px 16px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte__zahl { font-size: var(--rk-fs-h2); }

  /* ── Katalog: Kategorien als wischbare Chips unter der Kopfzeile, Karten mit Stepper ── */
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-catnav__cart { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-catnav { background: var(--surface-card); -webkit-backdrop-filter: none; backdrop-filter: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-catnav__in { min-height: 56px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-catnav__chip { min-height: var(--rkb-tap); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-produkte { padding: 20px 0 8px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-produkte .rkb-sechead { margin-bottom: 16px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-produkte .rkb-h2 { font-size: var(--rk-fs-h3); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-cat { margin-bottom: 28px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-grid { gap: 12px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-prod { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; padding: 14px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-prod__media { border-radius: var(--rk-radius-md); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-chips { gap: 6px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-chip,
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-farbe { min-height: var(--rkb-tap); }
  html[data-view="app"] .rkb .rkb-qty { height: calc(var(--rkb-tap) + 2px); }
  html[data-view="app"] .rkb .rkb-qty__btn { width: var(--rkb-tap); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-prod__more summary { min-height: var(--rkb-tap); }

  /* ── Preisliste als Karten (Spalten-Etiketten von rk-tabellen.js), kein waagerechtes Scrollen ── */
  html[data-view="app"] .rkb-pl > p, html[data-view="app"] .rkb-pl > .rkb-pl__scroll, html[data-view="app"] .rkb-pl > .rk-btn { margin-inline: 16px; }
  html[data-view="app"] .rkb-pl__sum { padding: 16px; }
  html[data-view="app"] .rkb-pl__scroll { overflow: visible; border: 0; border-radius: 0; }
  html[data-view="app"] .rkb-pl__table, html[data-view="app"] .rkb-pl__table tbody { display: block; width: 100%; min-width: 0; }
  html[data-view="app"] .rkb-pl__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  html[data-view="app"] .rkb-pl__table tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 12px; margin: 0; padding: 8px 12px;
    border: 1px solid var(--rk-line); border-top: 0; background: var(--surface-card);
  }
  html[data-view="app"] .rkb-pl__table tr.first { margin-top: 10px; border-top: 1px solid var(--rk-line); border-radius: var(--rk-radius-md) var(--rk-radius-md) 0 0; }
  html[data-view="app"] .rkb-pl__table tr:has(+ tr.first), html[data-view="app"] .rkb-pl__table tr:has(+ tr.grp), html[data-view="app"] .rkb-pl__table tr:last-child { border-radius: 0 0 var(--rk-radius-md) var(--rk-radius-md); }
  html[data-view="app"] .rkb-pl__table tr.first:has(+ tr.first), html[data-view="app"] .rkb-pl__table tr.first:has(+ tr.grp), html[data-view="app"] .rkb-pl__table tr.first:last-child { border-radius: var(--rk-radius-md); }
  html[data-view="app"] .rkb-pl__table tr.grp { display: block; margin: 20px 0 0; padding: 0; border: 0; background: transparent; }
  html[data-view="app"] .rkb-pl__table td { display: block; padding: 2px 0; border: 0; text-align: left; min-width: 0; overflow-wrap: anywhere; }
  html[data-view="app"] .rkb-pl__table tr.grp td { padding: 0; }
  html[data-view="app"] .rkb-pl__table td.art { grid-column: 1 / -1; padding-bottom: 6px; }
  html[data-view="app"] .rkb-pl__table td.art:empty { display: none; }
  html[data-view="app"] .rkb-pl__table td.var { grid-column: 1; font-weight: var(--rk-fw-medium); }
  html[data-view="app"] .rkb-pl__table td.pr { grid-column: 2; grid-row: span 2; align-self: center; font-size: var(--rk-fs-small); }
  html[data-view="app"] .rkb-pl__table td.inh { grid-column: 1; color: var(--text-secondary); font-size: var(--rk-fs-sm); }
  html[data-view="app"] .rkb-pl__table td.inh::before { content: "Inhalt "; }
  html[data-view="app"] .rkb-pl__table td.ppk { grid-column: 1 / -1; color: var(--text-secondary); font-size: var(--rk-fs-sm); text-align: left; }
  html[data-view="app"] .rkb-pl__table td.ppk:empty { display: none; }
  /* rk-tabellen.js setzt je Zelle data-label aus der Kopfzeile und die Klasse .rk-table--karten. Die Karte gruppiert die
     Gebinde eines Artikels; als Etikett trägt nur „Inhalt“ (Preis und €/kg sprechen für sich), Ersatztext ohne Skript. */
  html[data-view="app"] .rkb-pl__table td[data-label]::before { content: none; }
  html[data-view="app"] .rkb-pl__table td.inh[data-label]::before { content: attr(data-label) " "; }

  /* ── Fortschritt der Kasse ── */
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-schritte { display: block; margin: 0 0 16px; }
  html[data-view="app"] .rkb-schritte__liste { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; list-style: none; }
  html[data-view="app"] .rkb-schritte__liste > li { min-width: 0; list-style: none; }
  html[data-view="app"] .rkb-schritte__ziel {
    display: grid; justify-items: center; gap: 4px; width: 100%; min-height: var(--rkb-tap); padding: 4px 2px; border: 0; background: transparent;
    color: var(--text-secondary); font: inherit; font-size: var(--rk-fs-xs); cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  html[data-view="app"] .rkb-schritte__nr {
    display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--rk-line-strong);
    background: var(--surface-card); color: var(--text-primary); font-variant-numeric: tabular-nums;
  }
  html[data-view="app"] .rkb-schritte__text { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  html[data-view="app"] .rkb-schritte__ziel.is-erledigt .rkb-schritte__nr { border-color: var(--rk-btn-primary-bg); }
  html[data-view="app"] .rkb-schritte__ziel[aria-current="step"] { color: var(--text-primary); font-weight: var(--rk-fw-medium); }
  html[data-view="app"] .rkb-schritte__ziel[aria-current="step"] .rkb-schritte__nr { background: var(--rk-btn-primary-bg); color: var(--rk-btn-primary-fg); border-color: var(--rk-btn-primary-bg); }
  html[data-view="app"] .rkb-schritte__ziel:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; border-radius: var(--rk-radius-sm); }
  html[data-view="app"] .rkb-schritte__live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
  html[data-view="app"] .rkb-kasse .rkb-h3:focus { outline: none; }

  /* ── Fehler am Feld (aria-describedby) ── */
  html[data-view="app"] .rkb-feldfehler:not([hidden]) { display: block; margin: 2px 0 0; color: var(--rk-danger-fg); font-size: var(--rk-fs-sm); line-height: 1.4; }

  /* ── Schritt 3 · Prüfen als Karten ── */
  html[data-view="app"] .rkb-pruefen__inhalt { display: grid; gap: 12px; }
  html[data-view="app"] .rkb-pr__offen { padding: 12px 14px; border: 1px solid var(--rk-danger-brd); border-radius: var(--rk-radius-md); background: var(--rk-danger-bg); }
  html[data-view="app"] .rkb-pr__offen-h { margin: 0 0 6px; color: var(--rk-danger-fg); font-size: var(--rk-fs-sm); font-weight: var(--rk-fw-medium); }
  html[data-view="app"] .rkb-pr__offen-liste { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
  html[data-view="app"] .rkb-pr__sprung {
    display: flex; align-items: center; width: 100%; min-height: var(--rkb-tap); padding: 6px 10px; border: 1px solid var(--rk-danger-brd);
    border-radius: var(--rk-radius-sm); background: var(--surface-card); color: var(--rk-danger-fg); font: inherit; font-size: var(--rk-fs-sm);
    text-align: left; cursor: pointer;
  }
  html[data-view="app"] .rkb-pr__sprung:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
  html[data-view="app"] .rkb-pr__karte { padding: 12px 14px; border: 1px solid var(--rk-line); border-radius: var(--rk-radius-md); background: var(--surface-card); min-width: 0; }
  html[data-view="app"] .rkb-pr__kopf { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  html[data-view="app"] .rkb-pr__h { margin: 0; font-size: var(--rk-fs-small); font-weight: var(--rk-fw-medium); }
  html[data-view="app"] .rkb-pr__karte--summe .rkb-pr__h { margin-bottom: 4px; }
  html[data-view="app"] .rkb-pr__dl { display: grid; gap: 6px; margin: 8px 0 0; }
  html[data-view="app"] .rkb-pr__kv { display: grid; gap: 0; min-width: 0; }
  html[data-view="app"] .rkb-pr__kv dt { font-size: var(--rk-fs-xs); color: var(--text-secondary); }
  html[data-view="app"] .rkb-pr__kv dd { margin: 0; font-size: var(--rk-fs-sm); overflow-wrap: anywhere; }
  html[data-view="app"] .rkb-pr__pos { display: grid; gap: 0; margin: 8px 0 0; padding: 0; list-style: none; }
  html[data-view="app"] .rkb-pr__p { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding: 8px 0; border-top: 1px solid var(--rk-line); font-size: var(--rk-fs-sm); }
  html[data-view="app"] .rkb-pr__pname { overflow-wrap: anywhere; }
  html[data-view="app"] .rkb-pr__psum { white-space: nowrap; font-variant-numeric: tabular-nums; }
  html[data-view="app"] .rkb-pr__pmeta { grid-column: 1 / -1; color: var(--text-secondary); font-size: var(--rk-fs-xs); overflow-wrap: anywhere; }
  html[data-view="app"] .rkb-pr__zust { margin: 6px 0 0; font-size: var(--rk-fs-sm); }
  html[data-view="app"] .rkb-pr__zust.is-ok { color: var(--rk-success-fg); }
  html[data-view="app"] .rkb-cart__fehlt { color: var(--rk-danger-fg); font-weight: var(--rk-fw-medium); }

  /* ── Schritt 4 · Absenden: Ablauf als kleine Infozeile statt des langen Fußtexts ── */
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-zahlung .rkb-ablauf { display: block; margin-top: 4px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-zahlung__fuss { display: none; }

  /* ── Blätter von unten (Warenkorb, Mehr) ── */
  html[data-view="app"] dialog.rkb-sheet {
    position: fixed; inset: auto 0 0 0; width: 100%; max-width: 100%; margin: 0; max-height: var(--rkb-sheet-max);
    border-radius: var(--rk-radius-win) var(--rk-radius-win) 0 0; border-bottom: 0; padding-bottom: env(safe-area-inset-bottom, 0px);
    overscroll-behavior: contain;
  }
  html[data-view="app"] .rkb-sheet__kopf {
    position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px;
    padding: 18px var(--rkb-gutter) 8px; background: var(--surface-card); border-bottom: 1px solid var(--rk-line); touch-action: none;
  }
  html[data-view="app"] .rkb-sheet__griff { position: absolute; top: 6px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: var(--rk-radius-pill); background: var(--rk-line-strong); }
  html[data-view="app"] .rkb-sheet__titel { margin: 0; font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); line-height: 1.25; }
  html[data-view="app"] .rkb-sheet .rk-mac__close { width: var(--rkb-tap); height: var(--rkb-tap); }
  html[data-view="app"] .rkb-sheet__body { padding: 8px var(--rkb-gutter) 20px; }
  html[data-view="app"] .rkb-sheet__korb .rkb-card { padding: 0; border: 0; box-shadow: none; background: transparent; }
  html[data-view="app"] .rkb-sheet__korb .rkb-card__head { display: none; }
  html[data-view="app"] .rkb-sheet__sums { margin: 8px 0 0; padding-top: 4px; border-top: 1px solid var(--rk-line-strong); }
  html[data-view="app"] .rkb-sheet__btns { margin-top: 16px; }

  /* Warenkorb-Positionen als Karten mit Stepper */
  html[data-view="app"] .rkb-sheet__korb .rkb-cart__item { grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px 10px; padding: 12px 0; }
  html[data-view="app"] .rkb-sheet__korb .rkb-cart__item.is-unvollstaendig { box-shadow: inset 3px 0 0 var(--rk-danger-fg); padding-left: 10px; }
  html[data-view="app"] .rkb-cart__app { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; grid-column: 1 / -1; }
  html[data-view="app"] .rkb-cart__del { width: var(--rkb-tap); height: var(--rkb-tap); }
  html[data-view="app"] .rkb-cart__fix { min-height: var(--rkb-tap); }

  /* „Mehr“ */
  html[data-view="app"] .rkb-mehr__h { margin: 16px 0 4px; font-size: var(--rk-fs-xs); font-weight: var(--rk-fw-medium); letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); }
  html[data-view="app"] .rkb-mehr__h:first-child { margin-top: 4px; }
  html[data-view="app"] .rkb-mehr__liste { margin: 0; padding: 0; list-style: none; }
  html[data-view="app"] .rkb-mehr__ziel {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: var(--rkb-tap); padding: 8px 0;
    border: 0; border-bottom: 1px solid var(--rk-line); background: transparent; color: var(--text-primary); font: inherit; font-size: var(--rk-fs-small);
    text-align: left; text-decoration: none; cursor: pointer;
  }
  html[data-view="app"] .rkb-mehr__ziel:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; }
  html[data-view="app"] .rkb-mehr__neben { color: var(--text-secondary); font-size: var(--rk-fs-xs); }
  html[data-view="app"] .rkb-mehr__wer { margin: 0 0 4px; overflow-wrap: anywhere; }
}

/* ── Öffentlicher Katalog (Spec 018): ansehen ja, bestellen erst nach Anmeldung ─────────────────── */
.rkb-chips--lesen { list-style: none; margin: 0; padding: 0; }
.rkb-chip--lesen { cursor: default; }
.rkb-chip--lesen:hover { border-color: var(--rk-btn-secondary-brd); background: var(--rk-btn-secondary-bg); }
.rkb-qty.is-gesperrt { opacity: .5; }
.rkb-qty__btn:disabled, .rkb-qty__in:disabled { cursor: not-allowed; background: transparent; }
.rkb-qty__in:disabled { color: var(--text-muted); }
.rkb-add-gesperrt:disabled, .rkb-pm__order--gesperrt .rk-btn:disabled { opacity: .5; cursor: not-allowed; }
.rkb-sperre { margin: 0; font-size: var(--rk-fs-xs); line-height: 1.45; color: var(--text-secondary); }
.rkb-sperre a { color: var(--text-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--rk-link-underline); display: inline-flex; align-items: center; min-height: 32px; }
.rkb-catnav__cart.is-gesperrt { border: 0; font: inherit; font-size: var(--rk-fs-sm); background: var(--surface-hover); color: var(--text-muted); cursor: not-allowed; opacity: .85; }
.rkb-band__aktionen { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rkb-oeff-hinweis { max-width: 70ch; }
.rkb-zugang { margin-top: 20px; padding: 18px 20px; border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card); box-shadow: var(--rk-shadow-card); background: var(--surface-card); }
.rkb-zugang__text { font-size: var(--rk-fs-small); color: var(--text-secondary); line-height: 1.55; }
.rkb-zugang a { color: var(--text-primary); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--rk-link-underline); }
.rkb-pm__order--gesperrt { flex-direction: column; align-items: flex-start; gap: 6px; }
@media (hover: none) and (pointer: coarse) { .rkb-sperre a { min-height: var(--rkb-tap); } }
/* Kategorie-Leiste der öffentlichen Seite unter der Kopfzeile der Website (96 px), in der App-Ansicht (keine Kopfzeile) am oberen freien Rand */
.rkb-katalogseite { --rkb-sticky-top: 96px; }
html[data-view="app"] .rkb-katalogseite { --rkb-sticky-top: var(--rk-app-oben, 0px); }

/* ══ Spec 019 — Reparaturen nach Kais iPhone-Abnahme ═══════════════════════════════════════════════════════════════════ */

/* ── K1 · Kategorien-Auswahl (rkb-katwahl.js): Knopf in der Leiste, Blatt mit der Liste — gilt in jeder Ansicht ── */
.rkb-katwahl {
  flex: 1 1 auto; min-width: 0; max-width: 560px; display: flex; align-items: center; gap: 10px;
  min-height: var(--rkb-tap); margin: 6px 0; padding: 4px 14px 4px 18px;
  border: 1px solid var(--rk-btn-secondary-brd); border-radius: var(--rk-radius-pill);
  background: var(--rk-btn-secondary-bg); color: var(--text-primary); box-shadow: var(--rk-shadow-card-rest);
  font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: background-color var(--rk-t-base) var(--rk-ease), border-color var(--rk-t-base) var(--rk-ease), box-shadow var(--rk-t-base) var(--rk-ease);
}
.rkb-katwahl:hover { background: var(--rk-btn-secondary-hover); border-color: var(--rk-line-strong); }
.rkb-katwahl:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-katwahl__text { display: grid; flex: 1 1 auto; min-width: 0; line-height: 1.2; }
.rkb-katwahl__vor { font-size: var(--rk-fs-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); }
.rkb-katwahl__name { font-size: var(--rk-fs-small); font-weight: var(--rk-fw-medium); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rkb-katwahl__zahl { flex: none; font-size: var(--rk-fs-xs); color: var(--text-secondary); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rkb-katwahl__wink { flex: none; max-width: 0; overflow: hidden; opacity: 0; white-space: nowrap; font-size: var(--rk-fs-xs); color: var(--text-primary); }
.rkb-katwahl__pfeil { flex: none; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform var(--rk-t-base) var(--rk-ease); }
.rkb-katwahl[aria-expanded="true"] .rkb-katwahl__pfeil { transform: rotate(180deg); }
/* Einmaliger Hinweis beim ersten Erscheinen: fährt aus („Hier wechseln“) und wieder ein, 720 ms */
.rkb-katwahl.is-hinweis { animation: rkb-wink-knopf 720ms var(--rk-ease) both; }
.rkb-katwahl.is-hinweis .rkb-katwahl__wink { animation: rkb-wink 720ms var(--rk-ease) both; }
.rkb-katwahl.is-hinweis .rkb-katwahl__pfeil { animation: rkb-wink-pfeil 720ms var(--rk-ease) both; }
@keyframes rkb-wink { 0% { max-width: 0; opacity: 0; } 35%, 65% { max-width: 11em; opacity: 1; } 100% { max-width: 0; opacity: 0; } }
@keyframes rkb-wink-pfeil { 0%, 100% { transform: none; } 35%, 65% { transform: translateY(3px); } }
@keyframes rkb-wink-knopf { 0%, 100% { box-shadow: var(--rk-shadow-card-rest); } 35%, 65% { box-shadow: var(--rk-shadow-card-hover); border-color: var(--rk-line-strong); } }
@media (prefers-reduced-motion: reduce) { .rkb-katwahl.is-hinweis, .rkb-katwahl.is-hinweis * { animation: none !important; } }
html.no-motion .rkb-katwahl.is-hinweis, html.no-motion .rkb-katwahl.is-hinweis *,
html[data-motion="reduced"] .rkb-katwahl.is-hinweis, html[data-motion="reduced"] .rkb-katwahl.is-hinweis * { animation: none !important; }
@media (max-width: 419px) { .rkb-katwahl__zahl { display: none; } }
.rkb-catnav--wahl .rkb-catnav__in { justify-content: space-between; }

/* Blatt: am Computer ein Fenster in der Mitte, bis 767 px ein Blatt von unten */
dialog.rkb-katblatt {
  width: min(480px, calc(100vw - 24px)); max-height: min(80dvh, 640px); margin: auto; padding: 0;
  border: 1px solid var(--rk-line); border-radius: var(--rk-radius-win); background: var(--rk-vb-flaeche, var(--surface-card)); color: var(--text-primary);
  box-shadow: var(--rk-shadow-card-hover); overflow: auto; overscroll-behavior: contain;
}
dialog.rkb-katblatt::backdrop { background: var(--rk-backdrop, rgba(10, 10, 12, .45)); }
.rkb-katblatt__kopf {
  position: sticky; top: 0; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px;
  padding: 14px 12px 10px 20px; background: inherit; background: var(--rk-vb-flaeche, var(--surface-card)); border-bottom: 1px solid var(--rk-line);
}
.rkb-katblatt__griff { display: none; }
.rkb-katblatt__titel { margin: 0; font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); line-height: 1.25; }
.rkb-katblatt .rk-mac__close { width: var(--rkb-tap); height: var(--rkb-tap); }
.rkb-katblatt__body { padding: 4px 0 12px; }
ul.rkb-katblatt__liste {
  display: block; margin: 0; padding: 0; overflow: visible; list-style: none; -webkit-mask-image: none; mask-image: none;
}
.rkb-katblatt__liste > li { margin: 0; padding: 0; list-style: none; }
.rkb-katblatt__liste > li + li { border-top: 1px solid var(--rk-line); }
.rkb-katblatt .rkb-katblatt__ziel {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 10px 20px; margin: 0;
  border: 0; border-radius: 0; background: transparent; color: var(--text-primary); font: inherit; font-size: var(--rk-fs-small);
  white-space: normal; text-decoration: none; cursor: pointer;
}
.rkb-katblatt .rkb-katblatt__ziel:hover { background: var(--surface-hover); }
.rkb-katblatt .rkb-katblatt__ziel:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -3px; }
.rkb-katblatt .rkb-katblatt__ziel[aria-current="true"] { background: transparent; color: var(--text-primary); border-color: transparent; box-shadow: inset 3px 0 0 var(--accent-orange); font-weight: var(--rk-fw-medium); }
.rkb-katblatt__name { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.rkb-katblatt__n { flex: none; font-size: var(--rk-fs-xs); color: var(--text-secondary); font-weight: var(--rk-fw-regular); }
.rkb-katblatt__haken { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; visibility: hidden; }
.rkb-katblatt__ziel[aria-current="true"] .rkb-katblatt__haken { visibility: visible; }
@media (max-width: 767px) {
  dialog.rkb-katblatt {
    position: fixed; inset: auto 0 0 0; width: 100%; max-width: 100%; margin: 0; max-height: 85dvh;
    border-radius: var(--rk-radius-win) var(--rk-radius-win) 0 0; border-bottom: 0; padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  dialog.rkb-katblatt[open] { animation: rkb-blatt-auf .28s var(--rk-ease-out, ease-out) both; }
  .rkb-katblatt__griff { display: block; position: absolute; top: 6px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: var(--rk-radius-pill); background: var(--rk-line-strong); }
  .rkb-katblatt__kopf { padding-top: 18px; }
}
@keyframes rkb-blatt-auf { from { transform: translateY(32px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { dialog.rkb-katblatt[open] { animation: none; } }
html.no-motion dialog.rkb-katblatt[open], html[data-motion="reduced"] dialog.rkb-katblatt[open] { animation: none; }
/* Abschnitte nicht gewählter Kategorien (rkb-katwahl.js setzt hidden) */
.rkb-cat[hidden] { display: none; }

/* ── K1b · Warenkorb-Knopf oben öffnet das Warenkorb-Blatt; am Computer und in der Webansicht ein Seitenblatt rechts ── */
button.rkb-catnav__cart { border: 0; font: inherit; font-size: var(--rk-fs-sm); cursor: pointer; }
dialog.rkb-sheet {
  position: fixed; inset: 0 0 0 auto; width: min(460px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0;
  border-radius: var(--rk-radius-win) 0 0 var(--rk-radius-win); border-right: 0; overscroll-behavior: contain;
  background: var(--rk-vb-flaeche, var(--surface-card));
}
dialog.rkb-sheet[open] { animation: rkb-seite-rein .28s var(--rk-ease-out, ease-out) both; }
@keyframes rkb-seite-rein { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { dialog.rkb-sheet[open] { animation: none; } }
html.no-motion dialog.rkb-sheet[open], html[data-motion="reduced"] dialog.rkb-sheet[open] { animation: none; }
.rkb-sheet__kopf {
  position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px;
  padding: 14px 12px 10px var(--rkb-gutter); background: var(--rk-vb-flaeche, var(--surface-card)); border-bottom: 1px solid var(--rk-line);
}
.rkb-sheet__griff { display: none; }
.rkb-sheet__titel { margin: 0; font-size: var(--rk-fs-card-title); font-weight: var(--rk-fw-regular); line-height: 1.25; }
.rkb-sheet .rk-mac__close { width: var(--rkb-tap); height: var(--rkb-tap); }
.rkb-sheet__body { padding: 8px var(--rkb-gutter) 24px; }
.rkb-sheet__korb .rkb-card { padding: 0; border: 0; box-shadow: none; background: transparent; }
.rkb-sheet__korb .rkb-card__head { display: none; }
.rkb-sheet__korb .rkb-cart__item { grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px 10px; padding: 12px 0; }
.rkb-sheet__korb .rkb-cart__item.is-unvollstaendig { box-shadow: inset 3px 0 0 var(--rk-danger-fg); padding-left: 10px; }
.rkb-sheet__korb .rkb-cart__app { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; grid-column: 1 / -1; }
.rkb-sheet__korb .rkb-cart__fehlt { color: var(--rk-danger-fg); font-weight: var(--rk-fw-medium); }
.rkb-sheet__sums { margin: 8px 0 0; padding-top: 4px; border-top: 1px solid var(--rk-line-strong); }
.rkb-sheet__btns { margin-top: 16px; }
@media (max-width: 767px) {
  html[data-view="app"] dialog.rkb-sheet { inset: auto 0 0 0; width: 100%; height: auto; max-height: var(--rkb-sheet-max); border-right: 1px solid var(--rk-line); border-radius: var(--rk-radius-win) var(--rk-radius-win) 0 0; }
  html[data-view="app"] dialog.rkb-sheet[open] { animation-name: rkb-blatt-auf; }
  html[data-view="app"] .rkb-sheet__griff { display: block; }
  html[data-view="app"] .rkb-sheet__kopf { padding: 18px var(--rkb-gutter) 8px; }
}

/* ── K2 · Rabatt-Kachel und „So entstehen unsere Preise“: in der App-Ansicht gleich gebaut; am Computer wie bisher ── */
.rkb-rabattkarte__kopf, .rkb-kachel__pfeil, .rkb-leiste-dock { display: none; }
@media (max-width: 767px) {
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte { display: block; margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte[hidden] { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte__zahl { display: none; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte__text { display: none; margin: 0; padding: 10px 16px 2px; font-size: var(--rk-fs-sm); line-height: 1.5; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte.is-offen .rkb-rabattkarte__text { display: block; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-kachel,
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__cta .rkb-hero__video {
    display: flex; align-items: center; justify-content: flex-start; gap: 12px; width: 100%; min-height: 56px; margin: 0; padding: 0 16px;
    border: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card); background: var(--surface-card); color: var(--text-primary);
    box-shadow: var(--rk-shadow-card-rest); font: inherit; font-size: var(--rk-fs-small); font-weight: var(--rk-fw-regular);
    letter-spacing: 0; text-transform: none; text-align: left; line-height: 1.3; cursor: pointer;
  }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-kachel > svg,
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__video > svg { flex: none; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-kachel__text { flex: 1 1 auto; min-width: 0; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-kachel__wert { flex: none; color: var(--rk-gold-text); font-weight: var(--rk-fw-medium); font-variant-numeric: tabular-nums; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-kachel__pfeil { display: block; width: 20px; height: 20px; color: var(--text-secondary); transition: transform var(--rk-t-base) var(--rk-ease); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte__kopf[aria-expanded="true"] .rkb-kachel__pfeil--auf { transform: rotate(180deg); }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-kachel:focus-visible,
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__video:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-rabattkarte.is-offen { padding-bottom: 8px; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__side { gap: 0; }
  html[data-view="app"] .rkb[data-rkb-ansicht] .rkb-hero__cta { display: block; }
}

/* ── K4 · Menü „Mehr“ im Aufbau des Website-Menüs (Stil aus rk-mobilmenue.css, Rahmen hier) ── */
dialog.rkb-mehrblatt {
  position: fixed; inset: 0; width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; padding: var(--rk-sicher-oben, env(safe-area-inset-top, 0px)) 0 0;
  border: 0; border-radius: 0; background: var(--rk-mm-bg); color: var(--text-primary); font-family: var(--font-ui); overflow: hidden; box-shadow: none;
}
dialog.rkb-mehrblatt[open] { display: flex; flex-direction: column; animation: rk-mm-auf .34s var(--rk-ease-out, ease-out) both; }
dialog.rkb-mehrblatt::backdrop { background: var(--rk-backdrop, rgba(10, 10, 12, .45)); }
@media (min-width: 600px) {
  dialog.rkb-mehrblatt { left: auto; width: min(420px, 100%); border-left: 1px solid var(--rk-mm-line); box-shadow: var(--rk-shadow-card-hover); }
}
@media (prefers-reduced-motion: reduce) { dialog.rkb-mehrblatt[open] { animation: none; } }
html.no-motion dialog.rkb-mehrblatt[open], html[data-motion="reduced"] dialog.rkb-mehrblatt[open] { animation: none; }
.rkb-mehrblatt .rk-mm__bar { touch-action: none; }
.rkb-mehrblatt__scroll { flex: 1 1 auto; min-height: 0; height: auto; padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
.rkb-mehrblatt .rkb-mehrblatt__wer { cursor: default; }
.rkb-mehrblatt .rkb-mehrblatt__wer:hover { background: transparent; }
.rkb-mehrblatt .rkb-mehrblatt__wer b { color: var(--text-primary); font-weight: var(--rk-fw-medium); overflow-wrap: anywhere; }
/* Logo als Fläche (dekorativ, Name trägt der Link): dieselben Dateien wie im Website-Menü, hell/dunkel über das Thema */
.rkb-mehrblatt__logo { display: block; width: 40px; height: 40px; background: url("/assets/img/brand/signet-gold-tief.svg") center / contain no-repeat; }
[data-theme="dark"] .rkb-mehrblatt__logo { background-image: url("/assets/img/brand/signet-gold.svg"); }
.rkb-mehrblatt__chat[hidden] { display: none; }
.rkb-mehrblatt__hinweis { margin: -12px 4px 20px; font-size: var(--rk-fs-xs); line-height: 1.45; color: var(--text-secondary); }
.rkb-mehrblatt .a11y-switch__track { margin-left: auto; }

/* ── K3 · Tour: Hinweis mit Zeiger am Element, „Weiter“ hervorgehoben ── */
.rkb-tour { --rkb-tour-pfeil: 32px; }
.rkb-tour__pfeil { position: absolute; top: -8px; left: calc(var(--rkb-tour-pfeil) - 8px); width: 16px; height: 16px; background: inherit; transform: rotate(45deg); border-radius: 2px; }
.rkb-tour--oben .rkb-tour__pfeil { top: auto; bottom: -8px; }
.rkb-tour--inline { position: relative; margin: 10px 0; }
.rkb-tour__acts { justify-content: flex-end; }
.rkb-tour__acts .rkb-tour__weiter { background: var(--rk-btn-primary-fg); color: var(--rk-btn-primary-bg); border-color: var(--rk-btn-primary-fg); font-weight: var(--rk-fw-medium); }
.rkb-tour__acts button { min-height: var(--rkb-tap); padding: 0 16px; font-size: var(--rk-fs-sm); }
.rkb-tour-ziel { box-shadow: 0 0 0 6px color-mix(in srgb, var(--accent-orange) 22%, transparent) !important; }

@media (max-width: 767px) {
  /* ── K5 · Preisliste: Kopf mit Schließen bleibt beim Scrollen oben (unter Statusleiste und Kategorie-Leiste) ── */
  html[data-view="app"] .rkb-pl[open] > .rkb-pl__sum {
    position: sticky; top: calc(var(--rkb-sticky-top, 0px) + var(--rkb-catnav-h, 0px)); z-index: 6;
    background: var(--surface-card); border-bottom: 1px solid var(--rk-line); border-radius: var(--rkb-radius-card) var(--rkb-radius-card) 0 0;
  }
  html[data-view="app"] .rkb-pl { overflow: visible; }

  /* ── K6 · Kasse: Fortschritt bleibt oben stehen; Eingabefelder mit Abstand statt Tabellenoptik ── */
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-schritte {
    position: sticky; top: var(--rk-app-oben, env(safe-area-inset-top, 0px)); z-index: 30; margin: 0 calc(var(--rkb-gutter) * -1) 16px; padding: 6px var(--rkb-gutter);
    background: var(--surface-app, var(--surface-card)); border-bottom: 1px solid var(--rk-line); box-shadow: var(--rk-shadow-card-rest);
  }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-schritte__ziel[aria-current="step"] .rkb-schritte__text { color: var(--text-primary); }
  html[data-view="app"] .rkb[data-rkb-ansicht="kasse"] .rkb-schritte__ziel[aria-current="step"]::after {
    content: ""; display: block; width: 24px; height: 2px; margin-top: 2px; background: var(--accent-orange);
  }
  html[data-view="app"] .rkb-kasse .rk-pform__slab { border: 0; border-radius: 0; background: transparent; overflow: visible; display: grid; gap: 12px; }
  html[data-view="app"] .rkb-kasse .rk-pform__row { border: 0; gap: 12px; }
  html[data-view="app"] .rkb-kasse .rk-pform__row--2 > .rk-pform__cell + .rk-pform__cell { border: 1px solid var(--rk-pform-line, var(--rk-line)); }
  html[data-view="app"] .rkb-kasse .rk-pform__cell {
    min-height: 0; padding: 10px 14px; border: 1px solid var(--rk-pform-line, var(--rk-line)); border-radius: var(--rk-radius-md);
    background: var(--rk-field-bg, var(--surface-card));
  }
  html[data-view="app"] .rkb-kasse .rk-pform__cell:focus-within { border-color: var(--rk-focus-color); box-shadow: 0 0 0 1px var(--rk-focus-color); }
  html[data-view="app"] .rkb-kasse .rk-pform__label { margin-bottom: 2px; }

  /* ── K7 · Produktfenster: Vollbild mit Kopf (Zurück, Titel, Schließen), Fensterpunkte bleiben, kein leeres Bildfeld ── */
  html[data-view="app"] dialog#dlg-product {
    inset: 0; width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0;
    padding: var(--rk-sicher-oben, env(safe-area-inset-top, 0px)) 0 0; background: var(--rk-vb-flaeche, var(--surface-card));
  }
  html[data-view="app"] dialog#dlg-product > .rk-mac__bar { position: sticky; top: 0; z-index: 3; gap: 8px; grid-template-columns: auto auto minmax(0, 1fr) auto; padding-left: 4px; min-height: 56px; background: var(--rk-vb-flaeche, var(--surface-card)); border-bottom: 1px solid var(--rk-line); }
  html[data-view="app"] dialog#dlg-product .rkb-pm__zurueck { display: inline-flex; }
  html[data-view="app"] dialog#dlg-product .rkb-pm__gallery:has(.rkb-pm__ph) { display: none; }
  html[data-view="app"] dialog#dlg-product .rkb-pm__main { aspect-ratio: 4 / 3; background: color-mix(in srgb, var(--rk-gold-text) 8%, var(--surface-card)); }
  html[data-view="app"] dialog#dlg-product .rkb-dlg__body { padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }

  /* ── K8 · Widerrufsknopf bekommt eigenen Platz: links neben der Summen-Leiste eine deckende Andockfläche in Leistenhöhe, der Knopf
     sitzt darin am Rand. Inhalt scrollt nie unter ihn (er liegt nur über der Fläche), die Leiste beginnt rechts daneben.
     „Nach oben“ entfällt auf der Bestellseite (der Katalog-Tab springt nach oben). ── */
  html[data-view="app"] body.rkb-shop {
    /* Knopf + 12 px: beim Einblenden wippt der Knopf bis 6 px nach rechts und 6 % größer (widerruf-fab.njk) — auch dann neben der Leiste */
    --rkb-dock-b: calc(max(var(--rkb-gutter), env(safe-area-inset-left, 0px)) + var(--rk-fab-size, 48px) + 12px);
    --rkb-leiste-unten: calc(var(--rk-tabbar-h) + var(--rk-tabbar-unten) + var(--rk-hinweis-h, 0px));
  }
  html[data-view="app"] body.rkb-shop .rkb-leiste { left: var(--rkb-dock-b); padding-left: 8px; border-left: 0; }
  html[data-view="app"] body.rkb-shop .rkb-leiste-dock {
    display: block; position: fixed; left: 0; bottom: var(--rkb-leiste-unten); z-index: 8990; width: var(--rkb-dock-b); height: var(--rkb-app-leiste-h);
    background: var(--surface-card); border-top: 1px solid var(--rk-line); box-shadow: var(--rk-shadow-card-rest);
    transition: bottom .25s var(--rk-ease-out), transform var(--rk-t-base) var(--rk-ease);
  }
  html[data-view="app"] body.rkb-mit-leiste .rk-wfab {
    left: max(var(--rkb-gutter), env(safe-area-inset-left, 0px));
    bottom: calc(var(--rkb-leiste-unten) + (var(--rkb-app-leiste-h) - var(--rk-fab-size, 48px)) / 2);
  }
  html[data-view="app"] body.rkb-mit-leiste .rk-wfab:not(.is-open) { z-index: 8995; }
  html[data-view="app"] body.rkb-mit-leiste .rk-wfab__trigger { width: var(--rk-fab-size, 48px); height: var(--rk-fab-size, 48px); }
  html[data-view="app"] body.rkb-mit-leiste .rk-wfab.is-intro .rk-wfab__label { opacity: 0; }
  html[data-view="app"] body.rkb-tastatur .rkb-leiste-dock { transform: translateY(110%); }
  html[data-view="app"] body.rkb-shop .rk-totop { display: none; }
  /* Der Chat schwebt auf der Bestellseite nicht über Preisen und Karten: er öffnet sich über „Mehr“ → „Fragen? Chat öffnen“ */
  html[data-view="app"] body.rkb-mit-leiste #rk-chatbot-fab { display: none; }
  /* Schmale Geräte: „Weiter/Zur Kasse“ ohne runden Pfeil, damit die Summe Platz behält */
  @media (max-width: 374px) {
    html[data-view="app"] body.rkb-shop .rkb-leiste .rk-btn--arrow .rk-btn__dot { display: none; }
    html[data-view="app"] body.rkb-shop .rkb-leiste .rk-btn--arrow { padding-inline: 14px; }
  }
}
.rkb-pm__zurueck { display: none; align-items: center; justify-content: center; width: var(--rkb-tap); height: var(--rkb-tap); margin: 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--text-primary); cursor: pointer; }
.rkb-pm__zurueck svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rkb-pm__zurueck:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; }

/* Seite hinter dem Video-Fenster bleibt stehen (bestellschein.js setzt die Klasse beim Öffnen, nimmt sie beim Schließen weg) */
html.rkb-seite-steht, html.rkb-seite-steht body { overflow: hidden; }
dialog.rkb-dlg--video { overscroll-behavior: contain; }
/* ── K7b · Video-Fenster „Preise erklärt“: Breite wie bisher, Höhe = verfügbare Bildschirmhöhe; Video (Hochformat) füllt den freien
   Platz ohne Verzerrung, Kopf, Video und Untertitelzeile liegen ganz im Fenster, nichts scrollt ── */
dialog.rkb-dlg--video[open] { display: flex; flex-direction: column; height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); overflow: hidden; }
@media (max-width: 599px) { dialog.rkb-dlg--video[open] { height: 100dvh; max-height: 100dvh; } }
dialog.rkb-dlg--video > .rk-mac__bar { flex: none; }
dialog.rkb-dlg--video .rkb-video { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; overflow: hidden; }
dialog.rkb-dlg--video .rk-ki-wrap { position: relative; flex: 1 1 0; min-height: 0; width: auto; max-width: 100%; aspect-ratio: 9 / 16; margin: 0 auto; }
dialog.rkb-dlg--video .rkb-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
dialog.rkb-dlg--video #dv-desc { flex: none; margin: 0; max-width: 60ch; text-align: center; }


/* ═══ Spec 020 · Kundenbereich „Mein Konto“ und „Bestellung wiederholen“ ═══════════════════════════════════════════════════════ */
.rkb-kseite { padding: 20px 0 96px; max-width: 820px; }
.rkb-kseite__zurueck { margin: 0 0 8px; }
.rkb-kseite__back {
  display: inline-flex; align-items: center; gap: 6px; min-height: var(--rk-touch-comfort); padding: 0 12px 0 4px; margin-left: -4px;
  color: var(--text-primary); text-decoration: none; font-size: var(--rk-fs-small); border-radius: var(--rk-radius-pill);
}
.rkb-kseite__back svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rkb-kseite__back:hover { background: var(--surface-card); }
.rkb-kseite__back:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: 2px; }
.rkb-kseite__kopf { margin: 0 0 16px; }
.rkb-kseite__h1 { margin: 6px 0 8px; font-size: var(--rk-fs-h2); font-weight: var(--rk-fw-regular); line-height: 1.08; letter-spacing: -.02em; }
.rkb-kseite__sprung { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.rkb-kseite__sprung a {
  display: inline-flex; align-items: center; min-height: var(--rk-touch-comfort); padding: 0 14px; border: 1px solid var(--rk-line-strong);
  border-radius: var(--rk-radius-pill); color: var(--text-primary); text-decoration: none; font-size: var(--rk-fs-meta); background: var(--surface-card);
}
.rkb-kseite__sprung a:hover { border-color: var(--text-primary); }
.rkb-kseite__karten { display: grid; gap: 16px; }
.rkb-kkarte { scroll-margin-top: calc(var(--rkb-konto-oben, 96px) + 16px); min-width: 0; }   /* rkb-konto.js misst die klebenden Leisten */
.rkb-kkarte .rkb-h3 { margin: 0 0 12px; }
.rkb-kkarte p { margin: 0 0 12px; line-height: 1.55; }
.rkb-kkarte__knopf { margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rkb-kkarte__zahl { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 8px; }
.rkb-kkarte__zahl > span:first-child { font-size: var(--rk-fs-h2); line-height: 1; letter-spacing: -.02em; color: var(--rk-gold-text); }
.rkb-kkarte--ende { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.rkb-kkarte--ende p { margin: 0; }
.rkb-kmail__immer { padding: 12px 14px; border-radius: var(--rk-radius-md); background: var(--surface-app); border: 1px solid var(--rk-line); font-size: var(--rk-fs-small); }
.rkb-kverlauf { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rkb-kbest { border: 1px solid var(--rk-line); border-radius: var(--rk-radius-md); background: var(--surface-card); min-width: 0; }
.rkb-kbest__kopf {
  display: grid; grid-template-columns: minmax(0, 1fr) auto 24px; grid-template-areas: "nr summe pfeil" "meta summe pfeil"; gap: 2px 12px;
  align-items: center; min-height: var(--rk-touch-comfort); padding: 12px 14px; cursor: pointer; list-style: none;
}
.rkb-kbest__kopf::-webkit-details-marker { display: none; }
.rkb-kbest__kopf:focus-visible { outline: 2px solid var(--rk-focus-color); outline-offset: -2px; border-radius: var(--rk-radius-md); }
.rkb-kbest__nr { grid-area: nr; font-weight: var(--rk-fw-medium); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.rkb-kbest__meta { grid-area: meta; color: var(--text-secondary); font-size: var(--rk-fs-meta); }
.rkb-kbest__summe { grid-area: summe; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rkb-kbest__pfeil { grid-area: pfeil; width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.rkb-kbest__mehr[open] .rkb-kbest__pfeil { transform: rotate(180deg); }
.rkb-kbest__inhalt { padding: 0 14px 14px; border-top: 1px solid var(--rk-line); }
.rkb-kbest__pos { list-style: none; margin: 0; padding: 0; }
.rkb-kbest__pos li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--rk-line); font-size: var(--rk-fs-small); line-height: 1.45; }
.rkb-kbest__art { min-width: 0; overflow-wrap: anywhere; }
.rkb-kbest__preis { white-space: nowrap; font-variant-numeric: tabular-nums; }
.rkb-kbest__summen { margin: 10px 0 0; display: grid; gap: 4px; font-size: var(--rk-fs-small); }
.rkb-kbest__summen > div { display: flex; justify-content: space-between; gap: 12px; }
.rkb-kbest__summen dt { color: var(--text-secondary); }
.rkb-kbest__summen dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; min-width: 0; overflow-wrap: anywhere; }
.rkb-kbest__gesamt dt, .rkb-kbest__gesamt dd { color: var(--text-primary); font-weight: var(--rk-fw-medium); }
.rkb-kbest__knoepfe { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 0; }
.rkb-kblaettern { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; }
.rkb-kprot { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 6px; font-size: var(--rk-fs-small); }
.rkb-kmig { display: block; margin: var(--rk-space-3) 0 0; }
.rkb-kmig .rk-check { margin: 0 0 var(--rk-space-2); }
.rkb-kgefahr { background: var(--rk-danger-fg); border-color: var(--rk-danger-fg); color: var(--surface-card); }
dialog.rkb-kdlg #dkl-text p { font-size: var(--rk-fs-small); line-height: 1.55; margin: 0 0 10px; }
dialog.rkb-kdlg #dkl-text p b { color: var(--text-primary); }
.rkb-wdh__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rkb-wdh__pos { display: grid; gap: 4px; padding: 10px 12px; border: 1px solid var(--rk-line); border-radius: var(--rk-radius-md); font-size: var(--rk-fs-small); line-height: 1.45; min-width: 0; }
.rkb-wdh__art { overflow-wrap: anywhere; }
.rkb-wdh__st { color: var(--rk-success-fg); }
.rkb-wdh__pos.is-preis .rkb-wdh__st { color: var(--text-primary); font-weight: var(--rk-fw-medium); }
.rkb-wdh__pos.is-weg { background: var(--surface-app); }
.rkb-wdh__pos.is-weg .rkb-wdh__st { color: var(--rk-danger-fg); }
.rkb-wdh__farbe { margin-top: 4px; min-height: var(--rk-touch-comfort); align-items: center; }
.rkb-wdh__hinweis { margin: 0; color: var(--rk-danger-fg); }
@media (max-width: 767px) {
  .rkb-kseite { padding-top: 8px; }
  .rkb-kseite__zurueck { position: sticky; top: var(--rk-sicher-oben, 0px); z-index: 5; background: var(--surface-app); margin: 0 calc(-1 * var(--rkb-gutter)) 8px; padding: 4px var(--rkb-gutter); }
}
/* Handy (App-Ansicht): Fenster als Vollbild wie die übrigen Shop-Fenster */
html[data-view="app"] dialog.rkb-kdlg, html[data-view="app"] dialog.rkb-wdh {
  width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; overflow-y: auto; overscroll-behavior: contain;
}

/* Spec 226: Teilen je Produkt — Knopf aus rk-teilen.css in der Titelleiste, Tippfläche wie das Schließen-Kreuz */
.rkb-dlg .rkb-pm__teilen { width: var(--rkb-tap, 48px); height: var(--rkb-tap, 48px); min-height: 0; margin-right: 6px; padding: 0; }
