/**
 * propkit-design.css — Einheitliches Design-System
 * Design-Tokens, Komponenten-Klassen, Utility-Klassen
 * MUSS vor allen anderen CSS-Dateien geladen werden.
 */

/* ═══════════════════════════════════ */
/* DESIGN TOKENS                       */
/* ═══════════════════════════════════ */

:root {
  /* ── Farben ── */
  --pk-primary: #4F46E5;
  --pk-primary-hover: #4338CA;
  --pk-primary-light: #E0E7FF;
  --pk-primary-50: #EEF2FF;
  --pk-secondary: #059669;
  --pk-secondary-hover: #047857;
  --pk-danger: #dc2626;
  --pk-danger-hover: #b91c1c;
  --pk-warning: #d97706;
  --pk-warning-light: #fef3c7;
  --pk-success: #16a34a;
  --pk-success-light: #dcfce7;
  --pk-success-dark: #166534;
  --pk-danger-light: #fef2f2;
  --pk-danger-dark: #991b1b;
  --pk-warning-dark: #92400e;
  --pk-white: #ffffff;

  --pk-neutral-50: #f9fafb;
  --pk-neutral-100: #f3f4f6;
  --pk-neutral-200: #e5e7eb;
  --pk-neutral-300: #d1d5db;
  --pk-neutral-400: #9ca3af;
  --pk-neutral-500: #6b7280;
  --pk-neutral-600: #4b5563;
  --pk-neutral-700: #374151;
  --pk-neutral-800: #1f2937;
  --pk-neutral-900: #111827;

  /* ── Typografie ── */
  --pk-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --pk-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
  --pk-text-xs: 0.75rem;
  --pk-text-sm: 0.875rem;
  --pk-text-base: 1rem;
  --pk-text-lg: 1.125rem;
  --pk-text-xl: 1.25rem;
  --pk-text-2xl: 1.5rem;
  --pk-text-3xl: 1.875rem;

  /* ── Spacing ── */
  --pk-space-1: 0.25rem;
  --pk-space-2: 0.5rem;
  --pk-space-3: 0.75rem;
  --pk-space-4: 1rem;
  --pk-space-5: 1.25rem;
  --pk-space-6: 1.5rem;
  --pk-space-8: 2rem;
  --pk-space-10: 2.5rem;
  --pk-space-12: 3rem;

  /* ── Schatten ── */
  --pk-shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.05);
  --pk-shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
  --pk-shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);

  /* ── Radii ── */
  --pk-radius-sm: 0.375rem;
  --pk-radius-md: 0.5rem;
  --pk-radius-lg: 0.75rem;
  --pk-radius-xl: 1rem;
  --pk-radius-full: 9999px;

  /* ── Transitions ── */
  --pk-transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --pk-transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
}


/* ═══════════════════════════════════ */
/* EMPTY STATE                         */
/* ═══════════════════════════════════ */

.pk-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
  color: var(--text-muted, #6b7280);
}
.pk-empty-icon {
  width: 40px;
  height: 40px;
  stroke-width: 1.5;
  color: var(--text-faint, #9ca3af);
  margin-bottom: 12px;
}
.pk-empty-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-secondary, #4b5563);
  margin-bottom: 4px;
}
.pk-empty-text {
  font-size: 13px;
  color: var(--text-muted, #6b7280);
  max-width: 320px;
  line-height: 1.5;
}
.pk-empty-action {
  display: inline-block;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--primary, #2563EB);
  text-decoration: none;
}
.pk-empty-action:hover {
  text-decoration: underline;
}


/* ═══════════════════════════════════ */
/* BUTTONS                             */
/* ═══════════════════════════════════ */

.pk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 18px;
  border: 1px solid transparent;
  border-radius: var(--pk-radius-md);
  font-family: var(--pk-font);
  font-size: var(--pk-text-sm);
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  transition: all var(--pk-transition);
  text-decoration: none;
  white-space: nowrap;
  -webkit-font-smoothing: antialiased;
}

.pk-btn:focus-visible {
  outline: 2px solid var(--pk-primary);
  outline-offset: 2px;
}

.pk-btn-primary {
  background: var(--pk-primary);
  color: #fff;
  border-color: var(--pk-primary);
}
.pk-btn-primary:hover {
  background: var(--pk-primary-hover);
  border-color: var(--pk-primary-hover);
}

.pk-btn-secondary {
  background: #fff;
  color: var(--pk-neutral-700);
  border-color: var(--pk-neutral-300);
}
.pk-btn-secondary:hover {
  background: var(--pk-neutral-50);
  border-color: var(--pk-neutral-400);
  color: var(--pk-neutral-900);
}

.pk-btn-success {
  background: var(--pk-success);
  color: #fff;
  border-color: var(--pk-success);
}
.pk-btn-success:hover {
  background: #15803d;
  border-color: #15803d;
}

.pk-btn-danger {
  background: var(--pk-danger);
  color: #fff;
  border-color: var(--pk-danger);
}
.pk-btn-danger:hover {
  background: var(--pk-danger-hover);
  border-color: var(--pk-danger-hover);
}

.pk-btn-ghost {
  background: transparent;
  color: var(--pk-neutral-600);
  border-color: transparent;
}
.pk-btn-ghost:hover {
  background: var(--pk-neutral-100);
  color: var(--pk-neutral-900);
}

.pk-btn-sm {
  padding: 5px 12px;
  font-size: var(--pk-text-xs);
}

.pk-btn-lg {
  padding: 12px 24px;
  font-size: var(--pk-text-base);
}

.pk-btn:disabled,
.pk-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}


/* ═══════════════════════════════════ */
/* CARDS                               */
/* ═══════════════════════════════════ */

.pk-card {
  background: #fff;
  border: 1px solid var(--pk-neutral-200);
  border-radius: var(--pk-radius-lg);
  padding: var(--pk-space-5);
  box-shadow: var(--pk-shadow-sm);
  transition: box-shadow var(--pk-transition);
}

.pk-card:hover {
  box-shadow: var(--pk-shadow-md);
}

.pk-card-header {
  font-size: var(--pk-text-base);
  font-weight: 700;
  color: var(--pk-neutral-900);
  margin-bottom: var(--pk-space-4);
  padding-bottom: var(--pk-space-3);
  border-bottom: 1px solid var(--pk-neutral-200);
  display: flex;
  align-items: center;
  gap: var(--pk-space-2);
}

.pk-card-body {
  font-size: var(--pk-text-sm);
  color: var(--pk-neutral-700);
  line-height: 1.6;
}

.pk-card-footer {
  margin-top: var(--pk-space-4);
  padding-top: var(--pk-space-3);
  border-top: 1px solid var(--pk-neutral-200);
  display: flex;
  align-items: center;
  gap: var(--pk-space-2);
}


/* ═══════════════════════════════════ */
/* UPLOAD-BEREICHE                     */
/* ═══════════════════════════════════ */

.pk-upload {
  border: 2px dashed var(--pk-neutral-300);
  border-radius: var(--pk-radius-lg);
  background: var(--pk-neutral-50);
  padding: var(--pk-space-8);
  text-align: center;
  cursor: pointer;
  transition: all var(--pk-transition);
}

.pk-upload:hover,
.pk-upload.dragover {
  border-color: var(--pk-primary);
  background: var(--pk-primary-light);
}

.pk-upload-icon {
  display: block;
  width: 48px;
  height: 48px;
  margin: 0 auto var(--pk-space-3);
  color: var(--pk-neutral-400);
}

.pk-upload:hover .pk-upload-icon,
.pk-upload.dragover .pk-upload-icon {
  color: var(--pk-primary);
}

.pk-upload-text {
  font-size: var(--pk-text-sm);
  font-weight: 600;
  color: var(--pk-neutral-700);
  margin-bottom: var(--pk-space-1);
}

.pk-upload-hint {
  font-size: var(--pk-text-xs);
  color: var(--pk-neutral-500);
}


/* ═══════════════════════════════════ */
/* ANTWORT-CONTAINER                   */
/* ═══════════════════════════════════ */

.pk-antwort {
  background: #fff;
  border: 1px solid var(--pk-neutral-200);
  border-radius: var(--pk-radius-lg);
  overflow: hidden;
}

.pk-antwort-schicht {
  border-left: 3px solid var(--pk-primary);
  background: var(--pk-neutral-50);
  padding: var(--pk-space-4);
  margin: var(--pk-space-3);
  border-radius: 0 var(--pk-radius-md) var(--pk-radius-md) 0;
}

.pk-antwort-schicht-label {
  font-size: var(--pk-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--pk-primary);
  margin-bottom: var(--pk-space-2);
}

.pk-disclaimer {
  font-size: var(--pk-text-xs);
  color: var(--pk-neutral-500);
  padding: var(--pk-space-3) var(--pk-space-4);
  border-top: 1px solid var(--pk-neutral-200);
  background: var(--pk-neutral-50);
}

.pk-antwort-aktionen {
  display: flex;
  flex-wrap: wrap;
  gap: var(--pk-space-2);
  padding: var(--pk-space-3) var(--pk-space-4);
  border-top: 1px solid var(--pk-neutral-200);
}


/* ═══════════════════════════════════ */
/* FORM-ELEMENTE                       */
/* ═══════════════════════════════════ */

.pk-input {
  width: 100%;
  border: 1px solid var(--pk-neutral-300);
  border-radius: var(--pk-radius-md);
  padding: 10px 14px;
  font-family: var(--pk-font);
  font-size: var(--pk-text-sm);
  color: var(--pk-neutral-900);
  background: #fff;
  outline: none;
  transition: border-color var(--pk-transition), box-shadow var(--pk-transition);
}

.pk-input:focus {
  border-color: var(--pk-primary);
  box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);
}

.pk-input::placeholder {
  color: var(--pk-neutral-400);
}

.pk-select {
  width: 100%;
  border: 1px solid var(--pk-neutral-300);
  border-radius: var(--pk-radius-md);
  padding: 10px 14px;
  font-family: var(--pk-font);
  font-size: var(--pk-text-sm);
  color: var(--pk-neutral-900);
  background: #fff;
  cursor: pointer;
  outline: none;
  transition: border-color var(--pk-transition);
}

.pk-select:focus {
  border-color: var(--pk-primary);
}

.pk-label {
  display: block;
  font-size: var(--pk-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pk-neutral-500);
  margin-bottom: var(--pk-space-1);
}

.pk-form-group {
  display: flex;
  flex-direction: column;
  gap: var(--pk-space-1);
  margin-bottom: var(--pk-space-4);
}


/* ═══════════════════════════════════ */
/* BADGES / STATUS                     */
/* ═══════════════════════════════════ */

.pk-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--pk-radius-full);
  font-size: var(--pk-text-xs);
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
}

.pk-badge-success {
  background: var(--pk-success-light);
  color: #166534;
}

.pk-badge-warning {
  background: var(--pk-warning-light);
  color: #92400e;
}

.pk-badge-danger {
  background: #fef2f2;
  color: #991b1b;
}

.pk-badge-neutral {
  background: var(--pk-neutral-100);
  color: var(--pk-neutral-600);
}

.pk-badge-primary {
  background: var(--pk-primary-light);
  color: var(--pk-primary);
}


/* ═══════════════════════════════════ */
/* LOADING-STATES                      */
/* ═══════════════════════════════════ */

.pk-loading {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid var(--pk-neutral-200);
  border-top-color: var(--pk-primary);
  border-radius: 50%;
  animation: pk-spin 0.7s linear infinite;
}

.pk-loading-lg {
  width: 36px;
  height: 36px;
  border-width: 3px;
}

@keyframes pk-spin {
  to { transform: rotate(360deg); }
}

.pk-skeleton {
  background: linear-gradient(90deg, var(--pk-neutral-100) 25%, var(--pk-neutral-200) 50%, var(--pk-neutral-100) 75%);
  background-size: 200% 100%;
  animation: pk-shimmer 1.5s infinite;
  border-radius: var(--pk-radius-md);
}

@keyframes pk-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.pk-skeleton-card { height: 120px; margin-bottom: 12px; }
.pk-skeleton-row { height: 40px; margin-bottom: 8px; }
.pk-skeleton-text { height: 14px; margin-bottom: 10px; width: 80%; }
.pk-skeleton-text:nth-child(even) { width: 60%; }


/* ═══════════════════════════════════ */
/* ICON-KLASSEN (Lucide)               */
/* ═══════════════════════════════════ */

.pk-icon {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 1.75;
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

.pk-icon-sm { width: 16px; height: 16px; }
.pk-icon-lg { width: 24px; height: 24px; }
.pk-icon-xl { width: 32px; height: 32px; }
.pk-icon-danger { color: var(--pk-danger); }
.pk-icon-success { color: var(--pk-success); }
.pk-icon-warning { color: var(--pk-warning); }
.pk-icon-primary { color: var(--pk-primary); }


/* ═══════════════════════════════════ */
/* TABELLEN                            */
/* ═══════════════════════════════════ */

.pk-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--pk-text-sm);
}

.pk-table th {
  text-align: left;
  font-size: var(--pk-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pk-neutral-500);
  padding: var(--pk-space-2) var(--pk-space-3);
  border-bottom: 2px solid var(--pk-neutral-200);
}

.pk-table td {
  padding: var(--pk-space-3);
  border-bottom: 1px solid var(--pk-neutral-100);
  color: var(--pk-neutral-700);
}

.pk-table tr:hover td {
  background: var(--pk-neutral-50);
}


/* ═══════════════════════════════════ */
/* EMPTY STATE                         */
/* ═══════════════════════════════════ */

.pk-empty {
  text-align: center;
  padding: var(--pk-space-12) var(--pk-space-6);
  color: var(--pk-neutral-400);
}

.pk-empty-icon {
  margin-bottom: var(--pk-space-4);
  color: var(--pk-neutral-300);
}

.pk-empty h3 {
  font-size: var(--pk-text-lg);
  font-weight: 600;
  color: var(--pk-neutral-700);
  margin-bottom: var(--pk-space-2);
}

.pk-empty p {
  font-size: var(--pk-text-sm);
  color: var(--pk-neutral-500);
  max-width: 400px;
  margin: 0 auto;
}


/* ═══════════════════════════════════ */
/* UTILITY-KLASSEN                     */
/* ═══════════════════════════════════ */

.pk-flex { display: flex; }
.pk-flex-col { display: flex; flex-direction: column; }
.pk-items-center { align-items: center; }
.pk-justify-between { justify-content: space-between; }
.pk-gap-2 { gap: var(--pk-space-2); }
.pk-gap-3 { gap: var(--pk-space-3); }
.pk-gap-4 { gap: var(--pk-space-4); }
.pk-text-muted { color: var(--pk-neutral-500); }
.pk-text-sm { font-size: var(--pk-text-sm); }
.pk-text-xs { font-size: var(--pk-text-xs); }
.pk-text-2xs { font-size: 11px; }
.pk-text-danger { color: var(--pk-danger); }
.pk-text-success { color: var(--pk-success); }
.pk-text-warning { color: var(--pk-warning); }
.pk-sticky-tabs { position: sticky; top: 56px; z-index: 40; padding: 10px 16px; }
.pk-center-empty { text-align: center; padding: 20px; color: var(--pk-neutral-400); font-size: 13px; }
.pk-font-bold { font-weight: 700; }
.pk-font-semibold { font-weight: 600; }
.pk-mt-1 { margin-top: var(--pk-space-1); }
.pk-mt-2 { margin-top: var(--pk-space-2); }
.pk-mt-3 { margin-top: var(--pk-space-3); }
.pk-mt-4 { margin-top: var(--pk-space-4); }
.pk-mt-6 { margin-top: var(--pk-space-6); }
.pk-mt-8 { margin-top: var(--pk-space-8); }
.pk-mb-1 { margin-bottom: var(--pk-space-1); }
.pk-mb-2 { margin-bottom: var(--pk-space-2); }
.pk-mb-3 { margin-bottom: var(--pk-space-3); }
.pk-mb-4 { margin-bottom: var(--pk-space-4); }
.pk-mb-6 { margin-bottom: var(--pk-space-6); }
.pk-mb-8 { margin-bottom: var(--pk-space-8); }
.pk-ml-2 { margin-left: var(--pk-space-2); }
.pk-mr-2 { margin-right: var(--pk-space-2); }
.pk-mx-auto { margin-left: auto; margin-right: auto; }
.pk-my-4 { margin-top: var(--pk-space-4); margin-bottom: var(--pk-space-4); }
.pk-p-2 { padding: var(--pk-space-2); }
.pk-p-3 { padding: var(--pk-space-3); }
.pk-p-4 { padding: var(--pk-space-4); }
.pk-p-6 { padding: var(--pk-space-6); }
.pk-px-4 { padding-left: var(--pk-space-4); padding-right: var(--pk-space-4); }
.pk-py-2 { padding-top: var(--pk-space-2); padding-bottom: var(--pk-space-2); }
.pk-w-full { width: 100%; }
.pk-text-center { text-align: center; }
.pk-text-right { text-align: right; }
.pk-hidden { display: none; }
.pk-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pk-hint { font-size: 13px; color: var(--text-muted); }
.pk-hint-block { font-size: 13px; color: var(--text-muted); line-height: 1.6; margin-bottom: 14px; }
.pk-card-flush { justify-content: flex-start; padding: 12px 16px; }
.pk-subsection-title { font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 10px; }
.pk-small-label { font-size: 11px; font-weight: 600; color: var(--text-muted); margin-bottom: 4px; }
.pk-mb-10 { margin-bottom: 10px; }
.pk-mt-10 { margin-top: 10px; }
.pk-optional { font-size: 10px; color: var(--text-muted); font-weight: 400; }
.pk-flex-wrap-10 { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.pk-max-w-280 { max-width: 280px; }
.pk-min-w-140 { min-width: 140px; }
.pk-section-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); margin-bottom: 8px; }
.pk-col-full { grid-column: 1 / -1; }
.pk-cursor-pointer { cursor: pointer; }
.pk-whitespace-nowrap { white-space: nowrap; }
.pk-no-underline { text-decoration: none; }


/* ═══════════════════════════════════ */
/* ALERTS                              */
/* ═══════════════════════════════════ */

