:root{
  --kb-primary:#374151;
  --kb-header-text:#ffffff;
  --kb-ui-primary:#4b5563;
  --kb-ui-primary-border:#4b5563;
  --kb-ui-primary-text:#ffffff;
  --kb-accent:#6b7280;
  --kb-menu-bg-color:#374151;
  --kb-adminsubnav-bg:#374151;
  --kb-badge-central-bg:#111827;
  --kb-badge-central-text:#ffffff;
  --kb-badge-soft-bg:rgba(17,24,39,.12);
  --kb-badge-soft-text:#111827;
  --kb-footer-bg:#f3f4f6;
  --kb-footer-text:#374151;
  --kb-card-border:#e5e7eb;
  --kb-body-bg:#f9fafb;
  --kb-body-text:#111827;

  --kb-accent:#6b7280;
}
.kb-navbar{
  /* Header-Hintergrundbild (legacy header_image_path) */
  /* v8.9.0.24: Headerbereich etwas höher (+30px) */
  padding-top: calc(var(--bs-navbar-padding-y, .5rem) + 15px);
  padding-bottom: calc(var(--bs-navbar-padding-y, .5rem) + 15px);
  background-color:var(--kb-primary);
  background-image:var(--kb-header-bg-image, none);
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
}

/* Desktop-Headerbereich nutzt ebenfalls das Header-Hintergrundbild */
.kb-webwrap{
  background-color:var(--kb-primary);
  background-image:var(--kb-header-bg-image, none);
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
}

