/* ============================================================
   beki-konzept – Styles scoped unter .kz (in beki-kita integriert)
   ============================================================ */

/* ── Eigene Variablen (nur im Konzept-Scope aktiv) ──────────────── */
.kz {
  --kz-primary:       #1e3d73;
  --kz-primary-hover: #2a4f8f;
  --kz-accent:        #3a8c68;
  --kz-accent-hover:  #2d7055;
  --kz-bg:            #f0f4f8;
  --kz-surface:       #ffffff;
  --kz-border:        #dde3ec;
  --kz-border-focus:  #3a8c68;
  --kz-text:          #1e293b;
  --kz-text-muted:    #6b7a8d;
  --kz-text-light:    #9ba8bb;
  --kz-success:       #3a8c68;
  --kz-error:         #c0392b;
  --kz-error-bg:      #fef2f2;
  --kz-radius:        12px;
  --kz-radius-sm:     8px;
  --kz-shadow:        0 2px 12px rgba(30,61,115,.08);
  --kz-shadow-lg:     0 8px 32px rgba(30,61,115,.14);
  --kz-transition:    .2s ease;
}

/* ── Reset im Scope ─────────────────────────────────────────────── */
.kz *, .kz *::before, .kz *::after { box-sizing: border-box; }

/* ── Scrollbar ──────────────────────────────────────────────────── */
.kz ::-webkit-scrollbar { width: 6px; }
.kz ::-webkit-scrollbar-track { background: rgba(0,0,0,.04); }
.kz ::-webkit-scrollbar-thumb { background: #c8d0dc; border-radius: 3px; }

/* ── Konzept-Header ─────────────────────────────────────────────── */
.kz .kz-header {
  background: #fff;
  border-bottom: 3px solid var(--kz-primary);
  box-shadow: 0 2px 10px rgba(30,61,115,.12);
  position: sticky;
  top: 58px; /* unterhalb des beki-kita-Headers (height: 58px) */
  z-index: 50;
  margin: -24px -24px 0 -24px; /* app-content padding ausgleichen */
}
.kz .kz-header-inner {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .65rem 1.5rem;
}
.kz .kz-app-title {
  font-family: Georgia, serif;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--kz-primary);
  letter-spacing: .02em;
}
.kz .kz-app-subtitle { font-size: .72rem; color: var(--kz-text-muted); }

