/* =========================================================
   LUMIQ ADMIN – CLEAN DARK UI (NEXA + LUMIQ THEME)
   FIXED + CONSOLIDATED (valid CSS, no duplicates)
   ========================================================= */

/* =========================
   FONT – NEXA
   ========================= */
@font-face{
  font-family:"Nexa";
  src:url("/static/fonts/Nexa-Regular.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

:root{
  /* Brand */
  --pri:#2BB8CE;            /* LUMIQ Primary */
  --pri2:#33D3FF;           /* Glow */
  --priSoft: rgba(43,184,206,.14);

  /* Base */
  --bg0:#02040a;
  --bg1:#07111a;
  --card:rgba(10,25,38,.78);
  --line:rgba(255,255,255,.10);
  --txt:#eaf2f6;
  --muted:rgba(234,242,246,.72);

  --ok:#26d16b;
  --err:#ff6b5f;
  --warn:#ffb842;

  --shadow:0 18px 60px rgba(0,0,0,.55);
  --r:18px;
  --pill:999px;

  /* LUMIQ Background */
  --bg:
    radial-gradient(1100px 700px at 30% 30%, rgba(43,184,206,.12), transparent 55%),
    radial-gradient(900px 600px at 70% 70%, rgba(51,211,255,.09), transparent 55%),
    linear-gradient(180deg, #02040a, #040b12 50%, #03060a);

  color-scheme:dark;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*{box-sizing:border-box}
html,body{height:100%}

html, body{
  font-family:"Nexa", system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  color:var(--txt);
  background: var(--bg);
  background-attachment: fixed;
  margin:0;
}

a{color:inherit}
.muted{color:var(--muted)}

/* =========================================================
   TOPBAR
   ========================================================= */
.topbar{
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter:blur(12px);
  background:rgba(2,4,10,.75);
  border-bottom:1px solid var(--line);
}

.topbar-inner{
  max-width:1500px;
  margin:0 auto;
  padding:14px 18px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap: nowrap; /* kein Umbruch */
}

.topbar-spacer{flex:1}

/* Brand */
.brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:260px;
  white-space:nowrap;
}
.brand img{
  height:68px;
  width:auto;
  border-radius:6px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.brand .title{
  font-weight:900;
  letter-spacing:.08em;
  font-size:26px;
  line-height:1;
}
.brand .sub{
  font-size:12px;
  color:var(--muted);
}

/* =========================================================
   NAV / BUTTONS
   ========================================================= */

/* Nav: kein Umbruch -> horizontal scroll */
.nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap: nowrap;
  white-space: nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.nav::-webkit-scrollbar{display:none;}

.navspacer{margin-left:auto}

.btn{
  appearance:none;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:var(--txt);
  padding:10px 14px;
  border-radius:var(--pill);
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:.15s ease;
  white-space: nowrap;
}
.btn:hover{
  border-color: rgba(43,184,206,.45);
  background: rgba(43,184,206,.08);
}
.btn.pri{
  border-color: rgba(43,184,206,.55);
  background: rgba(43,184,206,.16);
}
.btn.danger{
  border-color: rgba(255,107,95,.45);
  background: rgba(255,107,95,.14);
}
.btn.toggle.on,
.btn.toggle[aria-pressed="true"]{
  border-color: rgba(43,184,206,.55);
  background: rgba(43,184,206,.14);
  box-shadow: 0 0 0 3px rgba(43,184,206,.10);
}

/* Links als Buttons (Topnav) */
.nav a{
  text-decoration:none;
  color: rgba(234,242,246,.86);
  font-weight:700;
  padding:9px 12px;
  border-radius: var(--pill);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  transition:.15s ease;
  white-space: nowrap;
}
.nav a:hover{
  border-color: rgba(43,184,206,.28);
  background: rgba(43,184,206,.06);
  transform: translateY(-1px);
}
.nav a.active{
  color: var(--txt);
  border-color: rgba(43,184,206,.45);
  background: rgba(43,184,206,.12);
  box-shadow: 0 0 0 3px rgba(43,184,206,.08);
}

/* Userchip */
.userchip{
  padding:8px 14px;
  border-radius: var(--pill);
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  font-weight:700;
  color: var(--txt);
  white-space: nowrap;
}

/* =========================================================
   LAYOUT (Sidebar + Content)
   ========================================================= */
.layout{
  display:flex;
  min-height: calc(100vh - 64px); /* Topbar ~64px */
}

.sidebar{
  width: 260px;
  flex: 0 0 260px;
  padding: 18px 14px;
  border-right: 1px solid rgba(255,255,255,.08);
  background: rgba(2,4,10,.55);
  position: sticky;
  top: 64px;
  height: calc(100vh - 64px);
  overflow: auto;
}

.sideTitle{
  font-size: 11px;
  letter-spacing: .14em;
  opacity: .65;
  margin: 6px 10px 12px;
  text-transform: uppercase;
}

.sideNav{
  display:flex;
  flex-direction: column;
  gap: 6px;
}

/* Clean Nav-Link */
.sideLink{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration:none !important;
  color: rgba(234,242,246,.82);
  border: 1px solid transparent;
  background: transparent;
  transition: .15s ease;
  line-height: 1;
}
.sideLink .ico{
  width: 22px;
  height: 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: 14px;
  opacity: .9;
}
.sideLink .lbl{
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .01em;
}
.sideLink:hover{
  background: rgba(43,184,206,.08);
  border-color: rgba(43,184,206,.22);
  color: var(--txt);
}
.sideLink.active{
  background: linear-gradient(90deg, rgba(43,184,206,.22), rgba(43,184,206,.06));
  border-color: rgba(43,184,206,.28);
  color: var(--txt);
  position: relative;
}
.sideLink.active::before{
  content:"";
  position:absolute;
  left: 6px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 999px;
  background: var(--pri);
  box-shadow: 0 0 0 3px rgba(43,184,206,.12);
}

.sideSep{
  height: 1px;
  margin: 10px 8px;
  background: rgba(255,255,255,.10);
}

.main{
  flex:1;
  min-width:0;
}

/* =========================================================
   CONTENT
   ========================================================= */
.container{
  max-width:1500px;
  margin:0 auto;
  padding:22px 18px 60px;
}

.card{
  background:var(--card);
  border:1px solid rgba(255,255,255,.10);
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:18px;
}
.card + .card{margin-top:14px}

/* =========================================================
   TABLES
   ========================================================= */
.tbl{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
}
.tbl thead th{
  padding:12px;
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(234,242,246,.75);
  background:rgba(255,255,255,.04);
  border-bottom:1px solid rgba(255,255,255,.10);
}
.tbl td{
  padding:12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  font-size: 13px;
  line-height: 1.25;
}
.tbl tr:hover td{background:rgba(255,255,255,.03)}
.tbl tr:last-child td{border-bottom:none}

/* Optional: MAC in einer Zeile halten */
.tbl td:first-child{white-space:nowrap}

/* Tables: horizontal scroll wrapper */
.tableWrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling: touch;
}
.tableWrap .tbl{ min-width: 980px; }
.tableWrap.wide .tbl{ min-width: 1100px; }

/* =========================================================
   INPUTS
   ========================================================= */
label{
  display:block;
  margin-bottom:6px;
  font-size:12px;
  color:var(--muted);
}

/* Inputs */
input:not([type="checkbox"]):not([type="radio"]),
select{
  width:100%;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:#0f1b24;
  color:var(--txt);
  outline:none;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
}

input:focus,
select:focus{
  border-color: rgba(43,184,206,.45);
  box-shadow: 0 0 0 3px rgba(43,184,206,.12);
}

/* Dropdown options */
select option{
  background:#0f1b24 !important;
  color:#eaf2f7 !important;
}

/* Select arrow */
select{
  padding-right:38px;
  background-image:
    linear-gradient(45deg, transparent 50%, #cfefff 50%),
    linear-gradient(135deg, #cfefff 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%;
  background-size:6px 6px;
  background-repeat:no-repeat;
}

/* Textarea */
textarea.input,
.input.textarea{
  width:100% !important;
  min-width:100% !important;
  display:block;
  resize:vertical;
  min-height:110px;
  line-height:1.35;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
  color:var(--txt);
  outline:none;
}
textarea.input:focus,
.input.textarea:focus{
  border-color: rgba(43,184,206,.40);
  box-shadow: 0 0 0 3px rgba(43,184,206,.10);
}

/* =========================================================
   GRID (generic)
   ========================================================= */
.grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:12px;
}
@media(max-width:1100px){
  .grid{grid-template-columns:1fr 1fr}
}

/* =========================================================
   CHECKBOX / CHIPS
   ========================================================= */
.chk{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius: var(--pill);
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  cursor:pointer;
  user-select:none;
  font-weight:800;
  color: rgba(234,242,246,.86);
}
.chk:hover{
  border-color: rgba(43,184,206,.28);
  background: rgba(43,184,206,.06);
}
.chk input{
  width:16px;
  height:16px;
  margin:0;
  accent-color: var(--pri);
}

/* =========================================================
   PILLS
   ========================================================= */
.pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  letter-spacing:.2px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
}

.pillGood, .pillOk{
  background:rgba(38,209,107,.12);
  border-color:rgba(38,209,107,.35);
  color:#aef6c5;
}
.pillBad, .pillDanger{
  background:rgba(255,107,95,.12);
  border-color:rgba(255,107,95,.38);
  color:#ffc0ba;
}
.pillNew{
  background: rgba(43,184,206,.12);
  border-color: rgba(43,184,206,.38);
  color: #bfefff;
}
.pillWarn{
  background:rgba(255,184,66,.12);
  border-color:rgba(255,184,66,.38);
  color:#ffd28b;
}

/* =========================================================
   MODAL
   ========================================================= */
.modalBack{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:50;
  padding:18px;
}
.modal{
  width:min(980px,100%);
  background:rgba(2,6,12,.94);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  box-shadow:0 30px 90px rgba(0,0,0,.65);
}
.modalHead,
.modalFoot{
  padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.modalFoot{
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:none;
  display:flex;
  justify-content:flex-end;
  gap:10px;
}
.modalBody{padding:18px}

/* =========================================================
   LOGIN PAGES
   ========================================================= */
.loginPage{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.loginWrap{
  width:100%;
  padding:40px 18px;
}
.loginCard{
  max-width:520px;
  margin:0 auto;
}
.loginBrand{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}
.loginLogo{
  height:28px;
  width:auto;
  border-radius:6px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}
.loginTitle{
  font-weight:900;
  letter-spacing:.08em;
  font-size:26px;
  line-height:1;
}
.loginSub{
  font-size:12px;
  margin-top:4px;
}
.loginActions{
  display:flex;
  justify-content:flex-end;
  margin-top:18px;
}
.loginFooter{
  margin-top:14px;
  font-size:12px;
}

/* Hero brand */
.loginBrandWide{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  margin-bottom:22px;
}
.loginLogoWide{
  width:100%;
  max-width:420px;
  height:auto;
  margin-bottom:16px;
  border-radius:10px;
  box-shadow:0 14px 40px rgba(0,0,0,.45);
}
.loginTitleWide{
  font-weight:900;
  letter-spacing:.08em;
  font-size:28px;
  line-height:1.1;
}
.loginSubWide{
  font-size:12px;
  margin-top:6px;
}

/* =========================================================
   SCREENSHOT THUMBS (generic)
   ========================================================= */
.shotThumb{
  width: 92px;
  height: 52px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 10px 25px rgba(0,0,0,.35);
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease;
}
.shotThumb:hover{
  transform: scale(1.03);
  box-shadow: 0 16px 40px rgba(0,0,0,.55);
}
.shotLink{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.shotBig{
  width: 100%;
  height: auto;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.25);
}

/* =========================================================
   MOBILE RESPONSIVE LAYER (clean, consistent)
   ========================================================= */
@media (max-width: 900px){
  .container{ padding: 14px 12px 50px; }
  .btn{ padding: 12px 14px; }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea.input,
  .input.textarea{
    padding: 12px 12px;
  }

  .card{ padding: 14px; }
  .card + .card{ margin-top: 10px; }

  .topbar-inner{ padding: 10px 12px; gap: 10px; }
  .brand{ min-width: 0; gap: 10px; }
  .brand img{ height: 44px; }
  .brand .title{ font-size: 16px; letter-spacing: .06em; line-height: 1.05; }
  .brand .sub{ display:none; }
  .userchip{ display:none; }

  .layout{ flex-direction: column; }
  .sidebar{
    position: relative;
    top: 0;
    height: auto;
    width: 100%;
    flex: 0 0 auto;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,.08);
  }
}

@media (max-width: 600px){
  .container{ padding: 12px 10px 46px; }
  .card{ padding: 12px; }

  h1.h1{
    font-size: 20px;
    margin: 4px 0 8px;
    font-weight: 800;
  }
  .h2{
    font-size: 16px;
    margin: 0 0 8px;
  }

  .topbar-inner{ padding: 6px 8px; gap: 8px; }
  .brand img{ height: 30px; }
  .brand .title{ font-size: 13px; letter-spacing: .03em; }

  /* tables hint */
  .tableWrap{ position:relative; }
  .tableWrap::after{
    content:"← wischen →";
    position:absolute;
    top:-18px;
    right:6px;
    font-size:11px;
    opacity:.55;
    pointer-events:none;
  }

  /* Sidebar link compact */
  .sideLink{ padding: 8px 10px; border-radius: 10px; }
  .sideLink .ico{ width: 16px; font-size: 12px; }
  .sideLink .lbl{ font-size: 12px; font-weight: 700; }
}

/* =========================================================
   BOT-WISSEN (admin/bot_knowledge) – Cards + 2-Column + Scroll
   ========================================================= */

/* Layout: links Regeln (scrollbar), rechts Bearbeiten */
.bkGrid{
  display:grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

/* Wichtig: auf kleineren Screens automatisch 1 Spalte – aber weiterhin Cards */
@media (max-width: 1100px){
  .bkGrid{ grid-template-columns: 1fr; }
}

/* Höhen/Scroll: nutzbar ohne „Monster-Scroll“ der ganzen Seite */
.bkLeft,
.bkRight{
  min-height: 70vh;
}

/* Links: Regelnliste als Card-Items */
.bkList{
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height: 62vh;
  overflow:auto;
  padding-right: 4px;
}

.bkItem{
  display:block;
  text-decoration:none;
  color:inherit;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
  border-radius:14px;
  padding:12px;
}

.bkItem:hover{
  border-color: rgba(43,184,206,.28);
  background: rgba(43,184,206,.06);
}

.bkItem.active{
  border-color: rgba(43,184,206,.45);
  background: rgba(43,184,206,.10);
  box-shadow: 0 0 0 3px rgba(43,184,206,.08);
}

/* Bot-Wissen Kleinteile */
.bkMini{ font-size:12px; opacity:.75; }
.bkRow{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.bkGrow{ flex:1; min-width: 0; }

.bkKbd{
  font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size: 12px;
  opacity: .9;
}

/* Trenner */
.bkSep{
  height:1px;
  background: rgba(255,255,255,.08);
  margin: 12px 0;
}

/* Textareas in Bot-Wissen etwas höher */
.bkTa{
  min-height: 140px;
  resize: vertical;
}

/* Test-Result: vertikal untereinander, keine seitliche Überbreite */
#bkTestResult,
#bkSuggestBox{
  overflow: hidden;
}
#bkTestDetails .card{
  margin-top:10px;
}

/* Mobile: links Liste nicht zu hoch */
@media (max-width: 600px){
  .bkList{ max-height: 45vh; }
}

.bkRightScroll{
  max-height: 70vh;
  overflow: auto;
  padding-right: 4px;
}

/* =========================================================
   BOT-WISSEN – FLOW / STEP LAYOUT
   ========================================================= */

.bkFlow{
  display:flex;
  flex-direction:column;
  gap:22px;
  position:relative;
}

/* vertikale Linie links */
.bkFlow::before{
  content:"";
  position:absolute;
  left:18px;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(
    180deg,
    rgba(43,184,206,.35),
    rgba(43,184,206,.05)
  );
}

/* einzelner Schritt */
.bkStep{
  position:relative;
  padding-left:48px;
}

/* Nummer */
.bkStepNum{
  position:absolute;
  left:6px;
  top:18px;
  width:26px;
  height:26px;
  border-radius:50%;
  background:rgba(43,184,206,.18);
  border:1px solid rgba(43,184,206,.45);
  color:#bfefff;
  font-weight:900;
  font-size:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 0 0 4px rgba(43,184,206,.08);
}

/* =========================================================
   BOT-WISSEN – Gruppen/Hierarchie links
   ========================================================= */

.bkList{
  position: relative;
}

/* Gruppen-Header */
.bkGroupTitle{
  margin: 6px 4px 4px;
  padding: 8px 10px;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(234,242,246,.60);
  opacity: .9;
  border-top: 1px solid rgba(255,255,255,.08);
}

.bkGroupTitle:first-child{
  border-top: none;
  margin-top: 0;
}

/* Child-Items eingerückt + “Pfad”-Linie */
.bkItemChild{
  margin-left: 16px;
  position: relative;
}

.bkItemChild::before{
  content:"";
  position:absolute;
  left:-10px;
  top: 14px;
  bottom: 14px;
  width: 2px;
  border-radius: 999px;
  background: rgba(43,184,206,.18);
}

/* Kleiner “Knoten” am Anfang */
.bkItemChild::after{
  content:"";
  position:absolute;
  left:-14px;
  top: 18px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(43,184,206,.25);
  border: 1px solid rgba(43,184,206,.35);
}

/* Optional: noch stärker für “aktive” Child */
.bkItemChild.active::before{
  background: rgba(43,184,206,.32);
}
.bkItemChild.active::after{
  background: rgba(43,184,206,.40);
  border-color: rgba(43,184,206,.55);
}

/* =========================================================
   BOT-WISSEN – LEFT LIST: smaller cards + real grouping flow
   ========================================================= */

/* Gruppen-Header */
.bkGroupTitle{
  margin: 14px 0 8px;
  padding: 0 6px;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(234,242,246,.62);
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(10,25,38,.65);
  backdrop-filter: blur(10px);
  border-radius: 10px;
}

/* Linke Liste: etwas kompakter */
.bkList{
  gap: 8px;
  max-height: 62vh;
}

/* Cards links kleiner */
.bkItem{
  border-radius: 12px;
  padding: 10px 10px;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.08);
}

/* Titel/Infos kleiner */
.bkItem > .bkRow > div[style*="font-weight:900"]{
  font-size: 13px;
  line-height: 1.15;
}

.bkMini{
  font-size: 11px;
  opacity: .78;
  line-height: 1.2;
}

.bkKbd{
  font-size: 11px;
}

/* Child-Items: „Flow“ wie in deinem Beispiel (leicht versetzt) */
.bkItemChild{
  margin-left: 16px;                 /* sichtbarer Schritt nach rechts */
  position: relative;
}

/* kleine „Linie“ als visueller Pfad */
.bkItemChild::before{
  content:"";
  position:absolute;
  left:-10px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  border-radius: 999px;
  background: rgba(43,184,206,.25);
}

/* optional: kleiner „Node“-Punkt am Beginn */
.bkItemChild::after{
  content:"";
  position:absolute;
  left:-14px;
  top: 18px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(43,184,206,.45);
  box-shadow: 0 0 0 3px rgba(43,184,206,.10);
}

/* Active card bleibt gut sichtbar */
.bkItem.active{
  border-color: rgba(43,184,206,.40);
  background: rgba(43,184,206,.07);
  box-shadow: 0 0 0 3px rgba(43,184,206,.08);
}

/* =========================================================
   PILL: aktiv grün, inaktiv grau
   ========================================================= */

.pill.on{
  background: rgba(38,209,107,.14);
  border-color: rgba(38,209,107,.40);
  color: #bff7d3;
}

.pill.off{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
  color: rgba(234,242,246,.70);
}

/* Untertitel innerhalb einer Gruppe (z.B. A / B / Encoder / Receiver) */
.bkSubTitle{
  margin: 8px 0 6px;
  padding: 6px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 900;
  color: rgba(234,242,246,.86);
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
}

/* kompakter Titel in linken Cards */
.bkTitleLeft{
  font-weight: 900;
  font-size: 13px;
  line-height: 1.15;
  color: rgba(234,242,246,.92);
}

/* Multi-Level Einrückung (Weg sichtbar) */
.bkL1{ margin-left: 14px; position: relative; }
.bkL2{ margin-left: 28px; position: relative; }
.bkL3{ margin-left: 42px; position: relative; }

/* Linie für den "Pfad" */
.bkL1::before, .bkL2::before, .bkL3::before{
  content:"";
  position:absolute;
  left:-10px;
  top: 10px;
  bottom: 10px;
  width: 2px;
  border-radius: 999px;
  background: rgba(43,184,206,.22);
}

/* Node-Punkt */
.bkL1::after, .bkL2::after, .bkL3::after{
  content:"";
  position:absolute;
  left:-14px;
  top: 16px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(43,184,206,.40);
  box-shadow: 0 0 0 3px rgba(43,184,206,.10);
}

/* Aktiv / Inaktiv Pill (wie gewünscht) */
.pill.on{
  background: rgba(38,209,107,.14);
  border-color: rgba(38,209,107,.40);
  color: #bff7d3;
}
.pill.off{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
  color: rgba(234,242,246,.70);
}

/* LEFT: kompaktere Cards + kleinere Schrift */
.bkList{
  gap:8px;              /* weniger Abstand zwischen Cards */
  max-height: 66vh;
}

/* Gruppenüberschrift kompakter */
.bkGroupTitle{
  font-size: 11px;
  letter-spacing: .14em;
  opacity: .75;
  margin: 10px 6px 6px;
  text-transform: uppercase;
}

/* Subheader (A/B/...) kompakter */
.bkSubTitle{
  margin: 6px 0 4px;
  padding: 6px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 900;
}

/* Card selbst kleiner */
.bkItem{
  padding: 10px 10px;   /* kleiner als vorher */
  border-radius: 12px;
}

/* Titel kleiner */
.bkTitleLeft{
  font-size: 12.5px;
  line-height: 1.15;
}

/* Meta-Text kleiner */
.bkMini{
  font-size: 11px;
  opacity: .78;
}

/* Keywords kleiner (Monospace) */
.bkKbd{
  font-size: 11px;
  opacity: .85;
}

/* Pills kleiner */
.pill{
  padding: 5px 9px;
  font-size: 11px;
}

/* Einrückungen etwas dezenter */
.bkL1{ margin-left: 12px; }
.bkL2{ margin-left: 24px; }
.bkL3{ margin-left: 36px; }

/* “Pfad”-Linie dünner/ruhiger */
.bkL1::before, .bkL2::before, .bkL3::before{
  width: 2px;
  opacity: .75;
}

/* Node kleiner */
.bkL1::after, .bkL2::after, .bkL3::after{
  width: 7px;
  height: 7px;
  left: -13px;
  top: 16px;
}

/* ===== Bot-Wissen: Gruppen-Collapse links ===== */

.bkGroup, .bkSub{
  border: 0;
  margin: 0;
  padding: 0;
}

.bkGroupTitle{
  cursor: pointer;
  user-select: none;
  list-style: none;
  padding: 8px 10px;
  margin: 8px 4px 6px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .85;
}

/* Pfeil ausblenden (Browser default) */
.bkGroupTitle::-webkit-details-marker{ display:none; }
.bkGroupTitle::after{
  content:"▾";
  float:right;
  opacity:.7;
  transform: translateY(-1px);
}
.bkGroup[open] > .bkGroupTitle::after{ content:"▴"; }

.bkSubTitle{
  cursor: pointer;
  user-select: none;
  list-style: none;
  margin: 6px 0 6px 18px;  /* eingerückt */
  padding: 6px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.02);
  font-size: 11px;
  font-weight: 900;
  opacity: .85;
}
.bkSubTitle::-webkit-details-marker{ display:none; }
.bkSubTitle::after{
  content:"▾";
  float:right;
  opacity:.6;
}
.bkSub[open] > .bkSubTitle::after{ content:"▴"; }

/* Links: kompakter */
.bkList{ gap:8px; }
.bkItem{
  padding: 9px 10px;
  border-radius: 12px;
}
.bkTitleLeft{
  font-size: 12.5px;
  line-height: 1.15;
}
.bkMini{
  font-size: 11px;
  opacity: .78;
}
.bkKbd{
  font-size: 11px;
}

/* Status Pill Farben */
.pill.on{
  background: rgba(38,209,107,.14);
  border-color: rgba(38,209,107,.40);
  color: #bff7d3;
}
.pill.off{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
  color: rgba(234,242,246,.70);
}

/* Einrückung der Items (so “Pfad” sichtbar) */
.bkL2{
  margin-left: 20px;
  position: relative;
}
.bkL2::before{
  content:"";
  position:absolute;
  left:-12px;
  top:0;
  bottom:0;
  width:2px;
  background: rgba(43,184,206,.18);
  border-radius: 999px;
}
.bkL2::after{
  content:"";
  position:absolute;
  left:-15px;
  top:16px;
  width:7px;
  height:7px;
  border-radius:50%;
  background: rgba(43,184,206,.55);
  box-shadow: 0 0 0 3px rgba(43,184,206,.10);
}