/* Menubar: Hintergrund + Overlay über Navbar + Admin-Untermenü (nahtlos) */
.kb-menubar{
  /* Hintergrund liegt bewusst auf ::after (feste Referenz), damit sich das Bild beim Öffnen des Burger-Menüs
     nicht "neu skaliert"/optisch verzerrt, wenn die Menü-Höhe sich ändert. */
  position:relative;
  overflow:hidden;
}
.kb-menubar::after{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:100%; /* nur Menü/Untermenü-Bereich – nicht Viewport */
  background-color:var(--kb-menu-bg-color, var(--kb-primary));
  background-image:var(--kb-menu-bg-image, none);
  /* Keine Crops: im Zweifel darf das Bild verzerren/stretchen, damit es komplett sichtbar bleibt.
     Responsive-Redesign folgt später. */
  background-size:100% 100%;
  background-position:center;
  background-attachment:scroll;
  background-repeat:no-repeat;
  z-index:0;
}
.kb-menubar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
}
.kb-menubar.kb-menu-overlay-solid::before{
  background: color-mix(in srgb, var(--kb-menu-overlay-color, #000000) var(--kb-menu-overlay-opacity, 0%), transparent);
}
.kb-menubar.kb-menu-overlay-gradient::before{
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--kb-menu-overlay-color, #000000) var(--kb-menu-overlay-top-opacity, 0%), transparent),
    color-mix(in srgb, var(--kb-menu-overlay-color, #000000) var(--kb-menu-overlay-bottom-opacity, 0%), transparent)
  );
}
.kb-menubar .container{ position:relative; z-index:2; }
.kb-navbar .navbar-collapse{ background: transparent; }

.btn-primary{ background-color:var(--kb-ui-primary, var(--kb-primary))!important; border-color:var(--kb-ui-primary-border, var(--kb-ui-primary, var(--kb-primary)))!important; color:var(--kb-ui-primary-text, #fff)!important;  box-shadow:0 .125rem .25rem rgba(0,0,0,.18)!important; font-weight:700!important; }
.btn-primary:hover{ filter:brightness(.92); }
.btn-primary:active{ filter:brightness(.85); }
.btn-outline-primary{ border-color:var(--kb-ui-primary, var(--kb-primary))!important; color:var(--kb-ui-primary, var(--kb-primary))!important; }
.btn-outline-primary:hover{ background-color:var(--kb-ui-primary, var(--kb-primary))!important; border-color:var(--kb-ui-primary-border, var(--kb-ui-primary, var(--kb-primary)))!important; color:var(--kb-ui-primary-text, #fff)!important; }
a{ color:var(--kb-primary); }
a:hover{ color:var(--kb-accent); }

/* Dark Mode: Link-Kontrast + Bootstrap-Hilfsklassen angleichen */
[data-bs-theme="dark"] a{ color:var(--bs-link-color)!important; }
[data-bs-theme="dark"] a:hover{ color:var(--bs-link-hover-color)!important; }
[data-bs-theme="dark"] .bg-white{ background-color:var(--bs-body-bg)!important; }
[data-bs-theme="dark"] .bg-light{ background-color:var(--bs-body-tertiary-bg)!important; }
[data-bs-theme="dark"] .table-light{ --bs-table-bg:var(--bs-body-tertiary-bg); --bs-table-color:var(--bs-body-color); }

/* Dark Mode: Menü/Buttons – Lesbarkeit erzwingen (Header-Text kann im Dark Mode sonst zu dunkel sein) */
[data-bs-theme="dark"] .kb-navbar .navbar-brand,
[data-bs-theme="dark"] .kb-navbar .nav-link,
[data-bs-theme="dark"] .kb-navbar .navbar-text,
[data-bs-theme="dark"] .kb-navbar .kb-userline,
[data-bs-theme="dark"] .kb-userchip{
  color: var(--bs-body-color) !important;
}
[data-bs-theme="dark"] .kb-userchip{
  border-color: rgba(255,255,255,.65) !important;
  background: rgba(255,255,255,.10) !important;
}
[data-bs-theme="dark"] .kb-navbar .navbar-toggler{
  color: var(--bs-body-color) !important;
  border-color: rgba(255,255,255,.35) !important;
}
[data-bs-theme="dark"] .table-light > :not(caption) > * > *{ background-color:var(--bs-body-tertiary-bg); color:var(--bs-body-color); }
[data-bs-theme="dark"] .card-header.bg-white{ background-color:var(--bs-body-tertiary-bg)!important; color:var(--bs-body-color)!important; }
[data-bs-theme="dark"] .text-muted{ color:rgba(255,255,255,.68)!important; }
[data-bs-theme="dark"] .link-secondary{ color:rgba(255,255,255,.72)!important; }
[data-bs-theme="dark"] .link-secondary:hover{ color:rgba(255,255,255,.9)!important; }
[data-bs-theme="dark"] .kb-scrollbox{ background:var(--bs-body-bg)!important; border-color:rgba(255,255,255,.14)!important; }
/* Nutzermenü mobile: Top-Icons (Konto/Hilfe/Logout) immer kontrastreich */
[data-bs-theme="light"] .kb-mobile-topicon{ color:#111827 !important; }
[data-bs-theme="light"] .kb-mobile-topicon svg{ fill:none; stroke:currentColor; }
[data-bs-theme="dark"] .kb-mobile-topicon{ color:#f9fafb !important; }
[data-bs-theme="dark"] .kb-mobile-topicon svg{ fill:none; stroke:currentColor; }



/* Akzentfarbe: Hover/Fokus/Active (soll sichtbar steuern) */
.btn:focus-visible,
.kb-navbtn:focus-visible,
.form-control:focus,
.form-select:focus,
.form-check-input:focus{
  outline:2px solid var(--kb-accent);
  outline-offset:2px;
  box-shadow:none!important;
  border-color:var(--kb-accent)!important;
}

/* aktive Menüpunkte werden über Farben/Fett markiert, nicht unterstrichen */
.kb-navbar .nav-link.active{ text-decoration:none; }
.badge-soft{ background:var(--kb-badge-term-capacity-bg, var(--kb-badge-soft-bg, rgba(13,110,253,.12))); color:var(--kb-badge-term-capacity-text, var(--kb-badge-soft-text, var(--kb-primary))); }
.card-hover:hover{ transform:translateY(-1px); box-shadow:0 .5rem 1rem rgba(0,0,0,.08); }
.mono{ font-variant-numeric:tabular-nums; }
.central-badge{ background:var(--kb-badge-term-central-bg, var(--kb-badge-central-bg, #dc3545)); color:var(--kb-badge-term-central-text, var(--kb-badge-central-text, #fff)); }
.central-border{ border-left:6px solid var(--kb-badge-term-central-bg, var(--kb-badge-central-bg, #dc3545)); }
.day-sun{ background:#f1f3f5; color:#6c757d; }


.kb-navbar .navbar-brand, .kb-navbar .nav-link, .kb-navbar .navbar-text, .kb-navbar .kb-userline{
  color:var(--kb-header-text)!important;
}
/* Burger nutzt die gleichen Optik-Einstellungen wie die Menü-Buttons */
.kb-navbar .navbar-toggler{
  border-radius:999px;
  padding:.35rem .7rem;
  border:1px solid color-mix(in srgb, var(--kb-user-menu-btn-text, var(--kb-header-text)) 28%, transparent);
  color: var(--kb-user-menu-btn-text, var(--kb-header-text));
  background: color-mix(in srgb, var(--kb-user-menu-btn-bg, #ffffff) var(--kb-user-menu-btn-alpha, 50%), transparent);
  transition:all .15s ease;
}
.kb-navbar .navbar-toggler:hover,
.kb-navbar .navbar-toggler:focus{
  background: color-mix(in srgb, var(--kb-user-menu-btn-bg, #ffffff) var(--kb-user-menu-btn-alpha-hover, 65%), transparent);
}
.kb-navbar .navbar-toggler:active{
  background: color-mix(in srgb, var(--kb-user-menu-btn-active-bg, var(--kb-user-menu-btn-bg, #ffffff)) var(--kb-user-menu-btn-alpha-active, 70%), transparent);
}
.kb-navbar .navbar-toggler-icon{
  filter:none;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='currentColor' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Responsive: Benutzermenü-Buttons zentrieren (nicht den Burger) */
@media (max-width: 1199.98px){
  .kb-navbar .navbar-collapse .navbar-nav{ align-items:center; justify-content:center; text-align:center; }
  .kb-navbar .navbar-collapse .navbar-nav .nav-item{ width:auto; }
  .kb-navbar .navbar-collapse .kb-user-actions{ align-items:center; text-align:center; }
  .kb-navbar .navbar-collapse .kb-user-actions > .d-flex{ justify-content:center!important; width:100%; }
}
.kb-logo{ height:28px; width:auto; }
.kb-brand-text{ white-space:normal; line-height:1.1; font-size:var(--kb-instance-size,20px); color:var(--kb-instance-color, var(--kb-header-text)) !important; text-shadow: var(--kb-instance-shadow, none); }
.kb-navbtn{
  border-radius:999px;
  border:1px solid color-mix(in srgb, currentColor 28%, transparent);
  padding:.35rem .7rem!important;
  background:rgba(255,255,255,.10);
  transition:all .15s ease;

  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.kb-navbtn:hover, .kb-navbtn:focus{
  background:rgba(255,255,255,.22);
}

/* Nutzer-Menü-Buttons (konfigurierbar) */
.kb-navbar a.nav-link.kb-navbtn{
  background: rgba(255,255,255,.10);
  background: color-mix(in srgb, var(--kb-user-menu-btn-bg, #ffffff) var(--kb-user-menu-btn-alpha, 50%), transparent);
  color: var(--kb-user-menu-btn-text, var(--kb-header-text)) !important;
}
.kb-navbar a.nav-link.kb-navbtn:hover,
.kb-navbar a.nav-link.kb-navbtn:focus{
  background: rgba(255,255,255,.22);
  background: color-mix(in srgb, var(--kb-user-menu-btn-bg, #ffffff) var(--kb-user-menu-btn-alpha-hover, 65%), transparent);
  color: var(--kb-user-menu-btn-text, var(--kb-header-text)) !important;
}
.kb-navbar a.nav-link.kb-navbtn.active{
  background: color-mix(in srgb, var(--kb-user-menu-btn-active-bg, var(--kb-user-menu-btn-bg, #ffffff)) var(--kb-user-menu-btn-alpha-active, 70%), transparent);
  color: var(--kb-user-menu-btn-active-text, var(--kb-user-menu-btn-text, var(--kb-header-text))) !important;
  font-weight:700;
}



.kb-adminsubnav{
  padding:.15rem 0;
  background: var(--kb-adminsubnav-bg, var(--kb-primary));
  position:relative;
}
.kb-adminsubnav{ background-image: none !important; }
/* Admin-Menü (runde Buttons, folgt Menü-Einstellungen) */
.kb-adminsubnav .kb-adminnavbtn{
  /* v8.9.0.24: Admin-Menü Buttons ohne Bild, Bar ist Vollfarbe */
  background: color-mix(in srgb, var(--kb-adminsubnav-bg, var(--kb-primary)) var(--kb-admin-menu-btn-alpha, 70%), transparent);
  background-image:none !important;
  color: var(--kb-admin-menu-btn-text, #ffffff) !important;
  border:1px solid color-mix(in srgb, currentColor 28%, transparent);
  border-radius:999px;
  padding:.35rem .70rem;
  margin:.35rem .15rem;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  box-shadow:0 .25rem .75rem rgba(0,0,0,.10);
}
.kb-adminsubnav .kb-adminnavbtn:hover,
.kb-adminsubnav .kb-adminnavbtn:focus{
  background: color-mix(in srgb, var(--kb-admin-menu-btn-bg, #ffffff) var(--kb-admin-menu-btn-alpha-hover, 65%), transparent);
  color: var(--kb-admin-menu-btn-text, #ffffff) !important;
}
.kb-adminsubnav .kb-adminnavbtn.active{
  background: color-mix(in srgb, var(--kb-admin-menu-btn-active-bg, var(--kb-admin-menu-btn-bg, #ffffff)) var(--kb-admin-menu-btn-alpha-active, 70%), transparent);
  color: var(--kb-admin-menu-btn-active-text, var(--kb-admin-menu-btn-text, #ffffff)) !important;
  font-weight:700;
}
.kb-logout{
  border-radius:999px;
  padding:.35rem .85rem;
  box-shadow:0 .25rem .75rem rgba(0,0,0,.15);
}



/* Dark Mode: Logout-Button im Header sehr kontrastreich */
[data-bs-theme="dark"] .kb-logoutbtn{
  background: rgba(0,0,0,.45) !important;
  border-color: rgba(255,255,255,.85) !important;
  color: #ffffff !important;
  box-shadow: 0 .35rem 1.10rem rgba(0,0,0,.55);
}
[data-bs-theme="dark"] .kb-logoutbtn:hover,
[data-bs-theme="dark"] .kb-logoutbtn:focus{
  background: rgba(0,0,0,.62) !important;
  border-color: rgba(255,255,255,.95) !important;
  color: #ffffff !important;
  box-shadow: 0 .45rem 1.25rem rgba(0,0,0,.65);
}
.kb-userline{ opacity:.95; }

/* Backend: Badges-Editor – Vorschau direkt neben dem Badge-Namen (nicht rechtsbündig) */
.kb-badge-name-row{
  justify-content:flex-start;
  flex-wrap:wrap;
}
.kb-badge-name-row .form-label{ margin:0; flex:0 0 auto; }
.kb-badge-name-row .badge{ flex:0 0 auto; }


/* Monatsansicht deutlicher abgrenzen */
.kb-month table { border-collapse: separate; border-spacing: 0; }
.kb-month td, .kb-month th { border: 2px solid rgba(0,0,0,.08); vertical-align: top; }
.kb-month th { border-bottom: 3px solid rgba(0,0,0,.12); }
.kb-month td { background: #fff; }
.kb-month .kb-daynum { font-weight: 700; }
.kb-month .kb-cell-inner { min-height: 120px; }

/* --- Dark Mode: Korrekturen für hart codierte "hell"-Farben --- */
[data-bs-theme="dark"] .bg-white{ background-color: var(--bs-body-bg) !important; }
[data-bs-theme="dark"] .text-dark{ color: var(--bs-body-color) !important; }
[data-bs-theme="dark"] .border-dark{ border-color: var(--bs-border-color) !important; }

/* Monatsansicht nutzt feste Weißwerte – im Dark Mode anpassen */
[data-bs-theme="dark"] .kb-month td{ background: var(--bs-body-bg) !important; }
[data-bs-theme="dark"] .kb-month td, 
[data-bs-theme="dark"] .kb-month th{ border-color: rgba(255,255,255,.14) !important; }
[data-bs-theme="dark"] .day-sun{ background: rgba(255,255,255,.06); color: var(--bs-secondary-color); }

/* v6 stable patch: no wrap for buttons/links */
.btn, .nav-link, .navbar-brand { white-space: nowrap; }

/* ===== Neue Monatsübersicht (v7.2+) ===== */
/* Monatsansicht (Mo–Sa, Sonntag ausgeblendet) */
.kb-month-head{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.75rem;
  margin-bottom:.5rem;
  font-weight:700;
  color:#6c757d;
  user-select:none;
}
.kb-month-headcell{
  text-align:center;
  padding:.25rem 0;
}
.kb-month-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.75rem;
}
.kb-month-cell{
  position:relative;
  background:#fff;
  border:2px solid rgba(0,0,0,.22);
  border-radius:18px;
  box-shadow:0 .125rem .25rem rgba(0,0,0,.075);
  padding:.6rem;
  padding-bottom:3.2rem;
  min-height:140px;
  display:flex;
  flex-direction:column;
}

/* Dark Mode: neue Monatsübersicht */
[data-bs-theme="dark"] .kb-month-head{ color:rgba(255,255,255,.55); }
[data-bs-theme="dark"] .kb-month-cell{ background:var(--bs-body-bg); border-color:rgba(255,255,255,.18); box-shadow:0 .125rem .25rem rgba(0,0,0,.35); }
[data-bs-theme="dark"] .kb-month-out{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.16); }
[data-bs-theme="dark"] .kb-month-daydate{ color:rgba(255,255,255,.55); }
[data-bs-theme="dark"] .kb-month-entry{ border-color:rgba(255,255,255,.14); }
[data-bs-theme="dark"] .kb-month-addbtn{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.22); color:var(--bs-body-color); }
[data-bs-theme="dark"] .kb-month-week-current{ background: color-mix(in srgb, var(--kb-accent) 10%, var(--bs-body-bg)); border-color: color-mix(in srgb, var(--kb-accent) 40%, rgba(255,255,255,.28)); }
[data-bs-theme="dark"] .kb-month-week-current:hover{ background: color-mix(in srgb, var(--kb-accent) 14%, var(--bs-body-bg)); }
[data-bs-theme="dark"] .kb-month-has-terms{ border-color: color-mix(in srgb, var(--kb-accent) 55%, rgba(255,255,255,.18)); }
@media (max-width: 1199.98px){
  [data-bs-theme="dark"] .kb-month-cell{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.16); }
  [data-bs-theme="dark"] .kb-month-has-terms{ background: color-mix(in srgb, var(--kb-accent) 16%, rgba(255,255,255,.06)); }
}

.kb-month-out{
  background:rgba(255,255,255,.55);
  box-shadow:none;
  border:2px dashed rgba(0,0,0,.18);
}
.kb-month-today{
  outline:3px solid var(--kb-accent);
  outline-offset:2px;
}
.kb-month-daybar{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.5rem;
  margin-bottom:.4rem;
}
.kb-month-daynum{
  font-size:1.2rem;
  font-weight:800;
}
.kb-month-daydate{
  font-size:.85rem;
  color:#6c757d;
  font-variant-numeric: tabular-nums;
}
.kb-month-empty{
  margin-top:auto;
  color:#adb5bd;
  text-align:center;
  padding:.25rem 0;
}
.kb-month-list{
  padding-bottom:.35rem;
  display:flex;
  flex-direction:column;
  gap:.4rem;
}
.kb-month-list-multi{ gap:.18rem; }
.kb-month-entry{
  display:block;
  text-decoration:none;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  padding:.45rem .5rem;
  transition:transform .08s ease, box-shadow .08s ease;
  color:inherit;
}
.kb-month-entry-compact{
  padding:.28rem .45rem;
}
.kb-month-entry-compact .kb-month-entry-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
  white-space:nowrap;
  font-size:.82rem;
  font-weight:800;
}
.kb-month-entry-compact .kb-month-time,
.kb-month-entry-compact .kb-month-free{
  font-size:.82rem;
}
.kb-month-entry:hover{
  transform:translateY(-1px);
  box-shadow:0 .125rem .25rem rgba(0,0,0,.08);
}
.kb-month-entry-central{
  border-color: rgba(220,53,69,.65);
  background: rgba(220,53,69,.08);
}
.kb-month-entry-top{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem .5rem;
  align-items:center;
  font-weight:700;
  font-size:.85rem;
}
.kb-month-time{ font-variant-numeric: tabular-nums; }
.kb-month-room{ font-weight:700; }
.kb-month-badge{
  margin-left:auto;
  background:rgba(220,53,69,.12);
  color:#dc3545;
  border:1px solid rgba(220,53,69,.25);
  font-weight:800;
  font-size:.75rem;
  padding:.05rem .4rem;
  border-radius:999px;
}
.kb-month-entry-bot{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.15rem .5rem;
  margin-top:.2rem;
  font-size:.78rem;
  color:#6c757d;
}
.kb-month-meta{
  flex:1 1 100%;
  overflow:visible;
  text-overflow:unset;
  white-space:normal;
  max-width:none;
}
.kb-month-free{
  font-weight:800;
  color:#198754;
  white-space:nowrap;
}
.kb-month-full{ color:#6c757d; }

/* Markierung: aktuelle Woche (Mo-Sa) */
.kb-month-week-current{
  background: color-mix(in srgb, var(--kb-accent) 8%, #fff);
  border-color: color-mix(in srgb, var(--kb-accent) 45%, rgba(0,0,0,.28));
}

/* Tage mit Terminen */
.kb-month-has-terms{
  border-color: color-mix(in srgb, var(--kb-accent) 35%, rgba(0,0,0,.28));
}

/* Tage mit zentralen Terminen: rot markieren (überschreibt Akzent/blau) */
.kb-month-has-central{
  border-color: rgba(220,53,69,.55);
  background: rgba(220,53,69,.06);
}
.kb-month-week-current.kb-month-has-central{
  background: rgba(220,53,69,.10);
  border-color: rgba(220,53,69,.55);
}

/* Plus-Button (Desktop) */
.kb-month-addwrap{
  margin-top:auto;
  padding-top:.25rem;
  position:absolute;
  left:50%;
  bottom:.55rem;
  transform:translateX(-50%);
  width:auto;
}

.kb-month-addbtn{
  width:30px;
  height:30px;
  border-radius:999px;
  border:2px solid rgba(0,0,0,.35);
  background:#fff;
  color:rgba(0,0,0,.75);
  /* Exakt zentriertes Plus ohne Font-Metrik-Offset */
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-size:0; /* Text (+) ausblenden, wir zeichnen das Plus per CSS */
  line-height:0;
}
.kb-month-addbtn:hover{ filter:brightness(.95); }

.kb-month-addbtn::before,
.kb-month-addbtn::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background:currentColor;
  border-radius:2px;
}

/* horizontaler Strich */
.kb-month-addbtn::before{ width:14px; height:2px; }
/* vertikaler Strich */
.kb-month-addbtn::after{ width:2px; height:14px; }

/* Tageskachel-Link (Handyansicht: ganze Kachel klickbar) */
.kb-month-daylink{ display:none; }
@media (max-width: 992px){
  /* Handyansicht = Burgermenü-Breakpoint: ganzer Monat als Raster */
  .kb-month-head,.kb-month-grid{ grid-template-columns:repeat(6,1fr); gap:.25rem; }
  .kb-month-cell{ min-height:54px; padding:.25rem; border-radius:12px; align-items:center; justify-content:center; }
  .kb-month-daybar{ margin-bottom:0; justify-content:center; }
  .kb-month-daydate{ display:none; }
  .kb-month-list,.kb-month-empty,.kb-month-addwrap{ display:none; }
  .kb-month-daynum{ font-size:.95rem; }
  .kb-month-daylink{ display:block; position:absolute; inset:0; border-radius:inherit; }

  /* Aktuelle Woche in der Handyansicht klar sichtbar (auch ohne Termine). */
  .kb-month-week-current{ box-shadow: inset 0 0 0 2px var(--kb-accent); }
  .kb-month-week-current.kb-month-has-central{ box-shadow: inset 0 0 0 2px #dc3545; }

  .kb-month-has-terms{ background: color-mix(in srgb, var(--kb-accent) 18%, #fff); }
  .kb-month-has-terms::after{
    content:'';
    position:absolute;
    left:50%;
    bottom:6px;
    width:6px;
    height:6px;
    border-radius:999px;
    transform:translateX(-50%);
    background: var(--kb-accent);
  }
  /* Zentrale Nachschreibtermine in der Handyansicht rot markieren (statt Akzent/blau)
     Robust ohne color-mix (damit es in allen Browsern sicher greift). */
  .kb-month-has-central{
    background: rgba(220,53,69,.15) !important;
    border-color: rgba(220,53,69,.45) !important;
  }
  .kb-month-has-central::after{
    background: #dc3545 !important;
  }

}
@media (max-width: 420px){
  .kb-month-head,.kb-month-grid{ gap:.18rem; }
  .kb-month-cell{ min-height:48px; }
  .kb-month-daynum{ font-size:.85rem; }
  .kb-month-has-terms::after{ bottom:4px; width:5px; height:5px; }
}
.kb-scrollbox{max-height:260px;overflow:auto;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:.75rem;background:#fff}


/* Vergangene Tage: ausgegraut und nicht klickbar */
.kb-day-past{opacity:.35;filter:grayscale(1);}
.kb-day-past a{pointer-events:none;}

/* Tage aus Vor-/Folgemonat im Monatsraster: sichtbar, aber ausgegraut.
   Bestehende Termine sollen weiterhin aufrufbar sein → keine Pointer-Blockade. */
.kb-month-out{
  opacity:.35;
  filter:grayscale(1);
  background:rgba(0,0,0,.03);
  border-color:rgba(0,0,0,.18);
}


/* Badge Farben (konfigurierbar) */
:root{
  --kb-badge-bg:#0d6efd;
  --kb-badge-text:#fff;
  --kb-badge-central-bg:#dc3545;
  --kb-badge-central-text:#fff;
  --kb-badge-soft-bg:#e7f1ff;
  --kb-badge-soft-text:#0d6efd;
  --kb-badge-success-bg:#198754;
  --kb-badge-success-text:#fff;
  --kb-badge-secondary-bg:#6c757d;
  --kb-badge-secondary-text:#fff;
  --kb-badge-primary-bg:#0d6efd;
  --kb-badge-primary-text:#fff;
  --kb-badge-danger-bg:#dc3545;
  --kb-badge-danger-text:#fff;
  --kb-badge-warning-bg:#ffc107;
  --kb-badge-warning-text:#212529;
  --kb-instance-size:20px;
}
.kb-badge{background:var(--kb-badge-bg)!important;color:var(--kb-badge-text)!important;}
.badge.text-bg-success{background:var(--kb-badge-success-bg)!important;color:var(--kb-badge-success-text)!important;}
.badge.text-bg-secondary{background:var(--kb-badge-secondary-bg)!important;color:var(--kb-badge-secondary-text)!important;}
.badge.text-bg-primary{background:var(--kb-badge-primary-bg)!important;color:var(--kb-badge-primary-text)!important;}
.badge.text-bg-danger{background:var(--kb-badge-danger-bg)!important;color:var(--kb-badge-danger-text)!important;}
.badge.bg-warning{background:var(--kb-badge-warning-bg)!important;color:var(--kb-badge-warning-text)!important;}

/* Badge Farben nach Zweck (v8.7.0.4) */
.badge.kb-badge-role-admin{background:var(--kb-badge-role-admin-bg, var(--kb-badge-bg))!important;color:var(--kb-badge-role-admin-text, var(--kb-badge-text))!important;}
.badge.kb-badge-role-super{background:var(--kb-badge-role-super-bg, var(--kb-badge-warning-bg))!important;color:var(--kb-badge-role-super-text, var(--kb-badge-warning-text))!important;}

.badge.kb-badge-term-full{background:var(--kb-badge-term-full-bg, var(--kb-badge-secondary-bg))!important;color:var(--kb-badge-term-full-text, var(--kb-badge-secondary-text))!important;}
.badge.kb-badge-term-current{background:var(--kb-badge-term-current-bg, var(--kb-badge-primary-bg))!important;color:var(--kb-badge-term-current-text, var(--kb-badge-primary-text))!important;}

.badge.kb-badge-sys-pw{background:var(--kb-badge-sys-pw-bg, var(--kb-badge-warning-bg))!important;color:var(--kb-badge-sys-pw-text, var(--kb-badge-warning-text))!important;}
.badge.kb-badge-sys-mail-on{background:var(--kb-badge-sys-mail-on-bg, var(--kb-badge-success-bg))!important;color:var(--kb-badge-sys-mail-on-text, var(--kb-badge-success-text))!important;}
.badge.kb-badge-sys-mail-off{background:var(--kb-badge-sys-mail-off-bg, var(--kb-badge-secondary-bg))!important;color:var(--kb-badge-sys-mail-off-text, var(--kb-badge-secondary-text))!important;}
.badge.kb-badge-sys-maintenance{background:#dc3545!important;color:#ffffff!important;}
.badge.kb-badge-sys-online{background:var(--kb-badge-sys-online-bg, var(--kb-badge-success-bg))!important;color:var(--kb-badge-sys-online-text, var(--kb-badge-success-text))!important;}




/* User-Kuerzel (neben Logout) */
.kb-userchip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:38px;
  padding:0 12px;
  border-radius:999px;
  border:2px solid var(--kb-userchip-border, rgba(255,255,255,.7));
  background:var(--kb-userchip-bg, rgba(255,255,255,.15));
  color:var(--kb-userchip-text, var(--kb-header-text, #fff));
  font-weight:700;
  text-decoration:none;
  line-height:1;
}
.kb-userchip:hover{
  filter:brightness(1.05);
  text-decoration:none;
}
/* Mobile Nav: Buttons vollbreit und zentriert */
@media (max-width: 991.98px){
  .kb-navgroup{width:100%;}
  .kb-navgroup .kb-navbtn{display:block;width:100%;text-align:center;}
  .kb-navgroup .dropdown-menu{width:100%;}
  .kb-navgroup .dropdown-item{text-align:center;}
  .kb-nav-right{width:100%;}
  .kb-nav-right .kb-logoutwrap{display:flex;gap:.5rem;justify-content:center;align-items:center;margin-top:.5rem;}
}


/* Vergangene Tage ausgrauen und deaktivieren */
.kb-day--past{opacity:.28; filter:grayscale(1);}
.kb-day--past a{pointer-events:none;}
.kb-day--past button{pointer-events:none;}

/* Beta-Banner: Text zentriert, Feedback-Button rechts; mobil bleibt alles vollständig sichtbar */
.kb-beta-banner-inner{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:.5rem;
  padding-right:6.75rem; /* Platz fuer den Button, damit Text nicht ueberlappt */
}
.kb-beta-banner-text{
  width:100%;
  text-align:center;
  font-size:0.875rem;
  line-height:1.25;
  white-space:normal;
}
.kb-beta-banner-btn{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
}


/* Heute vergangene Termine: sichtbar, aber nicht anklickbar */
.kb-month-entry-disabled{opacity:.55;filter:grayscale(.35);cursor:default;}


.kb-pasttoday-hint{
  border-radius:12px;
}

/* v8.8.3.05: Admin-Settings – Slider nicht überbreit */
.kb-settings .form-range{max-width:520px;}


/* v8.8.3.06: Optik-Seite – ausklappbare Bereiche + sauberes Padding */
.kb-optic-accordion .accordion-item{
  border-radius: .75rem;
  overflow: hidden;
}
.kb-optic-accordion .accordion-item + .accordion-item{
  margin-top: .75rem;
}
.kb-optic-accordion .accordion-button{
  font-weight: 600;
}
.kb-optic-accordion .accordion-body{
  padding: 1rem 1rem 1.25rem 1rem;
}
.kb-optic-accordion .nav-tabs{
  margin-bottom: .75rem;
}
.kb-optic-accordion .form-range{
  max-width: 420px;
}

/* v8.8.3.13: Mobile Look Overhaul – Bottom-Navigation + Bottom-Sheet */
@media (max-width: 1199.98px){
  /* Mobile Look Overhaul nur im Frontend (eingeloggt, nicht im Backend) */
  body.kb-logged-in .kb-navbar > .container{flex-wrap:wrap;}
  body.kb-logged-in .kb-mobile-topbar{flex:0 0 100%; width:100%; min-width:100%;}

  body.kb-logged-in .kb-navbar .navbar-brand,
  body.kb-logged-in .kb-navbar .navbar-toggler,
  body.kb-logged-in .kb-navbar .navbar-collapse{display:none !important;}

  body.kb-logged-in .kb-mobile-topbar{display:flex !important;}

  /* Platz für Bottom-Navigation nur im Frontend */
  body.kb-logged-in{padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));}

  /* Mobile: Admin-Menü oben ausblenden */
  body.kb-logged-in .kb-adminsubnav{display:none !important;}

  /* Mobile: Buttons/Elemente, die nur in der Webansicht sichtbar sein sollen */
  .kb-hide-mobile{display:none !important;}

  /* Mobile (Wochenansicht): Vergangene Tage in der aktuellen Woche ausblenden */
  .kb-weekview-days .kb-day-past{display:none !important;}
}

/* Mobile-Topbar (Logo + Instanz + Userchip) */
.kb-mobile-topbar{display:none; align-items:center; justify-content:space-between; padding: .6rem 0; gap:.75rem; width:100%; flex:1 1 auto; min-width:0; position:relative;}
.kb-mobile-topbar-left{display:flex; align-items:center; gap:.5rem; text-decoration:none; flex:1 1 auto; min-width:0; padding-right: 120px;}
.kb-mobile-instance{font-weight:700; font-size: clamp(1.3rem, 4vw, var(--kb-mobile-instance-max, 1.9rem)); line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width: 100%; text-shadow: var(--kb-instance-shadow, none);}
/* Mobile-Topbar: Kürzel so hoch wie das Logo */
.kb-mobile-topbar .kb-userchip{height:28px; min-width:28px; padding:0 8px; font-size:.85rem;}

/* Mobile-Topbar: Kürzel zuverlässig rechts + Badge darunter */
.kb-mobile-userbox{display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:.25rem; text-align:right; position:absolute; right:0; top:50%; transform:translateY(-50%);}
.kb-mobile-userbox .badge{font-size:.7rem; line-height:1; display:block; margin-left:auto;}

@media (max-width: 1199.98px){
  /* Mobile-Header: Rollen-Badge darf nicht im Menü-Hintergrund verschwinden */
  .kb-mobile-topbar .kb-badge-role-admin{
    background: rgba(255,255,255,.18)!important;
    color: var(--kb-header-text)!important;
    border: 1px solid rgba(255,255,255,.35);
  }
}


/* Bottom Navigation */
.kb-mobile-bottomnav{display:none;}
@media (max-width: 1199.98px){
  .kb-mobile-bottomnav{
    position:fixed;
    left:0; right:0; bottom:0;
    height: calc(64px + env(safe-area-inset-bottom, 0px));
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)) 10px;
    display:flex;
    align-items:center;
    justify-content:space-around;
    gap: 6px;
    z-index: 1030;
    background: rgba(var(--kb-mobile-nav-bg-rgb), var(--kb-mobile-nav-bg-opacity));
    backdrop-filter: blur(8px);
    border-top: 1px solid rgba(0,0,0,.08);
  }
  .kb-mnav-item{
    width: 56px;
    height: 48px;
    border-radius: 14px;
    display:flex;
    align-items:center;
    justify-content:center;
    color: var(--kb-mobile-nav-icon-color);
    text-decoration:none;
    border: 1px solid rgba(0,0,0,.12);
    background: rgba(255,255,255,.06);
  }
  .kb-mnav-item.active{background: rgba(255,255,255,.18);}
  .kb-mnav-item:not(.active){opacity:.72;}
  .kb-mnav-item:active{transform: translateY(1px);}

  /* Keine Hover-Effekte im Bottom-Menü (auch am Desktop im Burger-Breakpoint) */
  .kb-mnav-item:hover, .kb-mnav-item:focus{
    background: rgba(255,255,255,.06);
    color: var(--kb-mobile-nav-icon-color);
    text-decoration:none;
    opacity: 1;
    box-shadow: none;
    outline: none;
  }
  .kb-mnav-item.active:hover, .kb-mnav-item.active:focus{
    background: rgba(255,255,255,.18);
  }

  .kb-mnav-ic{font-size: var(--kb-mobile-nav-icon-size); line-height:1; display:flex;}
  .kb-mnav-item svg{width: 1em; height: 1em;}

  /* Bottom-Sheet */
  .kb-mobile-sheet{border-top-left-radius: 18px; border-top-right-radius: 18px;}
  /* Bootstrap offcanvas-bottom defaults to a fixed height (vh). Make sure all menu points stay visible. */
  .kb-mobile-sheet.offcanvas-bottom{
    height:auto;
    /* Bottom-Navigation nicht überdecken (damit „Anfragen bei mir“ nicht „hinter“ dem Menü verschwindet) */
    bottom: calc(64px + env(safe-area-inset-bottom, 0px));
    max-height: min(520px, calc(100vh - (64px + env(safe-area-inset-bottom, 0px)) - 12px));
  }
  .kb-mobile-sheet .offcanvas-header{padding: .75rem 1rem .25rem 1rem;}
  .kb-mobile-sheet .offcanvas-body{padding: .5rem 0 calc(1rem + env(safe-area-inset-bottom, 0px)) 0; overflow-y:auto;}
  .kb-mobile-sheet-top{width:100%; position:relative;}
  .kb-mobile-sheet-handle{width: 46px; height: 4px; border-radius: 999px; margin: 0 auto .5rem auto; background: rgba(0,0,0,.18);}
  .kb-mobile-sheet-topicons{display:flex; justify-content:flex-end; gap:.5rem;}
  .kb-mobile-topicon{display:inline-flex; align-items:center; justify-content:center; width: 40px; height: 40px; border-radius: 12px; color: var(--kb-mobile-sheet-icon-color, var(--kb-mobile-nav-icon-color)); border: 1px solid rgba(0,0,0,.12); background: rgba(255,255,255,.06); text-decoration:none;}
  .kb-mobile-topicon svg{width: 1.1em; height: 1.1em;}

  /* Keine Hover-Effekte im Bottom-Menü */
  .kb-mobile-topicon:hover, .kb-mobile-topicon:focus{
    background: rgba(255,255,255,.06);
    color: var(--kb-mobile-sheet-icon-color, var(--kb-mobile-nav-icon-color));
    text-decoration:none;
    box-shadow: none;
    outline: none;
  }
  .kb-mobile-sheet .list-group-item-action:hover,
  .kb-mobile-sheet .list-group-item-action:focus{
    background: transparent;
    color: inherit;
    box-shadow: none;
    outline: none;
  }

  /* Dark Mode: mobile user menu icons keep prior look but remain readable */
  html[data-bs-theme="dark"] .kb-mobile-topicon{
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(255,255,255,.10);
  }
  html[data-bs-theme="dark"] .kb-mobile-topicon:hover,
  html[data-bs-theme="dark"] .kb-mobile-topicon:focus{
    background: rgba(255,255,255,.14);
  }

}


/* Mobile (Burger-Breakpoint): Wochenansicht reduziert */
@media (max-width: 1199.98px){
  .kb-week-headwrap{display:none !important;}
  .kb-week-datepick{display:none !important;}
  .kb-month-datepick{display:none !important;}
}

/* Landing Page (Gäste) */
.kb-landing{padding-top:1.25rem;padding-bottom:2.5rem;}
.kb-landing-hero{background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.06);position:relative;overflow:hidden;}
.kb-landing-hero:before{content:"";position:absolute;inset:-40% -20% auto -20%;height:240px;background:radial-gradient(closest-side, rgba(0,0,0,.08), transparent 70%);pointer-events:none;}
html[data-bs-theme="dark"] .kb-landing-hero{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);}
html[data-bs-theme="dark"] .kb-landing-hero:before{background:radial-gradient(closest-side, rgba(255,255,255,.12), transparent 70%);}
.kb-landing-eyebrow{letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;opacity:.75;}
.kb-landing-notes{display:grid;gap:.35rem;}
.kb-landing-bullet{display:flex;gap:.5rem;align-items:flex-start;}


/* Info-Icon (Zentraler Nachschreibetermin) */
.kb-info-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.25rem;
  height:1.25rem;
  padding:0;
  margin-left:0.35rem;
  border-radius:999px;
  border:1px solid currentColor;
  background:transparent;
  color:inherit;
  font-size:0.75rem;
  line-height:1;
  text-decoration:none;
}
.kb-info-icon:focus{
  outline:2px solid rgba(0,0,0,0.25);
  outline-offset:2px;
}

/* v8.8.4.26: „Willkommen zurück“ nach Login in Mobile ausblenden (Web bleibt sichtbar) */
@media (max-width: 1199.98px){
  .kb-hide-mobile{display:none !important;}

  /* Mobile (Wochenansicht): Vergangene Tage in der aktuellen Woche ausblenden */
  .kb-weekview-days .kb-day-past{display:none !important;}
}

/* Dark Mode: Footer-Links (inkl. CC) gut sichtbar */
[data-bs-theme="dark"] footer a,
[data-bs-theme="dark"] .kb-footer a{ color:rgba(255,255,255,.82) !important; }
[data-bs-theme="dark"] footer a:hover,
[data-bs-theme="dark"] .kb-footer a:hover{ color:rgba(255,255,255,.95) !important; }


/* KB UI helpers */
.kb-crown-small{font-size:0.85em; line-height:1; vertical-align:baseline; margin-left:.25rem;}

/* v8.9.0.02: Web/Desktop – Menüs wie Beta-Balken (vollbreite Leisten), Felder eckig, Transparenz steuerbar */
@media (min-width: 1200px){
  /* Auf Desktop ersetzt die klassische Menüleiste die Bootstrap-Navbar */
  .kb-navbar{display:none !important;}

  .kb-webwrap{display:block;}

  .kb-web-brand .kb-logo{max-height:64px;}

  /* Menü-Leiste: wie Beta-Balken = Hintergrund über volle Breite, Inhalte in .container */
  .kb-web-menubar{
    width:100%;
    margin:0;
    padding:0;
    /* Menüfarbe = Theme Primary (Menüfarbe im Basis-Design). */
    background-color: rgba(var(--kb-primary-rgb), var(--kb-web-menu-bg-opacity, .62));
    background-image: linear-gradient(rgba(var(--kb-primary-rgb), var(--kb-web-menu-bg-opacity, .62)), rgba(var(--kb-primary-rgb), var(--kb-web-menu-bg-opacity, .62))), var(--kb-menu-bg-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }

  /* Container selbst bleibt transparent, damit das Headerbild sichtbar bleibt */
  .kb-web-menu-inner{
    padding:.55rem 0;
    background:transparent;
  }

  .kb-web-menu-row{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1rem;
  }

  .kb-web-menu-links{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center; /* Buttons zentriert */
    gap:0;
    flex-wrap:wrap;
    padding:0 160px; /* Platz für Icons rechts */
  }

  .kb-web-link{
    text-decoration:none;
    color: var(--kb-header-text);
    padding:.35rem .70rem;
    border:1px solid color-mix(in srgb, currentColor 28%, transparent);
    border-radius:0;
    font-weight:600;
    opacity:.98;    background: rgba(var(--kb-primary-rgb), var(--kb-web-menu-link-opacity, .50));
    /* Buttons direkt aneinander (ohne Abstand) */
    margin:0;
    position:relative;
    z-index:0;
  }
  .kb-web-link + .kb-web-link{ margin-left:-1px; }
  .kb-web-link:hover,
  .kb-web-link:focus{
    z-index:1;
    opacity:1;    background: rgba(var(--kb-primary-rgb), var(--kb-web-menu-link-hover-opacity, .68));
    border-color: color-mix(in srgb, currentColor 40%, transparent);
  }
  .kb-web-link.active{
    z-index:2;
    opacity:1;    background: rgba(var(--kb-primary-rgb), var(--kb-web-menu-link-active-opacity, .76));
    border-color: currentColor;
    font-weight:700;
  }

  .kb-web-menu-icons{
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    display:flex;
    align-items:center;
    gap:.55rem;
  }

  .kb-web-icon{
    width:36px;
    height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:0;
    text-decoration:none;
    color: var(--kb-header-text);    background: rgba(var(--kb-primary-rgb), var(--kb-web-menu-icon-opacity, .46));
    border:1px solid color-mix(in srgb, currentColor 28%, transparent);
  }
  .kb-web-icon:hover,
  .kb-web-icon:focus{    background: rgba(var(--kb-primary-rgb), var(--kb-web-menu-icon-hover-opacity, .60));
    border-color: color-mix(in srgb, currentColor 40%, transparent);
  }

  /* Admin-Untermenü: bewusst Vollfarbe (wie Primary-Buttons, z.B. "Preset anwenden") */
  .kb-adminsubnav{
    width:100%;
    margin:0;
    padding:0;
    background: var(--kb-adminsubnav-bg, var(--kb-ui-primary, var(--kb-primary)));
    background-image: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .kb-adminsubnav .kb-adminsubnav-inner{
    /* v8.9.0.26: Admin-Menü in Webansicht etwas kleiner */
    padding:.30rem 0;
    background:transparent;
  }

  .kb-adminsubnav .kb-adminsubnav-row{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:0;
  }

  .kb-adminsubnav .kb-adminnavbtn{
    border-radius:0;
    margin:0;
    /* v8.9.0.26: kompaktere Buttons */
    padding:.20rem .55rem;
    font-size:.90rem;
    background: color-mix(in srgb,
      var(--kb-adminsubnav-bg, var(--kb-ui-primary, var(--kb-primary))) var(--kb-admin-menu-btn-alpha, 60%),
      transparent
    );
    border:1px solid color-mix(in srgb, currentColor 28%, transparent);
    color: var(--kb-header-text) !important;
    font-weight:600;
    position:relative;
    z-index:0;
  }
  .kb-adminsubnav .kb-adminnavbtn + .kb-adminnavbtn{ margin-left:-1px; }
  .kb-adminsubnav .kb-adminnavbtn:hover,
  .kb-adminsubnav .kb-adminnavbtn:focus{    background: color-mix(in srgb,
      var(--kb-adminsubnav-bg, var(--kb-ui-primary, var(--kb-primary))) var(--kb-admin-menu-btn-alpha-hover, 72%),
      transparent
    );
    border-color: color-mix(in srgb, currentColor 40%, transparent);
    z-index:1;
  }
  .kb-adminsubnav .kb-adminnavbtn.active{    background: color-mix(in srgb,
      var(--kb-adminsubnav-bg, var(--kb-ui-primary, var(--kb-primary))) var(--kb-admin-menu-btn-alpha-active, 78%),
      transparent
    );
    border-color: currentColor;
    font-weight:700;
    z-index:2;
  }

  /* Schalter im Header gut erkennbar (leichter Hintergrund + Rahmen) */
  .kb-user-mode-toggle{
    padding:.15rem .45rem;
    border-radius:999px;
    background: color-mix(in srgb, #000 10%, transparent);
    border:1px solid color-mix(in srgb, currentColor 24%, transparent);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }

  /* Schalter im Header kompakter */
  .kb-user-mode-toggle .form-check-input{margin-top:0;}
  .kb-user-mode-toggle .form-check-label{user-select:none;}
}


/* ==========================
   Updater Overrides
   (Header + Logout sichtbar)
   ========================== */
.kb-navbar .navbar-brand{display:flex !important;}
.kb-navbar .navbar-toggler{display:none !important;}
.kb-navbar .navbar-collapse{display:flex !important;}
.kb-navbar .navbar-nav{flex-direction:row !important; align-items:center !important;}
.kb-navbar .nav-link{color:var(--kb-header-text,#ffffff) !important; opacity:.95;}
.kb-navbar .nav-link:hover{opacity:1;}