.pk-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  border-radius: var(--pk-radius-md);
  font-size: var(--pk-text-sm);
  line-height: 1.5;
  border: 1px solid transparent;
}
.pk-alert-info    { background: #eff6ff; border-color: #bfdbfe; color: #1e40af; }
.pk-alert-success { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.pk-alert-warning { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.pk-alert-error   { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

[data-theme="dark"] .pk-alert-info    { background: #1e3a5f; border-color: #1e40af; color: #93c5fd; }
[data-theme="dark"] .pk-alert-success { background: #052e16; border-color: #166534; color: #86efac; }
[data-theme="dark"] .pk-alert-warning { background: #451a03; border-color: #92400e; color: #fde68a; }
[data-theme="dark"] .pk-alert-error   { background: #450a0a; border-color: #991b1b; color: #fca5a5; }


/* ═══════════════════════════════════ */
/* TABS                                */
/* ═══════════════════════════════════ */

.pk-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--pk-neutral-200);
  margin-bottom: var(--pk-space-4);
}
.pk-tab {
  padding: 10px 18px;
  font-size: var(--pk-text-sm);
  font-weight: 500;
  color: var(--pk-neutral-500);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all var(--pk-transition);
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  font-family: inherit;
}
.pk-tab:hover { color: var(--pk-neutral-700); }
.pk-tab.active, .pk-tab[aria-selected="true"] {
  color: var(--pk-primary);
  border-bottom-color: var(--pk-primary);
  font-weight: 600;
}
.pk-tab-panel { display: none; }
.pk-tab-panel.active { display: block; }

[data-theme="dark"] .pk-tabs { border-bottom-color: var(--border, #334155); }
[data-theme="dark"] .pk-tab { color: var(--pk-neutral-400); }
[data-theme="dark"] .pk-tab:hover { color: var(--pk-neutral-200); }


/* ═══════════════════════════════════ */
/* DIALOG / MODAL                      */
/* ═══════════════════════════════════ */

.pk-dialog-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,0.6);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity var(--pk-transition);
}
.pk-dialog-overlay.visible { opacity: 1; }
.pk-dialog {
  background: var(--surface, #fff);
  border-radius: 16px;
  padding: 28px;
  max-width: 480px;
  width: 90%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15), 0 0 0 1px var(--border);
  transform: translateY(12px) scale(0.98);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s;
}
.pk-dialog-overlay.visible .pk-dialog { transform: translateY(0) scale(1); }
.pk-dialog-title { font-size: var(--pk-text-lg); font-weight: 700; margin-bottom: 8px; }
.pk-dialog-text { font-size: var(--pk-text-sm); color: var(--pk-neutral-500); margin-bottom: 20px; line-height: 1.5; }
.pk-dialog-actions { display: flex; gap: 8px; justify-content: flex-end; }


/* ═══════════════════════════════════ */
/* DARK MODE OVERRIDES                 */
/* ═══════════════════════════════════ */

[data-theme="dark"] .pk-card,
[data-theme="dark"] .pk-antwort,
[data-theme="dark"] .pk-input,
[data-theme="dark"] .pk-select {
  background: var(--surface, #1e293b);
  border-color: var(--border, #334155);
  color: var(--text, #e2e8f0);
}

[data-theme="dark"] .pk-btn-secondary {
  background: var(--surface, #1e293b);
  color: var(--text, #e2e8f0);
  border-color: var(--border, #334155);
}

[data-theme="dark"] .pk-upload {
  background: var(--bg-subtle, #1e293b);
  border-color: var(--border, #334155);
}

[data-theme="dark"] .pk-antwort-schicht {
  background: var(--bg-subtle, #1e293b);
}

[data-theme="dark"] .pk-disclaimer {
  background: var(--bg-subtle, #1e293b);
  border-color: var(--border, #334155);
}

/* ═══════════════════════════════════ */
/* FRAGE-OVERLAY (Topbar + Overlay)   */
/* ═══════════════════════════════════ */

/* ── Topbar Input ── */
.pk-frage-container {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  max-width: 420px;
  background: var(--pk-neutral-50);
  border: 1px solid var(--pk-neutral-200);
  border-radius: var(--pk-radius-full, 999px);
  padding: 3px 3px 3px 12px;
  transition: all 0.2s;
}
.pk-frage-container:focus-within {
  border-color: var(--pk-primary);
  box-shadow: 0 0 0 3px rgba(26, 86, 219, 0.1);
  background: #fff;
}
.pk-frage-input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-size: 13px;
  font-family: var(--pk-font, 'Inter', system-ui, sans-serif);
  color: var(--pk-neutral-800, #1f2937);
  min-width: 0;
}
.pk-frage-input::placeholder { color: var(--pk-neutral-400); }
.pk-frage-btn {
  background: var(--pk-primary);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s;
  flex-shrink: 0;
}
.pk-frage-btn:hover { background: var(--pk-primary-hover); }
.pk-frage-btn .pk-icon { width: 14px; height: 14px; }

/* ── Overlay ── */
.pk-frage-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 80px;
  background: rgba(0, 0, 0, 0.4);
  animation: pkFadeIn 0.2s ease;
}
@keyframes pkFadeIn { from { opacity: 0; } to { opacity: 1; } }

.pk-frage-card {
  background: #fff;
  border-radius: var(--pk-radius-xl, 16px);
  box-shadow: var(--pk-shadow-lg, 0 8px 40px rgba(0,0,0,0.15));
  max-width: 660px;
  width: 95%;
  max-height: 75vh;
  overflow-y: auto;
  font-family: var(--pk-font, 'Inter', system-ui, sans-serif);
}
.pk-frage-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--pk-neutral-200);
}
.pk-frage-card-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--pk-neutral-800);
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.pk-frage-card-close {
  background: none;
  border: none;
  color: var(--pk-neutral-400);
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  flex-shrink: 0;
}
.pk-frage-card-close:hover { background: var(--pk-neutral-100); color: var(--pk-neutral-600); }
.pk-frage-card-body { padding: 20px 24px 24px; }

/* ── Konfidenz-Badge ── */
.pk-konfidenz { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.pk-konfidenz-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
}
.pk-konfidenz-hoch { background: var(--pk-success-light); color: #166534; }
.pk-konfidenz-mittel { background: var(--pk-warning-light); color: #92400e; }
.pk-konfidenz-niedrig { background: #fef2f2; color: #991b1b; }
.pk-konfidenz-objekt { background: var(--pk-primary-50); color: #1e40af; }
.pk-konfidenz-allgemein { background: var(--pk-warning-light); color: #92400e; }

/* ── Konfidenz-Warnung ── */
.pk-konfidenz-warn {
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  margin-bottom: 10px;
  line-height: 1.5;
}
.pk-konfidenz-warn-rot { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.pk-konfidenz-warn-gelb { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }

/* ── Session-Badge ── */
.pk-session-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  border-radius: 999px;
  background: var(--pk-primary-50, #EFF6FF);
  color: var(--pk-primary, #2563EB);
  font-size: 11px;
  font-weight: 600;
  margin-bottom: 8px;
}

/* ── Widersprüche ── */
.pk-widerspruch {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 14px;
  font-size: 12px;
  color: #991b1b;
}

/* ── Antwort-Text ── */
.pk-antwort-text {
  font-size: 14px;
  color: var(--pk-neutral-700);
  line-height: 1.7;
}
.pk-antwort-text strong { color: var(--pk-neutral-800); }
.pk-antwort-text ul, .pk-antwort-text ol { padding-left: 20px; margin: 8px 0; }
.pk-antwort-text li { margin-bottom: 4px; }

/* ── Quellen ── */
.pk-quellen-details {
  margin-top: 14px;
  font-size: 12px;
  color: var(--pk-neutral-500);
}
.pk-quellen-details summary { cursor: pointer; font-weight: 500; }
.pk-quellen-details .pk-quellen-list { margin-top: 6px; color: var(--pk-neutral-400); }

/* ── Feedback ── */
.pk-feedback-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--pk-neutral-100);
  font-size: 12px;
  color: var(--pk-neutral-500);
}
.pk-fb-btn {
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--pk-neutral-200);
  background: #fff;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  transition: background 0.15s;
}
.pk-fb-btn:hover { background: var(--pk-neutral-50); }

/* ── Aktionen ── */
.pk-frage-aktionen {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}

/* ── Loading ── */
.pk-frage-loading {
  text-align: center;
  padding: 32px 0;
  color: var(--pk-neutral-500);
}
.pk-frage-loading .pk-icon { animation: pkPulse 1.5s infinite; }
@keyframes pkPulse { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } }

/* ── Streaming Cursor ── */
.pk-stream-cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background: var(--pk-primary);
  margin-left: 2px;
  vertical-align: text-bottom;
  animation: pkBlink 0.8s step-end infinite;
}
@keyframes pkBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

/* ── Fehler ── */
.pk-frage-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: 12px 16px;
  color: #991b1b;
  font-size: 13px;
}

/* ── Korrektur-Feld ── */
.pk-korrektur {
  margin-top: 8px;
}
.pk-korrektur textarea {
  width: 100%;
  min-height: 60px;
  padding: 8px;
  border-radius: 7px;
  border: 1px solid var(--pk-neutral-200);
  font-size: 12px;
  font-family: var(--pk-font, 'Inter', system-ui, sans-serif);
  resize: vertical;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .pk-frage-container { max-width: none; flex: 0 0 auto; padding: 3px; }
  .pk-frage-container .pk-frage-input { font-size: 0; width: 36px; min-width: 36px; padding: 6px; cursor: pointer; }
  .pk-frage-container .pk-frage-input::placeholder { font-size: 14px; text-align: center; }
  .pk-frage-container .pk-frage-label { display: none; }
  .pk-frage-overlay { padding-top: 20px; }
  .pk-frage-card { width: 98%; max-height: 85vh; }
}

/* ── Disclaimer ── */
.pk-frage-disclaimer {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--pk-neutral-100);
  font-size: 11px;
  color: var(--pk-neutral-400);
}
/* Folgefrage-Bereich im Overlay */
.pk-folgefrage {
  display: flex; align-items: center; gap: 6px;
  margin-top: 12px; padding: 8px 10px;
  background: var(--pk-neutral-50); border-radius: 10px;
  border: 1px solid var(--pk-neutral-100);
}
.pk-folgefrage-input {
  flex: 1; border: none; background: transparent;
  font-size: 13px; padding: 4px 0; outline: none;
  font-family: inherit; color: var(--pk-neutral-900);
}
.pk-folgefrage-input::placeholder { color: var(--pk-neutral-400); }
.pk-neues-thema-btn { padding: 4px; border-radius: 6px; }

/* ── Print: Frage-Overlay sauber drucken ── */
@media print {
  .pk-frage-overlay { position: static !important; background: none !important; padding: 0 !important; display: block !important; }
  .pk-frage-card { max-width: 100% !important; width: 100% !important; max-height: none !important; box-shadow: none !important; border-radius: 0 !important; overflow: visible !important; }
  .pk-frage-card-close, .pk-frage-container, .pk-frage-btn, .pk-folgefrage, .pk-folgefrage-chips, .pk-feedback-row, .pk-neues-thema-btn { display: none !important; }
  .pk-frage-card-body { padding: 0 !important; }
  .pk-frage-card-header { padding: 0 0 8px !important; border-bottom: 1px solid #ccc !important; }
  .pk-konfidenz-badge { border: 1px solid #ccc !important; }
  .pk-quellen { page-break-inside: avoid; }
  .pk-abschnitt { page-break-inside: avoid; border: 1px solid #ddd !important; }
}

.pk-antwort-text h4 { font-size: 15px; font-weight: 700; margin: 16px 0 6px; }
.pk-antwort-text h5 { font-size: 14px; font-weight: 600; margin: 12px 0 4px; }
.pk-antwort-text h6 { font-size: 13px; font-weight: 600; margin: 10px 0 4px; }
.pk-antwort-text hr { border: none; border-top: 1px solid var(--pk-neutral-100); margin: 12px 0; }
.pk-antwort-text ul { margin: 6px 0; padding-left: 20px; }
.pk-antwort-text li { margin: 3px 0; }
.pk-antwort-text p { margin: 6px 0; }
.pk-md-table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 8px 0; }
.pk-md-table th, .pk-md-table td { border: 1px solid var(--pk-neutral-200); padding: 6px 10px; text-align: left; }
.pk-md-table th { background: var(--pk-neutral-50); font-weight: 600; }
.pk-md-table tr:nth-child(even) td { background: var(--pk-neutral-25, #fafafa); }

/* ═══════════════════════════════════ */
/* 5-SCHICHTEN ABSCHNITTE (DoNexus)  */
/* ═══════════════════════════════════ */
.pk-abschnitte { display: flex; flex-direction: column; gap: 10px; }
.pk-abschnitt {
  border: 1px solid var(--pk-neutral-200);
  border-radius: 12px;
  padding: 16px 18px;
  background: var(--surface, #fff);
  box-shadow: var(--shadow-card, 0 1px 3px rgba(15,23,42,.04));
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.pk-abschnitt:hover { border-color: var(--pk-primary); box-shadow: 0 2px 8px rgba(79,70,229,0.06); }
.pk-abschnitt-kopf {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.pk-abschnitt-nr {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pk-primary), #7C3AED);
  color: #fff;
  font-size: 12px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(79,70,229,0.2);
}
.pk-abschnitt-titel {
  font-size: 14px;
  font-weight: 700;
  color: var(--text, var(--pk-neutral-800));
  flex: 1;
}
.pk-abschnitt-status {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.pk-abschnitt-status.pk-status-gefunden { background: #dcfce7; color: #166534; }
.pk-abschnitt-status.pk-status-nicht_gefunden { background: var(--pk-neutral-100); color: var(--pk-neutral-500); }
.pk-abschnitt-status.pk-status-geprueft { background: #E0E7FF; color: #3730A3; }
.pk-abschnitt-status.pk-status-warnung { background: #fef3c7; color: #92400e; }
.pk-abschnitt-status.pk-status-empfehlung { background: #f3e8ff; color: #6b21a8; }

.pk-abschnitt-inhalt {
  font-size: 13.5px;
  color: var(--text-muted, var(--pk-neutral-700));
  line-height: 1.7;
}
.pk-abschnitt-inhalt p { margin: 4px 0; }
.pk-abschnitt-inhalt ul { margin: 4px 0; padding-left: 18px; }
.pk-abschnitt-inhalt li { margin: 2px 0; }
.pk-abschnitt-inhalt strong { color: var(--text, var(--pk-neutral-800)); }

.pk-abschnitt-recht, .pk-abschnitt-fundstelle {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid var(--border, var(--pk-neutral-200));
  font-size: 11.5px;
  color: var(--pk-neutral-500);
  display: flex;
  align-items: baseline;
  gap: 4px;
  flex-wrap: wrap;
}
.pk-abschnitt-recht { color: var(--pk-primary); font-weight: 500; }

/* Dark mode */
[data-theme="dark"] .pk-abschnitt {
  background: var(--surface, #1A1F35);
  border-color: var(--border, #2A3150);
}
[data-theme="dark"] .pk-abschnitt:hover { border-color: var(--primary); }
[data-theme="dark"] .pk-abschnitt-titel { color: var(--text, #e2e8f0); }
[data-theme="dark"] .pk-abschnitt-inhalt { color: var(--text-muted, #94a3b8); }
[data-theme="dark"] .pk-abschnitt-inhalt strong { color: var(--text, #e2e8f0); }
[data-theme="dark"] .pk-abschnitt-nr { box-shadow: 0 2px 6px rgba(129,140,248,0.3); }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .pk-card,
  :root:not([data-theme="light"]) .pk-antwort,
  :root:not([data-theme="light"]) .pk-input,
  :root:not([data-theme="light"]) .pk-select {
    background: var(--surface, #1e293b);
    border-color: var(--border, #334155);
    color: var(--text, #e2e8f0);
  }

  :root:not([data-theme="light"]) .pk-btn-secondary {
    background: var(--surface, #1e293b);
    color: var(--text, #e2e8f0);
    border-color: var(--border, #334155);
  }

  :root:not([data-theme="light"]) .pk-upload {
    background: var(--bg-subtle, #1e293b);
    border-color: var(--border, #334155);
  }
  :root:not([data-theme="light"]) .pk-abschnitt {
    background: var(--surface, #1e293b);
    border-color: var(--border, #334155);
  }
  :root:not([data-theme="light"]) .pk-abschnitt-titel { color: var(--text, #e2e8f0); }
  :root:not([data-theme="light"]) .pk-abschnitt-inhalt { color: var(--text-muted, #94a3b8); }
}

/* ═══════════════════════════════════ */
/* INLINE-STYLE REPLACEMENTS            */
/* ═══════════════════════════════════ */

/* Form-Label klein (19x objekt.html) */
.pk-form-label-sm { font-size: 12px; font-weight: 500; display: block; margin-bottom: 4px; }

/* Input Standard (12x objekt.html) */
.pk-input-full { width: 100%; padding: 8px 10px; border: 1px solid var(--border, #d1d5db); border-radius: 6px; font-size: 13px; box-sizing: border-box; background: var(--surface, #fff); color: var(--text, #1e293b); }
[data-theme="dark"] .pk-input-full { background: var(--surface, #1e293b); border-color: var(--border, #334155); color: var(--text, #e2e8f0); }

/* KI-Render Klassen */
.pk-render-card { border: 1px solid var(--border, #e5e7eb); border-radius: 8px; padding: 14px; background: var(--surface, #fff); margin-bottom: 12px; }
.pk-render-section-title { font-size: 12px; font-weight: 600; margin-bottom: 6px; color: var(--text, #1e293b); }
.pk-render-hint { font-size: 11px; color: var(--text-muted, #94a3b8); }
.pk-render-list { margin: 0; padding-left: 18px; }
.pk-render-list li { font-size: 12px; margin-bottom: 3px; }
[data-theme="dark"] .pk-render-card { background: var(--surface, #1e293b); border-color: var(--border, #334155); }
[data-theme="dark"] .pk-render-section-title { color: var(--text, #e2e8f0); }

/* Ampel-Farben (WP-Benchmark) */
.pk-ampel-gruen { background: #dcfce7; border: 2px solid #16a34a; border-radius: 8px; padding: 14px; }
.pk-ampel-gelb { background: #fef9c3; border: 2px solid #ca8a04; border-radius: 8px; padding: 14px; }
.pk-ampel-rot { background: #fef2f2; border: 2px solid #dc2626; border-radius: 8px; padding: 14px; }
[data-theme="dark"] .pk-ampel-gruen { background: rgba(22,163,74,.15); }
[data-theme="dark"] .pk-ampel-gelb { background: rgba(202,138,4,.15); }
[data-theme="dark"] .pk-ampel-rot { background: rgba(220,38,38,.15); }

/* Fehlende Spacing */
.pk-mb-12 { margin-bottom: 12px; }
.pk-mb-14 { margin-bottom: 14px; }
.pk-mb-16 { margin-bottom: 16px; }
.pk-p-10 { padding: 10px; }
.pk-p-14 { padding: 14px; }
.pk-p-16 { padding: 16px; }
.pk-m-0 { margin: 0; }
.pk-pl-4 { padding-left: 18px; }
.pk-p-5 { padding: 20px; }
.pk-p-20 { padding: 20px; }
.pk-p-30 { padding: 30px; }
.pk-mt-12 { margin-top: 12px; }
.pk-mt-16 { margin-top: 16px; }
.pk-mt-32 { margin-top: 32px; }
.pk-section-label { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.pk-section-label-sm { font-size: 12px; font-weight: 600; color: var(--text-muted); margin-bottom: 8px; }
.pk-flex-end { display: flex; justify-content: flex-end; }
.pk-flex-gap-8 { display: flex; gap: 8px; }
.pk-flex-gap-4 { display: flex; gap: 4px; }
.pk-flex-gap-12 { display: flex; gap: 12px; }
.pk-flex-center { display: flex; align-items: center; }
.pk-flex-center-gap-8 { display: flex; align-items: center; gap: 8px; }
.pk-flex-center-gap-12 { display: flex; align-items: center; gap: 12px; }
.pk-flex-wrap-gap-6 { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-flex-wrap-gap-8 { display: flex; gap: 8px; flex-wrap: wrap; }
.pk-text-left { text-align: left; }

/* Objektakte: Inline-Style-Ersatz */
.pk-section-label-sm-muted { font-size: 12px; font-weight: 600; color: var(--text-muted); margin-bottom: 8px; }
.pk-flex-gap-6 { display: flex; gap: 6px; }
.pk-flex-gap-6-wrap { display: flex; gap: 6px; flex-wrap: wrap; }
.pk-flex-gap-6-center { display: flex; gap: 6px; align-items: center; }
.pk-flex-gap-8-center { display: flex; gap: 8px; align-items: center; }
.pk-flex-gap-8-end { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.pk-flex-col-gap-8 { display: flex; flex-direction: column; gap: 8px; }
.pk-flex-col-gap-6 { display: flex; flex-direction: column; gap: 6px; }
.pk-flex-col-gap-0 { display: flex; flex-direction: column; gap: 0; }
.pk-flex-col-gap-10 { display: flex; flex-direction: column; gap: 10px; }
.pk-grid-2col-gap-10 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pk-grid-gap-8 { display: grid; gap: 8px; }
.pk-grid-gap-12 { display: grid; gap: 12px; }
.pk-grid-gap-4 { display: grid; gap: 4px; }
.pk-mb-8 { margin-bottom: 8px; }
.pk-mb-0 { margin-bottom: 0; }
.pk-text-primary { color: var(--primary); }
.pk-no-decoration { text-decoration: none; }
.pk-ml-auto { margin-left: auto; }
.pk-cursor-pointer { cursor: pointer; }
.pk-flex-1 { flex: 1; min-width: 0; }

/* Inline-style elimination utilities (v1.6) */
.pk-mt-4px { margin-top: 4px; }
.pk-mt-6 { margin-top: 6px; }
.pk-mt-8 { margin-top: 8px; }
.pk-mt-14 { margin-top: 14px; }
.pk-mt-20 { margin-top: 20px; }
.pk-mt-24 { margin-top: 24px; }
.pk-mb-4px { margin-bottom: 4px; }
.pk-mb-6 { margin-bottom: 6px; }
.pk-mb-10 { margin-bottom: 10px; }
.pk-mb-20 { margin-bottom: 20px; }
.pk-flex-between { display: flex; align-items: center; justify-content: space-between; }
.pk-flex-col-stretch { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.pk-flex-col-gap-4 { display: flex; flex-direction: column; gap: 4px; }
.pk-flex-col-gap-12 { display: flex; flex-direction: column; gap: 12px; }
.pk-grid-3col { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.pk-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pk-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.pk-shrink-0 { flex-shrink: 0; }
.pk-opacity-40 { opacity: .4; }
.pk-disclaimer-hint { font-size: 0.7rem; color: var(--pk-neutral-400); margin-top: 10px; }

/* Print header utilities */
.pk-print-title { font-weight: 700; font-size: 14pt; }
.pk-print-date { font-size: 10pt; color: var(--pk-neutral-500); }

/* Form-grid patterns */
.pk-form-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.pk-form-label-block { font-size: 12px; font-weight: 500; display: block; margin-bottom: 4px; }
.pk-form-input-std { width: 100%; padding: 8px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; box-sizing: border-box; }

/* Section patterns */
.pk-section-divider-flex { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; }
.pk-btn-edit-sm { font-size: 11px; padding: 2px 8px; border: 1px solid var(--border); border-radius: 5px; background: none; cursor: pointer; color: var(--text-muted); font-family: inherit; }
.pk-label-uppercase { font-size: 12px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px; }
.pk-info-box-warning { background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; padding: 12px; font-size: 12px; color: #c2410c; margin-top: 16px; }
.pk-info-box-primary { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 8px; padding: 12px; font-size: 12px; color: var(--pk-primary); margin-top: 16px; }
.pk-border-top-section { border-top: 1px solid var(--border); padding-top: 16px; margin-top: 16px; }
.pk-subsection-title { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.pk-subsection-title-sm { font-size: 14px; font-weight: 600; margin-bottom: 8px; }

/* Einstellungen: checkbox label */
.pk-checkbox-label { font-size: 13px; font-weight: 600; color: var(--pk-neutral-600); display: flex; align-items: center; gap: 6px; }
.pk-checkbox-label-muted { font-size: 13px; font-weight: 600; color: var(--text-secondary); display: flex; align-items: center; gap: 6px; }
.pk-es-btn-neutral { background: var(--pk-neutral-100); color: var(--pk-neutral-600); border: 1px solid var(--pk-neutral-200); }

/* Sanierung section head inner */
.pk-san-section-inner { display: flex; align-items: center; }

/* Docs OCR quality panel */
.pk-ocr-panel { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-radius: 10px; padding: 14px 16px; margin-top: 12px; animation: ueIn .3s ease; }
.pk-ocr-title { font-size: 13px; font-weight: 700; color: var(--pk-warning-dark); margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.pk-ocr-bar-wrap { width: 100%; height: 10px; background: #e2e8f0; border-radius: 999px; overflow: hidden; margin-bottom: 8px; }
.pk-ocr-bar-fill { height: 100%; border-radius: 999px; transition: width .6s ease, background .4s; width: 0%; background: #22c55e; }
.pk-ocr-status { font-size: 13px; color: var(--pk-warning-dark); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pk-ocr-tips { margin-top: 10px; background: #fff; border: 1px solid #fde68a; border-radius: 8px; padding: 10px 14px; font-size: 12.5px; color: var(--pk-warning-dark); line-height: 1.65; }
.pk-ocr-tips-title { display: block; margin-bottom: 6px; }
.pk-ocr-tips-list { padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.pk-ocr-warning { margin-top: 8px; font-size: 12px; color: var(--pk-danger-dark); font-weight: 500; }

/* Docs obj-frage / faq */
.pk-warning-box { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-left: 3px solid var(--pk-warning); border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; }
.pk-warning-box-text { font-size: 13.5px; color: var(--pk-warning-dark); line-height: 1.5; }
.pk-objekt-active-box { background: var(--pk-primary-50); border: 1px solid #c4b5fd; border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; }
.pk-objekt-name { font-weight: 700; font-size: 14px; }
.pk-objekt-wechseln { font-size: 12px; color: var(--pk-primary); background: none; border: none; cursor: pointer; font-family: inherit; text-decoration: underline; }
.pk-objekt-meta { font-size: 12px; color: var(--pk-neutral-500); }
.pk-frage-label { display: block; font-size: 12.5px; font-weight: 600; color: var(--pk-neutral-500); margin-bottom: 6px; }
.pk-frage-textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--pk-neutral-200); border-radius: 8px; font-size: 14px; font-family: inherit; resize: vertical; outline: none; }
.pk-frage-hint { font-size: 11.5px; color: var(--pk-neutral-400); margin-top: 4px; }
.pk-faq-search { width: 100%; padding: 8px 12px; border: 1px solid var(--pk-neutral-200); border-radius: 8px; font-size: 13px; font-family: inherit; outline: none; }
.pk-faq-list { max-height: 320px; overflow-y: auto; margin-bottom: 12px; }
.pk-faq-new-select { width: 100%; padding: 6px 10px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; font-family: inherit; margin-bottom: 6px; }
.pk-faq-new-input { width: 100%; padding: 6px 10px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; font-family: inherit; margin-bottom: 6px; }
.pk-faq-new-textarea { width: 100%; padding: 6px 10px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; font-family: inherit; resize: vertical; margin-bottom: 6px; }
.pk-faq-save-btn { width: 100%; padding: 8px; background: var(--primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 12px; cursor: pointer; font-family: inherit; }
.pk-faq-suggest-btn { width: 100%; padding: 8px 14px; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; font-size: 12px; cursor: pointer; color: #0369a1; font-family: inherit; }
.pk-cookie-link { color: #93c5fd; text-decoration: none; }

/* Dashboard: Onboarding-Step inner elements */
.db-onboard-step-title { font-size: 14px; font-weight: 600; }
.db-onboard-step-desc { font-size: 12px; color: var(--text-muted); }
.db-onboard-step-arrow { margin-left: auto; color: var(--primary); font-size: 16px; }
.db-onboard-divider { border-top: 1px solid var(--border); margin-top: 16px; padding-top: 16px; text-align: center; }
.db-onboard-demo-text { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.db-onboard-demo-hint { margin-top: 8px; font-size: 11px; color: var(--text-muted); }

/* Dashboard: Smart Upload inner layout */
.su-inner { display: flex; align-items: center; gap: 16px; width: 100%; }
.su-icon { font-size: 24px; }
.su-title { font-weight: 600; font-size: 14px; }
.su-desc { font-size: 12px; color: var(--text-muted); }
.su-loading { display: none; align-items: center; gap: 10px; }
.su-detected { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.su-reset-btn { margin-top: 8px; }

/* Dashboard: Digest Zeitraum */
.db-digest-zeitraum { font-weight: 400; font-size: 12px; color: var(--text-muted); }

/* Dashboard: Briefing card */
.db-briefing-card { margin-bottom: 16px; display: none; border-radius: 12px; padding: 18px 22px; background: var(--surface); border: 1px solid var(--border); }

/* Dashboard: Footer */
.db-footer { text-align: center; padding: 24px; font-size: 12px; color: var(--pk-neutral-400); }
.db-footer a { color: var(--pk-neutral-500); }

/* Dashboard: Kontext-Widget */
.db-kontext-widget { max-width: 900px; margin: 0 auto; padding: 0 16px; }

/* Prepare: Page-Title */
.prep-page-title { font-size: 20px; font-weight: 800; margin-bottom: 4px; }

/* Prepare: Debug-Log */
.prep-debug-log { display: none; background: #1e293b; color: #86efac; font-family: monospace; font-size: 11px; padding: 10px 14px; border-radius: 8px; max-height: 150px; overflow-y: auto; white-space: pre-wrap; margin-bottom: 8px; }

/* Prepare: Kennzahlen-Banner */
.prep-kz-banner { display: none; background: var(--pk-primary-light); border: 1px solid #93c5fd; border-radius: 10px; padding: 14px 18px; margin-bottom: 16px; font-size: 13px; color: #1e3a8a; }

/* Prepare: Transfer-Banner */
.prep-transfer-banner { display: none; background: var(--pk-success-light); border: 1px solid #86efac; border-radius: 10px; padding: 14px 18px; margin-bottom: 16px; font-size: 13px; color: var(--pk-success-dark); }

/* Prepare: ETV-Themen Banner override */
.prep-etv-banner { display: none; border-color: #fed7aa; background: var(--pk-warning-bg, #fffbeb); }
.prep-etv-banner .card-title { color: var(--pk-warning-dark); }
.prep-etv-desc { font-size: 12px; color: var(--pk-warning-dark); margin-bottom: 10px; }
.prep-etv-liste { display: flex; flex-direction: column; gap: 6px; }

/* Prepare: Hint row (tip + counter) */
.prep-hint-row { display: flex; justify-content: space-between; margin-top: 4px; }
.prep-hint-row-mt6 { display: flex; justify-content: space-between; margin-top: 6px; }
.prep-hint-text { font-size: 11px; color: var(--text-muted); }

/* Prepare: Section desc */
.prep-section-desc { font-size: 12px; color: var(--text-muted); margin-bottom: 10px; }

/* Prepare: Result header toolbar */
.prep-result-toolbar { display: flex; gap: 6px; align-items: center; }

/* Prepare: Compact action button */
.btn-action-sm { padding: 5px 10px; font-size: 12px; }

/* Prepare: "Was jetzt?" section */
.prep-was-jetzt { margin-top: 16px; padding: 12px 16px; background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 8px; display: none; }
.prep-was-jetzt-title { font-size: 11px; font-weight: 700; color: var(--pk-neutral-400); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.prep-was-jetzt-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* Prepare: Beschluss-Vorlagen label */
.prep-vorlagen-label { font-size: 12px; font-weight: 700; color: var(--text-muted); margin-bottom: 8px; }

/* Prepare: Mail-to-TOP collected label */
.prep-collected-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); margin-bottom: 8px; }

/* Prepare: Proto-Chip */
.prep-proto-chip { margin-top: 8px; }

/* Prepare: No-Objekt-Hint */
.prep-no-objekt { display: none; font-size: 12px; color: var(--pk-danger); margin-top: 6px; }

/* Prepare: Freitext textarea */
.prep-freitext-textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--border); border-radius: 8px; font-size: 13px; font-family: inherit; resize: vertical; min-height: 120px; background: var(--surface); color: var(--text); line-height: 1.6; box-sizing: border-box; }

/* Prepare: DZ sub extra */
.dz-lg-sub-extra { margin-top: 4px; }

/* Prepare: Beschluss-Generator Section (v2) */
.prep-beschluss-section { margin-top: 32px; padding: 24px; background: #fff; border: 1px solid var(--pk-neutral-200); border-radius: 12px; }
[data-theme="dark"] .prep-beschluss-section { background: var(--surface); }
.prep-section-title { margin: 0 0 6px; font-size: 18px; }
.prep-section-intro { margin: 0 0 20px; font-size: 13px; color: var(--pk-neutral-500); }
.prep-form-group { margin-bottom: 16px; }
.prep-form-label { font-size: 13px; font-weight: 500; display: block; margin-bottom: 6px; }
.prep-form-label-sm { font-size: 12px; font-weight: 500; display: block; margin-bottom: 4px; }
.prep-form-label-optional { font-weight: 400; color: var(--pk-neutral-400); }
.prep-form-input { width: 100%; padding: 8px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; box-sizing: border-box; }
.prep-form-select { width: 100%; padding: 9px 12px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.prep-form-textarea { width: 100%; padding: 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; resize: vertical; box-sizing: border-box; }
.prep-btn-generate { padding: 9px 22px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.prep-result-area { display: none; margin-top: 20px; }
.prep-fristen-live { margin-bottom: 16px; font-size: 13px; color: var(--pk-neutral-500); }

/* Prepare: ETV-Einladung Grid */
.prep-etv-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }

/* Prepare: TOPs-Liste */
.prep-tops-liste { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.prep-top-zeile { display: flex; gap: 8px; align-items: center; }
.prep-top-nr { font-size: 12px; color: var(--pk-neutral-400); min-width: 45px; }
.prep-top-input { flex: 1; padding: 8px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.prep-top-remove { padding: 4px 8px; background: var(--pk-danger-bg, #fee2e2); border: 1px solid #fca5a5; border-radius: 4px; font-size: 12px; cursor: pointer; color: var(--pk-danger); }
.prep-btn-add-top { padding: 7px 16px; background: var(--pk-neutral-100); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; cursor: pointer; }
.prep-form-label-tops { font-size: 13px; font-weight: 500; display: block; margin-bottom: 8px; }

/* Prepare: ETV-Einladung section (mt-24) */
.prep-einladung-section { margin-top: 24px; padding: 24px; background: #fff; border: 1px solid var(--pk-neutral-200); border-radius: 12px; }
[data-theme="dark"] .prep-einladung-section { background: var(--surface); }

/* Prepare: Protokoll section wrapper */
.prep-prot-wrapper { margin: 0 auto; max-width: 960px; padding: 0 24px; }
.prep-prot-section { margin-top: 24px; padding: 24px; background: #fff; border: 1px solid var(--pk-neutral-200); border-radius: 12px; }
[data-theme="dark"] .prep-prot-section { background: var(--surface); }
.prep-section-subtitle { margin: 0 0 4px; font-size: 13px; color: var(--pk-neutral-500); }
.prep-section-note { margin: 0 0 20px; font-size: 12px; color: var(--pk-neutral-400); }
.prep-prot-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.prep-prot-row { display: flex; gap: 6px; align-items: center; }
.prep-prot-input-sm { width: 80px; padding: 8px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.prep-prot-input-md { width: 90px; padding: 8px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.prep-prot-separator { font-size: 13px; color: var(--pk-neutral-600); }
.prep-prot-tops { display: flex; flex-direction: column; gap: 12px; margin-bottom: 10px; }

/* ── Objekt.html Inline-Style Replacements ── */
.ok-card-pad { padding: 20px; }
.ok-card-h3 { margin: 0 0 6px; font-size: 16px; }
.ok-card-desc { margin: 0 0 16px; font-size: 13px; color: var(--text-muted, #666); }
.ok-card-desc-sm { margin: 0 0 4px; font-size: 13px; color: var(--text-muted, #666); }
.ok-card-note { margin: 0 0 20px; font-size: 12px; color: var(--pk-neutral-400); }
.ok-grid-3col { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.ok-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.ok-grid-2col-sm { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.ok-flex-gap20 { display: flex; gap: 20px; margin-bottom: 14px; }
.ok-flex-gap10 { display: flex; gap: 10px; margin-bottom: 12px; }
.ok-flex-gap8 { display: flex; gap: 8px; }
.ok-flex-col-gap24 { display: flex; flex-direction: column; gap: 24px; margin-top: 16px; }
.ok-label-with-hint { font-size: 13px; font-weight: 500; display: block; margin-bottom: 6px; }
.ok-label-hint { font-weight: 400; color: var(--pk-neutral-400); }
.ok-checkbox-label { font-size: 13px; display: flex; align-items: center; gap: 6px; cursor: pointer; }
.ok-checkbox-label-sm { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.ok-btn-primary { padding: 9px 20px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-primary-mt { margin-top: 10px; padding: 9px 20px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-primary-mt12 { margin-top: 12px; padding: 9px 22px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-primary-dark { padding: 9px 22px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-danger { padding: 9px 22px; background: var(--pk-danger); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-copy { margin-top: 8px; padding: 8px 18px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-copy-danger { margin-top: 8px; padding: 8px 18px; background: var(--pk-danger); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-btn-copy-sm { margin-top: 6px; padding: 6px 14px; background: var(--pk-neutral-100); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 12px; cursor: pointer; }
.ok-btn-secondary-sm { padding: 9px 14px; background: var(--pk-neutral-100); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; cursor: pointer; }
.ok-btn-tab-active { padding: 7px 16px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 12px; cursor: pointer; font-weight: 500; }
.ok-btn-tab { padding: 7px 16px; background: var(--pk-neutral-100); color: var(--pk-neutral-700); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 12px; cursor: pointer; }
.ok-textarea { width: 100%; padding: 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; resize: vertical; box-sizing: border-box; }
.ok-textarea-readonly { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; background: var(--pk-neutral-50); box-sizing: border-box; resize: vertical; line-height: 1.6; }
.ok-textarea-report { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 12px; background: #f9f9f9; box-sizing: border-box; resize: none; }
.ok-textarea-mono { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; background: var(--pk-neutral-50); box-sizing: border-box; resize: vertical; font-family: monospace; }
.ok-upload-zone { border: 2px dashed #cbd5e1; border-radius: 8px; padding: 24px; text-align: center; cursor: pointer; background: var(--pk-neutral-50); transition: border-color 0.2s; }
.ok-upload-zone-sm { border: 2px dashed #cbd5e1; border-radius: 8px; padding: 20px; text-align: center; cursor: pointer; background: var(--pk-neutral-50); }
.ok-upload-icon { font-size: 32px; margin-bottom: 8px; }
.ok-upload-icon-sm { font-size: 28px; margin-bottom: 6px; }
.ok-upload-text { font-size: 14px; font-weight: 500; color: var(--pk-neutral-700); }
.ok-upload-hint { font-size: 12px; color: var(--pk-neutral-500); margin-top: 4px; }
.ok-upload-hint-sm { font-size: 12px; color: var(--pk-neutral-500); margin-top: 3px; }
.ok-upload-hint-2 { font-size: 12px; color: var(--pk-neutral-500); margin-top: 2px; }
.ok-status-saved { margin-left: 10px; font-size: 13px; color: var(--pk-success); font-weight: 500; }
.ok-warning-box { background: var(--pk-warning-light); border: 1px solid #fde68a; border-radius: 6px; padding: 8px 12px; margin-bottom: 16px; font-size: 12px; color: var(--pk-warning-dark); }
.ok-input-suffix-wrap { position: relative; }
.ok-input-suffix { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 11px; color: var(--pk-neutral-400); }
.ok-input-wp { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; box-sizing: border-box; }
.ok-input-wp-suffix { width: 100%; padding: 7px 45px 7px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; box-sizing: border-box; }
.ok-wp-params { background: var(--pk-neutral-50); border-radius: 8px; padding: 14px; margin-bottom: 16px; }
.ok-wp-params-title { font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.ok-wp-kosten-title { font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.ok-wp-live { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 8px; padding: 12px; margin-bottom: 16px; }
.ok-wp-live-title { font-size: 12px; font-weight: 600; color: var(--pk-primary); margin-bottom: 6px; }
.ok-wp-live-text { font-size: 13px; color: var(--pk-primary-hover); }
.ok-pt-20 { padding-top: 20px; }
.ok-preview-img { max-width: 100%; max-height: 200px; border-radius: 6px; border: 1px solid var(--pk-neutral-200); }
.ok-onboard-count { font-size: 12px; font-weight: 600; }
.ok-onboard-icon { font-size: 18px; }
.ok-file-name { margin-top: 8px; font-size: 13px; color: var(--pk-success); }
.ok-mt-result { margin-top: 16px; }
.ok-mt-12 { margin-top: 12px; }
.ok-mt-8 { margin-top: 8px; }
.ok-r-flex-row { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f0f0f0; }
.ok-r-flex-center { display: flex; align-items: center; gap: 10px; }
.ok-r-icon-lg { font-size: 24px; }
.ok-r-icon-md { font-size: 18px; flex-shrink: 0; }
.ok-r-icon-sm { font-size: 16px; flex-shrink: 0; }
.ok-r-flex1 { flex: 1; }
.ok-r-text-sm { font-size: 13px; font-weight: 500; }
.ok-r-detail { font-size: 12px; color: var(--pk-neutral-600); margin-top: 2px; }
.ok-r-italic { font-size: 12px; color: var(--pk-neutral-400); margin-top: 2px; font-style: italic; }
.ok-r-rechts { font-size: 11px; color: var(--pk-neutral-400); flex-shrink: 0; }
.ok-r-urteil { border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ok-r-urteil-title { font-size: 14px; font-weight: 600; }
.ok-r-urteil-sub { font-size: 12px; color: var(--pk-neutral-500); margin-top: 4px; }
.ok-r-bcard { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: #fff; }
.ok-r-bcard-mb { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: #fff; margin-bottom: 12px; }
.ok-r-bcard-sm { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: #fff; }
.ok-r-bcard-sm-mb { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: #fff; margin-bottom: 12px; }
.ok-r-dring { border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ok-r-badge-title { font-size: 11px; font-weight: 600; color: var(--pk-neutral-400); margin-bottom: 4px; }
.ok-r-badge-value { font-size: 14px; font-weight: 600; }
.ok-r-badge-sub { font-size: 12px; color: var(--pk-neutral-600); margin-top: 4px; }
.ok-r-badge-sub-sm { font-size: 11px; color: var(--pk-neutral-400); margin-top: 4px; }
.ok-r-flex-gap12 { display: flex; gap: 12px; margin-bottom: 12px; }
.ok-r-badge-box { flex: 1; border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: #fff; }
.ok-r-badge-box-sm { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: #fff; min-width: 140px; }
.ok-r-notmassnahme { background: var(--pk-danger-bg, #fef2f2); border: 2px solid #dc2626; border-radius: 8px; padding: 12px; margin-bottom: 12px; display: flex; gap: 8px; align-items: flex-start; }
.ok-r-notmassnahme-title { font-size: 13px; font-weight: 700; color: var(--pk-danger-dark); }
.ok-r-notmassnahme-text { font-size: 12px; color: var(--pk-danger-dark); margin-top: 2px; }
.ok-r-warning-box { background: var(--pk-warning-light); border: 2px solid #f59e0b; border-radius: 8px; padding: 12px; margin-bottom: 12px; display: flex; gap: 8px; align-items: flex-start; }
.ok-r-warning-title { font-size: 13px; font-weight: 600; color: var(--pk-warning-dark); }
.ok-r-warning-text { font-size: 12px; color: var(--pk-warning-dark); margin-top: 2px; }
.ok-r-mail-label { font-size: 12px; font-weight: 500; color: var(--pk-neutral-700); margin-bottom: 8px; }
.ok-r-rechtsgrund { font-size: 12px; color: var(--pk-neutral-500); margin-bottom: 8px; }
.ok-r-schritte-box-mb { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-schritte-title { font-size: 12px; font-weight: 500; margin-bottom: 6px; }
.ok-r-eskalation { margin-top: 10px; font-size: 12px; color: var(--pk-neutral-500); font-style: italic; }
.ok-r-li-sm { font-size: 12px; margin-bottom: 4px; }
.ok-r-zusammenfassung { font-size: 12px; color: var(--pk-neutral-700); font-style: italic; }
.ok-r-rechtsgrund-mb { font-size: 12px; color: var(--pk-neutral-500); margin-bottom: 6px; }
.ok-r-frist-hint { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-radius: 6px; padding: 10px; margin-bottom: 12px; font-size: 12px; color: var(--pk-warning-dark); }
.ok-r-success-sm { background: var(--pk-success-light); border: 1px solid #bbf7d0; border-radius: 6px; padding: 8px 12px; margin-bottom: 12px; font-size: 12px; color: var(--pk-success); }
.ok-r-warn-unlesbar { background: var(--pk-warning-light); border: 2px solid #f59e0b; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ok-r-warn-unlesbar-title { font-size: 13px; font-weight: 600; color: var(--pk-warning-dark); }
.ok-r-warn-unlesbar-text { font-size: 12px; color: var(--pk-warning-dark); margin-top: 4px; }
.ok-r-scan-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ok-r-scan-label { font-size: 12px; color: var(--pk-neutral-400); margin-bottom: 3px; }
.ok-r-scan-value { font-size: 14px; font-weight: 600; }
.ok-r-scan-detail { font-size: 12px; color: var(--pk-neutral-600); margin-top: 3px; }
.ok-r-excerpt-box { border: 1px solid var(--pk-neutral-200); border-radius: 6px; padding: 10px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-excerpt-label { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 4px; }
.ok-r-excerpt-text { font-size: 12px; color: var(--pk-neutral-700); font-style: italic; line-height: 1.5; }
.ok-r-antwort-box { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: #fff; }
.ok-r-antwort-label { font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.ok-r-btn-copy-primary { margin-top: 8px; padding: 7px 16px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 12px; cursor: pointer; font-weight: 500; }
.ok-r-vertrag-header { background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ok-r-vertrag-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.ok-r-vertrag-label { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 2px; }
.ok-r-vertrag-value { font-size: 13px; font-weight: 600; }
.ok-r-vertrag-detail { font-size: 12px; color: var(--pk-neutral-600); }
.ok-r-vertrag-kuendigung { font-size: 13px; font-weight: 600; color: var(--pk-warning); }
.ok-r-vertrag-frist-hint { margin-top: 10px; padding: 8px; background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-radius: 5px; font-size: 12px; color: var(--pk-warning-dark); }
.ok-r-warn-list { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px solid #fecaca; font-size: 12px; color: var(--pk-danger); }
.ok-r-danger-box { background: var(--pk-danger-bg, #fef2f2); border: 1px solid #fecaca; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ok-r-danger-title { font-size: 12px; font-weight: 600; color: var(--pk-danger); margin-bottom: 6px; }
.ok-r-empf-box { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-fristen-box { border: 2px solid #2563eb; border-radius: 8px; padding: 14px; background: var(--pk-primary-50); }
.ok-r-fristen-title { font-size: 13px; font-weight: 600; color: var(--pk-primary-hover); margin-bottom: 10px; }
.ok-r-fristen-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f0f0; }
.ok-r-fristen-cb { width: 16px; height: 16px; cursor: pointer; flex-shrink: 0; }
.ok-r-fristen-name { font-size: 13px; font-weight: 500; }
.ok-r-fristen-meta { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-fristen-hint { font-size: 11px; color: var(--pk-neutral-600); font-style: italic; }
.ok-r-success-box { background: var(--pk-success-light); border: 1px solid #bbf7d0; border-radius: 6px; padding: 10px; font-size: 12px; color: var(--pk-success); }
.ok-r-fristen-save-btn { margin-top: 12px; padding: 9px 22px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-r-fristen-status { color: var(--pk-success); font-weight: 500; font-size: 13px; }
.ok-r-sofort-box { background: var(--pk-danger-bg, #fef2f2); border: 2px solid #dc2626; border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ok-r-sofort-title { font-size: 14px; font-weight: 700; color: var(--pk-danger); margin-bottom: 10px; }
.ok-r-sofort-list { margin: 0; padding-left: 0; list-style: none; }
.ok-r-sofort-li { font-size: 13px; margin-bottom: 5px; color: #111; }
.ok-r-nicht-box { border: 1px solid #fecaca; border-radius: 8px; padding: 12px; background: var(--pk-danger-bg, #fef2f2); margin-bottom: 12px; }
.ok-r-nicht-title { font-size: 12px; font-weight: 700; color: var(--pk-danger); margin-bottom: 6px; }
.ok-r-nicht-li { font-size: 12px; margin-bottom: 3px; color: var(--pk-danger); font-weight: 500; }
.ok-r-doku-box { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-doku-title { font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.ok-r-doku-li { font-size: 12px; margin-bottom: 3px; }
.ok-r-schreiben-box { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: #fff; margin-bottom: 12px; }
.ok-r-schreiben-betreff { font-size: 12px; font-weight: 600; margin-bottom: 4px; }
.ok-r-schreiben-hint { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 8px; }
.ok-r-qual-warn { background: var(--pk-danger-bg, #fef2f2); border: 1px solid #fecaca; border-radius: 6px; padding: 10px; margin-bottom: 12px; font-size: 12px; color: var(--pk-danger); }
.ok-r-weg27-box { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 6px; padding: 10px; margin-bottom: 12px; font-size: 12px; color: var(--pk-primary); }
.ok-r-ansprech-hint { font-size: 12px; color: var(--pk-neutral-500); }
.ok-r-wp-header { border-radius: 8px; padding: 14px; margin-bottom: 12px; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.ok-r-wp-icon { font-size: 32px; }
.ok-r-wp-title { font-size: 16px; font-weight: 700; }
.ok-r-wp-desc { font-size: 13px; color: var(--pk-neutral-600); margin-top: 3px; }
.ok-r-wp-hausgeld { text-align: right; }
.ok-r-wp-hausgeld-label { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-wp-hausgeld-value { font-size: 18px; font-weight: 700; color: #111; }
.ok-r-wp-peters { border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ok-r-wp-peters-title { font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.ok-r-wp-peters-label { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-wp-peters-value { font-size: 15px; font-weight: 700; }
.ok-r-wp-peters-note { font-size: 11px; color: var(--pk-neutral-500); margin-top: 8px; }
.ok-r-wp-table { border: 1px solid var(--pk-neutral-200); border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.ok-r-wp-table table { width: 100%; border-collapse: collapse; }
.ok-r-wp-th { padding: 8px; font-size: 11px; text-align: left; color: var(--pk-neutral-500); }
.ok-r-wp-th-right { padding: 8px; font-size: 11px; text-align: right; color: var(--pk-neutral-500); }
.ok-r-wp-td { padding: 8px; font-size: 13px; }
.ok-r-wp-td-right { padding: 8px; font-size: 13px; text-align: right; font-weight: 500; }
.ok-r-wp-td-sm { padding: 8px; font-size: 12px; color: var(--pk-neutral-600); text-align: right; }
.ok-r-wp-td-sm-left { padding: 8px; font-size: 12px; color: var(--pk-neutral-600); }
.ok-r-wp-thead tr { background: var(--pk-neutral-50); }
.ok-r-wp-fehlend { border: 1px solid #fde68a; border-radius: 6px; padding: 10px; background: var(--pk-warning-bg, #fffbeb); margin-bottom: 12px; }
.ok-r-wp-fehlend-title { font-size: 12px; font-weight: 600; color: var(--pk-warning-dark); margin-bottom: 5px; }
.ok-r-wp-fehlend-li { font-size: 12px; color: var(--pk-warning); }
.ok-r-wp-auff-box { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-wp-empf-box { border: 1px solid #bbf7d0; border-radius: 8px; padding: 12px; background: var(--pk-success-light); margin-bottom: 12px; }
.ok-r-wp-empf-title { font-size: 12px; font-weight: 600; color: var(--pk-success); margin-bottom: 6px; }
.ok-r-wp-disclaimer { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-pruef-container { border: 1px solid var(--pk-neutral-200); border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.ok-r-pruef-header { background: var(--pk-primary-hover); color: var(--pk-white, #fff); padding: 10px 14px; font-size: 13px; font-weight: 600; }
.ok-r-pruef-table { width: 100%; border-collapse: collapse; }
.ok-r-pruef-th { padding: 8px; font-size: 11px; color: var(--pk-neutral-500); text-align: left; }
.ok-r-pruef-td { padding: 10px 8px; font-size: 13px; }
.ok-r-pruef-td-sm { padding: 10px 8px; font-size: 12px; color: var(--pk-neutral-600); }
.ok-r-pruef-td-muted { padding: 10px 8px; font-size: 12px; color: var(--pk-neutral-400); }
.ok-r-pruef-tr { border-bottom: 1px solid #f0f0f0; }
.ok-r-pruef-hinweis { padding: 0 8px 8px; font-size: 11px; color: var(--pk-warning); font-style: italic; }
.ok-r-pruef-bl-box { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 6px; padding: 12px; margin-bottom: 10px; }
.ok-r-pruef-bl-title { font-size: 12px; font-weight: 600; color: var(--pk-primary); margin-bottom: 6px; }
.ok-r-pruef-disclaimer { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-link-more { padding: 8px 0; font-size: 12px; text-align: center; }
.ok-r-link-primary { color: var(--primary); text-decoration: none; }
.ok-r-li-sm { font-size: 12px; }
.ok-r-li-mb { font-size: 12px; margin-bottom: 3px; }

/* Page-Title (Sprint 3) */
.pk-page-title { font-size: 20px; font-weight: 700; margin: 0 0 16px; color: var(--text, #1e293b); }
[data-theme="dark"] .pk-page-title { color: var(--text, #e2e8f0); }

/* Page-Hints (Sprint 3) */
.pk-hint-trigger { background: none; border: 1px solid var(--border, #e2e8f0); border-radius: 50%; width: 24px; height: 24px; padding: 3px; cursor: pointer; color: var(--text-muted, #64748b); display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; }
.pk-hint-trigger:hover { background: var(--surface, #f1f5f9); color: var(--primary, #6366f1); }
.pk-hint-popover { position: absolute; top: 32px; left: -8px; background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 8px; padding: 12px 16px; min-width: 260px; max-width: 340px; box-shadow: 0 4px 12px rgba(0,0,0,.1); z-index: 100; }
.pk-hint-popover ul { margin: 0; padding-left: 18px; }
.pk-hint-popover li { font-size: 13px; color: var(--text, #1e293b); margin-bottom: 6px; line-height: 1.4; }
.pk-hint-popover li:last-child { margin-bottom: 0; }
[data-theme="dark"] .pk-hint-popover { background: var(--surface, #1e293b); box-shadow: 0 4px 12px rgba(0,0,0,.3); }

/* ═══════════════════════════════════ */
/* ACCESSIBILITY                        */
/* ═══════════════════════════════════ */

/* Skip-Link */
.pk-skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--pk-primary);
  color: #fff;
  padding: 8px 16px;
  z-index: 10000;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: top 0.3s;
  border-radius: 0 0 8px 0;
}
.pk-skip-link:focus { top: 0; }

/* Global Focus-Visible */
:focus-visible {
  outline: 2px solid var(--pk-primary) !important;
  outline-offset: 2px !important;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.15) !important;
}

/* ═══════════════════════════════════ */
/* OBJEKT WERKZEUGE UTILITIES          */
/* ═══════════════════════════════════ */

/* Tool section heading (objekt.html Werkzeuge) */
.pk-tool-heading { margin: 0 0 6px; font-size: 16px; }
.pk-tool-desc { margin: 0 0 16px; font-size: 13px; color: var(--text-muted, #666); }
.pk-tool-result { display: none; margin-top: 16px; }
.pk-tool-btn { padding: 9px 20px; background: var(--primary); color: #fff; border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.pk-tool-btn:hover { opacity: 0.9; }
.pk-radio-label { font-size: 13px; display: flex; align-items: center; gap: 6px; cursor: pointer; }
.pk-hint-sm { font-weight: 400; color: var(--text-faint); }
.pk-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.pk-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.pk-flex-row { display: flex; gap: 20px; margin-bottom: 14px; }
.pk-flex-col { display: flex; flex-direction: column; gap: 24px; margin-top: 16px; }
.pk-table-simple { width: 100%; border-collapse: collapse; }
.pk-table-simple td { padding: 8px; font-size: 11px; color: var(--text-muted); }
.pk-table-simple td:last-child { text-align: right; }
.pk-text-danger { color: var(--red); }
.pk-list-none { list-style: none; margin: 0; padding: 0; }

/* Tool button variants */
.ok-wz-btn-primary { padding: 9px 20px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-wz-btn-primary-mt { padding: 9px 20px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; margin-top: 10px; }
.ok-wz-btn-danger { padding: 9px 22px; background: var(--pk-danger); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-wz-btn-dark { padding: 9px 22px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.ok-wz-btn-dark-mt { padding: 9px 22px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; margin-top: 12px; }
.ok-wz-btn-sm-primary { padding: 7px 16px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 12px; cursor: pointer; font-weight: 500; }
.ok-wz-btn-sm-secondary { padding: 7px 16px; background: var(--pk-neutral-100); color: var(--pk-neutral-700); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 12px; cursor: pointer; }
.ok-wz-btn-reset { padding: 9px 14px; background: var(--pk-neutral-100); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; cursor: pointer; }
.ok-wz-btn-copy { padding: 8px 18px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; margin-top: 8px; }
.ok-wz-btn-copy-sm { padding: 7px 16px; background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 12px; cursor: pointer; font-weight: 500; margin-top: 8px; }
.ok-wz-btn-copy-danger { padding: 8px 18px; background: var(--pk-danger); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; margin-top: 8px; }
.ok-wz-btn-copy-neutral { padding: 6px 14px; background: var(--pk-neutral-100); border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 12px; cursor: pointer; margin-top: 6px; }

/* Tool label + hint */
.ok-wz-label-hint { font-size: 13px; font-weight: 500; display: block; margin-bottom: 6px; }
.ok-wz-label-hint-sub { font-weight: 400; color: var(--pk-neutral-400); }
.ok-wz-label-sm { font-size: 12px; font-weight: 500; display: block; margin-bottom: 3px; }
.ok-wz-status-saved { display: none; margin-left: 10px; font-size: 13px; color: var(--pk-success); font-weight: 500; }
.ok-wz-desc-short { margin: 0 0 6px; font-size: 13px; color: var(--text-muted, #666); }
.ok-wz-desc-short-4 { margin: 0 0 4px; font-size: 13px; color: var(--text-muted, #666); }
.ok-wz-hint-desc { margin: 0 0 20px; font-size: 12px; color: var(--pk-neutral-400); }

/* Tool upload areas */
.ok-wz-upload { border: 2px dashed #cbd5e1; border-radius: 8px; padding: 24px; text-align: center; cursor: pointer; background: var(--pk-neutral-50); transition: border-color 0.2s; }
.ok-wz-upload-sm { border: 2px dashed #cbd5e1; border-radius: 8px; padding: 20px; text-align: center; cursor: pointer; background: var(--pk-neutral-50); }
.ok-wz-upload-icon { font-size: 32px; margin-bottom: 8px; }
.ok-wz-upload-icon-sm { font-size: 28px; margin-bottom: 6px; }
.ok-wz-upload-text { font-size: 14px; font-weight: 500; color: var(--pk-neutral-700); }
.ok-wz-upload-text-sm { font-size: 13px; font-weight: 500; }
.ok-wz-upload-hint { font-size: 12px; color: var(--pk-neutral-500); margin-top: 4px; }
.ok-wz-upload-hint-sm { font-size: 12px; color: var(--pk-neutral-500); margin-top: 3px; }
.ok-wz-upload-hint-2 { font-size: 12px; color: var(--pk-neutral-500); margin-top: 2px; }

/* Tool-specific layout classes */
.ok-wz-hint-warning { background: var(--pk-warning-light); border: 1px solid #fde68a; border-radius: 6px; padding: 8px 12px; margin-bottom: 16px; font-size: 12px; color: var(--pk-warning-dark); }
.ok-wz-param-box { background: var(--pk-neutral-50); border-radius: 8px; padding: 14px; margin-bottom: 16px; }
.ok-wz-param-title { font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.ok-wz-input-euro { width: 100%; padding: 7px 45px 7px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; box-sizing: border-box; }
.ok-wz-euro-suffix { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 11px; color: var(--pk-neutral-400); }
.ok-wz-pos-relative { position: relative; }
.ok-wz-peters-live { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 8px; padding: 12px; margin-bottom: 16px; }
.ok-wz-peters-label { font-size: 12px; font-weight: 600; color: var(--pk-primary); margin-bottom: 6px; }
.ok-wz-peters-text { font-size: 13px; color: var(--pk-primary-hover); }
.ok-wz-flex-gap-10 { display: flex; gap: 10px; margin-bottom: 12px; }
.ok-wz-flex-gap-8-mt { margin-top: 8px; display: flex; gap: 8px; }
.ok-wz-mb-12 { margin-bottom: 12px; }
.ok-wz-textarea-ro { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; background: var(--pk-neutral-50); box-sizing: border-box; resize: vertical; line-height: 1.6; }
.ok-wz-textarea-ro-mono { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; background: var(--pk-neutral-50); box-sizing: border-box; resize: vertical; font-family: monospace; }
.ok-wz-textarea-bericht { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 12px; background: #f9f9f9; box-sizing: border-box; resize: none; }
.ok-wz-checkbox-row { display: flex; gap: 20px; margin-bottom: 14px; }
.ok-wz-checkbox-label { font-size: 13px; display: flex; align-items: center; gap: 6px; cursor: pointer; }
.ok-wz-checkbox-label-8 { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.ok-wz-pt-20 { padding-top: 20px; }

/* Preview/file display */
.ok-wz-scan-vorschau { margin-top: 12px; }
.ok-wz-scan-img { max-width: 100%; max-height: 200px; border-radius: 6px; border: 1px solid var(--pk-neutral-200); }
.ok-wz-datei-name { margin-top: 8px; font-size: 13px; color: var(--pk-success); }

/* Onboarding inline */
.ok-onboard-icon { font-size: 18px; }
.ok-onboard-count { font-size: 12px; font-weight: 600; }

/* Render: Ergebnis-Karten (JS template literals) */
.ok-r-card { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: #fff; margin-bottom: 12px; }
.ok-r-card-neutral { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 12px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-card-neutral-sm { border: 1px solid var(--pk-neutral-200); border-radius: 6px; padding: 10px; background: var(--pk-neutral-50); margin-bottom: 12px; }
.ok-r-banner-danger { background: var(--pk-danger-bg, #fef2f2); border: 2px solid #dc2626; border-radius: 8px; padding: 14px; margin-bottom: 12px; }
.ok-r-banner-danger-sm { background: var(--pk-danger-bg, #fef2f2); border: 2px solid #dc2626; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ok-r-banner-danger-1 { background: var(--pk-danger-bg, #fef2f2); border: 1px solid #fecaca; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ok-r-banner-warning { background: var(--pk-warning-bg, #fffbeb); border: 2px solid #f59e0b; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ok-r-banner-warning-1 { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-radius: 6px; padding: 10px; margin-bottom: 12px; }
.ok-r-banner-primary { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 6px; padding: 10px; margin-bottom: 12px; }
.ok-r-banner-primary-strong { background: var(--pk-primary-50); border: 2px solid #2563eb; border-radius: 8px; padding: 14px; }
.ok-r-banner-success { background: var(--pk-success-light); border: 1px solid #bbf7d0; border-radius: 6px; padding: 8px 12px; margin-bottom: 12px; font-size: 12px; color: var(--pk-success); }
.ok-r-banner-success-lg { background: var(--pk-success-light); border: 1px solid #bbf7d0; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.ok-r-banner-success-text { background: var(--pk-success-light); border: 1px solid #bbf7d0; border-radius: 6px; padding: 10px; font-size: 12px; color: var(--pk-success); }
.ok-r-title-lg { font-size: 16px; font-weight: 700; }
.ok-r-title-md { font-size: 15px; font-weight: 700; }
.ok-r-title-sm { font-size: 14px; font-weight: 600; }
.ok-r-title-xs { font-size: 13px; font-weight: 600; }
.ok-r-text-sm { font-size: 13px; }
.ok-r-text-xs { font-size: 12px; color: var(--pk-neutral-600); margin-top: 2px; }
.ok-r-text-xxs { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-text-xs-mt { font-size: 12px; color: var(--pk-neutral-600); margin-top: 4px; }
.ok-r-text-xxs-mt { font-size: 11px; color: var(--pk-neutral-400); margin-top: 4px; }
.ok-r-text-xs-3 { font-size: 12px; color: var(--pk-neutral-600); margin-top: 3px; }
.ok-r-meta-label { font-size: 11px; font-weight: 600; color: var(--pk-neutral-400); margin-bottom: 4px; }
.ok-r-meta-label-sm { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 2px; }
.ok-r-meta-label-3 { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 3px; }
.ok-r-meta-value { font-size: 14px; font-weight: 600; }
.ok-r-meta-value-lg { font-size: 15px; font-weight: 700; }
.ok-r-meta-value-xl { font-size: 18px; font-weight: 700; color: #111; }
.ok-r-meta-value-xs { font-size: 13px; font-weight: 600; }
.ok-r-flex-row { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f0f0f0; }
.ok-r-flex-center { display: flex; align-items: center; gap: 10px; }
.ok-r-flex-icon { font-size: 16px; flex-shrink: 0; }
.ok-r-flex-icon-lg { font-size: 24px; }
.ok-r-flex-icon-xl { font-size: 32px; }
.ok-r-flex-icon-alert { font-size: 18px; flex-shrink: 0; }
.ok-r-flex-body { flex: 1; }
.ok-r-flex-aside { font-size: 11px; color: var(--pk-neutral-400); flex-shrink: 0; }
.ok-r-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ok-r-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.ok-r-grid-3col { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }
.ok-r-flex-alert { display: flex; gap: 8px; align-items: flex-start; }
.ok-r-table { width: 100%; border-collapse: collapse; }
.ok-r-table th { padding: 8px; font-size: 11px; text-align: left; color: var(--pk-neutral-500); }
.ok-r-table th.right { text-align: right; }
.ok-r-table td { padding: 8px; font-size: 13px; }
.ok-r-table td.right { text-align: right; }
.ok-r-table td.sm { font-size: 12px; color: var(--pk-neutral-600); }
.ok-r-table td.right-sm { text-align: right; font-size: 12px; color: var(--pk-neutral-600); }
.ok-r-table td.fw { font-weight: 500; }
.ok-r-table tr.row-border { border-bottom: 1px solid #f0f0f0; }
.ok-r-table thead tr { background: var(--pk-neutral-50); }
.ok-r-list-none { margin: 0; padding-left: 0; list-style: none; }
.ok-r-list-li-sm { font-size: 12px; margin-bottom: 3px; }
.ok-r-list-li-sm-4 { font-size: 12px; margin-bottom: 4px; }
.ok-r-list-li-md { font-size: 13px; margin-bottom: 5px; color: #111; }
.ok-r-list-li-warn { font-size: 12px; margin-bottom: 3px; color: var(--pk-warning); }
.ok-r-list-li-danger { font-size: 12px; margin-bottom: 3px; color: var(--pk-danger); font-weight: 500; }
.ok-r-warn-row { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px solid #fecaca; font-size: 12px; color: var(--pk-danger); }
.ok-r-frist-row { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f0f0f0; }
.ok-r-frist-check { width: 16px; height: 16px; cursor: pointer; flex-shrink: 0; }
.ok-r-frist-title { font-size: 13px; font-weight: 500; }
.ok-r-frist-meta { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-frist-hint { font-size: 11px; color: var(--pk-neutral-600); font-style: italic; }
.ok-r-disclaimer { font-size: 11px; color: var(--pk-neutral-400); }
.ok-r-disclaimer-italic { font-size: 12px; color: var(--pk-neutral-500); font-style: italic; }
.ok-r-rechtsgrund { font-size: 12px; color: var(--pk-neutral-500); margin-bottom: 8px; }
.ok-r-rechtsgrund-6 { font-size: 12px; color: var(--pk-neutral-500); margin-bottom: 6px; }
.ok-r-section-title { font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.ok-r-section-title-bold { font-size: 12px; font-weight: 700; margin-bottom: 6px; }
.ok-r-section-label { font-size: 12px; font-weight: 500; color: var(--pk-neutral-700); margin-bottom: 8px; }
.ok-r-section-hint { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 8px; }
.ok-r-section-hint-4 { font-size: 11px; color: var(--pk-neutral-400); margin-bottom: 4px; }
.ok-r-success-sm { font-size: 12px; color: var(--pk-success); font-weight: 500; }
.ok-r-success-status { color: var(--pk-success); font-weight: 500; font-size: 13px; }
.ok-r-summary { font-size: 12px; color: var(--pk-neutral-500); margin-top: 4px; }
.ok-r-summary-8 { font-size: 11px; color: var(--pk-neutral-500); margin-top: 8px; }
.ok-r-text-right { text-align: right; }
.ok-r-mt-8 { margin-top: 8px; }
.ok-r-mt-10 { margin-top: 10px; }
.ok-r-mt-12 { margin-top: 12px; }
.ok-r-mb-6 { margin-bottom: 6px; }
.ok-r-mb-8 { margin-bottom: 8px; }
.ok-r-mb-10 { margin-bottom: 10px; }
.ok-r-mb-12 { margin-bottom: 12px; }
.ok-r-header-dark { background: var(--pk-primary-hover); color: var(--pk-white, #fff); padding: 10px 14px; font-size: 13px; font-weight: 600; }
.ok-r-hint-bundesland { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 6px; padding: 12px; margin-bottom: 10px; }
.ok-r-hint-bundesland-title { font-size: 12px; font-weight: 600; color: var(--pk-primary); margin-bottom: 6px; }
.ok-r-table-wrap { border: 1px solid var(--pk-neutral-200); border-radius: 8px; overflow: hidden; margin-bottom: 12px; }
.ok-r-nk-status-name { font-size: 13px; font-weight: 500; }
.ok-r-nk-status-reason { font-size: 12px; color: var(--pk-neutral-600); margin-top: 2px; }
.ok-r-grid-2-gap-12 { display: flex; gap: 12px; margin-bottom: 12px; }

/* Error/loading inline states */
.ok-error-text { color: var(--pk-danger); }
.ok-link-back { color: var(--primary); font-size: 13px; }
.ok-more-link { padding: 8px 0; font-size: 12px; text-align: center; }
.ok-more-link a { color: var(--primary); text-decoration: none; }
.ok-warning-text { color: var(--pk-warning); }

/* Select styled like pk-input-full */
.ok-wz-select { width: 100%; padding: 8px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.ok-wz-select-sm { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }

/* WP kosten felder grid */
.ok-wz-grid-2-gap-10 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.pk-resize-v { resize: vertical; }

/* ═══════════════════════════════════ */
/* OBJEKTAKTE INLINE-STYLE REPLACEMENTS */
/* ═══════════════════════════════════ */

/* Kennzahlen table */
.oa-kz-table { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #e2e8f0; border: 1px solid var(--pk-neutral-200); border-radius: 8px; overflow: hidden; }
.oa-kz-header { padding: 8px 12px; background: var(--pk-neutral-50); font-weight: 700; font-size: 12px; color: var(--pk-neutral-500); }
.oa-kz-cell { padding: 8px 12px; background: #fff; font-size: 13px; }
.oa-kz-cell-flex { padding: 8px 12px; background: #fff; font-size: 13px; display: flex; align-items: center; gap: 6px; }
.oa-kz-source { font-size: 10px; color: var(--pk-neutral-400); }
.oa-kz-value { flex: 1; font-weight: 600; }
.oa-kz-edit-btn { background: none; border: none; cursor: pointer; font-size: 14px; }

/* Beschluss card */
.oa-beschluss-card { border: 1px solid var(--border); border-radius: 8px; padding: 12px; }
.oa-beschluss-header { display: flex; justify-content: space-between; align-items: start; gap: 8px; margin-bottom: 4px; }
.oa-beschluss-text { font-size: 13px; margin-bottom: 4px; }
.oa-beschluss-footer { display: flex; justify-content: space-between; align-items: center; }
.oa-beschluss-status-select { font-size: 11px; padding: 2px 6px; border-radius: 4px; border: 1px solid var(--pk-neutral-300); min-width: 90px; }
.oa-te-badge { background: var(--pk-primary-light); color: var(--pk-primary); font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-left: 6px; }
.oa-btn-umsetzen { font-size: 11px; background: var(--primary); color: var(--pk-white, #fff); padding: 3px 10px; }
.oa-btn-verlauf { font-size: 11px; padding: 3px 10px; }

/* Review panel */
.oa-review-actions { display: flex; gap: 8px; margin-bottom: 10px; }
.oa-review-group-label { font-size: 12px; font-weight: 600; color: var(--pk-neutral-500); margin: 10px 0 6px; }
.oa-review-item { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid #e2e8f0; }
.oa-review-save-row { margin-top: 12px; text-align: right; }
.oa-review-save-btn { background: var(--pk-primary); color: var(--pk-white, #fff); padding: 6px 20px; font-size: 12px; }
.oa-review-erledigt-btn { font-size: 11px; padding: 4px 10px; background: var(--pk-neutral-100); }

/* Verlauf modal */
.oa-verlauf-modal { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 999; display: flex; align-items: center; justify-content: center; }
.oa-verlauf-box { background: #fff; border-radius: 12px; max-width: 500px; width: 90%; max-height: 80vh; overflow: auto; }
.oa-verlauf-content { padding: 16px; }
.oa-verlauf-entry { padding: 8px 0; border-bottom: 1px solid #f1f5f9; font-size: 13px; }

/* Timeline */
.oa-timeline-row { display: flex; gap: 16px; position: relative; }
.oa-timeline-line { display: flex; flex-direction: column; align-items: center; width: 20px; flex-shrink: 0; }
.oa-timeline-dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid #fff; z-index: 1; flex-shrink: 0; }
.oa-timeline-connector { width: 2px; flex: 1; background: #e2e8f0; min-height: 20px; }
.oa-timeline-header { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.oa-timeline-stats { display: flex; gap: 6px; align-items: center; font-size: 11px; }
.oa-timeline-detail-item { padding: 6px 0; border-top: 1px solid #f1f5f9; font-size: 12px; display: flex; align-items: start; gap: 8px; }
.oa-timeline-status-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }

/* Vertragsfristen */
.oa-vf-card { border: 1px solid var(--border); border-radius: 8px; padding: 12px; }
.oa-vf-header { display: flex; justify-content: space-between; align-items: start; gap: 8px; margin-bottom: 4px; }
.oa-vf-partner { font-size: 13px; font-weight: 600; }
.oa-vf-typ { font-size: 12px; color: var(--pk-neutral-500); margin-left: 8px; }
.oa-vf-details { display: flex; gap: 16px; font-size: 12px; color: var(--pk-neutral-500); flex-wrap: wrap; }
.oa-vf-badge-danger { background: var(--pk-danger-bg, #fee2e2); color: var(--pk-danger-hover); font-size: 10px; padding: 1px 6px; border-radius: 4px; }
.oa-vf-badge-neutral { background: var(--pk-neutral-100); color: var(--pk-neutral-500); font-size: 10px; padding: 1px 6px; border-radius: 4px; }
.oa-vf-tage-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; }

/* Bauteil card */
.oa-bauteil-card { border: 1px solid var(--border); border-radius: 8px; padding: 12px; cursor: pointer; transition: all .15s; }
.oa-bauteil-header { display: flex; align-items: center; gap: 6px; }
.oa-bauteil-icon { font-size: 20px; }
.oa-bauteil-label { font-size: 13px; font-weight: 600; }
.oa-bauteil-detail { font-size: 11px; margin-top: 6px; }
.oa-bauteil-eigentum-badge { display: inline-block; padding: 1px 6px; border-radius: 4px; font-weight: 600; font-size: 10px; }
.oa-bauteil-frage-link { font-size: 11px; color: var(--primary); margin-top: 6px; }
.oa-bauteil-meta { color: var(--pk-neutral-500); }
.oa-bauteil-warn { color: var(--pk-warning); font-size: 10px; margin-top: 2px; }
.oa-bauteil-quelle { color: var(--pk-neutral-400); font-size: 10px; }
.oa-bauteil-empty { font-size: 11px; color: var(--pk-neutral-400); margin-top: 6px; }
.oa-btn-verifizieren { font-size: 10px; background: var(--pk-neutral-100); color: var(--pk-neutral-600); border: 1px solid var(--pk-neutral-200); padding: 2px 8px; border-radius: 4px; cursor: pointer; }
.oa-btn-verifizieren:hover { background: var(--pk-success-light, #dcfce7); color: var(--pk-success, #16a34a); border-color: var(--pk-success, #16a34a); }
.oa-btn-kein-widerspruch { font-size: 10px; background: none; color: var(--pk-neutral-500); border: 1px solid var(--pk-neutral-300); padding: 1px 6px; border-radius: 3px; cursor: pointer; margin-left: 6px; }
.oa-btn-kein-widerspruch:hover { background: var(--pk-neutral-100); }

/* Bauteil-Antwort */
.oa-bauteil-loading { display: flex; align-items: center; gap: 8px; padding: 16px; background: var(--pk-neutral-50); border-radius: 8px; }
.oa-bauteil-result { padding: 16px; background: var(--pk-neutral-50); border-radius: 8px; position: relative; }
.oa-bauteil-close { position: absolute; top: 8px; right: 8px; background: none; border: none; cursor: pointer; font-size: 16px; color: var(--pk-neutral-400); }
.oa-bauteil-meta-line { font-size: 13px; font-weight: 600; margin-bottom: 8px; }
.oa-bauteil-text { font-size: 13px; line-height: 1.7; white-space: pre-wrap; }
.oa-bauteil-error { padding: 12px; background: var(--pk-danger-bg, #fef2f2); color: var(--pk-danger-hover); border-radius: 8px; font-size: 13px; }

/* Radar */
.oa-radar-card { border: 1px solid var(--border); border-radius: 8px; padding: 12px; }
.oa-radar-header { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.oa-radar-icon { font-size: 14px; }
.oa-radar-label { font-size: 13px; font-weight: 600; }
.oa-radar-reason { font-size: 12px; margin-bottom: 4px; }

/* Prognose */
.oa-prognose-loading { display: flex; align-items: center; gap: 8px; }
.oa-spinner-sm { width: 16px; height: 16px; border-width: 2px; }

/* Wissensgraph Muster */
.oa-muster-actions { margin-bottom: 12px; display: flex; gap: 8px; align-items: center; }
.oa-muster-btn { font-size: 11px; background: var(--primary); color: var(--pk-white, #fff); }
.oa-muster-result { font-size: 13px; line-height: 1.7; white-space: pre-wrap; background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 16px; }

/* Uebernahme */
.oa-uebernahme-btn { font-size: 11px; background: var(--primary); color: var(--pk-white, #fff); }
.oa-uebernahme-items { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.oa-uebernahme-anfordern-btn { width: 100%; background: var(--primary); color: var(--pk-white, #fff); }

/* Duplikat modal */
.oa-duplikat-existing { margin-top: 6px; font-size: 12px; color: var(--pk-neutral-500); }
.oa-duplikat-confirm { font-size: 13px; margin-bottom: 16px; }
.oa-btn-replace { background: #c2410c; }

/* Wissensbank */
.oa-wb-facts-label { font-size: 12px; font-weight: 600; color: var(--text-muted); margin-bottom: 6px; }
.oa-wb-fact-item { padding: 6px 10px; background: var(--pk-neutral-50); border-radius: 6px; font-size: 13px; }
.oa-wb-fact-key { color: var(--text-muted); font-size: 11px; }
.oa-wb-empty { font-size: 13px; color: var(--pk-neutral-400); padding: 8px; }
.oa-wb-group-label { font-size: 12px; font-weight: 700; color: var(--pk-neutral-500); margin: 12px 0 6px; display: flex; align-items: center; gap: 6px; }
.oa-wb-bauteil { padding: 8px 10px; background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 6px; cursor: pointer; font-size: 12px; }
.oa-wb-bauteil-label { font-weight: 600; }
.oa-wb-snr-item { padding: 6px 10px; background: var(--pk-neutral-50); border-radius: 6px; font-size: 13px; margin-bottom: 4px; }
.oa-wb-frist-item { padding: 8px 10px; background: var(--pk-neutral-50); border-radius: 6px; margin-bottom: 4px; font-size: 13px; }

/* Dienstleister */
.oa-dl-group { margin-bottom: 14px; }
.oa-dl-group-label { font-size: 12px; font-weight: 700; color: var(--pk-neutral-500); margin-bottom: 6px; text-transform: uppercase; letter-spacing: .03em; }
.oa-dl-card { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 8px; margin-bottom: 6px; }
.oa-dl-info { flex: 1; }
.oa-dl-name { font-weight: 600; font-size: 14px; }
.oa-dl-contact { font-size: 12px; color: var(--pk-neutral-500); margin-top: 2px; }
.oa-dl-link { color: var(--primary); text-decoration: none; }
.oa-dl-link-danger { color: var(--pk-danger-hover); text-decoration: none; font-weight: 600; }
.oa-dl-meta { font-size: 11px; color: var(--pk-neutral-400); margin-top: 3px; }
.oa-dl-actions { display: flex; gap: 4px; flex-shrink: 0; }
.oa-dl-action-btn { font-size: 10px; padding: 3px 8px; }
.oa-dl-action-btn-danger { font-size: 10px; padding: 3px 8px; color: var(--pk-danger-hover); }
.oa-dl-error { color: var(--pk-danger-hover); font-size: 13px; }

/* OCR import */
.oa-ocr-result-label { display: flex; gap: 8px; padding: 8px 10px; background: var(--pk-success-light); border: 1px solid #86efac; border-radius: 8px; margin-bottom: 6px; cursor: pointer; font-size: 13px; }
.oa-ocr-link { font-size: 11px; color: var(--primary); text-decoration: none; }
.oa-ocr-empty { color: var(--pk-neutral-400); font-size: 13px; text-align: center; padding: 12px; }

/* Compliance */
.oa-compliance-btn { margin-top: 8px; font-size: 11px; }
.oa-compliance-desc { font-size: 11px; color: var(--pk-neutral-400); margin-top: 2px; }
.oa-compliance-error { color: var(--pk-neutral-400); font-size: 12px; }

/* Upload-Ergebnis */
.oa-ergebnis-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 12px; }
.oa-ergebnis-title-row { display: flex; align-items: center; gap: 8px; }
.oa-ergebnis-title { font-size: 15px; }
.oa-ergebnis-close { background: none; border: none; cursor: pointer; padding: 4px; color: var(--text-muted); }
.oa-ergebnis-summary { font-size: 13px; color: var(--text-secondary); margin-bottom: 12px; line-height: 1.5; }
.oa-ergebnis-highlights { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.oa-ergebnis-section { margin-bottom: 10px; }
.oa-ergebnis-section-label { font-size: 12px; font-weight: 600; color: var(--text-muted); margin-bottom: 4px; }
.oa-ergebnis-list { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; }
.oa-ergebnis-warnings { background: var(--pk-warning-light, #fef3c7); border-radius: 8px; padding: 10px 12px; margin-bottom: 10px; }
.oa-ergebnis-warn-header { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--pk-warning, #d97706); margin-bottom: 4px; }
.oa-ergebnis-warn-text { font-size: 13px; color: var(--pk-warning, #d97706); margin-top: 3px; }
.oa-ergebnis-steps { display: flex; flex-wrap: wrap; gap: 6px; }
.oa-ergebnis-step { font-size: 12px; padding: 4px 10px; background: var(--pk-primary-light, #e8f0fe); color: var(--pk-primary, #1a56db); border-radius: 6px; }

/* Honorare */
.oa-honorar-grundverguetung { background: var(--bg-subtle); border: 1px solid var(--border); border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.oa-honorar-title { font-weight: 700; font-size: 13px; margin-bottom: 6px; }
.oa-honorar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; font-size: 13px; }
.oa-honorar-sonder-title { font-weight: 700; font-size: 13px; margin-bottom: 8px; }
.oa-honorar-item { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.oa-honorar-item-desc { font-weight: 600; font-size: 13px; }
.oa-honorar-item-trigger { font-size: 11px; color: var(--text-muted); }
.oa-honorar-item-value { font-weight: 700; color: var(--pk-warning); font-size: 13px; }
.oa-honorar-zeit-title { font-weight: 700; font-size: 13px; margin: 12px 0 8px; }
.oa-honorar-zeit-item { padding: 6px 0; font-size: 13px; }

/* Sammel-Upload */
.oa-sammel-card { margin-bottom: 8px; display: flex; align-items: center; gap: 12px; }
.oa-sammel-cb { width: 16px; height: 16px; accent-color: var(--primary); }
.oa-sammel-select { border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; font-size: 12px; font-family: inherit; }
.oa-sammel-actions { display: flex; gap: 8px; margin-top: 12px; }

/* Bauteil analyse buttons */
.oa-analyse-btn-row { margin-bottom: 12px; grid-column: 1 / -1; }
.oa-analyse-btn-row-disabled { margin-bottom: 12px; grid-column: 1 / -1; padding: 10px 14px; background: var(--pk-neutral-50); border: 1px solid var(--border); border-radius: 8px; }
.oa-analyse-success { display: flex; align-items: center; gap: 8px; grid-column: 1 / -1; padding: 12px; background: var(--pk-success-light); border-radius: 8px; font-size: 13px; }

/* Dok slot EMPFOHLEN badge */
.oa-empfohlen-badge { margin-left: 6px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; background: var(--pk-primary-light); color: var(--pk-primary); padding: 2px 8px; border-radius: 4px; }

/* Strassenhint */
.oa-strasse-hint { font-size: 11px; color: var(--pk-neutral-400); margin-top: 2px; }

/* Dokument warnings */
.oa-dok-warn-expiring { font-size: 11px; color: #a16207; background: #fef9c3; padding: 3px 8px; border-radius: 4px; margin-top: 4px; }
.oa-dok-valid { font-size: 11px; color: var(--pk-success-dark); }

/* Wissensbank grid */
.oa-wb-grid { display: grid; gap: 4px; }

/* FAQ section */
.oa-faq-category { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--primary); margin: 16px 0 8px; }
.oa-faq-details { margin-bottom: 8px; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.oa-faq-summary { padding: 10px 14px; font-size: 13px; font-weight: 600; cursor: pointer; background: var(--bg); list-style: none; }
.oa-faq-answer { padding: 10px 14px; font-size: 13px; line-height: 1.6; color: var(--text); }
.oa-faq-quelle { margin-top: 8px; font-size: 11px; color: var(--text-muted); }
.oa-faq-empty { text-align: center; padding: 20px; color: var(--text-muted); font-size: 13px; }

/* Wissensgraph timeline */
.oa-wg-monats-label { font-size: 11px; font-weight: 700; color: var(--pk-neutral-400); text-transform: uppercase; letter-spacing: .06em; padding: 10px 0 4px; }
.oa-wg-event { display: flex; align-items: flex-start; gap: 10px; padding: 8px 10px; margin-bottom: 2px; background: var(--surface); border-radius: 0 6px 6px 0; cursor: pointer; }
.oa-wg-typ-badge { font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 4px; }
.oa-wg-event-label { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oa-wg-status-dot-sm { display: inline-block; width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; vertical-align: middle; }
.oa-wg-entity-group { margin-bottom: 14px; }
.oa-wg-entity-group-header { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.oa-wg-entity-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.oa-wg-entity-group-label { font-size: 12px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; }
.oa-wg-entity-count { font-size: 11px; color: var(--pk-neutral-400); margin-left: auto; }
.oa-wg-entity-item { display: flex; align-items: center; gap: 8px; padding: 7px 10px; background: var(--pk-neutral-50); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.oa-wg-entity-label { flex: 1; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oa-wg-entity-date { font-size: 11px; color: var(--pk-neutral-400); flex-shrink: 0; }
.oa-wg-entity-arrow { color: #cbd5e1; font-size: 12px; }
.oa-wg-beziehung { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--surface); border: 1px solid var(--border); border-radius: 6px; }
.oa-wg-bez-pfeil { font-size: 14px; color: var(--pk-neutral-400); }
.oa-wg-bez-label { font-size: 11px; color: var(--pk-neutral-500); background: var(--pk-neutral-100); padding: 2px 6px; border-radius: 4px; }
.oa-wg-bez-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.oa-wg-bez-name { font-size: 13px; flex: 1; }
.oa-wg-bez-kontext { font-size: 11px; color: var(--pk-neutral-400); max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oa-wg-search-result { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--pk-neutral-50); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.oa-wg-search-count { font-size: 12px; color: var(--pk-neutral-500); margin-bottom: 8px; }

/* Wissensgraph Statistik */
.oa-wg-stat-card { padding: 10px 14px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; }
.oa-wg-stat-label { font-size: 10px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .03em; }
.oa-wg-stat-value { font-size: 20px; font-weight: 800; }

/* ═══════════════════════════════════ */
/* INLINE-STYLE ELIMINATION v1.6.1     */
/* ═══════════════════════════════════ */
.pk-spin-lg { width: 32px; height: 32px; border-width: 3px; margin-bottom: 20px; }
.pk-kz-bar { display: none; padding: 8px 20px; background: var(--pk-primary-50); border-bottom: 1px solid #bfdbfe; flex-shrink: 0; }
.pk-kz-inner { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pk-kz-label { font-size: 11px; font-weight: 700; color: var(--pk-primary); text-transform: uppercase; letter-spacing: .04em; }
.pk-kz-field { font-size: 12px; color: var(--pk-neutral-800); display: flex; align-items: center; gap: 4px; }
.pk-kz-input { width: 90px; border: 1px solid #bfdbfe; border-radius: 5px; padding: 3px 6px; font-size: 12px; font-family: inherit; }
.pk-kz-save-btn { background: var(--pk-primary); color: var(--pk-white, #fff); border: none; border-radius: 5px; padding: 4px 10px; font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; }
.pk-kz-status { font-size: 11px; color: var(--pk-success); display: none; }
.pk-flex-center-wrap { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.pk-was-jetzt { margin-top: 20px; padding: 16px; background: var(--pk-success-light); border-radius: 8px; border: 1px solid #bbf7d0; text-align: left; }
.pk-was-jetzt-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.pk-was-jetzt-btn { padding: 8px 14px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; background: white; cursor: pointer; font-family: inherit; font-size: 13px; }
.pk-was-jetzt-link { padding: 8px 14px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; background: white; text-decoration: none; color: inherit; font-size: 13px; display: inline-block; }
.pk-panel-right-topcount { font-size: 11px; color: #475569; }
.pk-objcheck-panel { display: none; padding: 12px 16px; border-bottom: 1px solid #1e293b; }
.pk-objcheck-label { font-size: 11px; font-weight: 700; color: var(--pk-neutral-400); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.pk-objcheck-content { font-size: 11px; color: #cbd5e1; }
.pk-beschluss-check { padding: 4px 12px; font-size: 10px; color: var(--pk-neutral-500); border-top: 1px solid #1e293b; display: none; }
.pk-panel-section-cta { padding: 14px 16px; }
.pk-san-filter { display: flex; gap: 4px; margin-bottom: 12px; }
.pk-upload-zone-icon { font-size: 24px; margin-bottom: 6px; }
.pk-upload-zone-label { font-size: 13px; font-weight: 600; }
.pk-upload-zone-hint { font-size: 11px; color: var(--text-muted); margin-top: 4px; }
.pk-upload-privacy { font-size: 11px; color: var(--text-muted); margin-top: 8px; }
.pk-san-how-it-works { margin-top: 32px; text-align: left; max-width: 440px; margin-left: auto; margin-right: auto; }
.pk-san-how-title { font-size: 12px; font-weight: 700; color: var(--text-muted); margin-bottom: 10px; }
.pk-san-how-text { font-size: 13px; color: var(--text-muted); line-height: 1.8; }
.pk-vz-page-title { font-size: 22px; font-weight: 700; margin-bottom: 16px; }
.pk-vz-loading { text-align: center; padding: 40px; }
.pk-vz-footer { text-align: center; padding: 24px; font-size: 12px; color: var(--pk-neutral-400); }
.pk-vz-footer a { color: var(--pk-neutral-500); }
.pk-flex-spacer { flex: 1; }
.pk-notiz-row-inline { margin: 0; }
.pk-vz-no-result { color: var(--text-muted); }
.pk-vz-dropdown-sub { font-size: 10px; opacity: .5; }
.pk-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.5); z-index: 1000; display: flex; align-items: center; justify-content: center; }
.pk-modal-content { background: white; border-radius: 12px; max-width: 800px; width: 90%; max-height: 80vh; overflow-y: auto; padding: 20px; }
.pk-modal-header { display: flex; justify-content: space-between; margin-bottom: 12px; }
.pk-modal-close { border: none; background: none; font-size: 20px; cursor: pointer; }
.pk-modal-pre { white-space: pre-wrap; font-size: 12px; line-height: 1.6; max-height: 60vh; overflow-y: auto; }
.pk-da-qr-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.pk-da-cl-score { font-weight: 400; font-size: 13px; color: var(--text-muted); }
.pk-da-handlung-box { background: var(--primary-subtle); padding: 12px 16px; border-radius: 10px; border: 1px solid color-mix(in srgb, var(--primary) 20%, transparent); }
.pk-da-handlung-label { font-size: 12px; text-transform: uppercase; color: var(--primary); font-weight: 700; }
.pk-da-handlung-text { margin-top: 4px; font-size: 14px; }
.pk-da-persp-intro { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.pk-da-loading-text { margin-top: 10px; font-size: 13px; color: var(--text-muted); }
.pk-da-bm-vs { font-size: 20px; color: var(--text-muted); }
.pk-da-bm-bewertung { margin-left: auto; }
.pk-da-bm-detail { font-size: 11px; color: var(--text-muted); }
.pk-da-frist-item { padding: 6px 0; border-bottom: 1px solid var(--border); }
.pk-da-frist-konsequenz { font-size: 12px; color: var(--pk-danger); }
.pk-da-absicherung-text { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.pk-da-schritt-row { padding: 6px 0; border-bottom: 1px solid var(--border); display: flex; gap: 8px; align-items: flex-start; }
.pk-da-schritt-nr { font-weight: 700; color: var(--primary); }
.pk-da-schritt-meta { font-size: 11px; color: var(--text-muted); }
.pk-da-zusammenfassung-vw { background: var(--primary-subtle); padding: 12px 16px; border-radius: 10px; margin-top: 16px; font-size: 14px; }
.pk-da-zusammenfassung-et { background: var(--pk-success-light); padding: 12px 16px; border-radius: 10px; margin-top: 16px; font-size: 14px; }
.pk-da-zusammenfassung-re { background: var(--pk-warning-light); padding: 12px 16px; border-radius: 10px; margin-top: 16px; font-size: 14px; }
.pk-da-bewertung-wrap { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.pk-da-score-label { font-size: 14px; }
.pk-da-staerken { margin-bottom: 6px; }
.pk-da-staerken-label { font-size: 12px; color: var(--pk-success); font-weight: 700; }
.pk-da-schwaechen-label { font-size: 12px; color: var(--pk-danger); font-weight: 700; }
.pk-da-normen-mb { margin-bottom: 4px; }
.pk-da-normen-label { font-size: 12px; font-weight: 700; }
.pk-da-normen-label-danger { font-size: 12px; font-weight: 700; color: var(--pk-danger); }
.pk-da-gesamt-wrap { background: var(--bg); padding: 12px 16px; border-radius: 10px; margin-top: 16px; display: flex; align-items: center; gap: 12px; }
.pk-da-gesamt-title { font-weight: 700; }
.pk-da-gesamt-fazit { font-size: 13px; color: var(--text-muted); }
.pk-da-formfehler-row { padding: 6px 0; border-bottom: 1px solid var(--border); }
.pk-da-antwort-box { background: var(--bg); padding: 12px; border-radius: 8px; font-size: 13px; white-space: pre-wrap; }
.pk-da-beschluss-text { font-size: 14px; }
.pk-da-beschluss-grund { margin-top: 4px; color: var(--text-muted); font-size: 13px; }
.pk-da-anfechten-grund { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.pk-da-forderung-text { font-size: 13px; margin-top: 4px; }
.pk-da-empf-text { font-size: 14px; }
.pk-da-empf-sofort { margin-top: 4px; font-size: 13px; color: var(--pk-danger); }
.pk-da-fallen-empf { font-size: 12px; margin-top: 4px; }
.pk-da-pre-json { font-size: 12px; overflow: auto; }
.pk-mt-neg8 { margin-top: -8px; }
.pk-es-test-result-inline { display: none; margin-top: 12px; padding: 10px; border-radius: 8px; font-size: 13px; }
.pk-text-danger { color: var(--pk-danger); }
.pk-vz-doc-thumb { width: 70px; height: auto; border-radius: 4px; cursor: pointer; border: 1px solid var(--pk-neutral-300); flex-shrink: 0; }
.pk-vz-doc-placeholder { width: 70px; height: 90px; background: #f0f0f0; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.pk-vz-doc-meta { font-size: 11px; opacity: .6; }
.pk-vz-doc-betrag { font-weight: 600; margin-top: 2px; }
.pk-vz-doc-actions { margin-top: 4px; display: flex; gap: 6px; }
.pk-vz-doc-btn { font-size: 10px; padding: 2px 8px; }
.pk-vz-doc-zusammenfassung { margin-top: 3px; }
.pk-vz-doc-item { align-items: flex-start; gap: 12px; }
.pk-vz-aufgabe-icon { font-size: 16px; }
.pk-vz-aufgabe-done { flex: 1; opacity: .5; text-decoration: line-through; }
.pk-vz-aufgabe-active { flex: 1; }
.pk-vz-aufgabe-titel { font-weight: 600; }
.pk-vz-aufgabe-faellig { font-size: 11px; color: var(--text-muted); }
.pk-vz-kosten-highlight { color: var(--pk-success); }
.pk-vz-reife-pct { font-size: 28px; font-weight: 800; }
.pk-vz-reife-bar-wrap { flex: 1; }
.pk-vz-reife-bar-bg { background: var(--border); border-radius: 4px; height: 8px; }
.pk-vz-reife-empf { font-size: 13px; font-weight: 600; }
.pk-vz-reife-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pk-vz-reife-criterion { padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font-size: 12px; }
.pk-vz-reife-hint { color: var(--text-muted); margin-top: 2px; }
.pk-vz-reife-missing { margin-top: 12px; padding: 10px; background: var(--pk-danger-bg, #fef2f2); border-radius: 8px; font-size: 12px; }
.pk-vz-reife-missing-title { color: var(--pk-danger-dark); font-weight: 700; }
.pk-vz-reife-missing-list { margin: 6px 0 0 18px; }
.pk-es-info-box-warm { background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; padding: 12px; font-size: 12px; color: #c2410c; margin-top: 16px; }
.pk-es-info-box-primary { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 8px; padding: 12px; font-size: 12px; color: var(--pk-primary); margin-top: 16px; }
.pk-es-info-box-primary-nomt { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 8px; padding: 12px; font-size: 12px; color: var(--pk-primary); }
.pk-es-flex-col-gap { display: flex; flex-direction: column; gap: 10px; }
.pk-es-flex-col-gap-sm { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.pk-es-border-top-section { border-top: 1px solid var(--border); padding-top: 16px; }
.pk-es-subsection-title { font-size: 14px; font-weight: 600; margin-bottom: 12px; }
.pk-es-subsection-title-sm { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.pk-es-flex-gap { display: flex; gap: 8px; align-items: center; }
.pk-es-flex-gap-wrap { display: flex; gap: 8px; flex-wrap: wrap; }
.pk-es-konto-info { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.pk-es-billing-info { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.pk-es-billing-section { display: none; border-top: 1px solid var(--border); padding-top: 16px; margin-top: 16px; }
.pk-es-btn-neutral { background: var(--pk-neutral-100); color: var(--pk-neutral-600); border: 1px solid var(--pk-neutral-200); }
.pk-es-dsgvo-section { border-top: 1px solid var(--border); padding-top: 16px; margin-top: 16px; }
.pk-es-hint-mb { margin-bottom: 12px; }
.pk-es-hint-mb-lg { margin-bottom: 16px; }
.pk-es-db-flex { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.pk-es-demo-section { display: none; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border); }
.pk-es-demo-hint { font-size: 13px; color: var(--text-muted); margin-bottom: 8px; }
.pk-es-cache-stat { font-size: 14px; font-weight: 600; }
.pk-es-cache-btn { background: var(--pk-neutral-100); color: var(--pk-neutral-600); border: 1px solid var(--pk-neutral-200); margin-top: 8px; }
.pk-es-skill-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.pk-es-skill-overdue { color: var(--pk-danger-hover); font-size: 11px; font-weight: 600; }
.pk-es-skill-desc { color: var(--pk-neutral-600); }
.pk-es-skill-meta { color: var(--pk-neutral-400); font-size: 11px; margin-top: 4px; }
.pk-es-skill-tags { margin-top: 4px; }
.pk-es-skill-tag { display: inline-block; background: var(--pk-primary-light); color: var(--pk-primary); font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-right: 4px; }
.pk-san-reife-row { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.es-skill-card { padding: 12px; background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 8px; font-size: 13px; }
.pk-spin-sm { width: 14px; height: 14px; border-width: 2px; }
.pk-pr-nichtig { color: var(--pk-danger); }
.pk-pr-anfechtbar { color: var(--pk-warning); }
.pk-pr-dringend { color: #f87171; font-weight: 600; margin-bottom: 2px; }
.pk-pr-dringend-item { padding-left: 6px; }
.pk-pr-mittel { color: #fbbf24; font-weight: 600; margin-top: 4px; }
.pk-pr-mittel-item { padding-left: 6px; }
.pk-pr-ok { color: #4ade80; }
.pk-pr-empf-border { margin-top: 6px; border-top: 1px solid #334155; padding-top: 4px; color: var(--pk-neutral-400); font-size: 10px; }
.pk-pr-empf-link { font-size: 10px; color: #60a5fa; cursor: pointer; padding-left: 6px; }
.pk-pr-no-data { color: var(--pk-neutral-500); }
.pk-pr-rl-row { margin-top: 4px; }


/* ═══════════════════════════════════ */
/* INLINE-STYLE ELIMINATION UTILITIES  */
/* (prepare.html, docs.html, schaden.html) */
/* ═══════════════════════════════════ */

.pk-print-title { font-weight: 700; font-size: 14pt; }
.pk-print-date { font-size: 10pt; color: var(--pk-neutral-500); }
.pk-warn-box { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-radius: 8px; padding: 14px 16px; margin-bottom: 16px; font-size: 13px; color: var(--pk-warning-dark); line-height: 1.65; }
.pk-warn-box-accent { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-left: 3px solid var(--pk-warning); border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; }
.pk-info-box-blue { background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 10px 12px; }
.pk-info-box-yellow { background: #fefce8; border: 1px solid #fde68a; border-radius: 8px; padding: 10px 12px; }
.pk-info-box-primary { background: var(--pk-primary-50); border: 1px solid #c4b5fd; border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; }
.pk-ocr-panel { background: var(--pk-warning-bg, #fffbeb); border: 1px solid #fde68a; border-radius: 10px; padding: 14px 16px; margin-top: 12px; animation: ueIn .3s ease; }
.pk-ocr-header { font-size: 13px; font-weight: 700; color: var(--pk-warning-dark); margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.pk-ocr-bar-wrap { width: 100%; height: 10px; background: #e2e8f0; border-radius: 999px; overflow: hidden; margin-bottom: 8px; }
.pk-ocr-bar-fill { height: 100%; border-radius: 999px; transition: width .6s ease, background .4s; width: 0%; background: #22c55e; }
.pk-ocr-status { font-size: 13px; color: var(--pk-warning-dark); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pk-ocr-badge { font-size: 11.5px; font-weight: 700; padding: 3px 10px; border-radius: 20px; }
.pk-ocr-tips { margin-top: 10px; background: #fff; border: 1px solid #fde68a; border-radius: 8px; padding: 10px 14px; font-size: 12.5px; color: var(--pk-warning-dark); line-height: 1.65; }
.pk-ocr-tips-title { display: block; margin-bottom: 6px; }
.pk-ocr-tips-list { padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.pk-ocr-warning { margin-top: 8px; font-size: 12px; color: var(--pk-danger-dark); font-weight: 500; }
.pk-obj-frage-select { margin-top: 8px; width: 100%; border: 1px solid #fde68a; border-radius: 8px; padding: 8px 12px; font-size: 13px; font-family: inherit; outline: none; }
.pk-obj-name { font-weight: 700; font-size: 14px; }
.pk-obj-wechseln-btn { font-size: 12px; color: var(--pk-primary); background: none; border: none; cursor: pointer; font-family: inherit; text-decoration: underline; }
.pk-obj-frage-textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--pk-neutral-200); border-radius: 8px; font-size: 14px; font-family: inherit; resize: vertical; outline: none; }
.pk-obj-auto-hint { font-size: 11.5px; color: var(--pk-neutral-400); margin-top: 4px; }
.pk-faq-search { width: 100%; padding: 8px 12px; border: 1px solid var(--pk-neutral-200); border-radius: 8px; font-size: 13px; font-family: inherit; outline: none; }
.pk-faq-filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.pk-faq-list-scroll { max-height: 320px; overflow-y: auto; margin-bottom: 12px; }
.pk-faq-new-select { width: 100%; padding: 6px 10px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; font-family: inherit; margin-bottom: 6px; }
.pk-faq-new-input { width: 100%; padding: 6px 10px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; font-family: inherit; margin-bottom: 6px; }
.pk-faq-new-textarea { width: 100%; padding: 6px 10px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; font-family: inherit; resize: vertical; margin-bottom: 6px; }
.pk-faq-save-btn { width: 100%; padding: 8px; background: var(--primary); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 12px; cursor: pointer; font-family: inherit; }
.pk-faq-suggest-btn { width: 100%; padding: 8px 14px; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; font-size: 12px; cursor: pointer; color: #0369a1; font-family: inherit; }
.pk-faq-summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--primary); }
.pk-erst-label-blue { font-size: 11px; color: #0369a1; font-weight: 600; margin-bottom: 4px; }
.pk-erst-label-yellow { font-size: 11px; color: #a16207; font-weight: 600; margin-bottom: 4px; }
.pk-erst-value { font-size: 13px; font-weight: 700; color: var(--text); }
.pk-erst-sub { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.pk-erst-ki-hint { background: var(--pk-success-light); border: 1px solid #86efac; border-radius: 6px; padding: 8px 10px; font-size: 11px; color: var(--pk-success-dark); margin-bottom: 10px; }
.pk-stream-box { background: var(--pk-neutral-50); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; font-size: 13px; color: var(--text); line-height: 1.65; min-height: 60px; }
.pk-flex-col-gap-8 { display: flex; flex-direction: column; gap: 8px; }
.pk-deckung-result { margin-top: 14px; background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 10px; padding: 14px 16px; font-size: 13px; line-height: 1.65; }
.pk-result-text { font-size: 13px; color: var(--text); line-height: 1.7; white-space: pre-wrap; }
.pk-aktionen-col { flex-direction: column; gap: 8px; align-items: stretch; }
.pk-aktionen-top-border { margin-top: 20px; border-top: 1px solid var(--border); padding-top: 16px; }
.pk-aktionen-mt-0 { margin-top: 0; }
.pk-aktionen-mt-16-bt { margin-top: 16px; border-top: 1px solid var(--border); padding-top: 14px; }
.pk-folgefrage-area { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.pk-folgefrage-input { flex: 1; min-width: 200px; border: 1px solid var(--border); border-radius: 8px; padding: 9px 12px; font-size: 13px; font-family: inherit; outline: none; }
.pk-details-bearbeiten-btn { font-size: 11px; padding: 2px 8px; border: 1px solid var(--border); border-radius: 5px; background: none; cursor: pointer; color: var(--text-muted); font-family: inherit; }
.pk-section-divider-flex { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; }
.pk-bericht-upload { display: flex; align-items: center; gap: 8px; cursor: pointer; padding: 8px 12px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg); font-size: 13px; color: var(--text-muted); transition: border-color .15s, background .15s; }
.pk-link-btn { background: none; border: none; color: var(--primary); font-size: 12px; cursor: pointer; margin-top: 8px; font-family: inherit; text-decoration: underline; }
.pk-disclaimer-sm { font-size: 0.7rem; color: var(--pk-neutral-400); margin-top: 10px; }
.pk-privacy-note-sm { font-size: 11px; color: var(--text-muted); margin-top: 8px; text-align: center; }
.pk-leck-label { font-size: 12px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px; }
.pk-was-jetzt-box { display: none; margin-top: 16px; padding: 12px 16px; background: var(--pk-neutral-50); border: 1px solid var(--pk-neutral-200); border-radius: 8px; }
.pk-was-jetzt-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.pk-te-verstanden { font-size: 11.5px; font-style: italic; color: var(--pk-warning-dark); margin-top: 8px; }
.pk-btn-highlight { background: var(--pk-primary-50); border-color: #93c5fd; color: var(--primary); }
.pk-w-32 { width: 32px; }
.pk-table-wrap-border { overflow-x: auto; border: 1px solid var(--border); border-radius: 8px; }
.pk-field-flex-1 { flex: 1; min-width: 140px; }
.pk-field-flex-2 { flex: 2; min-width: 200px; }
.pk-field-flex-160 { flex: 1; min-width: 160px; }
.pk-field-flex-130 { flex: 1; min-width: 130px; }
.pk-cookie-link { color: #93c5fd; text-decoration: none; }
.pk-vc-erledigt-text { font-size: 11px; color: var(--pk-success); font-weight: 600; }
.pk-vc-kat-title { font-size: 11px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .04em; margin: 10px 0 5px; }
.pk-pt-filename { font-size: 12px; color: var(--pk-neutral-800); margin-top: 6px; }
.pk-faq-item { background: var(--bg); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; margin-bottom: 6px; }
.pk-faq-item-frage { font-size: 12px; font-weight: 600; color: var(--text); margin-bottom: 4px; }
.pk-faq-item-antwort { font-size: 11.5px; color: var(--text-muted); line-height: 1.5; }
.pk-faq-item-footer { display: flex; gap: 8px; margin-top: 6px; align-items: center; }
.pk-faq-item-kat { font-size: 10px; background: var(--pk-primary-50); color: var(--pk-primary); padding: 2px 6px; border-radius: 4px; }
.pk-faq-item-count { font-size: 10px; color: var(--text-muted); }
.pk-faq-fb-btn { font-size: 10px; background: none; border: none; cursor: pointer; }
.pk-faq-vorschlag { background: var(--pk-success-light); border: 1px solid #86efac; border-radius: 6px; padding: 8px 10px; margin-bottom: 4px; font-size: 12px; }
.pk-faq-vorschlag-frage { font-weight: 600; }
.pk-faq-vorschlag-antwort { color: var(--text-muted); margin-top: 2px; }
.pk-faq-vorschlag-btn { margin-top: 4px; font-size: 11px; background: var(--primary); color: var(--pk-white, #fff); border: none; border-radius: 4px; padding: 3px 8px; cursor: pointer; }

/* ── Utility: Text sizes ── */
.pk-text-10 { font-size: 10px; }
.pk-text-11 { font-size: 11px; }
.pk-text-12 { font-size: 12px; }
.pk-text-13 { font-size: 13px; }
.pk-line-18 { line-height: 1.8; }

/* ── Utility: Padding ── */
.pk-p-8 { padding: 8px; }
.pk-mt-2px { margin-top: 2px; }

/* ── Prepare: ETV-Themen-Item ── */
.pk-etv-thema-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #fff; border: 1px solid #fed7aa; border-radius: 8px; }
.pk-etv-thema-icon { font-size: 16px; }
.pk-etv-thema-body { flex: 1; font-size: 13px; }
.pk-etv-thema-absender { font-size: 11px; color: var(--pk-warning-dark); }
.pk-etv-thema-btn { font-size: 11px; padding: 4px 10px; }

/* ── Prepare: Spinner inline small ── */
.pk-spinner-sm { width: 14px; height: 14px; border-width: 2px; }

/* ── Prepare: MT Result warning ── */
.pk-mt-warn-result { padding: 14px 16px; font-size: 13px; color: var(--pk-warning-dark); background: #fefce8; border: 1px solid #fde68a; border-radius: 10px; }

/* ── Prepare: Beschlussvorschlag field ── */
.pk-mt-beschlussvorschlag { background: var(--pk-neutral-50); padding: 10px 12px; border-radius: 6px; border: 1px solid var(--border); font-style: italic; }

/* ── Prepare: Tags row ── */
.pk-tags-row { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0; }

/* ── Prepare: Risiken text ── */
.pk-text-pk-danger { color: var(--pk-danger); }

/* ── Prepare: Collected TOP flex ── */
.pk-flex-1 { flex: 1; }

/* ── Prepare: Beschluss generating status ── */
.pk-beschluss-loading { display: flex; align-items: center; gap: 8px; }

/* ── Prepare: Vorlage meta ── */
.pk-vorlage-meta { font-size: 10px; color: var(--text-muted); }

/* ── Prepare: Warning emoji color ── */
.pk-warn-emoji { color: var(--pk-danger); }

/* ── Prepare: Kennzahlen banner ── */
.pk-kz-banner-flex { display: flex; align-items: flex-start; gap: 10px; }
.pk-kz-banner-icon { font-size: 18px; }
.pk-kz-banner-close { background: none; border: none; color: var(--pk-primary); cursor: pointer; font-size: 16px; flex-shrink: 0; }

/* ── Prepare: Beschluss-Ergebnis blocks ── */
.pk-be-disclaimer { background: var(--pk-warning-light); border: 2px solid #f59e0b; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.pk-be-disclaimer-title { font-size: 13px; font-weight: 600; color: var(--pk-warning-dark); }
.pk-be-disclaimer-text { font-size: 12px; color: var(--pk-warning-dark); margin-top: 2px; }
.pk-be-mehrheit { background: var(--pk-primary-50); border: 1px solid #bfdbfe; border-radius: 6px; padding: 10px; margin-bottom: 12px; }
.pk-be-mehrheit-label { font-size: 12px; font-weight: 600; color: var(--pk-primary); }
.pk-be-mehrheit-value { font-size: 13px; color: var(--pk-primary-hover); font-weight: 500; margin-top: 3px; }
.pk-be-mehrheit-explain { font-size: 12px; color: #3730a3; margin-top: 2px; }
.pk-be-text-card { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: #fff; margin-bottom: 12px; }
.pk-be-text-label { font-size: 12px; font-weight: 600; margin-bottom: 8px; }
.pk-be-textarea { width: 100%; padding: 8px; border: 1px solid var(--pk-neutral-200); border-radius: 6px; font-size: 12px; background: var(--pk-neutral-50); box-sizing: border-box; resize: vertical; font-family: monospace; line-height: 1.6; }
.pk-be-copy-btn { margin-top: 8px; padding: 8px 18px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }
.pk-be-risiken-box { border: 1px solid #fee2e2; border-radius: 6px; padding: 10px; background: var(--pk-danger-bg, #fef2f2); margin-bottom: 10px; }
.pk-be-risiken-title { font-size: 12px; font-weight: 600; color: var(--pk-danger); margin-bottom: 6px; }
.pk-be-empf-box { border: 1px solid var(--pk-neutral-200); border-radius: 6px; padding: 10px; background: var(--pk-neutral-50); }
.pk-be-empf-title { font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.pk-be-list-reset { margin: 0; padding-left: 18px; }

/* ── Prepare: ETV-Einladung blocks ── */
.pk-etv-frist-box { border-radius: 8px; padding: 10px; margin-bottom: 12px; font-size: 13px; font-weight: 500; }
.pk-etv-pflicht-box { border: 1px solid #fde68a; border-radius: 6px; padding: 10px; background: var(--pk-warning-bg, #fffbeb); margin-bottom: 12px; }
.pk-etv-pflicht-title { font-size: 12px; font-weight: 600; color: var(--pk-warning-dark); margin-bottom: 6px; }
.pk-etv-unterlagen { font-size: 12px; color: var(--pk-neutral-500); }

/* ── Prepare: TOP form row ── */
.pk-top-row { display: flex; gap: 8px; align-items: center; }
.pk-top-nr-label { font-size: 12px; color: var(--pk-neutral-400); min-width: 45px; }
.pk-top-nr-label-primary { font-size: 12px; font-weight: 600; color: var(--pk-primary-hover); min-width: 45px; }
.pk-top-input-flex { flex: 1; padding: 8px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.pk-top-remove-btn { padding: 4px 8px; background: var(--pk-danger-bg, #fee2e2); border: 1px solid #fca5a5; border-radius: 4px; font-size: 12px; cursor: pointer; color: var(--pk-danger); }

/* ── Prepare: Protocol TOP card ── */
.pk-prot-top-card { border: 1px solid var(--pk-neutral-200); border-radius: 8px; padding: 14px; background: var(--pk-neutral-50); }
.pk-prot-top-header { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.pk-prot-top-input { flex: 1; padding: 7px 10px; border: 1px solid var(--pk-neutral-300); border-radius: 6px; font-size: 13px; }
.pk-prot-top-remove { padding: 5px 10px; background: var(--pk-danger-bg, #fee2e2); border: 1px solid #fca5a5; border-radius: 5px; font-size: 12px; cursor: pointer; color: var(--pk-danger); }
.pk-prot-beschluss-wrap { margin-bottom: 8px; }
.pk-prot-form-label { font-size: 11px; color: var(--pk-neutral-400); }
.pk-prot-beschluss-ta { width: 100%; padding: 7px; border: 1px solid var(--pk-neutral-300); border-radius: 5px; font-size: 12px; resize: vertical; box-sizing: border-box; margin-top: 4px; }
.pk-prot-stimmen-grid { display: grid; grid-template-columns: auto auto auto auto 1fr; gap: 8px; align-items: center; }
.pk-prot-stimmen-input { width: 60px; padding: 6px; border: 1px solid var(--pk-neutral-300); border-radius: 5px; font-size: 13px; display: block; }
.pk-prot-stimmen-select { padding: 6px; border: 1px solid var(--pk-neutral-300); border-radius: 5px; font-size: 12px; display: block; }
.pk-prot-notizen-input { width: 100%; padding: 6px 8px; border: 1px solid var(--pk-neutral-300); border-radius: 5px; font-size: 12px; box-sizing: border-box; display: block; }

/* ── Prepare: Fristen-check spans ── */
.pk-fristen-ok { color: var(--pk-success); font-weight: 500; }
.pk-fristen-fail { color: var(--pk-danger); font-weight: 500; }
.pk-fristen-past { color: var(--pk-danger); }

/* ── Prepare: Protokoll-Ergebnis blocks ── */
.pk-pe-pflicht-check { display: flex; gap: 16px; flex-wrap: wrap; }
.pk-pe-pflicht-item-ok { font-size: 11px; color: #15803d; }
.pk-pe-pflicht-item-fail { font-size: 11px; color: #dc2626; }
.pk-pe-anfecht-item { font-size: 12px; color: var(--pk-danger); padding: 4px 0; }
.pk-pe-anfecht-box { background: var(--pk-danger-bg, #fef2f2); border: 1px solid #fecaca; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.pk-pe-anfecht-title { font-size: 12px; font-weight: 600; color: var(--pk-danger); margin-bottom: 6px; }
.pk-pe-warn-box { border: 1px solid #fde68a; border-radius: 6px; padding: 10px; background: var(--pk-warning-bg, #fffbeb); margin-bottom: 12px; }
.pk-pe-warn-title { font-size: 12px; font-weight: 600; color: var(--pk-warning-dark); margin-bottom: 5px; }
.pk-pe-beschluss-box { border: 2px solid #1d4ed8; border-radius: 8px; padding: 14px; background: var(--pk-primary-50); }
.pk-pe-beschluss-title { font-size: 13px; font-weight: 600; color: var(--pk-primary-hover); margin-bottom: 10px; }
.pk-pe-beschluss-save { margin-top: 12px; padding: 9px 22px; background: var(--pk-primary-hover); color: var(--pk-white, #fff); border: none; border-radius: 6px; font-size: 13px; cursor: pointer; font-weight: 500; }

/* ── Prepare: Beschluss erkannt items ── */
.pk-be-beschluss-row { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; border-bottom: 1px solid #f0f0f0; }
.pk-be-beschluss-cb { margin-top: 2px; cursor: pointer; flex-shrink: 0; }
.pk-be-beschluss-ergebnis { font-size: 12px; font-weight: 500; }
.pk-be-beschluss-stimmen { font-size: 11px; color: var(--pk-neutral-600); margin-top: 2px; }
.pk-be-beschluss-text { font-size: 11px; color: var(--pk-neutral-700); margin-top: 3px; font-style: italic; }

/* ── Prepare: Beschluss status ── */
.pk-status-success { color: var(--pk-success); font-size: 13px; font-weight: 500; }

/* ── Prepare: Verfeinern label ── */
.pk-verfeinern-label { font-size: 11px; font-weight: 700; color: var(--text-muted); margin-bottom: 6px; text-transform: uppercase; letter-spacing: .04em; }

/* ── Prepare: Transfer close btn ── */
.pk-transfer-close { float: right; background: none; border: none; cursor: pointer; font-size: 11px; color: var(--pk-success-dark); }

/* ── Prepare: Session restore hint ── */
.pk-session-restore-hint { background: #fefce8; border: 1px solid #fde68a; border-radius: 8px; padding: 10px 14px; font-size: 12px; color: var(--pk-warning-dark); margin-bottom: 12px; }

/* ── Prepare: Info banner ── */
.pk-info-success-banner { background: var(--pk-success-light); border: 1px solid #86efac; border-radius: 8px; padding: 8px 12px; font-size: 12px; color: var(--pk-success-dark); margin-top: 8px; }

/* ── Prepare: Word export body ── */
.pk-word-body { font-family: Arial; padding: 40px; font-size: 12pt; line-height: 1.7; }
.pk-word-pre { white-space: pre-wrap; font-family: Arial; font-size: 12pt; }
.pk-word-footer { color: var(--pk-neutral-500); font-size: 10pt; margin-top: 24pt; border-top: 1px solid #e2e8f0; padding-top: 8pt; }

/* ── Prepare: Timer ── */
.pk-analyze-timer { font-size: 12px; color: var(--text-muted); text-align: center; margin-top: 8px; }

/* ── Prepare: Upload hint error ── */
.pk-upload-hint-error { color: var(--pk-danger); font-size: 13px; padding: 8px 0; text-align: center; }


/* ═══════════════════════════════════ */
/* OBJEKTAKTE UTILITY-KLASSEN (oa-)    */
/* ═══════════════════════════════════ */

/* ── Layout ── */
.oa-justify-between   { justify-content: space-between; }
.oa-min-h-80          { min-height: 80px; }

/* ── Buttons with custom padding ── */
.oa-btn-pad-sm        { padding: 5px 14px; }
.oa-btn-pad-md        { padding: 7px 14px; }
.oa-btn-disabled      { background: var(--pk-neutral-400); color: var(--pk-white, #fff); border: none; cursor: not-allowed; }

/* ── Prognose loading ── */
.oa-prognose-loading-text {
  color: var(--primary, var(--pk-primary));
}

/* ── Radar ampel icons (filled circles) ── */
.oa-ampel-rot   { color: var(--pk-danger);       fill: #ef4444; }
.oa-ampel-gelb  { color: var(--pk-warning);      fill: #f59e0b; }
.oa-ampel-gruen { color: var(--pk-success);      fill: #22c55e; }
.oa-ampel-grau  { color: var(--pk-neutral-400);  fill: #94a3b8; }

/* ── Wissensgraph status dot with margin ── */
.oa-wg-status-dot-mr {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
}

/* ── Vertragsfristen padding-bottom conditional ── */
.oa-pb-16 { padding-bottom: 16px; }

/* ── Wissensbank frist tage (bold colored) ── */
.oa-wb-frist-tage { font-weight: 600; }

/* ── Dynamic color via CSS custom property --oa-accent ── */
.oa-border-left-accent  { border-left: 3px solid var(--oa-accent); }
.oa-border-top-accent   { border-top: 3px solid var(--oa-accent); }
.oa-color-accent        { color: var(--oa-accent); }
.oa-bg-accent-light     { background: var(--oa-accent-bg); color: var(--oa-accent); }
.oa-bg-accent           { background: var(--oa-accent); }
.oa-bg-accent-shadow    { background: var(--oa-accent); box-shadow: 0 0 0 1px var(--oa-accent); }


/* ── Inline-Style Elimination v1.6.2 (new classes) ── */

/* Timeline */
.oa-timeline-content { flex: 1; }
.oa-timeline-ueberfaellig { color: var(--pk-danger-hover); font-weight: 600; }
.oa-timeline-detail-toggle { margin-top: 8px; }
.oa-timeline-top-label { font-weight: 600; color: var(--pk-neutral-500); }
.oa-timeline-frist { color: var(--pk-neutral-400); }

/* Review items */
.oa-review-text { flex: 1; font-size: 12px; color: var(--pk-neutral-800); }
[data-theme="dark"] .oa-review-text { color: var(--pk-neutral-200); }
.oa-review-text-done { color: var(--pk-neutral-400); }

/* Wissensgraph event */
.oa-wg-event-content { flex: 1; min-width: 0; }
.oa-wg-event-meta { display: flex; align-items: center; gap: 6px; margin-bottom: 2px; }
.oa-wg-arrow-pt { padding-top: 2px; }

/* Wissensgraph hints/messages */
.oa-wg-hint { color: var(--pk-neutral-400); font-size: 13px; padding: 12px; }
.oa-wg-hint-inline { color: var(--pk-neutral-400); font-size: 13px; }
.oa-wg-hint-danger { color: var(--pk-danger); }

/* TE Analyse Button */
.oa-te-analyse-btn { padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 600; background: var(--primary); color: var(--pk-white, #fff); border: none; cursor: pointer; }

/* Vertragsfristen */
.oa-vf-aktion { font-size: 12px; margin-top: 6px; color: var(--pk-neutral-500); }
.oa-vf-aktion-dringend { color: var(--pk-danger); font-weight: 600; }
.oa-vf-kuendigung-warn { font-weight: 600; }

/* Wissensbank */
.oa-wb-eigentum { font-weight: 700; }

/* Icon size */
.oa-icon-18 { font-size: 18px; }

/* Upload Ergebnis card */
.oa-ergebnis-card { margin: 16px 0; border-left: 4px solid var(--pk-primary, #1a56db); animation: fadeIn .3s ease; }

/* Uebernahme Pruefung */
.oa-uebernahme-score-value { font-size: 36px; font-weight: 700; }
.oa-uebernahme-score-label { font-size: 13px; color: var(--pk-neutral-500); margin-top: 4px; }
.oa-uebernahme-row { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--bg-card, var(--surface)); border: 1px solid var(--border); border-radius: 8px; }
.oa-uebernahme-icon { font-size: 16px; }
.oa-uebernahme-name { font-size: 13px; }
.oa-uebernahme-pflicht-badge { font-size: 10px; background: var(--pk-danger-bg, #fef2f2); color: var(--pk-danger); padding: 1px 5px; border-radius: 3px; margin-left: 6px; }
.oa-uebernahme-detail { font-size: 11px; color: var(--pk-neutral-500); margin-top: 2px; }
.oa-uebernahme-status { font-size: 11px; font-weight: 600; }

/* Utility classes */
.pk-mr-4 { margin-right: 4px; }
.pk-ml-6 { margin-left: 6px; }
.pk-text-neutral { color: var(--pk-neutral-700); }

/* ═══════════════════════════════════ */
/* REDUCED MOTION                      */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ═══ Landing Page (index.html) ═══ */
.lp-social-section { padding: 48px 0; background: var(--surface-raised, #f8fafc); }
.lp-social-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.lp-stat-value { font-size: 32px; font-weight: 800; color: var(--primary); }
.lp-stat-label { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
.lp-compare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 8px; }
.lp-roi-card { background: var(--surface); border: 1.5px solid var(--primary); border-radius: 12px; padding: 20px 24px; }
.lp-roi-title { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.lp-roi-body { font-size: 14px; color: var(--text-muted); line-height: 1.8; }
.lp-pricing-note-box { background: var(--bg); border-radius: 12px; padding: 16px 24px; text-align: center; margin-top: 24px; font-size: 14px; color: var(--text-muted); }
.lp-staffel-note { font-size: 12px; color: var(--text-muted); background: var(--bg); border-radius: 6px; padding: 8px 12px; margin-bottom: 16px; }
.lp-cta-sub { margin-top: 16px; font-size: 14px; }
.lp-link-primary { color: var(--primary); }
.lp-link-cta { color: rgba(255,255,255,0.9); text-decoration: underline; }
.pk-text-primary { color: var(--primary); }

/* ═══ ETV Modal (etv.html) ═══ */
.etv-modal-inner { background: var(--surface); border-radius: 14px; max-width: 700px; width: 90%; max-height: 80vh; overflow-y: auto; padding: 28px; box-shadow: 0 20px 60px rgba(0,0,0,.2); }
.etv-modal-title { margin-bottom: 16px; }
.etv-modal-body { margin-bottom: 16px; }
.etv-modal-footer { display: flex; gap: 8px; justify-content: flex-end; }
.etv-btn-cancel { padding: 8px 16px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg); cursor: pointer; font-family: inherit; }
.etv-btn-primary { padding: 8px 16px; border-radius: 8px; border: none; background: var(--primary); color: var(--pk-white, #fff); cursor: pointer; font-weight: 600; font-family: inherit; }
.etv-disclaimer { margin-top: 16px; padding: 10px 14px; background: var(--bg); border: 1px solid var(--border); border-radius: 8px; font-size: 11px; color: var(--text-muted); }
.etv-error-msg { padding: 20px; color: var(--pk-danger-dark); text-align: center; }
.etv-empty-msg { color: var(--text-muted); }
.etv-cb-label { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--border); cursor: pointer; align-items: flex-start; }
.etv-cb-input { margin-top: 3px; }
.etv-cb-title { font-size: 13px; }
.etv-cb-meta { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.etv-error-text { color: var(--pk-danger-dark); }

/* ═══ Posteingang JS template helpers ═══ */
.pe-obj-select { padding: 5px 8px; border: 1px solid var(--border); border-radius: 6px; font-size: 12px; font-family: inherit; }
.pe-flex-row { display: flex; align-items: center; gap: 8px; }
.pe-btn-etv { background: var(--pk-primary-50); color: #4338ca; border-color: #c7d2fe; }
.pe-warn-label { color: var(--pk-warning); margin-top: 8px; }
.pe-danger-label { color: var(--pk-danger); }
.pe-konfidenz-bar-dynamic { /* width set inline */ }
.pe-hint-muted { color: var(--text-muted); margin-top: 4px; }
.pe-bgh-span { margin-right: 8px; }
.pe-abstimmung { color: var(--pk-neutral-500); }
.pe-wf-cursor { cursor: pointer; }
.pe-honorar-box { margin-top: 8px; }
.pe-spinner-inline { display: inline-block; width: 14px; height: 14px; margin-right: 8px; vertical-align: middle; }

/* ═══════════════════════════════════ */
/* PREPARE: Inline-Style Replacements  */
/* ═══════════════════════════════════ */

/* ── Verfeinern: result overrides (neutral version) ── */
.prep-verfeinern-result {
  background: var(--bg, #f8fafc);
  border-color: var(--border);
}

/* ── Protokoll: Pflichtcheck box ── */
.prep-prot-pflicht-box {
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 12px;
}
.prep-prot-pflicht-ok {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}
.prep-prot-pflicht-warn {
  background: #fef3c7;
  border: 1px solid #fde68a;
}
[data-theme="dark"] .prep-prot-pflicht-ok {
  background: #052e16;
  border-color: #166534;
}
[data-theme="dark"] .prep-prot-pflicht-warn {
  background: #451a03;
  border-color: #92400e;
}
.prep-prot-pflicht-title {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 6px;
}
.prep-prot-pflicht-title-ok { color: #15803d; }
.prep-prot-pflicht-title-warn { color: #92400e; }
[data-theme="dark"] .prep-prot-pflicht-title-ok { color: #86efac; }
[data-theme="dark"] .prep-prot-pflicht-title-warn { color: #fde68a; }

/* ── ETV Frist box: dynamic variant classes ── */
.prep-frist-ok {
  background: #f0fdf4;
  border: 2px solid #16a34a;
  color: #16a34a;
}
.prep-frist-fail {
  background: #fef2f2;
  border: 2px solid #dc2626;
  color: #dc2626;
}
[data-theme="dark"] .prep-frist-ok {
  background: #052e16;
  border-color: #22c55e;
  color: #86efac;
}
[data-theme="dark"] .prep-frist-fail {
  background: #450a0a;
  border-color: #ef4444;
  color: #fca5a5;
}

/* ═══ Shared section headings ═══ */
.pk-section-heading { font-size: 18px; font-weight: 700; margin: 20px 0 12px; }
.pk-subsection-heading { font-size: 16px; font-weight: 700; margin-bottom: 8px; }

/* ═══ Utility Classes for Inline-Style Elimination ═══ */

/* ── Text utilities ── */
.pk-text-xs { font-size: 11px; }
.pk-text-sm { font-size: 12px; }
.pk-text-base { font-size: 13px; }
.pk-text-md { font-size: 14px; }
.pk-text-lg { font-size: 16px; }
.pk-text-xl { font-size: 18px; }
.pk-text-2xl { font-size: 20px; }
.pk-text-3xl { font-size: 24px; }
.pk-text-4xl { font-size: 28px; }
.pk-text-center { text-align: center; }
.pk-text-right { text-align: right; }
.pk-text-no-decoration { text-decoration: none; }
.pk-font-medium { font-weight: 500; }
.pk-font-semibold { font-weight: 600; }
.pk-font-bold { font-weight: 700; }
.pk-line-height-relaxed { line-height: 1.5; }

/* ── Color utilities (using CSS vars) ── */
.pk-text-muted { color: var(--text-muted); }
.pk-text-neutral-400 { color: var(--pk-neutral-400); }
.pk-text-neutral-500 { color: var(--pk-neutral-500); }
.pk-text-danger { color: var(--pk-danger); }
.pk-text-danger-hover { color: var(--pk-danger-hover); }
.pk-text-warning-dark { color: var(--pk-warning-dark); }
.pk-text-success { color: var(--pk-success); }
.pk-text-success-dark { color: var(--pk-success-dark); }
.pk-text-danger-dark { color: var(--pk-danger-dark); }
.pk-text-primary-hover { color: var(--pk-primary-hover); }

/* ── Spacing utilities ── */
.pk-mt-0 { margin-top: 0; }
.pk-mt-4 { margin-top: 4px; }
.pk-mt-8 { margin-top: 8px; }
.pk-mt-10 { margin-top: 10px; }
.pk-mt-16 { margin-top: 16px; }
.pk-mt-20 { margin-top: 20px; }
.pk-mb-0 { margin-bottom: 0; }
.pk-mb-4 { margin-bottom: 4px; }
.pk-mb-5 { margin-bottom: 5px; }
.pk-mb-6 { margin-bottom: 6px; }
.pk-mb-8 { margin-bottom: 8px; }
.pk-mb-12 { margin-bottom: 12px; }
.pk-mb-16 { margin-bottom: 16px; }
.pk-m-0 { margin: 0; }
.pk-p-8 { padding: 8px; }
.pk-p-10 { padding: 10px; }
.pk-p-12 { padding: 12px; }
.pk-p-14 { padding: 14px; }
.pk-p-16 { padding: 16px; }
.pk-p-24 { padding: 24px; }
.pk-pl-18 { padding-left: 18px; }
.pk-gap-8 { gap: 8px; }
.pk-gap-10 { gap: 10px; }
.pk-gap-12 { gap: 12px; }

/* ── Display & Layout ── */
.pk-flex { display: flex; }
.pk-flex-col { display: flex; flex-direction: column; }
.pk-flex-wrap { flex-wrap: wrap; }
.pk-items-center { align-items: center; }
.pk-justify-between { justify-content: space-between; }
.pk-justify-center { justify-content: center; }
.pk-block { display: block; }
.pk-inline-block { display: inline-block; }
.pk-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.pk-w-full { width: 100%; }

/* ── Form label/input patterns ── */
.pk-form-label-sm { font-size: 12px; font-weight: 500; display: block; margin-bottom: 4px; color: var(--text-muted); }
.pk-input-full {
  width: 100%; padding: 7px 10px; border: 1px solid var(--border);
  border-radius: 6px; font-size: 13px; font-family: inherit;
  background: var(--bg); color: var(--text); box-sizing: border-box;
}
.pk-input-full:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 2px rgba(99,102,241,.15); }
.pk-textarea-sm { height: 34px; resize: none; }

/* ── Render cards (KI output) ── */
.pk-render-card {
  border: 1px solid var(--border); border-radius: 8px;
  padding: 14px; background: var(--surface); margin-bottom: 12px;
}
.pk-render-section-title { font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.pk-render-hint { font-size: 11px; color: var(--text-muted); }
.pk-render-list { margin: 0; padding-left: 18px; }
.pk-render-list li { font-size: 12px; margin-bottom: 3px; }

/* ── Status colors / Ampel ── */
.pk-ampel-gruen { background: #dcfce7; border: 2px solid #16a34a; }
.pk-ampel-gelb { background: #fef9c3; border: 2px solid #ca8a04; }
.pk-ampel-rot { background: #fef2f2; border: 2px solid #dc2626; }
[data-theme="dark"] .pk-ampel-gruen { background: #052e16; border-color: #22c55e; }
[data-theme="dark"] .pk-ampel-gelb { background: #422006; border-color: #eab308; }
[data-theme="dark"] .pk-ampel-rot { background: #450a0a; border-color: #ef4444; }

/* ── Success/Warning/Info boxes ── */
.pk-box-success {
  background: var(--pk-success-light); border: 1px solid #bbf7d0;
  border-radius: 10px; padding: 16px; text-align: center;
}
.pk-box-warning {
  background: var(--pk-warning-light, #fef9c3); border: 1px solid #fde68a;
  border-radius: 10px; padding: 16px;
}
.pk-box-info {
  background: var(--pk-info-light, #eff6ff); border: 1px solid #bfdbfe;
  border-radius: 10px; padding: 16px;
}

/* ── Misc patterns ── */
.pk-title-hero { font-size: 28px; margin-bottom: 8px; font-weight: 700; }
.pk-subtitle-muted { font-size: 10pt; color: var(--pk-neutral-500); }
.pk-section-title-bold { font-weight: 700; font-size: 14pt; }
.pk-footer-muted { text-align: center; padding: 24px; font-size: 12px; color: var(--pk-neutral-400); }
.pk-result-title-success { font-size: 14px; font-weight: 700; color: var(--pk-success-dark); margin-bottom: 4px; }
.pk-result-text-success { font-size: 12px; color: var(--pk-success-dark); line-height: 1.5; }
.pk-border-radius-8 { border-radius: 8px; }
.pk-border-radius-6 { border-radius: 6px; }
.pk-overflow-auto { overflow: auto; }
.pk-cursor-pointer { cursor: pointer; }

/* ═══════════════════════════════════════════════════════════════ */
/* PAGE LAYOUT SYSTEM — einheitliche Container + Page-Headers     */
/* ═══════════════════════════════════════════════════════════════ */

.pk-page {
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 32px 24px 80px;
}
.pk-page--narrow { max-width: 800px; }
.pk-page--wide   { max-width: 1200px; }
.pk-page--flex   { max-width: none; display: flex; gap: 20px; padding: 20px; }

.pk-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 12px;
  flex-wrap: wrap;
}
.pk-page-header h1 {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0;
}
.pk-page-header-sub {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 2px;
}
.pk-page-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 768px) {
  .pk-page { padding: 20px 16px 60px; }
  .pk-page--flex { flex-direction: column; }
  .pk-page-header { flex-direction: column; align-items: flex-start; }
}


/* ═══════════════════════════════════ */
/* PILL-TAB VARIANT                    */
/* ═══════════════════════════════════ */
.pk-tabs--pills { border-bottom: none; gap: 4px; }
.pk-tabs--pills .pk-tab {
  border-bottom: none;
  border: 1px solid var(--border, var(--pk-neutral-200));
  border-radius: var(--pk-radius-md);
  background: var(--bg, var(--pk-neutral-50));
  padding: 7px 14px;
}
.pk-tabs--pills .pk-tab.active {
  background: var(--surface, #fff);
  color: var(--text, var(--pk-neutral-900));
  border-color: var(--primary, var(--pk-primary));
}
.pk-tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: var(--pk-radius-full);
  font-size: 9px;
  font-weight: 700;
  background: var(--pk-danger);
  color: var(--pk-white, #fff);
  margin-left: 4px;
}
.pk-tab--sm { padding: 5px 10px; font-size: var(--pk-text-xs); }

[data-theme="dark"] .pk-tabs--pills .pk-tab {
  background: var(--bg);
  border-color: var(--border);
}
[data-theme="dark"] .pk-tabs--pills .pk-tab.active {
  background: var(--surface);
  border-color: var(--primary);
}


/* ═══════════════════════════════════ */
/* LIST-ITEM CARD VARIANT              */
/* ═══════════════════════════════════ */
.pk-card--item {
  padding: var(--pk-space-3) var(--pk-space-4);
  cursor: pointer;
  box-shadow: none;
}
.pk-card--item:hover {
  border-color: var(--primary, var(--pk-primary));
  box-shadow: none;
}


/* ═══════════════════════════════════ */
/* STAT / KPI CARDS                    */
/* ═══════════════════════════════════ */
.pk-stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: var(--pk-space-3);
  margin-bottom: var(--pk-space-5);
}
.pk-stat {
  background: var(--surface, #fff);
  border: 1px solid var(--border, var(--pk-neutral-200));
  border-radius: var(--pk-radius-lg);
  padding: var(--pk-space-3) var(--pk-space-4);
  text-align: center;
  transition: border-color var(--pk-transition);
}
.pk-stat:hover { border-color: var(--primary, var(--pk-primary)); }
.pk-stat-value {
  font-size: 22px;
  font-weight: 700;
  color: var(--text, var(--pk-neutral-900));
}
.pk-stat-value.alert { color: var(--pk-danger); }
.pk-stat-label {
  font-size: var(--pk-text-xs);
  color: var(--text-muted, var(--pk-neutral-500));
  margin-top: var(--pk-space-1);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