/* ── Settings panel (fixed, scope-unabhängig) ───────────────────── */
.settings-overlay {
  position: fixed; inset: 0;
  background: rgba(30,61,115,.25);
  z-index: 1100;
  cursor: pointer;
}
.settings-panel {
  position: fixed;
  top: 0; right: 0;
  width: 360px; max-width: 100vw;
  height: 100vh;
  background: #fff;
  box-shadow: var(--kz-shadow-lg, 0 8px 32px rgba(30,61,115,.14));
  z-index: 1200;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.settings-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.1rem 1.4rem;
  border-bottom: 3px solid #1e3d73;
  background: #1e3d73;
  color: #fff;
}
.settings-header h2 { font-size: 1rem; font-weight: 700; }
.settings-body { padding: 1.4rem; display: flex; flex-direction: column; gap: 1rem; }
.settings-status { padding: .65rem 1rem; border-radius: 8px; font-size: .87rem; font-weight: 600; }
.settings-status.ok  { background: #f0faf5; color: #3a8c68; border: 1px solid #c8e8d8; }
.settings-status.err { background: #fef2f2; color: #c0392b; border: 1px solid #fca5a5; }
.settings-divider { border: none; border-top: 1px solid #dde3ec; margin: .25rem 0; }

/* Settings-spezifische Formular-Elemente (global scope) */
.settings-body .form-label {
  font-size: .83rem; font-weight: 700; color: #1e293b;
  display: block; margin-bottom: .35rem;
}
.settings-body .form-hint { font-size: .76rem; color: #6b7a8d; margin-top: -.5rem; }
.settings-body .form-input,
.settings-body .form-select {
  width: 100%; padding: .65rem .9rem;
  border: 1.5px solid #dde3ec; border-radius: 8px;
  font-size: .92rem; font-family: inherit; color: #1e293b;
  background: #f8fafc;
}
.settings-body .form-input:focus,
.settings-body .form-select:focus {
  outline: none; border-color: #3a8c68;
  box-shadow: 0 0 0 3px rgba(58,140,104,.18);
}
.settings-body .input-row { display: flex; gap: .5rem; align-items: center; }
.settings-body .input-row .form-input { flex: 1; }
.settings-body .btn-primary {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .65rem 1.5rem; background: #1e3d73; color: #fff;
  border: none; border-radius: 8px; font-size: .93rem; font-weight: 700;
  cursor: pointer; font-family: inherit; width: 100%;
}
.settings-body .btn-primary:hover { background: #2a4f8f; }
.settings-body .btn-secondary {
  display: inline-flex; align-items: center; justify-content: center;
  padding: .65rem 1.4rem; background: transparent; color: #1e3d73;
  border: 1.5px solid #1e3d73; border-radius: 8px;
  font-size: .93rem; font-weight: 700; cursor: pointer; font-family: inherit;
}
.settings-body .btn-full { width: 100%; }
.settings-body .btn-icon {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: none; cursor: pointer;
  color: #1e3d73; padding: .4rem; border-radius: 6px;
}
.settings-body .btn-icon:hover { background: rgba(30,61,115,.08); }
.settings-header .btn-icon { color: #fff; }
.settings-header .btn-icon:hover { background: rgba(255,255,255,.15); }
.toggle-switch { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; }
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-slider { position: absolute; cursor: pointer; top:0;left:0;right:0;bottom:0; background: #dde3ec; border-radius: 24px; transition: .25s; }
.toggle-slider::before { content:''; position:absolute; width:18px;height:18px; left:3px;bottom:3px; background:#fff; border-radius:50%; transition:.25s; }
.toggle-switch input:checked + .toggle-slider { background: #3a8c68; }
.toggle-switch input:checked + .toggle-slider::before { transform: translateX(20px); }
.user-item { display:flex;align-items:center;justify-content:space-between; padding:.5rem .7rem; border-radius:8px; border:1px solid #dde3ec; margin-bottom:.4rem; background:#f8fafc; font-size:.87rem; gap:.5rem; }
.role-badge { display:inline-block;font-size:.63rem;font-weight:800; padding:.1rem .45rem;border-radius:99px; text-transform:uppercase;letter-spacing:.4px;margin-left:.35rem; }
.role-badge.admin { background:#1e3d73;color:#fff; }
.role-badge.user  { background:#dde3ec;color:#6b7a8d; }
.demo-badge { display:inline-block;background:#f59e0b;color:#fff; font-size:.68rem;font-weight:800; padding:.1rem .5rem;border-radius:99px; letter-spacing:.4px;text-transform:uppercase; margin-left:.5rem;vertical-align:middle; }

/* ── Toast (fixed) ──────────────────────────────────────────────── */
#toast-container {
  position: fixed; bottom: 4rem; right: 1.5rem;
  z-index: 9999; display: flex; flex-direction: column; gap: .5rem;
  pointer-events: none; align-items: flex-end;
}
.toast {
  padding: .65rem 1.1rem; border-radius: 8px;
  font-size: .86rem; font-weight: 600;
  box-shadow: 0 4px 16px rgba(0,0,0,.22);
  opacity: 0; transform: translateY(10px);
  transition: opacity .22s ease, transform .22s ease;
  pointer-events: none; white-space: nowrap;
}
.toast.visible { opacity: 1; transform: translateY(0); }
.toast.ok   { background: #3a8c68; color: #fff; }
.toast.err  { background: #c0392b; color: #fff; }
.toast.info { background: #1e3d73; color: #fff; }

/* ── Layout ─────────────────────────────────────────────────────── */
.kz .kz-container { max-width: 900px; margin: 0 auto; padding: 0 1.5rem; }
.kz .kz-app-main  { padding: 1.5rem 1.5rem 3rem; }

/* ── Buttons ─────────────────────────────────────────────────────── */
.kz .btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .65rem 1.5rem; background: var(--kz-primary); color: #fff;
  border: none; border-radius: var(--kz-radius-sm);
  font-size: .93rem; font-weight: 700; cursor: pointer; font-family: inherit;
  transition: background var(--kz-transition), transform var(--kz-transition);
}
.kz .btn-primary:hover:not(:disabled) { background: var(--kz-primary-hover); transform: translateY(-1px); }
.kz .btn-primary:disabled { background: #c8d0dc; cursor: not-allowed; transform: none; }
.kz .btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .65rem 1.4rem; background: transparent; color: var(--kz-primary);
  border: 1.5px solid var(--kz-primary); border-radius: var(--kz-radius-sm);
  font-size: .93rem; font-weight: 700; cursor: pointer; font-family: inherit;
  transition: background var(--kz-transition), color var(--kz-transition);
}
.kz .btn-secondary:hover { background: var(--kz-primary); color: #fff; }
.kz .btn-accent {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .65rem 1.5rem; background: var(--kz-accent); color: #fff;
  border: none; border-radius: var(--kz-radius-sm);
  font-size: .93rem; font-weight: 700; cursor: pointer; font-family: inherit;
  box-shadow: 0 3px 10px rgba(58,140,104,.35);
  transition: background var(--kz-transition), transform var(--kz-transition);
}
.kz .btn-accent:hover:not(:disabled) { background: var(--kz-accent-hover); transform: translateY(-1px); }
.kz .btn-accent:disabled { background: #8fb8a8; cursor: not-allowed; box-shadow: none; transform: none; }
.kz .btn-icon {
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: none; cursor: pointer;
  color: var(--kz-primary); padding: .4rem; border-radius: 6px;
  transition: background var(--kz-transition);
}
.kz .btn-icon:hover { background: rgba(30,61,115,.08); }
.kz .btn-full { width: 100%; }
.kz .btn-ghost {
  background: transparent; border: none; color: var(--kz-text-muted);
  cursor: pointer; font-size: .88rem; font-family: inherit;
  padding: .45rem .8rem; border-radius: var(--kz-radius-sm);
  transition: color var(--kz-transition), background var(--kz-transition);
}
.kz .btn-ghost:hover { color: var(--kz-primary); background: #eef2fa; }
.kz .btn-back-home {
  display: inline-flex; align-items: center; gap: .35rem;
  background: transparent; border: 1px solid var(--kz-border);
  color: var(--kz-text-muted); cursor: pointer; font-size: .82rem;
  font-family: inherit; padding: .35rem .75rem; border-radius: var(--kz-radius-sm);
  margin-bottom: 1rem;
  transition: color var(--kz-transition), background var(--kz-transition), border-color var(--kz-transition);
}
.kz .btn-back-home:hover { color: var(--kz-primary); background: #eef2fa; border-color: var(--kz-primary); }
.kz .btn-template {
  padding: .45rem .95rem; border: 1.5px solid var(--kz-primary);
  border-radius: var(--kz-radius-sm); background: transparent; color: var(--kz-primary);
  font-size: .83rem; font-weight: 700; cursor: pointer; font-family: inherit;
  transition: background var(--kz-transition), color var(--kz-transition);
}
.kz .btn-template:hover { background: var(--kz-primary); color: #fff; }
.kz .btn-example {
  font-size: .71rem; color: var(--kz-text-light);
  background: transparent; border: 1px dashed var(--kz-border);
  border-radius: 4px; padding: .13rem .5rem; cursor: pointer; font-family: inherit;
  transition: color var(--kz-transition), border-color var(--kz-transition);
  margin-bottom: .35rem;
}
.kz .btn-example:hover { color: var(--kz-accent); border-color: var(--kz-accent); }

/* ── Form ────────────────────────────────────────────────────────── */
.kz .form-label {
  font-size: .83rem; font-weight: 700; color: var(--kz-text);
  display: block; margin-bottom: .35rem; letter-spacing: .02em;
}
.kz .form-hint { font-size: .76rem; color: var(--kz-text-muted); margin-top: -.5rem; }
.kz .form-input, .kz .form-select, .kz .form-textarea {
  width: 100%; padding: .65rem .9rem;
  border: 1.5px solid var(--kz-border); border-radius: var(--kz-radius-sm);
  font-size: .92rem; font-family: inherit; color: var(--kz-text); background: #f8fafc;
  transition: border-color var(--kz-transition), box-shadow var(--kz-transition);
}
.kz .form-input:focus, .kz .form-select:focus, .kz .form-textarea:focus {
  outline: none; border-color: var(--kz-border-focus);
  box-shadow: 0 0 0 3px rgba(58,140,104,.18);
}
.kz .form-textarea { resize: vertical; min-height: 110px; }
.kz .input-row { display: flex; gap: .5rem; align-items: center; }
.kz .input-row .form-input { flex: 1; }
.kz .history-search {
  width: 100%; padding: .6rem .9rem;
  border: 1.5px solid var(--kz-border); border-radius: var(--kz-radius-sm);
  font-size: .9rem; font-family: inherit; color: var(--kz-text);
  background: #f8fafc; margin-bottom: 1rem;
  transition: border-color var(--kz-transition), box-shadow var(--kz-transition);
}
.kz .history-search:focus { outline: none; border-color: var(--kz-border-focus); box-shadow: 0 0 0 3px rgba(58,140,104,.18); }

/* ── Card ────────────────────────────────────────────────────────── */
.kz .card {
  background: var(--kz-surface); border-radius: var(--kz-radius);
  box-shadow: 0 4px 24px rgba(0,0,0,.12); padding: 2rem;
  border: 1px solid var(--kz-border);
}

/* ── Welcome ─────────────────────────────────────────────────────── */
.kz .welcome-wrap { max-width: 880px; margin: 0 auto; }
.kz .welcome-icon { width:72px;height:72px; background:var(--kz-primary); border-radius:50%; display:flex;align-items:center;justify-content:center; margin:0 auto 1.5rem; color:#fff; box-shadow:0 4px 14px rgba(30,61,115,.3); }
.kz .welcome-title { text-align:center;font-size:1.55rem;font-weight:800;margin-bottom:.5rem;color:var(--kz-primary);font-family:Georgia,serif; }
.kz .welcome-sub { text-align:center;color:var(--kz-text-muted);margin-bottom:2rem; }
.kz .welcome-info { background:#eef2fa;border-left:4px solid var(--kz-primary);border-radius:var(--kz-radius-sm);padding:1rem 1.2rem;margin-bottom:2rem;font-size:.9rem; }
.kz .welcome-info h3 { font-size:.93rem;margin-bottom:.4rem;color:var(--kz-primary);font-weight:700; }
.kz .welcome-steps { list-style:none;display:flex;flex-direction:column;gap:.5rem;counter-reset:li; }
.kz .welcome-steps li::before { content:counter(li) '. ';counter-increment:li;font-weight:700;color:var(--kz-primary); }
.kz .api-warning { background:#fff7ed;border-left:4px solid #f59e0b;border-radius:var(--kz-radius-sm);padding:.9rem 1.1rem;margin-bottom:1.5rem;font-size:.87rem;color:#7c4a0a; }
.kz .welcome-actions { display:flex;justify-content:center;gap:1rem;flex-wrap:wrap; }
.kz .template-row { display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.5rem; }

/* ── Progress ────────────────────────────────────────────────────── */
.kz .progress-wrap { margin-bottom: 1.5rem; }
.kz .progress-meta { display:flex;justify-content:space-between;font-size:.81rem;color:var(--kz-text-muted);margin-bottom:.4rem; }
.kz .progress-bar  { height:5px;background:var(--kz-border);border-radius:99px;overflow:hidden; }
.kz .progress-fill { height:100%;background:linear-gradient(90deg,var(--kz-primary),var(--kz-accent));border-radius:99px;transition:width .4s ease; }

/* ── Quiz ────────────────────────────────────────────────────────── */
.kz .cat-badge { display:inline-block;background:var(--kz-primary);color:#fff;font-size:.72rem;font-weight:700;padding:.22rem .7rem;border-radius:99px;margin-bottom:.75rem;letter-spacing:.5px;text-transform:uppercase; }
.kz .quiz-title { font-size:1.25rem;font-weight:800;color:var(--kz-primary);margin-bottom:1.5rem; }
.kz .question-block { margin-bottom:1.6rem; }
.kz .question-block:last-child { margin-bottom:0; }
.kz .question-label { font-size:.92rem;font-weight:700;margin-bottom:.4rem;display:flex;align-items:baseline;gap:.5rem; }
.kz .q-num { display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--kz-accent);color:#fff;font-size:.7rem;font-weight:800;text-align:center;line-height:22px;flex-shrink:0; }
.kz .question-hint { font-size:.79rem;color:var(--kz-text-muted);margin-bottom:.5rem;font-style:italic; }
.kz .quiz-nav { display:flex;justify-content:space-between;align-items:center;margin-top:2rem;gap:1rem; }
.kz .quiz-with-sidebar { display:flex;gap:1.2rem;align-items:flex-start; }
.kz .quiz-main { flex:1;min-width:0; }

/* ── Review ──────────────────────────────────────────────────────── */
.kz .review-header { margin-bottom:1.5rem; }
.kz .review-header h2 { font-size:1.25rem;font-weight:800;color:var(--kz-primary);margin-bottom:.3rem; }
.kz .review-section { margin-bottom:1.5rem; }
.kz .review-section-title { font-size:.76rem;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--kz-text-light);padding:.5rem 0;border-bottom:1px solid var(--kz-border);margin-bottom:.9rem; }
.kz .review-item { margin-bottom:.9rem; }
.kz .review-q { font-size:.84rem;font-weight:700;color:var(--kz-text-muted);margin-bottom:.2rem; }
.kz .review-a { font-size:.92rem;background:#f8fafc;border-radius:var(--kz-radius-sm);padding:.6rem .8rem;border:1px solid var(--kz-border);white-space:pre-wrap;color:var(--kz-text); }
.kz .review-a.empty { color:var(--kz-text-light);font-style:italic; }
.kz .review-actions { display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;flex-wrap:wrap; }
.kz .empty-warning { background:#fff7ed;border:1.5px solid #f59e0b;border-radius:var(--kz-radius-sm);padding:1rem 1.2rem;margin-bottom:1rem;font-size:.87rem;color:#7c4a0a; }
.kz .empty-warning ul { padding-left:1.2rem;margin-top:.4rem; }
.kz .empty-warning li { margin-bottom:.2rem; }

/* ── Result / Concept ────────────────────────────────────────────── */
.kz .result-header { margin-bottom:1.2rem; }
.kz .result-header h2 { font-size:1.25rem;font-weight:800;color:var(--kz-primary);margin-bottom:.3rem; }
.kz .result-header p { color:var(--kz-text-muted);font-size:.9rem; }
.kz .streaming-box { border:1.5px solid var(--kz-border);border-radius:var(--kz-radius-sm);padding:1.4rem;max-height:60vh;overflow-y:auto;background:#f8fafc;font-size:.91rem;line-height:1.75;white-space:pre-wrap;color:var(--kz-text); }
.kz .concept-box { border:1.5px solid var(--kz-border);border-radius:var(--kz-radius-sm);padding:1.8rem;overflow-y:auto;background:#f8fafc;font-size:.93rem;line-height:1.8;color:var(--kz-text);margin-top:1.2rem; }
.kz .concept-box h1,.kz .concept-box h2,.kz .concept-box h3 { color:var(--kz-primary);margin-top:1.6rem;margin-bottom:.6rem; }
.kz .concept-box h1 { font-size:1.35rem;font-family:Georgia,serif; }
.kz .concept-box h2 { font-size:1.1rem; }
.kz .concept-box h3 { font-size:1rem; }
.kz .concept-box p  { margin-bottom:.8rem; }
.kz .concept-box ul,.kz .concept-box ol { padding-left:1.5rem;margin-bottom:.8rem; }
.kz .concept-box li { margin-bottom:.3rem; }
.kz .concept-box strong { color:var(--kz-primary); }
.kz .concept-box hr { border:none;border-top:1px solid var(--kz-border);margin:1.5rem 0; }
.kz .concept-box table { border-collapse:collapse;width:100%;margin-bottom:1rem;font-size:.88rem; }
.kz .concept-box th,.kz .concept-box td { border:1px solid var(--kz-border);padding:.5rem .8rem; }
.kz .concept-box th { background:#eef2fa;color:var(--kz-primary);font-weight:700; }
.kz .loading-row { display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;font-size:.9rem;color:var(--kz-text-muted); }
.kz .spinner { width:22px;height:22px;border:3px solid var(--kz-border);border-top-color:var(--kz-primary);border-radius:50%;animation:kz-spin .8s linear infinite;flex-shrink:0; }
.kz .result-actions { display:flex;gap:.7rem;margin-top:1.2rem;flex-wrap:wrap; }
.kz .error-box { background:var(--kz-error-bg);border:1.5px solid #fca5a5;border-radius:var(--kz-radius-sm);padding:1rem 1.2rem;color:var(--kz-error);font-size:.9rem;margin-top:.5rem; }
.kz .concept-editor { width:100%;min-height:500px;border:1.5px solid var(--kz-border-focus);border-radius:var(--kz-radius-sm);padding:1.2rem;font-family:'Courier New',monospace;font-size:.91rem;line-height:1.8;color:var(--kz-text);background:#f8fafc;resize:vertical; }
.kz .concept-editor:focus { outline:none;box-shadow:0 0 0 3px rgba(58,140,104,.18); }
.kz .concept-stats { display:flex;gap:.5rem;align-items:center;font-size:.75rem;color:var(--kz-text-muted);margin:-.2rem 0 .8rem; }
.kz .chapter-copy-btn { display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--kz-border);border-radius:5px;padding:.15rem .45rem;color:var(--kz-text-muted);cursor:pointer;font-size:.7rem;margin-left:.6rem;transition:background var(--kz-transition),color var(--kz-transition),border-color var(--kz-transition);vertical-align:middle; }
.kz .chapter-copy-btn:hover { background:var(--kz-accent);color:#fff;border-color:var(--kz-accent); }

/* ── Quality / Prüfbericht panels ────────────────────────────────── */
.kz .quality-panel { margin-top:1.5rem;border:1.5px solid var(--kz-border);border-radius:var(--kz-radius-sm);overflow:hidden; }
.kz .quality-panel-header { background:var(--kz-primary);color:#fff;padding:.7rem 1.2rem;font-weight:700;font-size:.93rem;display:flex;align-items:center;justify-content:space-between; }
.kz .quality-body { padding:1.2rem;background:#f8fafc;font-size:.9rem;line-height:1.75; }
.kz .quality-body h1,.kz .quality-body h2,.kz .quality-body h3 { color:var(--kz-primary);margin:1rem 0 .4rem; }
.kz .quality-body p { margin-bottom:.6rem; }
.kz .quality-body ul,.kz .quality-body ol { padding-left:1.4rem;margin-bottom:.6rem; }
.kz .pruefbericht-panel { margin-top:1.5rem;border:1.5px solid #e8a040;border-radius:var(--kz-radius-sm);overflow:hidden; }
.kz .pruefbericht-panel-header { background:#c97a10;color:#fff;padding:.7rem 1.2rem;font-weight:700;font-size:.93rem;display:flex;align-items:center;justify-content:space-between; }
.kz .pruefbericht-body { padding:1.2rem;background:#fffcf5;font-size:.9rem;line-height:1.75; }
.kz .pruefbericht-body h1,.kz .pruefbericht-body h2,.kz .pruefbericht-body h3 { color:#8a4e00;margin:1rem 0 .4rem; }
.kz .pruefbericht-body p { margin-bottom:.6rem; }
.kz .analyse-panel { margin-top:1.5rem;border:1.5px solid #e8a040;border-radius:var(--kz-radius-sm);overflow:hidden; }
.kz .analyse-panel-header { background:#c97a10;color:#fff;padding:.7rem 1.2rem;font-weight:700;font-size:.93rem;display:flex;align-items:center;justify-content:space-between; }
.kz .analyse-body { padding:1.2rem;background:#fffcf5;font-size:.9rem;line-height:1.75; }
.kz .analyse-body h1,.kz .analyse-body h2,.kz .analyse-body h3 { color:#8a4e00;margin:1rem 0 .4rem; }
.kz .analyse-body p { margin-bottom:.6rem; }

/* ── Upload Zone ─────────────────────────────────────────────────── */
.kz .upload-zone { border:2px dashed var(--kz-border);border-radius:var(--kz-radius-sm);padding:2rem 1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;margin:1.2rem 0;display:flex;flex-direction:column;align-items:center; }
.kz .upload-zone:hover,.kz .upload-zone.dragover { border-color:#c97a10;background:#fffcf5; }
.kz .upload-zone input[type="file"] { display:none; }
.kz .upload-zone-label { color:var(--kz-text-muted);font-size:.88rem; }
.kz .upload-filename { margin-top:.5rem;font-size:.85rem;font-weight:600;color:var(--kz-primary);min-height:1.2em; }

/* ── History ─────────────────────────────────────────────────────── */
.kz .history-list { display:flex;flex-direction:column;gap:.8rem; }
.kz .history-item { display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:#f8fafc;border:1px solid var(--kz-border);border-radius:var(--kz-radius-sm);flex-wrap:wrap; }
.kz .history-meta { display:flex;flex-direction:column;gap:.12rem;flex:1;min-width:0; }
.kz .history-name { font-weight:700;font-size:.93rem;color:var(--kz-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.kz .history-date { font-size:.76rem;color:var(--kz-text-muted); }
.kz .history-model { font-size:.73rem;color:var(--kz-text-light); }
.kz .history-actions { display:flex;gap:.45rem;flex-wrap:wrap;align-items:center; }

/* ── Type selector ───────────────────────────────────────────────── */
.kz .type-group-label { font-size:.72rem;font-weight:700;color:var(--kz-text-muted);text-transform:uppercase;letter-spacing:.06em;margin:.9rem 0 .4rem; }
.kz .type-selector { display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin-bottom:.7rem; }
.kz .type-card { display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:1rem .75rem;border:2px solid var(--kz-border);border-radius:var(--kz-radius);background:#f8fafc;cursor:pointer;transition:border-color var(--kz-transition),background var(--kz-transition),box-shadow var(--kz-transition);text-align:center;font-family:inherit;color:var(--kz-text);min-width:0; }
.kz .type-card:hover { border-color:var(--kz-accent);background:#f0f9f4; }
.kz .type-card.active { border-color:transparent;background:#eef2fb;box-shadow:0 0 0 3px rgba(30,61,115,.15); }
.kz .type-card-icon { color:var(--kz-primary); }
.kz .type-card-title { font-weight:700;font-size:.95rem;color:var(--kz-primary); }
.kz .type-card-desc { font-size:.75rem;color:var(--kz-text-muted);line-height:1.4; }
.kz .tc-konzept{background:#ddeeff;} .kz .tc-schutz{background:#d9f5e5;} .kz .tc-hygiene{background:#fdf6ce;} .kz .tc-daten{background:#ecdeff;} .kz .tc-sprach{background:#ffe8d0;} .kz .tc-eingewoehnung{background:#fde8f2;} .kz .tc-inklusion{background:#cff8f0;} .kz .tc-medien{background:#e3e8ff;} .kz .tc-ernaehrung{background:#d4fadf;} .kz .tc-wald{background:#e8f5d8;}
.kz .type-badge { display:inline-block;font-size:.68rem;font-weight:700;padding:.12rem .45rem;border-radius:99px;text-transform:uppercase;letter-spacing:.04em; }
.kz .type-badge.konzept{background:#dbeafe;color:#1e40af;} .kz .type-badge.schutz{background:#dcfce7;color:#166534;} .kz .type-badge.hygiene{background:#fef9c3;color:#854d0e;} .kz .type-badge.daten{background:#f3e8ff;color:#6b21a8;} .kz .type-badge.sprach{background:#ffedd5;color:#9a3412;} .kz .type-badge.eingewoehnung{background:#fce7f3;color:#9d174d;} .kz .type-badge.inklusion{background:#ccfbf1;color:#0f766e;} .kz .type-badge.medien{background:#e0e7ff;color:#3730a3;} .kz .type-badge.ernaehrung{background:#d1fae5;color:#065f46;} .kz .type-badge.wald{background:#fdf4e7;color:#713f12;}

/* ── Chapter compare ─────────────────────────────────────────────── */
.kz .chapter-regen { margin-top:1.2rem;padding:.9rem 1.1rem;background:#eef2fa;border:1px solid #c8d4ea;border-radius:var(--kz-radius-sm);display:flex;align-items:center;gap:.8rem;flex-wrap:wrap; }
.kz .chapter-regen label { font-size:.87rem;font-weight:700;color:var(--kz-primary);white-space:nowrap; }
.kz .chapter-regen select { flex:1;min-width:200px; }
.kz .compare-panel { margin-top:1.2rem;border:1.5px solid var(--kz-accent);border-radius:var(--kz-radius-sm);overflow:hidden;animation:kz-fadeIn .2s ease; }
.kz .compare-header-bar { background:var(--kz-accent);color:#fff;padding:.6rem 1rem;font-weight:700;font-size:.9rem; }
.kz .compare-cols { display:grid;grid-template-columns:1fr 1fr; }
.kz .compare-col { padding:1rem;font-size:.84rem;line-height:1.7; }
.kz .compare-col:first-child { border-right:1.5px solid var(--kz-border); }
.kz .compare-col-title { font-weight:700;font-size:.73rem;text-transform:uppercase;letter-spacing:.05em;color:var(--kz-text-muted);margin-bottom:.5rem; }
.kz .compare-col-body { white-space:pre-wrap;color:var(--kz-text);max-height:300px;overflow-y:auto; }
.kz .compare-actions { display:flex;gap:.6rem;padding:.75rem 1rem;background:#f8fafc;border-top:1px solid var(--kz-border); }
.kz .cat-segments { display:flex;gap:3px;height:6px;border-radius:99px;overflow:hidden;margin-top:.3rem; }
.kz .cat-seg { flex:1;background:rgba(0,0,0,.08);border-radius:99px;transition:background .3s ease; }
.kz .cat-seg.done { background:var(--kz-accent); }
.kz .cat-seg.active { background:var(--kz-primary); }

/* ── Projekte ────────────────────────────────────────────────────── */
.kz .project-list { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1rem; }
.kz .project-card { border:1.5px solid var(--kz-border);border-radius:var(--kz-radius-sm);padding:1rem;display:flex;flex-direction:column;gap:.5rem;background:var(--kz-surface); }
.kz .project-card-header { display:flex;align-items:flex-start;gap:.5rem;flex-wrap:wrap; }
.kz .project-card-name { font-weight:700;font-size:.95rem;color:var(--kz-text);flex:1; }
.kz .project-pb-badge { background:#e8f0fe;color:var(--kz-primary);font-size:.72rem;font-weight:600;border-radius:99px;padding:.15rem .55rem;white-space:nowrap; }
.kz .project-card-meta { font-size:.8rem;color:var(--kz-text-muted); }
.kz .project-card-actions { display:flex;gap:.4rem;margin-top:.3rem; }
.kz .concept-tiles { display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.8rem; }
.kz .concept-tile { border:1.5px solid var(--kz-border);border-radius:var(--kz-radius-sm);padding:.9rem;display:flex;flex-direction:column;gap:.4rem;background:#f8fafc;min-height:130px; }
.kz .concept-tile-type { font-weight:700;font-size:.88rem;color:var(--kz-text); }
.kz .concept-tile-date { font-size:.75rem;color:var(--kz-text-muted); }
.kz .status-badge { display:inline-block;font-size:.72rem;font-weight:700;border-radius:99px;padding:.18rem .6rem; }
.kz .status-not-started{background:#e8eaed;color:#5f6368;} .kz .status-in-progress{background:#fff3e0;color:#b96a00;} .kz .status-generated{background:#e6f4ea;color:#1e6e3a;} .kz .status-submitted{background:#e8f0fe;color:#1a56b0;}
.kz .pb-list { display:flex;flex-direction:column;gap:.6rem; }
.kz .pb-item { background:#fffcf5;border:1px solid #e8c98a;border-radius:var(--kz-radius-sm);overflow:hidden; }
.kz .pb-item-top { display:flex;align-items:flex-start;gap:.8rem;padding:.7rem .9rem; }
.kz .pb-item.pb-item-open { border-color:#c97a10; }
.kz .pb-item-info { flex:1;min-width:0; }
.kz .pb-filename { font-weight:600;font-size:.88rem;color:var(--kz-text);display:block; }
.kz .pb-date { font-size:.76rem;color:var(--kz-text-muted); }
.kz .pb-analyse-body { padding:1rem 1.1rem;border-top:1px solid #e8c98a;font-size:.88rem;line-height:1.75;background:#fff; }
.kz .pb-analyse-body h1,.kz .pb-analyse-body h2,.kz .pb-analyse-body h3 { color:#8a4e00;margin:.9rem 0 .35rem; }
.kz .pb-analyse-body p { margin-bottom:.5rem; }
.kz .pb-analyse-body ul,.kz .pb-analyse-body ol { padding-left:1.4rem;margin-bottom:.5rem; }
.kz .pruef-sidebar { width:270px;flex-shrink:0;border:1.5px solid #e8a040;border-radius:var(--kz-radius-sm);background:var(--kz-surface);overflow:hidden;position:sticky;top:1rem; }
.kz .pruef-sidebar-toggle { width:100%;display:flex;align-items:center;gap:.5rem;padding:.65rem 1rem;background:#c97a10;color:#fff;font-weight:700;font-size:.85rem;border:none;cursor:pointer; }
.kz .pruef-sidebar-toggle:hover { background:#a86208; }
.kz .pruef-sidebar-body { display:none;padding:.9rem;font-size:.82rem;line-height:1.65;max-height:60vh;overflow-y:auto; }
.kz .pruef-sidebar.open .pruef-sidebar-body { display:block; }
.kz .sidebar-tabs { display:flex;border-bottom:1px solid #e8a040; }
.kz .sidebar-tabs button { flex:1;padding:.45rem .4rem;font-size:.78rem;font-weight:600;background:none;border:none;cursor:pointer;color:var(--kz-text-muted);font-family:inherit; }
.kz .sidebar-tabs button.active { color:#c97a10;border-bottom:2px solid #c97a10; }
.kz .he-panel { margin-top:1rem;border:1.5px solid var(--kz-primary);border-radius:var(--kz-radius-sm);overflow:hidden; }
.kz .he-panel-header { background:var(--kz-primary);color:#fff;padding:.6rem 1rem;font-weight:700;font-size:.88rem;display:flex;align-items:center;justify-content:space-between; }
.kz .he-body { padding:1rem;font-size:.88rem;line-height:1.75;background:#f0f4ff; }
.kz .he-body h1,.kz .he-body h2,.kz .he-body h3 { color:var(--kz-primary);margin:.9rem 0 .3rem; }
.kz .he-body p { margin-bottom:.5rem; }
.kz .he-body ul,.kz .he-body ol { padding-left:1.3rem;margin-bottom:.5rem; }

/* ── Animationen ─────────────────────────────────────────────────── */
@keyframes kz-spin    { to { transform: rotate(360deg); } }
@keyframes kz-fadeIn  { from { opacity:0;transform:translateY(6px); } to { opacity:1;transform:translateY(0); } }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .kz .type-selector { grid-template-columns: repeat(5,1fr); }
  .kz .type-card { padding: .75rem .45rem; gap: .35rem; }
  .kz .quiz-with-sidebar { flex-direction: column; }
  .kz .pruef-sidebar { width:100%;position:static; }
}
@media (max-width: 600px) {
  .kz .kz-app-main { padding: 1rem 1rem 2rem; }
  .kz .card { padding: 1.2rem; }
  .kz .quiz-nav { flex-direction: column; }
  .kz .type-selector { grid-template-columns: repeat(5,1fr); }
  .kz .type-card { padding: .6rem .3rem; }
  .settings-panel { width: 100vw; }
}
