/*
 * bootstrap-themecolors.css — ALLE Theme-Farben von Bootstrap 5.3.3 (primary, secondary, success,
 * info, warning, danger, light, dark + Zusatzrolle accent) als LAUFZEIT-VARIABLE Familie, plus
 * Radius-Vervollständigung. Vendortes, generiertes Artefakt.
 *
 * NICHT VON HAND PFLEGEN — Rezept: claude_memory/anleitung-bs5-theme-farbe-artefakt.md
 * (Doppel-Build mit 8 Marker-Farben + Positions-Diff + Formel-Ersetzung; accent zusätzlich per
 * map-merge). Alle Ableitungen (hover/active/subtle/emphasis/focus/table/dark-mode) entstehen
 * zur Laufzeit per color-mix() aus den --cl-{rolle}(-rgb)-Tokens (Defaults: theme.css;
 * je Website: website_globals cat='theme').
 *
 * Annahmen (s. Anleitung §Grenzen): Kontrastklasse je Rolle wie Bootstrap-Original (dunkle Rollen
 * → weißer Text; warning/info/light → schwarzer Text) — dynamische Kontrast-Tokens kommen mit der
 * CMS-Farbmaske. Vereinzelte --bs-*-rgb-Ableitungs-Triples sind auf die Rollen-Basis genähert.
 */

/* ── Radius-Vervollständigung: fest einkompilierte Form-Control-Radien an die Tokens koppeln
      (damit „alles eckig"/„pill" wirklich überall wirkt; Basis-Stufen mappt theme.css). ── */
.btn-close { border-radius: var(--bs-border-radius); }
.form-check-input[type=checkbox] { border-radius: calc(var(--bs-border-radius) * 0.667); }
.form-switch .form-check-input { border-radius: var(--bs-border-radius-pill); }
.form-switch .form-check-input:focus { border-radius: var(--bs-border-radius-pill); }
.form-range::-webkit-slider-thumb { border-radius: var(--bs-border-radius-pill); }
.form-range::-moz-range-thumb { border-radius: var(--bs-border-radius-pill); }

/* ── Overrides der 8 Standard-Theme-Farben (Positions-Diff Standard- vs. Marker-Build) ── */
:root,
[data-bs-theme=light] {
  --bs-primary: var(--cl-primary);
  --bs-secondary: var(--cl-secondary);
  --bs-success: var(--cl-success);
  --bs-info: var(--cl-info);
  --bs-warning: var(--cl-warning);
  --bs-danger: var(--cl-danger);
  --bs-light: var(--cl-light);
  --bs-dark: var(--cl-dark);
  --bs-primary-rgb: var(--cl-primary-rgb);
  --bs-secondary-rgb: var(--cl-secondary-rgb);
  --bs-success-rgb: var(--cl-success-rgb);
  --bs-info-rgb: var(--cl-info-rgb);
  --bs-warning-rgb: var(--cl-warning-rgb);
  --bs-danger-rgb: var(--cl-danger-rgb);
  --bs-light-rgb: var(--cl-light-rgb);
  --bs-dark-rgb: var(--cl-dark-rgb);
  --bs-primary-text-emphasis: color-mix(in srgb, var(--cl-primary) 40%, #000);
  --bs-secondary-text-emphasis: color-mix(in srgb, var(--cl-secondary) 40%, #000);
  --bs-success-text-emphasis: color-mix(in srgb, var(--cl-success) 40%, #000);
  --bs-info-text-emphasis: color-mix(in srgb, var(--cl-info) 40%, #000);
  --bs-warning-text-emphasis: color-mix(in srgb, var(--cl-warning) 40%, #000);
  --bs-danger-text-emphasis: color-mix(in srgb, var(--cl-danger) 40%, #000);
  --bs-primary-bg-subtle: color-mix(in srgb, var(--cl-primary) 20%, #fff);
  --bs-secondary-bg-subtle: color-mix(in srgb, var(--cl-secondary) 20%, #fff);
  --bs-success-bg-subtle: color-mix(in srgb, var(--cl-success) 20%, #fff);
  --bs-info-bg-subtle: color-mix(in srgb, var(--cl-info) 20%, #fff);
  --bs-warning-bg-subtle: color-mix(in srgb, var(--cl-warning) 20%, #fff);
  --bs-danger-bg-subtle: color-mix(in srgb, var(--cl-danger) 20%, #fff);
  --bs-primary-border-subtle: color-mix(in srgb, var(--cl-primary) 40%, #fff);
  --bs-secondary-border-subtle: color-mix(in srgb, var(--cl-secondary) 40%, #fff);
  --bs-success-border-subtle: color-mix(in srgb, var(--cl-success) 40%, #fff);
  --bs-info-border-subtle: color-mix(in srgb, var(--cl-info) 40%, #fff);
  --bs-warning-border-subtle: color-mix(in srgb, var(--cl-warning) 40%, #fff);
  --bs-danger-border-subtle: color-mix(in srgb, var(--cl-danger) 40%, #fff);
  --bs-link-color: var(--cl-primary);
  --bs-link-color-rgb: var(--cl-primary-rgb);
  --bs-link-hover-color: color-mix(in srgb, var(--cl-primary) 80%, #000);
  --bs-link-hover-color-rgb: var(--cl-primary-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-focus-ring-color: rgba(var(--cl-primary-rgb), 0.25);
  --bs-form-valid-color: var(--cl-success);
  --bs-form-valid-border-color: var(--cl-success);
  --bs-form-invalid-color: var(--cl-danger);
  --bs-form-invalid-border-color: var(--cl-danger);
}
[data-bs-theme=dark] {
  --bs-primary-text-emphasis: color-mix(in srgb, var(--cl-primary) 60%, #fff);
  --bs-secondary-text-emphasis: color-mix(in srgb, var(--cl-secondary) 60%, #fff);
  --bs-success-text-emphasis: color-mix(in srgb, var(--cl-success) 60%, #fff);
  --bs-info-text-emphasis: color-mix(in srgb, var(--cl-info) 60%, #fff);
  --bs-warning-text-emphasis: color-mix(in srgb, var(--cl-warning) 60%, #fff);
  --bs-danger-text-emphasis: color-mix(in srgb, var(--cl-danger) 60%, #fff);
  --bs-primary-bg-subtle: color-mix(in srgb, var(--cl-primary) 20%, #000);
  --bs-secondary-bg-subtle: color-mix(in srgb, var(--cl-secondary) 20%, #000);
  --bs-success-bg-subtle: color-mix(in srgb, var(--cl-success) 20%, #000);
  --bs-info-bg-subtle: color-mix(in srgb, var(--cl-info) 20%, #000);
  --bs-warning-bg-subtle: color-mix(in srgb, var(--cl-warning) 20%, #000);
  --bs-danger-bg-subtle: color-mix(in srgb, var(--cl-danger) 20%, #000);
  --bs-primary-border-subtle: color-mix(in srgb, var(--cl-primary) 60%, #000);
  --bs-secondary-border-subtle: color-mix(in srgb, var(--cl-secondary) 60%, #000);
  --bs-success-border-subtle: color-mix(in srgb, var(--cl-success) 60%, #000);
  --bs-info-border-subtle: color-mix(in srgb, var(--cl-info) 60%, #000);
  --bs-warning-border-subtle: color-mix(in srgb, var(--cl-warning) 60%, #000);
  --bs-danger-border-subtle: color-mix(in srgb, var(--cl-danger) 60%, #000);
  --bs-link-color: color-mix(in srgb, var(--cl-primary) 60%, #fff);
  --bs-link-hover-color: color-mix(in srgb, var(--cl-primary) 48%, #fff);
  --bs-link-color-rgb: var(--cl-primary-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-link-hover-color-rgb: var(--cl-primary-rgb) /* Näherung: BS-Ableitungs-Triple */;
}
.table-primary {
  --bs-table-bg: color-mix(in srgb, var(--cl-primary) 20%, #fff);
  --bs-table-border-color: color-mix(in srgb, color-mix(in srgb, var(--cl-primary) 20%, #fff) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-primary) 20%, #fff) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-primary) 20%, #fff) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-primary) 20%, #fff) 92.5%, #000);
}
.table-secondary {
  --bs-table-bg: color-mix(in srgb, var(--cl-secondary) 20%, #fff);
  --bs-table-border-color: color-mix(in srgb, color-mix(in srgb, var(--cl-secondary) 20%, #fff) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-secondary) 20%, #fff) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-secondary) 20%, #fff) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-secondary) 20%, #fff) 92.5%, #000);
}
.table-success {
  --bs-table-bg: color-mix(in srgb, var(--cl-success) 20%, #fff);
  --bs-table-border-color: color-mix(in srgb, color-mix(in srgb, var(--cl-success) 20%, #fff) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-success) 20%, #fff) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-success) 20%, #fff) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-success) 20%, #fff) 92.5%, #000);
}
.table-info {
  --bs-table-bg: color-mix(in srgb, var(--cl-info) 20%, #fff);
  --bs-table-border-color: color-mix(in srgb, color-mix(in srgb, var(--cl-info) 20%, #fff) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-info) 20%, #fff) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-info) 20%, #fff) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-info) 20%, #fff) 92.5%, #000);
}
.table-warning {
  --bs-table-bg: color-mix(in srgb, var(--cl-warning) 20%, #fff);
  --bs-table-border-color: color-mix(in srgb, color-mix(in srgb, var(--cl-warning) 20%, #fff) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-warning) 20%, #fff) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-warning) 20%, #fff) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-warning) 20%, #fff) 92.5%, #000);
}
.table-danger {
  --bs-table-bg: color-mix(in srgb, var(--cl-danger) 20%, #fff);
  --bs-table-border-color: color-mix(in srgb, color-mix(in srgb, var(--cl-danger) 20%, #fff) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-danger) 20%, #fff) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-danger) 20%, #fff) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, color-mix(in srgb, var(--cl-danger) 20%, #fff) 92.5%, #000);
}
.table-light {
  --bs-table-bg: var(--cl-light);
  --bs-table-border-color: color-mix(in srgb, var(--cl-light) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, var(--cl-light) 95%, #000);
  --bs-table-active-bg: color-mix(in srgb, var(--cl-light) 90%, #000);
  --bs-table-hover-bg: color-mix(in srgb, var(--cl-light) 92.5%, #000);
}
.table-dark {
  --bs-table-bg: var(--cl-dark);
  --bs-table-border-color: color-mix(in srgb, var(--cl-dark) 80%, #fff);
  --bs-table-striped-bg: color-mix(in srgb, var(--cl-dark) 95%, #fff);
  --bs-table-active-bg: color-mix(in srgb, var(--cl-dark) 90%, #fff);
  --bs-table-hover-bg: color-mix(in srgb, var(--cl-dark) 92.5%, #fff);
}
.form-control:focus {
  border-color: color-mix(in srgb, var(--cl-primary) 50%, #fff);
  box-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.form-select:focus {
  border-color: color-mix(in srgb, var(--cl-primary) 50%, #fff);
  box-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.form-check-input:focus {
  border-color: color-mix(in srgb, var(--cl-primary) 50%, #fff);
  box-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.form-check-input:checked {
  background-color: var(--cl-primary);
  border-color: var(--cl-primary);
}
.form-check-input[type=checkbox]:indeterminate {
  background-color: var(--cl-primary);
  border-color: var(--cl-primary);
}
.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgb%28187, 127.5, 187%29'/%3e%3c/svg%3e");
}
.form-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.form-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.form-range::-webkit-slider-thumb {
  background-color: var(--cl-primary);
}
.form-range::-webkit-slider-thumb:active {
  background-color: color-mix(in srgb, var(--cl-primary) 30%, #fff);
}
.form-range::-moz-range-thumb {
  background-color: var(--cl-primary);
}
.form-range::-moz-range-thumb:active {
  background-color: color-mix(in srgb, var(--cl-primary) 30%, #fff);
}
.was-validated .form-control:valid, .form-control.is-valid {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23077700' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
}
.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23077700' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
}
.was-validated .form-control:invalid, .form-control.is-invalid {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23770007'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23770007' stroke='none'/%3e%3c/svg%3e");
}
.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] {
  --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23770007'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23770007' stroke='none'/%3e%3c/svg%3e");
}
.btn-primary {
  --bs-btn-bg: var(--cl-primary);
  --bs-btn-border-color: var(--cl-primary);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-primary) 85%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-primary) 80%, #000);
  --bs-btn-focus-shadow-rgb: var(--cl-primary-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-primary) 80%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-primary) 75%, #000);
  --bs-btn-disabled-bg: var(--cl-primary);
  --bs-btn-disabled-border-color: var(--cl-primary);
}
.btn-secondary {
  --bs-btn-bg: var(--cl-secondary);
  --bs-btn-border-color: var(--cl-secondary);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-secondary) 85%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-secondary) 80%, #000);
  --bs-btn-focus-shadow-rgb: var(--cl-secondary-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-secondary) 80%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-secondary) 75%, #000);
  --bs-btn-disabled-bg: var(--cl-secondary);
  --bs-btn-disabled-border-color: var(--cl-secondary);
}
.btn-success {
  --bs-btn-bg: var(--cl-success);
  --bs-btn-border-color: var(--cl-success);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-success) 85%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-success) 80%, #000);
  --bs-btn-focus-shadow-rgb: var(--cl-success-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-success) 80%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-success) 75%, #000);
  --bs-btn-disabled-bg: var(--cl-success);
  --bs-btn-disabled-border-color: var(--cl-success);
}
.btn-info {
  --bs-btn-bg: var(--cl-info);
  --bs-btn-border-color: var(--cl-info);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-info) 85%, #fff);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-info) 90%, #fff);
  --bs-btn-focus-shadow-rgb: var(--cl-info-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-info) 80%, #fff);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-info) 90%, #fff);
  --bs-btn-disabled-bg: var(--cl-info);
  --bs-btn-disabled-border-color: var(--cl-info);
}
.btn-warning {
  --bs-btn-bg: var(--cl-warning);
  --bs-btn-border-color: var(--cl-warning);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-warning) 85%, #fff);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-warning) 90%, #fff);
  --bs-btn-focus-shadow-rgb: var(--cl-warning-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-warning) 80%, #fff);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-warning) 90%, #fff);
  --bs-btn-disabled-bg: var(--cl-warning);
  --bs-btn-disabled-border-color: var(--cl-warning);
}
.btn-danger {
  --bs-btn-bg: var(--cl-danger);
  --bs-btn-border-color: var(--cl-danger);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-danger) 85%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-danger) 80%, #000);
  --bs-btn-focus-shadow-rgb: var(--cl-danger-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-danger) 80%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-danger) 75%, #000);
  --bs-btn-disabled-bg: var(--cl-danger);
  --bs-btn-disabled-border-color: var(--cl-danger);
}
.btn-light {
  --bs-btn-bg: var(--cl-light);
  --bs-btn-border-color: var(--cl-light);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-light) 85%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-light) 80%, #000);
  --bs-btn-focus-shadow-rgb: var(--cl-light-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-light) 80%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-light) 75%, #000);
  --bs-btn-disabled-bg: var(--cl-light);
  --bs-btn-disabled-border-color: var(--cl-light);
}
.btn-dark {
  --bs-btn-bg: var(--cl-dark);
  --bs-btn-border-color: var(--cl-dark);
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-dark) 85%, #fff);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-dark) 90%, #fff);
  --bs-btn-focus-shadow-rgb: var(--cl-dark-rgb) /* Näherung: BS-Ableitungs-Triple */;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-dark) 80%, #fff);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-dark) 90%, #fff);
  --bs-btn-disabled-bg: var(--cl-dark);
  --bs-btn-disabled-border-color: var(--cl-dark);
}
.btn-outline-primary {
  --bs-btn-color: var(--cl-primary);
  --bs-btn-border-color: var(--cl-primary);
  --bs-btn-hover-bg: var(--cl-primary);
  --bs-btn-hover-border-color: var(--cl-primary);
  --bs-btn-focus-shadow-rgb: var(--cl-primary-rgb);
  --bs-btn-active-bg: var(--cl-primary);
  --bs-btn-active-border-color: var(--cl-primary);
  --bs-btn-disabled-color: var(--cl-primary);
  --bs-btn-disabled-border-color: var(--cl-primary);
}
.btn-outline-secondary {
  --bs-btn-color: var(--cl-secondary);
  --bs-btn-border-color: var(--cl-secondary);
  --bs-btn-hover-bg: var(--cl-secondary);
  --bs-btn-hover-border-color: var(--cl-secondary);
  --bs-btn-focus-shadow-rgb: var(--cl-secondary-rgb);
  --bs-btn-active-bg: var(--cl-secondary);
  --bs-btn-active-border-color: var(--cl-secondary);
  --bs-btn-disabled-color: var(--cl-secondary);
  --bs-btn-disabled-border-color: var(--cl-secondary);
}
.btn-outline-success {
  --bs-btn-color: var(--cl-success);
  --bs-btn-border-color: var(--cl-success);
  --bs-btn-hover-bg: var(--cl-success);
  --bs-btn-hover-border-color: var(--cl-success);
  --bs-btn-focus-shadow-rgb: var(--cl-success-rgb);
  --bs-btn-active-bg: var(--cl-success);
  --bs-btn-active-border-color: var(--cl-success);
  --bs-btn-disabled-color: var(--cl-success);
  --bs-btn-disabled-border-color: var(--cl-success);
}
.btn-outline-info {
  --bs-btn-color: var(--cl-info);
  --bs-btn-border-color: var(--cl-info);
  --bs-btn-hover-bg: var(--cl-info);
  --bs-btn-hover-border-color: var(--cl-info);
  --bs-btn-focus-shadow-rgb: var(--cl-info-rgb);
  --bs-btn-active-bg: var(--cl-info);
  --bs-btn-active-border-color: var(--cl-info);
  --bs-btn-disabled-color: var(--cl-info);
  --bs-btn-disabled-border-color: var(--cl-info);
}
.btn-outline-warning {
  --bs-btn-color: var(--cl-warning);
  --bs-btn-border-color: var(--cl-warning);
  --bs-btn-hover-bg: var(--cl-warning);
  --bs-btn-hover-border-color: var(--cl-warning);
  --bs-btn-focus-shadow-rgb: var(--cl-warning-rgb);
  --bs-btn-active-bg: var(--cl-warning);
  --bs-btn-active-border-color: var(--cl-warning);
  --bs-btn-disabled-color: var(--cl-warning);
  --bs-btn-disabled-border-color: var(--cl-warning);
}
.btn-outline-danger {
  --bs-btn-color: var(--cl-danger);
  --bs-btn-border-color: var(--cl-danger);
  --bs-btn-hover-bg: var(--cl-danger);
  --bs-btn-hover-border-color: var(--cl-danger);
  --bs-btn-focus-shadow-rgb: var(--cl-danger-rgb);
  --bs-btn-active-bg: var(--cl-danger);
  --bs-btn-active-border-color: var(--cl-danger);
  --bs-btn-disabled-color: var(--cl-danger);
  --bs-btn-disabled-border-color: var(--cl-danger);
}
.btn-outline-light {
  --bs-btn-color: var(--cl-light);
  --bs-btn-border-color: var(--cl-light);
  --bs-btn-hover-bg: var(--cl-light);
  --bs-btn-hover-border-color: var(--cl-light);
  --bs-btn-focus-shadow-rgb: var(--cl-light-rgb);
  --bs-btn-active-bg: var(--cl-light);
  --bs-btn-active-border-color: var(--cl-light);
  --bs-btn-disabled-color: var(--cl-light);
  --bs-btn-disabled-border-color: var(--cl-light);
}
.btn-outline-dark {
  --bs-btn-color: var(--cl-dark);
  --bs-btn-border-color: var(--cl-dark);
  --bs-btn-hover-bg: var(--cl-dark);
  --bs-btn-hover-border-color: var(--cl-dark);
  --bs-btn-focus-shadow-rgb: var(--cl-dark-rgb);
  --bs-btn-active-bg: var(--cl-dark);
  --bs-btn-active-border-color: var(--cl-dark);
  --bs-btn-disabled-color: var(--cl-dark);
  --bs-btn-disabled-border-color: var(--cl-dark);
}
.btn-link {
  --bs-btn-focus-shadow-rgb: var(--cl-primary-rgb) /* Näherung: BS-Ableitungs-Triple */;
}
.dropdown-menu {
  --bs-dropdown-link-active-bg: var(--cl-primary);
}
.dropdown-menu-dark {
  --bs-dropdown-link-active-bg: var(--cl-primary);
}
.nav-link:focus-visible {
  box-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.nav-pills {
  --bs-nav-pills-link-active-bg: var(--cl-primary);
}
.accordion {
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='rgb%2847.6, 0, 47.6%29' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
[data-bs-theme=dark] .accordion-button::after {
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28173.4, 102, 173.4%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='rgb%28173.4, 102, 173.4%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.pagination {
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
  --bs-pagination-active-bg: var(--cl-primary);
  --bs-pagination-active-border-color: var(--cl-primary);
}
.progress,
.progress-stacked {
  --bs-progress-bar-bg: var(--cl-primary);
}
.list-group {
  --bs-list-group-active-bg: var(--cl-primary);
  --bs-list-group-active-border-color: var(--cl-primary);
}
.btn-close {
  --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(var(--cl-primary-rgb), 0.25);
}
.link-primary:hover, .link-primary:focus {
  color: RGBA(95, 0, 95, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(95, 0, 95, var(--bs-link-underline-opacity, 1)) !important;
}
.link-secondary:hover, .link-secondary:focus {
  color: RGBA(0, 95, 6, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(0, 95, 6, var(--bs-link-underline-opacity, 1)) !important;
}
.link-success:hover, .link-success:focus {
  color: RGBA(6, 95, 0, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(6, 95, 0, var(--bs-link-underline-opacity, 1)) !important;
}
.link-info:hover, .link-info:focus {
  color: RGBA(57, 235, 243, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(57, 235, 243, var(--bs-link-underline-opacity, 1)) !important;
}
.link-warning:hover, .link-warning:focus {
  color: RGBA(243, 235, 57, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(243, 235, 57, var(--bs-link-underline-opacity, 1)) !important;
}
.link-danger:hover, .link-danger:focus {
  color: RGBA(95, 0, 6, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(95, 0, 6, var(--bs-link-underline-opacity, 1)) !important;
}
.link-light:hover, .link-light:focus {
  color: RGBA(249, 243, 249, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(249, 243, 249, var(--bs-link-underline-opacity, 1)) !important;
}
.link-dark:hover, .link-dark:focus {
  color: RGBA(6, 0, 95, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(6, 0, 95, var(--bs-link-underline-opacity, 1)) !important;
}

/* ── Zusatzrolle "accent" — vollständige Familie (map-merge-Build, s. Anleitung) ── */
:root,
[data-bs-theme=light] {
  --bs-accent: var(--cl-accent);
  --bs-accent-rgb: var(--cl-accent-rgb);
  --bs-accent-text-emphasis: color-mix(in srgb, var(--cl-accent) 40%, #000);
  --bs-accent-bg-subtle: color-mix(in srgb, var(--cl-accent) 20%, #fff);
  --bs-accent-border-subtle: color-mix(in srgb, var(--cl-accent) 40%, #fff);
}
/* .table-accent: manuelle Ergänzung — Bootstrap generiert Table-Varianten NICHT aus
   $theme-colors (feste $table-variants-Map); Formeln aus .table-primary abgeleitet. */
.table-accent {
  --bs-table-color: #000;
  --bs-table-bg: var(--bs-accent-bg-subtle);
  --bs-table-border-color: color-mix(in srgb, var(--bs-accent-bg-subtle) 80%, #000);
  --bs-table-striped-bg: color-mix(in srgb, var(--bs-accent-bg-subtle) 95%, #000);
  --bs-table-striped-color: #000;
  --bs-table-active-bg: color-mix(in srgb, var(--bs-accent-bg-subtle) 90%, #000);
  --bs-table-active-color: #000;
  --bs-table-hover-bg: color-mix(in srgb, var(--bs-accent-bg-subtle) 92.5%, #000);
  --bs-table-hover-color: #000;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}
[data-bs-theme=dark] {
  --bs-accent-text-emphasis: color-mix(in srgb, var(--cl-accent) 60%, #fff);
  --bs-accent-bg-subtle: color-mix(in srgb, var(--cl-accent) 20%, #000);
  --bs-accent-border-subtle: color-mix(in srgb, var(--cl-accent) 60%, #000);
}
.btn-accent {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cl-accent);
  --bs-btn-border-color: var(--cl-accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: color-mix(in srgb, var(--cl-accent) 85%, #000);
  --bs-btn-hover-border-color: color-mix(in srgb, var(--cl-accent) 80%, #000);
  --bs-btn-focus-shadow-rgb: var(--cl-accent-rgb); /* BS: mix(Textfarbe, Border 15%) — Näherung */
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: color-mix(in srgb, var(--cl-accent) 80%, #000);
  --bs-btn-active-border-color: color-mix(in srgb, var(--cl-accent) 75%, #000);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--cl-accent);
  --bs-btn-disabled-border-color: var(--cl-accent);
}
.btn-outline-accent {
  --bs-btn-color: var(--cl-accent);
  --bs-btn-border-color: var(--cl-accent);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--cl-accent);
  --bs-btn-hover-border-color: var(--cl-accent);
  --bs-btn-focus-shadow-rgb: var(--cl-accent-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--cl-accent);
  --bs-btn-active-border-color: var(--cl-accent);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--cl-accent);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--cl-accent);
  --bs-gradient: none;
}
.alert-accent {
  --bs-alert-color: var(--bs-accent-text-emphasis);
  --bs-alert-bg: var(--bs-accent-bg-subtle);
  --bs-alert-border-color: var(--bs-accent-border-subtle);
  --bs-alert-link-color: var(--bs-accent-text-emphasis);
}
.list-group-item-accent {
  --bs-list-group-color: var(--bs-accent-text-emphasis);
  --bs-list-group-bg: var(--bs-accent-bg-subtle);
  --bs-list-group-border-color: var(--bs-accent-border-subtle);
  --bs-list-group-action-hover-color: var(--bs-emphasis-color);
  --bs-list-group-action-hover-bg: var(--bs-accent-border-subtle);
  --bs-list-group-action-active-color: var(--bs-emphasis-color);
  --bs-list-group-action-active-bg: var(--bs-accent-border-subtle);
  --bs-list-group-active-color: var(--bs-accent-bg-subtle);
  --bs-list-group-active-bg: var(--bs-accent-text-emphasis);
  --bs-list-group-active-border-color: var(--bs-accent-text-emphasis);
}
.text-bg-accent {
  color: #fff !important;
  background-color: RGBA(var(--bs-accent-rgb), var(--bs-bg-opacity, 1)) !important;
}
.link-accent {
  color: RGBA(var(--bs-accent-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(var(--bs-accent-rgb), var(--bs-link-underline-opacity, 1)) !important;
}
.link-accent:hover, .link-accent:focus {
  color: RGBA(95, 0, 95, var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(95, 0, 95, var(--bs-link-underline-opacity, 1)) !important;
}
.focus-ring-accent {
  --bs-focus-ring-color: rgba(var(--bs-accent-rgb), var(--bs-focus-ring-opacity));
}
.border-accent {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-accent-rgb), var(--bs-border-opacity)) !important;
}
.text-accent {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-accent-rgb), var(--bs-text-opacity)) !important;
}
.link-underline-accent {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-accent-rgb), var(--bs-link-underline-opacity)) !important;
}
.bg-accent {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-accent-rgb), var(--bs-bg-opacity)) !important;
}
